diff --git a/css/main-BIfJTXIB.chunk.css b/css/main-BHskGVgT.chunk.css similarity index 66% rename from css/main-BIfJTXIB.chunk.css rename to css/main-BHskGVgT.chunk.css index f4218dc5..151a0cc7 100644 --- a/css/main-BIfJTXIB.chunk.css +++ b/css/main-BHskGVgT.chunk.css @@ -1,4 +1,4 @@ -.material-design-icon[data-v-47ce59a3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-47ce59a3]{--button-size: var(--default-clickable-area);--button-inner-size: calc(var(--button-size) - 4px);--button-radius: var(--border-radius-element);--button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));--button-padding: var(--default-grid-baseline) var(--button-padding-default);color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:1px solid var(--color-primary-element-light-hover);border-bottom-width:2px;border-radius:var(--button-radius);box-sizing:border-box;position:relative;width:fit-content;overflow:hidden;padding-block:1px 0;padding-inline:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);display:flex;align-items:center;justify-content:center;will-change:transform;transition-property:color,border-color,background-color,transform;transition-duration:.1s;transition-timing-function:linear;cursor:pointer;font-size:var(--default-font-size);font-weight:var(--font-weight-element, bold)}.button-vue--size-small[data-v-47ce59a3]{--button-size: var(--clickable-area-small)}.button-vue--size-large[data-v-47ce59a3]{--button-size: var(--clickable-area-large)}.button-vue[data-v-47ce59a3] *{cursor:pointer}.button-vue[data-v-47ce59a3]:focus{outline:none}.button-vue[data-v-47ce59a3]:disabled{filter:saturate(.7);opacity:.5;cursor:default}.button-vue[data-v-47ce59a3]:disabled *{cursor:default}.button-vue[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-47ce59a3]:active:not(:disabled){background-color:var(--color-primary-element-light);transform:scale(.985)}.button-vue__wrapper[data-v-47ce59a3]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-47ce59a3]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-47ce59a3]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-47ce59a3]{flex-direction:row-reverse}.button-vue--reverse[data-v-47ce59a3]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-47ce59a3]{--default-clickable-area: var(--button-inner-size);height:var(--button-inner-size);width:var(--button-inner-size);min-height:var(--button-inner-size);min-width:var(--button-inner-size);display:flex;justify-content:center;align-items:center}.button-vue__icon[data-v-47ce59a3]:empty{display:none}.button-vue--size-small .button-vue__icon[data-v-47ce59a3]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-47ce59a3] svg{height:16px;width:16px}.button-vue__text[data-v-47ce59a3]{font-weight:var(--font-weight-element, bold);margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue__text[data-v-47ce59a3]:empty{display:none}.button-vue[data-v-47ce59a3]:has(.button-vue__text:empty):not(.button-vue--wide){--button-padding: var(--button-radius);line-height:1;width:var(--button-size)!important}.button-vue[data-v-47ce59a3]:has(.button-vue__icon:empty){--button-padding: var(--button-padding-default)}.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-47ce59a3]{padding-inline:var(--default-grid-baseline)}.button-vue--wide[data-v-47ce59a3]{width:100%}.button-vue[data-v-47ce59a3]:focus-visible{outline:2px solid var(--color-main-text)!important;box-shadow:0 0 0 4px var(--color-main-background)!important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-47ce59a3]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element);background-color:transparent}.button-vue--primary[data-v-47ce59a3]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--primary[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--primary[data-v-47ce59a3]:active{background-color:var(--color-primary-element)}.button-vue--secondary[data-v-47ce59a3]{background-color:var(--color-primary-element-light);border-color:var(--color-primary-element-light-hover);color:var(--color-primary-element-light-text)}.button-vue--secondary[data-v-47ce59a3]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-47ce59a3]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary[data-v-47ce59a3]:not(.button-vue--legacy34):hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.button-vue--tertiary-no-background[data-v-47ce59a3]:hover:not(:disabled){background-color:transparent}.button-vue--tertiary-on-primary[data-v-47ce59a3]{color:var(--color-primary-element-text)}.button-vue--tertiary-on-primary[data-v-47ce59a3]:hover:not(:disabled){background-color:transparent}.button-vue--success[data-v-47ce59a3]{border-color:var(--color-success-hover);background-color:var(--color-success);color:var(--color-success-text)}.button-vue--success[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--success[data-v-47ce59a3]:active{background-color:var(--color-success)}.button-vue--warning[data-v-47ce59a3]{border-color:var(--color-warning-hover);background-color:var(--color-warning);color:var(--color-warning-text)}.button-vue--warning[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--warning[data-v-47ce59a3]:active{background-color:var(--color-warning)}.button-vue--error[data-v-47ce59a3]{border-color:var(--color-error-hover);background-color:var(--color-error);color:var(--color-error-text)}.button-vue--error[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--error[data-v-47ce59a3]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-47ce59a3]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--error[data-v-47ce59a3],.button-vue--legacy.button-vue--success[data-v-47ce59a3],.button-vue--legacy.button-vue--warning[data-v-47ce59a3]{color:#fff}.material-design-icon[data-v-6be9fa31]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-6be9fa31]{--note-card-icon-size: 20px;--note-card-padding: calc(2 * var(--default-grid-baseline));color:var(--color-main-text)!important;background-color:var(--note-background)!important;border-inline-start:var(--default-grid-baseline) solid var(--note-theme);border-radius:var(--border-radius-small);margin:1rem 0;padding:var(--note-card-padding);display:flex;flex-direction:row;gap:var(--note-card-padding)}.notecard__heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);font-weight:var(--font-weight-heading, 600)}.notecard__icon[data-v-6be9fa31]{color:var(--note-theme)}.notecard__icon--heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);margin-block:calc((1lh - 1em)/2) auto}.notecard--success[data-v-6be9fa31]{--note-background: var(--color-success);--note-theme: var(--color-success-text)}.notecard--info[data-v-6be9fa31]{--note-background: var(--color-info);--note-theme: var(--color-info-text)}.notecard--error[data-v-6be9fa31]{--note-background: var(--color-error);--note-theme: var(--color-error-text)}.notecard--warning[data-v-6be9fa31]{--note-background: var(--color-warning);--note-theme: var(--color-warning-text)}.notecard--legacy[data-v-6be9fa31]{background-color:color-mix(in srgb,var(--note-background),var(--color-main-background) 80%)!important;color:var(--color-main-text)!important}.material-design-icon[data-v-aaedb1c3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-aaedb1c3]{display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue.icon-vue--inline[data-v-aaedb1c3]{display:inline-flex!important;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-aaedb1c3]{line-height:0}.icon-vue[data-v-aaedb1c3] svg{fill:currentColor;width:var(--fb515064);height:var(--fb515064);max-width:var(--fb515064);max-height:var(--fb515064)}.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl){transform:scaleX(-1)}._material-design-icon_-FH6E{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._radioGroup_checkboxRadioContainer_yHVcN .checkbox-content{max-width:unset!important}._material-design-icon_UQYft{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncFormBox_VNb0a{display:flex;flex-direction:column;gap:calc(1 * var(--default-grid-baseline))}._ncFormBox_VNb0a._ncFormBox_row_NzGjv{flex-direction:row}._ncFormBox__item_JIu9L{border-radius:var(--border-radius-small)!important}._ncFormBox_col_UaYOI{flex-direction:column}._ncFormBox_col_UaYOI ._ncFormBox__item_JIu9L:first-child{border-start-start-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._ncFormBox_col_UaYOI ._ncFormBox__item_JIu9L:last-child{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}._ncFormBox_row_NzGjv{flex-direction:row}._ncFormBox_row_NzGjv ._ncFormBox__item_JIu9L{flex:1 1}._ncFormBox_row_NzGjv ._ncFormBox__item_JIu9L:first-child{border-start-start-radius:var(--border-radius-element)!important;border-end-start-radius:var(--border-radius-element)!important}._ncFormBox_row_NzGjv ._ncFormBox__item_JIu9L:last-child{border-end-end-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._material-design-icon_pO-y6{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formGroup_eD8cV{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-group-content-gap: calc(2 * var(--default-grid-baseline))}._formGroup_eD8cV._formGroup_noGap_Eo-YJ{--form-group-content-gap: 0}._formGroup__label_KZ5RR{padding-inline:var(--form-element-label-offset);font-size:var(--font-size);font-weight:var(--font-weight-heading, bold)}._formGroup__description_rYOct{padding-inline:var(--form-element-label-offset);color:var(--color-text-maxcontrast)}._formGroup__content_ypTY1{display:flex;flex-direction:column;gap:var(--form-group-content-gap);margin-block-start:calc(2.5 * var(--default-grid-baseline))}._formGroup__content_ypTY1._formGroup__content_only_z-ggI{margin-block-start:0}._material-design-icon_kNZhO{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._radioGroupButton_QcVyU{--radio-group-button--border-radius: var(--border-radius-small);--radio-group-button--border-width: 1px;--radio-group-button--color: var(--color-primary-element-light-text);--radio-group-button--background-color: var(--color-primary-element-light);--radio-group-button--background-color-hover: var(--color-primary-element-light-hover);--radio-group-button--padding: 1px;cursor:pointer;color:var(--radio-group-button--color);background-color:var(--radio-group-button--background-color);will-change:transform;transition-property:color,background-color,transform;transition-duration:var(--animation-quick);border:var(--radio-group-button--border-width) solid var(--radio-group-button--background-color-hover);border-bottom-width:2px;border-radius:var(--radio-group-button--border-radius);display:flex;flex-direction:row;align-items:center;justify-content:center;text-align:center;min-height:var(--default-clickable-area);padding-block:var(--radio-group-button--padding) 0;padding-inline:var(--radio-group-button--padding)}._radioGroupButton_QcVyU *{cursor:pointer}._radioGroupButton_QcVyU:has(._radioGroupButton__label_QupyB){padding-inline:calc(var(--radio-group-button--padding) + var(--border-radius-element))}._radioGroupButton_QcVyU:has(._radioGroupButton__icon_FNlLj){padding-inline-start:var(--radio-group-button--padding)}._radioGroupButton_QcVyU:hover:not(._radioGroupButton_disabled_t8I3Z){background-color:var(--radio-group-button--background-color-hover)}._radioGroupButton_QcVyU:active:not(._radioGroupButton_disabled_t8I3Z){transform:scale(.985)}._radioGroupButton_QcVyU:focus-within{--radio-group-button--border-width: 2px;--radio-group-button--padding: 0px;border:var(--radio-group-button--border-width) solid var(--color-main-text)!important;outline:calc(var(--default-grid-baseline) / 2) var(--color-main-background)}._radioGroupButton_active_ZblnM{--radio-group-button--color: var(--color-primary-element-text);--radio-group-button--background-color: var(--color-primary-element);--radio-group-button--background-color-hover: var(--color-primary-element-hover)}._radioGroupButton__label_QupyB{font-weight:var(--font-weight-element, bold)}._radioGroupButton_disabled_t8I3Z{filter:saturate(.7);opacity:.5;cursor:default}._radioGroupButton_disabled_t8I3Z *{cursor:default}._radioGroupButton__icon_FNlLj{--radio-group-button--icon-size: calc(var(--default-clickable-area) - 4px);display:flex;align-items:center;justify-content:center;height:100%;width:var(--radio-group-button--icon-size)}._radioGroupButton__icon_FNlLj *{--default-clickable-area: var(--radio-group-button--icon-size)}.settings-navigation[data-v-c8fdb9c7]{width:fit-content;padding-block-start:var(--default-clickable-area, 44px);padding-inline-start:30px;margin-block-end:12px}.settings-navigation[data-v-c8fdb9c7] [class*=radioGroupButton]{white-space:nowrap}@media only screen and (max-width:512px){.dialog__modal .modal-wrapper--small .modal-container{width:fit-content;height:unset;max-height:90%;position:relative;top:unset;border-radius:var(--border-radius-element)}}.material-design-icon[data-v-24e91b99]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dialog[data-v-24e91b99]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container{display:flex!important;padding-block:4px 0;padding-inline:12px 0}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content{display:flex;flex-direction:column;overflow:hidden}.dialog__wrapper[data-v-24e91b99]{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.dialog__wrapper--collapsed[data-v-24e91b99]{flex-direction:column}.dialog__navigation[data-v-24e91b99]{display:flex;flex-shrink:0}.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99]{flex-direction:column;overflow:hidden auto;height:100%;min-width:200px;margin-inline-end:20px}.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99]{flex-direction:row;justify-content:space-between;overflow:auto hidden;width:100%;min-width:100%}.dialog__name[data-v-24e91b99]{font-size:21px;text-align:center;height:fit-content;min-height:var(--default-clickable-area);line-height:var(--default-clickable-area);overflow-wrap:break-word;margin-block:0 12px}.dialog__content[data-v-24e91b99]{flex:1;min-height:0;overflow:auto;padding-inline-end:12px}.dialog__text[data-v-24e91b99]{padding-block-end:6px}.dialog__actions[data-v-24e91b99]{display:flex;gap:6px;align-content:center;justify-content:end;width:100%;max-width:100%;padding-inline:0 12px;margin-inline:0;margin-block:0}.dialog__actions[data-v-24e91b99]:not(:empty){margin-block:6px 12px}@media only screen and (max-width:512px){.dialog__name[data-v-24e91b99]{text-align:start;margin-inline-end:var(--default-clickable-area)}}.material-design-icon[data-v-cf399190]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon[data-v-cf399190]{overflow:hidden}.loading-icon svg[data-v-cf399190]{animation:rotate var(--animation-duration, .8s) linear infinite}.material-design-icon[data-v-3aeb69e6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-3aeb69e6]{position:fixed;z-index:9998;top:0;inset-inline-start:0;display:block;width:100%;height:100%;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color),.5)}.modal-mask[data-v-3aeb69e6],.modal-mask[data-v-3aeb69e6] *{box-sizing:border-box}.modal-mask--opaque[data-v-3aeb69e6]{background-color:rgba(var(--backdrop-color),.92)}.modal-mask--light[data-v-3aeb69e6]{--backdrop-color: 255, 255, 255}.modal-header[data-v-3aeb69e6]{position:absolute;z-index:10001;top:0;inset-inline:0 0;display:flex!important;align-items:center;justify-content:space-between;width:100%;height:var(--header-height);overflow:hidden;transition:opacity .25s,visibility .25s}.modal-header__name[data-v-3aeb69e6]{overflow-x:hidden;width:100%;padding-inline:12px 0;transition:padding ease .1s;white-space:nowrap;text-overflow:ellipsis;font-size:16px;margin-block:0}@media only screen and (min-width:1024px){.modal-header__name[data-v-3aeb69e6]{padding-inline-start:calc(var(--header-height) * var(--v56ab185f));text-align:center}}.modal-header .icons-menu[data-v-3aeb69e6]{display:flex;align-items:center;justify-content:flex-end;align-self:flex-end}.modal-header .icons-menu .header-close[data-v-3aeb69e6]{display:flex;align-items:center;justify-content:center;margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);padding:0}.modal-header .icons-menu .play-pause-icons[data-v-3aeb69e6]{position:relative;width:var(--header-height);height:var(--header-height);margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3aeb69e6],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3aeb69e6]{opacity:1;border-radius:calc(var(--default-clickable-area) / 2);background-color:#7f7f7f40}.modal-header .icons-menu .play-pause-icons__icon[data-v-3aeb69e6]{width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);cursor:pointer;opacity:.7}.modal-header .icons-menu[data-v-3aeb69e6] .action-item{margin:calc((var(--header-height) - var(--default-clickable-area)) / 2)}.modal-header .icons-menu[data-v-3aeb69e6] .action-item--single{width:var(--default-clickable-area);height:var(--default-clickable-area);cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu .header-actions[data-v-3aeb69e6] button:focus-visible{box-shadow:none!important;outline:2px solid #fff!important}.modal-wrapper[data-v-3aeb69e6]{--modal-header-offset: var(--header-height);display:flex;align-items:center;justify-content:center;width:100%;height:100%}.modal-wrapper--no-header[data-v-3aeb69e6]{--modal-header-offset: var(--body-container-margin)}.modal-wrapper .prev[data-v-3aeb69e6],.modal-wrapper .next[data-v-3aeb69e6]{z-index:10000;height:35vh;min-height:300px;position:absolute;transition:opacity .25s;color:#fff}.modal-wrapper .prev[data-v-3aeb69e6]:focus-visible,.modal-wrapper .next[data-v-3aeb69e6]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev[data-v-3aeb69e6]{inset-inline-start:2px}.modal-wrapper .next[data-v-3aeb69e6]{inset-inline-end:2px}.modal-wrapper .modal-container[data-v-3aeb69e6]{position:relative;display:flex;padding:0;transition:transform .3s ease;border-radius:var(--border-radius-container);background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px #0003;overflow:auto}.modal-wrapper .modal-container__close[data-v-3aeb69e6]{z-index:1;position:absolute;top:4px;inset-inline-end:var(--default-grid-baseline)}.modal-wrapper .modal-container__content[data-v-3aeb69e6]{width:100%;min-height:52px;overflow:auto}.modal-wrapper--small>.modal-container[data-v-3aeb69e6]{width:400px;max-width:90%;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--normal>.modal-container[data-v-3aeb69e6]{max-width:90%;width:600px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--large>.modal-container[data-v-3aeb69e6]{max-width:90%;width:900px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--full>.modal-container[data-v-3aeb69e6]{width:100%;height:calc(100% - var(--modal-header-offset));position:absolute;top:var(--modal-header-offset);border-radius:0}@media only screen and ((max-width:512px)or (max-height:400px)){.modal-wrapper .modal-container[data-v-3aeb69e6]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--modal-header-offset));position:absolute;top:var(--modal-header-offset);border-radius:0}}.fade-enter-active[data-v-3aeb69e6],.fade-leave-active[data-v-3aeb69e6]{transition:opacity .25s}.fade-enter-from[data-v-3aeb69e6],.fade-leave-to[data-v-3aeb69e6]{opacity:0}.fade-visibility-enter-from[data-v-3aeb69e6],.fade-visibility-leave-to[data-v-3aeb69e6]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-3aeb69e6],.modal-in-leave-active[data-v-3aeb69e6],.modal-out-enter-active[data-v-3aeb69e6],.modal-out-leave-active[data-v-3aeb69e6]{transition:opacity .25s}.modal-in-enter-from[data-v-3aeb69e6],.modal-in-leave-to[data-v-3aeb69e6],.modal-out-enter-from[data-v-3aeb69e6],.modal-out-leave-to[data-v-3aeb69e6]{opacity:0}.modal-in-enter .modal-container[data-v-3aeb69e6],.modal-in-leave-to .modal-container[data-v-3aeb69e6]{transform:scale(.9)}.modal-out-enter .modal-container[data-v-3aeb69e6],.modal-out-leave-to .modal-container[data-v-3aeb69e6]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-3aeb69e6]{position:absolute;top:0;inset-inline-start:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3aeb69e6]{transition:.1s stroke-dashoffset;transform-origin:50% 50%;animation:progressring-3aeb69e6 linear var(--v86f86e3a) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3aeb69e6]{animation:breath-3aeb69e6 2s cubic-bezier(.4,0,.2,1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3aeb69e6]{animation-play-state:paused!important}@keyframes progressring-3aeb69e6{0%{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-3aeb69e6{0%{opacity:1}50%{opacity:0}to{opacity:1}}.material-design-icon[data-v-7206c1f1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-7206c1f1]{display:flex;align-items:center;gap:calc((var(--default-clickable-area) - 16px) / 2 / 2)}.action-item[data-v-7206c1f1]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-7206c1f1]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-7206c1f1]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-7206c1f1]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-7206c1f1]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-7206c1f1]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-7206c1f1]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-7206c1f1]{background-color:var(--open-background-color)}.action-item.action-item--wide[data-v-7206c1f1]{width:100%}.action-item__menutoggle__icon[data-v-7206c1f1]{width:20px;height:20px;object-fit:contain}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper{border-radius:var(--border-radius-element)}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner{border-radius:var(--border-radius-element);padding:4px;max-height:calc(100vh - var(--header-height));overflow:auto}._material-design-icon_CtXvA{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncPopover_oX-YA.v-popper--theme-nc-popover-9,._ncPopover_oX-YA.v-popper--theme-nc-popover-9 *{box-sizing:border-box}._ncPopover_oX-YA.v-popper--theme-nc-popover-9 .resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}._ncPopover_oX-YA.v-popper--theme-nc-popover-9 .resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper{z-index:100000;top:0;left:0;display:block!important}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper{box-shadow:0 1px 10px var(--color-box-shadow);border-radius:var(--border-radius-element);transition:transform var(--animation-quick)}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-element);overflow:hidden;background:var(--color-main-background)}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container{display:none}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__wrapper{transform-origin:bottom center}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__wrapper{transform-origin:top center}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__wrapper{transform-origin:left center}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__wrapper{transform-origin:right center}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true] .v-popper__wrapper{transform:scale(.96)}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false] .v-popper__wrapper{transform:scale(1)}.job-status[data-v-0e5a1326]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.job-status__dot[data-v-0e5a1326]{flex:0 0 auto;width:10px;height:10px;border-radius:10px;background-color:var(--color-text-maxcontrast)}.job-status--succeeded .job-status__dot[data-v-0e5a1326]{background-color:var(--color-success)}.job-status--failed .job-status__dot[data-v-0e5a1326],.job-status--crashed .job-status__dot[data-v-0e5a1326]{background-color:var(--color-error)}.job-details[data-v-c21cb020]{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;padding:0;margin:0}.job-details dt[data-v-c21cb020]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap}.job-details dd[data-v-c21cb020]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.job-details__class[data-v-c21cb020]{font-family:var(--font-face-monospace, monospace);-webkit-user-select:all;user-select:all}table[data-v-10f09a63]{table-layout:fixed}.status-cell[data-v-10f09a63]{width:32px}.when-cell[data-v-10f09a63]{width:180px}.duration-cell[data-v-10f09a63]{width:90px}.memory-cell[data-v-10f09a63]{width:110px}.info-cell[data-v-10f09a63]{width:44px;padding:0}.section-heading[data-v-0eb9e63c]{justify-content:start}.icon[data-v-0eb9e63c]{display:inline-flex;vertical-align:middle;margin-right:8px}table[data-v-452808c1]{table-layout:fixed}.job-cell[data-v-452808c1]{padding-inline-start:38px}.count-cell[data-v-452808c1]{width:80px}.memory-cell[data-v-452808c1]{width:154px}.stat-tile[data-v-4a64fa3b]{display:grid;grid-template-rows:auto 1fr;gap:2px;padding:10px 12px;border-radius:var(--border-radius);background-color:var(--color-background-hover)}.stat-tile__label[data-v-4a64fa3b]{font-size:.72em;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-maxcontrast)}.stat-tile__value[data-v-4a64fa3b]{font-size:1.25em;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;word-break:break-word}.stat-tile__value--warning[data-v-4a64fa3b]{color:var(--color-warning-text, var(--color-warning))}.stat-tile__value--critical[data-v-4a64fa3b]{color:var(--color-error-text, var(--color-error))}.background-jobs h3[data-v-612ee243]{font-weight:700;margin:16px 0 8px}.section-skeleton .skeleton-bar[data-v-9a2b13f0]{background:var(--color-background-dark, #ededed);border-radius:var(--border-radius, 3px);animation:skeleton-pulse-9a2b13f0 1.5s ease-in-out infinite}.section-skeleton .skeleton-title[data-v-9a2b13f0]{height:24px;width:40%;margin-bottom:20px}.section-skeleton .skeleton-chart[data-v-9a2b13f0]{height:200px;margin-bottom:16px}@keyframes skeleton-pulse-9a2b13f0{50%{opacity:.5}}.db-live[data-v-3092ee62]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-block-end:12px}.db-live__box[data-v-3092ee62]{border:1px solid var(--color-border);border-radius:var(--border-radius-large);padding:12px 16px;background:var(--color-main-background)}.db-live__head[data-v-3092ee62]{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.db-live__label[data-v-3092ee62]{color:var(--color-text-maxcontrast);font-size:.85rem}.db-live__value[data-v-3092ee62]{font-weight:700;font-size:1.1rem;white-space:nowrap}.db-live__chart[data-v-3092ee62]{block-size:70px;margin-block-start:8px}.rule-card[data-v-40b93a60]{border:1px solid var(--color-border);border-radius:var(--border-radius-large);padding:12px 16px;background:var(--color-main-background)}.rule-card--fail[data-v-40b93a60]{border-inline-start:4px solid var(--color-error)}.rule-card--skipped[data-v-40b93a60]{opacity:.7}.rule-card__header[data-v-40b93a60]{display:flex;align-items:center;gap:8px}.rule-card__dot[data-v-40b93a60]{inline-size:10px;block-size:10px;border-radius:50%;flex:0 0 auto;background:var(--color-text-maxcontrast)}.rule-card__dot--alert[data-v-40b93a60]{background:var(--color-error-text, var(--color-error))}.rule-card__dot--warning[data-v-40b93a60]{background:var(--color-warning-text, var(--color-warning))}.rule-card__dot--notice[data-v-40b93a60]{background:var(--color-text-maxcontrast)}.rule-card__title-block[data-v-40b93a60]{flex:1 1 auto;min-inline-size:0}.rule-card__title[data-v-40b93a60]{margin:0;font-size:1rem;font-weight:700}.rule-card__meta[data-v-40b93a60]{display:flex;gap:6px;color:var(--color-text-maxcontrast);font-size:.85rem}.rule-card__chip[data-v-40b93a60]{border-radius:var(--border-radius-pill);padding:2px 10px;font-size:.85rem;background:var(--color-background-dark);white-space:nowrap}.rule-card__chip--fail[data-v-40b93a60]{background:var(--color-error-hover, var(--color-background-dark));color:var(--color-error-text, var(--color-error))}.rule-card__chip--ok[data-v-40b93a60]{background:var(--color-success-hover, var(--color-background-dark));color:var(--color-success-text, var(--color-success))}.rule-card__issue[data-v-40b93a60]{margin:8px 0 0;font-weight:700}.rule-card__line[data-v-40b93a60]{margin:6px 0 0}.rule-card__line[data-v-40b93a60],.rule-card__issue[data-v-40b93a60]{text-wrap:pretty}.rule-card__line--muted[data-v-40b93a60]{color:var(--color-text-maxcontrast)}.rule-card__affected[data-v-40b93a60]{margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;list-style:none}.rule-card__details[data-v-40b93a60]{margin:10px 0 0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:.9rem;padding:0}.rule-card__details dt[data-v-40b93a60]{color:var(--color-text-maxcontrast);padding:0;inline-size:auto;white-space:nowrap;text-align:start}.rule-card__details dd[data-v-40b93a60]{margin:0;padding:0}.rule-card__tag[data-v-40b93a60]{margin-inline-start:6px;color:var(--color-warning-text, var(--color-text-maxcontrast))}.rule-card__actions[data-v-40b93a60]{margin-block-start:10px;display:flex;align-items:center;gap:12px}.rule-card__doc[data-v-40b93a60]{color:var(--color-primary-element)}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.nc-select.v-select.select .select__helper-text{display:flex;align-items:center;margin:0;padding-block:4px;padding-inline:var(--border-radius-element);color:var(--color-text-maxcontrast);font-size:var(--default-font-size);overflow-wrap:anywhere}.nc-select.v-select.select .select__helper-text--error{color:var(--color-text-error)}.nc-select.v-select.select .select__helper-text--success{color:var(--color-text-success)}.nc-select.v-select.select .select__helper-text .select__helper-text-icon{margin-inline-end:8px}.nc-select.v-select.select{--vs-search-input-color: var(--color-main-text);--vs-search-input-bg: var(--color-main-background);--vs-search-input-placeholder-color: var(--color-text-maxcontrast);--vs-font-size: var(--default-font-size);--vs-line-height: var(--default-line-height);--vs-state-disabled-bg: var(--color-background-hover);--vs-state-disabled-color: var(--color-text-maxcontrast);--vs-state-disabled-controls-color: var(--color-text-maxcontrast);--vs-state-disabled-cursor: not-allowed;--vs-disabled-bg: var(--color-background-hover);--vs-disabled-color: var(--color-text-maxcontrast);--vs-disabled-cursor: not-allowed;--vs-border-color: var(--color-border-maxcontrast);--vs-border-width: var(--border-width-input, 2px) !important;--vs-border-style: solid;--vs-border-radius: var(--border-radius-element);--vs-controls-color: var(--color-main-text);--vs-selected-bg: var(--color-background-hover);--vs-selected-color: var(--color-main-text);--vs-selected-border-color: var(--vs-border-color);--vs-selected-border-style: var(--vs-border-style);--vs-selected-border-width: var(--vs-border-width);--vs-dropdown-bg: var(--color-main-background);--vs-dropdown-color: var(--color-main-text);--vs-dropdown-z-index: 9999;--vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);--vs-dropdown-option-padding: 8px 20px;--vs-dropdown-option--active-bg: var(--color-background-hover);--vs-dropdown-option--active-color: var(--color-main-text);--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);--vs-dropdown-option--deselect-bg: var(--color-error);--vs-dropdown-option--deselect-color: #fff;--vs-transition-duration: 0ms;--vs-actions-padding: 0 8px 0 8px;min-height:calc(var(--default-clickable-area) - 2 * var(--border-width-input, 2px));min-width:260px;margin:6px 0 var(--default-grid-baseline)}.nc-select.v-select.select.vs--open{--vs-border-width: var(--border-width-input-focused, 2px)}.nc-select.v-select.select .vs__selected{min-height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));min-width:0;max-width:100%;margin:calc(var(--default-grid-baseline) / 2);padding-block:0;padding-inline:12px 8px;border-radius:16px!important;background:var(--color-primary-element-light);border:none}.nc-select.v-select.select .vs__search{width:100%;--input-padding-end: calc(var(--default-clickable-area) + var(--default-grid-baseline));border:none!important;margin:0!important;padding:0!important;height:auto!important}.nc-select.v-select.select .vs__selected-options:has(.vs__selected) .vs__search .input-field__input+.input-field__label{--input-label-font-size: var(--font-size-small, 13px);line-height:1.5;inset-block-start:calc(-1.5 * var(--input-label-font-size) / 2);font-weight:500;border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0;background-color:var(--color-main-background);padding-inline:var(--default-grid-baseline);margin-inline:calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.nc-select.v-select.select:not(.vs--multiple) .vs__dropdown-toggle{padding:0;overflow:visible;border:none!important;box-shadow:none!important;background:transparent}.nc-select.v-select.select .vs__dropdown-toggle{position:relative}.nc-select.v-select.select .vs__actions{position:absolute;z-index:999;inset-inline-end:0;top:50%;transform:translateY(-50%);height:100%;margin-block-start:1px;display:flex;align-items:center}.nc-select.v-select.select .vs__clear{margin-inline-end:2px}.nc-select.v-select.select.vs--open .vs__search .input-field__input{border-end-start-radius:0!important;border-end-end-radius:0!important}.nc-select.v-select.select.vs--disabled .vs__clear,.nc-select.v-select.select.vs--disabled .vs__dropdown-toggle,.nc-select.v-select.select.vs--disabled .vs__open-indicator,.nc-select.v-select.select.vs--disabled .vs__open-indicator-button,.nc-select.v-select.select.vs--disabled .vs__search,.nc-select.v-select.select.vs--disabled .vs__selected{background-color:transparent;color:var(--color-text-maxcontrast)}.nc-select.v-select.select.vs--disabled .vs__dropdown-toggle{--input-border-box-shadow-light: 0 -1px var(--color-border-dark), 0 0 0 1px color-mix(in srgb, var(--color-border-dark), 65% transparent);--input-border-box-shadow-dark: 0 1px var(--color-border-dark), 0 0 0 1px color-mix(in srgb, var(--color-border-dark), 65% transparent)}.nc-select.v-select.select.vs--disabled .vs__clear,.nc-select.v-select.select.vs--disabled .vs__deselect{display:none}.nc-select.v-select.select--no-wrap .vs__dropdown-toggle{overflow:hidden}.nc-select.v-select.select--no-wrap .vs__selected-options{flex-wrap:nowrap;overflow:auto!important;min-width:unset}.nc-select.v-select.select--no-wrap .vs__selected-options .vs__selected{min-width:unset}.nc-select.v-select.select--drop-up.vs--open .vs__search .input-field__input{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}.nc-select.v-select.select--drop-up.vs--open.vs--multiple .vs__dropdown-toggle{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important;border-block-end-color:var(--color-main-text)!important}.nc-select.v-select.select .vs__selected-options{min-height:unset}.nc-select.v-select.select .vs__selected-options .vs__selected~.vs__search:has(.input-field__input[readonly]){position:absolute}.nc-select.v-select.select .vs__selected-options{padding:0;border:none;overflow:visible}.nc-select.v-select.select.vs--multiple{margin-inline:1px}.nc-select.v-select.select.vs--multiple .vs__dropdown-toggle{border:var(--border-width-input-focused, 2px) solid transparent;box-shadow:var(--input-border-box-shadow);padding-block:calc(var(--default-grid-baseline) * 1.5) 0;padding-inline:var(--default-grid-baseline) calc(var(--default-clickable-area) + var(--default-grid-baseline));overflow:visible;background:var(--color-main-background)}.nc-select.v-select.select.vs--multiple:has(.vs__clear) .vs__dropdown-toggle{padding-inline-end:calc(2 * var(--default-clickable-area))}.nc-select.v-select.select.vs--multiple.vs--open .vs__dropdown-toggle{box-shadow:none!important;border-color:var(--color-main-text);border-block-end-color:var(--color-border-maxcontrast);border-end-start-radius:0;border-end-end-radius:0;outline:2px solid var(--color-main-background)}.nc-select.v-select.select.vs--multiple .vs__search .input-field__input{box-shadow:none!important;background:transparent}.nc-select.v-select.select.vs--multiple .vs__search{width:0;flex-grow:1;min-width:0}.nc-select.v-select.select.vs--multiple.select--no-wrap .vs__dropdown-toggle{overflow:hidden}.nc-select.v-select.select.vs--multiple.select--no-wrap .vs__actions{background:linear-gradient(90deg,transparent,var(--color-main-background) 10%,var(--color-main-background) 100%);margin-block:0px;margin-inline-end:2px;border-radius:var(--border-radius-element);height:calc(100% - 6px)}.nc-select.v-select.select.vs--multiple .vs__search .input-field{margin-block-start:0}.nc-select.v-select.select.vs--multiple .vs__search .input-field__main-wrapper{height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));margin:calc(var(--default-grid-baseline) / 2) 0}.nc-select.v-select.select.vs--multiple .select__label{position:absolute;z-index:1;inset-inline-start:var(--border-width-input-focused, 2px);top:50%;transform:translateY(-50%);font-size:var(--default-font-size);margin-inline:var(--border-radius-element);color:var(--color-text-maxcontrast);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - var(--clickable-area-large));transition:top var(--animation-quick),transform var(--animation-quick),font-size var(--animation-quick),font-weight var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.nc-select.v-select.select.vs--multiple:has(.vs__selected) .select__label,.nc-select.v-select.select.vs--multiple.vs--open .select__label{--input-label-font-size: var(--font-size-small, 13px);font-size:var(--input-label-font-size);line-height:1.5;top:calc(-1.5 * var(--input-label-font-size) / 2);transform:none;font-weight:500;border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0;background-color:var(--color-main-background);padding-inline:var(--default-grid-baseline);margin-inline:calc(var(--border-radius-element) - var(--default-grid-baseline));transition:top var(--animation-quick),transform var(--animation-quick),font-size var(--animation-quick),font-weight var(--animation-quick),background-color var(--animation-quick)}.nc-select.v-select.select.vs--single .vs__selected-options{position:relative;flex-wrap:nowrap;min-height:var(--default-clickable-area)}.nc-select.v-select.select.vs--single .vs__selected{position:absolute;inset-block:6px 0;inset-inline-start:0;inset-inline-end:0;margin:0;z-index:2;pointer-events:none;display:flex;align-items:center;padding-block:0;padding-inline:calc(var(--border-radius-element) + var(--border-width-input-focused, 2px)) var(--input-padding-end, calc(var(--default-clickable-area) + var(--default-grid-baseline)));background:unset!important;border:none;border-radius:0;height:unset;min-height:unset;font-size:var(--default-font-size);color:var(--color-main-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nc-select.v-select.select.vs--single:has(.input-field--label-outside) .vs__selected{inset-block-start:0}.nc-select.v-select.select.vs--single:has(.vs__clear) .vs__selected{padding-inline-end:calc(2 * var(--default-clickable-area))}.nc-select.v-select.select.vs--single.vs--loading .vs__selected,.nc-select.v-select.select.vs--single.vs--open .vs__selected{opacity:.4}.nc-select.v-select.select.vs--single.vs--searching .vs__selected{display:none}.nc-select__dropdown.vs__dropdown-menu{--vs-border-color: var(--color-border-maxcontrast);--vs-border-style: solid;--vs-border-radius: var(--border-radius-element);--vs-dropdown-bg: var(--color-main-background);--vs-dropdown-color: var(--color-main-text);--vs-dropdown-option-padding: 8px 20px;--vs-dropdown-option--active-bg: var(--color-background-hover);--vs-dropdown-option--active-color: var(--color-main-text);--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--color-border-maxcontrast);--vs-dropdown-option--deselect-bg: var(--color-error);--vs-dropdown-option--deselect-color: #fff;border-width:var(--border-width-input-focused)!important;border-color:var(--color-main-text)!important;outline:none!important;box-shadow:-2px 0 0 var(--color-main-background),0 2px 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important;padding:4px!important}.nc-select__dropdown.vs__dropdown-menu--floating{width:max-content;position:absolute;top:0;inset-inline-start:0}.nc-select__dropdown.vs__dropdown-menu--floating-placement-top{border-radius:var(--vs-border-radius)!important;border-top-style:var(--vs-border-style)!important;box-shadow:0 -2px 0 var(--color-main-background),-2px 0 0 var(--color-main-background),0 2px 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important}.nc-select__dropdown.vs__dropdown-menu .vs__dropdown-option{border-radius:6px!important}.nc-select__dropdown.vs__dropdown-menu .vs__no-options{color:var(--color-text-maxcontrast)!important}.nc-select.v-select.select .vs__dropdown-toggle{--input-border-box-shadow-light: 0 -1px var(--vs-border-color), 0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);--input-border-box-shadow-dark: 0 -1px var(--vs-border-color), 0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);--input-border-box-shadow: var(--input-border-box-shadow-light);border:none;border-radius:var(--border-radius-element);box-shadow:var(--input-border-box-shadow)}.nc-select.v-select.select:not(.vs--disabled) .vs__dropdown-toggle:hover{box-shadow:0 0 0 1px var(--vs-border-color)}@media(prefers-color-scheme:dark){.nc-select.v-select.select .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .nc-select.v-select.select .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .nc-select.v-select.select .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-light)}.select--legacy.nc-select.v-select.select .vs__dropdown-toggle{box-shadow:0 0 0 1px var(--vs-border-color)}.select--legacy.nc-select.v-select.select .vs__dropdown-toggle:hover:not([disabled]){box-shadow:0 0 0 2px var(--vs-border-color)}:root{--vs-colors--lightest:rgba(60,60,60,.26);--vs-colors--light:rgba(60,60,60,.5);--vs-colors--dark:#333;--vs-colors--darkest:rgba(0,0,0,.15);--vs-search-input-color:inherit;--vs-search-input-bg:#fff;--vs-search-input-placeholder-color:inherit;--vs-font-size:1rem;--vs-line-height:1.4;--vs-state-disabled-bg:#f8f8f8;--vs-state-disabled-color:var(--vs-colors--light);--vs-state-disabled-controls-color:var(--vs-colors--light);--vs-state-disabled-cursor:not-allowed;--vs-border-color:var(--vs-colors--lightest);--vs-border-width:1px;--vs-border-style:solid;--vs-border-radius:4px;--vs-actions-padding:4px 6px 0 3px;--vs-controls-color:var(--vs-colors--light);--vs-controls-size:1;--vs-controls--deselect-text-shadow:0 1px 0 #fff;--vs-selected-bg:#f0f0f0;--vs-selected-color:var(--vs-colors--dark);--vs-selected-border-color:var(--vs-border-color);--vs-selected-border-style:var(--vs-border-style);--vs-selected-border-width:var(--vs-border-width);--vs-dropdown-bg:#fff;--vs-dropdown-color:inherit;--vs-dropdown-z-index:1000;--vs-dropdown-min-width:160px;--vs-dropdown-max-height:350px;--vs-dropdown-box-shadow:0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg:#000;--vs-dropdown-option-color:var(--vs-dropdown-color);--vs-dropdown-option-padding:3px 20px;--vs-dropdown-option--active-bg:#136cfb;--vs-dropdown-option--active-color:#fff;--vs-dropdown-option--kb-focus-box-shadow:inset 0px 0px 0px 2px #949494;--vs-dropdown-option--deselect-bg:#fb5858;--vs-dropdown-option--deselect-color:#fff;--vs-transition-timing-function:cubic-bezier(1,-.115,.975,.855);--vs-transition-duration:.15s}.v-select{font-family:inherit;position:relative}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function:cubic-bezier(1,.5,.8,1);--vs-transition-duration:.15s}@keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg:var(--vs-state-disabled-bg);--vs-disabled-color:var(--vs-state-disabled-color);--vs-disabled-cursor:var(--vs-state-disabled-cursor)}.vs--disabled{.vs__clear,.vs__dropdown-toggle,.vs__open-indicator,.vs__open-indicator-button,.vs__search,.vs__selected{background-color:var(--vs-disabled-bg);cursor:var(--vs-disabled-cursor)}}.v-select[dir=rtl]{.vs__actions{padding:0 3px 0 6px}.vs__clear{margin-left:6px;margin-right:0}.vs__deselect{margin-left:0;margin-right:2px}.vs__dropdown-menu{text-align:right}}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vs-search-input-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);display:flex;padding:0 0 4px;white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;min-width:0;padding:0 2px;position:relative}.vs__actions{align-items:center;display:flex;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator-button{background-color:transparent;border:0;cursor:pointer;padding:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{background-color:transparent;border:0;cursor:pointer;fill:var(--vs-controls-color);margin-right:8px;padding:0}.vs__dropdown-menu{background:var(--vs-dropdown-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-style:none;box-shadow:var(--vs-dropdown-box-shadow);box-sizing:border-box;color:var(--vs-dropdown-color);display:block;left:0;list-style:none;margin:0;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;padding:5px 0;position:absolute;text-align:left;top:calc(100% - var(--vs-border-width));width:100%;z-index:var(--vs-dropdown-z-index)}.vs__no-options{text-align:center}.vs__dropdown-option{clear:both;color:var(--vs-dropdown-option-color);cursor:pointer;display:block;line-height:1.42857143;padding:var(--vs-dropdown-option-padding);white-space:nowrap}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--kb-focus{box-shadow:var(--vs-dropdown-option--kb-focus-box-shadow)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);display:flex;line-height:var(--vs-line-height);margin:4px 2px 0;min-width:0;padding:0 .25em;z-index:0}.vs__deselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-flex;fill:var(--vs-controls-color);margin-left:4px;padding:0;text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single{.vs__selected{background-color:transparent;border-color:transparent}&.vs--loading .vs__selected,&.vs--open .vs__selected{max-width:100%;opacity:.4;position:absolute}&.vs--searching .vs__selected{display:none}}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-ms-clear,.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration{display:none}.vs__search,.vs__search:focus{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-left:none;box-shadow:none;color:var(--vs-search-input-color);flex-grow:1;font-size:var(--vs-font-size);line-height:var(--vs-line-height);margin:4px 0 0;max-width:100%;outline:none;padding:0 7px;width:0;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable{.vs__search{opacity:1}&:not(.vs--disabled) .vs__search{cursor:pointer}}.vs--single.vs--searching:not(.vs--open):not(.vs--loading){.vs__search{opacity:.2}}.vs__spinner{align-self:center;animation:vSelectSpinner 1.1s linear infinite;border:.9em solid hsla(0,0%,39.2%,.1);border-left-color:#3c3c3c73;font-size:5px;opacity:0;overflow:hidden;text-indent:-9999em;transform:translateZ(0) scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;height:5em;transform:scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));width:5em}.vs--loading .vs__spinner{opacity:1}.material-design-icon[data-v-c843f2cd]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.name-parts[data-v-c843f2cd]{display:flex;max-width:100%;min-width:0;cursor:inherit}.name-parts__first[data-v-c843f2cd]{overflow:hidden;text-overflow:ellipsis;white-space:pre}.name-parts__last[data-v-c843f2cd]{flex:0 0 auto;white-space:pre}.name-parts__first[data-v-c843f2cd],.name-parts__last[data-v-c843f2cd]{cursor:inherit}.name-parts__first strong[data-v-c843f2cd],.name-parts__last strong[data-v-c843f2cd]{font-weight:700}.material-design-icon[data-v-feb04bef]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}/*! +.material-design-icon[data-v-47ce59a3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-47ce59a3]{--button-size: var(--default-clickable-area);--button-inner-size: calc(var(--button-size) - 4px);--button-radius: var(--border-radius-element);--button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));--button-padding: var(--default-grid-baseline) var(--button-padding-default);color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:1px solid var(--color-primary-element-light-hover);border-bottom-width:2px;border-radius:var(--button-radius);box-sizing:border-box;position:relative;width:fit-content;overflow:hidden;padding-block:1px 0;padding-inline:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);display:flex;align-items:center;justify-content:center;will-change:transform;transition-property:color,border-color,background-color,transform;transition-duration:.1s;transition-timing-function:linear;cursor:pointer;font-size:var(--default-font-size);font-weight:var(--font-weight-element, bold)}.button-vue--size-small[data-v-47ce59a3]{--button-size: var(--clickable-area-small)}.button-vue--size-large[data-v-47ce59a3]{--button-size: var(--clickable-area-large)}.button-vue[data-v-47ce59a3] *{cursor:pointer}.button-vue[data-v-47ce59a3]:focus{outline:none}.button-vue[data-v-47ce59a3]:disabled{filter:saturate(.7);opacity:.5;cursor:default}.button-vue[data-v-47ce59a3]:disabled *{cursor:default}.button-vue[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-47ce59a3]:active:not(:disabled){background-color:var(--color-primary-element-light);transform:scale(.985)}.button-vue__wrapper[data-v-47ce59a3]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-47ce59a3]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-47ce59a3]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-47ce59a3]{flex-direction:row-reverse}.button-vue--reverse[data-v-47ce59a3]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-47ce59a3]{--default-clickable-area: var(--button-inner-size);height:var(--button-inner-size);width:var(--button-inner-size);min-height:var(--button-inner-size);min-width:var(--button-inner-size);display:flex;justify-content:center;align-items:center}.button-vue__icon[data-v-47ce59a3]:empty{display:none}.button-vue--size-small .button-vue__icon[data-v-47ce59a3]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-47ce59a3] svg{height:16px;width:16px}.button-vue__text[data-v-47ce59a3]{font-weight:var(--font-weight-element, bold);margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue__text[data-v-47ce59a3]:empty{display:none}.button-vue[data-v-47ce59a3]:has(.button-vue__text:empty):not(.button-vue--wide){--button-padding: var(--button-radius);line-height:1;width:var(--button-size)!important}.button-vue[data-v-47ce59a3]:has(.button-vue__icon:empty){--button-padding: var(--button-padding-default)}.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-47ce59a3]{padding-inline:var(--default-grid-baseline)}.button-vue--wide[data-v-47ce59a3]{width:100%}.button-vue[data-v-47ce59a3]:focus-visible{outline:2px solid var(--color-main-text)!important;box-shadow:0 0 0 4px var(--color-main-background)!important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-47ce59a3]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element);background-color:transparent}.button-vue--primary[data-v-47ce59a3]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--primary[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--primary[data-v-47ce59a3]:active{background-color:var(--color-primary-element)}.button-vue--secondary[data-v-47ce59a3]{background-color:var(--color-primary-element-light);border-color:var(--color-primary-element-light-hover);color:var(--color-primary-element-light-text)}.button-vue--secondary[data-v-47ce59a3]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-47ce59a3]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary[data-v-47ce59a3]:not(.button-vue--legacy34):hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.button-vue--tertiary-no-background[data-v-47ce59a3]:hover:not(:disabled){background-color:transparent}.button-vue--tertiary-on-primary[data-v-47ce59a3]{color:var(--color-primary-element-text)}.button-vue--tertiary-on-primary[data-v-47ce59a3]:hover:not(:disabled){background-color:transparent}.button-vue--success[data-v-47ce59a3]{border-color:var(--color-success-hover);background-color:var(--color-success);color:var(--color-success-text)}.button-vue--success[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--success[data-v-47ce59a3]:active{background-color:var(--color-success)}.button-vue--warning[data-v-47ce59a3]{border-color:var(--color-warning-hover);background-color:var(--color-warning);color:var(--color-warning-text)}.button-vue--warning[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--warning[data-v-47ce59a3]:active{background-color:var(--color-warning)}.button-vue--error[data-v-47ce59a3]{border-color:var(--color-error-hover);background-color:var(--color-error);color:var(--color-error-text)}.button-vue--error[data-v-47ce59a3]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--error[data-v-47ce59a3]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-47ce59a3]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--error[data-v-47ce59a3],.button-vue--legacy.button-vue--success[data-v-47ce59a3],.button-vue--legacy.button-vue--warning[data-v-47ce59a3]{color:#fff}.material-design-icon[data-v-6be9fa31]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-6be9fa31]{--note-card-icon-size: 20px;--note-card-padding: calc(2 * var(--default-grid-baseline));color:var(--color-main-text)!important;background-color:var(--note-background)!important;border-inline-start:var(--default-grid-baseline) solid var(--note-theme);border-radius:var(--border-radius-small);margin:1rem 0;padding:var(--note-card-padding);display:flex;flex-direction:row;gap:var(--note-card-padding)}.notecard__heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);font-weight:var(--font-weight-heading, 600)}.notecard__icon[data-v-6be9fa31]{color:var(--note-theme)}.notecard__icon--heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);margin-block:calc((1lh - 1em)/2) auto}.notecard--success[data-v-6be9fa31]{--note-background: var(--color-success);--note-theme: var(--color-success-text)}.notecard--info[data-v-6be9fa31]{--note-background: var(--color-info);--note-theme: var(--color-info-text)}.notecard--error[data-v-6be9fa31]{--note-background: var(--color-error);--note-theme: var(--color-error-text)}.notecard--warning[data-v-6be9fa31]{--note-background: var(--color-warning);--note-theme: var(--color-warning-text)}.notecard--legacy[data-v-6be9fa31]{background-color:color-mix(in srgb,var(--note-background),var(--color-main-background) 80%)!important;color:var(--color-main-text)!important}.material-design-icon[data-v-aaedb1c3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-aaedb1c3]{display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue.icon-vue--inline[data-v-aaedb1c3]{display:inline-flex!important;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-aaedb1c3]{line-height:0}.icon-vue[data-v-aaedb1c3] svg{fill:currentColor;width:var(--fb515064);height:var(--fb515064);max-width:var(--fb515064);max-height:var(--fb515064)}.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl){transform:scaleX(-1)}._material-design-icon_-FH6E{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._radioGroup_checkboxRadioContainer_yHVcN .checkbox-content{max-width:unset!important}._material-design-icon_UQYft{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncFormBox_VNb0a{display:flex;flex-direction:column;gap:calc(1 * var(--default-grid-baseline))}._ncFormBox_VNb0a._ncFormBox_row_NzGjv{flex-direction:row}._ncFormBox__item_JIu9L{border-radius:var(--border-radius-small)!important}._ncFormBox_col_UaYOI{flex-direction:column}._ncFormBox_col_UaYOI ._ncFormBox__item_JIu9L:first-child{border-start-start-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._ncFormBox_col_UaYOI ._ncFormBox__item_JIu9L:last-child{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}._ncFormBox_row_NzGjv{flex-direction:row}._ncFormBox_row_NzGjv ._ncFormBox__item_JIu9L{flex:1 1}._ncFormBox_row_NzGjv ._ncFormBox__item_JIu9L:first-child{border-start-start-radius:var(--border-radius-element)!important;border-end-start-radius:var(--border-radius-element)!important}._ncFormBox_row_NzGjv ._ncFormBox__item_JIu9L:last-child{border-end-end-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._material-design-icon_pO-y6{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formGroup_eD8cV{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-group-content-gap: calc(2 * var(--default-grid-baseline))}._formGroup_eD8cV._formGroup_noGap_Eo-YJ{--form-group-content-gap: 0}._formGroup__label_KZ5RR{padding-inline:var(--form-element-label-offset);font-size:var(--font-size);font-weight:var(--font-weight-heading, bold)}._formGroup__description_rYOct{padding-inline:var(--form-element-label-offset);color:var(--color-text-maxcontrast)}._formGroup__content_ypTY1{display:flex;flex-direction:column;gap:var(--form-group-content-gap);margin-block-start:calc(2.5 * var(--default-grid-baseline))}._formGroup__content_ypTY1._formGroup__content_only_z-ggI{margin-block-start:0}._material-design-icon_kNZhO{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._radioGroupButton_QcVyU{--radio-group-button--border-radius: var(--border-radius-small);--radio-group-button--border-width: 1px;--radio-group-button--color: var(--color-primary-element-light-text);--radio-group-button--background-color: var(--color-primary-element-light);--radio-group-button--background-color-hover: var(--color-primary-element-light-hover);--radio-group-button--padding: 1px;cursor:pointer;color:var(--radio-group-button--color);background-color:var(--radio-group-button--background-color);will-change:transform;transition-property:color,background-color,transform;transition-duration:var(--animation-quick);border:var(--radio-group-button--border-width) solid var(--radio-group-button--background-color-hover);border-bottom-width:2px;border-radius:var(--radio-group-button--border-radius);display:flex;flex-direction:row;align-items:center;justify-content:center;text-align:center;min-height:var(--default-clickable-area);padding-block:var(--radio-group-button--padding) 0;padding-inline:var(--radio-group-button--padding)}._radioGroupButton_QcVyU *{cursor:pointer}._radioGroupButton_QcVyU:has(._radioGroupButton__label_QupyB){padding-inline:calc(var(--radio-group-button--padding) + var(--border-radius-element))}._radioGroupButton_QcVyU:has(._radioGroupButton__icon_FNlLj){padding-inline-start:var(--radio-group-button--padding)}._radioGroupButton_QcVyU:hover:not(._radioGroupButton_disabled_t8I3Z){background-color:var(--radio-group-button--background-color-hover)}._radioGroupButton_QcVyU:active:not(._radioGroupButton_disabled_t8I3Z){transform:scale(.985)}._radioGroupButton_QcVyU:focus-within{--radio-group-button--border-width: 2px;--radio-group-button--padding: 0px;border:var(--radio-group-button--border-width) solid var(--color-main-text)!important;outline:calc(var(--default-grid-baseline) / 2) var(--color-main-background)}._radioGroupButton_active_ZblnM{--radio-group-button--color: var(--color-primary-element-text);--radio-group-button--background-color: var(--color-primary-element);--radio-group-button--background-color-hover: var(--color-primary-element-hover)}._radioGroupButton__label_QupyB{font-weight:var(--font-weight-element, bold)}._radioGroupButton_disabled_t8I3Z{filter:saturate(.7);opacity:.5;cursor:default}._radioGroupButton_disabled_t8I3Z *{cursor:default}._radioGroupButton__icon_FNlLj{--radio-group-button--icon-size: calc(var(--default-clickable-area) - 4px);display:flex;align-items:center;justify-content:center;height:100%;width:var(--radio-group-button--icon-size)}._radioGroupButton__icon_FNlLj *{--default-clickable-area: var(--radio-group-button--icon-size)}.settings-navigation[data-v-c8fdb9c7]{width:fit-content;padding-block-start:var(--default-clickable-area, 44px);padding-inline-start:30px;margin-block-end:12px}.settings-navigation[data-v-c8fdb9c7] [class*=radioGroupButton]{white-space:nowrap}@media only screen and (max-width:512px){.dialog__modal .modal-wrapper--small .modal-container{width:fit-content;height:unset;max-height:90%;position:relative;top:unset;border-radius:var(--border-radius-element)}}.material-design-icon[data-v-24e91b99]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dialog[data-v-24e91b99]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container{display:flex!important;padding-block:4px 0;padding-inline:12px 0}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content{display:flex;flex-direction:column;overflow:hidden}.dialog__wrapper[data-v-24e91b99]{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.dialog__wrapper--collapsed[data-v-24e91b99]{flex-direction:column}.dialog__navigation[data-v-24e91b99]{display:flex;flex-shrink:0}.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99]{flex-direction:column;overflow:hidden auto;height:100%;min-width:200px;margin-inline-end:20px}.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99]{flex-direction:row;justify-content:space-between;overflow:auto hidden;width:100%;min-width:100%}.dialog__name[data-v-24e91b99]{font-size:21px;text-align:center;height:fit-content;min-height:var(--default-clickable-area);line-height:var(--default-clickable-area);overflow-wrap:break-word;margin-block:0 12px}.dialog__content[data-v-24e91b99]{flex:1;min-height:0;overflow:auto;padding-inline-end:12px}.dialog__text[data-v-24e91b99]{padding-block-end:6px}.dialog__actions[data-v-24e91b99]{display:flex;gap:6px;align-content:center;justify-content:end;width:100%;max-width:100%;padding-inline:0 12px;margin-inline:0;margin-block:0}.dialog__actions[data-v-24e91b99]:not(:empty){margin-block:6px 12px}@media only screen and (max-width:512px){.dialog__name[data-v-24e91b99]{text-align:start;margin-inline-end:var(--default-clickable-area)}}.material-design-icon[data-v-cf399190]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon[data-v-cf399190]{overflow:hidden}.loading-icon svg[data-v-cf399190]{animation:rotate var(--animation-duration, .8s) linear infinite}.material-design-icon[data-v-3aeb69e6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-3aeb69e6]{position:fixed;z-index:9998;top:0;inset-inline-start:0;display:block;width:100%;height:100%;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color),.5)}.modal-mask[data-v-3aeb69e6],.modal-mask[data-v-3aeb69e6] *{box-sizing:border-box}.modal-mask--opaque[data-v-3aeb69e6]{background-color:rgba(var(--backdrop-color),.92)}.modal-mask--light[data-v-3aeb69e6]{--backdrop-color: 255, 255, 255}.modal-header[data-v-3aeb69e6]{position:absolute;z-index:10001;top:0;inset-inline:0 0;display:flex!important;align-items:center;justify-content:space-between;width:100%;height:var(--header-height);overflow:hidden;transition:opacity .25s,visibility .25s}.modal-header__name[data-v-3aeb69e6]{overflow-x:hidden;width:100%;padding-inline:12px 0;transition:padding ease .1s;white-space:nowrap;text-overflow:ellipsis;font-size:16px;margin-block:0}@media only screen and (min-width:1024px){.modal-header__name[data-v-3aeb69e6]{padding-inline-start:calc(var(--header-height) * var(--v56ab185f));text-align:center}}.modal-header .icons-menu[data-v-3aeb69e6]{display:flex;align-items:center;justify-content:flex-end;align-self:flex-end}.modal-header .icons-menu .header-close[data-v-3aeb69e6]{display:flex;align-items:center;justify-content:center;margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);padding:0}.modal-header .icons-menu .play-pause-icons[data-v-3aeb69e6]{position:relative;width:var(--header-height);height:var(--header-height);margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3aeb69e6],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3aeb69e6]{opacity:1;border-radius:calc(var(--default-clickable-area) / 2);background-color:#7f7f7f40}.modal-header .icons-menu .play-pause-icons__icon[data-v-3aeb69e6]{width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);cursor:pointer;opacity:.7}.modal-header .icons-menu[data-v-3aeb69e6] .action-item{margin:calc((var(--header-height) - var(--default-clickable-area)) / 2)}.modal-header .icons-menu[data-v-3aeb69e6] .action-item--single{width:var(--default-clickable-area);height:var(--default-clickable-area);cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu .header-actions[data-v-3aeb69e6] button:focus-visible{box-shadow:none!important;outline:2px solid #fff!important}.modal-wrapper[data-v-3aeb69e6]{--modal-header-offset: var(--header-height);display:flex;align-items:center;justify-content:center;width:100%;height:100%}.modal-wrapper--no-header[data-v-3aeb69e6]{--modal-header-offset: var(--body-container-margin)}.modal-wrapper .prev[data-v-3aeb69e6],.modal-wrapper .next[data-v-3aeb69e6]{z-index:10000;height:35vh;min-height:300px;position:absolute;transition:opacity .25s;color:#fff}.modal-wrapper .prev[data-v-3aeb69e6]:focus-visible,.modal-wrapper .next[data-v-3aeb69e6]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev[data-v-3aeb69e6]{inset-inline-start:2px}.modal-wrapper .next[data-v-3aeb69e6]{inset-inline-end:2px}.modal-wrapper .modal-container[data-v-3aeb69e6]{position:relative;display:flex;padding:0;transition:transform .3s ease;border-radius:var(--border-radius-container);background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px #0003;overflow:auto}.modal-wrapper .modal-container__close[data-v-3aeb69e6]{z-index:1;position:absolute;top:4px;inset-inline-end:var(--default-grid-baseline)}.modal-wrapper .modal-container__content[data-v-3aeb69e6]{width:100%;min-height:52px;overflow:auto}.modal-wrapper--small>.modal-container[data-v-3aeb69e6]{width:400px;max-width:90%;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--normal>.modal-container[data-v-3aeb69e6]{max-width:90%;width:600px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--large>.modal-container[data-v-3aeb69e6]{max-width:90%;width:900px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--full>.modal-container[data-v-3aeb69e6]{width:100%;height:calc(100% - var(--modal-header-offset));position:absolute;top:var(--modal-header-offset);border-radius:0}@media only screen and ((max-width:512px)or (max-height:400px)){.modal-wrapper .modal-container[data-v-3aeb69e6]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--modal-header-offset));position:absolute;top:var(--modal-header-offset);border-radius:0}}.fade-enter-active[data-v-3aeb69e6],.fade-leave-active[data-v-3aeb69e6]{transition:opacity .25s}.fade-enter-from[data-v-3aeb69e6],.fade-leave-to[data-v-3aeb69e6]{opacity:0}.fade-visibility-enter-from[data-v-3aeb69e6],.fade-visibility-leave-to[data-v-3aeb69e6]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-3aeb69e6],.modal-in-leave-active[data-v-3aeb69e6],.modal-out-enter-active[data-v-3aeb69e6],.modal-out-leave-active[data-v-3aeb69e6]{transition:opacity .25s}.modal-in-enter-from[data-v-3aeb69e6],.modal-in-leave-to[data-v-3aeb69e6],.modal-out-enter-from[data-v-3aeb69e6],.modal-out-leave-to[data-v-3aeb69e6]{opacity:0}.modal-in-enter .modal-container[data-v-3aeb69e6],.modal-in-leave-to .modal-container[data-v-3aeb69e6]{transform:scale(.9)}.modal-out-enter .modal-container[data-v-3aeb69e6],.modal-out-leave-to .modal-container[data-v-3aeb69e6]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-3aeb69e6]{position:absolute;top:0;inset-inline-start:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3aeb69e6]{transition:.1s stroke-dashoffset;transform-origin:50% 50%;animation:progressring-3aeb69e6 linear var(--v86f86e3a) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3aeb69e6]{animation:breath-3aeb69e6 2s cubic-bezier(.4,0,.2,1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3aeb69e6]{animation-play-state:paused!important}@keyframes progressring-3aeb69e6{0%{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-3aeb69e6{0%{opacity:1}50%{opacity:0}to{opacity:1}}.material-design-icon[data-v-7206c1f1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-7206c1f1]{display:flex;align-items:center;gap:calc((var(--default-clickable-area) - 16px) / 2 / 2)}.action-item[data-v-7206c1f1]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-7206c1f1]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-7206c1f1]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-7206c1f1]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-7206c1f1]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-7206c1f1]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-7206c1f1]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-7206c1f1]{background-color:var(--open-background-color)}.action-item.action-item--wide[data-v-7206c1f1]{width:100%}.action-item__menutoggle__icon[data-v-7206c1f1]{width:20px;height:20px;object-fit:contain}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper{border-radius:var(--border-radius-element)}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner{border-radius:var(--border-radius-element);padding:4px;max-height:calc(100vh - var(--header-height));overflow:auto}._material-design-icon_CtXvA{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncPopover_oX-YA.v-popper--theme-nc-popover-9,._ncPopover_oX-YA.v-popper--theme-nc-popover-9 *{box-sizing:border-box}._ncPopover_oX-YA.v-popper--theme-nc-popover-9 .resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}._ncPopover_oX-YA.v-popper--theme-nc-popover-9 .resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper{z-index:100000;top:0;left:0;display:block!important}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper{box-shadow:0 1px 10px var(--color-box-shadow);border-radius:var(--border-radius-element);transition:transform var(--animation-quick)}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-element);overflow:hidden;background:var(--color-main-background)}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container{display:none}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__wrapper{transform-origin:bottom center}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__wrapper{transform-origin:top center}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__wrapper{transform-origin:left center}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__wrapper{transform-origin:right center}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true] .v-popper__wrapper{transform:scale(.96)}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}._ncPopover_oX-YA.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false] .v-popper__wrapper{transform:scale(1)}.job-status[data-v-0e5a1326]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.job-status__dot[data-v-0e5a1326]{flex:0 0 auto;width:10px;height:10px;border-radius:10px;background-color:var(--color-text-maxcontrast)}.job-status--succeeded .job-status__dot[data-v-0e5a1326]{background-color:var(--color-success)}.job-status--failed .job-status__dot[data-v-0e5a1326],.job-status--crashed .job-status__dot[data-v-0e5a1326]{background-color:var(--color-error)}.job-details[data-v-c21cb020]{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;padding:0;margin:0}.job-details dt[data-v-c21cb020]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap}.job-details dd[data-v-c21cb020]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.job-details__class[data-v-c21cb020]{font-family:var(--font-face-monospace, monospace);-webkit-user-select:all;user-select:all}table[data-v-10f09a63]{table-layout:fixed}.status-cell[data-v-10f09a63]{width:32px}.when-cell[data-v-10f09a63]{width:180px}.duration-cell[data-v-10f09a63]{width:90px}.memory-cell[data-v-10f09a63]{width:110px}.info-cell[data-v-10f09a63]{width:44px;padding:0}.section-heading[data-v-0eb9e63c]{justify-content:start}.icon[data-v-0eb9e63c]{display:inline-flex;vertical-align:middle;margin-right:8px}table[data-v-452808c1]{table-layout:fixed}.job-cell[data-v-452808c1]{padding-inline-start:38px}.count-cell[data-v-452808c1]{width:80px}.memory-cell[data-v-452808c1]{width:154px}.stat-tile[data-v-4a64fa3b]{display:grid;grid-template-rows:auto 1fr;gap:2px;padding:10px 12px;border-radius:var(--border-radius);background-color:var(--color-background-hover)}.stat-tile__label[data-v-4a64fa3b]{font-size:.72em;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-maxcontrast)}.stat-tile__value[data-v-4a64fa3b]{font-size:1.25em;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;word-break:break-word}.stat-tile__value--warning[data-v-4a64fa3b]{color:var(--color-warning-text, var(--color-warning))}.stat-tile__value--critical[data-v-4a64fa3b]{color:var(--color-error-text, var(--color-error))}.background-jobs h3[data-v-612ee243]{font-weight:700;margin:16px 0 8px}.section-skeleton .skeleton-bar[data-v-9a2b13f0]{background:var(--color-background-dark, #ededed);border-radius:var(--border-radius, 3px);animation:skeleton-pulse-9a2b13f0 1.5s ease-in-out infinite}.section-skeleton .skeleton-title[data-v-9a2b13f0]{height:24px;width:40%;margin-bottom:20px}.section-skeleton .skeleton-chart[data-v-9a2b13f0]{height:200px;margin-bottom:16px}@keyframes skeleton-pulse-9a2b13f0{50%{opacity:.5}}.db-live[data-v-3092ee62]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-block-end:12px}.db-live__box[data-v-3092ee62]{border:1px solid var(--color-border);border-radius:var(--border-radius-large);padding:12px 16px;background:var(--color-main-background)}.db-live__head[data-v-3092ee62]{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.db-live__label[data-v-3092ee62]{color:var(--color-text-maxcontrast);font-size:.85rem}.db-live__value[data-v-3092ee62]{font-weight:700;font-size:1.1rem;white-space:nowrap}.db-live__chart[data-v-3092ee62]{block-size:70px;margin-block-start:8px}.rule-card[data-v-43d2b623]{border:1px solid var(--color-border);border-radius:var(--border-radius-large);padding:12px 16px;background:var(--color-main-background)}.rule-card--fail[data-v-43d2b623]{border-inline-start:4px solid var(--color-error)}.rule-card--hint[data-v-43d2b623]{border-inline-start:4px solid var(--color-border-maxcontrast)}.rule-card--skipped[data-v-43d2b623]{opacity:.7}.rule-card__header[data-v-43d2b623]{display:flex;align-items:center;gap:8px}.rule-card__dot[data-v-43d2b623]{inline-size:10px;block-size:10px;border-radius:50%;flex:0 0 auto;background:var(--color-text-maxcontrast)}.rule-card__dot--alert[data-v-43d2b623]{background:var(--color-error-text, var(--color-error))}.rule-card__dot--warning[data-v-43d2b623]{background:var(--color-warning-text, var(--color-warning))}.rule-card__dot--notice[data-v-43d2b623]{background:var(--color-text-maxcontrast)}.rule-card__title-block[data-v-43d2b623]{flex:1 1 auto;min-inline-size:0}.rule-card__title[data-v-43d2b623]{margin:0;font-size:1rem;font-weight:700}.rule-card__meta[data-v-43d2b623]{display:flex;gap:6px;color:var(--color-text-maxcontrast);font-size:.85rem}.rule-card__chip[data-v-43d2b623]{border-radius:var(--border-radius-pill);padding:2px 10px;font-size:.85rem;background:var(--color-background-dark);white-space:nowrap}.rule-card__chip--fail[data-v-43d2b623]{background:var(--color-error-hover, var(--color-background-dark));color:var(--color-error-text, var(--color-error))}.rule-card__chip--ok[data-v-43d2b623]{background:var(--color-success-hover, var(--color-background-dark));color:var(--color-success-text, var(--color-success))}.rule-card__issue[data-v-43d2b623]{margin:8px 0 0;font-weight:700}.rule-card__line[data-v-43d2b623]{margin:6px 0 0}.rule-card__line[data-v-43d2b623],.rule-card__issue[data-v-43d2b623]{text-wrap:pretty}.rule-card__line--muted[data-v-43d2b623]{color:var(--color-text-maxcontrast)}.rule-card__affected[data-v-43d2b623]{margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;list-style:none}.rule-card__details[data-v-43d2b623]{margin:10px 0 0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:.9rem;padding:0}.rule-card__details dt[data-v-43d2b623]{color:var(--color-text-maxcontrast);padding:0;inline-size:auto;white-space:nowrap;text-align:start}.rule-card__details dd[data-v-43d2b623]{margin:0;padding:0}.rule-card__tag[data-v-43d2b623]{margin-inline-start:6px;color:var(--color-warning-text, var(--color-text-maxcontrast))}.rule-card__actions[data-v-43d2b623]{margin-block-start:10px;display:flex;align-items:center;gap:12px}.rule-card__doc[data-v-43d2b623]{color:var(--color-primary-element)}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.nc-select.v-select.select .select__helper-text{display:flex;align-items:center;margin:0;padding-block:4px;padding-inline:var(--border-radius-element);color:var(--color-text-maxcontrast);font-size:var(--default-font-size);overflow-wrap:anywhere}.nc-select.v-select.select .select__helper-text--error{color:var(--color-text-error)}.nc-select.v-select.select .select__helper-text--success{color:var(--color-text-success)}.nc-select.v-select.select .select__helper-text .select__helper-text-icon{margin-inline-end:8px}.nc-select.v-select.select{--vs-search-input-color: var(--color-main-text);--vs-search-input-bg: var(--color-main-background);--vs-search-input-placeholder-color: var(--color-text-maxcontrast);--vs-font-size: var(--default-font-size);--vs-line-height: var(--default-line-height);--vs-state-disabled-bg: var(--color-background-hover);--vs-state-disabled-color: var(--color-text-maxcontrast);--vs-state-disabled-controls-color: var(--color-text-maxcontrast);--vs-state-disabled-cursor: not-allowed;--vs-disabled-bg: var(--color-background-hover);--vs-disabled-color: var(--color-text-maxcontrast);--vs-disabled-cursor: not-allowed;--vs-border-color: var(--color-border-maxcontrast);--vs-border-width: var(--border-width-input, 2px) !important;--vs-border-style: solid;--vs-border-radius: var(--border-radius-element);--vs-controls-color: var(--color-main-text);--vs-selected-bg: var(--color-background-hover);--vs-selected-color: var(--color-main-text);--vs-selected-border-color: var(--vs-border-color);--vs-selected-border-style: var(--vs-border-style);--vs-selected-border-width: var(--vs-border-width);--vs-dropdown-bg: var(--color-main-background);--vs-dropdown-color: var(--color-main-text);--vs-dropdown-z-index: 9999;--vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);--vs-dropdown-option-padding: 8px 20px;--vs-dropdown-option--active-bg: var(--color-background-hover);--vs-dropdown-option--active-color: var(--color-main-text);--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);--vs-dropdown-option--deselect-bg: var(--color-error);--vs-dropdown-option--deselect-color: #fff;--vs-transition-duration: 0ms;--vs-actions-padding: 0 8px 0 8px;min-height:calc(var(--default-clickable-area) - 2 * var(--border-width-input, 2px));min-width:260px;margin:6px 0 var(--default-grid-baseline)}.nc-select.v-select.select.vs--open{--vs-border-width: var(--border-width-input-focused, 2px)}.nc-select.v-select.select .vs__selected{min-height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));min-width:0;max-width:100%;margin:calc(var(--default-grid-baseline) / 2);padding-block:0;padding-inline:12px 8px;border-radius:16px!important;background:var(--color-primary-element-light);border:none}.nc-select.v-select.select .vs__search{width:100%;--input-padding-end: calc(var(--default-clickable-area) + var(--default-grid-baseline));border:none!important;margin:0!important;padding:0!important;height:auto!important}.nc-select.v-select.select .vs__selected-options:has(.vs__selected) .vs__search .input-field__input+.input-field__label{--input-label-font-size: var(--font-size-small, 13px);line-height:1.5;inset-block-start:calc(-1.5 * var(--input-label-font-size) / 2);font-weight:500;border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0;background-color:var(--color-main-background);padding-inline:var(--default-grid-baseline);margin-inline:calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.nc-select.v-select.select:not(.vs--multiple) .vs__dropdown-toggle{padding:0;overflow:visible;border:none!important;box-shadow:none!important;background:transparent}.nc-select.v-select.select .vs__dropdown-toggle{position:relative}.nc-select.v-select.select .vs__actions{position:absolute;z-index:999;inset-inline-end:0;top:50%;transform:translateY(-50%);height:100%;margin-block-start:1px;display:flex;align-items:center}.nc-select.v-select.select .vs__clear{margin-inline-end:2px}.nc-select.v-select.select.vs--open .vs__search .input-field__input{border-end-start-radius:0!important;border-end-end-radius:0!important}.nc-select.v-select.select.vs--disabled .vs__clear,.nc-select.v-select.select.vs--disabled .vs__dropdown-toggle,.nc-select.v-select.select.vs--disabled .vs__open-indicator,.nc-select.v-select.select.vs--disabled .vs__open-indicator-button,.nc-select.v-select.select.vs--disabled .vs__search,.nc-select.v-select.select.vs--disabled .vs__selected{background-color:transparent;color:var(--color-text-maxcontrast)}.nc-select.v-select.select.vs--disabled .vs__dropdown-toggle{--input-border-box-shadow-light: 0 -1px var(--color-border-dark), 0 0 0 1px color-mix(in srgb, var(--color-border-dark), 65% transparent);--input-border-box-shadow-dark: 0 1px var(--color-border-dark), 0 0 0 1px color-mix(in srgb, var(--color-border-dark), 65% transparent)}.nc-select.v-select.select.vs--disabled .vs__clear,.nc-select.v-select.select.vs--disabled .vs__deselect{display:none}.nc-select.v-select.select--no-wrap .vs__dropdown-toggle{overflow:hidden}.nc-select.v-select.select--no-wrap .vs__selected-options{flex-wrap:nowrap;overflow:auto!important;min-width:unset}.nc-select.v-select.select--no-wrap .vs__selected-options .vs__selected{min-width:unset}.nc-select.v-select.select--drop-up.vs--open .vs__search .input-field__input{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}.nc-select.v-select.select--drop-up.vs--open.vs--multiple .vs__dropdown-toggle{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important;border-block-end-color:var(--color-main-text)!important}.nc-select.v-select.select .vs__selected-options{min-height:unset}.nc-select.v-select.select .vs__selected-options .vs__selected~.vs__search:has(.input-field__input[readonly]){position:absolute}.nc-select.v-select.select .vs__selected-options{padding:0;border:none;overflow:visible}.nc-select.v-select.select.vs--multiple{margin-inline:1px}.nc-select.v-select.select.vs--multiple .vs__dropdown-toggle{border:var(--border-width-input-focused, 2px) solid transparent;box-shadow:var(--input-border-box-shadow);padding-block:calc(var(--default-grid-baseline) * 1.5) 0;padding-inline:var(--default-grid-baseline) calc(var(--default-clickable-area) + var(--default-grid-baseline));overflow:visible;background:var(--color-main-background)}.nc-select.v-select.select.vs--multiple:has(.vs__clear) .vs__dropdown-toggle{padding-inline-end:calc(2 * var(--default-clickable-area))}.nc-select.v-select.select.vs--multiple.vs--open .vs__dropdown-toggle{box-shadow:none!important;border-color:var(--color-main-text);border-block-end-color:var(--color-border-maxcontrast);border-end-start-radius:0;border-end-end-radius:0;outline:2px solid var(--color-main-background)}.nc-select.v-select.select.vs--multiple .vs__search .input-field__input{box-shadow:none!important;background:transparent}.nc-select.v-select.select.vs--multiple .vs__search{width:0;flex-grow:1;min-width:0}.nc-select.v-select.select.vs--multiple.select--no-wrap .vs__dropdown-toggle{overflow:hidden}.nc-select.v-select.select.vs--multiple.select--no-wrap .vs__actions{background:linear-gradient(90deg,transparent,var(--color-main-background) 10%,var(--color-main-background) 100%);margin-block:0px;margin-inline-end:2px;border-radius:var(--border-radius-element);height:calc(100% - 6px)}.nc-select.v-select.select.vs--multiple .vs__search .input-field{margin-block-start:0}.nc-select.v-select.select.vs--multiple .vs__search .input-field__main-wrapper{height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));margin:calc(var(--default-grid-baseline) / 2) 0}.nc-select.v-select.select.vs--multiple .select__label{position:absolute;z-index:1;inset-inline-start:var(--border-width-input-focused, 2px);top:50%;transform:translateY(-50%);font-size:var(--default-font-size);margin-inline:var(--border-radius-element);color:var(--color-text-maxcontrast);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - var(--clickable-area-large));transition:top var(--animation-quick),transform var(--animation-quick),font-size var(--animation-quick),font-weight var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.nc-select.v-select.select.vs--multiple:has(.vs__selected) .select__label,.nc-select.v-select.select.vs--multiple.vs--open .select__label{--input-label-font-size: var(--font-size-small, 13px);font-size:var(--input-label-font-size);line-height:1.5;top:calc(-1.5 * var(--input-label-font-size) / 2);transform:none;font-weight:500;border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0;background-color:var(--color-main-background);padding-inline:var(--default-grid-baseline);margin-inline:calc(var(--border-radius-element) - var(--default-grid-baseline));transition:top var(--animation-quick),transform var(--animation-quick),font-size var(--animation-quick),font-weight var(--animation-quick),background-color var(--animation-quick)}.nc-select.v-select.select.vs--single .vs__selected-options{position:relative;flex-wrap:nowrap;min-height:var(--default-clickable-area)}.nc-select.v-select.select.vs--single .vs__selected{position:absolute;inset-block:6px 0;inset-inline-start:0;inset-inline-end:0;margin:0;z-index:2;pointer-events:none;display:flex;align-items:center;padding-block:0;padding-inline:calc(var(--border-radius-element) + var(--border-width-input-focused, 2px)) var(--input-padding-end, calc(var(--default-clickable-area) + var(--default-grid-baseline)));background:unset!important;border:none;border-radius:0;height:unset;min-height:unset;font-size:var(--default-font-size);color:var(--color-main-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nc-select.v-select.select.vs--single:has(.input-field--label-outside) .vs__selected{inset-block-start:0}.nc-select.v-select.select.vs--single:has(.vs__clear) .vs__selected{padding-inline-end:calc(2 * var(--default-clickable-area))}.nc-select.v-select.select.vs--single.vs--loading .vs__selected,.nc-select.v-select.select.vs--single.vs--open .vs__selected{opacity:.4}.nc-select.v-select.select.vs--single.vs--searching .vs__selected{display:none}.nc-select__dropdown.vs__dropdown-menu{--vs-border-color: var(--color-border-maxcontrast);--vs-border-style: solid;--vs-border-radius: var(--border-radius-element);--vs-dropdown-bg: var(--color-main-background);--vs-dropdown-color: var(--color-main-text);--vs-dropdown-option-padding: 8px 20px;--vs-dropdown-option--active-bg: var(--color-background-hover);--vs-dropdown-option--active-color: var(--color-main-text);--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--color-border-maxcontrast);--vs-dropdown-option--deselect-bg: var(--color-error);--vs-dropdown-option--deselect-color: #fff;border-width:var(--border-width-input-focused)!important;border-color:var(--color-main-text)!important;outline:none!important;box-shadow:-2px 0 0 var(--color-main-background),0 2px 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important;padding:4px!important}.nc-select__dropdown.vs__dropdown-menu--floating{width:max-content;position:absolute;top:0;inset-inline-start:0}.nc-select__dropdown.vs__dropdown-menu--floating-placement-top{border-radius:var(--vs-border-radius)!important;border-top-style:var(--vs-border-style)!important;box-shadow:0 -2px 0 var(--color-main-background),-2px 0 0 var(--color-main-background),0 2px 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important}.nc-select__dropdown.vs__dropdown-menu .vs__dropdown-option{border-radius:6px!important}.nc-select__dropdown.vs__dropdown-menu .vs__no-options{color:var(--color-text-maxcontrast)!important}.nc-select.v-select.select .vs__dropdown-toggle{--input-border-box-shadow-light: 0 -1px var(--vs-border-color), 0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);--input-border-box-shadow-dark: 0 -1px var(--vs-border-color), 0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);--input-border-box-shadow: var(--input-border-box-shadow-light);border:none;border-radius:var(--border-radius-element);box-shadow:var(--input-border-box-shadow)}.nc-select.v-select.select:not(.vs--disabled) .vs__dropdown-toggle:hover{box-shadow:0 0 0 1px var(--vs-border-color)}@media(prefers-color-scheme:dark){.nc-select.v-select.select .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .nc-select.v-select.select .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .nc-select.v-select.select .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-light)}.select--legacy.nc-select.v-select.select .vs__dropdown-toggle{box-shadow:0 0 0 1px var(--vs-border-color)}.select--legacy.nc-select.v-select.select .vs__dropdown-toggle:hover:not([disabled]){box-shadow:0 0 0 2px var(--vs-border-color)}:root{--vs-colors--lightest:rgba(60,60,60,.26);--vs-colors--light:rgba(60,60,60,.5);--vs-colors--dark:#333;--vs-colors--darkest:rgba(0,0,0,.15);--vs-search-input-color:inherit;--vs-search-input-bg:#fff;--vs-search-input-placeholder-color:inherit;--vs-font-size:1rem;--vs-line-height:1.4;--vs-state-disabled-bg:#f8f8f8;--vs-state-disabled-color:var(--vs-colors--light);--vs-state-disabled-controls-color:var(--vs-colors--light);--vs-state-disabled-cursor:not-allowed;--vs-border-color:var(--vs-colors--lightest);--vs-border-width:1px;--vs-border-style:solid;--vs-border-radius:4px;--vs-actions-padding:4px 6px 0 3px;--vs-controls-color:var(--vs-colors--light);--vs-controls-size:1;--vs-controls--deselect-text-shadow:0 1px 0 #fff;--vs-selected-bg:#f0f0f0;--vs-selected-color:var(--vs-colors--dark);--vs-selected-border-color:var(--vs-border-color);--vs-selected-border-style:var(--vs-border-style);--vs-selected-border-width:var(--vs-border-width);--vs-dropdown-bg:#fff;--vs-dropdown-color:inherit;--vs-dropdown-z-index:1000;--vs-dropdown-min-width:160px;--vs-dropdown-max-height:350px;--vs-dropdown-box-shadow:0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg:#000;--vs-dropdown-option-color:var(--vs-dropdown-color);--vs-dropdown-option-padding:3px 20px;--vs-dropdown-option--active-bg:#136cfb;--vs-dropdown-option--active-color:#fff;--vs-dropdown-option--kb-focus-box-shadow:inset 0px 0px 0px 2px #949494;--vs-dropdown-option--deselect-bg:#fb5858;--vs-dropdown-option--deselect-color:#fff;--vs-transition-timing-function:cubic-bezier(1,-.115,.975,.855);--vs-transition-duration:.15s}.v-select{font-family:inherit;position:relative}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function:cubic-bezier(1,.5,.8,1);--vs-transition-duration:.15s}@keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg:var(--vs-state-disabled-bg);--vs-disabled-color:var(--vs-state-disabled-color);--vs-disabled-cursor:var(--vs-state-disabled-cursor)}.vs--disabled{.vs__clear,.vs__dropdown-toggle,.vs__open-indicator,.vs__open-indicator-button,.vs__search,.vs__selected{background-color:var(--vs-disabled-bg);cursor:var(--vs-disabled-cursor)}}.v-select[dir=rtl]{.vs__actions{padding:0 3px 0 6px}.vs__clear{margin-left:6px;margin-right:0}.vs__deselect{margin-left:0;margin-right:2px}.vs__dropdown-menu{text-align:right}}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vs-search-input-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);display:flex;padding:0 0 4px;white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;min-width:0;padding:0 2px;position:relative}.vs__actions{align-items:center;display:flex;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator-button{background-color:transparent;border:0;cursor:pointer;padding:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{background-color:transparent;border:0;cursor:pointer;fill:var(--vs-controls-color);margin-right:8px;padding:0}.vs__dropdown-menu{background:var(--vs-dropdown-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-style:none;box-shadow:var(--vs-dropdown-box-shadow);box-sizing:border-box;color:var(--vs-dropdown-color);display:block;left:0;list-style:none;margin:0;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;padding:5px 0;position:absolute;text-align:left;top:calc(100% - var(--vs-border-width));width:100%;z-index:var(--vs-dropdown-z-index)}.vs__no-options{text-align:center}.vs__dropdown-option{clear:both;color:var(--vs-dropdown-option-color);cursor:pointer;display:block;line-height:1.42857143;padding:var(--vs-dropdown-option-padding);white-space:nowrap}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--kb-focus{box-shadow:var(--vs-dropdown-option--kb-focus-box-shadow)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);display:flex;line-height:var(--vs-line-height);margin:4px 2px 0;min-width:0;padding:0 .25em;z-index:0}.vs__deselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-flex;fill:var(--vs-controls-color);margin-left:4px;padding:0;text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single{.vs__selected{background-color:transparent;border-color:transparent}&.vs--loading .vs__selected,&.vs--open .vs__selected{max-width:100%;opacity:.4;position:absolute}&.vs--searching .vs__selected{display:none}}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-ms-clear,.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration{display:none}.vs__search,.vs__search:focus{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-left:none;box-shadow:none;color:var(--vs-search-input-color);flex-grow:1;font-size:var(--vs-font-size);line-height:var(--vs-line-height);margin:4px 0 0;max-width:100%;outline:none;padding:0 7px;width:0;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable{.vs__search{opacity:1}&:not(.vs--disabled) .vs__search{cursor:pointer}}.vs--single.vs--searching:not(.vs--open):not(.vs--loading){.vs__search{opacity:.2}}.vs__spinner{align-self:center;animation:vSelectSpinner 1.1s linear infinite;border:.9em solid hsla(0,0%,39.2%,.1);border-left-color:#3c3c3c73;font-size:5px;opacity:0;overflow:hidden;text-indent:-9999em;transform:translateZ(0) scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;height:5em;transform:scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));width:5em}.vs--loading .vs__spinner{opacity:1}.material-design-icon[data-v-c843f2cd]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.name-parts[data-v-c843f2cd]{display:flex;max-width:100%;min-width:0;cursor:inherit}.name-parts__first[data-v-c843f2cd]{overflow:hidden;text-overflow:ellipsis;white-space:pre}.name-parts__last[data-v-c843f2cd]{flex:0 0 auto;white-space:pre}.name-parts__first[data-v-c843f2cd],.name-parts__last[data-v-c843f2cd]{cursor:inherit}.name-parts__first strong[data-v-c843f2cd],.name-parts__last strong[data-v-c843f2cd]{font-weight:700}.material-design-icon[data-v-feb04bef]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}/*! * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later - */.input-field[data-v-feb04bef]{--input-border-color: var(--color-border-maxcontrast);--input-border-radius: var(--border-radius-element);--input-padding-start: var(--border-radius-element);--input-padding-end: var(--border-radius-element);position:relative;width:100%;margin-block-start:6px}.input-field--disabled[data-v-feb04bef]{opacity:.4;filter:saturate(.4)}.input-field--label-outside[data-v-feb04bef]{margin-block-start:0}.input-field--leading-icon[data-v-feb04bef]{--input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--trailing-icon[data-v-feb04bef]{--input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--pill[data-v-feb04bef]{--input-border-radius: var(--border-radius-pill)}.input-field__main-wrapper[data-v-feb04bef]{height:var(--default-clickable-area);padding:var(--border-width-input-focused, 2px);position:relative}.input-field__input[data-v-feb04bef]{--input-border-box-shadow-light: 0 -1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow-dark: 0 1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow: var(--input-border-box-shadow-light);border:none;border-radius:var(--border-radius-element);box-shadow:var(--input-border-box-shadow)}.input-field__input[data-v-feb04bef]:hover:not([disabled]){box-shadow:0 0 0 1px var(--input-border-color)}@media(prefers-color-scheme:dark){.input-field__input .input-field__input[data-v-feb04bef]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .input-field__input[data-v-feb04bef]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .input-field__input[data-v-feb04bef]{--input-border-box-shadow: var(--input-border-box-shadow-light)}.input-field--legacy .input-field__input[data-v-feb04bef]{box-shadow:0 0 0 1px var(--input-border-color)}.input-field--legacy .input-field__input[data-v-feb04bef]:hover:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color)}.input-field__input[data-v-feb04bef]:focus-within:not([disabled]),.input-field__input[data-v-feb04bef]:active:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color),0 0 0 4px var(--color-main-background)!important}.input-field__input[data-v-feb04bef]{background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--input-border-radius);cursor:pointer;-webkit-appearance:textfield!important;-moz-appearance:textfield!important;appearance:textfield!important;font-size:var(--default-font-size);text-overflow:ellipsis;padding-block:0;padding-inline:var(--input-padding-start) var(--input-padding-end);height:100%!important;min-height:unset;width:100%}.input-field__input[data-v-feb04bef]::placeholder{color:var(--color-text-maxcontrast)}.input-field__input[data-v-feb04bef]::-webkit-search-cancel-button{display:none}.input-field__input[data-v-feb04bef]::-webkit-search-decoration,.input-field__input[data-v-feb04bef]::-webkit-search-results-button,.input-field__input[data-v-feb04bef]::-webkit-search-results-decoration,.input-field__input[data-v-feb04bef]::-ms-clear{display:none}.input-field__input[data-v-feb04bef]:active:not([disabled]),.input-field__input[data-v-feb04bef]:focus:not([disabled]){--input-border-color: var(--color-main-text)}.input-field__input:focus+.input-field__label[data-v-feb04bef],.input-field__input:hover:not(:placeholder-shown)+.input-field__label[data-v-feb04bef]{color:var(--color-main-text)}.input-field__input[data-v-feb04bef]:focus{cursor:text}.input-field__input[data-v-feb04bef]:disabled{cursor:default}.input-field__input[data-v-feb04bef]:focus-visible{box-shadow:unset!important}.input-field:not(.input-field--label-outside) .input-field__input[data-v-feb04bef]:not(:focus)::placeholder{opacity:0}.input-field__label[data-v-feb04bef]{--input-label-font-size: var(--default-font-size);font-size:var(--input-label-font-size);position:absolute;margin-inline:var(--input-padding-start) var(--input-padding-end);max-width:fit-content;inset-block-start:calc((var(--default-clickable-area) - 1lh) / 2);inset-inline:var(--border-width-input-focused, 2px);color:var(--color-text-maxcontrast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.input-field__input:focus+.input-field__label[data-v-feb04bef],.input-field__input:not(:placeholder-shown)+.input-field__label[data-v-feb04bef]{--input-label-font-size: 13px;line-height:1.5;inset-block-start:calc(-1.5 * var(--input-label-font-size) / 2);font-weight:var(--font-weight-element, 500);border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0;background-color:var(--color-main-background);padding-inline:var(--default-grid-baseline);margin-inline:calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.input-field__icon[data-v-feb04bef]{position:absolute;height:var(--default-clickable-area);width:var(--default-clickable-area);display:flex;align-items:center;justify-content:center;opacity:.7;inset-block-end:0}.input-field__icon--leading[data-v-feb04bef]{inset-inline-start:0px}.input-field__icon--trailing[data-v-feb04bef]{inset-inline-end:0px}.input-field__trailing-button[data-v-feb04bef]{--button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;--button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px))}.input-field__trailing-button.button-vue[data-v-feb04bef]{position:absolute;top:var(--border-width-input-focused, 2px);inset-inline-end:var(--border-width-input-focused, 2px)}.input-field__trailing-button.button-vue[data-v-feb04bef]:focus-visible{box-shadow:none!important}.input-field__helper-text-message[data-v-feb04bef]{padding-block:4px;padding-inline:var(--border-radius-element);display:flex;align-items:center;color:var(--color-text-maxcontrast);overflow-wrap:anywhere}.input-field__helper-text-message__icon[data-v-feb04bef]{margin-inline-end:8px}.input-field--error .input-field__helper-text-message[data-v-feb04bef],.input-field--error .input-field__icon--trailing[data-v-feb04bef]{color:var(--color-text-error, var(--color-error))}.input-field--error .input-field__input[data-v-feb04bef],.input-field__input[data-v-feb04bef]:user-invalid{--input-border-color: var(--color-border-error, var(--color-error)) !important}.input-field--error .input-field__input[data-v-feb04bef]:focus-visible,.input-field__input[data-v-feb04bef]:user-invalid:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.input-field--success .input-field__input[data-v-feb04bef]{--input-border-color: var(--color-border-success, var(--color-success)) !important}.input-field--success .input-field__input[data-v-feb04bef]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.input-field--success .input-field__helper-text-message__icon[data-v-feb04bef]{color:var(--color-border-success, var(--color-success))}.db-settings[data-v-846e1455]{display:flex;flex-direction:column;gap:12px}.db-settings__intro[data-v-846e1455]{margin:0;color:var(--color-text-maxcontrast)}.snippet[data-v-ff214019]{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.snippet__code[data-v-ff214019]{inline-size:100%;overflow-x:auto;padding:12px;border-radius:var(--border-radius);background:var(--color-background-dark)}.snippet__note[data-v-ff214019]{color:var(--color-text-maxcontrast);margin:0}.database-view__heading[data-v-f531f024]{display:flex;align-items:center;justify-content:space-between;gap:12px}.database-view__filters[data-v-f531f024]{display:flex;flex-wrap:wrap;gap:4px;margin:12px 0;padding:4px;background:var(--color-background-dark);border-radius:var(--border-radius-large)}.database-view__filter[data-v-f531f024]{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:var(--border-radius-pill);background:transparent;color:var(--color-main-text);padding:4px 14px}.database-view__filter[data-v-f531f024]:hover{background:var(--color-background-hover)}.database-view__filter--active[data-v-f531f024]{background:var(--color-primary-element);color:var(--color-primary-element-text)}.database-view__filter-count[data-v-f531f024]{color:inherit;opacity:.75}.database-view__group[data-v-f531f024]{margin-block-start:20px}.database-view__group-title[data-v-f531f024]{display:flex;align-items:center;gap:10px;font-weight:700;margin:0 0 8px}.database-view__group-fails[data-v-f531f024]{font-weight:400;font-size:.85rem;color:var(--color-error-text, var(--color-error))}.database-view__cards[data-v-f531f024]{display:flex;flex-direction:column;gap:10px}.database-view__empty[data-v-f531f024]{color:var(--color-text-maxcontrast)}.chart-wrapper[data-v-07ed95bd]{height:200px;width:100%}.diskchart-container[data-v-d52cfcd6]{position:relative;flex:0 0 auto;width:120px;margin-right:24px}.diskinfo-container[data-v-d52cfcd6]{flex:1 1 auto;min-width:0}.diskinfo[data-v-d52cfcd6]{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:0;margin:0;line-height:1.4}.diskinfo__row[data-v-d52cfcd6]{display:contents}.diskinfo__row dt[data-v-d52cfcd6]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap;text-align:end}.diskinfo__row dd[data-v-d52cfcd6]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.info-color-label--available[data-v-d52cfcd6]:before,.info-color-label--used[data-v-d52cfcd6]:before{content:"";display:inline-block;width:10px;height:10px;border-radius:10px;margin-right:5px}.info-color-label--available[data-v-d52cfcd6]:before{background-color:var(--color-border-maxcontrast)}.info-color-label--used[data-v-d52cfcd6]:before{background-color:var(--color-primary-element)}@media(width<=1280px){.text-center-mobile[data-v-d52cfcd6]{text-align:center}.diskchart-container[data-v-d52cfcd6]{margin:0 auto}.text-center-mobile .diskinfo[data-v-d52cfcd6]{justify-content:center}}.chart-wrapper[data-v-03ed9b79]{height:200px;width:100%}._material-design-icon_0RfRa{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxButton_14txJ{background:unset;border:none;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;text-align:inherit;line-height:inherit;padding:0;margin:0;outline:none}._material-design-icon_ILRX2{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxItem_ER-6m{--nc-form-box-item-border-width: 1px;--nc-form-box-item-min-height: 40px;--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l*1.045) );position:relative;display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline));min-height:var(--nc-form-box-item-min-height);padding-inline:var(--form-element-label-padding);border:1px solid var(--color-primary-element-extra-light-hover);border-bottom-width:2px;border-radius:var(--border-radius-element);background-color:var(--color-primary-element-extra-light);color:var(--color-main-text);font-weight:var(--font-weight-element, normal);will-change:transform;transition-property:color,border-color,background-color,transform;transition-duration:var(--animation-quick);transition-timing-function:linear;-webkit-user-select:none;user-select:none;cursor:pointer}._formBoxItem_ER-6m *{cursor:inherit}._formBoxItem_ER-6m:has(:disabled){cursor:default;opacity:.5}._formBoxItem_ER-6m:hover:not(:has(:disabled)){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-extra-light-hover)}._formBoxItem_ER-6m:active:not(:disabled){transform:scale(.985)}._formBoxItem_ER-6m:has(:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}._formBoxItem__description_g-KcX{font-weight:var(--font-weight-default, normal)}._formBoxItem_ER-6m._formBoxItem_legacy_TW1Sp{--nc-form-box-item-border-width: 0px;border:none}._formBoxItem_ER-6m._formBoxItem_inverted_CxfyH ._formBoxItem__element_zgVx-{color:var(--color-text-maxcontrast)}._formBoxItem_ER-6m._formBoxItem_inverted_CxfyH ._formBoxItem__description_g-KcX{color:inherit}._formBoxItem__content_dYtDe{flex:1;display:flex;flex-direction:column;padding-block:calc(2 * var(--default-grid-baseline));overflow-wrap:anywhere}._formBoxItem__element_zgVx-:after{content:"";position:absolute;inset:0}._formBoxItem__description_g-KcX{color:var(--color-text-maxcontrast)}._formBoxItem__icon_ZIpCi{display:flex;align-items:center;justify-content:flex-end}._material-design-icon_0Ylmc{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}input._formBoxSwitch__input_BLkhF{margin:0;width:var(--default-clickable-area);position:absolute;inset-block:0;inset-inline-end:var(--form-element-label-offset);z-index:-1;opacity:0!important;height:auto;cursor:inherit}._material-design-icon_Pm1ga{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._iconToggleSwitch_fKjEc{color:var(--v6bd152af);transition:color var(--animation-quick) ease}._iconToggleSwitch_fKjEc svg{height:auto!important}._iconToggleSwitch_fKjEc circle{cx:var(--v16fd8ca9);transition:cx var(--animation-quick) ease}.monitoring[data-v-94a398b4]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 4)}.material-design-icon[data-v-461c5031]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-461c5031]{display:block;height:var(--progress-bar-height);--progress-bar-color: var(--v737c16c0);--progress-bar-height: var(--v0630ed12)}.progress-bar--linear[data-v-461c5031]{width:100%;overflow:hidden;border:0;padding:0;background:var(--color-background-dark);border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-461c5031]::-webkit-progress-bar{height:var(--progress-bar-height);background-color:transparent}.progress-bar--linear[data-v-461c5031]::-webkit-progress-value{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-461c5031]::-moz-progress-bar{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--circular[data-v-461c5031]{width:var(--progress-bar-height);color:var(--progress-bar-color)}.progress-bar--error[data-v-461c5031]{color:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-461c5031]::-moz-progress-bar{background:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-461c5031]::-webkit-progress-value{background:var(--color-text-error, var(--color-error))!important}.progress-bar-container[data-v-461c5031]{display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline))}.progress-bar__value[data-v-461c5031]{font-size:var(--font-size-small, 13px);font-variant-numeric:tabular-nums;min-width:4ch;text-align:end}.usage-meter-bar__header[data-v-733874f2]{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.opcache-meters[data-v-6fef687a]{display:flex;flex-direction:column;gap:16px;padding:16px 0}.info--warning[data-v-6fef687a]{color:var(--color-warning-text, var(--color-warning))}.extensions-button[data-v-13baec9e]{margin-inline-start:calc(-2 * var(--default-grid-baseline) - var(--border-radius-element))}.resource-usage[data-v-15e6dfa6]{display:flex;flex-direction:column;gap:16px;padding:16px 0}.temp[data-v-cb3096fd]{font-variant-numeric:tabular-nums}.server-info-notice[data-v-4daaaea0]{margin:12px 0}.section h3{font-size:18px}.info{font-weight:700}.smallinfo{color:var(--color-text-maxcontrast)}.infobox{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:16px 0;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}@media(width<=1280px){.infobox{display:block;word-break:break-word}}.infobox h3{font-weight:700;padding:5px 0 10px;margin:0;overflow-wrap:break-word}.chart-container{position:relative;margin:10px}.clipboardButton{display:inline-block;position:relative;top:2px;margin-left:5px}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:30px}.row--cards{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));margin:16px 0}.row--cards .infobox{margin:0}.row--tiles{grid-template-columns:repeat(auto-fit,minmax(min(110px,100%),1fr));gap:8px;margin:16px 0}.row>*{min-width:0}.active-users-wrapper{flex:1;display:flex;gap:0 1rem;flex-wrap:wrap;align-items:center;justify-content:center}.active-users-box{padding:.25rem 1rem;flex:1;min-width:150px;border-left:2px solid var(--color-border)}@media(width<=1280px){.active-users-box{padding:1rem .5rem;border:none;text-align:center}}.active-users-box:first-child{border:none}.active-users-box .info{font-size:2rem}.smoothie-chart-tooltip{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:0 .25rem;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}.server-info-table table{width:100%;white-space:normal;overflow-wrap:break-word}.server-info-table th,.server-info-table td{padding:6px;border-bottom:1px solid var(--color-border)}.server-info-table th{color:var(--color-text-maxcontrast)}.server-info-table tr:last-child td{border-bottom:none} + */.input-field[data-v-feb04bef]{--input-border-color: var(--color-border-maxcontrast);--input-border-radius: var(--border-radius-element);--input-padding-start: var(--border-radius-element);--input-padding-end: var(--border-radius-element);position:relative;width:100%;margin-block-start:6px}.input-field--disabled[data-v-feb04bef]{opacity:.4;filter:saturate(.4)}.input-field--label-outside[data-v-feb04bef]{margin-block-start:0}.input-field--leading-icon[data-v-feb04bef]{--input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--trailing-icon[data-v-feb04bef]{--input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--pill[data-v-feb04bef]{--input-border-radius: var(--border-radius-pill)}.input-field__main-wrapper[data-v-feb04bef]{height:var(--default-clickable-area);padding:var(--border-width-input-focused, 2px);position:relative}.input-field__input[data-v-feb04bef]{--input-border-box-shadow-light: 0 -1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow-dark: 0 1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow: var(--input-border-box-shadow-light);border:none;border-radius:var(--border-radius-element);box-shadow:var(--input-border-box-shadow)}.input-field__input[data-v-feb04bef]:hover:not([disabled]){box-shadow:0 0 0 1px var(--input-border-color)}@media(prefers-color-scheme:dark){.input-field__input .input-field__input[data-v-feb04bef]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .input-field__input[data-v-feb04bef]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .input-field__input[data-v-feb04bef]{--input-border-box-shadow: var(--input-border-box-shadow-light)}.input-field--legacy .input-field__input[data-v-feb04bef]{box-shadow:0 0 0 1px var(--input-border-color)}.input-field--legacy .input-field__input[data-v-feb04bef]:hover:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color)}.input-field__input[data-v-feb04bef]:focus-within:not([disabled]),.input-field__input[data-v-feb04bef]:active:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color),0 0 0 4px var(--color-main-background)!important}.input-field__input[data-v-feb04bef]{background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--input-border-radius);cursor:pointer;-webkit-appearance:textfield!important;-moz-appearance:textfield!important;appearance:textfield!important;font-size:var(--default-font-size);text-overflow:ellipsis;padding-block:0;padding-inline:var(--input-padding-start) var(--input-padding-end);height:100%!important;min-height:unset;width:100%}.input-field__input[data-v-feb04bef]::placeholder{color:var(--color-text-maxcontrast)}.input-field__input[data-v-feb04bef]::-webkit-search-cancel-button{display:none}.input-field__input[data-v-feb04bef]::-webkit-search-decoration,.input-field__input[data-v-feb04bef]::-webkit-search-results-button,.input-field__input[data-v-feb04bef]::-webkit-search-results-decoration,.input-field__input[data-v-feb04bef]::-ms-clear{display:none}.input-field__input[data-v-feb04bef]:active:not([disabled]),.input-field__input[data-v-feb04bef]:focus:not([disabled]){--input-border-color: var(--color-main-text)}.input-field__input:focus+.input-field__label[data-v-feb04bef],.input-field__input:hover:not(:placeholder-shown)+.input-field__label[data-v-feb04bef]{color:var(--color-main-text)}.input-field__input[data-v-feb04bef]:focus{cursor:text}.input-field__input[data-v-feb04bef]:disabled{cursor:default}.input-field__input[data-v-feb04bef]:focus-visible{box-shadow:unset!important}.input-field:not(.input-field--label-outside) .input-field__input[data-v-feb04bef]:not(:focus)::placeholder{opacity:0}.input-field__label[data-v-feb04bef]{--input-label-font-size: var(--default-font-size);font-size:var(--input-label-font-size);position:absolute;margin-inline:var(--input-padding-start) var(--input-padding-end);max-width:fit-content;inset-block-start:calc((var(--default-clickable-area) - 1lh) / 2);inset-inline:var(--border-width-input-focused, 2px);color:var(--color-text-maxcontrast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.input-field__input:focus+.input-field__label[data-v-feb04bef],.input-field__input:not(:placeholder-shown)+.input-field__label[data-v-feb04bef]{--input-label-font-size: 13px;line-height:1.5;inset-block-start:calc(-1.5 * var(--input-label-font-size) / 2);font-weight:var(--font-weight-element, 500);border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0;background-color:var(--color-main-background);padding-inline:var(--default-grid-baseline);margin-inline:calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.input-field__icon[data-v-feb04bef]{position:absolute;height:var(--default-clickable-area);width:var(--default-clickable-area);display:flex;align-items:center;justify-content:center;opacity:.7;inset-block-end:0}.input-field__icon--leading[data-v-feb04bef]{inset-inline-start:0px}.input-field__icon--trailing[data-v-feb04bef]{inset-inline-end:0px}.input-field__trailing-button[data-v-feb04bef]{--button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;--button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px))}.input-field__trailing-button.button-vue[data-v-feb04bef]{position:absolute;top:var(--border-width-input-focused, 2px);inset-inline-end:var(--border-width-input-focused, 2px)}.input-field__trailing-button.button-vue[data-v-feb04bef]:focus-visible{box-shadow:none!important}.input-field__helper-text-message[data-v-feb04bef]{padding-block:4px;padding-inline:var(--border-radius-element);display:flex;align-items:center;color:var(--color-text-maxcontrast);overflow-wrap:anywhere}.input-field__helper-text-message__icon[data-v-feb04bef]{margin-inline-end:8px}.input-field--error .input-field__helper-text-message[data-v-feb04bef],.input-field--error .input-field__icon--trailing[data-v-feb04bef]{color:var(--color-text-error, var(--color-error))}.input-field--error .input-field__input[data-v-feb04bef],.input-field__input[data-v-feb04bef]:user-invalid{--input-border-color: var(--color-border-error, var(--color-error)) !important}.input-field--error .input-field__input[data-v-feb04bef]:focus-visible,.input-field__input[data-v-feb04bef]:user-invalid:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.input-field--success .input-field__input[data-v-feb04bef]{--input-border-color: var(--color-border-success, var(--color-success)) !important}.input-field--success .input-field__input[data-v-feb04bef]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.input-field--success .input-field__helper-text-message__icon[data-v-feb04bef]{color:var(--color-border-success, var(--color-success))}.db-settings[data-v-846e1455]{display:flex;flex-direction:column;gap:12px}.db-settings__intro[data-v-846e1455]{margin:0;color:var(--color-text-maxcontrast)}.snippet[data-v-ff214019]{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.snippet__code[data-v-ff214019]{inline-size:100%;overflow-x:auto;padding:12px;border-radius:var(--border-radius);background:var(--color-background-dark)}.snippet__note[data-v-ff214019]{color:var(--color-text-maxcontrast);margin:0}.database-view__heading[data-v-fb7b97cc]{display:flex;align-items:center;justify-content:space-between;gap:12px}.database-view__filters[data-v-fb7b97cc]{display:flex;flex-wrap:wrap;gap:4px;margin:12px 0;padding:4px;background:var(--color-background-dark);border-radius:var(--border-radius-large)}.database-view__filter[data-v-fb7b97cc]{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:var(--border-radius-pill);background:transparent;color:var(--color-main-text);padding:4px 14px}.database-view__filter[data-v-fb7b97cc]:hover{background:var(--color-background-hover)}.database-view__filter--active[data-v-fb7b97cc]{background:var(--color-primary-element);color:var(--color-primary-element-text)}.database-view__filter-count[data-v-fb7b97cc]{color:inherit;opacity:.75}.database-view__group[data-v-fb7b97cc]{margin-block-start:20px}.database-view__group-title[data-v-fb7b97cc]{display:flex;align-items:center;gap:10px;font-weight:700;margin:0 0 8px}.database-view__group-fails[data-v-fb7b97cc]{font-weight:400;font-size:.85rem;color:var(--color-error-text, var(--color-error))}.database-view__cards[data-v-fb7b97cc]{display:flex;flex-direction:column;gap:10px}.database-view__empty[data-v-fb7b97cc]{color:var(--color-text-maxcontrast)}.chart-wrapper[data-v-07ed95bd]{height:200px;width:100%}.diskchart-container[data-v-d52cfcd6]{position:relative;flex:0 0 auto;width:120px;margin-right:24px}.diskinfo-container[data-v-d52cfcd6]{flex:1 1 auto;min-width:0}.diskinfo[data-v-d52cfcd6]{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:0;margin:0;line-height:1.4}.diskinfo__row[data-v-d52cfcd6]{display:contents}.diskinfo__row dt[data-v-d52cfcd6]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap;text-align:end}.diskinfo__row dd[data-v-d52cfcd6]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.info-color-label--available[data-v-d52cfcd6]:before,.info-color-label--used[data-v-d52cfcd6]:before{content:"";display:inline-block;width:10px;height:10px;border-radius:10px;margin-right:5px}.info-color-label--available[data-v-d52cfcd6]:before{background-color:var(--color-border-maxcontrast)}.info-color-label--used[data-v-d52cfcd6]:before{background-color:var(--color-primary-element)}@media(width<=1280px){.text-center-mobile[data-v-d52cfcd6]{text-align:center}.diskchart-container[data-v-d52cfcd6]{margin:0 auto}.text-center-mobile .diskinfo[data-v-d52cfcd6]{justify-content:center}}.chart-wrapper[data-v-03ed9b79]{height:200px;width:100%}._material-design-icon_0RfRa{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxButton_14txJ{background:unset;border:none;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;text-align:inherit;line-height:inherit;padding:0;margin:0;outline:none}._material-design-icon_ILRX2{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxItem_ER-6m{--nc-form-box-item-border-width: 1px;--nc-form-box-item-min-height: 40px;--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l*1.045) );position:relative;display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline));min-height:var(--nc-form-box-item-min-height);padding-inline:var(--form-element-label-padding);border:1px solid var(--color-primary-element-extra-light-hover);border-bottom-width:2px;border-radius:var(--border-radius-element);background-color:var(--color-primary-element-extra-light);color:var(--color-main-text);font-weight:var(--font-weight-element, normal);will-change:transform;transition-property:color,border-color,background-color,transform;transition-duration:var(--animation-quick);transition-timing-function:linear;-webkit-user-select:none;user-select:none;cursor:pointer}._formBoxItem_ER-6m *{cursor:inherit}._formBoxItem_ER-6m:has(:disabled){cursor:default;opacity:.5}._formBoxItem_ER-6m:hover:not(:has(:disabled)){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-extra-light-hover)}._formBoxItem_ER-6m:active:not(:disabled){transform:scale(.985)}._formBoxItem_ER-6m:has(:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}._formBoxItem__description_g-KcX{font-weight:var(--font-weight-default, normal)}._formBoxItem_ER-6m._formBoxItem_legacy_TW1Sp{--nc-form-box-item-border-width: 0px;border:none}._formBoxItem_ER-6m._formBoxItem_inverted_CxfyH ._formBoxItem__element_zgVx-{color:var(--color-text-maxcontrast)}._formBoxItem_ER-6m._formBoxItem_inverted_CxfyH ._formBoxItem__description_g-KcX{color:inherit}._formBoxItem__content_dYtDe{flex:1;display:flex;flex-direction:column;padding-block:calc(2 * var(--default-grid-baseline));overflow-wrap:anywhere}._formBoxItem__element_zgVx-:after{content:"";position:absolute;inset:0}._formBoxItem__description_g-KcX{color:var(--color-text-maxcontrast)}._formBoxItem__icon_ZIpCi{display:flex;align-items:center;justify-content:flex-end}._material-design-icon_0Ylmc{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}input._formBoxSwitch__input_BLkhF{margin:0;width:var(--default-clickable-area);position:absolute;inset-block:0;inset-inline-end:var(--form-element-label-offset);z-index:-1;opacity:0!important;height:auto;cursor:inherit}._material-design-icon_Pm1ga{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._iconToggleSwitch_fKjEc{color:var(--v6bd152af);transition:color var(--animation-quick) ease}._iconToggleSwitch_fKjEc svg{height:auto!important}._iconToggleSwitch_fKjEc circle{cx:var(--v16fd8ca9);transition:cx var(--animation-quick) ease}.monitoring[data-v-94a398b4]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 4)}.material-design-icon[data-v-461c5031]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-461c5031]{display:block;height:var(--progress-bar-height);--progress-bar-color: var(--v737c16c0);--progress-bar-height: var(--v0630ed12)}.progress-bar--linear[data-v-461c5031]{width:100%;overflow:hidden;border:0;padding:0;background:var(--color-background-dark);border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-461c5031]::-webkit-progress-bar{height:var(--progress-bar-height);background-color:transparent}.progress-bar--linear[data-v-461c5031]::-webkit-progress-value{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-461c5031]::-moz-progress-bar{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--circular[data-v-461c5031]{width:var(--progress-bar-height);color:var(--progress-bar-color)}.progress-bar--error[data-v-461c5031]{color:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-461c5031]::-moz-progress-bar{background:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-461c5031]::-webkit-progress-value{background:var(--color-text-error, var(--color-error))!important}.progress-bar-container[data-v-461c5031]{display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline))}.progress-bar__value[data-v-461c5031]{font-size:var(--font-size-small, 13px);font-variant-numeric:tabular-nums;min-width:4ch;text-align:end}.usage-meter-bar__header[data-v-733874f2]{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.opcache-meters[data-v-6fef687a]{display:flex;flex-direction:column;gap:16px;padding:16px 0}.info--warning[data-v-6fef687a]{color:var(--color-warning-text, var(--color-warning))}.extensions-button[data-v-13baec9e]{margin-inline-start:calc(-2 * var(--default-grid-baseline) - var(--border-radius-element))}.resource-usage[data-v-15e6dfa6]{display:flex;flex-direction:column;gap:16px;padding:16px 0}.temp[data-v-cb3096fd]{font-variant-numeric:tabular-nums}.server-info-notice[data-v-4daaaea0]{margin:12px 0}.section h3{font-size:18px}.info{font-weight:700}.smallinfo{color:var(--color-text-maxcontrast)}.infobox{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:16px 0;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}@media(width<=1280px){.infobox{display:block;word-break:break-word}}.infobox h3{font-weight:700;padding:5px 0 10px;margin:0;overflow-wrap:break-word}.chart-container{position:relative;margin:10px}.clipboardButton{display:inline-block;position:relative;top:2px;margin-left:5px}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:30px}.row--cards{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));margin:16px 0}.row--cards .infobox{margin:0}.row--tiles{grid-template-columns:repeat(auto-fit,minmax(min(110px,100%),1fr));gap:8px;margin:16px 0}.row>*{min-width:0}.active-users-wrapper{flex:1;display:flex;gap:0 1rem;flex-wrap:wrap;align-items:center;justify-content:center}.active-users-box{padding:.25rem 1rem;flex:1;min-width:150px;border-left:2px solid var(--color-border)}@media(width<=1280px){.active-users-box{padding:1rem .5rem;border:none;text-align:center}}.active-users-box:first-child{border:none}.active-users-box .info{font-size:2rem}.smoothie-chart-tooltip{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:0 .25rem;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}.server-info-table table{width:100%;white-space:normal;overflow-wrap:break-word}.server-info-table th,.server-info-table td{padding:6px;border-bottom:1px solid var(--color-border)}.server-info-table th{color:var(--color-text-maxcontrast)}.server-info-table tr:last-child td{border-bottom:none} diff --git a/css/serverinfo-main.css b/css/serverinfo-main.css index 915fa298..aff28a02 100644 --- a/css/serverinfo-main.css +++ b/css/serverinfo-main.css @@ -1,2 +1,2 @@ /* extracted by css-entry-points-plugin */ -@import './main-BIfJTXIB.chunk.css'; \ No newline at end of file +@import './main-BHskGVgT.chunk.css'; \ No newline at end of file diff --git a/js/serverinfo-main.mjs b/js/serverinfo-main.mjs index 4c8f8e04..4f920293 100644 --- a/js/serverinfo-main.mjs +++ b/js/serverinfo-main.mjs @@ -1,25 +1,25 @@ -const _r=globalThis||void 0||self;function Sd(t){const e=Object.create(null);for(const n of t.split(","))e[n]=1;return n=>n in e}const zt={},hs=[],kn=()=>{},Rg=()=>!1,Hl=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),Wl=t=>t.startsWith("onUpdate:"),we=Object.assign,Ad=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},Ky=Object.prototype.hasOwnProperty,Mt=(t,e)=>Ky.call(t,e),St=Array.isArray,Gi=t=>Gr(t)==="[object Map]",ws=t=>Gr(t)==="[object Set]",Xh=t=>Gr(t)==="[object Date]",$t=t=>typeof t=="function",ae=t=>typeof t=="string",mn=t=>typeof t=="symbol",Zt=t=>t!==null&&typeof t=="object",Bg=t=>(Zt(t)||$t(t))&&$t(t.then)&&$t(t.catch),Pg=Object.prototype.toString,Gr=t=>Pg.call(t),qy=t=>Gr(t).slice(8,-1),Ng=t=>Gr(t)==="[object Object]",Jl=t=>ae(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,rr=Sd(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Gl=t=>{const e=Object.create(null);return(n=>e[n]||(e[n]=t(n)))},Xy=/-\w/g,We=Gl(t=>t.replace(Xy,e=>e.slice(1).toUpperCase())),Yy=/\B([A-Z])/g,Ri=Gl(t=>t.replace(Yy,"-$1").toLowerCase()),Kl=Gl(t=>t.charAt(0).toUpperCase()+t.slice(1)),La=Gl(t=>t?`on${Kl(t)}`:""),Re=(t,e)=>!Object.is(t,e),Fa=(t,...e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:i,value:n})},Zy=t=>{const e=parseFloat(t);return isNaN(e)?t:e},Qy=t=>{const e=ae(t)?Number(t):NaN;return isNaN(e)?t:e};let Yh;const Ma=()=>Yh||(Yh=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof _r<"u"?_r:{});function $o(t){if(St(t)){const e={};for(let n=0;n{if(n){const i=n.split(tb);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function Bt(t){let e="";if(ae(t))e=t;else if(St(t))for(let n=0;nDs(n,e))}const jg=t=>!!(t&&t.__v_isRef===!0),A=t=>ae(t)?t:t==null?"":St(t)||Zt(t)&&(t.toString===Pg||!$t(t.toString))?jg(t)?A(t.value):JSON.stringify(t,Ug,2):String(t),Ug=(t,e)=>jg(e)?Ug(t,e.value):Gi(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((n,[i,o],s)=>(n[Lu(i,s)+" =>"]=o,n),{})}:ws(e)?{[`Set(${e.size})`]:[...e.values()].map(n=>Lu(n))}:mn(e)?Lu(e):Zt(e)&&!St(e)&&!Ng(e)?String(e):e,Lu=(t,e="")=>{var n;return mn(t)?`Symbol(${(n=t.description)!=null?n:e})`:t};function ab(t){return t==null?"initial":typeof t=="string"?t===""?" ":t:String(t)}let Ee;class lb{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&Ee&&(Ee.active?(this.parent=Ee,this.index=(Ee.scopes||(Ee.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,n;if(this.scopes){const i=this.scopes.slice();for(e=0,n=i.length;e0&&--this._on===0){if(Ee===this)Ee=this.prevScope;else{let e=Ee;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let n,i;for(n=0,i=this.effects.length;n0)return;if(lr){let e=lr;for(lr=void 0;e;){const n=e.next;e.next=void 0,e.flags&=-9,e=n}}let t;for(;ar;){let e=ar;for(ar=void 0;e;){const n=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){t||(t=i)}e=n}}if(t)throw t}function Jg(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function Gg(t){let e,n=t.depsTail,i=n;for(;i;){const o=i.prevDep;i.version===-1?(i===n&&(n=o),Dd(i),cb(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=o}t.deps=e,t.depsTail=n}function Pc(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(Kg(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function Kg(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===wr)||(t.globalVersion=wr,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Pc(t))))return;t.flags|=2;const e=t.dep,n=se,i=Pn;se=t,Pn=!0;try{Jg(t);const o=t.fn(t._value);(e.version===0||Re(o,t._value))&&(t.flags|=128,t._value=o,e.version++)}catch(o){throw e.version++,o}finally{se=n,Pn=i,Gg(t),t.flags&=-3}}function Dd(t,e=!1){const{dep:n,prevSub:i,nextSub:o}=t;if(i&&(i.nextSub=o,t.prevSub=void 0),o&&(o.prevSub=i,t.nextSub=void 0),n.subs===t&&(n.subs=i,!i&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)Dd(s,!0)}!e&&!--n.sc&&n.map&&n.map.delete(n.key)}function cb(t){const{prevDep:e,nextDep:n}=t;e&&(e.nextDep=n,t.prevDep=void 0),n&&(n.prevDep=e,t.nextDep=void 0)}let Pn=!0;const qg=[];function Ti(){qg.push(Pn),Pn=!1}function Di(){const t=qg.pop();Pn=t===void 0?!0:t}function Zh(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const n=se;se=void 0;try{e()}finally{se=n}}}let wr=0;class db{constructor(e,n){this.sub=e,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ql{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!se||!Pn||se===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==se)n=this.activeLink=new db(se,this),se.deps?(n.prevDep=se.depsTail,se.depsTail.nextDep=n,se.depsTail=n):se.deps=se.depsTail=n,Xg(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const i=n.nextDep;i.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=i),n.prevDep=se.depsTail,n.nextDep=void 0,se.depsTail.nextDep=n,se.depsTail=n,se.deps===n&&(se.deps=i)}return n}trigger(e){this.version++,wr++,this.notify(e)}notify(e){kd();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Td()}}}function Xg(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)Xg(i)}const n=t.dep.subs;n!==t&&(t.prevSub=n,n&&(n.nextSub=t)),t.dep.subs=t}}const tl=new WeakMap,Ro=Symbol(""),Nc=Symbol(""),xr=Symbol("");function ze(t,e,n){if(Pn&&se){let i=tl.get(t);i||tl.set(t,i=new Map);let o=i.get(n);o||(i.set(n,o=new ql),o.map=i,o.key=n),o.track()}}function yi(t,e,n,i,o,s){const r=tl.get(t);if(!r){wr++;return}const a=l=>{l&&l.trigger()};if(kd(),e==="clear")r.forEach(a);else{const l=St(t),c=l&&Jl(n);if(l&&n==="length"){const u=Number(i);r.forEach((d,p)=>{(p==="length"||p===xr||!mn(p)&&p>=u)&&a(d)})}else switch((n!==void 0||r.has(void 0))&&a(r.get(n)),c&&a(r.get(xr)),e){case"add":l?c&&a(r.get("length")):(a(r.get(Ro)),Gi(t)&&a(r.get(Nc)));break;case"delete":l||(a(r.get(Ro)),Gi(t)&&a(r.get(Nc)));break;case"set":Gi(t)&&a(r.get(Ro));break}}Td()}function hb(t,e){const n=tl.get(t);return n&&n.get(e)}function ts(t){const e=Wt(t);return e===t?e:(ze(e,"iterate",xr),gn(t)?e:e.map(Ln))}function Xl(t){return ze(t=Wt(t),"iterate",xr),t}function Yn(t,e){return Oi(t)?Er(Bo(t)?Ln(e):e):Ln(e)}const pb={__proto__:null,[Symbol.iterator](){return Vu(this,Symbol.iterator,t=>Yn(this,t))},concat(...t){return ts(this).concat(...t.map(e=>St(e)?ts(e):e))},entries(){return Vu(this,"entries",t=>(t[1]=Yn(this,t[1]),t))},every(t,e){return ui(this,"every",t,e,void 0,arguments)},filter(t,e){return ui(this,"filter",t,e,n=>n.map(i=>Yn(this,i)),arguments)},find(t,e){return ui(this,"find",t,e,n=>Yn(this,n),arguments)},findIndex(t,e){return ui(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return ui(this,"findLast",t,e,n=>Yn(this,n),arguments)},findLastIndex(t,e){return ui(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return ui(this,"forEach",t,e,void 0,arguments)},includes(...t){return ju(this,"includes",t)},indexOf(...t){return ju(this,"indexOf",t)},join(t){return ts(this).join(t)},lastIndexOf(...t){return ju(this,"lastIndexOf",t)},map(t,e){return ui(this,"map",t,e,void 0,arguments)},pop(){return Vs(this,"pop")},push(...t){return Vs(this,"push",t)},reduce(t,...e){return Qh(this,"reduce",t,e)},reduceRight(t,...e){return Qh(this,"reduceRight",t,e)},shift(){return Vs(this,"shift")},some(t,e){return ui(this,"some",t,e,void 0,arguments)},splice(...t){return Vs(this,"splice",t)},toReversed(){return ts(this).toReversed()},toSorted(t){return ts(this).toSorted(t)},toSpliced(...t){return ts(this).toSpliced(...t)},unshift(...t){return Vs(this,"unshift",t)},values(){return Vu(this,"values",t=>Yn(this,t))}};function Vu(t,e,n){const i=Xl(t),o=i[e]();return i!==t&&!gn(t)&&(o._next=o.next,o.next=()=>{const s=o._next();return s.done||(s.value=n(s.value)),s}),o}const fb=Array.prototype;function ui(t,e,n,i,o,s){const r=Xl(t),a=r!==t&&!gn(t),l=r[e];if(l!==fb[e]){const d=l.apply(t,s);return a?Ln(d):d}let c=n;r!==t&&(a?c=function(d,p){return n.call(this,Yn(t,d),p,t)}:n.length>2&&(c=function(d,p){return n.call(this,d,p,t)}));const u=l.call(r,c,i);return a&&o?o(u):u}function Qh(t,e,n,i){const o=Xl(t),s=o!==t&&!gn(t);let r=n,a=!1;o!==t&&(s?(a=i.length===0,r=function(c,u,d){return a&&(a=!1,c=Yn(t,c)),n.call(this,c,Yn(t,u),d,t)}):n.length>3&&(r=function(c,u,d){return n.call(this,c,u,d,t)}));const l=o[e](r,...i);return a?Yn(t,l):l}function ju(t,e,n){const i=Wt(t);ze(i,"iterate",xr);const o=i[e](...n);return(o===-1||o===!1)&&Os(n[0])?(n[0]=Wt(n[0]),i[e](...n)):o}function Vs(t,e,n=[]){Ti(),kd();const i=Wt(t)[e].apply(t,n);return Td(),Di(),i}const gb=Sd("__proto__,__v_isRef,__isVue"),Yg=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(mn));function mb(t){mn(t)||(t=String(t));const e=Wt(this);return ze(e,"has",t),e.hasOwnProperty(t)}class Zg{constructor(e=!1,n=!1){this._isReadonly=e,this._isShallow=n}get(e,n,i){if(n==="__v_skip")return e.__v_skip;const o=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return s;if(n==="__v_raw")return i===(o?s?im:nm:s?em:tm).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const r=St(e);if(!o){let l;if(r&&(l=pb[n]))return l;if(n==="hasOwnProperty")return mb}const a=Reflect.get(e,n,_e(e)?e:i);if((mn(n)?Yg.has(n):gb(n))||(o||ze(e,"get",n),s))return a;if(_e(a)){const l=r&&Jl(n)?a:a.value;return o&&Zt(l)?el(l):l}return Zt(a)?o?el(a):xs(a):a}}class Qg extends Zg{constructor(e=!1){super(!1,e)}set(e,n,i,o){let s=e[n];const r=St(e)&&Jl(n);if(!this._isShallow){const c=Oi(s);if(!gn(i)&&!Oi(i)&&(s=Wt(s),i=Wt(i)),!r&&_e(s)&&!_e(i))return c||(s.value=i),!0}const a=r?Number(n)t,da=t=>Reflect.getPrototypeOf(t);function wb(t,e,n){return function(...i){const o=this.__v_raw,s=Wt(o),r=Gi(s),a=t==="entries"||t===Symbol.iterator&&r,l=t==="keys"&&r,c=o[t](...i),u=n?Lc:e?Er:Ln;return!e&&ze(s,"iterate",l?Nc:Ro),we(Object.create(c),{next(){const{value:d,done:p}=c.next();return p?{value:d,done:p}:{value:a?[u(d[0]),u(d[1])]:u(d),done:p}}})}}function ha(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function xb(t,e){const n={get(i){const o=this.__v_raw,s=Wt(o),r=Wt(i);t||(Re(i,r)&&ze(s,"get",i),ze(s,"get",r));const{has:a}=da(s),l=e?Lc:t?Er:Ln;if(a.call(s,i))return l(o.get(i));if(a.call(s,r))return l(o.get(r));o!==s&&o.get(i)},get size(){const i=this.__v_raw;return!t&&ze(Wt(i),"iterate",Ro),i.size},has(i){const o=this.__v_raw,s=Wt(o),r=Wt(i);return t||(Re(i,r)&&ze(s,"has",i),ze(s,"has",r)),i===r?o.has(i):o.has(i)||o.has(r)},forEach(i,o){const s=this,r=s.__v_raw,a=Wt(r),l=e?Lc:t?Er:Ln;return!t&&ze(a,"iterate",Ro),r.forEach((c,u)=>i.call(o,l(c),l(u),s))}};return we(n,t?{add:ha("add"),set:ha("set"),delete:ha("delete"),clear:ha("clear")}:{add(i){const o=Wt(this),s=da(o),r=Wt(i),a=!e&&!gn(i)&&!Oi(i)?r:i;return s.has.call(o,a)||Re(i,a)&&s.has.call(o,i)||Re(r,a)&&s.has.call(o,r)||(o.add(a),yi(o,"add",a,a)),this},set(i,o){!e&&!gn(o)&&!Oi(o)&&(o=Wt(o));const s=Wt(this),{has:r,get:a}=da(s);let l=r.call(s,i);l||(i=Wt(i),l=r.call(s,i));const c=a.call(s,i);return s.set(i,o),l?Re(o,c)&&yi(s,"set",i,o):yi(s,"add",i,o),this},delete(i){const o=Wt(this),{has:s,get:r}=da(o);let a=s.call(o,i);a||(i=Wt(i),a=s.call(o,i)),r&&r.call(o,i);const l=o.delete(i);return a&&yi(o,"delete",i,void 0),l},clear(){const i=Wt(this),o=i.size!==0,s=i.clear();return o&&yi(i,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=wb(i,t,e)}),n}function Yl(t,e){const n=xb(t,e);return(i,o,s)=>o==="__v_isReactive"?!t:o==="__v_isReadonly"?t:o==="__v_raw"?i:Reflect.get(Mt(n,o)&&o in i?n:i,o,s)}const Eb={get:Yl(!1,!1)},Cb={get:Yl(!1,!0)},Sb={get:Yl(!0,!1)},Ab={get:Yl(!0,!0)},tm=new WeakMap,em=new WeakMap,nm=new WeakMap,im=new WeakMap;function kb(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function xs(t){return Oi(t)?t:Zl(t,!1,vb,Eb,tm)}function Tb(t){return Zl(t,!1,bb,Cb,em)}function el(t){return Zl(t,!0,yb,Sb,nm)}function Db(t){return Zl(t,!0,_b,Ab,im)}function Zl(t,e,n,i,o){if(!Zt(t)||t.__v_raw&&!(e&&t.__v_isReactive)||t.__v_skip||!Object.isExtensible(t))return t;const s=o.get(t);if(s)return s;const r=kb(qy(t));if(r===0)return t;const a=new Proxy(t,r===2?i:n);return o.set(t,a),a}function Bo(t){return Oi(t)?Bo(t.__v_raw):!!(t&&t.__v_isReactive)}function Oi(t){return!!(t&&t.__v_isReadonly)}function gn(t){return!!(t&&t.__v_isShallow)}function Os(t){return t?!!t.__v_raw:!1}function Wt(t){const e=t&&t.__v_raw;return e?Wt(e):t}function Ob(t){return!Mt(t,"__v_skip")&&Object.isExtensible(t)&&Lg(t,"__v_skip",!0),t}const Ln=t=>Zt(t)?xs(t):t,Er=t=>Zt(t)?el(t):t;function _e(t){return t?t.__v_isRef===!0:!1}function Rt(t){return om(t,!1)}function rn(t){return om(t,!0)}function om(t,e){return _e(t)?t:new $b(t,e)}class $b{constructor(e,n){this.dep=new ql,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?e:Wt(e),this._value=n?e:Ln(e),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(e){const n=this._rawValue,i=this.__v_isShallow||gn(e)||Oi(e);e=i?e:Wt(e),Re(e,n)&&(this._rawValue=e,this._value=i?e:Ln(e),this.dep.trigger())}}function E(t){return _e(t)?t.value:t}function tn(t){return $t(t)?t():E(t)}const Rb={get:(t,e,n)=>e==="__v_raw"?t:E(Reflect.get(t,e,n)),set:(t,e,n,i)=>{const o=t[e];return _e(o)&&!_e(n)?(o.value=n,!0):Reflect.set(t,e,n,i)}};function sm(t){return Bo(t)?t:new Proxy(t,Rb)}class Bb{constructor(e){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new ql,{get:i,set:o}=e(n.track.bind(n),n.trigger.bind(n));this._get=i,this._set=o}get value(){return this._value=this._get()}set value(e){this._set(e)}}function Pb(t){return new Bb(t)}class Nb{constructor(e,n,i){this._object=e,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0,this._key=mn(n)?n:String(n),this._raw=Wt(e);let o=!0,s=e;if(!St(e)||mn(this._key)||!Jl(this._key))do o=!Os(s)||gn(s);while(o&&(s=s.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=E(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&_e(this._raw[this._key])){const n=this._object[this._key];if(_e(n)){n.value=e;return}}this._object[this._key]=e}get dep(){return hb(this._raw,this._key)}}class Lb{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function So(t,e,n){return _e(t)?t:$t(t)?new Lb(t):Zt(t)&&arguments.length>1?Fb(t,e,n):Rt(t)}function Fb(t,e,n){return new Nb(t,e,n)}class Vb{constructor(e,n,i){this.fn=e,this.setter=n,this._value=void 0,this.dep=new ql(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=wr-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&se!==this)return Wg(this,!0),!0}get value(){const e=this.dep.track();return Kg(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function jb(t,e,n=!1){let i,o;return $t(t)?i=t:(i=t.get,o=t.set),new Vb(i,o,n)}const pa={},nl=new WeakMap;let yo;function Ub(t,e=!1,n=yo){if(n){let i=nl.get(n);i||nl.set(n,i=[]),i.push(t)}}function Ib(t,e,n=zt){const{immediate:i,deep:o,once:s,scheduler:r,augmentJob:a,call:l}=n,c=k=>o?k:gn(k)||o===!1||o===0?bi(k,1):bi(k);let u,d,p,f,v=!1,g=!1;if(_e(t)?(d=()=>t.value,v=gn(t)):Bo(t)?(d=()=>c(t),v=!0):St(t)?(g=!0,v=t.some(k=>Bo(k)||gn(k)),d=()=>t.map(k=>{if(_e(k))return k.value;if(Bo(k))return c(k);if($t(k))return l?l(k,2):k()})):$t(t)?e?d=l?()=>l(t,2):t:d=()=>{if(p){Ti();try{p()}finally{Di()}}const k=yo;yo=u;try{return l?l(t,3,[f]):t(f)}finally{yo=k}}:d=kn,e&&o){const k=d,N=o===!0?1/0:o;d=()=>bi(k(),N)}const w=Ig(),b=()=>{u.stop(),w&&w.active&&Ad(w.effects,u)};if(s&&e){const k=e;e=(...N)=>{const F=k(...N);return b(),F}}let S=g?new Array(t.length).fill(pa):pa;const D=k=>{if(!(!(u.flags&1)||!u.dirty&&!k))if(e){const N=u.run();if(k||o||v||(g?N.some((F,j)=>Re(F,S[j])):Re(N,S))){p&&p();const F=yo;yo=u;try{const j=[N,S===pa?void 0:g&&S[0]===pa?[]:S,f];S=N,l?l(e,3,j):e(...j)}finally{yo=F}}}else u.run()};return a&&a(D),u=new zg(d),u.scheduler=r?()=>r(D,!1):D,f=k=>Ub(k,!1,u),p=u.onStop=()=>{const k=nl.get(u);if(k){if(l)l(k,4);else for(const N of k)N();nl.delete(u)}},e?i?D(!0):S=u.run():r?r(D.bind(null,!0),!0):u.run(),b.pause=u.pause.bind(u),b.resume=u.resume.bind(u),b.stop=b,b}function bi(t,e=1/0,n){if(e<=0||!Zt(t)||t.__v_skip||(n=n||new Map,(n.get(t)||0)>=e))return t;if(n.set(t,e),e--,_e(t))bi(t.value,e,n);else if(St(t))for(let i=0;i{bi(i,e,n)});else if(Ng(t)){for(const i in t)bi(t[i],e,n);for(const i of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,i)&&bi(t[i],e,n)}return t}function Kr(t,e,n,i){try{return i?t(...i):t()}catch(o){Ql(o,e,n)}}function Tn(t,e,n,i){if($t(t)){const o=Kr(t,e,n,i);return o&&Bg(o)&&o.catch(s=>{Ql(s,e,n)}),o}if(St(t)){const o=[];for(let s=0;s>>1,o=Qe[i],s=Cr(o);s=Cr(n)?Qe.push(t):Qe.splice(Hb(e),0,t),t.flags|=1,am()}}function am(){il||(il=rm.then(cm))}function lm(t){if(!St(t))zi&&t.id===-1?zi.splice(ls+1,0,t):t.flags&1||(ps.push(t),t.flags|=1);else for(let e=0;eCr(n)-Cr(i));if(ps.length=0,zi){for(let n=0;nt.id==null?t.flags&2?-1:1/0:t.id;function cm(t){try{for(Gn=0;Gndt;function dt(t,e=Le,n){if(!e||t._n)return t;const i=(...o)=>{i._d&&ul(-1);const s=ol(e),r=Ci.length;let a;try{a=t(...o)}finally{for(let l=Ci.length;l>r;l--)Fd();ol(s),i._d&&ul(1)}return a};return i._n=!0,i._c=!0,i._d=!0,i}function Sn(t,e){if(Le===null)return t;const n=ru(Le),i=t.dirs||(t.dirs=[]);for(let o=0;o1)return n&&$t(e)?e.call(i&&i.proxy):e}}const Kb=Symbol.for("v-scx"),qb=()=>Ei(Kb);function dm(t,e){return tu(t,null,e)}function Xb(t,e){return tu(t,null,{flush:"sync"})}function ke(t,e,n){return tu(t,e,n)}function tu(t,e,n=zt){const{immediate:i,deep:o,flush:s,once:r}=n,a=we({},n),l=e&&i||!e&&s!=="post";let c;if(Or){if(s==="sync"){const f=qb();c=f.__watcherHandles||(f.__watcherHandles=[])}else if(!l){const f=()=>{};return f.stop=kn,f.resume=kn,f.pause=kn,f}}const u=He;a.call=(f,v,g)=>Tn(f,u,v,g);let d=!1;s==="post"?a.scheduler=f=>{Ze(f,u&&u.suspense)}:s!=="sync"&&(d=!0,a.scheduler=(f,v)=>{v?f():Od(f)}),a.augmentJob=f=>{e&&(f.flags|=4),d&&(f.flags|=2,u&&(f.id=u.uid,f.i=u))};const p=Ib(t,e,a);return Or&&(c?c.push(p):l&&p()),p}function Yb(t,e,n){const i=this.proxy,o=ae(t)?t.includes(".")?hm(i,t):()=>i[t]:t.bind(i,i);let s;$t(e)?s=e:(s=e.handler,n=e);const r=Zr(this),a=tu(o,s.bind(i),n);return r(),a}function hm(t,e){const n=e.split(".");return()=>{let i=t;for(let o=0;ot.__isTeleport,xo=t=>t&&(t.disabled||t.disabled===""),Zb=t=>t&&(t.defer||t.defer===""),tp=t=>typeof SVGElement<"u"&&t instanceof SVGElement,ep=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,Fc=(t,e)=>{const n=t&&t.to;return ae(n)?e?e(n):null:n},Qb={name:"Teleport",__isTeleport:!0,process(t,e,n,i,o,s,r,a,l,c){const{mc:u,pc:d,pbc:p,o:{insert:f,querySelector:v,createText:g,createComment:w,parentNode:b}}=c,S=xo(e.props);let{dynamicChildren:D}=e;const k=(j,I,X)=>{j.shapeFlag&16&&u(j.children,I,X,o,s,r,a,l)},N=(j=e)=>{const I=xo(j.props),X=j.target=Fc(j.props,v),W=Vc(X,j,g,f);X&&(r!=="svg"&&tp(X)?r="svg":r!=="mathml"&&ep(X)&&(r="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(X),I||(k(j,X,W),Ms(j,!1)))},F=j=>{const I=()=>{if(ji.get(j)===I){if(ji.delete(j),xo(j.props)){const X=b(j.el)||n;k(j,X,j.anchor),Ms(j,!0)}N(j)}};ji.set(j,I),Ze(I,s)};if(t==null){const j=e.el=g(""),I=e.anchor=g("");if(f(j,n,i),f(I,n,i),Zb(e.props)||s&&s.pendingBranch){F(e);return}S&&(k(e,n,I),Ms(e,!0)),N()}else{e.el=t.el;const j=e.anchor=t.anchor,I=ji.get(t);if(I){I.flags|=8,ji.delete(t),F(e);return}e.targetStart=t.targetStart;const X=e.target=t.target,W=e.targetAnchor=t.targetAnchor,Y=xo(t.props),$=Y?n:X,U=Y?j:W;if(r==="svg"||tp(X)?r="svg":(r==="mathml"||ep(X))&&(r="mathml"),D?(p(t.dynamicChildren,D,$,o,s,r,a),Ld(t,e,!0)):l||d(t,e,$,U,o,s,r,a,!1),S)Y?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):fa(e,n,j,c,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const M=Fc(e.props,v);M&&(e.target=M,fa(e,M,null,c,0))}else Y&&fa(e,X,W,c,1);Ms(e,S)}},remove(t,e,n,{um:i,o:{remove:o}},s){const{shapeFlag:r,children:a,anchor:l,targetStart:c,targetAnchor:u,target:d,props:p}=t,f=xo(p),v=s||!f,g=ji.get(t);if(g&&(g.flags|=8,ji.delete(t)),d&&(o(c),o(u)),s&&o(l),!g&&(f||d)&&r&16)for(let w=0;w{t.isMounted=!0}),xm(()=>{t.isUnmounting=!0}),t}const vn=[Function,Array],fm={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:vn,onEnter:vn,onAfterEnter:vn,onEnterCancelled:vn,onBeforeLeave:vn,onLeave:vn,onAfterLeave:vn,onLeaveCancelled:vn,onBeforeAppear:vn,onAppear:vn,onAfterAppear:vn,onAppearCancelled:vn},gm=t=>{const e=t.subTree;return e.component?gm(e.component):e},n_={name:"BaseTransition",props:fm,setup(t,{slots:e}){const n=li(),i=e_();return()=>{const o=e.default&&ym(e.default(),!0),s=o&&o.length?mm(o):n.subTree?st():void 0;if(!s)return;const r=Wt(t),{mode:a}=r;if(i.isLeaving)return Uu(s);const l=sl(s);if(!l)return Uu(s);let c=jc(l,r,i,n,d=>c=d);l.type!==Be&&Sr(l,c);let u=n.subTree&&sl(n.subTree);if(u&&u.type!==Be&&!Eo(u,l)&&gm(n).type!==Be){let d=jc(u,r,i,n);if(Sr(u,d),a==="out-in"&&l.type!==Be)return i.isLeaving=!0,d.afterLeave=()=>{i.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,u=void 0},Uu(s);a==="in-out"&&l.type!==Be?d.delayLeave=(p,f,v)=>{const g=vm(i,u);g[String(u.key)]=u,p[wn]=()=>{f(),p[wn]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{v(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return s}}};function mm(t){let e=t[0];if(t.length>1){for(const n of t)if(n.type!==Be){e=n;break}}return e}const i_=n_;function vm(t,e){const{leavingVNodes:n}=t;let i=n.get(e.type);return i||(i=Object.create(null),n.set(e.type,i)),i}function jc(t,e,n,i,o){const{appear:s,mode:r,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:f,onAfterLeave:v,onLeaveCancelled:g,onBeforeAppear:w,onAppear:b,onAfterAppear:S,onAppearCancelled:D}=e,k=String(t.key),N=vm(n,t),F=(X,W)=>{X&&Tn(X,i,9,W)},j=(X,W)=>{const Y=W[1];F(X,W),St(X)?X.every($=>$.length<=1)&&Y():X.length<=1&&Y()},I={mode:r,persisted:a,beforeEnter(X){let W=l;if(!n.isMounted)if(s)W=w||l;else return;X[wn]&&X[wn](!0);const Y=N[k];Y&&Eo(t,Y)&&Y.el[wn]&&Y.el[wn](),F(W,[X])},enter(X){if(N[k]===t)return;let W=c,Y=u,$=d;if(!n.isMounted)if(s)W=b||c,Y=S||u,$=D||d;else return;let U=!1;X[js]=nt=>{U||(U=!0,nt?F($,[X]):F(Y,[X]),I.delayedLeave&&I.delayedLeave(),X[js]=void 0)};const M=X[js].bind(null,!1);W?j(W,[X,M]):M()},leave(X,W){const Y=String(t.key);if(X[js]&&X[js](!0),n.isUnmounting)return W();F(p,[X]);let $=!1;X[wn]=M=>{$||($=!0,W(),M?F(g,[X]):F(v,[X]),X[wn]=void 0,N[Y]===t&&delete N[Y])};const U=X[wn].bind(null,!1);N[Y]=t,f?j(f,[X,U]):U()},clone(X){const W=jc(X,e,n,i,o);return o&&o(W),W}};return I}function Uu(t){if(nu(t))return t=Zi(t),t.children=null,t}function sl(t){if(!nu(t))return eu(t.type)&&t.children?mm(t.children):t;if(t.component)return t.component.subTree;const{shapeFlag:e,children:n}=t;if(n){if(e&16)return n[0];if(e&32&&$t(n.default))return n.default()}}function Sr(t,e){if(t.shapeFlag&6&&t.component){t.transition=e;const n=t.component.subTree;Sr(eu(n.type)&&sl(n)||n,e)}else t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function ym(t,e=!1,n){let i=[],o=0;for(let s=0;s1)for(let s=0;sn.value,set:o=>n.value=o})}return n}function np(t,e){let n;return!!((n=Object.getOwnPropertyDescriptor(t,e))&&!n.configurable)}const rl=new WeakMap;function ur(t,e,n,i,o=!1){if(St(t)){t.forEach((g,w)=>ur(g,e&&(St(e)?e[w]:e),n,i,o));return}if(fs(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&ur(t,e,n,i.component.subTree);return}const s=i.shapeFlag&4?ru(i.component):i.el,r=o?null:s,{i:a,r:l}=t,c=e&&e.r,u=a.refs===zt?a.refs={}:a.refs,d=a.setupState,p=Wt(d),f=d===zt?Rg:g=>np(u,g)?!1:Mt(p,g),v=(g,w)=>!(w&&np(u,w));if(c!=null&&c!==l){if(ip(e),ae(c))u[c]=null,f(c)&&(d[c]=null);else if(_e(c)){const g=e;v(c,g.k)&&(c.value=null),g.k&&(u[g.k]=null)}}if($t(l))Kr(l,a,12,[r,u]);else{const g=ae(l),w=_e(l);if(g||w){const b=()=>{if(t.f){const S=g?f(l)?d[l]:u[l]:v()||!t.k?l.value:u[t.k];if(o)St(S)&&Ad(S,s);else if(St(S))S.includes(s)||S.push(s);else if(g)u[l]=[s],f(l)&&(d[l]=u[l]);else{const D=[s];v(l,t.k)&&(l.value=D),t.k&&(u[t.k]=D)}}else g?(u[l]=r,f(l)&&(d[l]=r)):w&&(v(l,t.k)&&(l.value=r),t.k&&(u[t.k]=r))};if(r){const S=()=>{b(),rl.delete(t)};S.id=-1,rl.set(t,S),Ze(S,n)}else ip(t),b()}}}function ip(t){const e=rl.get(t);e&&(e.flags|=8,rl.delete(t))}Ma().requestIdleCallback,Ma().cancelIdleCallback;const fs=t=>!!t.type.__asyncLoader,nu=t=>t.type.__isKeepAlive;function o_(t,e){_m(t,"a",e)}function s_(t,e){_m(t,"da",e)}function _m(t,e,n=He){const i=t.__wdc||(t.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return t()});if(iu(e,i,n),n){let o=n.parent;for(;o&&o.parent;)nu(o.parent.vnode)&&r_(i,e,n,o),o=o.parent}}function r_(t,e,n,i){const o=iu(e,t,i,!0);Dn(()=>{Ad(i[e],o)},n)}function iu(t,e,n=He,i=!1){if(n){const o=n[t]||(n[t]=[]),s=e.__weh||(e.__weh=(...r)=>{Ti();const a=Zr(n),l=Tn(e,n,t,r);return a(),Di(),l});return i?o.unshift(s):o.push(s),s}}const Bi=t=>(e,n=He)=>{(!Or||t==="sp")&&iu(t,(...i)=>e(...i),n)},a_=Bi("bm"),Pi=Bi("m"),wm=Bi("bu"),l_=Bi("u"),xm=Bi("bum"),Dn=Bi("um"),u_=Bi("sp"),c_=Bi("rtg"),d_=Bi("rtc");function h_(t,e=He){iu("ec",t,e)}const Rd="components",p_="directives";function xn(t,e){return Bd(Rd,t,!0,e)||t}const Em=Symbol.for("v-ndc");function Po(t){return ae(t)?Bd(Rd,t,!1)||t:t||Em}function f_(t){return Bd(p_,t)}function Bd(t,e,n=!0,i=!1){const o=Le||He;if(o){const s=o.type;if(t===Rd){const a=q_(s,!1);if(a&&(a===e||a===We(e)||a===Kl(We(e))))return s}const r=op(o[t]||s[t],e)||op(o.appContext[t],e);return!r&&i?s:r}}function op(t,e){return t&&(t[e]||t[We(e)]||t[Kl(We(e))])}function Fe(t,e,n,i){let o;const s=n,r=St(t);if(r||ae(t)){const a=r&&Bo(t);let l=!1,c=!1;a&&(l=!gn(t),c=Oi(t),t=Xl(t)),o=new Array(t.length);for(let u=0,d=t.length;ue(a,l,void 0,s));else{const a=Object.keys(t);o=new Array(a.length);for(let l=0,c=a.length;l{const s=i.fn(...o);return s&&(s.key=i.key),s}:i.fn)}return t}function kt(t,e,n,i,o,s){if(n==null&&(n={}),Le.ce||Le.parent&&fs(Le.parent)&&Le.parent.ce){const c=n,u=Object.keys(c).length>0;return e!=="default"&&(c.name=e),C(),ct(yt,null,[q("slot",c,i&&i())],u?-2:64)}let r=t[e];r&&r._c&&(r._d=!1);const a=Ci.length;C();let l;try{const c=r&&Cm(r(n)),u=n.key||s||c&&c.key;l=ct(yt,{key:(u&&!mn(u)?u:`_${e}`)+(!c&&i?"_fb":"")},c||(i?i():[]),c&&t._===1?64:-2)}catch(c){for(let u=Ci.length;u>a;u--)Fd();throw c}finally{r&&r._c&&(r._d=!0)}return!o&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Cm(t){return t.some(e=>Tr(e)?!(e.type===Be||e.type===yt&&!Cm(e.children)):!0)?t:null}function Sm(t,e){const n={};for(const i in t)n[e&&/[A-Z]/.test(i)?`on:${i}`:La(i)]=t[i];return n}const Uc=t=>t?Gm(t)?ru(t):Uc(t.parent):null,cr=we(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Uc(t.parent),$root:t=>Uc(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Tm(t),$forceUpdate:t=>t.f||(t.f=()=>{Od(t.update)}),$nextTick:t=>t.n||(t.n=qr.bind(t.proxy)),$watch:t=>Yb.bind(t)}),Iu=(t,e)=>t!==zt&&!t.__isScriptSetup&&Mt(t,e),g_={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:n,setupState:i,data:o,props:s,accessCache:r,type:a,appContext:l}=t;if(e[0]!=="$"){const p=r[e];if(p!==void 0)switch(p){case 1:return i[e];case 2:return o[e];case 4:return n[e];case 3:return s[e]}else{if(Iu(i,e))return r[e]=1,i[e];if(o!==zt&&Mt(o,e))return r[e]=2,o[e];if(Mt(s,e))return r[e]=3,s[e];if(n!==zt&&Mt(n,e))return r[e]=4,n[e];Ic&&(r[e]=0)}}const c=cr[e];let u,d;if(c)return e==="$attrs"&&ze(t.attrs,"get",""),c(t);if((u=a.__cssModules)&&(u=u[e]))return u;if(n!==zt&&Mt(n,e))return r[e]=4,n[e];if(d=l.config.globalProperties,Mt(d,e))return d[e]},set({_:t},e,n){const{data:i,setupState:o,ctx:s}=t;return Iu(o,e)?(o[e]=n,!0):i!==zt&&Mt(i,e)?(i[e]=n,!0):Mt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(s[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:i,appContext:o,props:s,type:r}},a){let l;return!!(n[a]||t!==zt&&a[0]!=="$"&&Mt(t,a)||Iu(e,a)||Mt(s,a)||Mt(i,a)||Mt(cr,a)||Mt(o.config.globalProperties,a)||(l=r.__cssModules)&&l[a])},defineProperty(t,e,n){return n.get!=null?t._.accessCache[e]=0:Mt(n,"value")&&this.set(t,e,n.value,null),Reflect.defineProperty(t,e,n)}};function ou(){return Am().slots}function m_(){return Am().attrs}function Am(t){const e=li();return e.setupContext||(e.setupContext=qm(e))}function al(t){return St(t)?t.reduce((e,n)=>(e[n]=null,e),{}):t}function ii(t,e){return!t||!e?t||e:St(t)&&St(e)?t.concat(e):we({},al(t),al(e))}let Ic=!0;function v_(t){const e=Tm(t),n=t.proxy,i=t.ctx;Ic=!1,e.beforeCreate&&sp(e.beforeCreate,t,"bc");const{data:o,computed:s,methods:r,watch:a,provide:l,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:f,updated:v,activated:g,deactivated:w,beforeDestroy:b,beforeUnmount:S,destroyed:D,unmounted:k,render:N,renderTracked:F,renderTriggered:j,errorCaptured:I,serverPrefetch:X,expose:W,inheritAttrs:Y,components:$,directives:U,filters:M}=e;if(c&&y_(c,i,null),r)for(const et in r){const ut=r[et];$t(ut)&&(i[et]=ut.bind(n))}if(o){const et=o.call(n,n);Zt(et)&&(t.data=xs(et))}if(Ic=!0,s)for(const et in s){const ut=s[et],ht=$t(ut)?ut.bind(n,n):$t(ut.get)?ut.get.bind(n,n):kn,mt=!$t(ut)&&$t(ut.set)?ut.set.bind(n):kn,vt=rt({get:ht,set:mt});Object.defineProperty(i,et,{enumerable:!0,configurable:!0,get:()=>vt.value,set:Tt=>vt.value=Tt})}if(a)for(const et in a)km(a[et],i,n,et);if(l){const et=$t(l)?l.call(n):l;Reflect.ownKeys(et).forEach(ut=>{$d(ut,et[ut])})}u&&sp(u,t,"c");function nt(et,ut){St(ut)?ut.forEach(ht=>et(ht.bind(n))):ut&&et(ut.bind(n))}if(nt(a_,d),nt(Pi,p),nt(wm,f),nt(l_,v),nt(o_,g),nt(s_,w),nt(h_,I),nt(d_,F),nt(c_,j),nt(xm,S),nt(Dn,k),nt(u_,X),St(W))if(W.length){const et=t.exposed||(t.exposed={});W.forEach(ut=>{Object.defineProperty(et,ut,{get:()=>n[ut],set:ht=>n[ut]=ht,enumerable:!0})})}else t.exposed||(t.exposed={});N&&t.render===kn&&(t.render=N),Y!=null&&(t.inheritAttrs=Y),$&&(t.components=$),U&&(t.directives=U),X&&bm(t)}function y_(t,e,n=kn){St(t)&&(t=zc(t));for(const i in t){const o=t[i];let s;Zt(o)?"default"in o?s=Ei(o.from||i,o.default,!0):s=Ei(o.from||i):s=Ei(o),_e(s)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):e[i]=s}}function sp(t,e,n){Tn(St(t)?t.map(i=>i.bind(e.proxy)):t.bind(e.proxy),e,n)}function km(t,e,n,i){let o=i.includes(".")?hm(n,i):()=>n[i];if(ae(t)){const s=e[t];$t(s)&&ke(o,s)}else if($t(t))ke(o,t.bind(n));else if(Zt(t))if(St(t))t.forEach(s=>km(s,e,n,i));else{const s=$t(t.handler)?t.handler.bind(n):e[t.handler];$t(s)&&ke(o,s,t)}}function Tm(t){const e=t.type,{mixins:n,extends:i}=e,{mixins:o,optionsCache:s,config:{optionMergeStrategies:r}}=t.appContext,a=s.get(e);let l;return a?l=a:!o.length&&!n&&!i?l=e:(l={},o.length&&o.forEach(c=>ll(l,c,r,!0)),ll(l,e,r)),Zt(e)&&s.set(e,l),l}function ll(t,e,n,i=!1){const{mixins:o,extends:s}=e;s&&ll(t,s,n,!0),o&&o.forEach(r=>ll(t,r,n,!0));for(const r in e)if(!(i&&r==="expose")){const a=b_[r]||n&&n[r];t[r]=a?a(t[r],e[r]):e[r]}return t}const b_={data:rp,props:ap,emits:ap,methods:tr,computed:tr,beforeCreate:Xe,created:Xe,beforeMount:Xe,mounted:Xe,beforeUpdate:Xe,updated:Xe,beforeDestroy:Xe,beforeUnmount:Xe,destroyed:Xe,unmounted:Xe,activated:Xe,deactivated:Xe,errorCaptured:Xe,serverPrefetch:Xe,components:tr,directives:tr,watch:w_,provide:rp,inject:__};function rp(t,e){return e?t?function(){return we($t(t)?t.call(this,this):t,$t(e)?e.call(this,this):e)}:e:t}function __(t,e){return tr(zc(t),zc(e))}function zc(t){if(St(t)){const e={};for(let n=0;n{let u,d=zt,p;return Xb(()=>{const f=t[o];Re(u,f)&&(u=f,c())}),{get(){return l(),n.get?n.get(u):u},set(f){const v=n.set?n.set(f):f;if(!Re(v,u)&&!(d!==zt&&Re(f,d)))return;const g=i.vnode.props,w=!!(g&&(e in g||o in g||s in g)&&(`onUpdate:${e}`in g||`onUpdate:${o}`in g||`onUpdate:${s}`in g));w||(u=f,c()),i.emit(`update:${e}`,v),Re(f,d)&&(Re(f,v)&&!Re(v,p)||w&&d!==zt&&!Re(v,u))&&c(),d=f,p=v}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?r||zt:a,done:!1}:{done:!0}}}},a}const Om=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${We(e)}Modifiers`]||t[`${Ri(e)}Modifiers`];function C_(t,e,...n){if(t.isUnmounted)return;const i=t.vnode.props||zt;let o=n;const s=e.startsWith("update:"),r=s&&Om(i,e.slice(7));r&&(r.trim&&(o=n.map(u=>ae(u)?u.trim():u)),r.number&&(o=o.map(Zy)));let a,l=i[a=La(e)]||i[a=La(We(e))];!l&&s&&(l=i[a=La(Ri(e))]),l&&Tn(l,t,6,o);const c=i[a+"Once"];if(c){if(!t.emitted)t.emitted={};else if(t.emitted[a])return;t.emitted[a]=!0,Tn(c,t,6,o)}}const S_=new WeakMap;function $m(t,e,n=!1){const i=n?S_:e.emitsCache,o=i.get(t);if(o!==void 0)return o;const s=t.emits;let r={},a=!1;if(!$t(t)){const l=c=>{const u=$m(c,e,!0);u&&(a=!0,we(r,u))};!n&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!s&&!a?(Zt(t)&&i.set(t,null),null):(St(s)?s.forEach(l=>r[l]=null):we(r,s),Zt(t)&&i.set(t,r),r)}function su(t,e){return!t||!Hl(e)?!1:(e=e.slice(2),e=e==="Once"?e:e.replace(/Once$/,""),Mt(t,e[0].toLowerCase()+e.slice(1))||Mt(t,Ri(e))||Mt(t,e))}function lp(t){const{type:e,vnode:n,proxy:i,withProxy:o,propsOptions:[s],slots:r,attrs:a,emit:l,render:c,renderCache:u,props:d,data:p,setupState:f,ctx:v,inheritAttrs:g}=t,w=ol(t);let b,S;try{if(n.shapeFlag&4){const k=o||i,N=k;b=Zn(c.call(N,k,u,d,f,p,v)),S=a}else{const k=e;b=Zn(k.length>1?k(d,{attrs:a,slots:r,emit:l}):k(d,null)),S=e.props?a:A_(a)}}catch(k){Ci.length=0,Ql(k,t,1),b=q(Be)}let D=b;if(S&&g!==!1){const k=Object.keys(S),{shapeFlag:N}=D;k.length&&N&7&&(s&&k.some(Wl)&&(S=k_(S,s)),D=Zi(D,S,!1,!0))}if(n.dirs&&(D=Zi(D,null,!1,!0),D.dirs=D.dirs?D.dirs.concat(n.dirs):n.dirs),n.transition){const k=eu(D.type)&&sl(D)||D;Sr(k,n.transition)}return b=D,ol(w),b}const A_=t=>{let e;for(const n in t)(n==="class"||n==="style"||Hl(n))&&((e||(e={}))[n]=t[n]);return e},k_=(t,e)=>{const n={};for(const i in t)(!Wl(i)||!(i.slice(9)in e))&&(n[i]=t[i]);return n};function T_(t,e,n){const{props:i,children:o,component:s}=t,{props:r,children:a,patchFlag:l}=e,c=s.emitsOptions;if(e.dirs||e.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return i?up(i,r,c):!!r;if(l&8){const u=e.dynamicProps;for(let d=0;dObject.create(Bm),Nm=t=>Object.getPrototypeOf(t)===Bm;function O_(t,e,n,i=!1){const o={},s=Pm();t.propsDefaults=Object.create(null),Lm(t,e,o,s);for(const r in t.propsOptions[0])r in o||(o[r]=void 0);n?t.props=i?o:Tb(o):t.type.props?t.props=o:t.props=s,t.attrs=s}function $_(t,e,n,i){const{props:o,attrs:s,vnode:{patchFlag:r}}=t,a=Wt(o),[l]=t.propsOptions;let c=!1;if((i||r>0)&&!(r&16)){if(r&8){const u=t.vnode.dynamicProps;for(let d=0;d{l=!0;const[p,f]=Fm(d,e,!0);we(r,p),f&&a.push(...f)};!n&&e.mixins.length&&e.mixins.forEach(u),t.extends&&u(t.extends),t.mixins&&t.mixins.forEach(u)}if(!s&&!l)return Zt(t)&&i.set(t,hs),hs;if(St(s))for(let u=0;ut==="_"||t==="_ctx"||t==="$stable",Nd=t=>St(t)?t.map(Zn):[Zn(t)],B_=(t,e,n)=>{if(e._n)return e;const i=dt((...o)=>Nd(e(...o)),n);return i._c=!1,i},Vm=(t,e,n)=>{const i=t._ctx;for(const o in t){if(Pd(o))continue;const s=t[o];if($t(s))e[o]=B_(o,s,i);else if(s!=null){const r=Nd(s);e[o]=()=>r}}},jm=(t,e)=>{const n=Nd(e);t.slots.default=()=>n},Um=(t,e,n)=>{for(const i in e)(n||!Pd(i))&&(t[i]=e[i])},P_=(t,e,n)=>{const i=t.slots=Pm();if(t.vnode.shapeFlag&32){const o=e._;o?(Um(i,e,n),n&&Lg(i,"_",o,!0)):Vm(e,i)}else e&&jm(t,e)},N_=(t,e,n)=>{const{vnode:i,slots:o}=t;let s=!0,r=zt;if(i.shapeFlag&32){const a=e._;a?n&&a===1?s=!1:Um(o,e,n):(s=!e.$stable,Vm(e,o)),r=e}else e&&(jm(t,e),r={default:1});if(s)for(const a in o)!Pd(a)&&r[a]==null&&delete o[a]},Ze=U_;function L_(t){return F_(t)}function F_(t,e){const n=Ma();n.__VUE__=!0;const{insert:i,remove:o,patchProp:s,createElement:r,createText:a,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:p,setScopeId:f=kn,insertStaticContent:v}=t,g=(T,P,K,it=null,J=null,z=null,Q=void 0,at=null,ot=!!P.dynamicChildren)=>{if(T===P)return;T&&!Eo(T,P)&&(it=oe(T),Ft(T,J,z,!0),T=null),P.patchFlag===-2&&(ot=!1,P.dynamicChildren=null);const{type:tt,ref:_t,shapeFlag:pt}=P;switch(tt){case Yr:w(T,P,K,it);break;case Be:b(T,P,K,it);break;case Va:T==null&&S(P,K,it,Q);break;case yt:$(T,P,K,it,J,z,Q,at,ot);break;default:pt&1?N(T,P,K,it,J,z,Q,at,ot):pt&6?U(T,P,K,it,J,z,Q,at,ot):(pt&64||pt&128)&&tt.process(T,P,K,it,J,z,Q,at,ot,On)}_t!=null&&J?ur(_t,T&&T.ref,z,P||T,!P):_t==null&&T&&T.ref!=null&&ur(T.ref,null,z,T,!0)},w=(T,P,K,it)=>{if(T==null)i(P.el=a(P.children),K,it);else{const J=P.el=T.el;P.children!==T.children&&c(J,P.children)}},b=(T,P,K,it)=>{T==null?i(P.el=l(P.children||""),K,it):P.el=T.el},S=(T,P,K,it)=>{[T.el,T.anchor]=v(T.children,P,K,it,T.el,T.anchor)},D=({el:T,anchor:P},K,it)=>{let J;for(;T&&T!==P;)J=p(T),i(T,K,it),T=J;i(P,K,it)},k=({el:T,anchor:P})=>{let K;for(;T&&T!==P;)K=p(T),o(T),T=K;o(P)},N=(T,P,K,it,J,z,Q,at,ot)=>{if(P.type==="svg"?Q="svg":P.type==="math"&&(Q="mathml"),T==null)F(P,K,it,J,z,Q,at,ot);else{const tt=T.el&&T.el._isVueCE?T.el:null;try{tt&&tt._beginPatch(),X(T,P,J,z,Q,at,ot)}finally{tt&&tt._endPatch()}}},F=(T,P,K,it,J,z,Q,at)=>{let ot,tt;const{props:_t,shapeFlag:pt,transition:xt,dirs:Ct}=T;if(ot=T.el=r(T.type,z,_t&&_t.is,_t),pt&8?u(ot,T.children):pt&16&&I(T.children,ot,null,it,J,zu(T,z),Q,at),Ct&&ro(T,null,it,"created"),j(ot,T,T.scopeId,Q,it),_t){for(const Kt in _t)Kt!=="value"&&!rr(Kt)&&s(ot,Kt,null,_t[Kt],z,it);"value"in _t&&s(ot,"value",null,_t.value,z),(tt=_t.onVnodeBeforeMount)&&Hn(tt,it,T)}Ct&&ro(T,null,it,"beforeMount");const Ot=V_(J,xt);Ot&&xt.beforeEnter(ot),i(ot,P,K),((tt=_t&&_t.onVnodeMounted)||Ot||Ct)&&Ze(()=>{tt&&Hn(tt,it,T),Ot&&xt.enter(ot),Ct&&ro(T,null,it,"mounted")},J)},j=(T,P,K,it,J)=>{if(K&&f(T,K),it)for(let z=0;z{for(let tt=ot;tt{const at=P.el=T.el;let{patchFlag:ot,dynamicChildren:tt,dirs:_t}=P;ot|=T.patchFlag&16;const pt=T.props||zt,xt=P.props||zt;let Ct;if(K&&ao(K,!1),(Ct=xt.onVnodeBeforeUpdate)&&Hn(Ct,K,P,T),_t&&ro(P,T,K,"beforeUpdate"),K&&ao(K,!0),tt&&(!T.dynamicChildren||T.dynamicChildren.length!==tt.length)&&(ot=0,Q=!1,tt=null),(pt.innerHTML&&xt.innerHTML==null||pt.textContent&&xt.textContent==null)&&u(at,""),tt?W(T.dynamicChildren,tt,at,K,it,zu(P,J),z):Q||ht(T,P,at,null,K,it,zu(P,J),z,!1),ot>0){if(ot&16)Y(at,pt,xt,K,J);else if(ot&2&&pt.class!==xt.class&&s(at,"class",null,xt.class,J),ot&4&&s(at,"style",pt.style,xt.style,J),ot&8){const Ot=P.dynamicProps;for(let Kt=0;Kt{Ct&&Hn(Ct,K,P,T),_t&&ro(P,T,K,"updated")},it)},W=(T,P,K,it,J,z,Q)=>{for(let at=0;at{if(P!==K){if(P!==zt)for(const z in P)!rr(z)&&!(z in K)&&s(T,z,P[z],null,J,it);for(const z in K){if(rr(z))continue;const Q=K[z],at=P[z];Q!==at&&z!=="value"&&s(T,z,at,Q,J,it)}"value"in K&&s(T,"value",P.value,K.value,J)}},$=(T,P,K,it,J,z,Q,at,ot)=>{const tt=P.el=T?T.el:a(""),_t=P.anchor=T?T.anchor:a("");let{patchFlag:pt,dynamicChildren:xt,slotScopeIds:Ct}=P;Ct&&(at=at?at.concat(Ct):Ct),T==null?(i(tt,K,it),i(_t,K,it),I(P.children||[],K,_t,J,z,Q,at,ot)):pt>0&&pt&64&&xt&&T.dynamicChildren&&T.dynamicChildren.length===xt.length?(W(T.dynamicChildren,xt,K,J,z,Q,at),(P.key!=null||J&&P===J.subTree)&&Ld(T,P,!0)):ht(T,P,K,_t,J,z,Q,at,ot)},U=(T,P,K,it,J,z,Q,at,ot)=>{P.slotScopeIds=at,T==null?P.shapeFlag&512?J.ctx.activate(P,K,it,Q,ot):M(P,K,it,J,z,Q,ot):nt(T,P,ot)},M=(T,P,K,it,J,z,Q)=>{const at=T.component=W_(T,it,J);if(nu(T)&&(at.ctx.renderer=On),J_(at,!1,Q),at.asyncDep){if(J&&J.registerDep(at,et,Q),!T.el){const ot=at.subTree=q(Be);b(null,ot,P,K),T.placeholder=ot.el}}else et(at,T,P,K,J,z,Q)},nt=(T,P,K)=>{const it=P.component=T.component;if(T_(T,P,K))if(it.asyncDep&&!it.asyncResolved){ut(it,P,K);return}else it.next=P,it.update();else P.el=T.el,it.vnode=P},et=(T,P,K,it,J,z,Q)=>{const at=()=>{if(T.isMounted){let{next:pt,bu:xt,u:Ct,parent:Ot,vnode:Kt}=T;{const m=Im(T);if(m){pt&&(pt.el=Kt.el,ut(T,pt,Q)),m.asyncDep.then(()=>{Ze(()=>{T.isUnmounted||tt()},J)});return}}let jt=pt,Ut;ao(T,!1),pt?(pt.el=Kt.el,ut(T,pt,Q)):pt=Kt,xt&&Fa(xt),(Ut=pt.props&&pt.props.onVnodeBeforeUpdate)&&Hn(Ut,Ot,pt,Kt),ao(T,!0);const ee=lp(T),h=T.subTree;T.subTree=ee,g(h,ee,d(h.el),oe(h),T,J,z),pt.el=ee.el,jt===null&&D_(T,ee.el),Ct&&Ze(Ct,J),(Ut=pt.props&&pt.props.onVnodeUpdated)&&Ze(()=>Hn(Ut,Ot,pt,Kt),J)}else{let pt;const{el:xt,props:Ct}=P,{bm:Ot,m:Kt,parent:jt,root:Ut,type:ee}=T,h=fs(P);ao(T,!1),Ot&&Fa(Ot),!h&&(pt=Ct&&Ct.onVnodeBeforeMount)&&Hn(pt,jt,P),ao(T,!0);{Ut.ce&&Ut.ce._hasShadowRoot()&&Ut.ce._injectChildStyle(ee,T.parent?T.parent.type:void 0);const m=T.subTree=lp(T);g(null,m,K,it,T,J,z),P.el=m.el}if(Kt&&Ze(Kt,J),!h&&(pt=Ct&&Ct.onVnodeMounted)){const m=P;Ze(()=>Hn(pt,jt,m),J)}(P.shapeFlag&256||jt&&fs(jt.vnode)&&jt.vnode.shapeFlag&256)&&T.a&&Ze(T.a,J),T.isMounted=!0,P=K=it=null}};T.scope.on();const ot=T.effect=new zg(at);T.scope.off();const tt=T.update=ot.run.bind(ot),_t=T.job=ot.runIfDirty.bind(ot);_t.i=T,_t.id=T.uid,ot.scheduler=()=>Od(_t),ao(T,!0),tt()},ut=(T,P,K)=>{P.component=T;const it=T.vnode.props;T.vnode=P,T.next=null,$_(T,P.props,it,K),N_(T,P.children,K),Ti(),Mh(T),Di()},ht=(T,P,K,it,J,z,Q,at,ot=!1)=>{const tt=T&&T.children,_t=T?T.shapeFlag:0,pt=P.children,{patchFlag:xt,shapeFlag:Ct}=P;if(xt>0){if(xt&128){vt(tt,pt,K,it,J,z,Q,at,ot);return}else if(xt&256){mt(tt,pt,K,it,J,z,Q,at,ot);return}}Ct&8?(_t&16&&Dt(tt,J,z),pt!==tt&&u(K,pt)):_t&16?Ct&16?vt(tt,pt,K,it,J,z,Q,at,ot):Dt(tt,J,z,!0):(_t&8&&u(K,""),Ct&16&&I(pt,K,it,J,z,Q,at,ot))},mt=(T,P,K,it,J,z,Q,at,ot)=>{T=T||hs,P=P||hs;const tt=T.length,_t=P.length,pt=Math.min(tt,_t);let xt;for(xt=0;xt_t?Dt(T,J,z,!0,!1,pt):I(P,K,it,J,z,Q,at,ot,pt)},vt=(T,P,K,it,J,z,Q,at,ot)=>{let tt=0;const _t=P.length;let pt=T.length-1,xt=_t-1;for(;tt<=pt&&tt<=xt;){const Ct=T[tt],Ot=P[tt]=ot?mi(P[tt]):Zn(P[tt]);if(Eo(Ct,Ot))g(Ct,Ot,K,null,J,z,Q,at,ot);else break;tt++}for(;tt<=pt&&tt<=xt;){const Ct=T[pt],Ot=P[xt]=ot?mi(P[xt]):Zn(P[xt]);if(Eo(Ct,Ot))g(Ct,Ot,K,null,J,z,Q,at,ot);else break;pt--,xt--}if(tt>pt){if(tt<=xt){const Ct=xt+1,Ot=Ct<_t?P[Ct].el:it;for(;tt<=xt;)g(null,P[tt]=ot?mi(P[tt]):Zn(P[tt]),K,Ot,J,z,Q,at,ot),tt++}}else if(tt>xt)for(;tt<=pt;)Ft(T[tt],J,z,!0),tt++;else{const Ct=tt,Ot=tt,Kt=new Map;for(tt=Ot;tt<=xt;tt++){const V=P[tt]=ot?mi(P[tt]):Zn(P[tt]);V.key!=null&&Kt.set(V.key,tt)}let jt,Ut=0;const ee=xt-Ot+1;let h=!1,m=0;const _=new Array(ee);for(tt=0;tt=ee){Ft(V,J,z,!0);continue}let G;if(V.key!=null)G=Kt.get(V.key);else for(jt=Ot;jt<=xt;jt++)if(_[jt-Ot]===0&&Eo(V,P[jt])){G=jt;break}G===void 0?Ft(V,J,z,!0):(_[G-Ot]=tt+1,G>=m?m=G:h=!0,g(V,P[G],K,null,J,z,Q,at,ot),Ut++)}const B=h?j_(_):hs;for(jt=B.length-1,tt=ee-1;tt>=0;tt--){const V=Ot+tt,G=P[V],lt=P[V+1],Yt=V+1<_t?lt.el||zm(lt):it;_[tt]===0?g(null,G,K,Yt,J,z,Q,at,ot):h&&(jt<0||tt!==B[jt]?Tt(G,K,Yt,2):jt--)}}},Tt=(T,P,K,it,J=null)=>{const{el:z,type:Q,transition:at,children:ot,shapeFlag:tt}=T;if(tt&6){Tt(T.component.subTree,P,K,it);return}if(tt&128){T.suspense.move(P,K,it);return}if(tt&64){Q.move(T,P,K,On);return}if(Q===yt){i(z,P,K);for(let _t=0;_tat.enter(z),J));else{const{leave:_t,delayLeave:pt,afterLeave:xt}=at,Ct=()=>{T.ctx.isUnmounted?o(z):i(z,P,K)},Ot=()=>{const Kt=z._isLeaving||!!z[wn];z._isLeaving&&z[wn](!0),at.persisted&&!Kt?Ct():_t(z,()=>{Ct(),xt&&xt()})};pt?pt(z,Ct,Ot):Ot()}else i(z,P,K)},Ft=(T,P,K,it=!1,J=!1)=>{const{type:z,props:Q,ref:at,children:ot,dynamicChildren:tt,shapeFlag:_t,patchFlag:pt,dirs:xt,cacheIndex:Ct,memo:Ot}=T;if(pt===-2&&(J=!1),at!=null&&(Ti(),ur(at,null,K,T,!0),Di()),Ct!=null&&(P.renderCache[Ct]=void 0),_t&256){P.ctx.deactivate(T);return}const Kt=_t&1&&xt,jt=!fs(T);let Ut;if(jt&&(Ut=Q&&Q.onVnodeBeforeUnmount)&&Hn(Ut,P,T),_t&6)wt(T.component,K,it);else{if(_t&128){T.suspense.unmount(K,it);return}Kt&&ro(T,null,P,"beforeUnmount"),_t&64?T.type.remove(T,P,K,On,it):tt&&!tt.hasOnce&&(z!==yt||pt>0&&pt&64)?Dt(tt,P,K,!1,!0):(z===yt&&pt&384||!J&&_t&16)&&Dt(ot,P,K),it&&Xt(T)}const ee=Ot!=null&&Ct==null;(jt&&(Ut=Q&&Q.onVnodeUnmounted)||Kt||ee)&&Ze(()=>{Ut&&Hn(Ut,P,T),Kt&&ro(T,null,P,"unmounted"),ee&&(T.el=null)},K)},Xt=T=>{const{type:P,el:K,anchor:it,transition:J}=T;if(P===yt){Vt(K,it);return}if(P===Va){k(T);return}const z=()=>{o(K),J&&!J.persisted&&J.afterLeave&&J.afterLeave()};if(T.shapeFlag&1&&J&&!J.persisted){const{leave:Q,delayLeave:at}=J,ot=()=>Q(K,z);at?at(T.el,z,ot):ot()}else z()},Vt=(T,P)=>{let K;for(;T!==P;)K=p(T),o(T),T=K;o(P)},wt=(T,P,K)=>{const{bum:it,scope:J,job:z,subTree:Q,um:at,m:ot,a:tt}=T;dp(ot),dp(tt),it&&Fa(it),J.stop(),z&&(z.flags|=8,Ft(Q,T,P,K)),at&&Ze(at,P),Ze(()=>{T.isUnmounted=!0},P)},Dt=(T,P,K,it=!1,J=!1,z=0)=>{for(let Q=z;Q{if(T.shapeFlag&6)return oe(T.component.subTree);if(T.shapeFlag&128)return T.suspense.next();const P=p(T.anchor||T.el),K=P&&P[pm];return K?p(K):P};let un=!1;const jn=(T,P,K)=>{let it;T==null?P._vnode&&(Ft(P._vnode,null,null,!0),it=P._vnode.component):g(P._vnode||null,T,P,null,null,null,K),P._vnode=T,un||(un=!0,Mh(it),um(),un=!1)},On={p:g,um:Ft,m:Tt,r:Xt,mt:M,mc:I,pc:ht,pbc:W,n:oe,o:t};return{render:jn,hydrate:void 0,createApp:E_(jn)}}function zu({type:t,props:e},n){return n==="svg"&&t==="foreignObject"||n==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:n}function ao({effect:t,job:e},n){n?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function V_(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function Ld(t,e,n=!1){const i=t.children,o=e.children;if(St(i)&&St(o))for(let s=0;s>1,t[n[a]]0&&(e[i]=n[s-1]),n[s]=i)}}for(s=n.length,r=n[s-1];s-- >0;)n[s]=r,r=e[r];return n}function Im(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Im(e)}function dp(t){if(t)for(let e=0;et.__isSuspense;function U_(t,e){e&&e.pendingBranch?St(t)?e.effects.push(...t):e.effects.push(t):lm(t)}const yt=Symbol.for("v-fgt"),Yr=Symbol.for("v-txt"),Be=Symbol.for("v-cmt"),Va=Symbol.for("v-stc"),Ci=[];let fn=null;function C(t=!1){Ci.push(fn=t?null:[])}function Fd(){Ci.pop(),fn=Ci[Ci.length-1]||null}let kr=1;function ul(t,e=!1){kr+=t,t<0&&fn&&e&&(fn.hasOnce=!0)}function Wm(t){return t.dynamicChildren=kr>0?fn||hs:null,Fd(),kr>0&&fn&&fn.push(t),t}function R(t,e,n,i,o,s){return Wm(y(t,e,n,i,o,s,!0))}function ct(t,e,n,i,o){return Wm(q(t,e,n,i,o,!0))}function Tr(t){return t?t.__v_isVNode===!0:!1}function Eo(t,e){return t.type===e.type&&t.key===e.key}const Jm=({key:t})=>t??null,ja=({ref:t,ref_key:e,ref_for:n})=>(typeof t=="number"&&(t=""+t),t!=null?ae(t)||_e(t)||$t(t)?{i:Le,r:t,k:e,f:!!n}:t:null);function y(t,e=null,n=null,i=0,o=null,s=t===yt?0:1,r=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Jm(e),ref:e&&ja(e),scopeId:Ml,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:i,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Le};return a?(cl(l,n),s&128&&t.normalize(l)):n&&(l.shapeFlag|=ae(n)?8:16),kr>0&&!r&&fn&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&fn.push(l),l}const q=I_;function I_(t,e=null,n=null,i=0,o=null,s=!1){if((!t||t===Em)&&(t=Be),Tr(t)){const a=Zi(t,e,!0);return n&&cl(a,n),kr>0&&!s&&fn&&(a.shapeFlag&6?fn[fn.indexOf(t)]=a:fn.push(a)),a.patchFlag=-2,a}if(X_(t)&&(t=t.__vccOpts),e){e=$e(e);let{class:a,style:l}=e;a&&!ae(a)&&(e.class=Bt(a)),Zt(l)&&(Os(l)&&!St(l)&&(l=we({},l)),e.style=$o(l))}const r=ae(t)?1:Hm(t)?128:eu(t)?64:Zt(t)?4:$t(t)?2:0;return y(t,e,n,i,o,r,s,!0)}function $e(t){return t?Os(t)||Nm(t)?we({},t):t:null}function Zi(t,e,n=!1,i=!1){const{props:o,ref:s,patchFlag:r,children:a,transition:l}=t,c=e?Lt(o||{},e):o,u={__v_isVNode:!0,__v_skip:!0,type:t.type,props:c,key:c&&Jm(c),ref:e&&e.ref?n&&s?St(s)?s.concat(ja(e)):[s,ja(e)]:ja(e):s,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:a,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==yt?r===-1?16:r|16:r,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Zi(t.ssContent),ssFallback:t.ssFallback&&Zi(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&i&&Sr(u,l.clone(u)),u}function bt(t=" ",e=0){return q(Yr,null,t,e)}function st(t="",e=!1){return e?(C(),ct(Be,null,t)):q(Be,null,t)}function Zn(t){return t==null||typeof t=="boolean"?q(Be):St(t)?q(yt,null,t.slice()):Tr(t)?mi(t):q(Yr,null,String(t))}function mi(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Zi(t)}function cl(t,e){let n=0;const{shapeFlag:i}=t;if(e==null)e=null;else if(St(e))n=16;else if(typeof e=="object")if(i&65){const o=e.default;o&&(o._c&&(o._d=!1),cl(t,o()),o._c&&(o._d=!0));return}else{n=32;const o=e._;!o&&!Nm(e)?e._ctx=Le:o===3&&Le&&(Le.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else if($t(e)){if(i&65){cl(t,{default:e});return}e={default:e,_ctx:Le},n=32}else e=String(e),i&64?(n=16,e=[bt(e)]):n=8;t.children=e,t.shapeFlag|=n}function Lt(...t){const e={};for(let n=0;nHe||Le;let dl,Dr;{const t=Ma(),e=(n,i)=>{let o;return(o=t[n])||(o=t[n]=[]),o.push(i),s=>{o.length>1?o.forEach(r=>r(s)):o[0](s)}};dl=e("__VUE_INSTANCE_SETTERS__",n=>He=n),Dr=e("__VUE_SSR_SETTERS__",n=>Or=n)}const Zr=t=>{const e=He;return dl(t),t.scope.on(),()=>{t.scope.off(),dl(e)}},hp=()=>{He&&He.scope.off(),dl(null)};function Gm(t){return t.vnode.shapeFlag&4}let Or=!1;function J_(t,e=!1,n=!1){e&&Dr(e);const{props:i,children:o}=t.vnode,s=Gm(t);O_(t,i,s,e),P_(t,o,n||e);const r=s?G_(t,e):void 0;return e&&Dr(!1),r}function G_(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,g_);const{setup:i}=n;if(i){Ti();const o=t.setupContext=i.length>1?qm(t):null,s=Zr(t),r=Kr(i,t,0,[t.props,o]),a=Bg(r);if(Di(),s(),(a||t.sp)&&!fs(t)&&bm(t),a){if(r.then(hp,hp),e)return r.then(l=>{Dr(!0);try{pp(t,l,e)}finally{Dr(!1)}}).catch(l=>{Ql(l,t,0)});t.asyncDep=r}else pp(t,r)}else Km(t)}function pp(t,e,n){$t(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Zt(e)&&(t.setupState=sm(e)),Km(t)}function Km(t,e,n){const i=t.type;t.render||(t.render=i.render||kn);{const o=Zr(t);Ti();try{v_(t)}finally{Di(),o()}}}const K_={get(t,e){return ze(t,"get",""),t[e]}};function qm(t){const e=n=>{t.exposed=n||{}};return{attrs:new Proxy(t.attrs,K_),slots:t.slots,emit:t.emit,expose:e}}function ru(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(sm(Ob(t.exposed)),{get(e,n){if(n in e)return e[n];if(n in cr)return cr[n](t)},has(e,n){return n in e||n in cr}})):t.proxy}function q_(t,e=!0){return $t(t)?t.displayName||t.name:t.name||e&&t.__name}function X_(t){return $t(t)&&"__vccOpts"in t}const rt=(t,e)=>jb(t,e,Or);function be(t,e,n){try{ul(-1);const i=arguments.length;return i===2?Zt(e)&&!St(e)?Tr(e)?q(t,null,[e]):q(t,e):q(t,null,e):(i>3?n=Array.prototype.slice.call(arguments,2):i===3&&Tr(n)&&(n=[n]),q(t,e,n))}finally{ul(1)}}const Xm="3.5.42",fp=kn;let Wc;const gp=typeof window<"u"&&window.trustedTypes;if(gp)try{Wc=gp.createPolicy("vue",{createHTML:t=>t})}catch{}const Ym=Wc?t=>Wc.createHTML(t):t=>t,Y_="http://www.w3.org/2000/svg",Z_="http://www.w3.org/1998/Math/MathML",gi=typeof document<"u"?document:null,mp=gi&&gi.createElement("template"),Q_={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,i)=>{const o=e==="svg"?gi.createElementNS(Y_,t):e==="mathml"?gi.createElementNS(Z_,t):n?gi.createElement(t,{is:n}):gi.createElement(t);return t==="select"&&i&&i.multiple!=null&&o.setAttribute("multiple",i.multiple),o},createText:t=>gi.createTextNode(t),createComment:t=>gi.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>gi.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,i,o,s){const r=n?n.previousSibling:e.lastChild;if(o&&(o===s||o.nextSibling))for(;e.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{mp.innerHTML=Ym(i==="svg"?`${t}`:i==="mathml"?`${t}`:t);const a=mp.content;if(i==="svg"||i==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,n)}return[r?r.nextSibling:e.firstChild,n?n.previousSibling:e.lastChild]}},Fi="transition",Us="animation",$r=Symbol("_vtc"),Zm={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},M_=we({},fm,Zm),tw=t=>(t.displayName="Transition",t.props=M_,t),us=tw((t,{slots:e})=>be(i_,ew(t),e)),lo=(t,e=[])=>{St(t)?t.forEach(n=>n(...e)):t&&t(...e)},vp=t=>t?St(t)?t.some(e=>e.length>1):t.length>1:!1;function ew(t){const e={};for(const $ in t)$ in Zm||(e[$]=t[$]);if(t.css===!1)return e;const{name:n="v",type:i,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:c=r,appearToClass:u=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:f=`${n}-leave-to`}=t,v=nw(o),g=v&&v[0],w=v&&v[1],{onBeforeEnter:b,onEnter:S,onEnterCancelled:D,onLeave:k,onLeaveCancelled:N,onBeforeAppear:F=b,onAppear:j=S,onAppearCancelled:I=D}=e,X=($,U,M,nt)=>{$._enterCancelled=nt,uo($,U?u:a),uo($,U?c:r),M&&M()},W=($,U)=>{$._isLeaving=!1,uo($,d),uo($,f),uo($,p),U&&U()},Y=$=>(U,M)=>{const nt=$?j:S,et=()=>X(U,$,M);lo(nt,[U,et]),yp(()=>{uo(U,$?l:s),ci(U,$?u:a),vp(nt)||bp(U,i,g,et)})};return we(e,{onBeforeEnter($){lo(b,[$]),ci($,s),ci($,r)},onBeforeAppear($){lo(F,[$]),ci($,l),ci($,c)},onEnter:Y(!1),onAppear:Y(!0),onLeave($,U){$._isLeaving=!0;const M=()=>W($,U);ci($,d),$._enterCancelled?(ci($,p),xp($)):(xp($),ci($,p)),yp(()=>{$._isLeaving&&(uo($,d),ci($,f),vp(k)||bp($,i,w,M))}),lo(k,[$,M])},onEnterCancelled($){X($,!1,void 0,!0),lo(D,[$])},onAppearCancelled($){X($,!0,void 0,!0),lo(I,[$])},onLeaveCancelled($){W($),lo(N,[$])}})}function nw(t){if(t==null)return null;if(Zt(t))return[Hu(t.enter),Hu(t.leave)];{const e=Hu(t);return[e,e]}}function Hu(t){return Qy(t)}function ci(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.add(n)),(t[$r]||(t[$r]=new Set)).add(e)}function uo(t,e){e.split(/\s+/).forEach(i=>i&&t.classList.remove(i));const n=t[$r];n&&(n.delete(e),n.size||(t[$r]=void 0))}function yp(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let iw=0;function bp(t,e,n,i){const o=t._endId=++iw,s=()=>{o===t._endId&&i()};if(n!=null)return setTimeout(s,n);const{type:r,timeout:a,propCount:l}=ow(t,e);if(!r)return i();const c=r+"end";let u=0;const d=()=>{t.removeEventListener(c,p),s()},p=f=>{f.target===t&&++u>=l&&d()};setTimeout(()=>{u(n[v]||"").split(", "),o=i(`${Fi}Delay`),s=i(`${Fi}Duration`),r=_p(o,s),a=i(`${Us}Delay`),l=i(`${Us}Duration`),c=_p(a,l);let u=null,d=0,p=0;e===Fi?r>0&&(u=Fi,d=r,p=s.length):e===Us?c>0&&(u=Us,d=c,p=l.length):(d=Math.max(r,c),u=d>0?r>c?Fi:Us:null,p=u?u===Fi?s.length:l.length:0);const f=u===Fi&&/\b(?:transform|all)(?:,|$)/.test(i(`${Fi}Property`).toString());return{type:u,timeout:d,propCount:p,hasTransform:f}}function _p(t,e){for(;t.lengthwp(n)+wp(t[i])))}function wp(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function xp(t){return(t?t.ownerDocument:document).body.offsetHeight}function sw(t,e,n){const i=t[$r];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?t.removeAttribute("class"):n?t.setAttribute("class",e):t.className=e}const hl=Symbol("_vod"),Qm=Symbol("_vsh"),Mn={name:"show",beforeMount(t,{value:e},{transition:n}){t[hl]=t.style.display==="none"?"":t.style.display,n&&e?n.beforeEnter(t):Is(t,e)},mounted(t,{value:e},{transition:n}){n&&e&&n.enter(t)},updated(t,{value:e,oldValue:n},{transition:i}){!e!=!n&&(i?e?(i.beforeEnter(t),Is(t,!0),i.enter(t)):i.leave(t,()=>{Is(t,!1)}):Is(t,e))},beforeUnmount(t,{value:e}){Is(t,e)}};function Is(t,e){t.style.display=e?t[hl]:"none",t[Qm]=!e}const Mm=Symbol("");function au(t){const e=li();if(!e)return;const n=e.ut=(o=t(e.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${e.uid}"]`)).forEach(s=>pl(s,o))},i=()=>{const o=t(e.proxy);e.ce?pl(e.ce,o):Jc(e.subTree,o),n(o)};wm(()=>{lm(i)}),Pi(()=>{ke(i,kn,{flush:"post"});const o=new MutationObserver(i);o.observe(e.subTree.el.parentNode,{childList:!0}),Dn(()=>o.disconnect())})}function Jc(t,e){if(t.shapeFlag&128){const n=t.suspense;t=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{Jc(n.activeBranch,e)})}for(;t.component;)t=t.component.subTree;if(t.shapeFlag&1&&t.el)pl(t.el,e);else if(t.type===yt)t.children.forEach(n=>Jc(n,e));else if(t.type===Va){let{el:n,anchor:i}=t;for(;n&&(pl(n,e),n!==i);)n=n.nextSibling}}function pl(t,e){if(t.nodeType===1){const n=t.style;let i="";for(const o in e){const s=ab(e[o]);n.setProperty(`--${o}`,s),i+=`--${o}: ${s};`}n[Mm]=i}}const rw=/(?:^|;)\s*display\s*:/;function aw(t,e,n){const i=t.style,o=ae(n);let s=!1;if(n&&!o){if(e)if(ae(e))for(const r of e.split(";")){const a=r.slice(0,r.indexOf(":")).trim();n[a]==null&&er(i,a,"")}else for(const r in e)n[r]==null&&er(i,r,"");for(const r in n){r==="display"&&(s=!0);const a=n[r];a!=null?uw(t,r,!ae(e)&&e?e[r]:void 0,a)||er(i,r,a):er(i,r,"")}}else if(o){if(e!==n){const r=i[Mm];r&&(n+=";"+r),i.cssText=n,s=rw.test(n)}}else e&&t.removeAttribute("style");hl in t&&(t[hl]=s?i.display:"",t[Qm]&&(i.display="none"))}const ga=/\s*!important$/;function er(t,e,n){if(St(n))n.forEach(i=>er(t,e,i));else if(n==null&&(n=""),e.startsWith("--"))ga.test(n)?t.setProperty(e,n.replace(ga,""),"important"):t.setProperty(e,n);else{const i=lw(t,e);ga.test(n)?t.setProperty(Ri(i),n.replace(ga,""),"important"):t[i]=n}}const Ep=["Webkit","Moz","ms"],Wu={};function lw(t,e){const n=Wu[e];if(n)return n;let i=We(e);if(i!=="filter"&&i in t)return Wu[e]=i;i=Kl(i);for(let o=0;oJu||(gw.then(()=>Ju=0),Ju=Date.now());function vw(t,e){const n=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=n.attached)return;const o=n.value;if(St(o)){const s=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{s.call(i),i._stopped=!0};const r=o.slice(),a=[i];for(let l=0;lt.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,yw=(t,e,n,i,o,s)=>{const r=o==="svg";e==="class"?sw(t,i,r):e==="style"?aw(t,n,i):Hl(e)?Wl(e)||dw(t,e,n,i,s):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):bw(t,e,i,r))?(Ap(t,e,i),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Sp(t,e,i,r,s,e!=="value")):t._isVueCE&&(_w(t,e)||t._def.__asyncLoader&&(/[A-Z]/.test(e)||!ae(i)))?Ap(t,We(e),i,s,e):(e==="true-value"?t._trueValue=i:e==="false-value"&&(t._falseValue=i),Sp(t,e,i,r))};function bw(t,e,n,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in t&&Tp(e)&&$t(n));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&t.tagName==="IFRAME"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const o=t.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Tp(e)&&ae(n)?!1:e in t}function _w(t,e){const n=t._def.props;if(!n)return!1;const i=We(e);return Array.isArray(n)?n.some(o=>We(o)===i):Object.keys(n).some(o=>We(o)===i)}function ww(t="$style"){{const e=li();if(!e)return zt;const n=e.type.__cssModules;return n&&n[t]||zt}}const Dp=t=>{const e=t.props["onUpdate:modelValue"]||!1;return St(e)?n=>Fa(e,n):e},Gu=Symbol("_assign"),xw={deep:!0,created(t,e,n){t[Gu]=Dp(n),t1(t,"change",()=>{const i=t._modelValue,o=Ew(t),s=t.checked,r=t[Gu];if(St(i)){const a=Vg(i,o),l=a!==-1;if(s&&!l)r(i.concat(o));else if(!s&&l){const c=[...i];c.splice(a,1),r(c)}}else if(ws(i)){const a=new Set(i);s?a.add(o):a.delete(o),r(a)}else r(e1(t,s))})},mounted:Op,beforeUpdate(t,e,n){t[Gu]=Dp(n),Op(t,e,n)}};function Op(t,{value:e,oldValue:n},i){t._modelValue=e;let o;if(St(e))o=Vg(e,i.props.value)>-1;else if(ws(e))o=e.has(i.props.value);else{if(e===n)return;o=Ds(e,e1(t,!0))}t.checked!==o&&(t.checked=o)}function Ew(t){return"_value"in t?t._value:t.value}function e1(t,e){const n=e?"_trueValue":"_falseValue";return n in t?t[n]:e}const Cw=["ctrl","shift","alt","meta"],Sw={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>Cw.some(n=>t[`${n}Key`]&&!e.includes(n))},Ua=(t,e)=>{if(!t)return t;const n=t._withMods||(t._withMods={}),i=e.join(".");return n[i]||(n[i]=((o,...s)=>{for(let r=0;r{const n=t._withKeys||(t._withKeys={}),i=e.join(".");return n[i]||(n[i]=(o=>{if(!("key"in o))return;const s=Ri(o.key);if(e.some(r=>r===s||Aw[r]===s))return t(o)}))},kw=we({patchProp:yw},Q_);let $p;function Tw(){return $p||($p=L_(kw))}const Dw=((...t)=>{const e=Tw().createApp(...t),{mount:n}=e;return e.mount=i=>{const o=$w(i);if(!o)return;const s=e._component;!$t(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const r=n(o,!1,Ow(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},e});function Ow(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function $w(t){return ae(t)?document.querySelector(t):t}const Rp=(t,e,n)=>{const i=Object.assign({escape:!0},{}),o=function(s,r){return r=r||{},s.replace(/{([^{}]*)}/g,function(a,l){const c=r[l];return i.escape?encodeURIComponent(typeof c=="string"||typeof c=="number"?c.toString():a):typeof c=="string"||typeof c=="number"?c.toString():a})};return t.charAt(0)!=="/"&&(t="/"+t),o(t,{})},Qi=(t,e,n)=>{const i=Object.assign({noRewrite:!1},{}),o=Rw();return window?.OC?.config?.modRewriteWorking===!0&&!i.noRewrite?o+Rp(t):o+"/index.php"+Rp(t)};function Rw(){let t=window._oc_webroot;if(typeof t>"u"){t=location.pathname;const e=t.indexOf("/index.php/");if(e!==-1)t=t.slice(0,e);else{const n=t.indexOf("/",1);t=t.slice(0,n>0?n:void 0)}}return t}function Bp(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n2?n-2:0),o=2;o1?e-1:0),i=1;i"u"?null:xe(BigInt.prototype.toString),jp=typeof Symbol>"u"?null:xe(Symbol.prototype.toString),nn=xe(Object.prototype.hasOwnProperty),Ws=xe(Object.prototype.toString),Ue=xe(RegExp.prototype.test),co=Gw(TypeError);function xe(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o2&&arguments[2]!==void 0?arguments[2]:nr;if(Pp&&Pp(t,null),!ms(e))return t;let i=e.length;for(;i--;){let o=e[i];if(typeof o=="string"){const s=n(o);s!==o&&(Vw(e)||(e[i]=s),o=s)}t[o]=!0}return t}function Kw(t){for(let e=0;e/g),tx=Oe(/\${[\w\W]*/g),ex=Oe(/^data-[\-\w.\u00B7-\uFFFF]+$/),nx=Oe(/^aria-[\-\w]+$/),Wp=Oe(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ix=Oe(/^(?:\w+script|data):/i),ox=Oe(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),sx=Oe(/^html$/i),rx=Oe(/^[a-z][.\w]*(-[.\w]+)+$/i),Jp=Oe(/<[/\w!]/g),Gp=Oe(/<[/\w]/g),ax=Oe(/<\/no(script|embed|frames)/i),lx=Oe(/\/>/i),cn={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},s1=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],ux=Ce(qt({},s1)),cx=(function(){const t={};return bo(s1,e=>{t[e]=Oe(new RegExp("])","i"))}),Ce(t)})(),dx=function(){return typeof window>"u"?null:window},hx=function(t,e){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let n=null;const i="data-tt-policy-suffix";e&&e.hasAttribute(i)&&(n=e.getAttribute(i));const o="dompurify"+(n?"#"+n:"");try{return t.createPolicy(o,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},Kp=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Vi=function(t,e,n,i){return nn(t,e)&&ms(t[e])?qt(i.base?hn(i.base):{},t[e],i.transform):n},Qu=function(t,e,n){const i=nn(t,e)?t[e]:void 0;return i&&typeof i=="object"?hn(i):n()};function r1(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:dx();const e=x=>r1(x);if(e.version="3.4.15",e.removed=[],!t||!t.document||t.document.nodeType!==cn.document||!t.Element)return e.isSupported=!1,e;let n=t.document;const i=n,o=i.currentScript;t.DocumentFragment;const s=t.HTMLTemplateElement,r=t.Node,a=t.Element,l=t.NodeFilter;t.NamedNodeMap===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;const u=t.DOMParser,d=t.trustedTypes,p=a.prototype,f=bn(p,"cloneNode"),v=bn(p,"remove"),g=bn(p,"removeAttributeNode"),w=bn(p,"nextSibling"),b=bn(p,"childNodes"),S=bn(p,"parentNode"),D=bn(p,"shadowRoot"),k=bn(p,"attributes"),N=r&&r.prototype?bn(r.prototype,"nodeType"):null,F=r&&r.prototype?bn(r.prototype,"nodeName"):null,j=r&&r.prototype?bn(r.prototype,"ownerDocument"):null,I=function(x){return N?N(x):x.nodeType},X=function(x){return F?F(x):x.nodeName};if(typeof s=="function"){const x=n.createElement("template");x.content&&x.content.ownerDocument&&(n=x.content.ownerDocument)}let W,Y="",$,U=!1,M=0;const nt=function(){if(M>0)throw co('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},et=function(x){nt(),M++;try{return W.createHTML(x)}finally{M--}},ut=function(x){nt(),M++;try{return W.createScriptURL(x)}finally{M--}},ht=function(){return U||($=hx(d,o),U=!0),$},mt=n,vt=mt.implementation,Tt=mt.createNodeIterator,Ft=mt.createDocumentFragment,Xt=mt.getElementsByTagName,Vt=i.importNode;let wt=Kp();e.isSupported=typeof i1=="function"&&typeof S=="function"&&vt&&vt.createHTMLDocument!==void 0;const Dt=Qw,oe=Mw,un=tx,jn=ex,On=nx,T=ix,P=ox,K=rx;let it=Wp,J=null;const z=qt({},[...Up,...qu,...Xu,...Yu,...Ip]);let Q=null;const at=qt({},[...zp,...Zu,...Hp,...ma]);let ot=Object.seal(cs(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),tt=null,_t=null;const pt=Object.seal(cs(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let xt=!0,Ct=!0,Ot=!1,Kt=!0,jt=!1,Ut=!0,ee=!1,h=!1,m=null,_=null,B=!1,V=!1,G=!1,lt=!1,Yt=!0,ve=!1;const ne="user-content-";let Qt=!0,ue=!1,Xo={},Yo=null;const Th=qt({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let Dh=null;const Oh=qt({},["audio","video","img","source","image","track"]);let $h=null;const Rh=qt({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ia="http://www.w3.org/1998/Math/MathML",oa="http://www.w3.org/2000/svg",Un="http://www.w3.org/1999/xhtml";let Zo=Un,Du=!1,Ou=null;const $y=qt({},[ia,oa,Un],Ku),Bh=Ce(["mi","mo","mn","ms","mtext"]);let $u=qt({},Bh);const Ph=Ce(["annotation-xml"]);let Ru=qt({},Ph);const Ry=qt({},["title","style","font","a","script"]);let Ls=null;const By=["application/xhtml+xml","text/html"],Py="text/html";let fe=null,Qo=null;const Ny=n.createElement("form"),Nh=function(x){return x instanceof RegExp||x instanceof Function},Bu=function(){let x=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Qo&&Qo===x)return;(!x||typeof x!="object")&&(x={}),x=hn(x),Ls=By.indexOf(x.PARSER_MEDIA_TYPE)===-1?Py:x.PARSER_MEDIA_TYPE,fe=Ls==="application/xhtml+xml"?Ku:nr,J=Vi(x,"ALLOWED_TAGS",z,{transform:fe}),Q=Vi(x,"ALLOWED_ATTR",at,{transform:fe}),Ou=Vi(x,"ALLOWED_NAMESPACES",$y,{transform:Ku}),$h=Vi(x,"ADD_URI_SAFE_ATTR",Rh,{transform:fe,base:Rh}),Dh=Vi(x,"ADD_DATA_URI_TAGS",Oh,{transform:fe,base:Oh}),Yo=Vi(x,"FORBID_CONTENTS",Th,{transform:fe}),tt=Vi(x,"FORBID_TAGS",hn({}),{transform:fe}),_t=Vi(x,"FORBID_ATTR",hn({}),{transform:fe}),Xo=nn(x,"USE_PROFILES")?x.USE_PROFILES&&typeof x.USE_PROFILES=="object"?hn(x.USE_PROFILES):x.USE_PROFILES:!1,xt=x.ALLOW_ARIA_ATTR!==!1,Ct=x.ALLOW_DATA_ATTR!==!1,Ot=x.ALLOW_UNKNOWN_PROTOCOLS||!1,Kt=x.ALLOW_SELF_CLOSE_IN_ATTR!==!1,jt=x.SAFE_FOR_TEMPLATES||!1,Ut=x.SAFE_FOR_XML!==!1,ee=x.WHOLE_DOCUMENT||!1,V=x.RETURN_DOM||!1,G=x.RETURN_DOM_FRAGMENT||!1,lt=x.RETURN_TRUSTED_TYPE||!1,B=x.FORCE_BODY||!1,Yt=x.SANITIZE_DOM!==!1,ve=x.SANITIZE_NAMED_PROPS||!1,Qt=x.KEEP_CONTENT!==!1,ue=x.IN_PLACE||!1,it=Xw(x.ALLOWED_URI_REGEXP)?x.ALLOWED_URI_REGEXP:Wp,Zo=typeof x.NAMESPACE=="string"?x.NAMESPACE:Un,$u=Qu(x,"MATHML_TEXT_INTEGRATION_POINTS",()=>qt({},Bh)),Ru=Qu(x,"HTML_INTEGRATION_POINTS",()=>qt({},Ph));const H=Qu(x,"CUSTOM_ELEMENT_HANDLING",()=>cs(null));if(ot=cs(null),nn(H,"tagNameCheck")&&Nh(H.tagNameCheck)&&(ot.tagNameCheck=H.tagNameCheck),nn(H,"attributeNameCheck")&&Nh(H.attributeNameCheck)&&(ot.attributeNameCheck=H.attributeNameCheck),nn(H,"allowCustomizedBuiltInElements")&&typeof H.allowCustomizedBuiltInElements=="boolean"&&(ot.allowCustomizedBuiltInElements=H.allowCustomizedBuiltInElements),Oe(ot),jt&&(Ct=!1),G&&(V=!0),Xo&&(J=qt({},Ip),Q=cs(null),Xo.html===!0&&(qt(J,Up),qt(Q,zp)),Xo.svg===!0&&(qt(J,qu),qt(Q,Zu),qt(Q,ma)),Xo.svgFilters===!0&&(qt(J,Xu),qt(Q,Zu),qt(Q,ma)),Xo.mathMl===!0&&(qt(J,Yu),qt(Q,Hp),qt(Q,ma))),pt.tagCheck=null,pt.attributeCheck=null,nn(x,"ADD_TAGS")&&(typeof x.ADD_TAGS=="function"?pt.tagCheck=x.ADD_TAGS:ms(x.ADD_TAGS)&&(J===z&&(J=hn(J)),qt(J,x.ADD_TAGS,fe))),nn(x,"ADD_ATTR")&&(typeof x.ADD_ATTR=="function"?pt.attributeCheck=x.ADD_ATTR:ms(x.ADD_ATTR)&&(Q===at&&(Q=hn(Q)),qt(Q,x.ADD_ATTR,fe))),nn(x,"ADD_FORBID_CONTENTS")&&ms(x.ADD_FORBID_CONTENTS)&&(Yo===Th&&(Yo=hn(Yo)),qt(Yo,x.ADD_FORBID_CONTENTS,fe)),Qt&&(J["#text"]=!0),ee&&qt(J,["html","head","body"]),J.table&&(qt(J,["tbody"]),delete tt.tbody),x.TRUSTED_TYPES_POLICY){if(typeof x.TRUSTED_TYPES_POLICY.createHTML!="function")throw co('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof x.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw co('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const Z=W;W=x.TRUSTED_TYPES_POLICY;try{Y=et("")}catch(ft){throw W=Z,ft}}else x.TRUSTED_TYPES_POLICY===null?(W=void 0,Y=""):(W===void 0&&(W=ht()),W&&typeof Y=="string"&&(Y=et("")));Ce&&Ce(x),Qo=x},Lh=qt({},[...qu,...Xu,...Yw]),Fh=qt({},[...Yu,...Zw]),Ly=function(x,H,Z){return H.namespaceURI===Un?x==="svg":H.namespaceURI===ia?x==="svg"&&(Z==="annotation-xml"||$u[Z]):!!Lh[x]},Fy=function(x,H,Z){return H.namespaceURI===Un?x==="math":H.namespaceURI===oa?x==="math"&&Ru[Z]:!!Fh[x]},Vy=function(x,H,Z){return H.namespaceURI===oa&&!Ru[Z]||H.namespaceURI===ia&&!$u[Z]?!1:!Fh[x]&&(Ry[x]||!Lh[x])},jy=function(x){let H=S(x);(!H||!H.tagName)&&(H={namespaceURI:Zo,tagName:"template"});const Z=nr(x.tagName),ft=nr(H.tagName);return Ou[x.namespaceURI]?x.namespaceURI===oa?Ly(Z,H,ft):x.namespaceURI===ia?Fy(Z,H,ft):x.namespaceURI===Un?Vy(Z,H,ft):!!(Ls==="application/xhtml+xml"&&Ou[x.namespaceURI]):!1},oo=function(x){zs(e.removed,{element:x});try{S(x).removeChild(x)}catch{if(v(x),!S(x))throw co("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Vh=function(x,H,Z){try{g(x,H)}catch{try{x.removeAttribute(Z)}catch{}}},sa=function(x){ra(x);const H=b(x);if(H){const ft=[];bo(H,At=>{zs(ft,At)}),bo(ft,At=>{try{v(At)}catch{}})}const Z=k(x);if(Z)for(let ft=Z.length-1;ft>=0;--ft){const At=Z[ft],Nt=At&&At.name;typeof Nt=="string"&&Vh(x,At,Nt)}},so=function(x,H,Z){if(!Z)try{Z=H.getAttributeNode(x)}catch{Z=null}zs(e.removed,{attribute:Z||null,from:H});try{Z?g(H,Z):H.removeAttribute(x)}catch{try{H.removeAttribute(x)}catch{}}if(x==="is")if(V||G)try{oo(H)}catch{}else try{H.setAttribute(x,"")}catch{}},Uy=function(x){const H=k(x);if(H)for(let Z=H.length-1;Z>=0;--Z){const ft=H[Z],At=ft&&ft.name;typeof At!="string"||Q[fe(At)]||Vh(x,ft,At)}},ra=function(x){const H=[x];for(;H.length>0;){const Z=H.pop();I(Z)===cn.element&&Uy(Z);const ft=b(Z);if(ft)for(let At=ft.length-1;At>=0;--At)H.push(ft[At])}},jh=function(x,H){return Ut?x==="patchsrc"?!0:x==="for"&&H!=="label"&&H!=="output":!1},Iy=function(x){if(!Ut)return;const H=[x];for(;H.length>0;){const Z=H.pop(),ft=I(Z);if(ft===cn.processingInstruction||ft===cn.comment&&Ue(Gp,Z.data)){try{v(Z)}catch{}continue}if(ft===cn.element){const Nt=Z,Ht=fe(X(Z));try{Nt.hasAttribute&&Nt.hasAttribute("patchsrc")&&Nt.removeAttribute("patchsrc"),Nt.hasAttribute&&Nt.hasAttribute("for")&&jh("for",Ht)&&Nt.removeAttribute("for")}catch{}}const At=b(Z);if(At)for(let Nt=At.length-1;Nt>=0;--Nt)H.push(At[Nt])}},Uh=function(x){let H=null,Z=null;if(B)x=""+x;else{const Nt=Lp(x,/^[\r\n\t ]+/);Z=Nt&&Nt[0]}Ls==="application/xhtml+xml"&&Zo===Un&&(x=''+x+"");const ft=W?et(x):x;if(Zo===Un)try{H=new u().parseFromString(ft,Ls)}catch{}if(!H||!H.documentElement){H=vt.createDocument(Zo,"template",null);try{H.documentElement.innerHTML=Du?Y:ft}catch{}}const At=H.body||H.documentElement;return x&&Z&&At.insertBefore(n.createTextNode(Z),At.childNodes[0]||null),Zo===Un?Xt.call(H,ee?"html":"body")[0]:ee?H.documentElement:At},Ih=function(x){const H=j?j(x):x.ownerDocument;return Tt.call(H||x,x,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},aa=function(x){return x=Hs(x,Dt," "),x=Hs(x,oe," "),x=Hs(x,un," "),x},Pu=function(x){var H;x.normalize();const Z=j?j(x):x.ownerDocument,ft=Tt.call(Z||x,x,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null);let At=ft.nextNode();for(;At;)At.data=aa(At.data),At=ft.nextNode();const Nt=(H=x.querySelectorAll)===null||H===void 0?void 0:H.call(x,"template");Nt&&bo(Nt,Ht=>{Mo(Ht.content)&&Pu(Ht.content)})},la=function(x){const H=F?F(x):null;return typeof H!="string"||fe(H)!=="form"?!1:typeof x.nodeName!="string"||typeof x.textContent!="string"||typeof x.removeChild!="function"||x.attributes!==k(x)||typeof x.removeAttribute!="function"||typeof x.removeAttributeNode!="function"||typeof x.getAttributeNode!="function"||typeof x.setAttribute!="function"||typeof x.namespaceURI!="string"||typeof x.insertBefore!="function"||typeof x.hasChildNodes!="function"||x.nodeType!==N(x)||x.childNodes!==b(x)},Mo=function(x){if(!N||typeof x!="object"||x===null)return!1;try{return N(x)===cn.documentFragment}catch{return!1}},Fs=function(x){if(!N||typeof x!="object"||x===null)return!1;try{return typeof N(x)=="number"}catch{return!1}};function In(x,H,Z){x.length!==0&&bo(x,ft=>{ft.call(e,H,Z,Qo)})}const zy=function(x,H){return!!(Ut&&x.hasChildNodes()&&!Fs(x.firstElementChild)&&Ue(Jp,x.textContent)&&Ue(Jp,x.innerHTML)||Ut&&x.namespaceURI===Un&&ux[H]&&(Fs(x.firstElementChild)||typeof x.textContent=="string"&&Ue(cx[H],x.textContent))||x.nodeType===cn.processingInstruction||Ut&&x.nodeType===cn.comment&&Ue(Gp,x.data))},ua=function(x,H){if(x instanceof RegExp)return Ue(x,H);if(x instanceof Function){for(var Z=arguments.length,ft=new Array(Z>2?Z-2:0),At=2;At=0;--Ht){const zn=x===Z?f(At[Ht],!0):At[Ht];ft.insertBefore(zn,w(x))}}}return oo(x),!0},zh=function(x,H,Z,ft){return x.length===0?H:H===Z||H===ft?hn(H):H},Hh=function(x,H){return x===H||S(x)!==null?!1:(ue&&ra(x),!0)},Wh=function(x,H){if(In(wt.beforeSanitizeElements,x,null),Hh(x,H))return!0;if(la(x))return oo(x),!0;const Z=fe(X(x));if(J=zh(wt.uponSanitizeElement,J,z,m),In(wt.uponSanitizeElement,x,{tagName:Z,allowedTags:J}),Hh(x,H))return!0;if(zy(x,Z))return oo(x),!0;if(tt[Z]||!(pt.tagCheck instanceof Function&&pt.tagCheck(Z))&&!J[Z]){const ft=Hy(x,Z,H);return ft===!1&&In(wt.afterSanitizeElements,x,null),ft}if(I(x)===cn.element&&!jy(x)||(Z==="noscript"||Z==="noembed"||Z==="noframes")&&Ue(ax,x.innerHTML))return oo(x),!0;if(jt&&x.nodeType===cn.text){const ft=aa(x.textContent);x.textContent!==ft&&(zs(e.removed,{element:x.cloneNode()}),x.textContent=ft)}return In(wt.afterSanitizeElements,x,null),!1},Jh=function(x,H,Z){if(_t[H]||jh(H,x)||Yt&&(H==="id"||H==="name")&&(Z in n||Z in Ny))return!1;const ft=Q[H]||pt.attributeCheck instanceof Function&&pt.attributeCheck(H,x);return Ct&&Ue(jn,H)||xt&&Ue(On,H)?!0:ft?$h[H]||Ue(it,Hs(Z,P,""))||(H==="src"||H==="xlink:href"||H==="href")&&x!=="script"&&Fp(Z,"data:")===0&&Dh[x]||Ot&&!Ue(T,Hs(Z,P,""))?!0:!Z:Gh(x)&&ua(ot.tagNameCheck,x)&&ua(ot.attributeNameCheck,H,x)||H==="is"&&ot.allowCustomizedBuiltInElements&&ua(ot.tagNameCheck,Z)},Wy=qt({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Gh=function(x){return!Wy[nr(x)]&&Ue(K,x)},Jy=function(x,H,Z,ft){if(W&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!Z)switch(d.getAttributeType(x,H)){case"TrustedHTML":return et(ft);case"TrustedScriptURL":return ut(ft)}return ft},Gy=function(x,H,Z,ft){try{return Z?x.setAttributeNS(Z,H,ft):x.setAttribute(H,ft),la(x)?(oo(x),!1):!0}catch{return so(H,x),!1}},Kh=function(x){In(wt.beforeSanitizeAttributes,x,null);const H=x.attributes;if(!H||la(x))return;Q=zh(wt.uponSanitizeAttribute,Q,at,_);const Z={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Q,forceKeepAttr:void 0};let ft=H.length;const At=fe(x.nodeName);for(;ft--;){const Nt=H[ft],Ht=Nt.name,zn=Nt.namespaceURI,Li=Nt.value,Ve=fe(Ht),$n=Li;let qe=Ht==="value"?$n:Hw($n),qh=!1;if(Z.attrName=Ve,Z.attrValue=qe,Z.keepAttr=!0,Z.forceKeepAttr=void 0,In(wt.uponSanitizeAttribute,x,Z),qe=Z.attrValue,ve&&(Ve==="id"||Ve==="name")&&Fp(qe,ne)!==0&&(so(Ht,x,Nt),qe=ne+qe,qh=!0),Ut&&Ue(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,qe)){so(Ht,x,Nt);continue}if(Ve==="attributename"&&Lp(qe,"href")){so(Ht,x,Nt);continue}if(!Z.forceKeepAttr){if(!Z.keepAttr){so(Ht,x,Nt);continue}if(!Kt&&Ue(lx,qe)){so(Ht,x,Nt);continue}if(jt&&(qe=aa(qe)),!Jh(At,Ve,qe)){so(Ht,x,Nt);continue}qe=Jy(At,Ve,zn,qe),qe!==$n&&Gy(x,Ht,zn,qe)&&qh&&Np(e.removed)}}In(wt.afterSanitizeAttributes,x,null)},ca=function(x){let H=null;const Z=Ih(x);for(In(wt.beforeSanitizeShadowDOM,x,null);H=Z.nextNode();)if(In(wt.uponSanitizeShadowNode,H,null),Wh(H,x),Kh(H),Mo(H.content)&&ca(H.content),I(H)===cn.element){const ft=D(H);Mo(ft)&&(Nu(ft),ca(ft))}In(wt.afterSanitizeShadowDOM,x,null)},Nu=function(x){const H=[{node:x,shadow:null}];for(;H.length>0;){const Z=H.pop();if(Z.shadow){ca(Z.shadow);continue}const ft=Z.node,At=I(ft)===cn.element,Nt=b(ft);if(Nt)for(let Ht=Nt.length-1;Ht>=0;--Ht)H.push({node:Nt[Ht],shadow:null});if(At){const Ht=F?F(ft):null;if(typeof Ht=="string"&&fe(Ht)==="template"){const zn=ft.content;Mo(zn)&&H.push({node:zn,shadow:null})}}if(At){const Ht=D(ft);Mo(Ht)&&H.push({node:null,shadow:Ht},{node:Ht,shadow:null})}}};return e.sanitize=function(x){let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Z=null,ft=null,At=null,Nt=null;if(Du=!x,Du&&(x=""),typeof x!="string"&&!Fs(x)&&(x=qw(x),typeof x!="string"))throw co("dirty is not a string, aborting");if(!e.isSupported)return x;h?(J=m,Q=_):Bu(H),(wt.uponSanitizeElement.length>0||wt.uponSanitizeAttribute.length>0)&&(J=hn(J)),wt.uponSanitizeAttribute.length>0&&(Q=hn(Q)),e.removed=[];const Ht=ue&&typeof x!="string"&&Fs(x);if(Ht){Iy(x);const Ve=X(x);if(typeof Ve=="string"){const $n=fe(Ve);if(!J[$n]||tt[$n])throw sa(x),co("root node is forbidden and cannot be sanitized in-place")}if(la(x))throw sa(x),co("root node is clobbered and cannot be sanitized in-place");try{Nu(x)}catch($n){throw sa(x),$n}}else if(Fs(x))Z=Uh(""),ft=Z.ownerDocument.importNode(x,!0),ft.nodeType===cn.element&&ft.nodeName==="BODY"||ft.nodeName==="HTML"?Z=ft:Z.appendChild(ft),Nu(Z);else{if(!V&&!jt&&!ee&&x.indexOf("<")===-1)return W&<?et(x):x;if(Z=Uh(x),!Z)return V?null:lt?Y:""}Z&&B&&oo(Z.firstChild);const zn=Ht?x:Z;try{const Ve=Ih(zn);for(;At=Ve.nextNode();)Wh(At,zn),Kh(At),Mo(At.content)&&ca(At.content)}catch(Ve){throw Ht&&(sa(x),bo(e.removed,$n=>{$n.element&&ra($n.element)})),Ve}if(Ht)return bo(e.removed,Ve=>{Ve.element&&ra(Ve.element)}),jt&&Pu(x),x;if(V){if(jt&&Pu(Z),G)for(Nt=Ft.call(Z.ownerDocument);Z.firstChild;)Nt.appendChild(Z.firstChild);else Nt=Z;return(Q.shadowroot||Q.shadowrootmode)&&(Nt=Vt.call(i,Nt,!0)),Nt}let Li=ee?Z.outerHTML:Z.innerHTML;return ee&&J["!doctype"]&&Z.ownerDocument&&Z.ownerDocument.doctype&&Z.ownerDocument.doctype.name&&Ue(sx,Z.ownerDocument.doctype.name)&&(Li=" -`+Li),jt&&(Li=aa(Li)),W&<?et(Li):Li},e.setConfig=function(){let x=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Bu(x),h=!0,m=J,_=Q},e.clearConfig=function(){Qo=null,h=!1,m=null,_=null,W=$,Y=""},e.isValidAttribute=function(x,H,Z){Qo||Bu({});const ft=fe(x),At=fe(H);return Jh(ft,At,Z)},e.addHook=function(x,H){typeof H=="function"&&nn(wt,x)&&zs(wt[x],H)},e.removeHook=function(x,H){if(nn(wt,x)){if(H!==void 0){const Z=Iw(wt[x],H);return Z===-1?void 0:zw(wt[x],Z,1)[0]}return Np(wt[x])}},e.removeHooks=function(x){nn(wt,x)&&(wt[x]=[])},e.removeAllHooks=function(){wt=Kp()},e}var a1=r1();function Vd(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Mu,qp;function px(){if(qp)return Mu;qp=1;var t=/["'&<>]/;Mu=e;function e(n){var i=""+n,o=t.exec(i);if(!o)return i;var s,r="",a=0,l=0;for(a=o.index;ae)}}globalThis._oc_l10n_registry_translations??={},globalThis._oc_l10n_registry_plural_functions??={};function O(t,e,n,i,o){const s=typeof n=="object"?n:void 0,r=typeof i=="number"?i:typeof n=="number"?n:void 0,a={escape:!0,sanitize:!0,...typeof o=="object"?o:typeof i=="object"?i:{}},l=v=>v,c=(a.sanitize?a1.sanitize:l)||l,u=a.escape?Xp:l,d=v=>typeof v=="string"||typeof v=="number",p=(v,g,w)=>v.replace(/%n/g,""+w).replace(/{([^{}]*)}/g,(b,S)=>{if(g===void 0||!(S in g))return u(b);const D=g[S];return d(D)?u(`${D}`):typeof D=="object"&&d(D.value)?(D.escape!==!1?Xp:l)(`${D.value}`):u(b)});let f=(o?.bundle??u1(t)).translations[e]||e;return f=Array.isArray(f)?f[0]:f,c(typeof s=="object"||r!==void 0?p(f,s,r):f)}function fl(t,e,n,i,o,s){const r="_"+e+"_::_"+n+"_",a=s?.bundle??u1(t),l=a.translations[r];if(typeof l<"u"){const c=l;if(Array.isArray(c)){const u=a.pluralFunction(i);return O(t,c[u],o,i,s)}}return i===1?O(t,e,o,i,s):O(t,n,o,i,s)}function vx(t,e=No()){switch(e==="pt-BR"&&(e="xbr"),e.length>3&&(e=e.substring(0,e.lastIndexOf("-"))),e){case"az":case"bo":case"dz":case"id":case"ja":case"jv":case"ka":case"km":case"kn":case"ko":case"ms":case"th":case"tr":case"vi":case"zh":return 0;case"af":case"bn":case"bg":case"ca":case"da":case"de":case"el":case"en":case"eo":case"es":case"et":case"eu":case"fa":case"fi":case"fo":case"fur":case"fy":case"gl":case"gu":case"ha":case"he":case"hu":case"is":case"it":case"ku":case"lb":case"ml":case"mn":case"mr":case"nah":case"nb":case"ne":case"nl":case"nn":case"no":case"oc":case"om":case"or":case"pa":case"pap":case"ps":case"pt":case"so":case"sq":case"sv":case"sw":case"ta":case"te":case"tk":case"ur":case"zu":return t===1?0:1;case"am":case"bh":case"fil":case"fr":case"gun":case"hi":case"hy":case"ln":case"mg":case"nso":case"xbr":case"ti":case"wa":return t===0||t===1?0:1;case"be":case"bs":case"hr":case"ru":case"sh":case"sr":case"uk":return t%10===1&&t%100!==11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;case"cs":case"sk":return t===1?0:t>=2&&t<=4?1:2;case"ga":return t===1?0:t===2?1:2;case"lt":return t%10===1&&t%100!==11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2;case"sl":return t%100===1?0:t%100===2?1:t%100===3||t%100===4?2:3;case"mk":return t%10===1?0:1;case"mt":return t===1?0:t===0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3;case"lv":return t===0?0:t%10===1&&t%100!==11?1:2;case"pl":return t===1?0:t%10>=2&&t%10<=4&&(t%100<12||t%100>14)?1:2;case"cy":return t===1?0:t===2?1:t===8||t===11?2:3;case"ro":return t===1?0:t===0||t%100>0&&t%100<20?1:2;case"ar":return t===0?0:t===1?1:t===2?2:t%100>=3&&t%100<=10?3:t%100>=11&&t%100<=99?4:5;default:return 0}}function yx(t=Date.now(),e={}){const n={ignoreSeconds:!1,language:No(),relativeTime:"long",...e},i=new Date(t),o=new Intl.RelativeTimeFormat([n.language,No()],{numeric:"auto",style:n.relativeTime}),s=(i.getTime()-Date.now())/1e3;if(Math.abs(s)<59.5)return n.ignoreSeconds||o.format(Math.round(s),"second");const r=s/60;if(Math.abs(r)<=59)return o.format(Math.round(r),"minute");const a=r/60;if(Math.abs(a)<23.5)return o.format(Math.round(a),"hour");const l=a/24;if(Math.abs(l)<6.5)return o.format(Math.round(l),"day");if(Math.abs(l)<27.5){const d=l/7;return o.format(Math.round(d),"week")}const c=l/30,u=Math.abs(c)<11?{month:n.relativeTime,day:"numeric"}:{year:n.relativeTime==="narrow"?"2-digit":"numeric",month:n.relativeTime};return new Intl.DateTimeFormat([n.language,No()],u).format(i)}const c1=Symbol("");var d1={},Ia={};Ia.byteLength=wx,Ia.toByteArray=Ex,Ia.fromByteArray=Ax;for(var Qn=[],_n=[],bx=typeof Uint8Array<"u"?Uint8Array:Array,tc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",es=0,_x=tc.length;es<_x;++es)Qn[es]=tc[es],_n[tc.charCodeAt(es)]=es;_n[45]=62,_n[95]=63;function h1(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var i=n===e?0:4-n%4;return[n,i]}function wx(t){var e=h1(t),n=e[0],i=e[1];return(n+i)*3/4-i}function xx(t,e,n){return(e+n)*3/4-n}function Ex(t){var e,n=h1(t),i=n[0],o=n[1],s=new bx(xx(t,i,o)),r=0,a=o>0?i-4:i,l;for(l=0;l>16&255,s[r++]=e>>8&255,s[r++]=e&255;return o===2&&(e=_n[t.charCodeAt(l)]<<2|_n[t.charCodeAt(l+1)]>>4,s[r++]=e&255),o===1&&(e=_n[t.charCodeAt(l)]<<10|_n[t.charCodeAt(l+1)]<<4|_n[t.charCodeAt(l+2)]>>2,s[r++]=e>>8&255,s[r++]=e&255),s}function Cx(t){return Qn[t>>18&63]+Qn[t>>12&63]+Qn[t>>6&63]+Qn[t&63]}function Sx(t,e,n){for(var i,o=[],s=e;sa?a:r+s));return i===1?(e=t[n-1],o.push(Qn[e>>2]+Qn[e<<4&63]+"==")):i===2&&(e=(t[n-2]<<8)+t[n-1],o.push(Qn[e>>10]+Qn[e>>4&63]+Qn[e<<2&63]+"=")),o.join("")}var qc={};qc.read=function(t,e,n,i,o){var s,r,a=o*8-i-1,l=(1<>1,u=-7,d=n?o-1:0,p=n?-1:1,f=t[e+d];for(d+=p,s=f&(1<<-u)-1,f>>=-u,u+=a;u>0;s=s*256+t[e+d],d+=p,u-=8);for(r=s&(1<<-u)-1,s>>=-u,u+=i;u>0;r=r*256+t[e+d],d+=p,u-=8);if(s===0)s=1-c;else{if(s===l)return r?NaN:(f?-1:1)*(1/0);r=r+Math.pow(2,i),s=s-c}return(f?-1:1)*r*Math.pow(2,s-i)},qc.write=function(t,e,n,i,o,s){var r,a,l,c=s*8-o-1,u=(1<>1,p=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:s-1,v=i?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,r=u):(r=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-r))<1&&(r--,l*=2),r+d>=1?e+=p/l:e+=p*Math.pow(2,1-d),e*l>=2&&(r++,l/=2),r+d>=u?(a=0,r=u):r+d>=1?(a=(e*l-1)*Math.pow(2,o),r=r+d):(a=e*Math.pow(2,d-1)*Math.pow(2,o),r=0));o>=8;t[n+f]=a&255,f+=v,a/=256,o-=8);for(r=r<0;t[n+f]=r&255,f+=v,r/=256,c-=8);t[n+f-v]|=g*128};(function(t){const e=Ia,n=qc,i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=N,t.INSPECT_MAX_BYTES=50;const o=2147483647;t.kMaxLength=o;const{Uint8Array:s,ArrayBuffer:r,SharedArrayBuffer:a}=globalThis;u.TYPED_ARRAY_SUPPORT=l(),!u.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function l(){try{const h=new s(1),m={foo:function(){return 42}};return Object.setPrototypeOf(m,s.prototype),Object.setPrototypeOf(h,m),h.foo()===42}catch{return!1}}Object.defineProperty(u.prototype,"parent",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,"offset",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}});function c(h){if(h>o)throw new RangeError('The value "'+h+'" is invalid for option "size"');const m=new s(h);return Object.setPrototypeOf(m,u.prototype),m}function u(h,m,_){if(typeof h=="number"){if(typeof m=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return v(h)}return d(h,m,_)}u.poolSize=8192;function d(h,m,_){if(typeof h=="string")return g(h,m);if(r.isView(h))return b(h);if(h==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h);if(Ot(h,r)||h&&Ot(h.buffer,r)||typeof a<"u"&&(Ot(h,a)||h&&Ot(h.buffer,a)))return S(h,m,_);if(typeof h=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const B=h.valueOf&&h.valueOf();if(B!=null&&B!==h)return u.from(B,m,_);const V=D(h);if(V)return V;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof h[Symbol.toPrimitive]=="function")return u.from(h[Symbol.toPrimitive]("string"),m,_);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h)}u.from=function(h,m,_){return d(h,m,_)},Object.setPrototypeOf(u.prototype,s.prototype),Object.setPrototypeOf(u,s);function p(h){if(typeof h!="number")throw new TypeError('"size" argument must be of type number');if(h<0)throw new RangeError('The value "'+h+'" is invalid for option "size"')}function f(h,m,_){return p(h),h<=0?c(h):m!==void 0?typeof _=="string"?c(h).fill(m,_):c(h).fill(m):c(h)}u.alloc=function(h,m,_){return f(h,m,_)};function v(h){return p(h),c(h<0?0:k(h)|0)}u.allocUnsafe=function(h){return v(h)},u.allocUnsafeSlow=function(h){return v(h)};function g(h,m){if((typeof m!="string"||m==="")&&(m="utf8"),!u.isEncoding(m))throw new TypeError("Unknown encoding: "+m);const _=F(h,m)|0;let B=c(_);const V=B.write(h,m);return V!==_&&(B=B.slice(0,V)),B}function w(h){const m=h.length<0?0:k(h.length)|0,_=c(m);for(let B=0;B=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return h|0}function N(h){return+h!=h&&(h=0),u.alloc(+h)}u.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==u.prototype},u.compare=function(h,m){if(Ot(h,s)&&(h=u.from(h,h.offset,h.byteLength)),Ot(m,s)&&(m=u.from(m,m.offset,m.byteLength)),!u.isBuffer(h)||!u.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===m)return 0;let _=h.length,B=m.length;for(let V=0,G=Math.min(_,B);VB.length?(u.isBuffer(G)||(G=u.from(G)),G.copy(B,V)):s.prototype.set.call(B,G,V);else if(u.isBuffer(G))G.copy(B,V);else throw new TypeError('"list" argument must be an Array of Buffers');V+=G.length}return B};function F(h,m){if(u.isBuffer(h))return h.length;if(r.isView(h)||Ot(h,r))return h.byteLength;if(typeof h!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof h);const _=h.length,B=arguments.length>2&&arguments[2]===!0;if(!B&&_===0)return 0;let V=!1;for(;;)switch(m){case"ascii":case"latin1":case"binary":return _;case"utf8":case"utf-8":return tt(h).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _*2;case"hex":return _>>>1;case"base64":return xt(h).length;default:if(V)return B?-1:tt(h).length;m=(""+m).toLowerCase(),V=!0}}u.byteLength=F;function j(h,m,_){let B=!1;if((m===void 0||m<0)&&(m=0),m>this.length||((_===void 0||_>this.length)&&(_=this.length),_<=0)||(_>>>=0,m>>>=0,_<=m))return"";for(h||(h="utf8");;)switch(h){case"hex":return Ft(this,m,_);case"utf8":case"utf-8":return ut(this,m,_);case"ascii":return vt(this,m,_);case"latin1":case"binary":return Tt(this,m,_);case"base64":return et(this,m,_);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Xt(this,m,_);default:if(B)throw new TypeError("Unknown encoding: "+h);h=(h+"").toLowerCase(),B=!0}}u.prototype._isBuffer=!0;function I(h,m,_){const B=h[m];h[m]=h[_],h[_]=B}u.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;mm&&(h+=" ... "),""},i&&(u.prototype[i]=u.prototype.inspect),u.prototype.compare=function(h,m,_,B,V){if(Ot(h,s)&&(h=u.from(h,h.offset,h.byteLength)),!u.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(m===void 0&&(m=0),_===void 0&&(_=h?h.length:0),B===void 0&&(B=0),V===void 0&&(V=this.length),m<0||_>h.length||B<0||V>this.length)throw new RangeError("out of range index");if(B>=V&&m>=_)return 0;if(B>=V)return-1;if(m>=_)return 1;if(m>>>=0,_>>>=0,B>>>=0,V>>>=0,this===h)return 0;let G=V-B,lt=_-m;const Yt=Math.min(G,lt),ve=this.slice(B,V),ne=h.slice(m,_);for(let Qt=0;Qt2147483647?_=2147483647:_<-2147483648&&(_=-2147483648),_=+_,Kt(_)&&(_=V?0:h.length-1),_<0&&(_=h.length+_),_>=h.length){if(V)return-1;_=h.length-1}else if(_<0)if(V)_=0;else return-1;if(typeof m=="string"&&(m=u.from(m,B)),u.isBuffer(m))return m.length===0?-1:W(h,m,_,B,V);if(typeof m=="number")return m=m&255,typeof s.prototype.indexOf=="function"?V?s.prototype.indexOf.call(h,m,_):s.prototype.lastIndexOf.call(h,m,_):W(h,[m],_,B,V);throw new TypeError("val must be string, number or Buffer")}function W(h,m,_,B,V){let G=1,lt=h.length,Yt=m.length;if(B!==void 0&&(B=String(B).toLowerCase(),B==="ucs2"||B==="ucs-2"||B==="utf16le"||B==="utf-16le")){if(h.length<2||m.length<2)return-1;G=2,lt/=2,Yt/=2,_/=2}function ve(Qt,ue){return G===1?Qt[ue]:Qt.readUInt16BE(ue*G)}let ne;if(V){let Qt=-1;for(ne=_;nelt&&(_=lt-Yt),ne=_;ne>=0;ne--){let Qt=!0;for(let ue=0;ueV&&(B=V)):B=V;const G=m.length;B>G/2&&(B=G/2);let lt;for(lt=0;lt>>0,isFinite(_)?(_=_>>>0,B===void 0&&(B="utf8")):(B=_,_=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const V=this.length-m;if((_===void 0||_>V)&&(_=V),h.length>0&&(_<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");B||(B="utf8");let G=!1;for(;;)switch(B){case"hex":return Y(this,h,m,_);case"utf8":case"utf-8":return $(this,h,m,_);case"ascii":case"latin1":case"binary":return U(this,h,m,_);case"base64":return M(this,h,m,_);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return nt(this,h,m,_);default:if(G)throw new TypeError("Unknown encoding: "+B);B=(""+B).toLowerCase(),G=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function et(h,m,_){return m===0&&_===h.length?e.fromByteArray(h):e.fromByteArray(h.slice(m,_))}function ut(h,m,_){_=Math.min(h.length,_);const B=[];let V=m;for(;V<_;){const G=h[V];let lt=null,Yt=G>239?4:G>223?3:G>191?2:1;if(V+Yt<=_){let ve,ne,Qt,ue;switch(Yt){case 1:G<128&&(lt=G);break;case 2:ve=h[V+1],(ve&192)===128&&(ue=(G&31)<<6|ve&63,ue>127&&(lt=ue));break;case 3:ve=h[V+1],ne=h[V+2],(ve&192)===128&&(ne&192)===128&&(ue=(G&15)<<12|(ve&63)<<6|ne&63,ue>2047&&(ue<55296||ue>57343)&&(lt=ue));break;case 4:ve=h[V+1],ne=h[V+2],Qt=h[V+3],(ve&192)===128&&(ne&192)===128&&(Qt&192)===128&&(ue=(G&15)<<18|(ve&63)<<12|(ne&63)<<6|Qt&63,ue>65535&&ue<1114112&&(lt=ue))}}lt===null?(lt=65533,Yt=1):lt>65535&&(lt-=65536,B.push(lt>>>10&1023|55296),lt=56320|lt&1023),B.push(lt),V+=Yt}return mt(B)}const ht=4096;function mt(h){const m=h.length;if(m<=ht)return String.fromCharCode.apply(String,h);let _="",B=0;for(;BB)&&(_=B);let V="";for(let G=m;G<_;++G)V+=jt[h[G]];return V}function Xt(h,m,_){const B=h.slice(m,_);let V="";for(let G=0;G_&&(h=_),m<0?(m+=_,m<0&&(m=0)):m>_&&(m=_),m_)throw new RangeError("Trying to access beyond buffer length")}u.prototype.readUintLE=u.prototype.readUIntLE=function(h,m,_){h=h>>>0,m=m>>>0,_||Vt(h,m,this.length);let B=this[h],V=1,G=0;for(;++G>>0,m=m>>>0,_||Vt(h,m,this.length);let B=this[h+--m],V=1;for(;m>0&&(V*=256);)B+=this[h+--m]*V;return B},u.prototype.readUint8=u.prototype.readUInt8=function(h,m){return h=h>>>0,m||Vt(h,1,this.length),this[h]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(h,m){return h=h>>>0,m||Vt(h,2,this.length),this[h]|this[h+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(h,m){return h=h>>>0,m||Vt(h,2,this.length),this[h]<<8|this[h+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(h,m){return h=h>>>0,m||Vt(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(h,m){return h=h>>>0,m||Vt(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},u.prototype.readBigUInt64LE=Ut(function(h){h=h>>>0,z(h,"offset");const m=this[h],_=this[h+7];(m===void 0||_===void 0)&&Q(h,this.length-8);const B=m+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,V=this[++h]+this[++h]*2**8+this[++h]*2**16+_*2**24;return BigInt(B)+(BigInt(V)<>>0,z(h,"offset");const m=this[h],_=this[h+7];(m===void 0||_===void 0)&&Q(h,this.length-8);const B=m*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],V=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+_;return(BigInt(B)<>>0,m=m>>>0,_||Vt(h,m,this.length);let B=this[h],V=1,G=0;for(;++G=V&&(B-=Math.pow(2,8*m)),B},u.prototype.readIntBE=function(h,m,_){h=h>>>0,m=m>>>0,_||Vt(h,m,this.length);let B=m,V=1,G=this[h+--B];for(;B>0&&(V*=256);)G+=this[h+--B]*V;return V*=128,G>=V&&(G-=Math.pow(2,8*m)),G},u.prototype.readInt8=function(h,m){return h=h>>>0,m||Vt(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},u.prototype.readInt16LE=function(h,m){h=h>>>0,m||Vt(h,2,this.length);const _=this[h]|this[h+1]<<8;return _&32768?_|4294901760:_},u.prototype.readInt16BE=function(h,m){h=h>>>0,m||Vt(h,2,this.length);const _=this[h+1]|this[h]<<8;return _&32768?_|4294901760:_},u.prototype.readInt32LE=function(h,m){return h=h>>>0,m||Vt(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},u.prototype.readInt32BE=function(h,m){return h=h>>>0,m||Vt(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},u.prototype.readBigInt64LE=Ut(function(h){h=h>>>0,z(h,"offset");const m=this[h],_=this[h+7];(m===void 0||_===void 0)&&Q(h,this.length-8);const B=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(_<<24);return(BigInt(B)<>>0,z(h,"offset");const m=this[h],_=this[h+7];(m===void 0||_===void 0)&&Q(h,this.length-8);const B=(m<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(B)<>>0,m||Vt(h,4,this.length),n.read(this,h,!0,23,4)},u.prototype.readFloatBE=function(h,m){return h=h>>>0,m||Vt(h,4,this.length),n.read(this,h,!1,23,4)},u.prototype.readDoubleLE=function(h,m){return h=h>>>0,m||Vt(h,8,this.length),n.read(this,h,!0,52,8)},u.prototype.readDoubleBE=function(h,m){return h=h>>>0,m||Vt(h,8,this.length),n.read(this,h,!1,52,8)};function wt(h,m,_,B,V,G){if(!u.isBuffer(h))throw new TypeError('"buffer" argument must be a Buffer instance');if(m>V||mh.length)throw new RangeError("Index out of range")}u.prototype.writeUintLE=u.prototype.writeUIntLE=function(h,m,_,B){if(h=+h,m=m>>>0,_=_>>>0,!B){const lt=Math.pow(2,8*_)-1;wt(this,h,m,_,lt,0)}let V=1,G=0;for(this[m]=h&255;++G<_&&(V*=256);)this[m+G]=h/V&255;return m+_},u.prototype.writeUintBE=u.prototype.writeUIntBE=function(h,m,_,B){if(h=+h,m=m>>>0,_=_>>>0,!B){const lt=Math.pow(2,8*_)-1;wt(this,h,m,_,lt,0)}let V=_-1,G=1;for(this[m+V]=h&255;--V>=0&&(G*=256);)this[m+V]=h/G&255;return m+_},u.prototype.writeUint8=u.prototype.writeUInt8=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,1,255,0),this[m]=h&255,m+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,2,65535,0),this[m]=h&255,this[m+1]=h>>>8,m+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,2,65535,0),this[m]=h>>>8,this[m+1]=h&255,m+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,4,4294967295,0),this[m+3]=h>>>24,this[m+2]=h>>>16,this[m+1]=h>>>8,this[m]=h&255,m+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,4,4294967295,0),this[m]=h>>>24,this[m+1]=h>>>16,this[m+2]=h>>>8,this[m+3]=h&255,m+4};function Dt(h,m,_,B,V){J(m,B,V,h,_,7);let G=Number(m&BigInt(4294967295));h[_++]=G,G=G>>8,h[_++]=G,G=G>>8,h[_++]=G,G=G>>8,h[_++]=G;let lt=Number(m>>BigInt(32)&BigInt(4294967295));return h[_++]=lt,lt=lt>>8,h[_++]=lt,lt=lt>>8,h[_++]=lt,lt=lt>>8,h[_++]=lt,_}function oe(h,m,_,B,V){J(m,B,V,h,_,7);let G=Number(m&BigInt(4294967295));h[_+7]=G,G=G>>8,h[_+6]=G,G=G>>8,h[_+5]=G,G=G>>8,h[_+4]=G;let lt=Number(m>>BigInt(32)&BigInt(4294967295));return h[_+3]=lt,lt=lt>>8,h[_+2]=lt,lt=lt>>8,h[_+1]=lt,lt=lt>>8,h[_]=lt,_+8}u.prototype.writeBigUInt64LE=Ut(function(h,m=0){return Dt(this,h,m,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeBigUInt64BE=Ut(function(h,m=0){return oe(this,h,m,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeIntLE=function(h,m,_,B){if(h=+h,m=m>>>0,!B){const Yt=Math.pow(2,8*_-1);wt(this,h,m,_,Yt-1,-Yt)}let V=0,G=1,lt=0;for(this[m]=h&255;++V<_&&(G*=256);)h<0&<===0&&this[m+V-1]!==0&&(lt=1),this[m+V]=(h/G>>0)-lt&255;return m+_},u.prototype.writeIntBE=function(h,m,_,B){if(h=+h,m=m>>>0,!B){const Yt=Math.pow(2,8*_-1);wt(this,h,m,_,Yt-1,-Yt)}let V=_-1,G=1,lt=0;for(this[m+V]=h&255;--V>=0&&(G*=256);)h<0&<===0&&this[m+V+1]!==0&&(lt=1),this[m+V]=(h/G>>0)-lt&255;return m+_},u.prototype.writeInt8=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,1,127,-128),h<0&&(h=255+h+1),this[m]=h&255,m+1},u.prototype.writeInt16LE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,2,32767,-32768),this[m]=h&255,this[m+1]=h>>>8,m+2},u.prototype.writeInt16BE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,2,32767,-32768),this[m]=h>>>8,this[m+1]=h&255,m+2},u.prototype.writeInt32LE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,4,2147483647,-2147483648),this[m]=h&255,this[m+1]=h>>>8,this[m+2]=h>>>16,this[m+3]=h>>>24,m+4},u.prototype.writeInt32BE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[m]=h>>>24,this[m+1]=h>>>16,this[m+2]=h>>>8,this[m+3]=h&255,m+4},u.prototype.writeBigInt64LE=Ut(function(h,m=0){return Dt(this,h,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),u.prototype.writeBigInt64BE=Ut(function(h,m=0){return oe(this,h,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function un(h,m,_,B,V,G){if(_+B>h.length)throw new RangeError("Index out of range");if(_<0)throw new RangeError("Index out of range")}function jn(h,m,_,B,V){return m=+m,_=_>>>0,V||un(h,m,_,4),n.write(h,m,_,B,23,4),_+4}u.prototype.writeFloatLE=function(h,m,_){return jn(this,h,m,!0,_)},u.prototype.writeFloatBE=function(h,m,_){return jn(this,h,m,!1,_)};function On(h,m,_,B,V){return m=+m,_=_>>>0,V||un(h,m,_,8),n.write(h,m,_,B,52,8),_+8}u.prototype.writeDoubleLE=function(h,m,_){return On(this,h,m,!0,_)},u.prototype.writeDoubleBE=function(h,m,_){return On(this,h,m,!1,_)},u.prototype.copy=function(h,m,_,B){if(!u.isBuffer(h))throw new TypeError("argument should be a Buffer");if(_||(_=0),!B&&B!==0&&(B=this.length),m>=h.length&&(m=h.length),m||(m=0),B>0&&B<_&&(B=_),B===_||h.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(_<0||_>=this.length)throw new RangeError("Index out of range");if(B<0)throw new RangeError("sourceEnd out of bounds");B>this.length&&(B=this.length),h.length-m>>0,_=_===void 0?this.length:_>>>0,h||(h=0);let V;if(typeof h=="number")for(V=m;V<_;++V)this[V]=h;else{const G=u.isBuffer(h)?h:u.from(h,B),lt=G.length;if(lt===0)throw new TypeError('The value "'+h+'" is invalid for argument "value"');for(V=0;V<_-m;++V)this[V+m]=G[V%lt]}return this};const T={};function P(h,m,_){T[h]=class extends _{constructor(){super(),Object.defineProperty(this,"message",{value:m.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${h}]`,this.stack,delete this.name}get code(){return h}set code(B){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:B,writable:!0})}toString(){return`${this.name} [${h}]: ${this.message}`}}}P("ERR_BUFFER_OUT_OF_BOUNDS",function(h){return h?`${h} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),P("ERR_INVALID_ARG_TYPE",function(h,m){return`The "${h}" argument must be of type number. Received type ${typeof m}`},TypeError),P("ERR_OUT_OF_RANGE",function(h,m,_){let B=`The value of "${h}" is out of range.`,V=_;return Number.isInteger(_)&&Math.abs(_)>2**32?V=K(String(_)):typeof _=="bigint"&&(V=String(_),(_>BigInt(2)**BigInt(32)||_<-(BigInt(2)**BigInt(32)))&&(V=K(V)),V+="n"),B+=` It must be ${m}. Received ${V}`,B},RangeError);function K(h){let m="",_=h.length;const B=h[0]==="-"?1:0;for(;_>=B+4;_-=3)m=`_${h.slice(_-3,_)}${m}`;return`${h.slice(0,_)}${m}`}function it(h,m,_){z(m,"offset"),(h[m]===void 0||h[m+_]===void 0)&&Q(m,h.length-(_+1))}function J(h,m,_,B,V,G){if(h>_||h= 0${lt} and < 2${lt} ** ${(G+1)*8}${lt}`:Yt=`>= -(2${lt} ** ${(G+1)*8-1}${lt}) and < 2 ** ${(G+1)*8-1}${lt}`,new T.ERR_OUT_OF_RANGE("value",Yt,h)}it(B,V,G)}function z(h,m){if(typeof h!="number")throw new T.ERR_INVALID_ARG_TYPE(m,"number",h)}function Q(h,m,_){throw Math.floor(h)!==h?(z(h,_),new T.ERR_OUT_OF_RANGE("offset","an integer",h)):m<0?new T.ERR_BUFFER_OUT_OF_BOUNDS:new T.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${m}`,h)}const at=/[^+/0-9A-Za-z-_]/g;function ot(h){if(h=h.split("=")[0],h=h.trim().replace(at,""),h.length<2)return"";for(;h.length%4!==0;)h=h+"=";return h}function tt(h,m){m=m||1/0;let _;const B=h.length;let V=null;const G=[];for(let lt=0;lt55295&&_<57344){if(!V){if(_>56319){(m-=3)>-1&&G.push(239,191,189);continue}else if(lt+1===B){(m-=3)>-1&&G.push(239,191,189);continue}V=_;continue}if(_<56320){(m-=3)>-1&&G.push(239,191,189),V=_;continue}_=(V-55296<<10|_-56320)+65536}else V&&(m-=3)>-1&&G.push(239,191,189);if(V=null,_<128){if((m-=1)<0)break;G.push(_)}else if(_<2048){if((m-=2)<0)break;G.push(_>>6|192,_&63|128)}else if(_<65536){if((m-=3)<0)break;G.push(_>>12|224,_>>6&63|128,_&63|128)}else if(_<1114112){if((m-=4)<0)break;G.push(_>>18|240,_>>12&63|128,_>>6&63|128,_&63|128)}else throw new Error("Invalid code point")}return G}function _t(h){const m=[];for(let _=0;_>8,V=_%256,G.push(V),G.push(B);return G}function xt(h){return e.toByteArray(ot(h))}function Ct(h,m,_,B){let V;for(V=0;V=m.length||V>=h.length);++V)m[V+_]=h[V];return V}function Ot(h,m){return h instanceof m||h!=null&&h.constructor!=null&&h.constructor.name!=null&&h.constructor.name===m.name}function Kt(h){return h!==h}const jt=(function(){const h="0123456789abcdef",m=new Array(256);for(let _=0;_<16;++_){const B=_*16;for(let V=0;V<16;++V)m[B+V]=h[_]+h[V]}return m})();function Ut(h){return typeof BigInt>"u"?ee:h}function ee(){throw new Error("BigInt not supported")}})(d1);const Yp=d1.Buffer,[kx]=window.OC?.config?.version?.split(".")??[],p1=Number.parseInt(kx??"35"),Es=p1<32,Tx=p1<34,f1=Symbol.for("NcFormBox:context");function jd(){return Ei(f1,{isInFormBox:!1,formBoxItemClass:void 0})}const pe=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},Dx={class:"button-vue__wrapper"},Ox={class:"button-vue__icon"},$x={class:"button-vue__text"},Rx=Et({__name:"NcButton",props:{alignment:{default:"center"},ariaLabel:{default:void 0},disabled:{type:Boolean},download:{type:[String,Boolean],default:void 0},href:{default:void 0},pressed:{type:Boolean,default:void 0},size:{default:"normal"},target:{default:"_self"},text:{default:void 0},to:{default:void 0},type:{default:"button"},variant:{default:"secondary"},wide:{type:Boolean}},emits:["click","update:pressed"],setup(t,{emit:e}){const n=t,i=e,{formBoxItemClass:o}=jd(),s=Ei(c1,null)!==null,r=rt(()=>s&&n.to?"RouterLink":n.href?"a":"button"),a=rt(()=>r.value==="button"&&typeof n.pressed=="boolean"),l=rt(()=>n.pressed?"primary":n.pressed===!1&&n.variant==="primary"?"secondary":n.variant),c=rt(()=>l.value.startsWith("tertiary")),u=rt(()=>n.alignment.split("-")[0]),d=rt(()=>n.alignment.includes("-")),p=Ei("NcPopover:trigger:attrs",()=>({}),!1),f=rt(()=>p()),v=rt(()=>{if(r.value==="RouterLink")return{to:n.to,activeClass:"active"};if(r.value==="a")return{href:n.href||"#",target:n.target,rel:"nofollow noreferrer noopener",download:n.download||void 0};if(r.value==="button")return{...f.value,"aria-pressed":n.pressed,type:n.type,disabled:n.disabled}});function g(w){a.value&&i("update:pressed",!n.pressed),i("click",w)}return(w,b)=>(C(),ct(Po(r.value),Lt({class:["button-vue",[`button-vue--size-${t.size}`,{[`button-vue--${l.value}`]:l.value,"button-vue--tertiary":c.value,"button-vue--wide":t.wide,[`button-vue--${u.value}`]:u.value!=="center","button-vue--reverse":d.value,"button-vue--legacy":E(Es),"button-vue--legacy34":E(Tx)},E(o)]],"aria-label":t.ariaLabel},v.value,{onClick:g}),{default:dt(()=>[y("span",Dx,[y("span",Ox,[kt(w.$slots,"icon",{},void 0,!0)]),y("span",$x,[kt(w.$slots,"default",{},()=>[bt(A(t.text),1)],!0)])])]),_:3},16,["class","aria-label"]))}}),Se=pe(Rx,[["__scopeId","data-v-47ce59a3"]]);var Bx="M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z",Xc="M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z",Px="M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z",Nx="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z",Lx="M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z",gl="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",Fx="M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",Vx="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",jx="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",Yc="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",Ux="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z",Ix="M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",zx="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z",Hx="M14,19H18V5H14M6,19H10V5H6V19Z",Wx="M8,5.14V19.14L19,12.14L8,5.14Z",Jx="M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z";const Gx=["aria-hidden","aria-label"],Kx={key:0,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},qx=["d"],Xx=["innerHTML"],Yx=Et({__name:"NcIconSvgWrapper",props:{directional:{type:Boolean},inline:{type:Boolean},svg:{default:""},name:{default:void 0},path:{default:""},size:{default:20}},setup(t){au(o=>({fb515064:n.value}));const e=t,n=rt(()=>typeof e.size=="number"?`${e.size}px`:e.size),i=rt(()=>{if(!e.svg||e.path)return;const o=a1.sanitize(e.svg),s=new DOMParser().parseFromString(o,"image/svg+xml");return s.querySelector("parsererror")?"":(s.documentElement.id&&s.documentElement.removeAttribute("id"),s.documentElement.outerHTML)});return(o,s)=>(C(),R("span",{"aria-hidden":t.name?void 0:"true","aria-label":t.name||void 0,class:Bt(["icon-vue",{"icon-vue--directional":t.directional,"icon-vue--inline":t.inline}]),role:"img"},[i.value?(C(),R("span",{key:1,innerHTML:i.value},null,8,Xx)):(C(),R("svg",Kx,[y("path",{d:t.path},null,8,qx)]))],10,Gx))}}),Pe=pe(Yx,[["__scopeId","data-v-aaedb1c3"]]),Zx=["role"],Qx={key:0,class:"notecard__heading"},Mx={class:"notecard__text"},t4=Et({__name:"NcNoteCard",props:{heading:{default:void 0},showAlert:{type:Boolean},text:{default:void 0},type:{default:"warning"}},setup(t){const e=t,n=rt(()=>e.showAlert||e.type==="error"),i=rt(()=>{switch(e.type){case"error":return Px;case"success":return Fx;case"info":return Ix;default:return Bx}});return(o,s)=>(C(),R("div",{class:Bt(["notecard",{[`notecard--${t.type}`]:t.type,"notecard--legacy":E(Es)}]),role:n.value?"alert":"note"},[kt(o.$slots,"icon",{},()=>[q(E(Pe),{path:i.value,class:Bt(["notecard__icon",{"notecard__icon--heading":t.heading}]),inline:""},null,8,["path","class"])],!0),y("div",null,[t.heading?(C(),R("p",Qx,A(t.heading),1)):st("",!0),kt(o.$slots,"default",{},()=>[y("p",Mx,A(t.text),1)],!0)])],10,Zx))}}),Si=pe(t4,[["__scopeId","data-v-6be9fa31"]]),e4=Et({__name:"NcFormBox",props:{row:{type:Boolean}},setup(t){const e=ww();return $d(f1,{isInFormBox:!0,formBoxItemClass:e.ncFormBox__item}),(n,i)=>(C(),R("div",{class:Bt([n.$style.ncFormBox,t.row?n.$style.ncFormBox_row:n.$style.ncFormBox_col])},[kt(n.$slots,"default",{itemClass:n.$style.ncFormBox__item})],2))}}),n4="_ncFormBox_VNb0a",i4="_ncFormBox_row_NzGjv",o4="_ncFormBox__item_JIu9L",s4="_ncFormBox_col_UaYOI",r4={"material-design-icon":"_material-design-icon_UQYft",ncFormBox:n4,ncFormBox_row:i4,ncFormBox__item:o4,ncFormBox_col:s4},a4={$style:r4},za=pe(e4,[["__cssModules",a4]]);window._nc_vue_element_id=window._nc_vue_element_id??0;function oi(){return`nc-vue-${window._nc_vue_element_id++}`}const l4=["aria-describedby"],u4=Et({__name:"NcFormGroup",props:{label:{default:()=>{}},description:{default:()=>{}},hideLabel:{type:Boolean,default:!1},hideDescription:{type:Boolean,default:!1},noGap:{type:Boolean,default:!1}},setup(t){const e=ou(),n=`${`nc-form-group-${oi()}`}-description`,i=()=>!!t.description||!!e.description,o=()=>i()?n:void 0,s=()=>t.hideLabel&&(!i()||t.hideDescription);return(r,a)=>(C(),R("fieldset",{class:Bt([r.$style.formGroup,{[r.$style.formGroup_noGap]:t.noGap}]),"aria-describedby":o()},[y("legend",{class:Bt([r.$style.formGroup__label,{"hidden-visually":t.hideLabel}])},[kt(r.$slots,"label",{},()=>[bt(A(t.label||"āš ļø Missing label"),1)])],2),i()?(C(),R("div",{key:0,id:n,class:Bt([r.$style.formGroup__description,{"hidden-visually":t.hideDescription}])},[kt(r.$slots,"description",{},()=>[bt(A(t.description),1)])],2)):st("",!0),y("div",{class:Bt([r.$style.formGroup__content,{[r.$style.formGroup__content_only]:s()}])},[kt(r.$slots,"default")],2)],10,l4))}}),c4="_formGroup_eD8cV",d4="_formGroup_noGap_Eo-YJ",h4="_formGroup__label_KZ5RR",p4="_formGroup__description_rYOct",f4="_formGroup__content_ypTY1",g4="_formGroup__content_only_z-ggI",m4={"material-design-icon":"_material-design-icon_pO-y6",formGroup:c4,formGroup_noGap:d4,formGroup__label:h4,formGroup__description:p4,formGroup__content:f4,formGroup__content_only:g4},v4={$style:m4},Zc=pe(u4,[["__cssModules",v4]]),g1=Symbol.for("insideRadioGroup");function y4(){return Ei(g1,void 0)}const b4=Et({__name:"NcRadioGroup",props:ii({label:{},labelHidden:{type:Boolean},hideLabel:{type:Boolean},description:{}},{modelValue:{required:!1,default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const e=Jo(t,"modelValue"),n=Rt();$d(g1,rt(()=>({register:i,modelValue:e.value,onUpdate:o})));function i(s){n.value!==void 0&&n.value,n.value=s}function o(s){e.value=s}return(s,r)=>(C(),ct(Zc,{label:t.label,description:t.description,hideLabel:t.labelHidden||t.hideLabel},{default:dt(()=>[n.value?(C(),ct(za,{key:0,row:""},{default:dt(()=>[kt(s.$slots,"default")]),_:3})):(C(),R("span",{key:1,class:Bt(s.$style.radioGroup_checkboxRadioContainer)},[kt(s.$slots,"default")],2))]),_:3},8,["label","description","hideLabel"]))}}),_4="_radioGroup_checkboxRadioContainer_yHVcN",w4={"material-design-icon":"_material-design-icon_-FH6E",radioGroup_checkboxRadioContainer:_4},x4={$style:w4},E4=pe(b4,[["__cssModules",x4]]),C4=["id"],S4=["aria-labelledby","aria-label","checked","disabled","value"],A4=Et({__name:"NcRadioGroupButton",props:{ariaLabel:{},label:{},value:{},disabled:{type:Boolean}},setup(t){const e=t,n=oi(),i=y4(),{formBoxItemClass:o}=jd();Pi(()=>i.value.register(!0));const s=rt(()=>i?.value.modelValue===e.value);function r(){e.disabled||i.value.onUpdate(e.value)}return(a,l)=>(C(),R("div",{class:Bt([{[a.$style.radioGroupButton_active]:s.value,[a.$style.radioGroupButton_disabled]:t.disabled},a.$style.radioGroupButton,E(o)]),onClick:r},[a.$slots.icon?(C(),R("div",{key:0,class:Bt(a.$style.radioGroupButton__icon)},[kt(a.$slots,"icon")],2)):st("",!0),t.label?(C(),R("div",{key:1,id:E(n),class:Bt(a.$style.radioGroupButton__label)},A(t.label),11,C4)):st("",!0),y("input",{"aria-labelledby":t.label?E(n):void 0,"aria-label":t.label?void 0:t.ariaLabel,class:"hidden-visually",checked:s.value,type:"radio",disabled:t.disabled,value:t.value,onInput:r},null,40,S4)],2))}}),k4="_radioGroupButton_QcVyU",T4="_radioGroupButton__label_QupyB",D4="_radioGroupButton__icon_FNlLj",O4="_radioGroupButton_disabled_t8I3Z",$4="_radioGroupButton_active_ZblnM",R4={"material-design-icon":"_material-design-icon_kNZhO",radioGroupButton:k4,radioGroupButton__label:T4,radioGroupButton__icon:D4,radioGroupButton_disabled:O4,radioGroupButton_active:$4},B4={$style:R4},ec=pe(A4,[["__cssModules",B4]]),Pt=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},P4={name:"DatabaseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},N4=["aria-hidden","aria-label"],L4=["fill","width","height"],F4={d:"M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11 12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M4,9V12C4,14.21 7.58,16 12,16C16.42,16 20,14.21 20,12V9C20,11.21 16.42,13 12,13C7.58,13 4,11.21 4,9M4,14V17C4,19.21 7.58,21 12,21C16.42,21 20,19.21 20,17V14C20,16.21 16.42,18 12,18C7.58,18 4,16.21 4,14Z"},V4={key:0};function j4(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon database-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",F4,[n.title?(C(),R("title",V4,A(n.title),1)):st("",!0)])],8,L4))],16,N4)}const Ud=Pt(P4,[["render",j4]]),U4={name:"MonitorIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},I4=["aria-hidden","aria-label"],z4=["fill","width","height"],H4={d:"M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z"},W4={key:0};function J4(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon monitor-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",H4,[n.title?(C(),R("title",W4,A(n.title),1)):st("",!0)])],8,z4))],16,I4)}const m1=Pt(U4,[["render",J4]]),G4={name:"UpdateIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},K4=["aria-hidden","aria-label"],q4=["fill","width","height"],X4={d:"M21,10.12H14.22L16.96,7.3C14.23,4.6 9.81,4.5 7.08,7.2C4.35,9.91 4.35,14.28 7.08,17C9.81,19.7 14.23,19.7 16.96,17C18.32,15.65 19,14.08 19,12.1H21C21,14.08 20.12,16.65 18.36,18.39C14.85,21.87 9.15,21.87 5.64,18.39C2.14,14.92 2.11,9.28 5.62,5.81C9.13,2.34 14.76,2.34 18.27,5.81L21,3V10.12M12.5,8V12.25L16,14.33L15.28,15.54L11,13V8H12.5Z"},Y4={key:0};function Z4(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon update-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",X4,[n.title?(C(),R("title",Y4,A(n.title),1)):st("",!0)])],8,q4))],16,K4)}const v1=Pt(G4,[["render",Z4]]),Q4=Et({__name:"SettingsNavigation",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(t){const e=Jo(t,"modelValue");return(n,i)=>(C(),ct(E(E4),{modelValue:e.value,"onUpdate:modelValue":i[0]||(i[0]=o=>e.value=o),class:"settings-navigation",label:E(O)("serverinfo","Monitoring pages"),labelHidden:""},{default:dt(()=>[q(E(ec),{value:"status",label:E(O)("serverinfo","Status")},{icon:dt(()=>[q(m1,{size:20})]),_:1},8,["label"]),q(E(ec),{value:"database",label:E(O)("serverinfo","Database")},{icon:dt(()=>[q(Ud,{size:20})]),_:1},8,["label"]),q(E(ec),{value:"background-jobs",label:E(O)("serverinfo","Background jobs")},{icon:dt(()=>[q(v1,{size:20})]),_:1},8,["label"])]),_:1},8,["modelValue","label"]))}}),M4=Pt(Q4,[["__scopeId","data-v-c8fdb9c7"]]);class t2{bundle;constructor(e){this.bundle={pluralFunction:e,translations:{}}}addTranslations(e){const n=Object.values(e.translations[""]??{}).map(({msgid:i,msgid_plural:o,msgstr:s})=>o!==void 0?[`_${i}_::_${o}_`,s]:[i,s[0]]);this.bundle.translations={...this.bundle.translations,...Object.fromEntries(n)}}gettext(e,n={}){return O("",e,n,void 0,{bundle:this.bundle})}ngettext(e,n,i,o={}){return fl("",e,n,i,o,{bundle:this.bundle})}}class e2{debug=!1;language="en";translations={};setLanguage(e){return this.language=e,this}detectLocale(){return this.detectLanguage()}detectLanguage(){return this.setLanguage(No().replace("-","_"))}addTranslation(e,n){return this.translations[e]=n,this}enableDebugMode(){return this.debug=!0,this}build(){this.debug&&console.debug(`Creating gettext instance for language ${this.language}`);const e=new t2(n=>vx(n,this.language));return this.language in this.translations&&e.addTranslations(this.translations[this.language]),e}}function n2(){return new e2}const y1=n2().detectLanguage().build(),de=(...t)=>y1.gettext(...t);function Go(...t){for(const e of t)if(!e.registered){for(const{l:n,t:i}of e){if(n!==No()||!i)continue;const o=Object.fromEntries(Object.entries(i).map(([s,r])=>[s,{msgid:s,msgid_plural:r.p,msgstr:r.v}]));y1.addTranslations({translations:{"":o}})}e.registered=!0}}const i2=[{l:"ar",t:{"a few seconds ago":{v:["منذ Ų¹ŲÆŲ© Ų«ŁˆŲ§Ł†Ł"]},"sec. ago":{v:["Ų«Ų§Ł†ŁŠŲ© Ł…Ų¶ŲŖ"]},"seconds ago":{v:["Ų«ŁˆŲ§Ł†Ł Ł…Ų¶ŲŖ"]}}},{l:"ast",t:{"a few seconds ago":{v:["hai unos segundos"]},"sec. ago":{v:["hai segs"]},"seconds ago":{v:["hai segundos"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"a few seconds ago":{v:["před několika sekundami"]},"Invalid date":{v:["NeplatnĆ© datum"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtĆ­m"]}}},{l:"cs-CZ",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtĆ­m"]}}},{l:"da",t:{"a few seconds ago":{v:["et par sekunder siden"]},"Invalid date":{v:["Ugyldig dato"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"de",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"Invalid date":{v:["Ungültiges Datum"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"de-DE",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"Invalid date":{v:["Ungültiges Datum"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"el",t:{"a few seconds ago":{v:["πριν λίγα Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī±"]},"sec. ago":{v:["Γευτ. πριν"]},"seconds ago":{v:["Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī± πριν"]}}},{l:"en-GB",t:{"a few seconds ago":{v:["a few seconds ago"]},"sec. ago":{v:["sec. ago"]},"seconds ago":{v:["seconds ago"]}}},{l:"eo",t:{}},{l:"es",t:{"a few seconds ago":{v:["hace unos pocos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"es-AR",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrĆ”s"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"es-EC",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["Segundos atrĆ”s"]}}},{l:"es-MX",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrĆ”s"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"et-EE",t:{"a few seconds ago":{v:["mƵni sekund tagasi"]},"Invalid date":{v:["Vigane kuupƤev"]},"sec. ago":{v:["sek. tagasi"]},"seconds ago":{v:["sekundit tagasi"]}}},{l:"eu",t:{"a few seconds ago":{v:["duela segundo batzuk"]},"sec. ago":{v:["duela seg."]},"seconds ago":{v:["duela segundo"]}}},{l:"fa",t:{"a few seconds ago":{v:["چند Ų«Ų§Ł†ŪŒŁ‡ پیؓ"]},"sec. ago":{v:["چند Ų«Ų§Ł†ŪŒŁ‡ پیؓ"]},"seconds ago":{v:["چند Ų«Ų§Ł†ŪŒŁ‡ پیؓ"]}}},{l:"fi",t:{"a few seconds ago":{v:["muutamia sekunteja sitten"]},"sec. ago":{v:["sek. sitten"]},"seconds ago":{v:["sekunteja sitten"]}}},{l:"fr",t:{"a few seconds ago":{v:["il y a quelques instants"]},"Invalid date":{v:["Date non valide"]},"sec. ago":{v:["il y a qq. sec."]},"seconds ago":{v:["il y a quelques secondes"]}}},{l:"ga",t:{"a few seconds ago":{v:["cĆŗpla soicind ó shin"]},"sec. ago":{v:["soic. ó shin"]},"seconds ago":{v:["soicind ó shin"]}}},{l:"gl",t:{"a few seconds ago":{v:["hai uns segundos"]},"sec. ago":{v:["segs. atrĆ”s"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"he",t:{"a few seconds ago":{v:["לפני ×ž×”×¤×Ø שניות"]},"sec. ago":{v:["לפני ×ž×”×¤×Ø שניות"]},"seconds ago":{v:["לפני מה׳ שניות"]}}},{l:"hr",t:{"a few seconds ago":{v:["prije nekoliko sekundi"]},"sec. ago":{v:["prije nek. sek."]},"seconds ago":{v:["prije nek. sek."]}}},{l:"hu",t:{"a few seconds ago":{v:["nĆ©hĆ”ny mĆ”sodperce"]},"sec. ago":{v:["mĆ”sodperce"]},"seconds ago":{v:["mĆ”sodperce"]}}},{l:"id",t:{"a few seconds ago":{v:["beberapa detik yang lalu"]},"sec. ago":{v:["dtk. yang lalu"]},"seconds ago":{v:["beberapa detik lalu"]}}},{l:"is",t:{"a few seconds ago":{v:["fyrir ƶrfĆ”um sekĆŗndum sƭưan"]},"sec. ago":{v:["sek. sƭưan"]},"seconds ago":{v:["sekĆŗndum sƭưan"]}}},{l:"it",t:{"a few seconds ago":{v:["pochi secondi fa"]},"sec. ago":{v:["sec. fa"]},"seconds ago":{v:["secondi fa"]}}},{l:"ja",t:{"a few seconds ago":{v:["ę•°ē§’å‰"]},"sec. ago":{v:["ē§’å‰"]},"seconds ago":{v:["ę•°ē§’å‰"]}}},{l:"ja-JP",t:{"a few seconds ago":{v:["ę•°ē§’å‰"]},"sec. ago":{v:["ē§’å‰"]},"seconds ago":{v:["ę•°ē§’å‰"]}}},{l:"ko",t:{"a few seconds ago":{v:["방금 ģ „"]},"sec. ago":{v:["ėŖ‡ 쓈 ģ „"]},"seconds ago":{v:["쓈 ģ „"]}}},{l:"lo",t:{"a few seconds ago":{v:["ąŗŖąŗ­ąŗ‡ąŗŖąŗ²ąŗ”ąŗ§ąŗ“ąŗ™ąŗ²ąŗ—ąŗµąŗą»ˆąŗ­ąŗ™"]},"sec. ago":{v:["ąŗ§ąŗ“. ąŗą»ˆąŗ­ąŗ™"]},"seconds ago":{v:["ąŗ§ąŗ“ąŗ™ąŗ²ąŗ—ąŗµąŗą»ˆąŗ­ąŗ™"]}}},{l:"lt-LT",t:{"a few seconds ago":{v:["prieÅ” keletą sekundžių"]},"sec. ago":{v:["prieÅ” sek."]},"seconds ago":{v:["prieÅ” sekundes"]}}},{l:"lv",t:{}},{l:"mk",t:{"a few seconds ago":{v:["преГ неколку секунГи"]},"sec. ago":{v:["секунГа"]},"seconds ago":{v:["секунГи"]}}},{l:"mn",t:{"a few seconds ago":{v:["Ń…ŃŠ“Ń…ŃŠ½ ŃŠµŠŗŃƒŠ½Š“Ń‹Š½ өмнө"]},"sec. ago":{v:["сек. өмнө"]},"seconds ago":{v:["ŃŠµŠŗŃƒŠ½Š“Ń‹Š½ өмнө"]}}},{l:"my",t:{}},{l:"nb",t:{"a few seconds ago":{v:["noen fĆ„ sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"nl",t:{"a few seconds ago":{v:["enkele seconden geleden"]},"sec. ago":{v:["sec. geleden"]},"seconds ago":{v:["seconden geleden"]}}},{l:"oc",t:{}},{l:"pl",t:{"a few seconds ago":{v:["kilka sekund temu"]},"sec. ago":{v:["sek. temu"]},"seconds ago":{v:["sekund temu"]}}},{l:"pt-BR",t:{"a few seconds ago":{v:["hĆ” alguns segundos"]},"Invalid date":{v:["Data invĆ”lida"]},"sec. ago":{v:["seg. atrĆ”s"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"pt-PT",t:{"a few seconds ago":{v:["hĆ” alguns segundos"]},"sec. ago":{v:["seg. atrĆ”s"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"ro",t:{"a few seconds ago":{v:["acum cĆ¢teva secunde"]},"sec. ago":{v:["sec. Ć®n urmă"]},"seconds ago":{v:["secunde Ć®n urmă"]}}},{l:"ru",t:{"a few seconds ago":{v:["несколько секунГ назаГ"]},"sec. ago":{v:["сек. назаГ"]},"seconds ago":{v:["секунГ назаГ"]}}},{l:"sk",t:{"a few seconds ago":{v:["pred chvíľou"]},"sec. ago":{v:["pred pĆ”r sekundami"]},"seconds ago":{v:["pred sekundami"]}}},{l:"sl",t:{}},{l:"sr",t:{"a few seconds ago":{v:["пре неколико секунГи"]},"sec. ago":{v:["сек. Ń€Š°Š½ŠøŃ˜Šµ"]},"seconds ago":{v:["секунГи Ń€Š°Š½ŠøŃ˜Šµ"]}}},{l:"sv",t:{"a few seconds ago":{v:["fƶr nĆ„gra sekunder sedan"]},"Invalid date":{v:["Ogiltigt datum"]},"sec. ago":{v:["sek. sedan"]},"seconds ago":{v:["sekunder sedan"]}}},{l:"tr",t:{"a few seconds ago":{v:["birkaƧ saniye ƶnce"]},"Invalid date":{v:["Tarih geƧersiz"]},"sec. ago":{v:["sn. ƶnce"]},"seconds ago":{v:["saniye ƶnce"]}}},{l:"uk",t:{"a few seconds ago":{v:["Š“ŠµŠŗŃ–Š»ŃŒŠŗŠ° секунГ Ń‚Š¾Š¼Ńƒ"]},"sec. ago":{v:["с Ń‚Š¾Š¼Ńƒ"]},"seconds ago":{v:["с Ń‚Š¾Š¼Ńƒ"]}}},{l:"uz",t:{"a few seconds ago":{v:["bir necha soniya oldin"]},"sec. ago":{v:["sek. oldin"]},"seconds ago":{v:["soniyalar oldin"]}}},{l:"zh-CN",t:{"a few seconds ago":{v:["å‡ ē§’å‰"]},"sec. ago":{v:["å‡ ē§’å‰"]},"seconds ago":{v:["å‡ ē§’å‰"]}}},{l:"zh-HK",t:{"a few seconds ago":{v:["å¹¾ē§’å‰"]},"sec. ago":{v:["ē§’å‰"]},"seconds ago":{v:["ē§’å‰"]}}},{l:"zh-TW",t:{"a few seconds ago":{v:["å¹¾ē§’å‰"]},"sec. ago":{v:["ē§’å‰"]},"seconds ago":{v:["ē§’å‰"]}}}],o2=[{l:"ar",t:{Actions:{v:["Ų„Ų¬Ų±Ų§Ų”Ų§ŲŖ"]}}},{l:"ast",t:{Actions:{v:["Aiciones"]}}},{l:"br",t:{Actions:{v:["Oberioù"]}}},{l:"ca",t:{Actions:{v:["Accions"]}}},{l:"cs",t:{Actions:{v:["Akce"]}}},{l:"cs-CZ",t:{Actions:{v:["Akce"]}}},{l:"da",t:{Actions:{v:["Handlinger"]}}},{l:"de",t:{Actions:{v:["Aktionen"]}}},{l:"de-DE",t:{Actions:{v:["Aktionen"]}}},{l:"el",t:{Actions:{v:["Ενέργειες"]}}},{l:"en-GB",t:{Actions:{v:["Actions"]}}},{l:"eo",t:{Actions:{v:["Agoj"]}}},{l:"es",t:{Actions:{v:["Acciones"]}}},{l:"es-AR",t:{Actions:{v:["Acciones"]}}},{l:"es-EC",t:{Actions:{v:["Acciones"]}}},{l:"es-MX",t:{Actions:{v:["Acciones"]}}},{l:"et-EE",t:{Actions:{v:["Tegevus"]}}},{l:"eu",t:{Actions:{v:["Ekintzak"]}}},{l:"fa",t:{Actions:{v:["Ś©Ł†Ų“ā€ŒŁ‡Ų§"]}}},{l:"fi",t:{Actions:{v:["Toiminnot"]}}},{l:"fr",t:{Actions:{v:["Actions"]}}},{l:"ga",t:{Actions:{v:["GnĆ­omhartha"]}}},{l:"gl",t:{Actions:{v:["Accións"]}}},{l:"he",t:{Actions:{v:["×¤×¢×•×œ×•×Ŗ"]}}},{l:"hr",t:{Actions:{v:["Radnje"]}}},{l:"hu",t:{Actions:{v:["Műveletek"]}}},{l:"id",t:{Actions:{v:["Tindakan"]}}},{l:"is",t:{Actions:{v:["Aưgerưir"]}}},{l:"it",t:{Actions:{v:["Azioni"]}}},{l:"ja",t:{Actions:{v:["ę“ä½œ"]}}},{l:"ja-JP",t:{Actions:{v:["ę“ä½œ"]}}},{l:"ko",t:{Actions:{v:["ė™ģž‘"]}}},{l:"lo",t:{Actions:{v:["ການກະທຳ"]}}},{l:"lt-LT",t:{Actions:{v:["Veiksmai"]}}},{l:"lv",t:{}},{l:"mk",t:{Actions:{v:["Акции"]}}},{l:"mn",t:{Actions:{v:["ҮйлГлүүГ"]}}},{l:"my",t:{Actions:{v:["į€œį€Æį€•į€ŗį€†į€±į€¬į€„į€ŗį€į€»į€€į€ŗį€™į€»į€¬į€ø"]}}},{l:"nb",t:{Actions:{v:["Handlinger"]}}},{l:"nl",t:{Actions:{v:["Acties"]}}},{l:"oc",t:{Actions:{v:["Accions"]}}},{l:"pl",t:{Actions:{v:["Działania"]}}},{l:"pt-BR",t:{Actions:{v:["AƧƵes"]}}},{l:"pt-PT",t:{Actions:{v:["AƧƵes"]}}},{l:"ro",t:{Actions:{v:["Acțiuni"]}}},{l:"ru",t:{Actions:{v:["Š”ŠµŠ¹ŃŃ‚Š²ŠøŃ "]}}},{l:"sk",t:{Actions:{v:["Akcie"]}}},{l:"sl",t:{Actions:{v:["Dejanja"]}}},{l:"sr",t:{Actions:{v:["РаГње"]}}},{l:"sv",t:{Actions:{v:["ƅtgƤrder"]}}},{l:"tr",t:{Actions:{v:["İşlemler"]}}},{l:"uk",t:{Actions:{v:["Дії"]}}},{l:"uz",t:{Actions:{v:["Harakatlar"]}}},{l:"zh-CN",t:{Actions:{v:["蔌为"]}}},{l:"zh-HK",t:{Actions:{v:["動作"]}}},{l:"zh-TW",t:{Actions:{v:["動作"]}}}],s2=[{l:"ar",t:{"Clear selected":{v:["Ł…Ų­Łˆ المحدّد"]},"Deselect {option}":{v:["؄لغاؔ تحديد {option}"]},"No results":{v:["Ł„ŁŠŲ³ Ł‡Ł†Ų§Łƒ أية Ł†ŲŖŁŠŲ¬Ų©"]},Options:{v:["خيارات"]}}},{l:"ast",t:{"Clear selected":{v:["Borrar lo seleicionao"]},"Deselect {option}":{v:["Deseleicionar Ā«{option}Ā»"]},"No results":{v:["Nun hai nengĆŗn resultĆ”u"]},Options:{v:["Opciones"]}}},{l:"br",t:{"No results":{v:["Disoc'h ebet"]}}},{l:"ca",t:{"No results":{v:["Sense resultats"]}}},{l:"cs",t:{"Clear selected":{v:["Vyčistit vybranĆ©"]},"Deselect {option}":{v:["ZruÅ”it výběr {option}"]},"No results":{v:["Nic nenalezeno"]},Options:{v:["Možnosti"]}}},{l:"cs-CZ",t:{"Clear selected":{v:["Vyčistit vybranĆ©"]},"Deselect {option}":{v:["ZruÅ”it výběr {option}"]},"No results":{v:["Nic nenalezeno"]},Options:{v:["Možnosti"]}}},{l:"da",t:{"Clear selected":{v:["Ryd valgt"]},"Deselect {option}":{v:["FravƦlg {option}"]},"No results":{v:["Ingen resultater"]},Options:{v:["Indstillinger"]}}},{l:"de",t:{"Clear selected":{v:["Auswahl leeren"]},"Deselect {option}":{v:["{option} abwƤhlen"]},"No results":{v:["Keine Ergebnisse"]},Options:{v:["Optionen"]}}},{l:"de-DE",t:{"Clear selected":{v:["Auswahl leeren"]},"Deselect {option}":{v:["{option} abwƤhlen"]},"No results":{v:["Keine Ergebnisse"]},Options:{v:["Optionen"]}}},{l:"el",t:{"Clear selected":{v:["Ī•ĪŗĪŗĪ±ĪøĪ¬ĻĪ¹ĻƒĪ· επιλογής"]},"Deselect {option}":{v:["Αποεπιλογή {option}"]},"No results":{v:["Κανένα Ī±Ļ€ĪæĻ„Ī­Ī»ĪµĻƒĪ¼Ī±"]},Options:{v:["Επιλογές"]}}},{l:"en-GB",t:{"Clear selected":{v:["Clear selected"]},"Deselect {option}":{v:["Deselect {option}"]},"No results":{v:["No results"]},Options:{v:["Options"]}}},{l:"eo",t:{"No results":{v:["La rezulto forestas"]}}},{l:"es",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:[" NingĆŗn resultado"]},Options:{v:["Opciones"]}}},{l:"es-AR",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:["Sin resultados"]},Options:{v:["Opciones"]}}},{l:"es-EC",t:{"No results":{v:["Sin resultados"]}}},{l:"es-MX",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:["Sin resultados"]},Options:{v:["Opciones"]}}},{l:"et-EE",t:{"Clear selected":{v:["Tühjenda valik"]},"Deselect {option}":{v:["Eemalda {option} valik"]},"No results":{v:["Tulemusi pole"]},Options:{v:["Valikud"]}}},{l:"eu",t:{"No results":{v:["Emaitzarik ez"]}}},{l:"fa",t:{"Clear selected":{v:["پاک کردن Ł…ŁˆŲ±ŲÆ انتخاب ؓده"]},"Deselect {option}":{v:["Ł„ŲŗŁˆ انتخاب {option}"]},"No results":{v:["ŲØŲÆŁˆŁ† Ł‡ŪŒŚ† Ł†ŲŖŪŒŲ¬Ł‡ā€ŒŲ§ŪŒ"]},Options:{v:["ŚÆŲ²ŪŒŁ†Ł‡ā€ŒŁ‡Ų§"]}}},{l:"fi",t:{"Clear selected":{v:["TyhjennƤ valitut"]},"Deselect {option}":{v:["Poista valinta {option}"]},"No results":{v:["Ei tuloksia"]},Options:{v:["Valinnat"]}}},{l:"fr",t:{"Clear selected":{v:["Vider la sĆ©lection"]},"Deselect {option}":{v:["DĆ©sĆ©lectionner {option}"]},"No results":{v:["Aucun rĆ©sultat"]},Options:{v:["Options"]}}},{l:"ga",t:{"Clear selected":{v:["Glan roghnaithe"]},"Deselect {option}":{v:["DĆ­roghnaigh {option}"]},"No results":{v:["Gan torthaĆ­"]},Options:{v:["Roghanna"]}}},{l:"gl",t:{"Clear selected":{v:["Limpar o seleccionado"]},"Deselect {option}":{v:["Desmarcar {option}"]},"No results":{v:["Sen resultados"]},Options:{v:["Opcións"]}}},{l:"he",t:{"No results":{v:["אין תוצאות"]}}},{l:"hr",t:{"Clear selected":{v:["Očisti odabir"]},"Deselect {option}":{v:["Odznači {option}"]},"No results":{v:["Nema rezultata"]},Options:{v:["Mogućnosti"]}}},{l:"hu",t:{"Clear selected":{v:["KijelƶlĆ©s tƶrlĆ©se"]},"Deselect {option}":{v:["{option} kijelƶlĆ©sĆ©nek megszüntetĆ©se"]},"No results":{v:["Nincs talĆ”lat"]},Options:{v:["BeĆ”llĆ­tĆ”sok"]}}},{l:"id",t:{"Clear selected":{v:["Hapus terpilih"]},"Deselect {option}":{v:["Batalkan pemilihan {option}"]},"No results":{v:["Tidak ada hasil"]},Options:{v:["Opsi"]}}},{l:"is",t:{"Clear selected":{v:["Hreinsa valiư"]},"Deselect {option}":{v:["Afvelja {option}"]},"No results":{v:["Engar niưurstƶưur"]},Options:{v:["Valkostir"]}}},{l:"it",t:{"Clear selected":{v:["Cancella selezionati"]},"Deselect {option}":{v:["Deselezionare {option}"]},"No results":{v:["Nessun risultato"]}}},{l:"ja",t:{"Clear selected":{v:["éøęŠžć‚’č§£é™¤"]},"Deselect {option}":{v:["{option} ć®éøęŠžć‚’č§£é™¤"]},"No results":{v:["ēµęžœē„”ć—"]},Options:{v:["ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³"]}}},{l:"ja-JP",t:{"Clear selected":{v:["éøęŠžć‚’č§£é™¤"]},"Deselect {option}":{v:["{option} ć®éøęŠžć‚’č§£é™¤"]},"No results":{v:["ēµęžœē„”ć—"]},Options:{v:["ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³"]}}},{l:"ko",t:{"Clear selected":{v:["ģ„ ķƒ ķ•­ėŖ© ģ§€ģš°źø°"]},"Deselect {option}":{v:["{option} ģ„ ķƒ ķ•“ģ œ"]},"No results":{v:["ź²°ź³¼ ģ—†ģŒ"]},Options:{v:["ģ˜µģ…˜"]}}},{l:"lo",t:{"Clear selected":{v:["ąŗ„ąŗ¶ąŗšąŗŖąŗ“ą»ˆąŗ‡ąŗ—ąŗµą»ˆą»€ąŗ„ąŗ·ąŗ­ąŗ"]},"Deselect {option}":{v:["ąŗąŗ»ąŗą»€ąŗ„ąŗµąŗąŗąŗ²ąŗ™ą»€ąŗ„ąŗ·ąŗ­ąŗ {option}"]},"No results":{v:["ąŗšą»ą»ˆąŗ”ąŗµąŗœąŗ»ąŗ™ąŗ„ąŗ±ąŗš"]},Options:{v:["ຕົວເຄືອກ"]}}},{l:"lt-LT",t:{"Clear selected":{v:["IÅ”valyti pasirinkimą"]},"Deselect {option}":{v:["Panaikinkite {option} pasirinkimą"]},"No results":{v:["Nėra rezultatų"]},Options:{v:["Parinktys"]}}},{l:"lv",t:{"No results":{v:["Nav rezultātu"]}}},{l:"mk",t:{"Clear selected":{v:["Š˜ŃŃ‡ŠøŃŃ‚Šø означени"]},"Deselect {option}":{v:["ŠžŃ‚ŠŗŠ°Š¶Šø избор на {option}"]},"No results":{v:["ŠŠµŠ¼Š° Ń€ŠµŠ·ŃƒŠ»Ń‚Š°Ń‚Šø"]},Options:{v:["ŠžŠæŃ†ŠøŠø"]}}},{l:"mn",t:{"Clear selected":{v:["Донголтыг Ń†ŃŠ²ŃŃ€Š»ŃŃ…"]},"Deselect {option}":{v:["{option}-г сонголтоос хасах"]},"No results":{v:["Үр Гүн алга"]},Options:{v:["Тохиргоо"]}}},{l:"my",t:{"No results":{v:["į€›į€œį€’į€ŗį€™į€›į€¾į€­į€•į€«"]}}},{l:"nb",t:{"Clear selected":{v:["TĆøm merket"]},"Deselect {option}":{v:["Opphev valg {option}"]},"No results":{v:["Ingen resultater"]},Options:{v:["Alternativer"]}}},{l:"nl",t:{"Clear selected":{v:["Selectie wissen"]},"Deselect {option}":{v:["Selectie {option} opheffen"]},"No results":{v:["Geen resultaten"]},Options:{v:["Opties"]}}},{l:"oc",t:{"No results":{v:["Cap de resultat"]}}},{l:"pl",t:{"Clear selected":{v:["Wyczyść wybrane"]},"Deselect {option}":{v:["Odznacz {option}"]},"No results":{v:["Brak wyników"]},Options:{v:["Opcje"]}}},{l:"pt-BR",t:{"Clear selected":{v:["Limpar selecionado"]},"Deselect {option}":{v:["Desselecionar {option}"]},"No results":{v:["Sem resultados"]},Options:{v:["OpƧƵes"]}}},{l:"pt-PT",t:{"Clear selected":{v:["Limpeza selecionada"]},"Deselect {option}":{v:["Desmarcar {option}"]},"No results":{v:["Sem resultados"]},Options:{v:["OpƧƵes"]}}},{l:"ro",t:{"Clear selected":{v:["Șterge selecția"]},"Deselect {option}":{v:["Deselctează {option}"]},"No results":{v:["Nu există rezultate"]}}},{l:"ru",t:{"Clear selected":{v:["ŠžŃ‡ŠøŃŃ‚ŠøŃ‚ŃŒ выбранный"]},"Deselect {option}":{v:["ŠžŃ‚Š¼ŠµŠ½ŠøŃ‚ŃŒ выбор {option}"]},"No results":{v:["Š ŠµŠ·ŃƒŠ»ŃŒŃ‚Š°Ń‚Ń‹ Š¾Ń‚ŃŃƒŃŃ‚Š²ŃƒŃŽŃ‚"]},Options:{v:["Варианты"]}}},{l:"sk",t:{"Clear selected":{v:["VymazaÅ„ vybratĆ©"]},"Deselect {option}":{v:["ZruÅ”iÅ„ výber {option}"]},"No results":{v:["Žiadne výsledky"]},Options:{v:["možnosti"]}}},{l:"sl",t:{"No results":{v:["Ni zadetkov"]}}},{l:"sr",t:{"Clear selected":{v:["ŠžŠ±Ń€ŠøŃˆŠø изабрано"]},"Deselect {option}":{v:["Уклони избор {option}"]},"No results":{v:["ŠŠµŠ¼Š° Ń€ŠµŠ·ŃƒŠ»Ń‚Š°Ń‚Š°"]},Options:{v:["ŠžŠæŃ†ŠøŃ˜Šµ"]}}},{l:"sv",t:{"Clear selected":{v:["Rensa valda"]},"Deselect {option}":{v:["Avmarkera {option}"]},"No results":{v:["Inga resultat"]},Options:{v:["Alternativ"]}}},{l:"tr",t:{"Clear selected":{v:["SeƧilmişleri temizle"]},"Deselect {option}":{v:["{option} bırak"]},"No results":{v:["Herhangi bir sonuƧ bulunamadı"]},Options:{v:["SeƧenekler"]}}},{l:"uk",t:{"Clear selected":{v:["ŠžŃ‡ŠøŃŃ‚ŠøŃ‚Šø вибране"]},"Deselect {option}":{v:["Š—Š½ŃŃ‚Šø вибір {option}"]},"No results":{v:["Š’Ń–Š“ŃŃƒŃ‚Š½Ń– Ń€ŠµŠ·ŃƒŠ»ŃŒŃ‚Š°Ń‚Šø"]},Options:{v:["ŠŸŠ°Ń€Š°Š¼ŠµŃ‚Ń€Šø"]}}},{l:"uz",t:{"Clear selected":{v:["Tanlanganni tozalash"]},"Deselect {option}":{v:["{option}tanlovni bekor qiling"]},"No results":{v:["Natija yoŹ»q"]},Options:{v:["Variantlar"]}}},{l:"zh-CN",t:{"Clear selected":{v:["清除所选"]},"Deselect {option}":{v:["å–ę¶ˆé€‰ę‹© {option}"]},"No results":{v:["ę— ē»“ęžœ"]},Options:{v:["选锹"]}}},{l:"zh-HK",t:{"Clear selected":{v:["清除所選項目"]},"Deselect {option}":{v:["å–ę¶ˆéøę“‡ {option}"]},"No results":{v:["ē„”ēµęžœ"]},Options:{v:["選項"]}}},{l:"zh-TW",t:{"Clear selected":{v:["ęø…é™¤éøå®šé …ē›®"]},"Deselect {option}":{v:["å–ę¶ˆéøå– {option}"]},"No results":{v:["ē„”ēµęžœ"]},Options:{v:["選項"]}}}],r2=[{l:"ar",t:{"Clear text":{v:["Ł…Ų­Łˆ النص"]},"Save changes":{v:["حفظ Ų§Ł„ŲŖŲŗŁŠŁŠŲ±Ų§ŲŖ"]}}},{l:"ast",t:{"Clear text":{v:["Borrar el testu"]},"Save changes":{v:["Guardar los cambeos"]}}},{l:"br",t:{}},{l:"ca",t:{"Clear text":{v:["Netejar text"]}}},{l:"cs",t:{"Clear text":{v:["Čitelný text"]},"Save changes":{v:["Uložit změny"]}}},{l:"cs-CZ",t:{"Clear text":{v:["Čitelný text"]},"Save changes":{v:["Uložit změny"]}}},{l:"da",t:{"Clear text":{v:["Ryd tekst"]},"Save changes":{v:["Gem Ʀndringer"]}}},{l:"de",t:{"Clear text":{v:["Klartext"]},"Save changes":{v:["Ƅnderungen speichern"]}}},{l:"de-DE",t:{"Clear text":{v:["Klartext"]},"Save changes":{v:["Ƅnderungen speichern"]}}},{l:"el",t:{"Clear text":{v:["Ī•ĪŗĪŗĪ±ĪøĪ¬ĻĪ¹ĻƒĪ· κειμένου"]},"Save changes":{v:["Ī‘Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ· Ī±Ī»Ī»Ī±Ī³ĻŽĪ½"]}}},{l:"en-GB",t:{"Clear text":{v:["Clear text"]},"Save changes":{v:["Save changes"]}}},{l:"eo",t:{}},{l:"es",t:{"Clear text":{v:["Limpiar texto"]},"Save changes":{v:["Guardar cambios"]}}},{l:"es-AR",t:{"Clear text":{v:["Limpiar texto"]},"Save changes":{v:["Guardar cambios"]}}},{l:"es-EC",t:{"Clear text":{v:["Limpiar texto"]}}},{l:"es-MX",t:{"Clear text":{v:["Limpiar texto"]},"Save changes":{v:["Guardar cambios"]}}},{l:"et-EE",t:{"Clear text":{v:["Kustuta tekst"]},"Save changes":{v:["Salvesta muudatused"]}}},{l:"eu",t:{"Clear text":{v:["Garbitu testua"]}}},{l:"fa",t:{"Clear text":{v:["پاک کردن متن"]},"Save changes":{v:["Ų°Ų®ŪŒŲ±Ł‡Ł” تغییرات"]}}},{l:"fi",t:{"Clear text":{v:["TyhjennƤ teksti"]},"Save changes":{v:["Tallenna muutokset"]}}},{l:"fr",t:{"Clear text":{v:["Effacer le texte"]},"Save changes":{v:["Sauvegarder les changements"]}}},{l:"ga",t:{"Clear text":{v:["Glan tĆ©acs"]},"Save changes":{v:["SabhĆ”il na hathruithe"]}}},{l:"gl",t:{"Clear text":{v:["Limpar o texto"]},"Save changes":{v:["Gardar os cambios"]}}},{l:"he",t:{"Clear text":{v:["פינוי טקהט"]}}},{l:"hr",t:{"Clear text":{v:["Očisti tekst"]},"Save changes":{v:["Spremi promjene"]}}},{l:"hu",t:{"Clear text":{v:["Szƶveg tƶrlĆ©se"]},"Save changes":{v:["VĆ”ltoztatĆ”sok mentĆ©se"]}}},{l:"id",t:{"Clear text":{v:["Bersihkan teks"]},"Save changes":{v:["Simpan perubahan"]}}},{l:"is",t:{"Clear text":{v:["Hreinsa texta"]},"Save changes":{v:["Vista breytingar"]}}},{l:"it",t:{"Clear text":{v:["Cancella il testo"]},"Save changes":{v:["Salva le modifiche"]}}},{l:"ja",t:{"Clear text":{v:["ćƒ†ć‚­ć‚¹ćƒˆć‚’ć‚ÆćƒŖć‚¢"]},"Save changes":{v:["å¤‰ę›“ć‚’äæå­˜"]}}},{l:"ja-JP",t:{"Clear text":{v:["ćƒ†ć‚­ć‚¹ćƒˆć‚’ć‚ÆćƒŖć‚¢"]},"Save changes":{v:["å¤‰ę›“ć‚’äæå­˜"]}}},{l:"ko",t:{"Clear text":{v:["ķ…ģŠ¤ķŠø ģ§€ģš°źø°"]},"Save changes":{v:["변경 사항 ģ €ģž„"]}}},{l:"lo",t:{"Clear text":{v:["ąŗ„ąŗ¶ąŗšąŗ‚ą»ą»‰ąŗ„ąŗ§ąŗ²ąŗ”"]},"Save changes":{v:["ąŗšąŗ±ąŗ™ąŗ—ąŗ¶ąŗąŗąŗ²ąŗ™ąŗ›ą»ˆąŗ½ąŗ™ą»ąŗ›ąŗ‡"]}}},{l:"lt-LT",t:{"Clear text":{v:["IÅ”valyti tekstą"]},"Save changes":{v:["Ä®raÅ”yti pakeitimus"]}}},{l:"lv",t:{}},{l:"mk",t:{"Clear text":{v:["Š˜ŃŃ‡ŠøŃŃ‚Šø текст"]},"Save changes":{v:["Š—Š°Ń‡ŃƒŠ²Š°Ń˜ промени"]}}},{l:"mn",t:{"Clear text":{v:["Текстийг Ń†ŃŠ²ŃŃ€Š»ŃŃ…"]},"Save changes":{v:["Өөрчлөлтийг хаГгалах"]}}},{l:"my",t:{}},{l:"nb",t:{"Clear text":{v:["Fjern tekst"]},"Save changes":{v:["Lagre endringer"]}}},{l:"nl",t:{"Clear text":{v:["Tekst wissen"]},"Save changes":{v:["Wijzigingen opslaan"]}}},{l:"oc",t:{}},{l:"pl",t:{"Clear text":{v:["Wyczyść tekst"]},"Save changes":{v:["Zapisz zmiany"]}}},{l:"pt-BR",t:{"Clear text":{v:["Limpar texto"]},"Save changes":{v:["Salvar alteraƧƵes"]}}},{l:"pt-PT",t:{"Clear text":{v:["Limpar texto"]},"Save changes":{v:["Gravar alteraƧƵes"]}}},{l:"ro",t:{"Clear text":{v:["Șterge textul"]},"Save changes":{v:["Salvează modificările"]}}},{l:"ru",t:{"Clear text":{v:["ŠžŃ‡ŠøŃŃ‚ŠøŃ‚ŃŒ текст"]},"Save changes":{v:["Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ"]}}},{l:"sk",t:{"Clear text":{v:["VamazaÅ„ text"]},"Save changes":{v:["UložiÅ„ zmeny"]}}},{l:"sl",t:{"Clear text":{v:["Počisti besedilo"]}}},{l:"sr",t:{"Clear text":{v:["ŠžŠ±Ń€ŠøŃˆŠø текст"]},"Save changes":{v:["Š”Š°Ń‡ŃƒŠ²Š°Ń˜ измене"]}}},{l:"sv",t:{"Clear text":{v:["Rensa text"]},"Save changes":{v:["Spara Ƥndringar"]}}},{l:"tr",t:{"Clear text":{v:["Metni temizle"]},"Save changes":{v:["Değişiklikleri kaydet"]}}},{l:"uk",t:{"Clear text":{v:["ŠžŃ‡ŠøŃŃ‚ŠøŃ‚Šø текст"]},"Save changes":{v:["Зберегти зміни"]}}},{l:"uz",t:{"Clear text":{v:["Matnni tozalash"]},"Save changes":{v:["O'zgarishlarni saqlang"]}}},{l:"zh-CN",t:{"Clear text":{v:["ęø…é™¤ę–‡ęœ¬"]},"Save changes":{v:["äæå­˜äæ®ę”¹"]}}},{l:"zh-HK",t:{"Clear text":{v:["ęø…é™¤ę–‡ęœ¬"]},"Save changes":{v:["äæå­˜ę›“ę”¹"]}}},{l:"zh-TW",t:{"Clear text":{v:["清除文字"]},"Save changes":{v:["å„²å­˜č®Šę›“"]}}}],a2=[{l:"ar",t:{Close:{v:["؄غلاق"]}}},{l:"ast",t:{Close:{v:["Zarrar"]}}},{l:"br",t:{Close:{v:["SerriƱ"]}}},{l:"ca",t:{Close:{v:["Tanca"]}}},{l:"cs",t:{Close:{v:["Zavřít"]}}},{l:"cs-CZ",t:{Close:{v:["Zavřít"]}}},{l:"da",t:{Close:{v:["Luk"]}}},{l:"de",t:{Close:{v:["Schließen"]}}},{l:"de-DE",t:{Close:{v:["Schließen"]}}},{l:"el",t:{Close:{v:["Κλείσιμο"]}}},{l:"en-GB",t:{Close:{v:["Close"]}}},{l:"eo",t:{Close:{v:["Fermu"]}}},{l:"es",t:{Close:{v:["Cerrar"]}}},{l:"es-AR",t:{Close:{v:["Cerrar"]}}},{l:"es-EC",t:{Close:{v:["Cerrar"]}}},{l:"es-MX",t:{Close:{v:["Cerrar"]}}},{l:"et-EE",t:{Close:{v:["Sulge"]}}},{l:"eu",t:{Close:{v:["Itxi"]}}},{l:"fa",t:{Close:{v:["بستن"]}}},{l:"fi",t:{Close:{v:["Sulje"]}}},{l:"fr",t:{Close:{v:["Fermer"]}}},{l:"ga",t:{Close:{v:["DĆŗn"]}}},{l:"gl",t:{Close:{v:["Pechar"]}}},{l:"he",t:{Close:{v:["הגירה"]}}},{l:"hr",t:{Close:{v:["Zatvori"]}}},{l:"hu",t:{Close:{v:["BezĆ”rĆ”s"]}}},{l:"id",t:{Close:{v:["Tutup"]}}},{l:"is",t:{Close:{v:["Loka"]}}},{l:"it",t:{Close:{v:["Chiudi"]}}},{l:"ja",t:{Close:{v:["閉恘悋"]}}},{l:"ja-JP",t:{Close:{v:["閉恘悋"]}}},{l:"ko",t:{Close:{v:["ė‹«źø°"]}}},{l:"lo",t:{Close:{v:["ປຓດ"]}}},{l:"lt-LT",t:{Close:{v:["Užverti"]}}},{l:"lv",t:{Close:{v:["Aizvērt"]}}},{l:"mk",t:{Close:{v:["Затвори"]}}},{l:"mn",t:{Close:{v:["Єаах"]}}},{l:"my",t:{Close:{v:["ပိတ်ရန်"]}}},{l:"nb",t:{Close:{v:["Lukk"]}}},{l:"nl",t:{Close:{v:["Sluiten"]}}},{l:"oc",t:{Close:{v:["Tampar"]}}},{l:"pl",t:{Close:{v:["Zamknij"]}}},{l:"pt-BR",t:{Close:{v:["Fechar"]}}},{l:"pt-PT",t:{Close:{v:["Fechar"]}}},{l:"ro",t:{Close:{v:["Ǝnchideți"]}}},{l:"ru",t:{Close:{v:["Š—Š°ŠŗŃ€Ń‹Ń‚ŃŒ"]}}},{l:"sk",t:{Close:{v:["ZavrieÅ„"]}}},{l:"sl",t:{Close:{v:["Zapri"]}}},{l:"sr",t:{Close:{v:["Затвори"]}}},{l:"sv",t:{Close:{v:["StƤng"]}}},{l:"tr",t:{Close:{v:["Kapat"]}}},{l:"uk",t:{Close:{v:["Закрити"]}}},{l:"uz",t:{Close:{v:["Yopish"]}}},{l:"zh-CN",t:{Close:{v:["关闭"]}}},{l:"zh-HK",t:{Close:{v:["關閉"]}}},{l:"zh-TW",t:{Close:{v:["關閉"]}}}],l2=[{l:"ar",t:{}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{Copied:{v:["ZkopĆ­rovĆ”no"]},"Copy to clipboard":{v:["ZkopĆ­rovat do schrĆ”nky"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{Copied:{v:["Kopieret"]},"Copy to clipboard":{v:["KopiĆ©r til udklipsholderen"]}}},{l:"de",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"de-DE",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"el",t:{}},{l:"en-GB",t:{Copied:{v:["Copied"]},"Copy to clipboard":{v:["Copy to clipboard"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{Copied:{v:["Kopeeritud"]},"Copy to clipboard":{v:["Kopeeri lƵikelauale"]}}},{l:"eu",t:{}},{l:"fa",t:{}},{l:"fi",t:{}},{l:"fr",t:{Copied:{v:["CopiĆ©"]},"Copy to clipboard":{v:["Copier dans le presse-papiers"]}}},{l:"ga",t:{Copied:{v:["CóipeĆ”ilte"]},"Copy to clipboard":{v:["CóipeĆ”il chuig an ghearrthaisce"]}}},{l:"gl",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar ao portapapeis"]}}},{l:"he",t:{}},{l:"hr",t:{Copied:{v:["Kopirano"]},"Copy to clipboard":{v:["Kopiraj u međuspremnik"]}}},{l:"hu",t:{Copied:{v:["MĆ”solva"]},"Copy to clipboard":{v:["VĆ”gólapra mĆ”solĆ”s"]}}},{l:"id",t:{Copied:{v:["Disalin"]},"Copy to clipboard":{v:["Salin ke clipboard"]}}},{l:"is",t:{}},{l:"it",t:{}},{l:"ja",t:{Copied:{v:["ć‚³ćƒ”ćƒ¼ć•ć‚Œć¾ć—ćŸ"]},"Copy to clipboard":{v:["ć‚ÆćƒŖćƒƒćƒ—ćƒœćƒ¼ćƒ‰ć«ć‚³ćƒ”ćƒ¼"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{Copied:{v:["복사됨"]},"Copy to clipboard":{v:["ķ“ė¦½ė³“ė“œė”œ 복사"]}}},{l:"lo",t:{Copied:{v:["ສຳເນົາແຄ້ວ"]},"Copy to clipboard":{v:["ąŗŖąŗ³ą»€ąŗ™ąŗ»ąŗ²ą»ƒąŗŖą»ˆąŗ„ąŗ„ąŗ“ąŗšąŗšąŗ­ąŗ”"]}}},{l:"lt-LT",t:{Copied:{v:["Nukopijuota"]},"Copy to clipboard":{v:["Kopijuoti ÄÆ iÅ”karpinę"]}}},{l:"lv",t:{}},{l:"mk",t:{Copied:{v:["ŠšŠ¾ŠæŠøŃ€Š°Š½Š¾"]},"Copy to clipboard":{v:["ŠšŠ¾ŠæŠøŃ€Š°Ń˜ во клипбоарГ"]}}},{l:"mn",t:{Copied:{v:["ЄуулагГлаа"]},"Copy to clipboard":{v:["Данах ой руу Ń…ŃƒŃƒŠ»Š°Ń…"]}}},{l:"my",t:{}},{l:"nb",t:{}},{l:"nl",t:{Copied:{v:["Gekopieerd"]},"Copy to clipboard":{v:["Kopieer naar klembord"]}}},{l:"oc",t:{}},{l:"pl",t:{}},{l:"pt-BR",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar para a Ć”rea de transferĆŖncia"]}}},{l:"pt-PT",t:{}},{l:"ro",t:{}},{l:"ru",t:{Copied:{v:["Дкопировано"]},"Copy to clipboard":{v:["Š”ŠŗŠ¾ŠæŠøŃ€Š¾Š²Š°Ń‚ŃŒ в Š±ŃƒŃ„ер"]}}},{l:"sk",t:{}},{l:"sl",t:{}},{l:"sr",t:{}},{l:"sv",t:{Copied:{v:["Kopierat"]},"Copy to clipboard":{v:["Kopiera till urklipp"]}}},{l:"tr",t:{Copied:{v:["Kopyalandı"]},"Copy to clipboard":{v:["Panoya kopyalandı"]}}},{l:"uk",t:{}},{l:"uz",t:{Copied:{v:["Nusxalandi"]},"Copy to clipboard":{v:["Buferga nusxalash"]}}},{l:"zh-CN",t:{}},{l:"zh-HK",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["č¤‡č£½åˆ°å‰Ŗč²¼ē°æ"]}}},{l:"zh-TW",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["č¤‡č£½åˆ°å‰Ŗč²¼ē°æ"]}}}],u2=[{l:"ar",t:{"Loading …":{v:["Ų§Ł„ŲŖŲ­Ł…ŁŠŁ„ Ų¬Ų§Ų±Ł ..."]}}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Loading …":{v:["NačƭtĆ”ní …"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Loading …":{v:["IndlƦser ..."]}}},{l:"de",t:{"Loading …":{v:["Wird geladen …"]}}},{l:"de-DE",t:{"Loading …":{v:["Wird geladen …"]}}},{l:"el",t:{"Loading …":{v:["Ī¦ĻŒĻĻ„Ļ‰ĻƒĪ·  …"]}}},{l:"en-GB",t:{"Loading …":{v:["Loading …"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{"Loading …":{v:["Laadin…"]}}},{l:"eu",t:{}},{l:"fa",t:{"Loading …":{v:["ŲÆŲ± Ų­Ų§Ł„ بارگذاری ..."]}}},{l:"fi",t:{"Loading …":{v:["Ladataan ..."]}}},{l:"fr",t:{"Loading …":{v:["Chargement..."]}}},{l:"ga",t:{"Loading …":{v:["Ag lódĆ”il …"]}}},{l:"gl",t:{"Loading …":{v:["Cargando…"]}}},{l:"he",t:{}},{l:"hr",t:{"Loading …":{v:["Učitavanje …"]}}},{l:"hu",t:{"Loading …":{v:["BetƶltĆ©s…"]}}},{l:"id",t:{"Loading …":{v:["Memuat …"]}}},{l:"is",t:{"Loading …":{v:["Hleư inn …"]}}},{l:"it",t:{}},{l:"ja",t:{"Loading …":{v:["読み込み中 …"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{"Loading …":{v:["ė”œė”© 중 ..."]}}},{l:"lo",t:{"Loading …":{v:["ກຳຄັງໂຫຼດ…"]}}},{l:"lt-LT",t:{"Loading …":{v:["Ä®keliama …"]}}},{l:"lv",t:{}},{l:"mk",t:{"Loading …":{v:["Š’Ń‡ŠøŃ‚ŃƒŠ²Š°ŃšŠµĀ ā€¦"]}}},{l:"mn",t:{"Loading …":{v:["Ачаалж байна …"]}}},{l:"my",t:{}},{l:"nb",t:{"Loading …":{v:["Laster inn..."]}}},{l:"nl",t:{"Loading …":{v:["Laden …"]}}},{l:"oc",t:{}},{l:"pl",t:{"Loading …":{v:["Wczytywanie…"]}}},{l:"pt-BR",t:{"Loading …":{v:["Carregando …"]}}},{l:"pt-PT",t:{"Loading …":{v:["A carregar..."]}}},{l:"ro",t:{}},{l:"ru",t:{"Loading …":{v:["Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°Ā ā€¦"]}}},{l:"sk",t:{"Loading …":{v:["NahrĆ”vam ..."]}}},{l:"sl",t:{}},{l:"sr",t:{"Loading …":{v:["Учитава се…"]}}},{l:"sv",t:{"Loading …":{v:["LƤser in …"]}}},{l:"tr",t:{"Loading …":{v:["Yükleniyor…"]}}},{l:"uk",t:{"Loading …":{v:["Š—Š°Š²Š°Š½Ń‚Š°Š¶ŠµŠ½Š½ŃĀ ā€¦"]}}},{l:"uz",t:{"Loading …":{v:["Yuklanmoqda..."]}}},{l:"zh-CN",t:{"Loading …":{v:["加载中..."]}}},{l:"zh-HK",t:{"Loading …":{v:["åŠ č¼‰äø­Ā ā€¦"]}}},{l:"zh-TW",t:{"Loading …":{v:["載兄中......"]}}}],c2=[{l:"ar",t:{Next:{v:["Ų§Ł„ŲŖŲ§Ł„ŁŠ"]},"Pause slideshow":{v:["ŲŖŲ¬Ł…ŁŠŲÆ Ų¹Ų±Ų¶ الؓرائح"]},Previous:{v:["السابق"]},"Start slideshow":{v:["Ų„ŲØŲÆŲ„ العرض"]}}},{l:"ast",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Posar la presentación de diapositives"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Aniciar la presentación de diapositives"]}}},{l:"br",t:{Next:{v:["Da heul"]},"Pause slideshow":{v:["Arsav an diaporama"]},Previous:{v:["A-raok"]},"Start slideshow":{v:["KregiƱ an diaporama"]}}},{l:"ca",t:{Next:{v:["Següent"]},"Pause slideshow":{v:["Atura la presentació"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Inicia la presentació"]}}},{l:"cs",t:{Next:{v:["NĆ”sledujĆ­cĆ­"]},"Pause slideshow":{v:["Pozastavit prezentaci"]},Previous:{v:["PředchozĆ­"]},"Start slideshow":{v:["Spustit prezentaci"]}}},{l:"cs-CZ",t:{Next:{v:["NĆ”sledujĆ­cĆ­"]},"Pause slideshow":{v:["Pozastavit prezentaci"]},Previous:{v:["PředchozĆ­"]},"Start slideshow":{v:["Spustit prezentaci"]}}},{l:"da",t:{Next:{v:["Videre"]},"Pause slideshow":{v:["Suspender fremvisning"]},Previous:{v:["Forrige"]},"Start slideshow":{v:["Start fremvisning"]}}},{l:"de",t:{Next:{v:["Weiter"]},"Pause slideshow":{v:["Diashow pausieren"]},Previous:{v:["Vorherige"]},"Start slideshow":{v:["Diashow starten"]}}},{l:"de-DE",t:{Next:{v:["Weiter"]},"Pause slideshow":{v:["Diashow pausieren"]},Previous:{v:["Vorherige"]},"Start slideshow":{v:["Diashow starten"]}}},{l:"el",t:{Next:{v:["Ī•Ļ€ĻŒĪ¼ĪµĪ½Īæ"]},"Pause slideshow":{v:["Ī Ī±ĻĻƒĪ· προβολής Ī“Ī¹Ī±Ļ†Ī±Ī½ĪµĪ¹ĻŽĪ½"]},Previous:{v:["Ī ĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Īæ"]},"Start slideshow":{v:["Έναρξη προβολής Ī“Ī¹Ī±Ļ†Ī±Ī½ĪµĪ¹ĻŽĪ½"]}}},{l:"en-GB",t:{Next:{v:["Next"]},"Pause slideshow":{v:["Pause slideshow"]},Previous:{v:["Previous"]},"Start slideshow":{v:["Start slideshow"]}}},{l:"eo",t:{Next:{v:["Sekva"]},"Pause slideshow":{v:["Payzi bildprezenton"]},Previous:{v:["AntaÅ­a"]},"Start slideshow":{v:["Komenci bildprezenton"]}}},{l:"es",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar la presentación "]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar la presentación"]}}},{l:"es-AR",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar la presentación "]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar la presentación"]}}},{l:"es-EC",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar presentación de diapositivas"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar presentación de diapositivas"]}}},{l:"es-MX",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar presentación de diapositivas"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar presentación de diapositivas"]}}},{l:"et-EE",t:{Next:{v:["Edasi"]},"Pause slideshow":{v:["Slaidiesitluse paus"]},Previous:{v:["Eelmine"]},"Start slideshow":{v:["Alusta slaidiesitust"]}}},{l:"eu",t:{Next:{v:["Hurrengoa"]},"Pause slideshow":{v:["Pausatu diaporama"]},Previous:{v:["Aurrekoa"]},"Start slideshow":{v:["Hasi diaporama"]}}},{l:"fa",t:{Next:{v:["بعدی"]},"Pause slideshow":{v:["ŲŖŁˆŁ‚Ł Ł†Ł…Ų§ŪŒŲ“ Ų§Ų³Ł„Ų§ŪŒŲÆ"]},Previous:{v:["Ł‚ŲØŁ„ŪŒ"]},"Start slideshow":{v:["ؓروع Ł†Ł…Ų§ŪŒŲ“ Ų§Ų³Ł„Ų§ŪŒŲÆ"]}}},{l:"fi",t:{Next:{v:["Seuraava"]},"Pause slideshow":{v:["KeskeytƤ diaesitys"]},Previous:{v:["Edellinen"]},"Start slideshow":{v:["Aloita diaesitys"]}}},{l:"fr",t:{Next:{v:["Suivant"]},"Pause slideshow":{v:["Mettre le diaporama en pause"]},Previous:{v:["PrĆ©cĆ©dent"]},"Start slideshow":{v:["DĆ©marrer le diaporama"]}}},{l:"ga",t:{Next:{v:["Ar aghaidh"]},"Pause slideshow":{v:["Cuir taispeĆ”ntas sleamhnĆ”n ar sos"]},Previous:{v:["Roimhe Seo"]},"Start slideshow":{v:["Tosaigh taispeĆ”ntas sleamhnĆ”n"]}}},{l:"gl",t:{Next:{v:["Seguinte"]},"Pause slideshow":{v:["Pausar o diaporama"]},Previous:{v:["Anterir"]},"Start slideshow":{v:["Iniciar o diaporama"]}}},{l:"he",t:{Next:{v:["הבא"]},"Pause slideshow":{v:["השהיית ×ž×¦×’×Ŗ"]},Previous:{v:["הקודם"]},"Start slideshow":{v:["×”×Ŗ×—×œ×Ŗ ×”×ž×¦×’×Ŗ"]}}},{l:"hr",t:{Next:{v:["Sljedeće"]},"Pause slideshow":{v:["Pauziraj dijaprojekciju"]},Previous:{v:["Prethodno"]},"Start slideshow":{v:["Pokreni dijaprojekciju"]}}},{l:"hu",t:{Next:{v:["Kƶvetkező"]},"Pause slideshow":{v:["DiavetĆ­tĆ©s szüneteltetĆ©se"]},Previous:{v:["Előző"]},"Start slideshow":{v:["DiavetĆ­tĆ©s indĆ­tĆ”sa"]}}},{l:"id",t:{Next:{v:["Selanjutnya"]},"Pause slideshow":{v:["Jeda tayangan slide"]},Previous:{v:["Sebelumnya"]},"Start slideshow":{v:["Mulai salindia"]}}},{l:"is",t:{Next:{v:["NƦsta"]},"Pause slideshow":{v:["Gera hlĆ© Ć” skyggnusýningu"]},Previous:{v:["Fyrri"]},"Start slideshow":{v:["Byrja skyggnusýningu"]}}},{l:"it",t:{Next:{v:["Successivo"]},"Pause slideshow":{v:["Presentazione in pausa"]},Previous:{v:["Precedente"]},"Start slideshow":{v:["Avvia presentazione"]}}},{l:"ja",t:{Next:{v:["ꬔ"]},"Pause slideshow":{v:["ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’äø€ę™‚åœę­¢"]},Previous:{v:["前"]},"Start slideshow":{v:["ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’é–‹å§‹"]}}},{l:"ja-JP",t:{Next:{v:["ꬔ"]},"Pause slideshow":{v:["ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’äø€ę™‚åœę­¢"]},Previous:{v:["前"]},"Start slideshow":{v:["ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’é–‹å§‹"]}}},{l:"ko",t:{Next:{v:["ė‹¤ģŒ"]},"Pause slideshow":{v:["ģŠ¬ė¼ģ“ė“œģ‡¼ ģ¼ģ‹œģ •ģ§€"]},Previous:{v:["ģ“ģ „"]},"Start slideshow":{v:["ģŠ¬ė¼ģ“ė“œģ‡¼ ģ‹œģž‘"]}}},{l:"lo",t:{Next:{v:["ąŗ•ą»ą»ˆą»„ąŗ›"]},"Pause slideshow":{v:["ąŗ¢ąŗøąŗ”ąŗŖąŗ°ą»„ąŗ„ą»‰ą»‚ąŗŠąŗŠąŗ»ą»ˆąŗ§ąŗ„ąŗ²ąŗ§"]},Previous:{v:["ąŗą»ˆąŗ­ąŗ™ą»œą»‰ąŗ²"]},"Start slideshow":{v:["ą»€ąŗ„ąŗµą»ˆąŗ”ąŗŖąŗ°ą»„ąŗ„ą»‰ą»‚ąŗŠ"]}}},{l:"lt-LT",t:{Next:{v:["Kitas"]},"Pause slideshow":{v:["Pristabdyti skaidrių rodymą"]},Previous:{v:["Ankstesnis"]},"Start slideshow":{v:["Pradėti skaidrių rodymą"]}}},{l:"lv",t:{Next:{v:["Nākamais"]},"Pause slideshow":{v:["Pauzēt slaidrādi"]},Previous:{v:["IepriekŔējais"]},"Start slideshow":{v:["Sākt slaidrādi"]}}},{l:"mk",t:{Next:{v:["ДлеГно"]},"Pause slideshow":{v:["ŠŸŃƒŠ·ŠøŃ€Š°Ń˜ слајГшоу"]},Previous:{v:["ŠŸŃ€ŠµŠ“Ń…Š¾Š“Š½Š¾"]},"Start slideshow":{v:["Š”Ń‚Š°Ń€Ń‚ŃƒŠ²Š°Ń˜ слајГшоу"]}}},{l:"mn",t:{Next:{v:["Дараах"]},"Pause slideshow":{v:["ДлайГ шоуг түр зогсоох"]},Previous:{v:["Өмнөх"]},"Start slideshow":{v:["ДлайГ шоуг ŃŃ…Š»ŅÆŅÆŠ»ŃŃ…"]}}},{l:"my",t:{Next:{v:["į€”į€±į€¬į€€į€ŗį€žį€­į€Æį€·į€†į€€į€ŗį€›į€”į€ŗ"]},"Pause slideshow":{v:["į€…į€œį€­į€Æį€€į€ŗį€›į€¾į€­į€Æį€ø ခေတ္တရပ်ရန်"]},Previous:{v:["į€šį€į€„į€ŗ"]},"Start slideshow":{v:["į€…į€œį€­į€Æį€€į€ŗį€›į€¾į€­į€Æį€øį€”į€¬į€ø စတင်ရန်"]}}},{l:"nb",t:{Next:{v:["Neste"]},"Pause slideshow":{v:["Pause lysbildefremvisning"]},Previous:{v:["Forrige"]},"Start slideshow":{v:["Start lysbildefremvisning"]}}},{l:"nl",t:{Next:{v:["Volgende"]},"Pause slideshow":{v:["Diavoorstelling pauzeren"]},Previous:{v:["Vorige"]},"Start slideshow":{v:["Diavoorstelling starten"]}}},{l:"oc",t:{Next:{v:["Seguent"]},"Pause slideshow":{v:["Metre en pausa lo diaporama"]},Previous:{v:["Precedent"]},"Start slideshow":{v:["LanƧar lo diaporama"]}}},{l:"pl",t:{Next:{v:["Następny"]},"Pause slideshow":{v:["Wstrzymaj pokaz slajdów"]},Previous:{v:["Poprzedni"]},"Start slideshow":{v:["Rozpocznij pokaz slajdów"]}}},{l:"pt-BR",t:{Next:{v:["Próximo"]},"Pause slideshow":{v:["Pausar apresentação de slides"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar apresentação de slides"]}}},{l:"pt-PT",t:{Next:{v:["Seguinte"]},"Pause slideshow":{v:["Pausar diaporama"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar diaporama"]}}},{l:"ro",t:{Next:{v:["Următorul"]},"Pause slideshow":{v:["Pauză prezentare de diapozitive"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Ǝncepeți prezentarea de diapozitive"]}}},{l:"ru",t:{Next:{v:["Š”Š»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ"]},"Pause slideshow":{v:["ŠŸŃ€ŠøŠ¾ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ показ слйГов"]},Previous:{v:["ŠŸŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠµ"]},"Start slideshow":{v:["ŠŠ°Ń‡Š°Ń‚ŃŒ показ слайГов"]}}},{l:"sk",t:{Next:{v:["Ďalej"]},"Pause slideshow":{v:["PozastaviÅ„ prezentĆ”ciu"]},Previous:{v:["PredchĆ”dzajĆŗce"]},"Start slideshow":{v:["ZačaÅ„ prezentĆ”ciu"]}}},{l:"sl",t:{Next:{v:["Naslednji"]},"Pause slideshow":{v:["Ustavi predstavitev"]},Previous:{v:["Predhodni"]},"Start slideshow":{v:["Začni predstavitev"]}}},{l:"sr",t:{Next:{v:["ДлеГеће"]},"Pause slideshow":{v:["ŠŸŠ°ŃƒŠ·ŠøŃ€Š°Ń˜ слајГ шоу"]},Previous:{v:["ŠŸŃ€ŠµŃ‚Ń…Š¾Š“Š½Š¾"]},"Start slideshow":{v:["ŠŸŠ¾ŠŗŃ€ŠµŠ½Šø слајГ шоу"]}}},{l:"sv",t:{Next:{v:["NƤsta"]},"Pause slideshow":{v:["Pausa bildspelet"]},Previous:{v:["FƶregĆ„ende"]},"Start slideshow":{v:["Starta bildspelet"]}}},{l:"tr",t:{Next:{v:["Sonraki"]},"Pause slideshow":{v:["Slayt sunumunu duraklat"]},Previous:{v:["Ɩnceki"]},"Start slideshow":{v:["Slayt sunumunu başlat"]}}},{l:"uk",t:{Next:{v:["ВпереГ"]},"Pause slideshow":{v:["Пауза у показі слайГів"]},Previous:{v:["ŠŠ°Š·Š°Š“"]},"Start slideshow":{v:["ŠŸŠ¾Ń‡Š°Ń‚Šø показ слайГів"]}}},{l:"uz",t:{Next:{v:["Keyingi"]},"Pause slideshow":{v:["Slayd-shouni to'xtatib turish"]},Previous:{v:["Oldingi"]},"Start slideshow":{v:["Slayd-shouni boshlash"]}}},{l:"zh-CN",t:{Next:{v:["下一个"]},"Pause slideshow":{v:["ęš‚åœå¹»ēÆē‰‡"]},Previous:{v:["äøŠäø€äøŖ"]},"Start slideshow":{v:["开始幻灯片"]}}},{l:"zh-HK",t:{Next:{v:["下一個"]},"Pause slideshow":{v:["ęš«åœå¹»ē‡ˆē‰‡"]},Previous:{v:["äøŠäø€å€‹"]},"Start slideshow":{v:["é–‹å§‹å¹»ē‡ˆē‰‡"]}}},{l:"zh-TW",t:{Next:{v:["下一個"]},"Pause slideshow":{v:["ęš«åœå¹»ē‡ˆē‰‡"]},Previous:{v:["äøŠäø€å€‹"]},"Start slideshow":{v:["é–‹å§‹å¹»ē‡ˆē‰‡"]}}}],d2=[{l:"ar",t:{"Undo changes":{v:["ŲŖŲ±Ų§Ų¬ŁŽŲ¹ عن Ų§Ł„ŲŖŲŗŁŠŁŠŲ±Ų§ŲŖ"]}}},{l:"ast",t:{"Undo changes":{v:["Desfacer los cambeos"]}}},{l:"br",t:{}},{l:"ca",t:{"Undo changes":{v:["DesfĆ©s els canvis"]}}},{l:"cs",t:{"Undo changes":{v:["VzĆ­t změny zpět"]}}},{l:"cs-CZ",t:{"Undo changes":{v:["VzĆ­t změny zpět"]}}},{l:"da",t:{"Undo changes":{v:["Fortryd Ʀndringer"]}}},{l:"de",t:{"Undo changes":{v:["Ƅnderungen rückgƤngig machen"]}}},{l:"de-DE",t:{"Undo changes":{v:["Ƅnderungen rückgƤngig machen"]}}},{l:"el",t:{"Undo changes":{v:["Ī‘Ī½Ī±ĪÆĻĪµĻƒĪ· Ī‘Ī»Ī»Ī±Ī³ĻŽĪ½"]}}},{l:"en-GB",t:{"Undo changes":{v:["Undo changes"]}}},{l:"eo",t:{}},{l:"es",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-AR",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-EC",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-MX",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"et-EE",t:{"Undo changes":{v:["Pƶƶra muudatused tagasi"]}}},{l:"eu",t:{"Undo changes":{v:["Aldaketak desegin"]}}},{l:"fa",t:{"Undo changes":{v:["Ł„ŲŗŁˆ تغییرات"]}}},{l:"fi",t:{"Undo changes":{v:["Kumoa muutokset"]}}},{l:"fr",t:{"Undo changes":{v:["Annuler les changements"]}}},{l:"ga",t:{"Undo changes":{v:["Cealaigh athruithe"]}}},{l:"gl",t:{"Undo changes":{v:["Desfacer os cambios"]}}},{l:"he",t:{"Undo changes":{v:["ביטול שינויים"]}}},{l:"hr",t:{"Undo changes":{v:["PoniÅ”ti promjene"]}}},{l:"hu",t:{"Undo changes":{v:["VĆ”ltoztatĆ”sok visszavonĆ”sa"]}}},{l:"id",t:{"Undo changes":{v:["Urungkan perubahan"]}}},{l:"is",t:{"Undo changes":{v:["Afturkalla breytingar"]}}},{l:"it",t:{"Undo changes":{v:["Cancella i cambiamenti"]}}},{l:"ja",t:{"Undo changes":{v:["å¤‰ę›“ć‚’å–ć‚Šę¶ˆć—"]}}},{l:"ja-JP",t:{"Undo changes":{v:["å¤‰ę›“ć‚’å–ć‚Šę¶ˆć—"]}}},{l:"ko",t:{"Undo changes":{v:["변경 ė˜ėŒė¦¬źø°"]}}},{l:"lo",t:{"Undo changes":{v:["ąŗą»‰ąŗ­ąŗ™ąŗ„ąŗ·ąŗ™ąŗąŗ²ąŗ™ąŗ›ą»ˆąŗ½ąŗ™ą»ąŗ›ąŗ‡"]}}},{l:"lt-LT",t:{"Undo changes":{v:["AtÅ”aukti pakeitimus"]}}},{l:"lv",t:{}},{l:"mk",t:{"Undo changes":{v:["Врати ги промените"]}}},{l:"mn",t:{"Undo changes":{v:["Өөрчлөлтийг Š±ŃƒŃ†Š°Š°Ń…"]}}},{l:"my",t:{}},{l:"nb",t:{"Undo changes":{v:["Tilbakestill endringer"]}}},{l:"nl",t:{"Undo changes":{v:["Wijzigingen ongedaan maken"]}}},{l:"oc",t:{}},{l:"pl",t:{"Undo changes":{v:["Cofnij zmiany"]}}},{l:"pt-BR",t:{"Undo changes":{v:["Desfazer modificaƧƵes"]}}},{l:"pt-PT",t:{"Undo changes":{v:["Anular alteraƧƵes"]}}},{l:"ro",t:{"Undo changes":{v:["Anularea modificărilor"]}}},{l:"ru",t:{"Undo changes":{v:["ŠžŃ‚Š¼ŠµŠ½ŠøŃ‚ŃŒ ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ"]}}},{l:"sk",t:{"Undo changes":{v:["VrĆ”tiÅ„ zmeny"]}}},{l:"sl",t:{"Undo changes":{v:["Razveljavi spremembe"]}}},{l:"sr",t:{"Undo changes":{v:["ŠŸŠ¾Š½ŠøŃˆŃ‚Šø измене"]}}},{l:"sv",t:{"Undo changes":{v:["ƅngra Ƥndringar"]}}},{l:"tr",t:{"Undo changes":{v:["Değişiklikleri geri al"]}}},{l:"uk",t:{"Undo changes":{v:["Š”ŠŗŠ°ŃŃƒŠ²Š°Ń‚Šø зміни"]}}},{l:"uz",t:{"Undo changes":{v:["O'zgarishlarni bekor qilish"]}}},{l:"zh-CN",t:{"Undo changes":{v:["撤销曓改"]}}},{l:"zh-HK",t:{"Undo changes":{v:["å–ę¶ˆę›“ę”¹"]}}},{l:"zh-TW",t:{"Undo changes":{v:["é‚„åŽŸč®Šę›“"]}}}];Go(i2);const h2={long:de("a few seconds ago"),short:de("seconds ago"),narrow:de("sec. ago")};function p2(t=Date.now(),e={}){let n;const i=rt(()=>new Date(tn(t))),o=rt(()=>{const{language:a,relativeTime:l,ignoreSeconds:c}=tn(e);return{...a&&{language:a},...l&&{relativeTime:l},ignoreSeconds:c?h2[l||"long"]:!1}}),s=Rt("");dm(r);function r(){const a=i.value.getTime();if(Number.isNaN(a)){s.value=de("Invalid date");return}else s.value=yx(i.value,o.value);if(tn(e).update!==!1){const l=Math.abs(Date.now()-a),c=l>12e4||o.value.ignoreSeconds?Math.min(l/60,18e5):1e3;n=window.setTimeout(r,c)}}return Dn(()=>n&&window.clearTimeout(n)),el(s)}function f2(t,e){const n=rt(()=>({locale:l1(),format:{dateStyle:"short",timeStyle:"medium"},...tn(e)})),i=rt(()=>new Intl.DateTimeFormat(n.value.locale,n.value.format));return rt(()=>i.value.format(tn(t)))}const g2=["data-timestamp","title","textContent"],lu=Et({__name:"NcDateTime",props:{timestamp:{},format:{default:()=>({timeStyle:"medium",dateStyle:"short"})},relativeTime:{type:[Boolean,String],default:"long"},ignoreSeconds:{type:Boolean}},setup(t){const e=t,n=rt(()=>({format:e.format})),i=rt(()=>({ignoreSeconds:e.ignoreSeconds,relativeTime:e.relativeTime||"long",update:e.relativeTime!==!1})),o=f2(So(()=>e.timestamp),n),s=p2(So(()=>e.timestamp),i),r=rt(()=>e.relativeTime?s.value:o.value);return(a,l)=>(C(),R("span",{class:"nc-datetime",dir:"auto","data-timestamp":t.timestamp,title:E(o),textContent:A(r.value)},null,8,g2))}});function Qc(t,e){return Ig()?(ub(t,e),!0):!1}const Mc=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const m2=Object.prototype.toString,v2=t=>m2.call(t)==="[object Object]";function Ha(t){return Array.isArray(t)?t:[t]}function y2(t){return li()}function b2(t,e=!0,n){y2()?Pi(t,n):e?t():qr(t)}function _2(t,e=1e3,n={}){const{immediate:i=!0,immediateCallback:o=!1}=n;let s=null;const r=rn(!1);function a(){s&&(clearInterval(s),s=null)}function l(){r.value=!1,a()}function c(){const u=tn(e);u<=0||(r.value=!0,o&&t(),a(),r.value&&(s=setInterval(t,u)))}return i&&Mc&&c(),(_e(e)||typeof e=="function")&&Qc(ke(e,()=>{r.value&&Mc&&c()})),Qc(l),{isActive:Db(r),pause:l,resume:c}}function w2(t,e,n){return ke(t,e,{...n,immediate:!0})}function x2(t,e,n){return ke(t,(i,o,s)=>{i&&e(i,o,s)},{...n,once:!1})}const uu=Mc?window:void 0;function Ao(t){var e;const n=tn(t);return(e=n?.$el)!==null&&e!==void 0?e:n}function Wa(...t){const e=(i,o,s,r)=>(i.addEventListener(o,s,r),()=>i.removeEventListener(o,s,r)),n=rt(()=>{const i=Ha(tn(t[0])).filter(o=>o!=null);return i.every(o=>typeof o!="string")?i:void 0});return w2(()=>{var i,o;return[(i=(o=n.value)===null||o===void 0?void 0:o.map(s=>Ao(s)))!==null&&i!==void 0?i:[uu].filter(s=>s!=null),Ha(tn(n.value?t[1]:t[0])),Ha(E(n.value?t[2]:t[1])),tn(n.value?t[3]:t[2])]},([i,o,s,r],a,l)=>{if(!i?.length||!o?.length||!s?.length)return;const c=v2(r)?{...r}:r,u=i.flatMap(d=>o.flatMap(p=>s.map(f=>e(d,p,f,c))));l(()=>{u.forEach(d=>d())})},{flush:"post"})}function E2(){const t=rn(!1),e=li();return e&&Pi(()=>{t.value=!0},e),t}function C2(t){const e=E2();return rt(()=>(e.value,!!t()))}function S2(t){return typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):()=>!0}function Zp(...t){let e,n,i={};t.length===3?(e=t[0],n=t[1],i=t[2]):t.length===2?typeof t[1]=="object"?(e=!0,n=t[0],i=t[1]):(e=t[0],n=t[1]):(e=!0,n=t[0]);const{target:o=uu,eventName:s="keydown",passive:r=!1,dedupe:a=!1}=i,l=S2(e);return Wa(o,s,c=>{c.repeat&&tn(a)||l(c)&&n(c)},r)}function A2(t,e,n={}){const{window:i=uu,...o}=n;let s;const r=C2(()=>i&&"ResizeObserver"in i),a=()=>{s&&(s.disconnect(),s=void 0)},l=ke(rt(()=>{const u=tn(t);return Array.isArray(u)?u.map(d=>Ao(d)):[Ao(u)]}),u=>{if(a(),r.value&&i){s=new ResizeObserver(e);for(const d of u)d&&s.observe(d,o)}},{immediate:!0,flush:"post"}),c=()=>{a(),l()};return Qc(c),{isSupported:r,stop:c}}function k2(t,e={width:0,height:0},n={}){const{window:i=uu,box:o="content-box"}=n,s=rt(()=>{var d;return(d=Ao(t))===null||d===void 0||(d=d.namespaceURI)===null||d===void 0?void 0:d.includes("svg")}),r=rn(e.width),a=rn(e.height),{stop:l}=A2(t,([d])=>{const p=o==="border-box"?d.borderBoxSize:o==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(i&&s.value){const f=Ao(t);if(f){const v=f.getBoundingClientRect();r.value=v.width,a.value=v.height}}else if(p){const f=Ha(p);r.value=f.reduce((v,{inlineSize:g})=>v+g,0),a.value=f.reduce((v,{blockSize:g})=>v+g,0)}else r.value=d.contentRect.width,a.value=d.contentRect.height},n);b2(()=>{const d=Ao(t);if(d&&"offsetWidth"in d)if(o==="content-box"&&i){const p=i.getComputedStyle(d),f=Number.parseFloat(p.paddingLeft)+Number.parseFloat(p.paddingRight),v=Number.parseFloat(p.paddingTop)+Number.parseFloat(p.paddingBottom),g=Number.parseFloat(p.borderLeftWidth)+Number.parseFloat(p.borderRightWidth),w=Number.parseFloat(p.borderTopWidth)+Number.parseFloat(p.borderBottomWidth);r.value=d.offsetWidth-f-g,a.value=d.offsetHeight-v-w}else r.value=d.offsetWidth,a.value=d.offsetHeight;else d&&(r.value=e.width,a.value=e.height)});const c=ke(()=>Ao(t),d=>{r.value=d?e.width:0,a.value=d?e.height:0});function u(){l(),c()}return{width:r,height:a,stop:u}}function T2(t,e={}){const{threshold:n=50,onSwipe:i,onSwipeEnd:o,onSwipeStart:s,passive:r=!0}=e,a=xs({x:0,y:0}),l=xs({x:0,y:0}),c=rt(()=>a.x-l.x),u=rt(()=>a.y-l.y),{max:d,abs:p}=Math,f=rt(()=>d(p(c.value),p(u.value))>=n),v=rn(!1),g=rt(()=>f.value?p(c.value)>p(u.value)?c.value>0?"left":"right":u.value>0?"up":"down":"none"),w=F=>[F.touches[0].clientX,F.touches[0].clientY],b=(F,j)=>{a.x=F,a.y=j},S=(F,j)=>{l.x=F,l.y=j},D={passive:r,capture:!r},k=F=>{v.value&&o?.(F,g.value),v.value=!1},N=[Wa(t,"touchstart",F=>{if(F.touches.length!==1)return;const[j,I]=w(F);b(j,I),S(j,I),s?.(F)},D),Wa(t,"touchmove",F=>{if(F.touches.length!==1)return;const[j,I]=w(F);S(j,I),D.capture&&!D.passive&&Math.abs(c.value)>Math.abs(u.value)&&F.preventDefault(),!v.value&&f.value&&(v.value=!0),v.value&&i?.(F)},D),Wa(t,["touchend","touchcancel"],k,D)];return{isSwiping:v,direction:g,coordsStart:a,coordsEnd:l,lengthX:c,lengthY:u,stop:()=>N.forEach(F=>F())}}const D2=["aria-label"],O2=["width","height"],$2=["fill"],R2=["fill"],B2={key:0},P2=Et({__name:"NcLoadingIcon",props:{appearance:{default:"auto"},name:{default:""},size:{default:20}},setup(t){const e=t,n=rt(()=>{const i=["#777","#CCC"];return e.appearance==="light"?i:e.appearance==="dark"?i.reverse():["var(--color-loading-light)","var(--color-loading-dark)"]});return(i,o)=>(C(),R("span",{"aria-label":t.name,role:"img",class:"material-design-icon loading-icon"},[(C(),R("svg",{width:t.size,height:t.size,viewBox:"0 0 24 24"},[y("path",{fill:n.value[0],d:"M12,4V2A10,10 0 1,0 22,12H20A8,8 0 1,1 12,4Z"},null,8,$2),y("path",{fill:n.value[1],d:"M12,4V2A10,10 0 0,1 22,12H20A8,8 0 0,0 12,4Z"},[t.name?(C(),R("title",B2,A(t.name),1)):st("",!0)],8,R2)],8,O2))],8,D2))}}),b1=pe(P2,[["__scopeId","data-v-cf399190"]]);Go(u2);const N2=Et({__name:"NcDialogButton",props:{callback:{type:Function,default:()=>{}},disabled:{type:Boolean,default:!1},icon:{default:void 0},label:{},type:{default:"button"},variant:{default:"tertiary"}},emits:["click"],setup(t,{emit:e}){const n=t,i=e,o=Rt(!1);async function s(r){if(!o.value){o.value=!0;try{const a=n.type==="reset"?!1:void 0,l=await n.callback?.()??a;l!==!1&&i("click",r,l)}finally{o.value=!1}}}return(r,a)=>(C(),ct(E(Se),{"aria-label":t.label,disabled:t.disabled,type:t.type,variant:t.variant,onClick:s},{icon:dt(()=>[kt(r.$slots,"icon",{},()=>[o.value?(C(),ct(E(b1),{key:0,name:E(de)("Loading …")},null,8,["name"])):t.icon!==void 0?(C(),ct(E(Pe),{key:1,svg:t.icon},null,8,["svg"])):st("",!0)])]),default:dt(()=>[bt(A(t.label)+" ",1)]),_:3},8,["aria-label","disabled","type","variant"]))}});var _1=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","area[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],ml=_1.join(","),w1=typeof Element>"u",jo=w1?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,vl=!w1&&Element.prototype.getRootNode?function(t){var e;return t==null||(e=t.getRootNode)===null||e===void 0?void 0:e.call(t)}:function(t){return t?.ownerDocument},yl=function(t,e){var n;e===void 0&&(e=!0);var i=t==null||(n=t.getAttribute)===null||n===void 0?void 0:n.call(t,"inert"),o=i===""||i==="true",s=o||e&&t&&(typeof t.closest=="function"?t.closest("[inert]"):yl(t.parentNode));return s},L2=function(t){var e,n=t==null||(e=t.getAttribute)===null||e===void 0?void 0:e.call(t,"contenteditable");return n===""||n==="true"},x1=function(t,e,n){if(yl(t))return[];var i=Array.prototype.slice.apply(t.querySelectorAll(ml));return e&&jo.call(t,ml)&&i.unshift(t),i=i.filter(n),i},bl=function(t,e,n){for(var i=[],o=Array.from(t);o.length;){var s=o.shift();if(!yl(s,!1))if(s.tagName==="SLOT"){var r=s.assignedElements(),a=r.length?r:s.children,l=bl(a,!0,n);n.flatten?i.push.apply(i,l):i.push({scopeParent:s,candidates:l})}else{var c=jo.call(s,ml);c&&n.filter(s)&&(e||!t.includes(s))&&i.push(s);var u=s.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(s),d=!yl(u,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(s));if(u&&d){var p=bl(u===!0?s.children:u.children,!0,n);n.flatten?i.push.apply(i,p):i.push({scopeParent:s,candidates:p})}else o.unshift.apply(o,s.children)}}return i},E1=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},Co=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||L2(t))&&!E1(t)?0:t.tabIndex},F2=function(t,e){var n=Co(t);return n<0&&e&&!E1(t)?0:n},V2=function(t,e){return t.tabIndex===e.tabIndex?t.documentOrder-e.documentOrder:t.tabIndex-e.tabIndex},C1=function(t){return t.tagName==="INPUT"},j2=function(t){return C1(t)&&t.type==="hidden"},U2=function(t){var e=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(n){return n.tagName==="SUMMARY"});return e},I2=function(t,e){for(var n=0;nsummary:first-of-type"),l=a?t.parentElement:t;if(jo.call(l,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof i=="function"){for(var c=t;t;){var u=t.parentElement,d=vl(t);if(u&&!u.shadowRoot&&i(u)===!0)return Qp(t);t.assignedSlot?t=t.assignedSlot:!u&&d!==t.ownerDocument?t=d.host:t=u}t=c}if(J2(t))return!t.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return Qp(t);return!1},K2=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if(e.tagName==="FIELDSET"&&e.disabled){for(var n=0;n=0)},S1=function(t){var e=[],n=[];return t.forEach(function(i,o){var s=!!i.scopeParent,r=s?i.scopeParent:i,a=F2(r,s),l=s?S1(i.candidates):r;a===0?s?e.push.apply(e,l):e.push(r):n.push({documentOrder:o,tabIndex:a,item:i,isScope:s,content:l})}),n.sort(V2).reduce(function(i,o){return o.isScope?i.push.apply(i,o.content):i.push(o.content),i},[]).concat(e)},X2=function(t,e){e=e||{};var n;return e.getShadowRoot?n=bl([t],e.includeContainer,{filter:td.bind(null,e),flatten:!1,getShadowRoot:e.getShadowRoot,shadowRootFilter:q2}):n=x1(t,e.includeContainer,td.bind(null,e)),S1(n)},Y2=function(t,e){e=e||{};var n;return e.getShadowRoot?n=bl([t],e.includeContainer,{filter:_l.bind(null,e),flatten:!0,getShadowRoot:e.getShadowRoot}):n=x1(t,e.includeContainer,_l.bind(null,e)),n},ns=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return jo.call(t,ml)===!1?!1:td(e,t)},Z2=_1.concat("iframe:not([inert]):not([inert] *)").join(","),nc=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return jo.call(t,Z2)===!1?!1:_l(e,t)};function ed(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s,r=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var l=n.next();return r=l.done,l},e:function(l){a=!0,s=l},f:function(){try{r||n.return==null||n.return()}finally{if(a)throw s}}}}function M2(t,e,n){return(e=oE(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function tE(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function eE(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tf(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,i)}return n}function ef(t){for(var e=1;e0?t[t.length-1]:null},activateTrap:function(t,e){var n=_i.getActiveTrap(t);e!==n&&_i.pauseTrap(t);var i=t.indexOf(e);i===-1||t.splice(i,1),t.push(e)},deactivateTrap:function(t,e){var n=t.indexOf(e);n!==-1&&t.splice(n,1),_i.unpauseTrap(t)},pauseTrap:function(t){var e=_i.getActiveTrap(t);e?._setPausedState(!0)},unpauseTrap:function(t){var e=_i.getActiveTrap(t);e&&!e._isManuallyPaused()&&e._setPausedState(!1)}},sE=function(t){return t.tagName&&t.tagName.toLowerCase()==="input"&&typeof t.select=="function"},rE=function(t){return t?.key==="Escape"||t?.key==="Esc"||t?.keyCode===27},dr=function(t){return t?.key==="Tab"||t?.keyCode===9},aE=function(t){return dr(t)&&!t.shiftKey},lE=function(t){return dr(t)&&t.shiftKey},nf=function(t){return setTimeout(t,0)},Js=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i1&&arguments[1]!==void 0?arguments[1]:{},M=U.hasFallback,nt=M===void 0?!1:M,et=U.params,ut=et===void 0?[]:et,ht=o[$];if(typeof ht=="function"&&(ht=ht.apply(void 0,nE(ut))),ht===!0&&(ht=void 0),!ht){if(ht===void 0||ht===!1)return ht;throw new Error("`".concat($,"` was specified but was not a node, or did not return a node"))}var mt=ht;if(typeof ht=="string"){try{mt=n.querySelector(ht)}catch(vt){throw new Error("`".concat($,'` appears to be an invalid selector; error="').concat(vt.message,'"'))}if(!mt&&!nt)throw new Error("`".concat($,"` as selector refers to no known node"))}return mt},u=function($){var U=$.activeElement;return U?U.shadowRoot&&U.shadowRoot.activeElement!==null?u(U.shadowRoot):U:null},d=function(){var $=c("initialFocus",{hasFallback:!0});if($===!1)return!1;if($===void 0||$&&!nc($,o.tabbableOptions)){var U=u(n);if(l(U)>=0)$=U;else{var M=s.tabbableGroups[0],nt=M&&M.firstTabbableNode;$=nt||c("fallbackFocus")}}else $===null&&($=c("fallbackFocus"));if(!$)throw new Error("Your focus-trap needs to have at least one focusable element");return $},p=function(){if(s.containerGroups=s.containers.map(function($){var U=X2($,o.tabbableOptions),M=Y2($,o.tabbableOptions),nt=U.length>0?U[0]:void 0,et=U.length>0?U[U.length-1]:void 0,ut=M.find(function(vt){return ns(vt)}),ht=M.slice().reverse().find(function(vt){return ns(vt)}),mt=!!U.find(function(vt){return Co(vt)>0});return{container:$,tabbableNodes:U,focusableNodes:M,posTabIndexesFound:mt,firstTabbableNode:nt,lastTabbableNode:et,firstDomTabbableNode:ut,lastDomTabbableNode:ht,nextTabbableNode:function(vt){var Tt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Ft=U.indexOf(vt);return Ft<0?Tt?M.slice(M.indexOf(vt)+1).find(function(Xt){return ns(Xt)}):M.slice(0,M.indexOf(vt)).reverse().find(function(Xt){return ns(Xt)}):U[Ft+(Tt?1:-1)]}}}),s.tabbableGroups=s.containerGroups.filter(function($){return $.tabbableNodes.length>0}),s.tabbableGroups.length<=0&&!c("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(s.containerGroups.find(function($){return $.posTabIndexesFound})&&s.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},f=function($){if($!==!1&&$!==u(document)){if(!$||!$.focus){f(d());return}$.focus({preventScroll:!!o.preventScroll}),s.mostRecentlyFocusedNode=$,sE($)&&$.select()}},v=function($){var U=c("setReturnFocus",{params:[$]});return U||(U===!1?!1:$)},g=function($){var U=$.target,M=$.event,nt=$.isBackward,et=nt===void 0?!1:nt;U=U||va(M),p();var ut=null;if(s.tabbableGroups.length>0){var ht=l(U,M),mt=ht>=0?s.containerGroups[ht]:void 0;if(ht<0)et?ut=s.tabbableGroups[s.tabbableGroups.length-1].lastTabbableNode:ut=s.tabbableGroups[0].firstTabbableNode;else if(et){var vt=s.tabbableGroups.findIndex(function(Dt){var oe=Dt.firstTabbableNode;return U===oe});if(vt<0&&(mt.container===U||nc(U,o.tabbableOptions)&&!ns(U,o.tabbableOptions)&&!mt.nextTabbableNode(U,!1))&&(vt=ht),vt>=0){var Tt=vt===0?s.tabbableGroups.length-1:vt-1,Ft=s.tabbableGroups[Tt];ut=Co(U)>=0?Ft.lastTabbableNode:Ft.lastDomTabbableNode}else dr(M)||(ut=mt.nextTabbableNode(U,!1))}else{var Xt=s.tabbableGroups.findIndex(function(Dt){var oe=Dt.lastTabbableNode;return U===oe});if(Xt<0&&(mt.container===U||nc(U,o.tabbableOptions)&&!ns(U,o.tabbableOptions)&&!mt.nextTabbableNode(U))&&(Xt=ht),Xt>=0){var Vt=Xt===s.tabbableGroups.length-1?0:Xt+1,wt=s.tabbableGroups[Vt];ut=Co(U)>=0?wt.firstTabbableNode:wt.firstDomTabbableNode}else dr(M)||(ut=mt.nextTabbableNode(U))}}else ut=c("fallbackFocus");return ut},w=function($){var U=va($);if(!(l(U,$)>=0)){if(Js(o.clickOutsideDeactivates,$)){r.deactivate({returnFocus:o.returnFocusOnDeactivate});return}Js(o.allowOutsideClick,$)||$.preventDefault()}},b=function($){var U=va($),M=l(U,$)>=0;if(M||U instanceof Document)M&&(s.mostRecentlyFocusedNode=U);else{$.stopImmediatePropagation();var nt,et=!0;if(s.mostRecentlyFocusedNode)if(Co(s.mostRecentlyFocusedNode)>0){var ut=l(s.mostRecentlyFocusedNode),ht=s.containerGroups[ut].tabbableNodes;if(ht.length>0){var mt=ht.findIndex(function(vt){return vt===s.mostRecentlyFocusedNode});mt>=0&&(o.isKeyForward(s.recentNavEvent)?mt+1=0&&(nt=ht[mt-1],et=!1))}}else s.containerGroups.some(function(vt){return vt.tabbableNodes.some(function(Tt){return Co(Tt)>0})})||(et=!1);else et=!1;et&&(nt=g({target:s.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(s.recentNavEvent)})),f(nt||s.mostRecentlyFocusedNode||d())}s.recentNavEvent=void 0},S=function($){var U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;s.recentNavEvent=$;var M=g({event:$,isBackward:U});M&&(dr($)&&$.preventDefault(),f(M))},D=function($){(o.isKeyForward($)||o.isKeyBackward($))&&S($,o.isKeyBackward($))},k=function($){rE($)&&Js(o.escapeDeactivates,$)!==!1&&($.preventDefault(),r.deactivate())},N=function($){var U=va($);l(U,$)>=0||Js(o.clickOutsideDeactivates,$)||Js(o.allowOutsideClick,$)||($.preventDefault(),$.stopImmediatePropagation())},F=function(){if(s.active){_i.activateTrap(i,r);var $;return o.delayInitialFocus?$=new Promise(function(U){s.delayInitialFocusTimer=nf(function(){f(d()),U()})}):f(d()),n.addEventListener("focusin",b,!0),n.addEventListener("mousedown",w,{capture:!0,passive:!1}),n.addEventListener("touchstart",w,{capture:!0,passive:!1}),n.addEventListener("click",N,{capture:!0,passive:!1}),n.addEventListener("keydown",D,{capture:!0,passive:!1}),n.addEventListener("keydown",k),$}},j=function($){s.active&&!s.paused&&r._setSubtreeIsolation(!1),s.adjacentElements.clear(),s.alreadySilent.clear();var U=new Set,M=new Set,nt=Mp($),et;try{for(nt.s();!(et=nt.n()).done;){var ut=et.value;U.add(ut);for(var ht=typeof ShadowRoot<"u"&&ut.getRootNode()instanceof ShadowRoot,mt=ut;mt;){U.add(mt);var vt=mt.parentElement,Tt=[];vt?Tt=vt.children:!vt&&ht&&(Tt=mt.getRootNode().children,vt=mt.getRootNode().host,ht=typeof ShadowRoot<"u"&&vt.getRootNode()instanceof ShadowRoot);var Ft=Mp(Tt),Xt;try{for(Ft.s();!(Xt=Ft.n()).done;){var Vt=Xt.value;M.add(Vt)}}catch(wt){Ft.e(wt)}finally{Ft.f()}mt=vt}}}catch(wt){nt.e(wt)}finally{nt.f()}U.forEach(function(wt){M.delete(wt)}),s.adjacentElements=M},I=function(){if(s.active)return n.removeEventListener("focusin",b,!0),n.removeEventListener("mousedown",w,!0),n.removeEventListener("touchstart",w,!0),n.removeEventListener("click",N,!0),n.removeEventListener("keydown",D,!0),n.removeEventListener("keydown",k),r},X=function($){var U=s.mostRecentlyFocusedNode;if(U){var M=$.some(function(et){var ut=Array.from(et.removedNodes);return ut.some(function(ht){return ht===U||typeof ht.contains=="function"&&ht.contains(U)})});if(M&&s.containers.some(function(et){return et?.isConnected})){p();var nt=d();f(nt)}}},W=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(X):void 0,Y=function(){W&&(W.disconnect(),s.active&&!s.paused&&s.containers.map(function($){W.observe($,{subtree:!0,childList:!0})}))};return r={get active(){return s.active},get paused(){return s.paused},activate:function($){if(s.active)return this;var U=a($,"onActivate"),M=a($,"onPostActivate"),nt=a($,"checkCanFocusTrap"),et=_i.getActiveTrap(i),ut=!1;if(et&&!et.paused){var ht;(ht=et._setSubtreeIsolation)===null||ht===void 0||ht.call(et,!1),ut=!0}try{nt||p(),s.active=!0,s.paused=!1,s.nodeFocusedBeforeActivation=u(n),U?.({trap:r});var mt=function(){nt&&p();var Tt=function(){r._setSubtreeIsolation(!0),Y(),M?.({trap:r})},Ft=F();Ft?Ft.then(Tt):Tt()};if(nt)return nt(s.containers.concat()).then(mt,mt),this;mt()}catch(Tt){if(et===_i.getActiveTrap(i)&&ut){var vt;(vt=et._setSubtreeIsolation)===null||vt===void 0||vt.call(et,!0)}throw Tt}return this},deactivate:function($){if(!s.active)return this;var U=ef({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},$);clearTimeout(s.delayInitialFocusTimer),s.delayInitialFocusTimer=void 0,s.paused||r._setSubtreeIsolation(!1),s.alreadySilent.clear(),I(),s.active=!1,s.paused=!1,Y(),_i.deactivateTrap(i,r);var M=a(U,"onDeactivate"),nt=a(U,"onPostDeactivate"),et=a(U,"checkCanReturnFocus"),ut=a(U,"delayReturnFocus"),ht=a(U,"returnFocus","returnFocusOnDeactivate");M?.({trap:r});var mt=function(){ht&&f(v(s.nodeFocusedBeforeActivation)),nt?.({trap:r})},vt=function(){ut&&ht?nf(mt):mt()};return ht&&et?(et(v(s.nodeFocusedBeforeActivation)).then(vt,vt),this):(vt(),this)},pause:function($){return s.active?(s.manuallyPaused=!0,this._setPausedState(!0,$)):this},unpause:function($){return s.active?(s.manuallyPaused=!1,i[i.length-1]!==this?this:this._setPausedState(!1,$)):this},updateContainerElements:function($){var U=[].concat($).filter(Boolean);return s.containers=U.map(function(M){return typeof M=="string"?n.querySelector(M):M}),o.isolateSubtrees&&j(s.containers),s.active&&(p(),s.paused||r._setSubtreeIsolation(!0)),Y(),this}},Object.defineProperties(r,{_isManuallyPaused:{value:function(){return s.manuallyPaused}},_setPausedState:{value:function($,U){if(s.paused===$)return this;if(s.paused=$,$){var M=a(U,"onPause"),nt=a(U,"onPostPause");M?.({trap:r}),I(),r._setSubtreeIsolation(!1),Y(),nt?.({trap:r})}else{var et=a(U,"onUnpause"),ut=a(U,"onPostUnpause");et?.({trap:r});var ht=function(){p();var mt=function(){r._setSubtreeIsolation(!0),Y(),ut?.({trap:r})},vt=F();vt?vt.then(mt):mt()};ht()}return this}},_setSubtreeIsolation:{value:function($){o.isolateSubtrees&&s.adjacentElements.forEach(function(U){var M;$?o.isolateSubtrees==="aria-hidden"?((U.ariaHidden==="true"||((M=U.getAttribute("aria-hidden"))===null||M===void 0?void 0:M.toLowerCase())==="true")&&s.alreadySilent.add(U),U.setAttribute("aria-hidden","true")):((U.inert||U.hasAttribute("inert"))&&s.alreadySilent.add(U),U.setAttribute("inert",!0)):s.alreadySilent.has(U)||(o.isolateSubtrees==="aria-hidden"?U.removeAttribute("aria-hidden"):U.removeAttribute("inert"))})}}}),r.updateContainerElements(t),r};function Rr(){return window._nc_focus_trap??=[],window._nc_focus_trap}function cE(){let t=[];return{pause(){t=[...Rr()];for(const e of t)e.pause()},unpause(){if(t.length===Rr().length)for(const e of t)e.unpause();t=[]}}}function dE(t,e={}){const n=cE();ke(t,()=>{tn(e.disabled)||(tn(t)?n.pause():n.unpause())}),Dn(()=>{n.unpause()})}const hE=["top","right","bottom","left"],of=["start","end"],sf=hE.reduce((t,e)=>t.concat(e,e+"-"+of[0],e+"-"+of[1]),[]),Mi=Math.min,Ai=Math.max,wl=Math.round,ya=Math.floor,ki=t=>({x:t,y:t}),pE={left:"right",right:"left",bottom:"top",top:"bottom"};function T1(t,e,n){return Ai(t,Mi(e,n))}function $i(t,e){return typeof t=="function"?t(e):t}function si(t){return t.split("-")[0]}function Nn(t){return t.split("-")[1]}function Id(t){return t==="x"?"y":"x"}function zd(t){return t==="y"?"height":"width"}function ti(t){const e=t[0];return e==="t"||e==="b"?"y":"x"}function Hd(t){return Id(ti(t))}function D1(t,e,n){n===void 0&&(n=!1);const i=Nn(t),o=Hd(t),s=zd(o);let r=o==="x"?i===(n?"end":"start")?"right":"left":i==="start"?"bottom":"top";return e.reference[s]>e.floating[s]&&(r=El(r)),[r,El(r)]}function fE(t){const e=El(t);return[xl(t),e,xl(e)]}function xl(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const rf=["left","right"],af=["right","left"],gE=["top","bottom"],mE=["bottom","top"];function vE(t,e,n){switch(t){case"top":case"bottom":return n?e?af:rf:e?rf:af;case"left":case"right":return e?gE:mE;default:return[]}}function yE(t,e,n,i){const o=Nn(t);let s=vE(si(t),n==="start",i);return o&&(s=s.map(r=>r+"-"+o),e&&(s=s.concat(s.map(xl)))),s}function El(t){const e=si(t);return pE[e]+t.slice(e.length)}function bE(t){var e,n,i,o;return{top:(e=t.top)!=null?e:0,right:(n=t.right)!=null?n:0,bottom:(i=t.bottom)!=null?i:0,left:(o=t.left)!=null?o:0}}function O1(t){return typeof t!="number"?bE(t):{top:t,right:t,bottom:t,left:t}}function Lo(t){const{x:e,y:n,width:i,height:o}=t;return{width:i,height:o,top:n,left:e,right:e+i,bottom:n+o,x:e,y:n}}function lf(t,e,n){let{reference:i,floating:o}=t;const s=ti(e),r=Hd(e),a=zd(r),l=si(e),c=s==="y",u=i.x+i.width/2-o.width/2,d=i.y+i.height/2-o.height/2,p=i[a]/2-o[a]/2;let f;switch(l){case"top":f={x:u,y:i.y-o.height};break;case"bottom":f={x:u,y:i.y+i.height};break;case"right":f={x:i.x+i.width,y:d};break;case"left":f={x:i.x-o.width,y:d};break;default:f={x:i.x,y:i.y}}const v=Nn(e);return v&&(f[r]+=p*(v==="end"?1:-1)*(n&&c?-1:1)),f}async function _E(t,e){var n;e===void 0&&(e={});const{x:i,y:o,platform:s,rects:r,elements:a,strategy:l}=t,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:p=!1,padding:f=0}=$i(e,t),v=O1(f),g=a[p?d==="floating"?"reference":"floating":d],w=Lo(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(g)))==null||n?g:g.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(a.floating)),boundary:c,rootBoundary:u,strategy:l})),b=d==="floating"?{x:i,y:o,width:r.floating.width,height:r.floating.height}:r.reference,S=await(s.getOffsetParent==null?void 0:s.getOffsetParent(a.floating)),D=await(s.isElement==null?void 0:s.isElement(S))&&await(s.getScale==null?void 0:s.getScale(S))||{x:1,y:1},k=Lo(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:b,offsetParent:S,strategy:l}):b);return{top:(w.top-k.top+v.top)/D.y,bottom:(k.bottom-w.bottom+v.bottom)/D.y,left:(w.left-k.left+v.left)/D.x,right:(k.right-w.right+v.right)/D.x}}const wE=50,$1=async(t,e,n)=>{const{placement:i="bottom",strategy:o="absolute",middleware:s=[],platform:r}=n,a=r.detectOverflow?r:{...r,detectOverflow:_E},l=await(r.isRTL==null?void 0:r.isRTL(e));let c=await r.getElementRects({reference:t,floating:e,strategy:o}),{x:u,y:d}=lf(c,i,l),p=i,f=0;const v={};for(let g=0;g({name:"arrow",options:t,async fn(e){const{x:n,y:i,placement:o,rects:s,platform:r,elements:a,middlewareData:l}=e,{element:c,padding:u=0}=$i(t,e)||{};if(c==null)return{};const d=O1(u),p={x:n,y:i},f=Hd(o),v=zd(f),g=await r.getDimensions(c),w=f==="y",b=w?"top":"left",S=w?"bottom":"right",D=w?"clientHeight":"clientWidth",k=s.reference[v]+s.reference[f]-p[f]-s.floating[v],N=p[f]-s.reference[f],F=await(r.getOffsetParent==null?void 0:r.getOffsetParent(c));let j=F?F[D]:0;(!j||!await(r.isElement==null?void 0:r.isElement(F)))&&(j=a.floating[D]||s.floating[v]);const I=k/2-N/2,X=j/2-g[v]/2-1,W=Mi(d[b],X),Y=Mi(d[S],X),$=j-g[v]-Y,U=j/2-g[v]/2+I,M=T1(W,U,$),nt=!l.arrow&&Nn(o)!=null&&U!==M&&s.reference[v]/2-(UNn(i)===t),...n.filter(i=>Nn(i)!==t)]:n.filter(i=>si(i)===i)).filter(i=>t?Nn(i)===t||(e?xl(i)!==i:!1):!0)}const CE=function(t){return t===void 0&&(t={}),{name:"autoPlacement",options:t,async fn(e){var n,i,o;const{rects:s,middlewareData:r,placement:a,platform:l,elements:c}=e,{crossAxis:u=!1,alignment:d,allowedPlacements:p=sf,autoAlignment:f=!0,...v}=$i(t,e),g=d!==void 0||p===sf?EE(d||null,f,p):p,w=((n=r.autoPlacement)==null?void 0:n.index)||0,b=g[w];if(b==null)return{};if(a!==b)return{reset:{placement:g[0]}};const S=await l.detectOverflow(e,v),D=D1(b,s,await(l.isRTL==null?void 0:l.isRTL(c.floating))),k=[S[si(b)],S[D[0]],S[D[1]]],N=[...((i=r.autoPlacement)==null?void 0:i.overflows)||[],{placement:b,overflows:k}],F=g[w+1];if(F)return{data:{index:w+1,overflows:N},reset:{placement:F}};const j=N.map(X=>{const W=Nn(X.placement);return[X.placement,W&&u?X.overflows.slice(0,2).reduce((Y,$)=>Y+$,0):X.overflows[0],X.overflows]}).sort((X,W)=>X[1]-W[1]),I=((o=j.filter(X=>X[2].slice(0,Nn(X[0])?2:3).every(W=>W<=0))[0])==null?void 0:o[0])||j[0][0];return I!==a?{data:{index:w+1,overflows:N},reset:{placement:I}}:{}}}},R1=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,i;const{placement:o,middlewareData:s,rects:r,initialPlacement:a,platform:l,elements:c}=e,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:p,fallbackStrategy:f="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:g=!0,...w}=$i(t,e);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const b=si(o),S=ti(a),D=si(a)===a,k=await(l.isRTL==null?void 0:l.isRTL(c.floating)),N=p||(D||!g?[El(a)]:fE(a)),F=v!=="none";!p&&F&&N.push(...yE(a,g,v,k));const j=[a,...N],I=await l.detectOverflow(e,w),X=[];let W=((i=s.flip)==null?void 0:i.overflows)||[];if(u&&X.push(I[b]),d){const M=D1(o,r,k);X.push(I[M[0]],I[M[1]])}if(W=[...W,{placement:o,overflows:X}],!X.every(M=>M<=0)){var Y,$;const M=(((Y=s.flip)==null?void 0:Y.index)||0)+1,nt=j[M];if(nt&&(!(d==="alignment"&&S!==ti(nt))||W.every(ut=>ti(ut.placement)===S?ut.overflows[0]>0:!0)))return{data:{index:M,overflows:W},reset:{placement:nt}};let et=($=W.filter(ut=>ut.overflows[0]<=0).sort((ut,ht)=>ut.overflows[1]-ht.overflows[1])[0])==null?void 0:$.placement;if(!et)switch(f){case"bestFit":{var U;const ut=(U=W.filter(ht=>{if(F){const mt=ti(ht.placement);return mt===S||mt==="y"}return!0}).map(ht=>[ht.placement,ht.overflows.filter(mt=>mt>0).reduce((mt,vt)=>mt+vt,0)]).sort((ht,mt)=>ht[1]-mt[1])[0])==null?void 0:U[0];ut&&(et=ut);break}case"initialPlacement":et=a;break}if(o!==et)return{reset:{placement:et}}}return{}}}},B1=new Set(["left","top"]);async function SE(t,e){const{placement:n,platform:i,elements:o}=t,s=await(i.isRTL==null?void 0:i.isRTL(o.floating)),r=si(n),a=Nn(n),l=ti(n)==="y",c=B1.has(r)?-1:1,u=s&&l?-1:1,d=$i(e,t);let{mainAxis:p,crossAxis:f,alignmentAxis:v}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return a&&typeof v=="number"&&(f=a==="end"?v*-1:v),l?{x:f*u,y:p*c}:{x:p*c,y:f*u}}const P1=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,i;const{x:o,y:s,placement:r,middlewareData:a}=e,l=await SE(e,t);return r===((n=a.offset)==null?void 0:n.placement)&&(i=a.arrow)!=null&&i.alignmentOffset?{}:{x:o+l.x,y:s+l.y,data:{...l,placement:r}}}}},N1=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:i,placement:o,platform:s}=e,{mainAxis:r=!0,crossAxis:a=!1,limiter:l={fn:S=>{let{x:D,y:k}=S;return{x:D,y:k}}},...c}=$i(t,e),u={x:n,y:i},d=await s.detectOverflow(e,c),p=ti(o),f=Id(p);let v=u[f],g=u[p];const w=(S,D)=>T1(D+d[S==="y"?"top":"left"],D,D-d[S==="y"?"bottom":"right"]);r&&(v=w(f,v)),a&&(g=w(p,g));const b=l.fn({...e,[f]:v,[p]:g});return{...b,data:{x:b.x-n,y:b.y-i,enabled:{[f]:r,[p]:a}}}}}},AE=function(t){return t===void 0&&(t={}),{options:t,fn(e){var n,i;const{x:o,y:s,placement:r,rects:a,middlewareData:l}=e,{offset:c=0,mainAxis:u=!0,crossAxis:d=!0}=$i(t,e),p={x:o,y:s},f=ti(r),v=Id(f);let g=p[v],w=p[f];const b=$i(c,e),S=typeof b=="number"?{mainAxis:b,crossAxis:0}:{mainAxis:(n=b.mainAxis)!=null?n:0,crossAxis:(i=b.crossAxis)!=null?i:0};if(u){const N=v==="y"?"height":"width",F=a.reference[v]-a.floating[N]+S.mainAxis,j=a.reference[v]+a.reference[N]-S.mainAxis;gj&&(g=j)}if(d){var D,k;const N=v==="y"?"width":"height",F=B1.has(si(r)),j=a.reference[f]-a.floating[N]+(F&&((D=l.offset)==null?void 0:D[f])||0)+(F?0:S.crossAxis),I=a.reference[f]+a.reference[N]+(F?0:((k=l.offset)==null?void 0:k[f])||0)-(F?S.crossAxis:0);wI&&(w=I)}return{[v]:g,[f]:w}}}},kE=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){const{placement:n,rects:i,platform:o,elements:s}=e,{apply:r=()=>{},...a}=$i(t,e),l=await o.detectOverflow(e,a),c=si(n),u=Nn(n),d=ti(n)==="y",{width:p,height:f}=i.floating;let v,g;c==="top"||c==="bottom"?(v=c,g=u===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?"start":"end")?"left":"right"):(g=c,v=u==="end"?"top":"bottom");const w=f-l.top-l.bottom,b=p-l.left-l.right,S=Mi(f-l[v],w),D=Mi(p-l[g],b),k=e.middlewareData.shift,N=!k;let F=S,j=D;k!=null&&k.enabled.x&&(j=b),k!=null&&k.enabled.y&&(F=w),N&&!u&&(d?j=p-2*Ai(l.left,l.right):F=f-2*Ai(l.top,l.bottom)),await r({...e,availableWidth:j,availableHeight:F});const I=await o.getDimensions(s.floating);return p!==I.width||f!==I.height?{reset:{rects:!0}}:{}}}};function An(t){var e;return((e=t.ownerDocument)==null?void 0:e.defaultView)||window}function ei(t){return An(t).getComputedStyle(t)}const uf=Math.min,hr=Math.max,Cl=Math.round;function L1(t){const e=ei(t);let n=parseFloat(e.width),i=parseFloat(e.height);const o=t.offsetWidth,s=t.offsetHeight,r=Cl(n)!==o||Cl(i)!==s;return r&&(n=o,i=s),{width:n,height:i,fallback:r}}function to(t){return V1(t)?(t.nodeName||"").toLowerCase():""}let ba;function F1(){if(ba)return ba;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(ba=t.brands.map((e=>e.brand+"/"+e.version)).join(" "),ba):navigator.userAgent}function ni(t){return t instanceof An(t).HTMLElement}function Ki(t){return t instanceof An(t).Element}function V1(t){return t instanceof An(t).Node}function cf(t){return typeof ShadowRoot>"u"?!1:t instanceof An(t).ShadowRoot||t instanceof ShadowRoot}function cu(t){const{overflow:e,overflowX:n,overflowY:i,display:o}=ei(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&!["inline","contents"].includes(o)}function TE(t){return["table","td","th"].includes(to(t))}function nd(t){const e=/firefox/i.test(F1()),n=ei(t),i=n.backdropFilter||n.WebkitBackdropFilter;return n.transform!=="none"||n.perspective!=="none"||!!i&&i!=="none"||e&&n.willChange==="filter"||e&&!!n.filter&&n.filter!=="none"||["transform","perspective"].some((o=>n.willChange.includes(o)))||["paint","layout","strict","content"].some((o=>{const s=n.contain;return s!=null&&s.includes(o)}))}function j1(){return!/^((?!chrome|android).)*safari/i.test(F1())}function Wd(t){return["html","body","#document"].includes(to(t))}function U1(t){return Ki(t)?t:t.contextElement}const I1={x:1,y:1};function vs(t){const e=U1(t);if(!ni(e))return I1;const n=e.getBoundingClientRect(),{width:i,height:o,fallback:s}=L1(e);let r=(s?Cl(n.width):n.width)/i,a=(s?Cl(n.height):n.height)/o;return r&&Number.isFinite(r)||(r=1),a&&Number.isFinite(a)||(a=1),{x:r,y:a}}function Br(t,e,n,i){var o,s;e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),a=U1(t);let l=I1;e&&(i?Ki(i)&&(l=vs(i)):l=vs(t));const c=a?An(a):window,u=!j1()&&n;let d=(r.left+(u&&((o=c.visualViewport)==null?void 0:o.offsetLeft)||0))/l.x,p=(r.top+(u&&((s=c.visualViewport)==null?void 0:s.offsetTop)||0))/l.y,f=r.width/l.x,v=r.height/l.y;if(a){const g=An(a),w=i&&Ki(i)?An(i):i;let b=g.frameElement;for(;b&&i&&w!==g;){const S=vs(b),D=b.getBoundingClientRect(),k=getComputedStyle(b);D.x+=(b.clientLeft+parseFloat(k.paddingLeft))*S.x,D.y+=(b.clientTop+parseFloat(k.paddingTop))*S.y,d*=S.x,p*=S.y,f*=S.x,v*=S.y,d+=D.x,p+=D.y,b=An(b).frameElement}}return{width:f,height:v,top:p,right:d+f,bottom:p+v,left:d,x:d,y:p}}function qi(t){return((V1(t)?t.ownerDocument:t.document)||window.document).documentElement}function du(t){return Ki(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function z1(t){return Br(qi(t)).left+du(t).scrollLeft}function Pr(t){if(to(t)==="html")return t;const e=t.assignedSlot||t.parentNode||cf(t)&&t.host||qi(t);return cf(e)?e.host:e}function H1(t){const e=Pr(t);return Wd(e)?e.ownerDocument.body:ni(e)&&cu(e)?e:H1(e)}function Sl(t,e){var n;e===void 0&&(e=[]);const i=H1(t),o=i===((n=t.ownerDocument)==null?void 0:n.body),s=An(i);return o?e.concat(s,s.visualViewport||[],cu(i)?i:[]):e.concat(i,Sl(i))}function df(t,e,n){return e==="viewport"?Lo((function(i,o){const s=An(i),r=qi(i),a=s.visualViewport;let l=r.clientWidth,c=r.clientHeight,u=0,d=0;if(a){l=a.width,c=a.height;const p=j1();(p||!p&&o==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}return{width:l,height:c,x:u,y:d}})(t,n)):Ki(e)?Lo((function(i,o){const s=Br(i,!0,o==="fixed"),r=s.top+i.clientTop,a=s.left+i.clientLeft,l=ni(i)?vs(i):{x:1,y:1};return{width:i.clientWidth*l.x,height:i.clientHeight*l.y,x:a*l.x,y:r*l.y}})(e,n)):Lo((function(i){const o=qi(i),s=du(i),r=i.ownerDocument.body,a=hr(o.scrollWidth,o.clientWidth,r.scrollWidth,r.clientWidth),l=hr(o.scrollHeight,o.clientHeight,r.scrollHeight,r.clientHeight);let c=-s.scrollLeft+z1(i);const u=-s.scrollTop;return ei(r).direction==="rtl"&&(c+=hr(o.clientWidth,r.clientWidth)-a),{width:a,height:l,x:c,y:u}})(qi(t)))}function hf(t){return ni(t)&&ei(t).position!=="fixed"?t.offsetParent:null}function pf(t){const e=An(t);let n=hf(t);for(;n&&TE(n)&&ei(n).position==="static";)n=hf(n);return n&&(to(n)==="html"||to(n)==="body"&&ei(n).position==="static"&&!nd(n))?e:n||(function(i){let o=Pr(i);for(;ni(o)&&!Wd(o);){if(nd(o))return o;o=Pr(o)}return null})(t)||e}function DE(t,e,n){const i=ni(e),o=qi(e),s=Br(t,!0,n==="fixed",e);let r={scrollLeft:0,scrollTop:0};const a={x:0,y:0};if(i||!i&&n!=="fixed")if((to(e)!=="body"||cu(o))&&(r=du(e)),ni(e)){const l=Br(e,!0);a.x=l.x+e.clientLeft,a.y=l.y+e.clientTop}else o&&(a.x=z1(o));return{x:s.left+r.scrollLeft-a.x,y:s.top+r.scrollTop-a.y,width:s.width,height:s.height}}const OE={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:i,strategy:o}=t;const s=n==="clippingAncestors"?(function(c,u){const d=u.get(c);if(d)return d;let p=Sl(c).filter((w=>Ki(w)&&to(w)!=="body")),f=null;const v=ei(c).position==="fixed";let g=v?Pr(c):c;for(;Ki(g)&&!Wd(g);){const w=ei(g),b=nd(g);(v?b||f:b||w.position!=="static"||!f||!["absolute","fixed"].includes(f.position))?f=w:p=p.filter((S=>S!==g)),g=Pr(g)}return u.set(c,p),p})(e,this._c):[].concat(n),r=[...s,i],a=r[0],l=r.reduce(((c,u)=>{const d=df(e,u,o);return c.top=hr(d.top,c.top),c.right=uf(d.right,c.right),c.bottom=uf(d.bottom,c.bottom),c.left=hr(d.left,c.left),c}),df(e,a,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:i}=t;const o=ni(n),s=qi(n);if(n===s)return e;let r={scrollLeft:0,scrollTop:0},a={x:1,y:1};const l={x:0,y:0};if((o||!o&&i!=="fixed")&&((to(n)!=="body"||cu(s))&&(r=du(n)),ni(n))){const c=Br(n);a=vs(n),l.x=c.x+n.clientLeft,l.y=c.y+n.clientTop}return{width:e.width*a.x,height:e.height*a.y,x:e.x*a.x-r.scrollLeft*a.x+l.x,y:e.y*a.y-r.scrollTop*a.y+l.y}},isElement:Ki,getDimensions:function(t){return ni(t)?L1(t):t.getBoundingClientRect()},getOffsetParent:pf,getDocumentElement:qi,getScale:vs,async getElementRects(t){let{reference:e,floating:n,strategy:i}=t;const o=this.getOffsetParent||pf,s=this.getDimensions;return{reference:DE(e,await o(n),i),floating:{x:0,y:0,...await s(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>ei(t).direction==="rtl"},$E=(t,e,n)=>{const i=new Map,o={platform:OE,...n},s={...o.platform,_c:i};return $1(t,e,{...o,platform:s})},Xi={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:150,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,autoHideOnMousedown:!1,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:t=>[...t,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover"],delay:{show:0,hide:400}}}};function RE(t,e){let n=Xi.themes[t]||{},i;do i=n[e],typeof i>"u"?n.$extend?n=Xi.themes[n.$extend]||{}:(n=null,i=Xi[e]):n=null;while(n);return i}function BE(t){const e=[t];let n=Xi.themes[t]||{};do n.$extend&&!n.$resetCss?(e.push(n.$extend),n=Xi.themes[n.$extend]||{}):n=null;while(n);return e.map(i=>`v-popper--theme-${i}`)}function ff(t){const e=[t];let n=Xi.themes[t]||{};do n.$extend?(e.push(n.$extend),n=Xi.themes[n.$extend]||{}):n=null;while(n);return e}let Nr=!1;if(typeof window<"u"){Nr=!1;try{const t=Object.defineProperty({},"passive",{get(){Nr=!0}});window.addEventListener("test",null,t)}catch{}}let W1=!1;typeof window<"u"&&typeof navigator<"u"&&(W1=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const PE=["auto","top","bottom","left","right"].reduce((t,e)=>t.concat([e,`${e}-start`,`${e}-end`]),[]),gf={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart",pointer:"pointerdown"},mf={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend",pointer:"pointerup"};function vf(t,e){const n=t.indexOf(e);n!==-1&&t.splice(n,1)}function ic(){return new Promise(t=>requestAnimationFrame(()=>{requestAnimationFrame(t)}))}const Bn=[];let ho=null;const yf={};function bf(t){let e=yf[t];return e||(e=yf[t]=[]),e}let id=function(){};typeof window<"u"&&(id=window.Element);function Gt(t){return function(e){return RE(e.theme,t)}}const oc="__floating-vue__popper",J1=()=>Et({name:"VPopper",provide(){return{[oc]:{parentPopper:this}}},inject:{[oc]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:Gt("disabled")},positioningDisabled:{type:Boolean,default:Gt("positioningDisabled")},placement:{type:String,default:Gt("placement"),validator:t=>PE.includes(t)},delay:{type:[String,Number,Object],default:Gt("delay")},distance:{type:[Number,String],default:Gt("distance")},skidding:{type:[Number,String],default:Gt("skidding")},triggers:{type:Array,default:Gt("triggers")},showTriggers:{type:[Array,Function],default:Gt("showTriggers")},hideTriggers:{type:[Array,Function],default:Gt("hideTriggers")},popperTriggers:{type:Array,default:Gt("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:Gt("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:Gt("popperHideTriggers")},container:{type:[String,Object,id,Boolean],default:Gt("container")},boundary:{type:[String,id],default:Gt("boundary")},strategy:{type:String,validator:t=>["absolute","fixed"].includes(t),default:Gt("strategy")},autoHide:{type:[Boolean,Function],default:Gt("autoHide")},handleResize:{type:Boolean,default:Gt("handleResize")},instantMove:{type:Boolean,default:Gt("instantMove")},eagerMount:{type:Boolean,default:Gt("eagerMount")},popperClass:{type:[String,Array,Object],default:Gt("popperClass")},computeTransformOrigin:{type:Boolean,default:Gt("computeTransformOrigin")},autoMinSize:{type:Boolean,default:Gt("autoMinSize")},autoSize:{type:[Boolean,String],default:Gt("autoSize")},autoMaxSize:{type:Boolean,default:Gt("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:Gt("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:Gt("preventOverflow")},overflowPadding:{type:[Number,String],default:Gt("overflowPadding")},arrowPadding:{type:[Number,String],default:Gt("arrowPadding")},arrowOverflow:{type:Boolean,default:Gt("arrowOverflow")},flip:{type:Boolean,default:Gt("flip")},shift:{type:Boolean,default:Gt("shift")},shiftCrossAxis:{type:Boolean,default:Gt("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:Gt("noAutoFocus")},disposeTimeout:{type:Number,default:Gt("disposeTimeout")}},emits:{show:()=>!0,hide:()=>!0,"update:shown":t=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},randomId:`popper_${[Math.random(),Date.now()].map(t=>t.toString(36).substring(2,10)).join("_")}`,shownChildren:new Set,lastAutoHide:!0,pendingHide:!1,containsGlobalTarget:!1,isDisposed:!0,mouseDownContains:!1}},computed:{popperId(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:{...this.classes,popperClass:this.popperClass},result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var t;return(t=this[oc])==null?void 0:t.parentPopper},hasPopperShowTriggerHover(){var t,e;return((t=this.popperTriggers)==null?void 0:t.includes("hover"))||((e=this.popperShowTriggers)==null?void 0:e.includes("hover"))}},watch:{shown:"$_autoShowHide",disabled(t){t?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())},triggers:{handler:"$_refreshListeners",deep:!0},positioningDisabled:"$_refreshListeners",...["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((t,e)=>(t[e]="$_computePosition",t),{})},created(){this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:t=null,skipDelay:e=!1,force:n=!1}={}){var i,o;(i=this.parentPopper)!=null&&i.lockedChild&&this.parentPopper.lockedChild!==this||(this.pendingHide=!1,(n||!this.disabled)&&(((o=this.parentPopper)==null?void 0:o.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(t,e),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:t=null,skipDelay:e=!1}={}){var n;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.pendingHide=!0;return}if(this.hasPopperShowTriggerHover&&this.$_isAimingPopper()){this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout(()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:e}),this.parentPopper.lockedChild=null)},1e3));return}((n=this.parentPopper)==null?void 0:n.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.pendingHide=!1,this.$_scheduleHide(t,e),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var t;this.isDisposed&&(this.isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=((t=this.referenceNode)==null?void 0:t.call(this))??this.$el,this.$_targetNodes=this.targetNodes().filter(e=>e.nodeType===e.ELEMENT_NODE),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.isDisposed||(this.isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){if(this.isDisposed||this.positioningDisabled)return;const t={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&t.middleware.push(P1({mainAxis:this.distance,crossAxis:this.skidding}));const e=this.placement.startsWith("auto");if(e?t.middleware.push(CE({alignment:this.placement.split("-")[1]??""})):t.placement=this.placement,this.preventOverflow&&(this.shift&&t.middleware.push(N1({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!e&&this.flip&&t.middleware.push(R1({padding:this.overflowPadding,boundary:this.boundary}))),t.middleware.push(xE({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&t.middleware.push({name:"arrowOverflow",fn:({placement:i,rects:o,middlewareData:s})=>{let r;const{centerOffset:a}=s.arrow;return i.startsWith("top")||i.startsWith("bottom")?r=Math.abs(a)>o.reference.width/2:r=Math.abs(a)>o.reference.height/2,{data:{overflow:r}}}}),this.autoMinSize||this.autoSize){const i=this.autoSize?this.autoSize:this.autoMinSize?"min":null;t.middleware.push({name:"autoSize",fn:({rects:o,placement:s,middlewareData:r})=>{var a;if((a=r.autoSize)!=null&&a.skip)return{};let l,c;return s.startsWith("top")||s.startsWith("bottom")?l=o.reference.width:c=o.reference.height,this.$_innerNode.style[i==="min"?"minWidth":i==="max"?"maxWidth":"width"]=l!=null?`${l}px`:null,this.$_innerNode.style[i==="min"?"minHeight":i==="max"?"maxHeight":"height"]=c!=null?`${c}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,t.middleware.push(kE({boundary:this.boundary,padding:this.overflowPadding,apply:({availableWidth:i,availableHeight:o})=>{this.$_innerNode.style.maxWidth=i!=null?`${i}px`:null,this.$_innerNode.style.maxHeight=o!=null?`${o}px`:null}})));const n=await $E(this.$_referenceNode,this.$_popperNode,t);Object.assign(this.result,{x:n.x,y:n.y,placement:n.placement,strategy:n.strategy,arrow:{...n.middlewareData.arrow,...n.middlewareData.arrowOverflow}})},$_scheduleShow(t,e=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),ho&&this.instantMove&&ho.instantMove&&ho!==this.parentPopper){ho.$_applyHide(!0),this.$_applyShow(!0);return}e?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(t,e=!1){if(this.shownChildren.size>0){this.pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(ho=this),e?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(t){const e=this.delay;return parseInt(e&&e[t]||e||0)},async $_applyShow(t=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=t,!this.isShown&&(this.$_ensureTeleport(),await ic(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...Sl(this.$_referenceNode),...Sl(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const e=this.$_referenceNode.getBoundingClientRect(),n=this.$_popperNode.querySelector(".v-popper__wrapper"),i=n.parentNode.getBoundingClientRect(),o=e.x+e.width/2-(i.left+n.offsetLeft),s=e.y+e.height/2-(i.top+n.offsetTop);this.result.transformOrigin=`${o}px ${s}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const t=this.showGroup;if(t){let e;for(let n=0;n0){this.pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=t,vf(Bn,this),Bn.length===0&&document.body.classList.remove("v-popper--some-open");for(const n of ff(this.theme)){const i=bf(n);vf(i,this),i.length===0&&document.body.classList.remove(`v-popper--some-open--${n}`)}ho===this&&(ho=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const e=this.disposeTimeout;e!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},e)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await ic(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.isDisposed)return;let t=this.container;if(typeof t=="string"?t=window.document.querySelector(t):t===!1&&(t=this.$_targetNodes[0].parentNode),!t)throw new Error("No container for popover: "+this.container);t.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const t=n=>{this.isShown&&!this.$_hideInProgress||(n.usedByTooltip=!0,!this.$_preventShow&&this.show({event:n}))};this.$_registerTriggerListeners(this.$_targetNodes,gf,this.triggers,this.showTriggers,t),this.$_registerTriggerListeners([this.$_popperNode],gf,this.popperTriggers,this.popperShowTriggers,t);const e=n=>{n.usedByTooltip||this.hide({event:n})};this.$_registerTriggerListeners(this.$_targetNodes,mf,this.triggers,this.hideTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],mf,this.popperTriggers,this.popperHideTriggers,e)},$_registerEventListeners(t,e,n){this.$_events.push({targetNodes:t,eventType:e,handler:n}),t.forEach(i=>i.addEventListener(e,n,Nr?{passive:!0}:void 0))},$_registerTriggerListeners(t,e,n,i,o){let s=n;i!=null&&(s=typeof i=="function"?i(s):i),s.forEach(r=>{const a=e[r];a&&this.$_registerEventListeners(t,a,o)})},$_removeEventListeners(t){const e=[];this.$_events.forEach(n=>{const{targetNodes:i,eventType:o,handler:s}=n;!t||t===o?i.forEach(r=>r.removeEventListener(o,s)):e.push(n)}),this.$_events=e},$_refreshListeners(){this.isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(t,e=!1){this.$_showFrameLocked||(this.hide({event:t}),t.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),e&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(t,e){for(const n of this.$_targetNodes){const i=n.getAttribute(t);i&&(n.removeAttribute(t),n.setAttribute(e,i))}},$_applyAttrsToTarget(t){for(const e of this.$_targetNodes)for(const n in t){const i=t[n];i==null?e.removeAttribute(n):e.setAttribute(n,i)}},$_updateParentShownChildren(t){let e=this.parentPopper;for(;e;)t?e.shownChildren.add(this.randomId):(e.shownChildren.delete(this.randomId),e.pendingHide&&e.hide()),e=e.parentPopper},$_isAimingPopper(){const t=this.$_referenceNode.getBoundingClientRect();if(pr>=t.left&&pr<=t.right&&fr>=t.top&&fr<=t.bottom){const e=this.$_popperNode.getBoundingClientRect(),n=pr-Ui,i=fr-Ii,o=e.left+e.width/2-Ui+(e.top+e.height/2)-Ii+e.width+e.height,s=Ui+n*o,r=Ii+i*o;return _a(Ui,Ii,s,r,e.left,e.top,e.left,e.bottom)||_a(Ui,Ii,s,r,e.left,e.top,e.right,e.top)||_a(Ui,Ii,s,r,e.right,e.top,e.right,e.bottom)||_a(Ui,Ii,s,r,e.left,e.bottom,e.right,e.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});if(typeof document<"u"&&typeof window<"u"){if(W1){const t=Nr?{passive:!0,capture:!0}:!0;document.addEventListener("touchstart",e=>_f(e),t),document.addEventListener("touchend",e=>wf(e,!0),t)}else window.addEventListener("mousedown",t=>_f(t),!0),window.addEventListener("click",t=>wf(t,!1),!0);window.addEventListener("resize",FE)}function _f(t,e){for(let n=0;n=0;i--){const o=Bn[i];try{const s=o.containsGlobalTarget=o.mouseDownContains||o.popperNode().contains(t.target);o.pendingHide=!1,requestAnimationFrame(()=>{if(o.pendingHide=!1,!n[o.randomId]&&xf(o,s,t)){if(o.$_handleGlobalClose(t,e),!t.closeAllPopover&&t.closePopover&&s){let a=o.parentPopper;for(;a;)n[a.randomId]=!0,a=a.parentPopper;return}let r=o.parentPopper;for(;r&&xf(r,r.containsGlobalTarget,t);)r.$_handleGlobalClose(t,e),r=r.parentPopper}})}catch{}}}function xf(t,e,n){return n.closeAllPopover||n.closePopover&&e||LE(t,n)&&!e}function LE(t,e){if(typeof t.autoHide=="function"){const n=t.autoHide(e);return t.lastAutoHide=n,n}return t.autoHide}function FE(){for(let t=0;t{Ui=pr,Ii=fr,pr=t.clientX,fr=t.clientY},Nr?{passive:!0}:void 0);function _a(t,e,n,i,o,s,r,a){const l=((r-o)*(e-s)-(a-s)*(t-o))/((a-s)*(n-t)-(r-o)*(i-e)),c=((n-t)*(e-s)-(i-e)*(t-o))/((a-s)*(n-t)-(r-o)*(i-e));return l>=0&&l<=1&&c>=0&&c<=1}const VE={extends:J1()},Jd=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n};function jE(t,e,n,i,o,s){return C(),R("div",{ref:"reference",class:Bt(["v-popper",{"v-popper--shown":t.slotData.isShown}])},[kt(t.$slots,"default",Ie($e(t.slotData)))],2)}const UE=Jd(VE,[["render",jE]]);function IE(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);var n=t.indexOf("Trident/");if(n>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var o=t.indexOf("Edge/");return o>0?parseInt(t.substring(o+5,t.indexOf(".",o)),10):-1}let Ja;function od(){od.init||(od.init=!0,Ja=IE()!==-1)}var Ga={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){od(),qr(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",Ja&&this.$el.appendChild(t),t.data="about:blank",Ja||this.$el.appendChild(t)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!Ja&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const zE=Gb();Wb("data-v-b329ee4c");const HE={class:"resize-observer",tabindex:"-1"};Jb();const WE=zE((t,e,n,i,o,s)=>(C(),ct("div",HE)));Ga.render=WE,Ga.__scopeId="data-v-b329ee4c",Ga.__file="src/components/ResizeObserver.vue";const G1=(t="theme")=>({computed:{themeClass(){return BE(this[t])}}}),JE=Et({name:"VPopperContent",components:{ResizeObserver:Ga},mixins:[G1()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(t){return t!=null&&!isNaN(t)?`${t}px`:null}}}),GE=["id","aria-hidden","tabindex","data-popper-placement"],KE={ref:"inner",class:"v-popper__inner"},qE=y("div",{class:"v-popper__arrow-outer"},null,-1),XE=y("div",{class:"v-popper__arrow-inner"},null,-1),YE=[qE,XE];function ZE(t,e,n,i,o,s){const r=xn("ResizeObserver");return C(),R("div",{id:t.popperId,ref:"popover",class:Bt(["v-popper__popper",[t.themeClass,t.classes.popperClass,{"v-popper__popper--shown":t.shown,"v-popper__popper--hidden":!t.shown,"v-popper__popper--show-from":t.classes.showFrom,"v-popper__popper--show-to":t.classes.showTo,"v-popper__popper--hide-from":t.classes.hideFrom,"v-popper__popper--hide-to":t.classes.hideTo,"v-popper__popper--skip-transition":t.skipTransition,"v-popper__popper--arrow-overflow":t.result&&t.result.arrow.overflow,"v-popper__popper--no-positioning":!t.result}]]),style:$o(t.result?{position:t.result.strategy,transform:`translate3d(${Math.round(t.result.x)}px,${Math.round(t.result.y)}px,0)`}:void 0),"aria-hidden":t.shown?"false":"true",tabindex:t.autoHide?0:void 0,"data-popper-placement":t.result?t.result.placement:void 0,onKeyup:e[2]||(e[2]=n1(a=>t.autoHide&&t.$emit("hide"),["esc"]))},[y("div",{class:"v-popper__backdrop",onClick:e[0]||(e[0]=a=>t.autoHide&&t.$emit("hide"))}),y("div",{class:"v-popper__wrapper",style:$o(t.result?{transformOrigin:t.result.transformOrigin}:void 0)},[y("div",KE,[t.mounted?(C(),R(yt,{key:0},[y("div",null,[kt(t.$slots,"default")]),t.handleResize?(C(),ct(r,{key:0,onNotify:e[1]||(e[1]=a=>t.$emit("resize",a))})):st("",!0)],64)):st("",!0)],512),y("div",{ref:"arrow",class:"v-popper__arrow-container",style:$o(t.result?{left:t.toPx(t.result.arrow.x),top:t.toPx(t.result.arrow.y)}:void 0)},YE,4)],4)],46,GE)}const QE=Jd(JE,[["render",ZE]]),ME={methods:{show(...t){return this.$refs.popper.show(...t)},hide(...t){return this.$refs.popper.hide(...t)},dispose(...t){return this.$refs.popper.dispose(...t)},onResize(...t){return this.$refs.popper.onResize(...t)}}};let sd=function(){};typeof window<"u"&&(sd=window.Element);const tC=Et({name:"VPopperWrapper",components:{Popper:UE,PopperContent:QE},mixins:[ME,G1("finalTheme")],props:{theme:{type:String,default:null},referenceNode:{type:Function,default:null},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:void 0},positioningDisabled:{type:Boolean,default:void 0},placement:{type:String,default:void 0},delay:{type:[String,Number,Object],default:void 0},distance:{type:[Number,String],default:void 0},skidding:{type:[Number,String],default:void 0},triggers:{type:Array,default:void 0},showTriggers:{type:[Array,Function],default:void 0},hideTriggers:{type:[Array,Function],default:void 0},popperTriggers:{type:Array,default:void 0},popperShowTriggers:{type:[Array,Function],default:void 0},popperHideTriggers:{type:[Array,Function],default:void 0},container:{type:[String,Object,sd,Boolean],default:void 0},boundary:{type:[String,sd],default:void 0},strategy:{type:String,default:void 0},autoHide:{type:[Boolean,Function],default:void 0},handleResize:{type:Boolean,default:void 0},instantMove:{type:Boolean,default:void 0},eagerMount:{type:Boolean,default:void 0},popperClass:{type:[String,Array,Object],default:void 0},computeTransformOrigin:{type:Boolean,default:void 0},autoMinSize:{type:Boolean,default:void 0},autoSize:{type:[Boolean,String],default:void 0},autoMaxSize:{type:Boolean,default:void 0},autoBoundaryMaxSize:{type:Boolean,default:void 0},preventOverflow:{type:Boolean,default:void 0},overflowPadding:{type:[Number,String],default:void 0},arrowPadding:{type:[Number,String],default:void 0},arrowOverflow:{type:Boolean,default:void 0},flip:{type:Boolean,default:void 0},shift:{type:Boolean,default:void 0},shiftCrossAxis:{type:Boolean,default:void 0},noAutoFocus:{type:Boolean,default:void 0},disposeTimeout:{type:Number,default:void 0}},emits:{show:()=>!0,hide:()=>!0,"update:shown":t=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},computed:{finalTheme(){return this.theme??this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(t=>t!==this.$refs.popperContent.$el)}}});function eC(t,e,n,i,o,s){const r=xn("PopperContent"),a=xn("Popper");return C(),ct(a,Lt({ref:"popper"},t.$props,{theme:t.finalTheme,"target-nodes":t.getTargetNodes,"popper-node":()=>t.$refs.popperContent.$el,class:[t.themeClass],onShow:e[0]||(e[0]=()=>t.$emit("show")),onHide:e[1]||(e[1]=()=>t.$emit("hide")),"onUpdate:shown":e[2]||(e[2]=l=>t.$emit("update:shown",l)),onApplyShow:e[3]||(e[3]=()=>t.$emit("apply-show")),onApplyHide:e[4]||(e[4]=()=>t.$emit("apply-hide")),onCloseGroup:e[5]||(e[5]=()=>t.$emit("close-group")),onCloseDirective:e[6]||(e[6]=()=>t.$emit("close-directive")),onAutoHide:e[7]||(e[7]=()=>t.$emit("auto-hide")),onResize:e[8]||(e[8]=()=>t.$emit("resize"))}),{default:dt(({popperId:l,isShown:c,shouldMountContent:u,skipTransition:d,autoHide:p,show:f,hide:v,handleResize:g,onResize:w,classes:b,result:S})=>[kt(t.$slots,"default",{shown:c,show:f,hide:v}),q(r,{ref:"popperContent","popper-id":l,theme:t.finalTheme,shown:c,mounted:u,"skip-transition":d,"auto-hide":p,"handle-resize":g,classes:b,result:S,onHide:v,onResize:w},{default:dt(()=>[kt(t.$slots,"popper",{shown:c,hide:v})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},16,["theme","target-nodes","popper-node","class"])}const rd=Jd(tC,[["render",eC]]),nC={...rd,name:"VDropdown",vPopperTheme:"dropdown"};({...rd},{...rd}),J1();const Ef=Xi,iC=nC;function oC(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var K1={exports:{}},ge=K1.exports={},qn,Xn;function ad(){throw new Error("setTimeout has not been defined")}function ld(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?qn=setTimeout:qn=ad}catch{qn=ad}try{typeof clearTimeout=="function"?Xn=clearTimeout:Xn=ld}catch{Xn=ld}})();function q1(t){if(qn===setTimeout)return setTimeout(t,0);if((qn===ad||!qn)&&setTimeout)return qn=setTimeout,setTimeout(t,0);try{return qn(t,0)}catch{try{return qn.call(null,t,0)}catch{return qn.call(this,t,0)}}}function sC(t){if(Xn===clearTimeout)return clearTimeout(t);if((Xn===ld||!Xn)&&clearTimeout)return Xn=clearTimeout,clearTimeout(t);try{return Xn(t)}catch{try{return Xn.call(null,t)}catch{return Xn.call(this,t)}}}var wi=[],ys=!1,ko,Ka=-1;function rC(){!ys||!ko||(ys=!1,ko.length?wi=ko.concat(wi):Ka=-1,wi.length&&X1())}function X1(){if(!ys){var t=q1(rC);ys=!0;for(var e=wi.length;e;){for(ko=wi,wi=[];++Ka1)for(var n=1;nconsole.error("SEMVER",...e):()=>{},sc}var rc,Sf;function Q1(){if(Sf)return rc;Sf=1;const t="2.0.0",e=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,i=16,o=e-6;return rc={MAX_LENGTH:e,MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:o,MAX_SAFE_INTEGER:n,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:t,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},rc}var ac={exports:{}},Af;function lC(){return Af||(Af=1,(function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:o}=Q1(),s=Z1();e=t.exports={};const r=e.re=[],a=e.safeRe=[],l=e.src=[],c=e.safeSrc=[],u=e.t={};let d=0;const p="[a-zA-Z0-9-]",f=[["\\s",1],["\\d",o],[p,i]],v=w=>{for(const[b,S]of f)w=w.split(`${b}*`).join(`${b}{0,${S}}`).split(`${b}+`).join(`${b}{1,${S}}`);return w},g=(w,b,S)=>{const D=v(b),k=d++;s(w,k,b),u[w]=k,l[k]=b,c[k]=D,r[k]=new RegExp(b,S?"g":void 0),a[k]=new RegExp(D,S?"g":void 0)};g("NUMERICIDENTIFIER","0|[1-9]\\d*"),g("NUMERICIDENTIFIERLOOSE","\\d+"),g("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${p}*`),g("MAINVERSION",`(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})`),g("MAINVERSIONLOOSE",`(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})`),g("PRERELEASEIDENTIFIER",`(?:${l[u.NONNUMERICIDENTIFIER]}|${l[u.NUMERICIDENTIFIER]})`),g("PRERELEASEIDENTIFIERLOOSE",`(?:${l[u.NONNUMERICIDENTIFIER]}|${l[u.NUMERICIDENTIFIERLOOSE]})`),g("PRERELEASE",`(?:-(${l[u.PRERELEASEIDENTIFIER]}(?:\\.${l[u.PRERELEASEIDENTIFIER]})*))`),g("PRERELEASELOOSE",`(?:-?(${l[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[u.PRERELEASEIDENTIFIERLOOSE]})*))`),g("BUILDIDENTIFIER",`${p}+`),g("BUILD",`(?:\\+(${l[u.BUILDIDENTIFIER]}(?:\\.${l[u.BUILDIDENTIFIER]})*))`),g("FULLPLAIN",`v?${l[u.MAINVERSION]}${l[u.PRERELEASE]}?${l[u.BUILD]}?`),g("FULL",`^${l[u.FULLPLAIN]}$`),g("LOOSEPLAIN",`[v=\\s]*${l[u.MAINVERSIONLOOSE]}${l[u.PRERELEASELOOSE]}?${l[u.BUILD]}?`),g("LOOSE",`^${l[u.LOOSEPLAIN]}$`),g("GTLT","((?:<|>)?=?)"),g("XRANGEIDENTIFIERLOOSE",`${l[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),g("XRANGEIDENTIFIER",`${l[u.NUMERICIDENTIFIER]}|x|X|\\*`),g("XRANGEPLAIN",`[v=\\s]*(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:${l[u.PRERELEASE]})?${l[u.BUILD]}?)?)?`),g("XRANGEPLAINLOOSE",`[v=\\s]*(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:${l[u.PRERELEASELOOSE]})?${l[u.BUILD]}?)?)?`),g("XRANGE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAIN]}$`),g("XRANGELOOSE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAINLOOSE]}$`),g("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),g("COERCE",`${l[u.COERCEPLAIN]}(?:$|[^\\d])`),g("COERCEFULL",l[u.COERCEPLAIN]+`(?:${l[u.PRERELEASE]})?(?:${l[u.BUILD]})?(?:$|[^\\d])`),g("COERCERTL",l[u.COERCE],!0),g("COERCERTLFULL",l[u.COERCEFULL],!0),g("LONETILDE","(?:~>?)"),g("TILDETRIM",`(\\s*)${l[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",g("TILDE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAIN]}$`),g("TILDELOOSE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAINLOOSE]}$`),g("LONECARET","(?:\\^)"),g("CARETTRIM",`(\\s*)${l[u.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",g("CARET",`^${l[u.LONECARET]}${l[u.XRANGEPLAIN]}$`),g("CARETLOOSE",`^${l[u.LONECARET]}${l[u.XRANGEPLAINLOOSE]}$`),g("COMPARATORLOOSE",`^${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]})$|^$`),g("COMPARATOR",`^${l[u.GTLT]}\\s*(${l[u.FULLPLAIN]})$|^$`),g("COMPARATORTRIM",`(\\s*)${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]}|${l[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",g("HYPHENRANGE",`^\\s*(${l[u.XRANGEPLAIN]})\\s+-\\s+(${l[u.XRANGEPLAIN]})\\s*$`),g("HYPHENRANGELOOSE",`^\\s*(${l[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[u.XRANGEPLAINLOOSE]})\\s*$`),g("STAR","(<|>)?=?\\s*\\*"),g("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),g("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(ac,ac.exports)),ac.exports}var lc,kf;function uC(){if(kf)return lc;kf=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return lc=n=>n?typeof n!="object"?t:n:e,lc}var uc,Tf;function cC(){if(Tf)return uc;Tf=1;const t=/^[0-9]+$/,e=(n,i)=>{if(typeof n=="number"&&typeof i=="number")return n===i?0:ne(i,n)},uc}var cc,Df;function M1(){if(Df)return cc;Df=1;const t=Z1(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:n}=Q1(),{safeRe:i,t:o}=lC(),s=uC(),{compareIdentifiers:r}=cC(),a=(c,u)=>{const d=u.split(".");if(d.length>c.length)return!1;for(let p=0;pe)throw new TypeError(`version is longer than ${e} characters`);t("SemVer",u,d),this.options=d,this.loose=!!d.loose,this.includePrerelease=!!d.includePrerelease;const p=u.trim().match(d.loose?i[o.LOOSE]:i[o.FULL]);if(!p)throw new TypeError(`Invalid Version: ${u}`);if(this.raw=u,this.major=+p[1],this.minor=+p[2],this.patch=+p[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");p[4]?this.prerelease=p[4].split(".").map(f=>{if(/^[0-9]+$/.test(f)){const v=+f;if(v>=0&&vu.major?1:this.minoru.minor?1:this.patchu.patch?1:0}comparePre(u){if(u instanceof l||(u=new l(u,this.options)),this.prerelease.length&&!u.prerelease.length)return-1;if(!this.prerelease.length&&u.prerelease.length)return 1;if(!this.prerelease.length&&!u.prerelease.length)return 0;let d=0;do{const p=this.prerelease[d],f=u.prerelease[d];if(t("prerelease compare",d,p,f),p===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(p===void 0)return-1;if(p!==f)return r(p,f)}while(++d)}compareBuild(u){u instanceof l||(u=new l(u,this.options));let d=0;do{const p=this.build[d],f=u.build[d];if(t("build compare",d,p,f),p===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(p===void 0)return-1;if(p!==f)return r(p,f)}while(++d)}inc(u,d,p){if(u.startsWith("pre")){if(!d&&p===!1)throw new Error("invalid increment argument: identifier is empty");if(d){const f=`-${d}`.match(this.options.loose?i[o.PRERELEASELOOSE]:i[o.PRERELEASE]);if(!f||f[1]!==d)throw new Error(`invalid identifier: ${d}`)}}switch(u){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",d,p);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",d,p);break;case"prepatch":this.prerelease.length=0,this.inc("patch",d,p),this.inc("pre",d,p);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",d,p),this.inc("pre",d,p);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const f=Number(p)?1:0;if(this.prerelease.length===0)this.prerelease=[f];else{let v=this.prerelease.length;for(;--v>=0;)typeof this.prerelease[v]=="number"&&(this.prerelease[v]++,v=-2);if(v===-1){if(d===this.prerelease.join(".")&&p===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(f)}}if(d){let v=[d,f];if(p===!1&&(v=[d]),a(this.prerelease,d)){const g=this.prerelease[d.split(".").length];isNaN(g)&&(this.prerelease=v)}else this.prerelease=v}break}default:throw new Error(`invalid increment argument: ${u}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return cc=l,cc}var dc,Of;function dC(){if(Of)return dc;Of=1;const t=M1();return dc=(e,n)=>new t(e,n).major,dc}var hC=dC();const $f=Vd(hC);var hc,Rf;function pC(){if(Rf)return hc;Rf=1;const t=M1();return hc=(e,n,i=!1)=>{if(e instanceof t)return e;try{return new t(e,n)}catch(o){if(!i)return null;throw o}},hc}var pc,Bf;function fC(){if(Bf)return pc;Bf=1;const t=pC();return pc=(e,n)=>{const i=t(e,n);return i?i.version:null},pc}var gC=fC();const mC=Vd(gC);class vC{bus;constructor(e){typeof e.getVersion!="function"||!mC(e.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):$f(e.getVersion())!==$f(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()),this.bus=e}getVersion(){return"3.3.3"}subscribe(e,n){this.bus.subscribe(e,n)}unsubscribe(e,n){this.bus.unsubscribe(e,n)}emit(e,...n){this.bus.emit(e,...n)}}class yC{handlers=new Map;getVersion(){return"3.3.3"}subscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).concat(n))}unsubscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).filter(i=>i!==n))}emit(e,...n){(this.handlers.get(e)||[]).forEach(i=>{try{i(n[0])}catch(o){console.error("could not invoke event listener",o)}})}}let Gs=null;function Gd(){return Gs!==null?Gs:typeof window>"u"?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&typeof window._nc_event_bus>"u"&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),typeof window?._nc_event_bus<"u"?Gs=new vC(window._nc_event_bus):Gs=window._nc_event_bus=new yC,Gs)}function tv(t,e){Gd().subscribe(t,e)}function bC(t,e){Gd().unsubscribe(t,e)}function _C(t,...e){Gd().emit(t,...e)}class Al{static GLOBAL_SCOPE_VOLATILE="nextcloud_vol";static GLOBAL_SCOPE_PERSISTENT="nextcloud_per";scope;wrapped;constructor(e,n,i){this.scope=`${i?Al.GLOBAL_SCOPE_PERSISTENT:Al.GLOBAL_SCOPE_VOLATILE}_${btoa(e)}_`,this.wrapped=n}scopeKey(e){return`${this.scope}${e}`}setItem(e,n){this.wrapped.setItem(this.scopeKey(e),n)}getItem(e){return this.wrapped.getItem(this.scopeKey(e))}removeItem(e){this.wrapped.removeItem(this.scopeKey(e))}clear(){Object.keys(this.wrapped).filter(e=>e.startsWith(this.scope)).map(this.wrapped.removeItem.bind(this.wrapped))}}class wC{appId;persisted=!1;clearedOnLogout=!1;constructor(e){this.appId=e}persist(e=!0){return this.persisted=e,this}clearOnLogout(e=!0){return this.clearedOnLogout=e,this}build(){return new Al(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}function xC(t){return new wC(t)}AC();function EC(){return globalThis._nc_auth_requestToken?globalThis._nc_auth_requestToken:globalThis.document?document.head.dataset.requesttoken??null:null}function ev(t){if(!t||typeof t!="string")throw new Error("Invalid CSRF token given",{cause:{token:t}});globalThis._nc_auth_requestToken!==t&&(globalThis._nc_auth_requestToken=t,globalThis.document&&(document.head.dataset.requesttoken=t),_C("csrf-token-update",{token:t,_internal:!0}))}async function CC(){const t=Qi("/csrftoken"),e=await fetch(t);if(!e.ok)throw new Error("Could not fetch CSRF token from API",{cause:e});try{const{token:n}=await e.json();return ev(n),n}catch(n){throw new Error("Could not parse CSRF token from API response",{cause:n})}}function SC(t){const e=async({token:n})=>{try{t(n)}catch(i){console.error("Error updating CSRF token observer",i)}};return tv("csrf-token-update",e),()=>bC("csrf-token-update",e)}function AC(){tv("csrf-token-update",({token:t,_internal:e})=>{e||ev(t)})}xC("public").persist().build();let is;function Pf(t,e){return t?t.getAttribute(e):null}function kC(){if(is!==void 0)return is;const t=document?.getElementsByTagName("head")[0];if(!t)return null;const e=Pf(t,"data-user");return e===null?(is=null,is):(is={uid:e,displayName:Pf(t,"data-user-displayname"),isAdmin:!!window._oc_isadmin},is)}var ye=(t=>(t[t.Debug=0]="Debug",t[t.Info=1]="Info",t[t.Warn=2]="Warn",t[t.Error=3]="Error",t[t.Fatal=4]="Fatal",t))(ye||{});class TC{context;constructor(e){this.context=e||{}}formatMessage(e,n,i){let o="["+ye[n].toUpperCase()+"] ";return i&&i.app&&(o+=i.app+": "),typeof e=="string"?o+e:(o+=`Unexpected ${e.name}`,e.message&&(o+=` "${e.message}"`),n===ye.Debug&&e.stack&&(o+=` +const _r=globalThis||void 0||self;function Sd(t){const e=Object.create(null);for(const n of t.split(","))e[n]=1;return n=>n in e}const zt={},hs=[],kn=()=>{},Rg=()=>!1,Hl=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),Jl=t=>t.startsWith("onUpdate:"),we=Object.assign,Ad=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},qy=Object.prototype.hasOwnProperty,Mt=(t,e)=>qy.call(t,e),St=Array.isArray,Gi=t=>Gr(t)==="[object Map]",ws=t=>Gr(t)==="[object Set]",Xh=t=>Gr(t)==="[object Date]",$t=t=>typeof t=="function",ae=t=>typeof t=="string",mn=t=>typeof t=="symbol",Zt=t=>t!==null&&typeof t=="object",Bg=t=>(Zt(t)||$t(t))&&$t(t.then)&&$t(t.catch),Pg=Object.prototype.toString,Gr=t=>Pg.call(t),Xy=t=>Gr(t).slice(8,-1),Ng=t=>Gr(t)==="[object Object]",Wl=t=>ae(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,rr=Sd(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Gl=t=>{const e=Object.create(null);return(n=>e[n]||(e[n]=t(n)))},Yy=/-\w/g,Je=Gl(t=>t.replace(Yy,e=>e.slice(1).toUpperCase())),Zy=/\B([A-Z])/g,Ri=Gl(t=>t.replace(Zy,"-$1").toLowerCase()),Kl=Gl(t=>t.charAt(0).toUpperCase()+t.slice(1)),La=Gl(t=>t?`on${Kl(t)}`:""),Re=(t,e)=>!Object.is(t,e),Fa=(t,...e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:i,value:n})},Qy=t=>{const e=parseFloat(t);return isNaN(e)?t:e},My=t=>{const e=ae(t)?Number(t):NaN;return isNaN(e)?t:e};let Yh;const Ma=()=>Yh||(Yh=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof _r<"u"?_r:{});function $o(t){if(St(t)){const e={};for(let n=0;n{if(n){const i=n.split(eb);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function Bt(t){let e="";if(ae(t))e=t;else if(St(t))for(let n=0;nDs(n,e))}const jg=t=>!!(t&&t.__v_isRef===!0),A=t=>ae(t)?t:t==null?"":St(t)||Zt(t)&&(t.toString===Pg||!$t(t.toString))?jg(t)?A(t.value):JSON.stringify(t,Ug,2):String(t),Ug=(t,e)=>jg(e)?Ug(t,e.value):Gi(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((n,[i,o],s)=>(n[Lu(i,s)+" =>"]=o,n),{})}:ws(e)?{[`Set(${e.size})`]:[...e.values()].map(n=>Lu(n))}:mn(e)?Lu(e):Zt(e)&&!St(e)&&!Ng(e)?String(e):e,Lu=(t,e="")=>{var n;return mn(t)?`Symbol(${(n=t.description)!=null?n:e})`:t};function lb(t){return t==null?"initial":typeof t=="string"?t===""?" ":t:String(t)}let Ee;class ub{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&Ee&&(Ee.active?(this.parent=Ee,this.index=(Ee.scopes||(Ee.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,n;if(this.scopes){const i=this.scopes.slice();for(e=0,n=i.length;e0&&--this._on===0){if(Ee===this)Ee=this.prevScope;else{let e=Ee;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let n,i;for(n=0,i=this.effects.length;n0)return;if(lr){let e=lr;for(lr=void 0;e;){const n=e.next;e.next=void 0,e.flags&=-9,e=n}}let t;for(;ar;){let e=ar;for(ar=void 0;e;){const n=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){t||(t=i)}e=n}}if(t)throw t}function Wg(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function Gg(t){let e,n=t.depsTail,i=n;for(;i;){const o=i.prevDep;i.version===-1?(i===n&&(n=o),Dd(i),db(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=o}t.deps=e,t.depsTail=n}function Pc(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(Kg(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function Kg(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===wr)||(t.globalVersion=wr,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Pc(t))))return;t.flags|=2;const e=t.dep,n=se,i=Pn;se=t,Pn=!0;try{Wg(t);const o=t.fn(t._value);(e.version===0||Re(o,t._value))&&(t.flags|=128,t._value=o,e.version++)}catch(o){throw e.version++,o}finally{se=n,Pn=i,Gg(t),t.flags&=-3}}function Dd(t,e=!1){const{dep:n,prevSub:i,nextSub:o}=t;if(i&&(i.nextSub=o,t.prevSub=void 0),o&&(o.prevSub=i,t.nextSub=void 0),n.subs===t&&(n.subs=i,!i&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)Dd(s,!0)}!e&&!--n.sc&&n.map&&n.map.delete(n.key)}function db(t){const{prevDep:e,nextDep:n}=t;e&&(e.nextDep=n,t.prevDep=void 0),n&&(n.prevDep=e,t.nextDep=void 0)}let Pn=!0;const qg=[];function Ti(){qg.push(Pn),Pn=!1}function Di(){const t=qg.pop();Pn=t===void 0?!0:t}function Zh(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const n=se;se=void 0;try{e()}finally{se=n}}}let wr=0;class hb{constructor(e,n){this.sub=e,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ql{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!se||!Pn||se===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==se)n=this.activeLink=new hb(se,this),se.deps?(n.prevDep=se.depsTail,se.depsTail.nextDep=n,se.depsTail=n):se.deps=se.depsTail=n,Xg(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const i=n.nextDep;i.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=i),n.prevDep=se.depsTail,n.nextDep=void 0,se.depsTail.nextDep=n,se.depsTail=n,se.deps===n&&(se.deps=i)}return n}trigger(e){this.version++,wr++,this.notify(e)}notify(e){kd();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Td()}}}function Xg(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)Xg(i)}const n=t.dep.subs;n!==t&&(t.prevSub=n,n&&(n.nextSub=t)),t.dep.subs=t}}const tl=new WeakMap,Ro=Symbol(""),Nc=Symbol(""),xr=Symbol("");function ze(t,e,n){if(Pn&&se){let i=tl.get(t);i||tl.set(t,i=new Map);let o=i.get(n);o||(i.set(n,o=new ql),o.map=i,o.key=n),o.track()}}function yi(t,e,n,i,o,s){const r=tl.get(t);if(!r){wr++;return}const a=l=>{l&&l.trigger()};if(kd(),e==="clear")r.forEach(a);else{const l=St(t),c=l&&Wl(n);if(l&&n==="length"){const u=Number(i);r.forEach((d,p)=>{(p==="length"||p===xr||!mn(p)&&p>=u)&&a(d)})}else switch((n!==void 0||r.has(void 0))&&a(r.get(n)),c&&a(r.get(xr)),e){case"add":l?c&&a(r.get("length")):(a(r.get(Ro)),Gi(t)&&a(r.get(Nc)));break;case"delete":l||(a(r.get(Ro)),Gi(t)&&a(r.get(Nc)));break;case"set":Gi(t)&&a(r.get(Ro));break}}Td()}function pb(t,e){const n=tl.get(t);return n&&n.get(e)}function ts(t){const e=Jt(t);return e===t?e:(ze(e,"iterate",xr),gn(t)?e:e.map(Ln))}function Xl(t){return ze(t=Jt(t),"iterate",xr),t}function Yn(t,e){return Oi(t)?Er(Bo(t)?Ln(e):e):Ln(e)}const fb={__proto__:null,[Symbol.iterator](){return Vu(this,Symbol.iterator,t=>Yn(this,t))},concat(...t){return ts(this).concat(...t.map(e=>St(e)?ts(e):e))},entries(){return Vu(this,"entries",t=>(t[1]=Yn(this,t[1]),t))},every(t,e){return ui(this,"every",t,e,void 0,arguments)},filter(t,e){return ui(this,"filter",t,e,n=>n.map(i=>Yn(this,i)),arguments)},find(t,e){return ui(this,"find",t,e,n=>Yn(this,n),arguments)},findIndex(t,e){return ui(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return ui(this,"findLast",t,e,n=>Yn(this,n),arguments)},findLastIndex(t,e){return ui(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return ui(this,"forEach",t,e,void 0,arguments)},includes(...t){return ju(this,"includes",t)},indexOf(...t){return ju(this,"indexOf",t)},join(t){return ts(this).join(t)},lastIndexOf(...t){return ju(this,"lastIndexOf",t)},map(t,e){return ui(this,"map",t,e,void 0,arguments)},pop(){return Vs(this,"pop")},push(...t){return Vs(this,"push",t)},reduce(t,...e){return Qh(this,"reduce",t,e)},reduceRight(t,...e){return Qh(this,"reduceRight",t,e)},shift(){return Vs(this,"shift")},some(t,e){return ui(this,"some",t,e,void 0,arguments)},splice(...t){return Vs(this,"splice",t)},toReversed(){return ts(this).toReversed()},toSorted(t){return ts(this).toSorted(t)},toSpliced(...t){return ts(this).toSpliced(...t)},unshift(...t){return Vs(this,"unshift",t)},values(){return Vu(this,"values",t=>Yn(this,t))}};function Vu(t,e,n){const i=Xl(t),o=i[e]();return i!==t&&!gn(t)&&(o._next=o.next,o.next=()=>{const s=o._next();return s.done||(s.value=n(s.value)),s}),o}const gb=Array.prototype;function ui(t,e,n,i,o,s){const r=Xl(t),a=r!==t&&!gn(t),l=r[e];if(l!==gb[e]){const d=l.apply(t,s);return a?Ln(d):d}let c=n;r!==t&&(a?c=function(d,p){return n.call(this,Yn(t,d),p,t)}:n.length>2&&(c=function(d,p){return n.call(this,d,p,t)}));const u=l.call(r,c,i);return a&&o?o(u):u}function Qh(t,e,n,i){const o=Xl(t),s=o!==t&&!gn(t);let r=n,a=!1;o!==t&&(s?(a=i.length===0,r=function(c,u,d){return a&&(a=!1,c=Yn(t,c)),n.call(this,c,Yn(t,u),d,t)}):n.length>3&&(r=function(c,u,d){return n.call(this,c,u,d,t)}));const l=o[e](r,...i);return a?Yn(t,l):l}function ju(t,e,n){const i=Jt(t);ze(i,"iterate",xr);const o=i[e](...n);return(o===-1||o===!1)&&Os(n[0])?(n[0]=Jt(n[0]),i[e](...n)):o}function Vs(t,e,n=[]){Ti(),kd();const i=Jt(t)[e].apply(t,n);return Td(),Di(),i}const mb=Sd("__proto__,__v_isRef,__isVue"),Yg=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(mn));function vb(t){mn(t)||(t=String(t));const e=Jt(this);return ze(e,"has",t),e.hasOwnProperty(t)}class Zg{constructor(e=!1,n=!1){this._isReadonly=e,this._isShallow=n}get(e,n,i){if(n==="__v_skip")return e.__v_skip;const o=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return s;if(n==="__v_raw")return i===(o?s?im:nm:s?em:tm).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const r=St(e);if(!o){let l;if(r&&(l=fb[n]))return l;if(n==="hasOwnProperty")return vb}const a=Reflect.get(e,n,_e(e)?e:i);if((mn(n)?Yg.has(n):mb(n))||(o||ze(e,"get",n),s))return a;if(_e(a)){const l=r&&Wl(n)?a:a.value;return o&&Zt(l)?el(l):l}return Zt(a)?o?el(a):xs(a):a}}class Qg extends Zg{constructor(e=!1){super(!1,e)}set(e,n,i,o){let s=e[n];const r=St(e)&&Wl(n);if(!this._isShallow){const c=Oi(s);if(!gn(i)&&!Oi(i)&&(s=Jt(s),i=Jt(i)),!r&&_e(s)&&!_e(i))return c||(s.value=i),!0}const a=r?Number(n)t,da=t=>Reflect.getPrototypeOf(t);function xb(t,e,n){return function(...i){const o=this.__v_raw,s=Jt(o),r=Gi(s),a=t==="entries"||t===Symbol.iterator&&r,l=t==="keys"&&r,c=o[t](...i),u=n?Lc:e?Er:Ln;return!e&&ze(s,"iterate",l?Nc:Ro),we(Object.create(c),{next(){const{value:d,done:p}=c.next();return p?{value:d,done:p}:{value:a?[u(d[0]),u(d[1])]:u(d),done:p}}})}}function ha(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function Eb(t,e){const n={get(i){const o=this.__v_raw,s=Jt(o),r=Jt(i);t||(Re(i,r)&&ze(s,"get",i),ze(s,"get",r));const{has:a}=da(s),l=e?Lc:t?Er:Ln;if(a.call(s,i))return l(o.get(i));if(a.call(s,r))return l(o.get(r));o!==s&&o.get(i)},get size(){const i=this.__v_raw;return!t&&ze(Jt(i),"iterate",Ro),i.size},has(i){const o=this.__v_raw,s=Jt(o),r=Jt(i);return t||(Re(i,r)&&ze(s,"has",i),ze(s,"has",r)),i===r?o.has(i):o.has(i)||o.has(r)},forEach(i,o){const s=this,r=s.__v_raw,a=Jt(r),l=e?Lc:t?Er:Ln;return!t&&ze(a,"iterate",Ro),r.forEach((c,u)=>i.call(o,l(c),l(u),s))}};return we(n,t?{add:ha("add"),set:ha("set"),delete:ha("delete"),clear:ha("clear")}:{add(i){const o=Jt(this),s=da(o),r=Jt(i),a=!e&&!gn(i)&&!Oi(i)?r:i;return s.has.call(o,a)||Re(i,a)&&s.has.call(o,i)||Re(r,a)&&s.has.call(o,r)||(o.add(a),yi(o,"add",a,a)),this},set(i,o){!e&&!gn(o)&&!Oi(o)&&(o=Jt(o));const s=Jt(this),{has:r,get:a}=da(s);let l=r.call(s,i);l||(i=Jt(i),l=r.call(s,i));const c=a.call(s,i);return s.set(i,o),l?Re(o,c)&&yi(s,"set",i,o):yi(s,"add",i,o),this},delete(i){const o=Jt(this),{has:s,get:r}=da(o);let a=s.call(o,i);a||(i=Jt(i),a=s.call(o,i)),r&&r.call(o,i);const l=o.delete(i);return a&&yi(o,"delete",i,void 0),l},clear(){const i=Jt(this),o=i.size!==0,s=i.clear();return o&&yi(i,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=xb(i,t,e)}),n}function Yl(t,e){const n=Eb(t,e);return(i,o,s)=>o==="__v_isReactive"?!t:o==="__v_isReadonly"?t:o==="__v_raw"?i:Reflect.get(Mt(n,o)&&o in i?n:i,o,s)}const Cb={get:Yl(!1,!1)},Sb={get:Yl(!1,!0)},Ab={get:Yl(!0,!1)},kb={get:Yl(!0,!0)},tm=new WeakMap,em=new WeakMap,nm=new WeakMap,im=new WeakMap;function Tb(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function xs(t){return Oi(t)?t:Zl(t,!1,yb,Cb,tm)}function Db(t){return Zl(t,!1,_b,Sb,em)}function el(t){return Zl(t,!0,bb,Ab,nm)}function Ob(t){return Zl(t,!0,wb,kb,im)}function Zl(t,e,n,i,o){if(!Zt(t)||t.__v_raw&&!(e&&t.__v_isReactive)||t.__v_skip||!Object.isExtensible(t))return t;const s=o.get(t);if(s)return s;const r=Tb(Xy(t));if(r===0)return t;const a=new Proxy(t,r===2?i:n);return o.set(t,a),a}function Bo(t){return Oi(t)?Bo(t.__v_raw):!!(t&&t.__v_isReactive)}function Oi(t){return!!(t&&t.__v_isReadonly)}function gn(t){return!!(t&&t.__v_isShallow)}function Os(t){return t?!!t.__v_raw:!1}function Jt(t){const e=t&&t.__v_raw;return e?Jt(e):t}function $b(t){return!Mt(t,"__v_skip")&&Object.isExtensible(t)&&Lg(t,"__v_skip",!0),t}const Ln=t=>Zt(t)?xs(t):t,Er=t=>Zt(t)?el(t):t;function _e(t){return t?t.__v_isRef===!0:!1}function Rt(t){return om(t,!1)}function rn(t){return om(t,!0)}function om(t,e){return _e(t)?t:new Rb(t,e)}class Rb{constructor(e,n){this.dep=new ql,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?e:Jt(e),this._value=n?e:Ln(e),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(e){const n=this._rawValue,i=this.__v_isShallow||gn(e)||Oi(e);e=i?e:Jt(e),Re(e,n)&&(this._rawValue=e,this._value=i?e:Ln(e),this.dep.trigger())}}function E(t){return _e(t)?t.value:t}function tn(t){return $t(t)?t():E(t)}const Bb={get:(t,e,n)=>e==="__v_raw"?t:E(Reflect.get(t,e,n)),set:(t,e,n,i)=>{const o=t[e];return _e(o)&&!_e(n)?(o.value=n,!0):Reflect.set(t,e,n,i)}};function sm(t){return Bo(t)?t:new Proxy(t,Bb)}class Pb{constructor(e){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new ql,{get:i,set:o}=e(n.track.bind(n),n.trigger.bind(n));this._get=i,this._set=o}get value(){return this._value=this._get()}set value(e){this._set(e)}}function Nb(t){return new Pb(t)}class Lb{constructor(e,n,i){this._object=e,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0,this._key=mn(n)?n:String(n),this._raw=Jt(e);let o=!0,s=e;if(!St(e)||mn(this._key)||!Wl(this._key))do o=!Os(s)||gn(s);while(o&&(s=s.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=E(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&_e(this._raw[this._key])){const n=this._object[this._key];if(_e(n)){n.value=e;return}}this._object[this._key]=e}get dep(){return pb(this._raw,this._key)}}class Fb{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function So(t,e,n){return _e(t)?t:$t(t)?new Fb(t):Zt(t)&&arguments.length>1?Vb(t,e,n):Rt(t)}function Vb(t,e,n){return new Lb(t,e,n)}class jb{constructor(e,n,i){this.fn=e,this.setter=n,this._value=void 0,this.dep=new ql(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=wr-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&se!==this)return Jg(this,!0),!0}get value(){const e=this.dep.track();return Kg(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function Ub(t,e,n=!1){let i,o;return $t(t)?i=t:(i=t.get,o=t.set),new jb(i,o,n)}const pa={},nl=new WeakMap;let yo;function Ib(t,e=!1,n=yo){if(n){let i=nl.get(n);i||nl.set(n,i=[]),i.push(t)}}function zb(t,e,n=zt){const{immediate:i,deep:o,once:s,scheduler:r,augmentJob:a,call:l}=n,c=k=>o?k:gn(k)||o===!1||o===0?bi(k,1):bi(k);let u,d,p,f,v=!1,g=!1;if(_e(t)?(d=()=>t.value,v=gn(t)):Bo(t)?(d=()=>c(t),v=!0):St(t)?(g=!0,v=t.some(k=>Bo(k)||gn(k)),d=()=>t.map(k=>{if(_e(k))return k.value;if(Bo(k))return c(k);if($t(k))return l?l(k,2):k()})):$t(t)?e?d=l?()=>l(t,2):t:d=()=>{if(p){Ti();try{p()}finally{Di()}}const k=yo;yo=u;try{return l?l(t,3,[f]):t(f)}finally{yo=k}}:d=kn,e&&o){const k=d,N=o===!0?1/0:o;d=()=>bi(k(),N)}const w=Ig(),b=()=>{u.stop(),w&&w.active&&Ad(w.effects,u)};if(s&&e){const k=e;e=(...N)=>{const F=k(...N);return b(),F}}let S=g?new Array(t.length).fill(pa):pa;const D=k=>{if(!(!(u.flags&1)||!u.dirty&&!k))if(e){const N=u.run();if(k||o||v||(g?N.some((F,j)=>Re(F,S[j])):Re(N,S))){p&&p();const F=yo;yo=u;try{const j=[N,S===pa?void 0:g&&S[0]===pa?[]:S,f];S=N,l?l(e,3,j):e(...j)}finally{yo=F}}}else u.run()};return a&&a(D),u=new zg(d),u.scheduler=r?()=>r(D,!1):D,f=k=>Ib(k,!1,u),p=u.onStop=()=>{const k=nl.get(u);if(k){if(l)l(k,4);else for(const N of k)N();nl.delete(u)}},e?i?D(!0):S=u.run():r?r(D.bind(null,!0),!0):u.run(),b.pause=u.pause.bind(u),b.resume=u.resume.bind(u),b.stop=b,b}function bi(t,e=1/0,n){if(e<=0||!Zt(t)||t.__v_skip||(n=n||new Map,(n.get(t)||0)>=e))return t;if(n.set(t,e),e--,_e(t))bi(t.value,e,n);else if(St(t))for(let i=0;i{bi(i,e,n)});else if(Ng(t)){for(const i in t)bi(t[i],e,n);for(const i of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,i)&&bi(t[i],e,n)}return t}function Kr(t,e,n,i){try{return i?t(...i):t()}catch(o){Ql(o,e,n)}}function Tn(t,e,n,i){if($t(t)){const o=Kr(t,e,n,i);return o&&Bg(o)&&o.catch(s=>{Ql(s,e,n)}),o}if(St(t)){const o=[];for(let s=0;s>>1,o=Qe[i],s=Cr(o);s=Cr(n)?Qe.push(t):Qe.splice(Jb(e),0,t),t.flags|=1,am()}}function am(){il||(il=rm.then(cm))}function lm(t){if(!St(t))zi&&t.id===-1?zi.splice(ls+1,0,t):t.flags&1||(ps.push(t),t.flags|=1);else for(let e=0;eCr(n)-Cr(i));if(ps.length=0,zi){for(let n=0;nt.id==null?t.flags&2?-1:1/0:t.id;function cm(t){try{for(Gn=0;Gndt;function dt(t,e=Le,n){if(!e||t._n)return t;const i=(...o)=>{i._d&&ul(-1);const s=ol(e),r=Ci.length;let a;try{a=t(...o)}finally{for(let l=Ci.length;l>r;l--)Fd();ol(s),i._d&&ul(1)}return a};return i._n=!0,i._c=!0,i._d=!0,i}function Sn(t,e){if(Le===null)return t;const n=ru(Le),i=t.dirs||(t.dirs=[]);for(let o=0;o1)return n&&$t(e)?e.call(i&&i.proxy):e}}const qb=Symbol.for("v-scx"),Xb=()=>Ei(qb);function dm(t,e){return tu(t,null,e)}function Yb(t,e){return tu(t,null,{flush:"sync"})}function ke(t,e,n){return tu(t,e,n)}function tu(t,e,n=zt){const{immediate:i,deep:o,flush:s,once:r}=n,a=we({},n),l=e&&i||!e&&s!=="post";let c;if(Or){if(s==="sync"){const f=Xb();c=f.__watcherHandles||(f.__watcherHandles=[])}else if(!l){const f=()=>{};return f.stop=kn,f.resume=kn,f.pause=kn,f}}const u=He;a.call=(f,v,g)=>Tn(f,u,v,g);let d=!1;s==="post"?a.scheduler=f=>{Ze(f,u&&u.suspense)}:s!=="sync"&&(d=!0,a.scheduler=(f,v)=>{v?f():Od(f)}),a.augmentJob=f=>{e&&(f.flags|=4),d&&(f.flags|=2,u&&(f.id=u.uid,f.i=u))};const p=zb(t,e,a);return Or&&(c?c.push(p):l&&p()),p}function Zb(t,e,n){const i=this.proxy,o=ae(t)?t.includes(".")?hm(i,t):()=>i[t]:t.bind(i,i);let s;$t(e)?s=e:(s=e.handler,n=e);const r=Zr(this),a=tu(o,s.bind(i),n);return r(),a}function hm(t,e){const n=e.split(".");return()=>{let i=t;for(let o=0;ot.__isTeleport,xo=t=>t&&(t.disabled||t.disabled===""),Qb=t=>t&&(t.defer||t.defer===""),tp=t=>typeof SVGElement<"u"&&t instanceof SVGElement,ep=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,Fc=(t,e)=>{const n=t&&t.to;return ae(n)?e?e(n):null:n},Mb={name:"Teleport",__isTeleport:!0,process(t,e,n,i,o,s,r,a,l,c){const{mc:u,pc:d,pbc:p,o:{insert:f,querySelector:v,createText:g,createComment:w,parentNode:b}}=c,S=xo(e.props);let{dynamicChildren:D}=e;const k=(j,I,X)=>{j.shapeFlag&16&&u(j.children,I,X,o,s,r,a,l)},N=(j=e)=>{const I=xo(j.props),X=j.target=Fc(j.props,v),J=Vc(X,j,g,f);X&&(r!=="svg"&&tp(X)?r="svg":r!=="mathml"&&ep(X)&&(r="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(X),I||(k(j,X,J),Ms(j,!1)))},F=j=>{const I=()=>{if(ji.get(j)===I){if(ji.delete(j),xo(j.props)){const X=b(j.el)||n;k(j,X,j.anchor),Ms(j,!0)}N(j)}};ji.set(j,I),Ze(I,s)};if(t==null){const j=e.el=g(""),I=e.anchor=g("");if(f(j,n,i),f(I,n,i),Qb(e.props)||s&&s.pendingBranch){F(e);return}S&&(k(e,n,I),Ms(e,!0)),N()}else{e.el=t.el;const j=e.anchor=t.anchor,I=ji.get(t);if(I){I.flags|=8,ji.delete(t),F(e);return}e.targetStart=t.targetStart;const X=e.target=t.target,J=e.targetAnchor=t.targetAnchor,Y=xo(t.props),$=Y?n:X,U=Y?j:J;if(r==="svg"||tp(X)?r="svg":(r==="mathml"||ep(X))&&(r="mathml"),D?(p(t.dynamicChildren,D,$,o,s,r,a),Ld(t,e,!0)):l||d(t,e,$,U,o,s,r,a,!1),S)Y?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):fa(e,n,j,c,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const M=Fc(e.props,v);M&&(e.target=M,fa(e,M,null,c,0))}else Y&&fa(e,X,J,c,1);Ms(e,S)}},remove(t,e,n,{um:i,o:{remove:o}},s){const{shapeFlag:r,children:a,anchor:l,targetStart:c,targetAnchor:u,target:d,props:p}=t,f=xo(p),v=s||!f,g=ji.get(t);if(g&&(g.flags|=8,ji.delete(t)),d&&(o(c),o(u)),s&&o(l),!g&&(f||d)&&r&16)for(let w=0;w{t.isMounted=!0}),xm(()=>{t.isUnmounting=!0}),t}const vn=[Function,Array],fm={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:vn,onEnter:vn,onAfterEnter:vn,onEnterCancelled:vn,onBeforeLeave:vn,onLeave:vn,onAfterLeave:vn,onLeaveCancelled:vn,onBeforeAppear:vn,onAppear:vn,onAfterAppear:vn,onAppearCancelled:vn},gm=t=>{const e=t.subTree;return e.component?gm(e.component):e},i_={name:"BaseTransition",props:fm,setup(t,{slots:e}){const n=li(),i=n_();return()=>{const o=e.default&&ym(e.default(),!0),s=o&&o.length?mm(o):n.subTree?st():void 0;if(!s)return;const r=Jt(t),{mode:a}=r;if(i.isLeaving)return Uu(s);const l=sl(s);if(!l)return Uu(s);let c=jc(l,r,i,n,d=>c=d);l.type!==Be&&Sr(l,c);let u=n.subTree&&sl(n.subTree);if(u&&u.type!==Be&&!Eo(u,l)&&gm(n).type!==Be){let d=jc(u,r,i,n);if(Sr(u,d),a==="out-in"&&l.type!==Be)return i.isLeaving=!0,d.afterLeave=()=>{i.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,u=void 0},Uu(s);a==="in-out"&&l.type!==Be?d.delayLeave=(p,f,v)=>{const g=vm(i,u);g[String(u.key)]=u,p[wn]=()=>{f(),p[wn]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{v(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return s}}};function mm(t){let e=t[0];if(t.length>1){for(const n of t)if(n.type!==Be){e=n;break}}return e}const o_=i_;function vm(t,e){const{leavingVNodes:n}=t;let i=n.get(e.type);return i||(i=Object.create(null),n.set(e.type,i)),i}function jc(t,e,n,i,o){const{appear:s,mode:r,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:f,onAfterLeave:v,onLeaveCancelled:g,onBeforeAppear:w,onAppear:b,onAfterAppear:S,onAppearCancelled:D}=e,k=String(t.key),N=vm(n,t),F=(X,J)=>{X&&Tn(X,i,9,J)},j=(X,J)=>{const Y=J[1];F(X,J),St(X)?X.every($=>$.length<=1)&&Y():X.length<=1&&Y()},I={mode:r,persisted:a,beforeEnter(X){let J=l;if(!n.isMounted)if(s)J=w||l;else return;X[wn]&&X[wn](!0);const Y=N[k];Y&&Eo(t,Y)&&Y.el[wn]&&Y.el[wn](),F(J,[X])},enter(X){if(N[k]===t)return;let J=c,Y=u,$=d;if(!n.isMounted)if(s)J=b||c,Y=S||u,$=D||d;else return;let U=!1;X[js]=nt=>{U||(U=!0,nt?F($,[X]):F(Y,[X]),I.delayedLeave&&I.delayedLeave(),X[js]=void 0)};const M=X[js].bind(null,!1);J?j(J,[X,M]):M()},leave(X,J){const Y=String(t.key);if(X[js]&&X[js](!0),n.isUnmounting)return J();F(p,[X]);let $=!1;X[wn]=M=>{$||($=!0,J(),M?F(g,[X]):F(v,[X]),X[wn]=void 0,N[Y]===t&&delete N[Y])};const U=X[wn].bind(null,!1);N[Y]=t,f?j(f,[X,U]):U()},clone(X){const J=jc(X,e,n,i,o);return o&&o(J),J}};return I}function Uu(t){if(nu(t))return t=Zi(t),t.children=null,t}function sl(t){if(!nu(t))return eu(t.type)&&t.children?mm(t.children):t;if(t.component)return t.component.subTree;const{shapeFlag:e,children:n}=t;if(n){if(e&16)return n[0];if(e&32&&$t(n.default))return n.default()}}function Sr(t,e){if(t.shapeFlag&6&&t.component){t.transition=e;const n=t.component.subTree;Sr(eu(n.type)&&sl(n)||n,e)}else t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function ym(t,e=!1,n){let i=[],o=0;for(let s=0;s1)for(let s=0;sn.value,set:o=>n.value=o})}return n}function np(t,e){let n;return!!((n=Object.getOwnPropertyDescriptor(t,e))&&!n.configurable)}const rl=new WeakMap;function ur(t,e,n,i,o=!1){if(St(t)){t.forEach((g,w)=>ur(g,e&&(St(e)?e[w]:e),n,i,o));return}if(fs(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&ur(t,e,n,i.component.subTree);return}const s=i.shapeFlag&4?ru(i.component):i.el,r=o?null:s,{i:a,r:l}=t,c=e&&e.r,u=a.refs===zt?a.refs={}:a.refs,d=a.setupState,p=Jt(d),f=d===zt?Rg:g=>np(u,g)?!1:Mt(p,g),v=(g,w)=>!(w&&np(u,w));if(c!=null&&c!==l){if(ip(e),ae(c))u[c]=null,f(c)&&(d[c]=null);else if(_e(c)){const g=e;v(c,g.k)&&(c.value=null),g.k&&(u[g.k]=null)}}if($t(l))Kr(l,a,12,[r,u]);else{const g=ae(l),w=_e(l);if(g||w){const b=()=>{if(t.f){const S=g?f(l)?d[l]:u[l]:v()||!t.k?l.value:u[t.k];if(o)St(S)&&Ad(S,s);else if(St(S))S.includes(s)||S.push(s);else if(g)u[l]=[s],f(l)&&(d[l]=u[l]);else{const D=[s];v(l,t.k)&&(l.value=D),t.k&&(u[t.k]=D)}}else g?(u[l]=r,f(l)&&(d[l]=r)):w&&(v(l,t.k)&&(l.value=r),t.k&&(u[t.k]=r))};if(r){const S=()=>{b(),rl.delete(t)};S.id=-1,rl.set(t,S),Ze(S,n)}else ip(t),b()}}}function ip(t){const e=rl.get(t);e&&(e.flags|=8,rl.delete(t))}Ma().requestIdleCallback,Ma().cancelIdleCallback;const fs=t=>!!t.type.__asyncLoader,nu=t=>t.type.__isKeepAlive;function s_(t,e){_m(t,"a",e)}function r_(t,e){_m(t,"da",e)}function _m(t,e,n=He){const i=t.__wdc||(t.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return t()});if(iu(e,i,n),n){let o=n.parent;for(;o&&o.parent;)nu(o.parent.vnode)&&a_(i,e,n,o),o=o.parent}}function a_(t,e,n,i){const o=iu(e,t,i,!0);Dn(()=>{Ad(i[e],o)},n)}function iu(t,e,n=He,i=!1){if(n){const o=n[t]||(n[t]=[]),s=e.__weh||(e.__weh=(...r)=>{Ti();const a=Zr(n),l=Tn(e,n,t,r);return a(),Di(),l});return i?o.unshift(s):o.push(s),s}}const Bi=t=>(e,n=He)=>{(!Or||t==="sp")&&iu(t,(...i)=>e(...i),n)},l_=Bi("bm"),Pi=Bi("m"),wm=Bi("bu"),u_=Bi("u"),xm=Bi("bum"),Dn=Bi("um"),c_=Bi("sp"),d_=Bi("rtg"),h_=Bi("rtc");function p_(t,e=He){iu("ec",t,e)}const Rd="components",f_="directives";function xn(t,e){return Bd(Rd,t,!0,e)||t}const Em=Symbol.for("v-ndc");function Po(t){return ae(t)?Bd(Rd,t,!1)||t:t||Em}function g_(t){return Bd(f_,t)}function Bd(t,e,n=!0,i=!1){const o=Le||He;if(o){const s=o.type;if(t===Rd){const a=X_(s,!1);if(a&&(a===e||a===Je(e)||a===Kl(Je(e))))return s}const r=op(o[t]||s[t],e)||op(o.appContext[t],e);return!r&&i?s:r}}function op(t,e){return t&&(t[e]||t[Je(e)]||t[Kl(Je(e))])}function Fe(t,e,n,i){let o;const s=n,r=St(t);if(r||ae(t)){const a=r&&Bo(t);let l=!1,c=!1;a&&(l=!gn(t),c=Oi(t),t=Xl(t)),o=new Array(t.length);for(let u=0,d=t.length;ue(a,l,void 0,s));else{const a=Object.keys(t);o=new Array(a.length);for(let l=0,c=a.length;l{const s=i.fn(...o);return s&&(s.key=i.key),s}:i.fn)}return t}function kt(t,e,n,i,o,s){if(n==null&&(n={}),Le.ce||Le.parent&&fs(Le.parent)&&Le.parent.ce){const c=n,u=Object.keys(c).length>0;return e!=="default"&&(c.name=e),C(),ct(yt,null,[q("slot",c,i&&i())],u?-2:64)}let r=t[e];r&&r._c&&(r._d=!1);const a=Ci.length;C();let l;try{const c=r&&Cm(r(n)),u=n.key||s||c&&c.key;l=ct(yt,{key:(u&&!mn(u)?u:`_${e}`)+(!c&&i?"_fb":"")},c||(i?i():[]),c&&t._===1?64:-2)}catch(c){for(let u=Ci.length;u>a;u--)Fd();throw c}finally{r&&r._c&&(r._d=!0)}return!o&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Cm(t){return t.some(e=>Tr(e)?!(e.type===Be||e.type===yt&&!Cm(e.children)):!0)?t:null}function Sm(t,e){const n={};for(const i in t)n[e&&/[A-Z]/.test(i)?`on:${i}`:La(i)]=t[i];return n}const Uc=t=>t?Gm(t)?ru(t):Uc(t.parent):null,cr=we(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Uc(t.parent),$root:t=>Uc(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Tm(t),$forceUpdate:t=>t.f||(t.f=()=>{Od(t.update)}),$nextTick:t=>t.n||(t.n=qr.bind(t.proxy)),$watch:t=>Zb.bind(t)}),Iu=(t,e)=>t!==zt&&!t.__isScriptSetup&&Mt(t,e),m_={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:n,setupState:i,data:o,props:s,accessCache:r,type:a,appContext:l}=t;if(e[0]!=="$"){const p=r[e];if(p!==void 0)switch(p){case 1:return i[e];case 2:return o[e];case 4:return n[e];case 3:return s[e]}else{if(Iu(i,e))return r[e]=1,i[e];if(o!==zt&&Mt(o,e))return r[e]=2,o[e];if(Mt(s,e))return r[e]=3,s[e];if(n!==zt&&Mt(n,e))return r[e]=4,n[e];Ic&&(r[e]=0)}}const c=cr[e];let u,d;if(c)return e==="$attrs"&&ze(t.attrs,"get",""),c(t);if((u=a.__cssModules)&&(u=u[e]))return u;if(n!==zt&&Mt(n,e))return r[e]=4,n[e];if(d=l.config.globalProperties,Mt(d,e))return d[e]},set({_:t},e,n){const{data:i,setupState:o,ctx:s}=t;return Iu(o,e)?(o[e]=n,!0):i!==zt&&Mt(i,e)?(i[e]=n,!0):Mt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(s[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:i,appContext:o,props:s,type:r}},a){let l;return!!(n[a]||t!==zt&&a[0]!=="$"&&Mt(t,a)||Iu(e,a)||Mt(s,a)||Mt(i,a)||Mt(cr,a)||Mt(o.config.globalProperties,a)||(l=r.__cssModules)&&l[a])},defineProperty(t,e,n){return n.get!=null?t._.accessCache[e]=0:Mt(n,"value")&&this.set(t,e,n.value,null),Reflect.defineProperty(t,e,n)}};function ou(){return Am().slots}function v_(){return Am().attrs}function Am(t){const e=li();return e.setupContext||(e.setupContext=qm(e))}function al(t){return St(t)?t.reduce((e,n)=>(e[n]=null,e),{}):t}function ii(t,e){return!t||!e?t||e:St(t)&&St(e)?t.concat(e):we({},al(t),al(e))}let Ic=!0;function y_(t){const e=Tm(t),n=t.proxy,i=t.ctx;Ic=!1,e.beforeCreate&&sp(e.beforeCreate,t,"bc");const{data:o,computed:s,methods:r,watch:a,provide:l,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:f,updated:v,activated:g,deactivated:w,beforeDestroy:b,beforeUnmount:S,destroyed:D,unmounted:k,render:N,renderTracked:F,renderTriggered:j,errorCaptured:I,serverPrefetch:X,expose:J,inheritAttrs:Y,components:$,directives:U,filters:M}=e;if(c&&b_(c,i,null),r)for(const et in r){const ut=r[et];$t(ut)&&(i[et]=ut.bind(n))}if(o){const et=o.call(n,n);Zt(et)&&(t.data=xs(et))}if(Ic=!0,s)for(const et in s){const ut=s[et],ht=$t(ut)?ut.bind(n,n):$t(ut.get)?ut.get.bind(n,n):kn,mt=!$t(ut)&&$t(ut.set)?ut.set.bind(n):kn,vt=rt({get:ht,set:mt});Object.defineProperty(i,et,{enumerable:!0,configurable:!0,get:()=>vt.value,set:Tt=>vt.value=Tt})}if(a)for(const et in a)km(a[et],i,n,et);if(l){const et=$t(l)?l.call(n):l;Reflect.ownKeys(et).forEach(ut=>{$d(ut,et[ut])})}u&&sp(u,t,"c");function nt(et,ut){St(ut)?ut.forEach(ht=>et(ht.bind(n))):ut&&et(ut.bind(n))}if(nt(l_,d),nt(Pi,p),nt(wm,f),nt(u_,v),nt(s_,g),nt(r_,w),nt(p_,I),nt(h_,F),nt(d_,j),nt(xm,S),nt(Dn,k),nt(c_,X),St(J))if(J.length){const et=t.exposed||(t.exposed={});J.forEach(ut=>{Object.defineProperty(et,ut,{get:()=>n[ut],set:ht=>n[ut]=ht,enumerable:!0})})}else t.exposed||(t.exposed={});N&&t.render===kn&&(t.render=N),Y!=null&&(t.inheritAttrs=Y),$&&(t.components=$),U&&(t.directives=U),X&&bm(t)}function b_(t,e,n=kn){St(t)&&(t=zc(t));for(const i in t){const o=t[i];let s;Zt(o)?"default"in o?s=Ei(o.from||i,o.default,!0):s=Ei(o.from||i):s=Ei(o),_e(s)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):e[i]=s}}function sp(t,e,n){Tn(St(t)?t.map(i=>i.bind(e.proxy)):t.bind(e.proxy),e,n)}function km(t,e,n,i){let o=i.includes(".")?hm(n,i):()=>n[i];if(ae(t)){const s=e[t];$t(s)&&ke(o,s)}else if($t(t))ke(o,t.bind(n));else if(Zt(t))if(St(t))t.forEach(s=>km(s,e,n,i));else{const s=$t(t.handler)?t.handler.bind(n):e[t.handler];$t(s)&&ke(o,s,t)}}function Tm(t){const e=t.type,{mixins:n,extends:i}=e,{mixins:o,optionsCache:s,config:{optionMergeStrategies:r}}=t.appContext,a=s.get(e);let l;return a?l=a:!o.length&&!n&&!i?l=e:(l={},o.length&&o.forEach(c=>ll(l,c,r,!0)),ll(l,e,r)),Zt(e)&&s.set(e,l),l}function ll(t,e,n,i=!1){const{mixins:o,extends:s}=e;s&&ll(t,s,n,!0),o&&o.forEach(r=>ll(t,r,n,!0));for(const r in e)if(!(i&&r==="expose")){const a=__[r]||n&&n[r];t[r]=a?a(t[r],e[r]):e[r]}return t}const __={data:rp,props:ap,emits:ap,methods:tr,computed:tr,beforeCreate:Xe,created:Xe,beforeMount:Xe,mounted:Xe,beforeUpdate:Xe,updated:Xe,beforeDestroy:Xe,beforeUnmount:Xe,destroyed:Xe,unmounted:Xe,activated:Xe,deactivated:Xe,errorCaptured:Xe,serverPrefetch:Xe,components:tr,directives:tr,watch:x_,provide:rp,inject:w_};function rp(t,e){return e?t?function(){return we($t(t)?t.call(this,this):t,$t(e)?e.call(this,this):e)}:e:t}function w_(t,e){return tr(zc(t),zc(e))}function zc(t){if(St(t)){const e={};for(let n=0;n{let u,d=zt,p;return Yb(()=>{const f=t[o];Re(u,f)&&(u=f,c())}),{get(){return l(),n.get?n.get(u):u},set(f){const v=n.set?n.set(f):f;if(!Re(v,u)&&!(d!==zt&&Re(f,d)))return;const g=i.vnode.props,w=!!(g&&(e in g||o in g||s in g)&&(`onUpdate:${e}`in g||`onUpdate:${o}`in g||`onUpdate:${s}`in g));w||(u=f,c()),i.emit(`update:${e}`,v),Re(f,d)&&(Re(f,v)&&!Re(v,p)||w&&d!==zt&&!Re(v,u))&&c(),d=f,p=v}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?r||zt:a,done:!1}:{done:!0}}}},a}const Om=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Je(e)}Modifiers`]||t[`${Ri(e)}Modifiers`];function S_(t,e,...n){if(t.isUnmounted)return;const i=t.vnode.props||zt;let o=n;const s=e.startsWith("update:"),r=s&&Om(i,e.slice(7));r&&(r.trim&&(o=n.map(u=>ae(u)?u.trim():u)),r.number&&(o=o.map(Qy)));let a,l=i[a=La(e)]||i[a=La(Je(e))];!l&&s&&(l=i[a=La(Ri(e))]),l&&Tn(l,t,6,o);const c=i[a+"Once"];if(c){if(!t.emitted)t.emitted={};else if(t.emitted[a])return;t.emitted[a]=!0,Tn(c,t,6,o)}}const A_=new WeakMap;function $m(t,e,n=!1){const i=n?A_:e.emitsCache,o=i.get(t);if(o!==void 0)return o;const s=t.emits;let r={},a=!1;if(!$t(t)){const l=c=>{const u=$m(c,e,!0);u&&(a=!0,we(r,u))};!n&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!s&&!a?(Zt(t)&&i.set(t,null),null):(St(s)?s.forEach(l=>r[l]=null):we(r,s),Zt(t)&&i.set(t,r),r)}function su(t,e){return!t||!Hl(e)?!1:(e=e.slice(2),e=e==="Once"?e:e.replace(/Once$/,""),Mt(t,e[0].toLowerCase()+e.slice(1))||Mt(t,Ri(e))||Mt(t,e))}function lp(t){const{type:e,vnode:n,proxy:i,withProxy:o,propsOptions:[s],slots:r,attrs:a,emit:l,render:c,renderCache:u,props:d,data:p,setupState:f,ctx:v,inheritAttrs:g}=t,w=ol(t);let b,S;try{if(n.shapeFlag&4){const k=o||i,N=k;b=Zn(c.call(N,k,u,d,f,p,v)),S=a}else{const k=e;b=Zn(k.length>1?k(d,{attrs:a,slots:r,emit:l}):k(d,null)),S=e.props?a:k_(a)}}catch(k){Ci.length=0,Ql(k,t,1),b=q(Be)}let D=b;if(S&&g!==!1){const k=Object.keys(S),{shapeFlag:N}=D;k.length&&N&7&&(s&&k.some(Jl)&&(S=T_(S,s)),D=Zi(D,S,!1,!0))}if(n.dirs&&(D=Zi(D,null,!1,!0),D.dirs=D.dirs?D.dirs.concat(n.dirs):n.dirs),n.transition){const k=eu(D.type)&&sl(D)||D;Sr(k,n.transition)}return b=D,ol(w),b}const k_=t=>{let e;for(const n in t)(n==="class"||n==="style"||Hl(n))&&((e||(e={}))[n]=t[n]);return e},T_=(t,e)=>{const n={};for(const i in t)(!Jl(i)||!(i.slice(9)in e))&&(n[i]=t[i]);return n};function D_(t,e,n){const{props:i,children:o,component:s}=t,{props:r,children:a,patchFlag:l}=e,c=s.emitsOptions;if(e.dirs||e.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return i?up(i,r,c):!!r;if(l&8){const u=e.dynamicProps;for(let d=0;dObject.create(Bm),Nm=t=>Object.getPrototypeOf(t)===Bm;function $_(t,e,n,i=!1){const o={},s=Pm();t.propsDefaults=Object.create(null),Lm(t,e,o,s);for(const r in t.propsOptions[0])r in o||(o[r]=void 0);n?t.props=i?o:Db(o):t.type.props?t.props=o:t.props=s,t.attrs=s}function R_(t,e,n,i){const{props:o,attrs:s,vnode:{patchFlag:r}}=t,a=Jt(o),[l]=t.propsOptions;let c=!1;if((i||r>0)&&!(r&16)){if(r&8){const u=t.vnode.dynamicProps;for(let d=0;d{l=!0;const[p,f]=Fm(d,e,!0);we(r,p),f&&a.push(...f)};!n&&e.mixins.length&&e.mixins.forEach(u),t.extends&&u(t.extends),t.mixins&&t.mixins.forEach(u)}if(!s&&!l)return Zt(t)&&i.set(t,hs),hs;if(St(s))for(let u=0;ut==="_"||t==="_ctx"||t==="$stable",Nd=t=>St(t)?t.map(Zn):[Zn(t)],P_=(t,e,n)=>{if(e._n)return e;const i=dt((...o)=>Nd(e(...o)),n);return i._c=!1,i},Vm=(t,e,n)=>{const i=t._ctx;for(const o in t){if(Pd(o))continue;const s=t[o];if($t(s))e[o]=P_(o,s,i);else if(s!=null){const r=Nd(s);e[o]=()=>r}}},jm=(t,e)=>{const n=Nd(e);t.slots.default=()=>n},Um=(t,e,n)=>{for(const i in e)(n||!Pd(i))&&(t[i]=e[i])},N_=(t,e,n)=>{const i=t.slots=Pm();if(t.vnode.shapeFlag&32){const o=e._;o?(Um(i,e,n),n&&Lg(i,"_",o,!0)):Vm(e,i)}else e&&jm(t,e)},L_=(t,e,n)=>{const{vnode:i,slots:o}=t;let s=!0,r=zt;if(i.shapeFlag&32){const a=e._;a?n&&a===1?s=!1:Um(o,e,n):(s=!e.$stable,Vm(e,o)),r=e}else e&&(jm(t,e),r={default:1});if(s)for(const a in o)!Pd(a)&&r[a]==null&&delete o[a]},Ze=I_;function F_(t){return V_(t)}function V_(t,e){const n=Ma();n.__VUE__=!0;const{insert:i,remove:o,patchProp:s,createElement:r,createText:a,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:p,setScopeId:f=kn,insertStaticContent:v}=t,g=(T,P,K,it=null,W=null,z=null,Q=void 0,at=null,ot=!!P.dynamicChildren)=>{if(T===P)return;T&&!Eo(T,P)&&(it=oe(T),Ft(T,W,z,!0),T=null),P.patchFlag===-2&&(ot=!1,P.dynamicChildren=null);const{type:tt,ref:_t,shapeFlag:pt}=P;switch(tt){case Yr:w(T,P,K,it);break;case Be:b(T,P,K,it);break;case Va:T==null&&S(P,K,it,Q);break;case yt:$(T,P,K,it,W,z,Q,at,ot);break;default:pt&1?N(T,P,K,it,W,z,Q,at,ot):pt&6?U(T,P,K,it,W,z,Q,at,ot):(pt&64||pt&128)&&tt.process(T,P,K,it,W,z,Q,at,ot,On)}_t!=null&&W?ur(_t,T&&T.ref,z,P||T,!P):_t==null&&T&&T.ref!=null&&ur(T.ref,null,z,T,!0)},w=(T,P,K,it)=>{if(T==null)i(P.el=a(P.children),K,it);else{const W=P.el=T.el;P.children!==T.children&&c(W,P.children)}},b=(T,P,K,it)=>{T==null?i(P.el=l(P.children||""),K,it):P.el=T.el},S=(T,P,K,it)=>{[T.el,T.anchor]=v(T.children,P,K,it,T.el,T.anchor)},D=({el:T,anchor:P},K,it)=>{let W;for(;T&&T!==P;)W=p(T),i(T,K,it),T=W;i(P,K,it)},k=({el:T,anchor:P})=>{let K;for(;T&&T!==P;)K=p(T),o(T),T=K;o(P)},N=(T,P,K,it,W,z,Q,at,ot)=>{if(P.type==="svg"?Q="svg":P.type==="math"&&(Q="mathml"),T==null)F(P,K,it,W,z,Q,at,ot);else{const tt=T.el&&T.el._isVueCE?T.el:null;try{tt&&tt._beginPatch(),X(T,P,W,z,Q,at,ot)}finally{tt&&tt._endPatch()}}},F=(T,P,K,it,W,z,Q,at)=>{let ot,tt;const{props:_t,shapeFlag:pt,transition:xt,dirs:Ct}=T;if(ot=T.el=r(T.type,z,_t&&_t.is,_t),pt&8?u(ot,T.children):pt&16&&I(T.children,ot,null,it,W,zu(T,z),Q,at),Ct&&ro(T,null,it,"created"),j(ot,T,T.scopeId,Q,it),_t){for(const Kt in _t)Kt!=="value"&&!rr(Kt)&&s(ot,Kt,null,_t[Kt],z,it);"value"in _t&&s(ot,"value",null,_t.value,z),(tt=_t.onVnodeBeforeMount)&&Hn(tt,it,T)}Ct&&ro(T,null,it,"beforeMount");const Ot=j_(W,xt);Ot&&xt.beforeEnter(ot),i(ot,P,K),((tt=_t&&_t.onVnodeMounted)||Ot||Ct)&&Ze(()=>{tt&&Hn(tt,it,T),Ot&&xt.enter(ot),Ct&&ro(T,null,it,"mounted")},W)},j=(T,P,K,it,W)=>{if(K&&f(T,K),it)for(let z=0;z{for(let tt=ot;tt{const at=P.el=T.el;let{patchFlag:ot,dynamicChildren:tt,dirs:_t}=P;ot|=T.patchFlag&16;const pt=T.props||zt,xt=P.props||zt;let Ct;if(K&&ao(K,!1),(Ct=xt.onVnodeBeforeUpdate)&&Hn(Ct,K,P,T),_t&&ro(P,T,K,"beforeUpdate"),K&&ao(K,!0),tt&&(!T.dynamicChildren||T.dynamicChildren.length!==tt.length)&&(ot=0,Q=!1,tt=null),(pt.innerHTML&&xt.innerHTML==null||pt.textContent&&xt.textContent==null)&&u(at,""),tt?J(T.dynamicChildren,tt,at,K,it,zu(P,W),z):Q||ht(T,P,at,null,K,it,zu(P,W),z,!1),ot>0){if(ot&16)Y(at,pt,xt,K,W);else if(ot&2&&pt.class!==xt.class&&s(at,"class",null,xt.class,W),ot&4&&s(at,"style",pt.style,xt.style,W),ot&8){const Ot=P.dynamicProps;for(let Kt=0;Kt{Ct&&Hn(Ct,K,P,T),_t&&ro(P,T,K,"updated")},it)},J=(T,P,K,it,W,z,Q)=>{for(let at=0;at{if(P!==K){if(P!==zt)for(const z in P)!rr(z)&&!(z in K)&&s(T,z,P[z],null,W,it);for(const z in K){if(rr(z))continue;const Q=K[z],at=P[z];Q!==at&&z!=="value"&&s(T,z,at,Q,W,it)}"value"in K&&s(T,"value",P.value,K.value,W)}},$=(T,P,K,it,W,z,Q,at,ot)=>{const tt=P.el=T?T.el:a(""),_t=P.anchor=T?T.anchor:a("");let{patchFlag:pt,dynamicChildren:xt,slotScopeIds:Ct}=P;Ct&&(at=at?at.concat(Ct):Ct),T==null?(i(tt,K,it),i(_t,K,it),I(P.children||[],K,_t,W,z,Q,at,ot)):pt>0&&pt&64&&xt&&T.dynamicChildren&&T.dynamicChildren.length===xt.length?(J(T.dynamicChildren,xt,K,W,z,Q,at),(P.key!=null||W&&P===W.subTree)&&Ld(T,P,!0)):ht(T,P,K,_t,W,z,Q,at,ot)},U=(T,P,K,it,W,z,Q,at,ot)=>{P.slotScopeIds=at,T==null?P.shapeFlag&512?W.ctx.activate(P,K,it,Q,ot):M(P,K,it,W,z,Q,ot):nt(T,P,ot)},M=(T,P,K,it,W,z,Q)=>{const at=T.component=W_(T,it,W);if(nu(T)&&(at.ctx.renderer=On),G_(at,!1,Q),at.asyncDep){if(W&&W.registerDep(at,et,Q),!T.el){const ot=at.subTree=q(Be);b(null,ot,P,K),T.placeholder=ot.el}}else et(at,T,P,K,W,z,Q)},nt=(T,P,K)=>{const it=P.component=T.component;if(D_(T,P,K))if(it.asyncDep&&!it.asyncResolved){ut(it,P,K);return}else it.next=P,it.update();else P.el=T.el,it.vnode=P},et=(T,P,K,it,W,z,Q)=>{const at=()=>{if(T.isMounted){let{next:pt,bu:xt,u:Ct,parent:Ot,vnode:Kt}=T;{const m=Im(T);if(m){pt&&(pt.el=Kt.el,ut(T,pt,Q)),m.asyncDep.then(()=>{Ze(()=>{T.isUnmounted||tt()},W)});return}}let jt=pt,Ut;ao(T,!1),pt?(pt.el=Kt.el,ut(T,pt,Q)):pt=Kt,xt&&Fa(xt),(Ut=pt.props&&pt.props.onVnodeBeforeUpdate)&&Hn(Ut,Ot,pt,Kt),ao(T,!0);const ee=lp(T),h=T.subTree;T.subTree=ee,g(h,ee,d(h.el),oe(h),T,W,z),pt.el=ee.el,jt===null&&O_(T,ee.el),Ct&&Ze(Ct,W),(Ut=pt.props&&pt.props.onVnodeUpdated)&&Ze(()=>Hn(Ut,Ot,pt,Kt),W)}else{let pt;const{el:xt,props:Ct}=P,{bm:Ot,m:Kt,parent:jt,root:Ut,type:ee}=T,h=fs(P);ao(T,!1),Ot&&Fa(Ot),!h&&(pt=Ct&&Ct.onVnodeBeforeMount)&&Hn(pt,jt,P),ao(T,!0);{Ut.ce&&Ut.ce._hasShadowRoot()&&Ut.ce._injectChildStyle(ee,T.parent?T.parent.type:void 0);const m=T.subTree=lp(T);g(null,m,K,it,T,W,z),P.el=m.el}if(Kt&&Ze(Kt,W),!h&&(pt=Ct&&Ct.onVnodeMounted)){const m=P;Ze(()=>Hn(pt,jt,m),W)}(P.shapeFlag&256||jt&&fs(jt.vnode)&&jt.vnode.shapeFlag&256)&&T.a&&Ze(T.a,W),T.isMounted=!0,P=K=it=null}};T.scope.on();const ot=T.effect=new zg(at);T.scope.off();const tt=T.update=ot.run.bind(ot),_t=T.job=ot.runIfDirty.bind(ot);_t.i=T,_t.id=T.uid,ot.scheduler=()=>Od(_t),ao(T,!0),tt()},ut=(T,P,K)=>{P.component=T;const it=T.vnode.props;T.vnode=P,T.next=null,R_(T,P.props,it,K),L_(T,P.children,K),Ti(),Mh(T),Di()},ht=(T,P,K,it,W,z,Q,at,ot=!1)=>{const tt=T&&T.children,_t=T?T.shapeFlag:0,pt=P.children,{patchFlag:xt,shapeFlag:Ct}=P;if(xt>0){if(xt&128){vt(tt,pt,K,it,W,z,Q,at,ot);return}else if(xt&256){mt(tt,pt,K,it,W,z,Q,at,ot);return}}Ct&8?(_t&16&&Dt(tt,W,z),pt!==tt&&u(K,pt)):_t&16?Ct&16?vt(tt,pt,K,it,W,z,Q,at,ot):Dt(tt,W,z,!0):(_t&8&&u(K,""),Ct&16&&I(pt,K,it,W,z,Q,at,ot))},mt=(T,P,K,it,W,z,Q,at,ot)=>{T=T||hs,P=P||hs;const tt=T.length,_t=P.length,pt=Math.min(tt,_t);let xt;for(xt=0;xt_t?Dt(T,W,z,!0,!1,pt):I(P,K,it,W,z,Q,at,ot,pt)},vt=(T,P,K,it,W,z,Q,at,ot)=>{let tt=0;const _t=P.length;let pt=T.length-1,xt=_t-1;for(;tt<=pt&&tt<=xt;){const Ct=T[tt],Ot=P[tt]=ot?mi(P[tt]):Zn(P[tt]);if(Eo(Ct,Ot))g(Ct,Ot,K,null,W,z,Q,at,ot);else break;tt++}for(;tt<=pt&&tt<=xt;){const Ct=T[pt],Ot=P[xt]=ot?mi(P[xt]):Zn(P[xt]);if(Eo(Ct,Ot))g(Ct,Ot,K,null,W,z,Q,at,ot);else break;pt--,xt--}if(tt>pt){if(tt<=xt){const Ct=xt+1,Ot=Ct<_t?P[Ct].el:it;for(;tt<=xt;)g(null,P[tt]=ot?mi(P[tt]):Zn(P[tt]),K,Ot,W,z,Q,at,ot),tt++}}else if(tt>xt)for(;tt<=pt;)Ft(T[tt],W,z,!0),tt++;else{const Ct=tt,Ot=tt,Kt=new Map;for(tt=Ot;tt<=xt;tt++){const V=P[tt]=ot?mi(P[tt]):Zn(P[tt]);V.key!=null&&Kt.set(V.key,tt)}let jt,Ut=0;const ee=xt-Ot+1;let h=!1,m=0;const _=new Array(ee);for(tt=0;tt=ee){Ft(V,W,z,!0);continue}let G;if(V.key!=null)G=Kt.get(V.key);else for(jt=Ot;jt<=xt;jt++)if(_[jt-Ot]===0&&Eo(V,P[jt])){G=jt;break}G===void 0?Ft(V,W,z,!0):(_[G-Ot]=tt+1,G>=m?m=G:h=!0,g(V,P[G],K,null,W,z,Q,at,ot),Ut++)}const B=h?U_(_):hs;for(jt=B.length-1,tt=ee-1;tt>=0;tt--){const V=Ot+tt,G=P[V],lt=P[V+1],Yt=V+1<_t?lt.el||zm(lt):it;_[tt]===0?g(null,G,K,Yt,W,z,Q,at,ot):h&&(jt<0||tt!==B[jt]?Tt(G,K,Yt,2):jt--)}}},Tt=(T,P,K,it,W=null)=>{const{el:z,type:Q,transition:at,children:ot,shapeFlag:tt}=T;if(tt&6){Tt(T.component.subTree,P,K,it);return}if(tt&128){T.suspense.move(P,K,it);return}if(tt&64){Q.move(T,P,K,On);return}if(Q===yt){i(z,P,K);for(let _t=0;_tat.enter(z),W));else{const{leave:_t,delayLeave:pt,afterLeave:xt}=at,Ct=()=>{T.ctx.isUnmounted?o(z):i(z,P,K)},Ot=()=>{const Kt=z._isLeaving||!!z[wn];z._isLeaving&&z[wn](!0),at.persisted&&!Kt?Ct():_t(z,()=>{Ct(),xt&&xt()})};pt?pt(z,Ct,Ot):Ot()}else i(z,P,K)},Ft=(T,P,K,it=!1,W=!1)=>{const{type:z,props:Q,ref:at,children:ot,dynamicChildren:tt,shapeFlag:_t,patchFlag:pt,dirs:xt,cacheIndex:Ct,memo:Ot}=T;if(pt===-2&&(W=!1),at!=null&&(Ti(),ur(at,null,K,T,!0),Di()),Ct!=null&&(P.renderCache[Ct]=void 0),_t&256){P.ctx.deactivate(T);return}const Kt=_t&1&&xt,jt=!fs(T);let Ut;if(jt&&(Ut=Q&&Q.onVnodeBeforeUnmount)&&Hn(Ut,P,T),_t&6)wt(T.component,K,it);else{if(_t&128){T.suspense.unmount(K,it);return}Kt&&ro(T,null,P,"beforeUnmount"),_t&64?T.type.remove(T,P,K,On,it):tt&&!tt.hasOnce&&(z!==yt||pt>0&&pt&64)?Dt(tt,P,K,!1,!0):(z===yt&&pt&384||!W&&_t&16)&&Dt(ot,P,K),it&&Xt(T)}const ee=Ot!=null&&Ct==null;(jt&&(Ut=Q&&Q.onVnodeUnmounted)||Kt||ee)&&Ze(()=>{Ut&&Hn(Ut,P,T),Kt&&ro(T,null,P,"unmounted"),ee&&(T.el=null)},K)},Xt=T=>{const{type:P,el:K,anchor:it,transition:W}=T;if(P===yt){Vt(K,it);return}if(P===Va){k(T);return}const z=()=>{o(K),W&&!W.persisted&&W.afterLeave&&W.afterLeave()};if(T.shapeFlag&1&&W&&!W.persisted){const{leave:Q,delayLeave:at}=W,ot=()=>Q(K,z);at?at(T.el,z,ot):ot()}else z()},Vt=(T,P)=>{let K;for(;T!==P;)K=p(T),o(T),T=K;o(P)},wt=(T,P,K)=>{const{bum:it,scope:W,job:z,subTree:Q,um:at,m:ot,a:tt}=T;dp(ot),dp(tt),it&&Fa(it),W.stop(),z&&(z.flags|=8,Ft(Q,T,P,K)),at&&Ze(at,P),Ze(()=>{T.isUnmounted=!0},P)},Dt=(T,P,K,it=!1,W=!1,z=0)=>{for(let Q=z;Q{if(T.shapeFlag&6)return oe(T.component.subTree);if(T.shapeFlag&128)return T.suspense.next();const P=p(T.anchor||T.el),K=P&&P[pm];return K?p(K):P};let un=!1;const jn=(T,P,K)=>{let it;T==null?P._vnode&&(Ft(P._vnode,null,null,!0),it=P._vnode.component):g(P._vnode||null,T,P,null,null,null,K),P._vnode=T,un||(un=!0,Mh(it),um(),un=!1)},On={p:g,um:Ft,m:Tt,r:Xt,mt:M,mc:I,pc:ht,pbc:J,n:oe,o:t};return{render:jn,hydrate:void 0,createApp:C_(jn)}}function zu({type:t,props:e},n){return n==="svg"&&t==="foreignObject"||n==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:n}function ao({effect:t,job:e},n){n?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function j_(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function Ld(t,e,n=!1){const i=t.children,o=e.children;if(St(i)&&St(o))for(let s=0;s>1,t[n[a]]0&&(e[i]=n[s-1]),n[s]=i)}}for(s=n.length,r=n[s-1];s-- >0;)n[s]=r,r=e[r];return n}function Im(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Im(e)}function dp(t){if(t)for(let e=0;et.__isSuspense;function I_(t,e){e&&e.pendingBranch?St(t)?e.effects.push(...t):e.effects.push(t):lm(t)}const yt=Symbol.for("v-fgt"),Yr=Symbol.for("v-txt"),Be=Symbol.for("v-cmt"),Va=Symbol.for("v-stc"),Ci=[];let fn=null;function C(t=!1){Ci.push(fn=t?null:[])}function Fd(){Ci.pop(),fn=Ci[Ci.length-1]||null}let kr=1;function ul(t,e=!1){kr+=t,t<0&&fn&&e&&(fn.hasOnce=!0)}function Jm(t){return t.dynamicChildren=kr>0?fn||hs:null,Fd(),kr>0&&fn&&fn.push(t),t}function R(t,e,n,i,o,s){return Jm(y(t,e,n,i,o,s,!0))}function ct(t,e,n,i,o){return Jm(q(t,e,n,i,o,!0))}function Tr(t){return t?t.__v_isVNode===!0:!1}function Eo(t,e){return t.type===e.type&&t.key===e.key}const Wm=({key:t})=>t??null,ja=({ref:t,ref_key:e,ref_for:n})=>(typeof t=="number"&&(t=""+t),t!=null?ae(t)||_e(t)||$t(t)?{i:Le,r:t,k:e,f:!!n}:t:null);function y(t,e=null,n=null,i=0,o=null,s=t===yt?0:1,r=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Wm(e),ref:e&&ja(e),scopeId:Ml,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:i,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Le};return a?(cl(l,n),s&128&&t.normalize(l)):n&&(l.shapeFlag|=ae(n)?8:16),kr>0&&!r&&fn&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&fn.push(l),l}const q=z_;function z_(t,e=null,n=null,i=0,o=null,s=!1){if((!t||t===Em)&&(t=Be),Tr(t)){const a=Zi(t,e,!0);return n&&cl(a,n),kr>0&&!s&&fn&&(a.shapeFlag&6?fn[fn.indexOf(t)]=a:fn.push(a)),a.patchFlag=-2,a}if(Y_(t)&&(t=t.__vccOpts),e){e=$e(e);let{class:a,style:l}=e;a&&!ae(a)&&(e.class=Bt(a)),Zt(l)&&(Os(l)&&!St(l)&&(l=we({},l)),e.style=$o(l))}const r=ae(t)?1:Hm(t)?128:eu(t)?64:Zt(t)?4:$t(t)?2:0;return y(t,e,n,i,o,r,s,!0)}function $e(t){return t?Os(t)||Nm(t)?we({},t):t:null}function Zi(t,e,n=!1,i=!1){const{props:o,ref:s,patchFlag:r,children:a,transition:l}=t,c=e?Lt(o||{},e):o,u={__v_isVNode:!0,__v_skip:!0,type:t.type,props:c,key:c&&Wm(c),ref:e&&e.ref?n&&s?St(s)?s.concat(ja(e)):[s,ja(e)]:ja(e):s,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:a,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==yt?r===-1?16:r|16:r,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Zi(t.ssContent),ssFallback:t.ssFallback&&Zi(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&i&&Sr(u,l.clone(u)),u}function bt(t=" ",e=0){return q(Yr,null,t,e)}function st(t="",e=!1){return e?(C(),ct(Be,null,t)):q(Be,null,t)}function Zn(t){return t==null||typeof t=="boolean"?q(Be):St(t)?q(yt,null,t.slice()):Tr(t)?mi(t):q(Yr,null,String(t))}function mi(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Zi(t)}function cl(t,e){let n=0;const{shapeFlag:i}=t;if(e==null)e=null;else if(St(e))n=16;else if(typeof e=="object")if(i&65){const o=e.default;o&&(o._c&&(o._d=!1),cl(t,o()),o._c&&(o._d=!0));return}else{n=32;const o=e._;!o&&!Nm(e)?e._ctx=Le:o===3&&Le&&(Le.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else if($t(e)){if(i&65){cl(t,{default:e});return}e={default:e,_ctx:Le},n=32}else e=String(e),i&64?(n=16,e=[bt(e)]):n=8;t.children=e,t.shapeFlag|=n}function Lt(...t){const e={};for(let n=0;nHe||Le;let dl,Dr;{const t=Ma(),e=(n,i)=>{let o;return(o=t[n])||(o=t[n]=[]),o.push(i),s=>{o.length>1?o.forEach(r=>r(s)):o[0](s)}};dl=e("__VUE_INSTANCE_SETTERS__",n=>He=n),Dr=e("__VUE_SSR_SETTERS__",n=>Or=n)}const Zr=t=>{const e=He;return dl(t),t.scope.on(),()=>{t.scope.off(),dl(e)}},hp=()=>{He&&He.scope.off(),dl(null)};function Gm(t){return t.vnode.shapeFlag&4}let Or=!1;function G_(t,e=!1,n=!1){e&&Dr(e);const{props:i,children:o}=t.vnode,s=Gm(t);$_(t,i,s,e),N_(t,o,n||e);const r=s?K_(t,e):void 0;return e&&Dr(!1),r}function K_(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,m_);const{setup:i}=n;if(i){Ti();const o=t.setupContext=i.length>1?qm(t):null,s=Zr(t),r=Kr(i,t,0,[t.props,o]),a=Bg(r);if(Di(),s(),(a||t.sp)&&!fs(t)&&bm(t),a){if(r.then(hp,hp),e)return r.then(l=>{Dr(!0);try{pp(t,l,e)}finally{Dr(!1)}}).catch(l=>{Ql(l,t,0)});t.asyncDep=r}else pp(t,r)}else Km(t)}function pp(t,e,n){$t(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Zt(e)&&(t.setupState=sm(e)),Km(t)}function Km(t,e,n){const i=t.type;t.render||(t.render=i.render||kn);{const o=Zr(t);Ti();try{y_(t)}finally{Di(),o()}}}const q_={get(t,e){return ze(t,"get",""),t[e]}};function qm(t){const e=n=>{t.exposed=n||{}};return{attrs:new Proxy(t.attrs,q_),slots:t.slots,emit:t.emit,expose:e}}function ru(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(sm($b(t.exposed)),{get(e,n){if(n in e)return e[n];if(n in cr)return cr[n](t)},has(e,n){return n in e||n in cr}})):t.proxy}function X_(t,e=!0){return $t(t)?t.displayName||t.name:t.name||e&&t.__name}function Y_(t){return $t(t)&&"__vccOpts"in t}const rt=(t,e)=>Ub(t,e,Or);function be(t,e,n){try{ul(-1);const i=arguments.length;return i===2?Zt(e)&&!St(e)?Tr(e)?q(t,null,[e]):q(t,e):q(t,null,e):(i>3?n=Array.prototype.slice.call(arguments,2):i===3&&Tr(n)&&(n=[n]),q(t,e,n))}finally{ul(1)}}const Xm="3.5.42",fp=kn;let Jc;const gp=typeof window<"u"&&window.trustedTypes;if(gp)try{Jc=gp.createPolicy("vue",{createHTML:t=>t})}catch{}const Ym=Jc?t=>Jc.createHTML(t):t=>t,Z_="http://www.w3.org/2000/svg",Q_="http://www.w3.org/1998/Math/MathML",gi=typeof document<"u"?document:null,mp=gi&&gi.createElement("template"),M_={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,i)=>{const o=e==="svg"?gi.createElementNS(Z_,t):e==="mathml"?gi.createElementNS(Q_,t):n?gi.createElement(t,{is:n}):gi.createElement(t);return t==="select"&&i&&i.multiple!=null&&o.setAttribute("multiple",i.multiple),o},createText:t=>gi.createTextNode(t),createComment:t=>gi.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>gi.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,i,o,s){const r=n?n.previousSibling:e.lastChild;if(o&&(o===s||o.nextSibling))for(;e.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{mp.innerHTML=Ym(i==="svg"?`${t}`:i==="mathml"?`${t}`:t);const a=mp.content;if(i==="svg"||i==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,n)}return[r?r.nextSibling:e.firstChild,n?n.previousSibling:e.lastChild]}},Fi="transition",Us="animation",$r=Symbol("_vtc"),Zm={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},tw=we({},fm,Zm),ew=t=>(t.displayName="Transition",t.props=tw,t),us=ew((t,{slots:e})=>be(o_,nw(t),e)),lo=(t,e=[])=>{St(t)?t.forEach(n=>n(...e)):t&&t(...e)},vp=t=>t?St(t)?t.some(e=>e.length>1):t.length>1:!1;function nw(t){const e={};for(const $ in t)$ in Zm||(e[$]=t[$]);if(t.css===!1)return e;const{name:n="v",type:i,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:c=r,appearToClass:u=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:f=`${n}-leave-to`}=t,v=iw(o),g=v&&v[0],w=v&&v[1],{onBeforeEnter:b,onEnter:S,onEnterCancelled:D,onLeave:k,onLeaveCancelled:N,onBeforeAppear:F=b,onAppear:j=S,onAppearCancelled:I=D}=e,X=($,U,M,nt)=>{$._enterCancelled=nt,uo($,U?u:a),uo($,U?c:r),M&&M()},J=($,U)=>{$._isLeaving=!1,uo($,d),uo($,f),uo($,p),U&&U()},Y=$=>(U,M)=>{const nt=$?j:S,et=()=>X(U,$,M);lo(nt,[U,et]),yp(()=>{uo(U,$?l:s),ci(U,$?u:a),vp(nt)||bp(U,i,g,et)})};return we(e,{onBeforeEnter($){lo(b,[$]),ci($,s),ci($,r)},onBeforeAppear($){lo(F,[$]),ci($,l),ci($,c)},onEnter:Y(!1),onAppear:Y(!0),onLeave($,U){$._isLeaving=!0;const M=()=>J($,U);ci($,d),$._enterCancelled?(ci($,p),xp($)):(xp($),ci($,p)),yp(()=>{$._isLeaving&&(uo($,d),ci($,f),vp(k)||bp($,i,w,M))}),lo(k,[$,M])},onEnterCancelled($){X($,!1,void 0,!0),lo(D,[$])},onAppearCancelled($){X($,!0,void 0,!0),lo(I,[$])},onLeaveCancelled($){J($),lo(N,[$])}})}function iw(t){if(t==null)return null;if(Zt(t))return[Hu(t.enter),Hu(t.leave)];{const e=Hu(t);return[e,e]}}function Hu(t){return My(t)}function ci(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.add(n)),(t[$r]||(t[$r]=new Set)).add(e)}function uo(t,e){e.split(/\s+/).forEach(i=>i&&t.classList.remove(i));const n=t[$r];n&&(n.delete(e),n.size||(t[$r]=void 0))}function yp(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let ow=0;function bp(t,e,n,i){const o=t._endId=++ow,s=()=>{o===t._endId&&i()};if(n!=null)return setTimeout(s,n);const{type:r,timeout:a,propCount:l}=sw(t,e);if(!r)return i();const c=r+"end";let u=0;const d=()=>{t.removeEventListener(c,p),s()},p=f=>{f.target===t&&++u>=l&&d()};setTimeout(()=>{u(n[v]||"").split(", "),o=i(`${Fi}Delay`),s=i(`${Fi}Duration`),r=_p(o,s),a=i(`${Us}Delay`),l=i(`${Us}Duration`),c=_p(a,l);let u=null,d=0,p=0;e===Fi?r>0&&(u=Fi,d=r,p=s.length):e===Us?c>0&&(u=Us,d=c,p=l.length):(d=Math.max(r,c),u=d>0?r>c?Fi:Us:null,p=u?u===Fi?s.length:l.length:0);const f=u===Fi&&/\b(?:transform|all)(?:,|$)/.test(i(`${Fi}Property`).toString());return{type:u,timeout:d,propCount:p,hasTransform:f}}function _p(t,e){for(;t.lengthwp(n)+wp(t[i])))}function wp(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function xp(t){return(t?t.ownerDocument:document).body.offsetHeight}function rw(t,e,n){const i=t[$r];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?t.removeAttribute("class"):n?t.setAttribute("class",e):t.className=e}const hl=Symbol("_vod"),Qm=Symbol("_vsh"),Mn={name:"show",beforeMount(t,{value:e},{transition:n}){t[hl]=t.style.display==="none"?"":t.style.display,n&&e?n.beforeEnter(t):Is(t,e)},mounted(t,{value:e},{transition:n}){n&&e&&n.enter(t)},updated(t,{value:e,oldValue:n},{transition:i}){!e!=!n&&(i?e?(i.beforeEnter(t),Is(t,!0),i.enter(t)):i.leave(t,()=>{Is(t,!1)}):Is(t,e))},beforeUnmount(t,{value:e}){Is(t,e)}};function Is(t,e){t.style.display=e?t[hl]:"none",t[Qm]=!e}const Mm=Symbol("");function au(t){const e=li();if(!e)return;const n=e.ut=(o=t(e.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${e.uid}"]`)).forEach(s=>pl(s,o))},i=()=>{const o=t(e.proxy);e.ce?pl(e.ce,o):Wc(e.subTree,o),n(o)};wm(()=>{lm(i)}),Pi(()=>{ke(i,kn,{flush:"post"});const o=new MutationObserver(i);o.observe(e.subTree.el.parentNode,{childList:!0}),Dn(()=>o.disconnect())})}function Wc(t,e){if(t.shapeFlag&128){const n=t.suspense;t=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{Wc(n.activeBranch,e)})}for(;t.component;)t=t.component.subTree;if(t.shapeFlag&1&&t.el)pl(t.el,e);else if(t.type===yt)t.children.forEach(n=>Wc(n,e));else if(t.type===Va){let{el:n,anchor:i}=t;for(;n&&(pl(n,e),n!==i);)n=n.nextSibling}}function pl(t,e){if(t.nodeType===1){const n=t.style;let i="";for(const o in e){const s=lb(e[o]);n.setProperty(`--${o}`,s),i+=`--${o}: ${s};`}n[Mm]=i}}const aw=/(?:^|;)\s*display\s*:/;function lw(t,e,n){const i=t.style,o=ae(n);let s=!1;if(n&&!o){if(e)if(ae(e))for(const r of e.split(";")){const a=r.slice(0,r.indexOf(":")).trim();n[a]==null&&er(i,a,"")}else for(const r in e)n[r]==null&&er(i,r,"");for(const r in n){r==="display"&&(s=!0);const a=n[r];a!=null?cw(t,r,!ae(e)&&e?e[r]:void 0,a)||er(i,r,a):er(i,r,"")}}else if(o){if(e!==n){const r=i[Mm];r&&(n+=";"+r),i.cssText=n,s=aw.test(n)}}else e&&t.removeAttribute("style");hl in t&&(t[hl]=s?i.display:"",t[Qm]&&(i.display="none"))}const ga=/\s*!important$/;function er(t,e,n){if(St(n))n.forEach(i=>er(t,e,i));else if(n==null&&(n=""),e.startsWith("--"))ga.test(n)?t.setProperty(e,n.replace(ga,""),"important"):t.setProperty(e,n);else{const i=uw(t,e);ga.test(n)?t.setProperty(Ri(i),n.replace(ga,""),"important"):t[i]=n}}const Ep=["Webkit","Moz","ms"],Ju={};function uw(t,e){const n=Ju[e];if(n)return n;let i=Je(e);if(i!=="filter"&&i in t)return Ju[e]=i;i=Kl(i);for(let o=0;oWu||(mw.then(()=>Wu=0),Wu=Date.now());function yw(t,e){const n=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=n.attached)return;const o=n.value;if(St(o)){const s=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{s.call(i),i._stopped=!0};const r=o.slice(),a=[i];for(let l=0;lt.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,bw=(t,e,n,i,o,s)=>{const r=o==="svg";e==="class"?rw(t,i,r):e==="style"?lw(t,n,i):Hl(e)?Jl(e)||hw(t,e,n,i,s):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):_w(t,e,i,r))?(Ap(t,e,i),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Sp(t,e,i,r,s,e!=="value")):t._isVueCE&&(ww(t,e)||t._def.__asyncLoader&&(/[A-Z]/.test(e)||!ae(i)))?Ap(t,Je(e),i,s,e):(e==="true-value"?t._trueValue=i:e==="false-value"&&(t._falseValue=i),Sp(t,e,i,r))};function _w(t,e,n,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in t&&Tp(e)&&$t(n));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&t.tagName==="IFRAME"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const o=t.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Tp(e)&&ae(n)?!1:e in t}function ww(t,e){const n=t._def.props;if(!n)return!1;const i=Je(e);return Array.isArray(n)?n.some(o=>Je(o)===i):Object.keys(n).some(o=>Je(o)===i)}function xw(t="$style"){{const e=li();if(!e)return zt;const n=e.type.__cssModules;return n&&n[t]||zt}}const Dp=t=>{const e=t.props["onUpdate:modelValue"]||!1;return St(e)?n=>Fa(e,n):e},Gu=Symbol("_assign"),Ew={deep:!0,created(t,e,n){t[Gu]=Dp(n),t1(t,"change",()=>{const i=t._modelValue,o=Cw(t),s=t.checked,r=t[Gu];if(St(i)){const a=Vg(i,o),l=a!==-1;if(s&&!l)r(i.concat(o));else if(!s&&l){const c=[...i];c.splice(a,1),r(c)}}else if(ws(i)){const a=new Set(i);s?a.add(o):a.delete(o),r(a)}else r(e1(t,s))})},mounted:Op,beforeUpdate(t,e,n){t[Gu]=Dp(n),Op(t,e,n)}};function Op(t,{value:e,oldValue:n},i){t._modelValue=e;let o;if(St(e))o=Vg(e,i.props.value)>-1;else if(ws(e))o=e.has(i.props.value);else{if(e===n)return;o=Ds(e,e1(t,!0))}t.checked!==o&&(t.checked=o)}function Cw(t){return"_value"in t?t._value:t.value}function e1(t,e){const n=e?"_trueValue":"_falseValue";return n in t?t[n]:e}const Sw=["ctrl","shift","alt","meta"],Aw={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>Sw.some(n=>t[`${n}Key`]&&!e.includes(n))},Ua=(t,e)=>{if(!t)return t;const n=t._withMods||(t._withMods={}),i=e.join(".");return n[i]||(n[i]=((o,...s)=>{for(let r=0;r{const n=t._withKeys||(t._withKeys={}),i=e.join(".");return n[i]||(n[i]=(o=>{if(!("key"in o))return;const s=Ri(o.key);if(e.some(r=>r===s||kw[r]===s))return t(o)}))},Tw=we({patchProp:bw},M_);let $p;function Dw(){return $p||($p=F_(Tw))}const Ow=((...t)=>{const e=Dw().createApp(...t),{mount:n}=e;return e.mount=i=>{const o=Rw(i);if(!o)return;const s=e._component;!$t(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const r=n(o,!1,$w(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},e});function $w(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function Rw(t){return ae(t)?document.querySelector(t):t}const Rp=(t,e,n)=>{const i=Object.assign({escape:!0},{}),o=function(s,r){return r=r||{},s.replace(/{([^{}]*)}/g,function(a,l){const c=r[l];return i.escape?encodeURIComponent(typeof c=="string"||typeof c=="number"?c.toString():a):typeof c=="string"||typeof c=="number"?c.toString():a})};return t.charAt(0)!=="/"&&(t="/"+t),o(t,{})},Qi=(t,e,n)=>{const i=Object.assign({noRewrite:!1},{}),o=Bw();return window?.OC?.config?.modRewriteWorking===!0&&!i.noRewrite?o+Rp(t):o+"/index.php"+Rp(t)};function Bw(){let t=window._oc_webroot;if(typeof t>"u"){t=location.pathname;const e=t.indexOf("/index.php/");if(e!==-1)t=t.slice(0,e);else{const n=t.indexOf("/",1);t=t.slice(0,n>0?n:void 0)}}return t}function Bp(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n2?n-2:0),o=2;o1?e-1:0),i=1;i"u"?null:xe(BigInt.prototype.toString),jp=typeof Symbol>"u"?null:xe(Symbol.prototype.toString),nn=xe(Object.prototype.hasOwnProperty),Js=xe(Object.prototype.toString),Ue=xe(RegExp.prototype.test),co=Kw(TypeError);function xe(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o2&&arguments[2]!==void 0?arguments[2]:nr;if(Pp&&Pp(t,null),!ms(e))return t;let i=e.length;for(;i--;){let o=e[i];if(typeof o=="string"){const s=n(o);s!==o&&(jw(e)||(e[i]=s),o=s)}t[o]=!0}return t}function qw(t){for(let e=0;e/g),ex=Oe(/\${[\w\W]*/g),nx=Oe(/^data-[\-\w.\u00B7-\uFFFF]+$/),ix=Oe(/^aria-[\-\w]+$/),Jp=Oe(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ox=Oe(/^(?:\w+script|data):/i),sx=Oe(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),rx=Oe(/^html$/i),ax=Oe(/^[a-z][.\w]*(-[.\w]+)+$/i),Wp=Oe(/<[/\w!]/g),Gp=Oe(/<[/\w]/g),lx=Oe(/<\/no(script|embed|frames)/i),ux=Oe(/\/>/i),cn={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},s1=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],cx=Ce(qt({},s1)),dx=(function(){const t={};return bo(s1,e=>{t[e]=Oe(new RegExp("])","i"))}),Ce(t)})(),hx=function(){return typeof window>"u"?null:window},px=function(t,e){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let n=null;const i="data-tt-policy-suffix";e&&e.hasAttribute(i)&&(n=e.getAttribute(i));const o="dompurify"+(n?"#"+n:"");try{return t.createPolicy(o,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},Kp=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Vi=function(t,e,n,i){return nn(t,e)&&ms(t[e])?qt(i.base?hn(i.base):{},t[e],i.transform):n},Qu=function(t,e,n){const i=nn(t,e)?t[e]:void 0;return i&&typeof i=="object"?hn(i):n()};function r1(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:hx();const e=x=>r1(x);if(e.version="3.4.15",e.removed=[],!t||!t.document||t.document.nodeType!==cn.document||!t.Element)return e.isSupported=!1,e;let n=t.document;const i=n,o=i.currentScript;t.DocumentFragment;const s=t.HTMLTemplateElement,r=t.Node,a=t.Element,l=t.NodeFilter;t.NamedNodeMap===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;const u=t.DOMParser,d=t.trustedTypes,p=a.prototype,f=bn(p,"cloneNode"),v=bn(p,"remove"),g=bn(p,"removeAttributeNode"),w=bn(p,"nextSibling"),b=bn(p,"childNodes"),S=bn(p,"parentNode"),D=bn(p,"shadowRoot"),k=bn(p,"attributes"),N=r&&r.prototype?bn(r.prototype,"nodeType"):null,F=r&&r.prototype?bn(r.prototype,"nodeName"):null,j=r&&r.prototype?bn(r.prototype,"ownerDocument"):null,I=function(x){return N?N(x):x.nodeType},X=function(x){return F?F(x):x.nodeName};if(typeof s=="function"){const x=n.createElement("template");x.content&&x.content.ownerDocument&&(n=x.content.ownerDocument)}let J,Y="",$,U=!1,M=0;const nt=function(){if(M>0)throw co('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},et=function(x){nt(),M++;try{return J.createHTML(x)}finally{M--}},ut=function(x){nt(),M++;try{return J.createScriptURL(x)}finally{M--}},ht=function(){return U||($=px(d,o),U=!0),$},mt=n,vt=mt.implementation,Tt=mt.createNodeIterator,Ft=mt.createDocumentFragment,Xt=mt.getElementsByTagName,Vt=i.importNode;let wt=Kp();e.isSupported=typeof i1=="function"&&typeof S=="function"&&vt&&vt.createHTMLDocument!==void 0;const Dt=Mw,oe=tx,un=ex,jn=nx,On=ix,T=ox,P=sx,K=ax;let it=Jp,W=null;const z=qt({},[...Up,...qu,...Xu,...Yu,...Ip]);let Q=null;const at=qt({},[...zp,...Zu,...Hp,...ma]);let ot=Object.seal(cs(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),tt=null,_t=null;const pt=Object.seal(cs(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let xt=!0,Ct=!0,Ot=!1,Kt=!0,jt=!1,Ut=!0,ee=!1,h=!1,m=null,_=null,B=!1,V=!1,G=!1,lt=!1,Yt=!0,ve=!1;const ne="user-content-";let Qt=!0,ue=!1,Xo={},Yo=null;const Th=qt({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let Dh=null;const Oh=qt({},["audio","video","img","source","image","track"]);let $h=null;const Rh=qt({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ia="http://www.w3.org/1998/Math/MathML",oa="http://www.w3.org/2000/svg",Un="http://www.w3.org/1999/xhtml";let Zo=Un,Du=!1,Ou=null;const Ry=qt({},[ia,oa,Un],Ku),Bh=Ce(["mi","mo","mn","ms","mtext"]);let $u=qt({},Bh);const Ph=Ce(["annotation-xml"]);let Ru=qt({},Ph);const By=qt({},["title","style","font","a","script"]);let Ls=null;const Py=["application/xhtml+xml","text/html"],Ny="text/html";let fe=null,Qo=null;const Ly=n.createElement("form"),Nh=function(x){return x instanceof RegExp||x instanceof Function},Bu=function(){let x=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Qo&&Qo===x)return;(!x||typeof x!="object")&&(x={}),x=hn(x),Ls=Py.indexOf(x.PARSER_MEDIA_TYPE)===-1?Ny:x.PARSER_MEDIA_TYPE,fe=Ls==="application/xhtml+xml"?Ku:nr,W=Vi(x,"ALLOWED_TAGS",z,{transform:fe}),Q=Vi(x,"ALLOWED_ATTR",at,{transform:fe}),Ou=Vi(x,"ALLOWED_NAMESPACES",Ry,{transform:Ku}),$h=Vi(x,"ADD_URI_SAFE_ATTR",Rh,{transform:fe,base:Rh}),Dh=Vi(x,"ADD_DATA_URI_TAGS",Oh,{transform:fe,base:Oh}),Yo=Vi(x,"FORBID_CONTENTS",Th,{transform:fe}),tt=Vi(x,"FORBID_TAGS",hn({}),{transform:fe}),_t=Vi(x,"FORBID_ATTR",hn({}),{transform:fe}),Xo=nn(x,"USE_PROFILES")?x.USE_PROFILES&&typeof x.USE_PROFILES=="object"?hn(x.USE_PROFILES):x.USE_PROFILES:!1,xt=x.ALLOW_ARIA_ATTR!==!1,Ct=x.ALLOW_DATA_ATTR!==!1,Ot=x.ALLOW_UNKNOWN_PROTOCOLS||!1,Kt=x.ALLOW_SELF_CLOSE_IN_ATTR!==!1,jt=x.SAFE_FOR_TEMPLATES||!1,Ut=x.SAFE_FOR_XML!==!1,ee=x.WHOLE_DOCUMENT||!1,V=x.RETURN_DOM||!1,G=x.RETURN_DOM_FRAGMENT||!1,lt=x.RETURN_TRUSTED_TYPE||!1,B=x.FORCE_BODY||!1,Yt=x.SANITIZE_DOM!==!1,ve=x.SANITIZE_NAMED_PROPS||!1,Qt=x.KEEP_CONTENT!==!1,ue=x.IN_PLACE||!1,it=Yw(x.ALLOWED_URI_REGEXP)?x.ALLOWED_URI_REGEXP:Jp,Zo=typeof x.NAMESPACE=="string"?x.NAMESPACE:Un,$u=Qu(x,"MATHML_TEXT_INTEGRATION_POINTS",()=>qt({},Bh)),Ru=Qu(x,"HTML_INTEGRATION_POINTS",()=>qt({},Ph));const H=Qu(x,"CUSTOM_ELEMENT_HANDLING",()=>cs(null));if(ot=cs(null),nn(H,"tagNameCheck")&&Nh(H.tagNameCheck)&&(ot.tagNameCheck=H.tagNameCheck),nn(H,"attributeNameCheck")&&Nh(H.attributeNameCheck)&&(ot.attributeNameCheck=H.attributeNameCheck),nn(H,"allowCustomizedBuiltInElements")&&typeof H.allowCustomizedBuiltInElements=="boolean"&&(ot.allowCustomizedBuiltInElements=H.allowCustomizedBuiltInElements),Oe(ot),jt&&(Ct=!1),G&&(V=!0),Xo&&(W=qt({},Ip),Q=cs(null),Xo.html===!0&&(qt(W,Up),qt(Q,zp)),Xo.svg===!0&&(qt(W,qu),qt(Q,Zu),qt(Q,ma)),Xo.svgFilters===!0&&(qt(W,Xu),qt(Q,Zu),qt(Q,ma)),Xo.mathMl===!0&&(qt(W,Yu),qt(Q,Hp),qt(Q,ma))),pt.tagCheck=null,pt.attributeCheck=null,nn(x,"ADD_TAGS")&&(typeof x.ADD_TAGS=="function"?pt.tagCheck=x.ADD_TAGS:ms(x.ADD_TAGS)&&(W===z&&(W=hn(W)),qt(W,x.ADD_TAGS,fe))),nn(x,"ADD_ATTR")&&(typeof x.ADD_ATTR=="function"?pt.attributeCheck=x.ADD_ATTR:ms(x.ADD_ATTR)&&(Q===at&&(Q=hn(Q)),qt(Q,x.ADD_ATTR,fe))),nn(x,"ADD_FORBID_CONTENTS")&&ms(x.ADD_FORBID_CONTENTS)&&(Yo===Th&&(Yo=hn(Yo)),qt(Yo,x.ADD_FORBID_CONTENTS,fe)),Qt&&(W["#text"]=!0),ee&&qt(W,["html","head","body"]),W.table&&(qt(W,["tbody"]),delete tt.tbody),x.TRUSTED_TYPES_POLICY){if(typeof x.TRUSTED_TYPES_POLICY.createHTML!="function")throw co('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof x.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw co('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const Z=J;J=x.TRUSTED_TYPES_POLICY;try{Y=et("")}catch(ft){throw J=Z,ft}}else x.TRUSTED_TYPES_POLICY===null?(J=void 0,Y=""):(J===void 0&&(J=ht()),J&&typeof Y=="string"&&(Y=et("")));Ce&&Ce(x),Qo=x},Lh=qt({},[...qu,...Xu,...Zw]),Fh=qt({},[...Yu,...Qw]),Fy=function(x,H,Z){return H.namespaceURI===Un?x==="svg":H.namespaceURI===ia?x==="svg"&&(Z==="annotation-xml"||$u[Z]):!!Lh[x]},Vy=function(x,H,Z){return H.namespaceURI===Un?x==="math":H.namespaceURI===oa?x==="math"&&Ru[Z]:!!Fh[x]},jy=function(x,H,Z){return H.namespaceURI===oa&&!Ru[Z]||H.namespaceURI===ia&&!$u[Z]?!1:!Fh[x]&&(By[x]||!Lh[x])},Uy=function(x){let H=S(x);(!H||!H.tagName)&&(H={namespaceURI:Zo,tagName:"template"});const Z=nr(x.tagName),ft=nr(H.tagName);return Ou[x.namespaceURI]?x.namespaceURI===oa?Fy(Z,H,ft):x.namespaceURI===ia?Vy(Z,H,ft):x.namespaceURI===Un?jy(Z,H,ft):!!(Ls==="application/xhtml+xml"&&Ou[x.namespaceURI]):!1},oo=function(x){zs(e.removed,{element:x});try{S(x).removeChild(x)}catch{if(v(x),!S(x))throw co("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Vh=function(x,H,Z){try{g(x,H)}catch{try{x.removeAttribute(Z)}catch{}}},sa=function(x){ra(x);const H=b(x);if(H){const ft=[];bo(H,At=>{zs(ft,At)}),bo(ft,At=>{try{v(At)}catch{}})}const Z=k(x);if(Z)for(let ft=Z.length-1;ft>=0;--ft){const At=Z[ft],Nt=At&&At.name;typeof Nt=="string"&&Vh(x,At,Nt)}},so=function(x,H,Z){if(!Z)try{Z=H.getAttributeNode(x)}catch{Z=null}zs(e.removed,{attribute:Z||null,from:H});try{Z?g(H,Z):H.removeAttribute(x)}catch{try{H.removeAttribute(x)}catch{}}if(x==="is")if(V||G)try{oo(H)}catch{}else try{H.setAttribute(x,"")}catch{}},Iy=function(x){const H=k(x);if(H)for(let Z=H.length-1;Z>=0;--Z){const ft=H[Z],At=ft&&ft.name;typeof At!="string"||Q[fe(At)]||Vh(x,ft,At)}},ra=function(x){const H=[x];for(;H.length>0;){const Z=H.pop();I(Z)===cn.element&&Iy(Z);const ft=b(Z);if(ft)for(let At=ft.length-1;At>=0;--At)H.push(ft[At])}},jh=function(x,H){return Ut?x==="patchsrc"?!0:x==="for"&&H!=="label"&&H!=="output":!1},zy=function(x){if(!Ut)return;const H=[x];for(;H.length>0;){const Z=H.pop(),ft=I(Z);if(ft===cn.processingInstruction||ft===cn.comment&&Ue(Gp,Z.data)){try{v(Z)}catch{}continue}if(ft===cn.element){const Nt=Z,Ht=fe(X(Z));try{Nt.hasAttribute&&Nt.hasAttribute("patchsrc")&&Nt.removeAttribute("patchsrc"),Nt.hasAttribute&&Nt.hasAttribute("for")&&jh("for",Ht)&&Nt.removeAttribute("for")}catch{}}const At=b(Z);if(At)for(let Nt=At.length-1;Nt>=0;--Nt)H.push(At[Nt])}},Uh=function(x){let H=null,Z=null;if(B)x=""+x;else{const Nt=Lp(x,/^[\r\n\t ]+/);Z=Nt&&Nt[0]}Ls==="application/xhtml+xml"&&Zo===Un&&(x=''+x+"");const ft=J?et(x):x;if(Zo===Un)try{H=new u().parseFromString(ft,Ls)}catch{}if(!H||!H.documentElement){H=vt.createDocument(Zo,"template",null);try{H.documentElement.innerHTML=Du?Y:ft}catch{}}const At=H.body||H.documentElement;return x&&Z&&At.insertBefore(n.createTextNode(Z),At.childNodes[0]||null),Zo===Un?Xt.call(H,ee?"html":"body")[0]:ee?H.documentElement:At},Ih=function(x){const H=j?j(x):x.ownerDocument;return Tt.call(H||x,x,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},aa=function(x){return x=Hs(x,Dt," "),x=Hs(x,oe," "),x=Hs(x,un," "),x},Pu=function(x){var H;x.normalize();const Z=j?j(x):x.ownerDocument,ft=Tt.call(Z||x,x,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null);let At=ft.nextNode();for(;At;)At.data=aa(At.data),At=ft.nextNode();const Nt=(H=x.querySelectorAll)===null||H===void 0?void 0:H.call(x,"template");Nt&&bo(Nt,Ht=>{Mo(Ht.content)&&Pu(Ht.content)})},la=function(x){const H=F?F(x):null;return typeof H!="string"||fe(H)!=="form"?!1:typeof x.nodeName!="string"||typeof x.textContent!="string"||typeof x.removeChild!="function"||x.attributes!==k(x)||typeof x.removeAttribute!="function"||typeof x.removeAttributeNode!="function"||typeof x.getAttributeNode!="function"||typeof x.setAttribute!="function"||typeof x.namespaceURI!="string"||typeof x.insertBefore!="function"||typeof x.hasChildNodes!="function"||x.nodeType!==N(x)||x.childNodes!==b(x)},Mo=function(x){if(!N||typeof x!="object"||x===null)return!1;try{return N(x)===cn.documentFragment}catch{return!1}},Fs=function(x){if(!N||typeof x!="object"||x===null)return!1;try{return typeof N(x)=="number"}catch{return!1}};function In(x,H,Z){x.length!==0&&bo(x,ft=>{ft.call(e,H,Z,Qo)})}const Hy=function(x,H){return!!(Ut&&x.hasChildNodes()&&!Fs(x.firstElementChild)&&Ue(Wp,x.textContent)&&Ue(Wp,x.innerHTML)||Ut&&x.namespaceURI===Un&&cx[H]&&(Fs(x.firstElementChild)||typeof x.textContent=="string"&&Ue(dx[H],x.textContent))||x.nodeType===cn.processingInstruction||Ut&&x.nodeType===cn.comment&&Ue(Gp,x.data))},ua=function(x,H){if(x instanceof RegExp)return Ue(x,H);if(x instanceof Function){for(var Z=arguments.length,ft=new Array(Z>2?Z-2:0),At=2;At=0;--Ht){const zn=x===Z?f(At[Ht],!0):At[Ht];ft.insertBefore(zn,w(x))}}}return oo(x),!0},zh=function(x,H,Z,ft){return x.length===0?H:H===Z||H===ft?hn(H):H},Hh=function(x,H){return x===H||S(x)!==null?!1:(ue&&ra(x),!0)},Jh=function(x,H){if(In(wt.beforeSanitizeElements,x,null),Hh(x,H))return!0;if(la(x))return oo(x),!0;const Z=fe(X(x));if(W=zh(wt.uponSanitizeElement,W,z,m),In(wt.uponSanitizeElement,x,{tagName:Z,allowedTags:W}),Hh(x,H))return!0;if(Hy(x,Z))return oo(x),!0;if(tt[Z]||!(pt.tagCheck instanceof Function&&pt.tagCheck(Z))&&!W[Z]){const ft=Jy(x,Z,H);return ft===!1&&In(wt.afterSanitizeElements,x,null),ft}if(I(x)===cn.element&&!Uy(x)||(Z==="noscript"||Z==="noembed"||Z==="noframes")&&Ue(lx,x.innerHTML))return oo(x),!0;if(jt&&x.nodeType===cn.text){const ft=aa(x.textContent);x.textContent!==ft&&(zs(e.removed,{element:x.cloneNode()}),x.textContent=ft)}return In(wt.afterSanitizeElements,x,null),!1},Wh=function(x,H,Z){if(_t[H]||jh(H,x)||Yt&&(H==="id"||H==="name")&&(Z in n||Z in Ly))return!1;const ft=Q[H]||pt.attributeCheck instanceof Function&&pt.attributeCheck(H,x);return Ct&&Ue(jn,H)||xt&&Ue(On,H)?!0:ft?$h[H]||Ue(it,Hs(Z,P,""))||(H==="src"||H==="xlink:href"||H==="href")&&x!=="script"&&Fp(Z,"data:")===0&&Dh[x]||Ot&&!Ue(T,Hs(Z,P,""))?!0:!Z:Gh(x)&&ua(ot.tagNameCheck,x)&&ua(ot.attributeNameCheck,H,x)||H==="is"&&ot.allowCustomizedBuiltInElements&&ua(ot.tagNameCheck,Z)},Wy=qt({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Gh=function(x){return!Wy[nr(x)]&&Ue(K,x)},Gy=function(x,H,Z,ft){if(J&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!Z)switch(d.getAttributeType(x,H)){case"TrustedHTML":return et(ft);case"TrustedScriptURL":return ut(ft)}return ft},Ky=function(x,H,Z,ft){try{return Z?x.setAttributeNS(Z,H,ft):x.setAttribute(H,ft),la(x)?(oo(x),!1):!0}catch{return so(H,x),!1}},Kh=function(x){In(wt.beforeSanitizeAttributes,x,null);const H=x.attributes;if(!H||la(x))return;Q=zh(wt.uponSanitizeAttribute,Q,at,_);const Z={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Q,forceKeepAttr:void 0};let ft=H.length;const At=fe(x.nodeName);for(;ft--;){const Nt=H[ft],Ht=Nt.name,zn=Nt.namespaceURI,Li=Nt.value,Ve=fe(Ht),$n=Li;let qe=Ht==="value"?$n:Jw($n),qh=!1;if(Z.attrName=Ve,Z.attrValue=qe,Z.keepAttr=!0,Z.forceKeepAttr=void 0,In(wt.uponSanitizeAttribute,x,Z),qe=Z.attrValue,ve&&(Ve==="id"||Ve==="name")&&Fp(qe,ne)!==0&&(so(Ht,x,Nt),qe=ne+qe,qh=!0),Ut&&Ue(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,qe)){so(Ht,x,Nt);continue}if(Ve==="attributename"&&Lp(qe,"href")){so(Ht,x,Nt);continue}if(!Z.forceKeepAttr){if(!Z.keepAttr){so(Ht,x,Nt);continue}if(!Kt&&Ue(ux,qe)){so(Ht,x,Nt);continue}if(jt&&(qe=aa(qe)),!Wh(At,Ve,qe)){so(Ht,x,Nt);continue}qe=Gy(At,Ve,zn,qe),qe!==$n&&Ky(x,Ht,zn,qe)&&qh&&Np(e.removed)}}In(wt.afterSanitizeAttributes,x,null)},ca=function(x){let H=null;const Z=Ih(x);for(In(wt.beforeSanitizeShadowDOM,x,null);H=Z.nextNode();)if(In(wt.uponSanitizeShadowNode,H,null),Jh(H,x),Kh(H),Mo(H.content)&&ca(H.content),I(H)===cn.element){const ft=D(H);Mo(ft)&&(Nu(ft),ca(ft))}In(wt.afterSanitizeShadowDOM,x,null)},Nu=function(x){const H=[{node:x,shadow:null}];for(;H.length>0;){const Z=H.pop();if(Z.shadow){ca(Z.shadow);continue}const ft=Z.node,At=I(ft)===cn.element,Nt=b(ft);if(Nt)for(let Ht=Nt.length-1;Ht>=0;--Ht)H.push({node:Nt[Ht],shadow:null});if(At){const Ht=F?F(ft):null;if(typeof Ht=="string"&&fe(Ht)==="template"){const zn=ft.content;Mo(zn)&&H.push({node:zn,shadow:null})}}if(At){const Ht=D(ft);Mo(Ht)&&H.push({node:null,shadow:Ht},{node:Ht,shadow:null})}}};return e.sanitize=function(x){let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Z=null,ft=null,At=null,Nt=null;if(Du=!x,Du&&(x=""),typeof x!="string"&&!Fs(x)&&(x=Xw(x),typeof x!="string"))throw co("dirty is not a string, aborting");if(!e.isSupported)return x;h?(W=m,Q=_):Bu(H),(wt.uponSanitizeElement.length>0||wt.uponSanitizeAttribute.length>0)&&(W=hn(W)),wt.uponSanitizeAttribute.length>0&&(Q=hn(Q)),e.removed=[];const Ht=ue&&typeof x!="string"&&Fs(x);if(Ht){zy(x);const Ve=X(x);if(typeof Ve=="string"){const $n=fe(Ve);if(!W[$n]||tt[$n])throw sa(x),co("root node is forbidden and cannot be sanitized in-place")}if(la(x))throw sa(x),co("root node is clobbered and cannot be sanitized in-place");try{Nu(x)}catch($n){throw sa(x),$n}}else if(Fs(x))Z=Uh(""),ft=Z.ownerDocument.importNode(x,!0),ft.nodeType===cn.element&&ft.nodeName==="BODY"||ft.nodeName==="HTML"?Z=ft:Z.appendChild(ft),Nu(Z);else{if(!V&&!jt&&!ee&&x.indexOf("<")===-1)return J&<?et(x):x;if(Z=Uh(x),!Z)return V?null:lt?Y:""}Z&&B&&oo(Z.firstChild);const zn=Ht?x:Z;try{const Ve=Ih(zn);for(;At=Ve.nextNode();)Jh(At,zn),Kh(At),Mo(At.content)&&ca(At.content)}catch(Ve){throw Ht&&(sa(x),bo(e.removed,$n=>{$n.element&&ra($n.element)})),Ve}if(Ht)return bo(e.removed,Ve=>{Ve.element&&ra(Ve.element)}),jt&&Pu(x),x;if(V){if(jt&&Pu(Z),G)for(Nt=Ft.call(Z.ownerDocument);Z.firstChild;)Nt.appendChild(Z.firstChild);else Nt=Z;return(Q.shadowroot||Q.shadowrootmode)&&(Nt=Vt.call(i,Nt,!0)),Nt}let Li=ee?Z.outerHTML:Z.innerHTML;return ee&&W["!doctype"]&&Z.ownerDocument&&Z.ownerDocument.doctype&&Z.ownerDocument.doctype.name&&Ue(rx,Z.ownerDocument.doctype.name)&&(Li=" +`+Li),jt&&(Li=aa(Li)),J&<?et(Li):Li},e.setConfig=function(){let x=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Bu(x),h=!0,m=W,_=Q},e.clearConfig=function(){Qo=null,h=!1,m=null,_=null,J=$,Y=""},e.isValidAttribute=function(x,H,Z){Qo||Bu({});const ft=fe(x),At=fe(H);return Wh(ft,At,Z)},e.addHook=function(x,H){typeof H=="function"&&nn(wt,x)&&zs(wt[x],H)},e.removeHook=function(x,H){if(nn(wt,x)){if(H!==void 0){const Z=zw(wt[x],H);return Z===-1?void 0:Hw(wt[x],Z,1)[0]}return Np(wt[x])}},e.removeHooks=function(x){nn(wt,x)&&(wt[x]=[])},e.removeAllHooks=function(){wt=Kp()},e}var a1=r1();function Vd(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Mu,qp;function fx(){if(qp)return Mu;qp=1;var t=/["'&<>]/;Mu=e;function e(n){var i=""+n,o=t.exec(i);if(!o)return i;var s,r="",a=0,l=0;for(a=o.index;ae)}}globalThis._oc_l10n_registry_translations??={},globalThis._oc_l10n_registry_plural_functions??={};function O(t,e,n,i,o){const s=typeof n=="object"?n:void 0,r=typeof i=="number"?i:typeof n=="number"?n:void 0,a={escape:!0,sanitize:!0,...typeof o=="object"?o:typeof i=="object"?i:{}},l=v=>v,c=(a.sanitize?a1.sanitize:l)||l,u=a.escape?Xp:l,d=v=>typeof v=="string"||typeof v=="number",p=(v,g,w)=>v.replace(/%n/g,""+w).replace(/{([^{}]*)}/g,(b,S)=>{if(g===void 0||!(S in g))return u(b);const D=g[S];return d(D)?u(`${D}`):typeof D=="object"&&d(D.value)?(D.escape!==!1?Xp:l)(`${D.value}`):u(b)});let f=(o?.bundle??u1(t)).translations[e]||e;return f=Array.isArray(f)?f[0]:f,c(typeof s=="object"||r!==void 0?p(f,s,r):f)}function fl(t,e,n,i,o,s){const r="_"+e+"_::_"+n+"_",a=s?.bundle??u1(t),l=a.translations[r];if(typeof l<"u"){const c=l;if(Array.isArray(c)){const u=a.pluralFunction(i);return O(t,c[u],o,i,s)}}return i===1?O(t,e,o,i,s):O(t,n,o,i,s)}function yx(t,e=No()){switch(e==="pt-BR"&&(e="xbr"),e.length>3&&(e=e.substring(0,e.lastIndexOf("-"))),e){case"az":case"bo":case"dz":case"id":case"ja":case"jv":case"ka":case"km":case"kn":case"ko":case"ms":case"th":case"tr":case"vi":case"zh":return 0;case"af":case"bn":case"bg":case"ca":case"da":case"de":case"el":case"en":case"eo":case"es":case"et":case"eu":case"fa":case"fi":case"fo":case"fur":case"fy":case"gl":case"gu":case"ha":case"he":case"hu":case"is":case"it":case"ku":case"lb":case"ml":case"mn":case"mr":case"nah":case"nb":case"ne":case"nl":case"nn":case"no":case"oc":case"om":case"or":case"pa":case"pap":case"ps":case"pt":case"so":case"sq":case"sv":case"sw":case"ta":case"te":case"tk":case"ur":case"zu":return t===1?0:1;case"am":case"bh":case"fil":case"fr":case"gun":case"hi":case"hy":case"ln":case"mg":case"nso":case"xbr":case"ti":case"wa":return t===0||t===1?0:1;case"be":case"bs":case"hr":case"ru":case"sh":case"sr":case"uk":return t%10===1&&t%100!==11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;case"cs":case"sk":return t===1?0:t>=2&&t<=4?1:2;case"ga":return t===1?0:t===2?1:2;case"lt":return t%10===1&&t%100!==11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2;case"sl":return t%100===1?0:t%100===2?1:t%100===3||t%100===4?2:3;case"mk":return t%10===1?0:1;case"mt":return t===1?0:t===0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3;case"lv":return t===0?0:t%10===1&&t%100!==11?1:2;case"pl":return t===1?0:t%10>=2&&t%10<=4&&(t%100<12||t%100>14)?1:2;case"cy":return t===1?0:t===2?1:t===8||t===11?2:3;case"ro":return t===1?0:t===0||t%100>0&&t%100<20?1:2;case"ar":return t===0?0:t===1?1:t===2?2:t%100>=3&&t%100<=10?3:t%100>=11&&t%100<=99?4:5;default:return 0}}function bx(t=Date.now(),e={}){const n={ignoreSeconds:!1,language:No(),relativeTime:"long",...e},i=new Date(t),o=new Intl.RelativeTimeFormat([n.language,No()],{numeric:"auto",style:n.relativeTime}),s=(i.getTime()-Date.now())/1e3;if(Math.abs(s)<59.5)return n.ignoreSeconds||o.format(Math.round(s),"second");const r=s/60;if(Math.abs(r)<=59)return o.format(Math.round(r),"minute");const a=r/60;if(Math.abs(a)<23.5)return o.format(Math.round(a),"hour");const l=a/24;if(Math.abs(l)<6.5)return o.format(Math.round(l),"day");if(Math.abs(l)<27.5){const d=l/7;return o.format(Math.round(d),"week")}const c=l/30,u=Math.abs(c)<11?{month:n.relativeTime,day:"numeric"}:{year:n.relativeTime==="narrow"?"2-digit":"numeric",month:n.relativeTime};return new Intl.DateTimeFormat([n.language,No()],u).format(i)}const c1=Symbol("");var d1={},Ia={};Ia.byteLength=xx,Ia.toByteArray=Cx,Ia.fromByteArray=kx;for(var Qn=[],_n=[],_x=typeof Uint8Array<"u"?Uint8Array:Array,tc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",es=0,wx=tc.length;es0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var i=n===e?0:4-n%4;return[n,i]}function xx(t){var e=h1(t),n=e[0],i=e[1];return(n+i)*3/4-i}function Ex(t,e,n){return(e+n)*3/4-n}function Cx(t){var e,n=h1(t),i=n[0],o=n[1],s=new _x(Ex(t,i,o)),r=0,a=o>0?i-4:i,l;for(l=0;l>16&255,s[r++]=e>>8&255,s[r++]=e&255;return o===2&&(e=_n[t.charCodeAt(l)]<<2|_n[t.charCodeAt(l+1)]>>4,s[r++]=e&255),o===1&&(e=_n[t.charCodeAt(l)]<<10|_n[t.charCodeAt(l+1)]<<4|_n[t.charCodeAt(l+2)]>>2,s[r++]=e>>8&255,s[r++]=e&255),s}function Sx(t){return Qn[t>>18&63]+Qn[t>>12&63]+Qn[t>>6&63]+Qn[t&63]}function Ax(t,e,n){for(var i,o=[],s=e;sa?a:r+s));return i===1?(e=t[n-1],o.push(Qn[e>>2]+Qn[e<<4&63]+"==")):i===2&&(e=(t[n-2]<<8)+t[n-1],o.push(Qn[e>>10]+Qn[e>>4&63]+Qn[e<<2&63]+"=")),o.join("")}var qc={};qc.read=function(t,e,n,i,o){var s,r,a=o*8-i-1,l=(1<>1,u=-7,d=n?o-1:0,p=n?-1:1,f=t[e+d];for(d+=p,s=f&(1<<-u)-1,f>>=-u,u+=a;u>0;s=s*256+t[e+d],d+=p,u-=8);for(r=s&(1<<-u)-1,s>>=-u,u+=i;u>0;r=r*256+t[e+d],d+=p,u-=8);if(s===0)s=1-c;else{if(s===l)return r?NaN:(f?-1:1)*(1/0);r=r+Math.pow(2,i),s=s-c}return(f?-1:1)*r*Math.pow(2,s-i)},qc.write=function(t,e,n,i,o,s){var r,a,l,c=s*8-o-1,u=(1<>1,p=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:s-1,v=i?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,r=u):(r=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-r))<1&&(r--,l*=2),r+d>=1?e+=p/l:e+=p*Math.pow(2,1-d),e*l>=2&&(r++,l/=2),r+d>=u?(a=0,r=u):r+d>=1?(a=(e*l-1)*Math.pow(2,o),r=r+d):(a=e*Math.pow(2,d-1)*Math.pow(2,o),r=0));o>=8;t[n+f]=a&255,f+=v,a/=256,o-=8);for(r=r<0;t[n+f]=r&255,f+=v,r/=256,c-=8);t[n+f-v]|=g*128};(function(t){const e=Ia,n=qc,i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=N,t.INSPECT_MAX_BYTES=50;const o=2147483647;t.kMaxLength=o;const{Uint8Array:s,ArrayBuffer:r,SharedArrayBuffer:a}=globalThis;u.TYPED_ARRAY_SUPPORT=l(),!u.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function l(){try{const h=new s(1),m={foo:function(){return 42}};return Object.setPrototypeOf(m,s.prototype),Object.setPrototypeOf(h,m),h.foo()===42}catch{return!1}}Object.defineProperty(u.prototype,"parent",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,"offset",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}});function c(h){if(h>o)throw new RangeError('The value "'+h+'" is invalid for option "size"');const m=new s(h);return Object.setPrototypeOf(m,u.prototype),m}function u(h,m,_){if(typeof h=="number"){if(typeof m=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return v(h)}return d(h,m,_)}u.poolSize=8192;function d(h,m,_){if(typeof h=="string")return g(h,m);if(r.isView(h))return b(h);if(h==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h);if(Ot(h,r)||h&&Ot(h.buffer,r)||typeof a<"u"&&(Ot(h,a)||h&&Ot(h.buffer,a)))return S(h,m,_);if(typeof h=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const B=h.valueOf&&h.valueOf();if(B!=null&&B!==h)return u.from(B,m,_);const V=D(h);if(V)return V;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof h[Symbol.toPrimitive]=="function")return u.from(h[Symbol.toPrimitive]("string"),m,_);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h)}u.from=function(h,m,_){return d(h,m,_)},Object.setPrototypeOf(u.prototype,s.prototype),Object.setPrototypeOf(u,s);function p(h){if(typeof h!="number")throw new TypeError('"size" argument must be of type number');if(h<0)throw new RangeError('The value "'+h+'" is invalid for option "size"')}function f(h,m,_){return p(h),h<=0?c(h):m!==void 0?typeof _=="string"?c(h).fill(m,_):c(h).fill(m):c(h)}u.alloc=function(h,m,_){return f(h,m,_)};function v(h){return p(h),c(h<0?0:k(h)|0)}u.allocUnsafe=function(h){return v(h)},u.allocUnsafeSlow=function(h){return v(h)};function g(h,m){if((typeof m!="string"||m==="")&&(m="utf8"),!u.isEncoding(m))throw new TypeError("Unknown encoding: "+m);const _=F(h,m)|0;let B=c(_);const V=B.write(h,m);return V!==_&&(B=B.slice(0,V)),B}function w(h){const m=h.length<0?0:k(h.length)|0,_=c(m);for(let B=0;B=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return h|0}function N(h){return+h!=h&&(h=0),u.alloc(+h)}u.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==u.prototype},u.compare=function(h,m){if(Ot(h,s)&&(h=u.from(h,h.offset,h.byteLength)),Ot(m,s)&&(m=u.from(m,m.offset,m.byteLength)),!u.isBuffer(h)||!u.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===m)return 0;let _=h.length,B=m.length;for(let V=0,G=Math.min(_,B);VB.length?(u.isBuffer(G)||(G=u.from(G)),G.copy(B,V)):s.prototype.set.call(B,G,V);else if(u.isBuffer(G))G.copy(B,V);else throw new TypeError('"list" argument must be an Array of Buffers');V+=G.length}return B};function F(h,m){if(u.isBuffer(h))return h.length;if(r.isView(h)||Ot(h,r))return h.byteLength;if(typeof h!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof h);const _=h.length,B=arguments.length>2&&arguments[2]===!0;if(!B&&_===0)return 0;let V=!1;for(;;)switch(m){case"ascii":case"latin1":case"binary":return _;case"utf8":case"utf-8":return tt(h).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _*2;case"hex":return _>>>1;case"base64":return xt(h).length;default:if(V)return B?-1:tt(h).length;m=(""+m).toLowerCase(),V=!0}}u.byteLength=F;function j(h,m,_){let B=!1;if((m===void 0||m<0)&&(m=0),m>this.length||((_===void 0||_>this.length)&&(_=this.length),_<=0)||(_>>>=0,m>>>=0,_<=m))return"";for(h||(h="utf8");;)switch(h){case"hex":return Ft(this,m,_);case"utf8":case"utf-8":return ut(this,m,_);case"ascii":return vt(this,m,_);case"latin1":case"binary":return Tt(this,m,_);case"base64":return et(this,m,_);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Xt(this,m,_);default:if(B)throw new TypeError("Unknown encoding: "+h);h=(h+"").toLowerCase(),B=!0}}u.prototype._isBuffer=!0;function I(h,m,_){const B=h[m];h[m]=h[_],h[_]=B}u.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;mm&&(h+=" ... "),""},i&&(u.prototype[i]=u.prototype.inspect),u.prototype.compare=function(h,m,_,B,V){if(Ot(h,s)&&(h=u.from(h,h.offset,h.byteLength)),!u.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(m===void 0&&(m=0),_===void 0&&(_=h?h.length:0),B===void 0&&(B=0),V===void 0&&(V=this.length),m<0||_>h.length||B<0||V>this.length)throw new RangeError("out of range index");if(B>=V&&m>=_)return 0;if(B>=V)return-1;if(m>=_)return 1;if(m>>>=0,_>>>=0,B>>>=0,V>>>=0,this===h)return 0;let G=V-B,lt=_-m;const Yt=Math.min(G,lt),ve=this.slice(B,V),ne=h.slice(m,_);for(let Qt=0;Qt2147483647?_=2147483647:_<-2147483648&&(_=-2147483648),_=+_,Kt(_)&&(_=V?0:h.length-1),_<0&&(_=h.length+_),_>=h.length){if(V)return-1;_=h.length-1}else if(_<0)if(V)_=0;else return-1;if(typeof m=="string"&&(m=u.from(m,B)),u.isBuffer(m))return m.length===0?-1:J(h,m,_,B,V);if(typeof m=="number")return m=m&255,typeof s.prototype.indexOf=="function"?V?s.prototype.indexOf.call(h,m,_):s.prototype.lastIndexOf.call(h,m,_):J(h,[m],_,B,V);throw new TypeError("val must be string, number or Buffer")}function J(h,m,_,B,V){let G=1,lt=h.length,Yt=m.length;if(B!==void 0&&(B=String(B).toLowerCase(),B==="ucs2"||B==="ucs-2"||B==="utf16le"||B==="utf-16le")){if(h.length<2||m.length<2)return-1;G=2,lt/=2,Yt/=2,_/=2}function ve(Qt,ue){return G===1?Qt[ue]:Qt.readUInt16BE(ue*G)}let ne;if(V){let Qt=-1;for(ne=_;nelt&&(_=lt-Yt),ne=_;ne>=0;ne--){let Qt=!0;for(let ue=0;ueV&&(B=V)):B=V;const G=m.length;B>G/2&&(B=G/2);let lt;for(lt=0;lt>>0,isFinite(_)?(_=_>>>0,B===void 0&&(B="utf8")):(B=_,_=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const V=this.length-m;if((_===void 0||_>V)&&(_=V),h.length>0&&(_<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");B||(B="utf8");let G=!1;for(;;)switch(B){case"hex":return Y(this,h,m,_);case"utf8":case"utf-8":return $(this,h,m,_);case"ascii":case"latin1":case"binary":return U(this,h,m,_);case"base64":return M(this,h,m,_);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return nt(this,h,m,_);default:if(G)throw new TypeError("Unknown encoding: "+B);B=(""+B).toLowerCase(),G=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function et(h,m,_){return m===0&&_===h.length?e.fromByteArray(h):e.fromByteArray(h.slice(m,_))}function ut(h,m,_){_=Math.min(h.length,_);const B=[];let V=m;for(;V<_;){const G=h[V];let lt=null,Yt=G>239?4:G>223?3:G>191?2:1;if(V+Yt<=_){let ve,ne,Qt,ue;switch(Yt){case 1:G<128&&(lt=G);break;case 2:ve=h[V+1],(ve&192)===128&&(ue=(G&31)<<6|ve&63,ue>127&&(lt=ue));break;case 3:ve=h[V+1],ne=h[V+2],(ve&192)===128&&(ne&192)===128&&(ue=(G&15)<<12|(ve&63)<<6|ne&63,ue>2047&&(ue<55296||ue>57343)&&(lt=ue));break;case 4:ve=h[V+1],ne=h[V+2],Qt=h[V+3],(ve&192)===128&&(ne&192)===128&&(Qt&192)===128&&(ue=(G&15)<<18|(ve&63)<<12|(ne&63)<<6|Qt&63,ue>65535&&ue<1114112&&(lt=ue))}}lt===null?(lt=65533,Yt=1):lt>65535&&(lt-=65536,B.push(lt>>>10&1023|55296),lt=56320|lt&1023),B.push(lt),V+=Yt}return mt(B)}const ht=4096;function mt(h){const m=h.length;if(m<=ht)return String.fromCharCode.apply(String,h);let _="",B=0;for(;BB)&&(_=B);let V="";for(let G=m;G<_;++G)V+=jt[h[G]];return V}function Xt(h,m,_){const B=h.slice(m,_);let V="";for(let G=0;G_&&(h=_),m<0?(m+=_,m<0&&(m=0)):m>_&&(m=_),m_)throw new RangeError("Trying to access beyond buffer length")}u.prototype.readUintLE=u.prototype.readUIntLE=function(h,m,_){h=h>>>0,m=m>>>0,_||Vt(h,m,this.length);let B=this[h],V=1,G=0;for(;++G>>0,m=m>>>0,_||Vt(h,m,this.length);let B=this[h+--m],V=1;for(;m>0&&(V*=256);)B+=this[h+--m]*V;return B},u.prototype.readUint8=u.prototype.readUInt8=function(h,m){return h=h>>>0,m||Vt(h,1,this.length),this[h]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(h,m){return h=h>>>0,m||Vt(h,2,this.length),this[h]|this[h+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(h,m){return h=h>>>0,m||Vt(h,2,this.length),this[h]<<8|this[h+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(h,m){return h=h>>>0,m||Vt(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(h,m){return h=h>>>0,m||Vt(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},u.prototype.readBigUInt64LE=Ut(function(h){h=h>>>0,z(h,"offset");const m=this[h],_=this[h+7];(m===void 0||_===void 0)&&Q(h,this.length-8);const B=m+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,V=this[++h]+this[++h]*2**8+this[++h]*2**16+_*2**24;return BigInt(B)+(BigInt(V)<>>0,z(h,"offset");const m=this[h],_=this[h+7];(m===void 0||_===void 0)&&Q(h,this.length-8);const B=m*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],V=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+_;return(BigInt(B)<>>0,m=m>>>0,_||Vt(h,m,this.length);let B=this[h],V=1,G=0;for(;++G=V&&(B-=Math.pow(2,8*m)),B},u.prototype.readIntBE=function(h,m,_){h=h>>>0,m=m>>>0,_||Vt(h,m,this.length);let B=m,V=1,G=this[h+--B];for(;B>0&&(V*=256);)G+=this[h+--B]*V;return V*=128,G>=V&&(G-=Math.pow(2,8*m)),G},u.prototype.readInt8=function(h,m){return h=h>>>0,m||Vt(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},u.prototype.readInt16LE=function(h,m){h=h>>>0,m||Vt(h,2,this.length);const _=this[h]|this[h+1]<<8;return _&32768?_|4294901760:_},u.prototype.readInt16BE=function(h,m){h=h>>>0,m||Vt(h,2,this.length);const _=this[h+1]|this[h]<<8;return _&32768?_|4294901760:_},u.prototype.readInt32LE=function(h,m){return h=h>>>0,m||Vt(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},u.prototype.readInt32BE=function(h,m){return h=h>>>0,m||Vt(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},u.prototype.readBigInt64LE=Ut(function(h){h=h>>>0,z(h,"offset");const m=this[h],_=this[h+7];(m===void 0||_===void 0)&&Q(h,this.length-8);const B=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(_<<24);return(BigInt(B)<>>0,z(h,"offset");const m=this[h],_=this[h+7];(m===void 0||_===void 0)&&Q(h,this.length-8);const B=(m<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(B)<>>0,m||Vt(h,4,this.length),n.read(this,h,!0,23,4)},u.prototype.readFloatBE=function(h,m){return h=h>>>0,m||Vt(h,4,this.length),n.read(this,h,!1,23,4)},u.prototype.readDoubleLE=function(h,m){return h=h>>>0,m||Vt(h,8,this.length),n.read(this,h,!0,52,8)},u.prototype.readDoubleBE=function(h,m){return h=h>>>0,m||Vt(h,8,this.length),n.read(this,h,!1,52,8)};function wt(h,m,_,B,V,G){if(!u.isBuffer(h))throw new TypeError('"buffer" argument must be a Buffer instance');if(m>V||mh.length)throw new RangeError("Index out of range")}u.prototype.writeUintLE=u.prototype.writeUIntLE=function(h,m,_,B){if(h=+h,m=m>>>0,_=_>>>0,!B){const lt=Math.pow(2,8*_)-1;wt(this,h,m,_,lt,0)}let V=1,G=0;for(this[m]=h&255;++G<_&&(V*=256);)this[m+G]=h/V&255;return m+_},u.prototype.writeUintBE=u.prototype.writeUIntBE=function(h,m,_,B){if(h=+h,m=m>>>0,_=_>>>0,!B){const lt=Math.pow(2,8*_)-1;wt(this,h,m,_,lt,0)}let V=_-1,G=1;for(this[m+V]=h&255;--V>=0&&(G*=256);)this[m+V]=h/G&255;return m+_},u.prototype.writeUint8=u.prototype.writeUInt8=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,1,255,0),this[m]=h&255,m+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,2,65535,0),this[m]=h&255,this[m+1]=h>>>8,m+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,2,65535,0),this[m]=h>>>8,this[m+1]=h&255,m+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,4,4294967295,0),this[m+3]=h>>>24,this[m+2]=h>>>16,this[m+1]=h>>>8,this[m]=h&255,m+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,4,4294967295,0),this[m]=h>>>24,this[m+1]=h>>>16,this[m+2]=h>>>8,this[m+3]=h&255,m+4};function Dt(h,m,_,B,V){W(m,B,V,h,_,7);let G=Number(m&BigInt(4294967295));h[_++]=G,G=G>>8,h[_++]=G,G=G>>8,h[_++]=G,G=G>>8,h[_++]=G;let lt=Number(m>>BigInt(32)&BigInt(4294967295));return h[_++]=lt,lt=lt>>8,h[_++]=lt,lt=lt>>8,h[_++]=lt,lt=lt>>8,h[_++]=lt,_}function oe(h,m,_,B,V){W(m,B,V,h,_,7);let G=Number(m&BigInt(4294967295));h[_+7]=G,G=G>>8,h[_+6]=G,G=G>>8,h[_+5]=G,G=G>>8,h[_+4]=G;let lt=Number(m>>BigInt(32)&BigInt(4294967295));return h[_+3]=lt,lt=lt>>8,h[_+2]=lt,lt=lt>>8,h[_+1]=lt,lt=lt>>8,h[_]=lt,_+8}u.prototype.writeBigUInt64LE=Ut(function(h,m=0){return Dt(this,h,m,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeBigUInt64BE=Ut(function(h,m=0){return oe(this,h,m,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeIntLE=function(h,m,_,B){if(h=+h,m=m>>>0,!B){const Yt=Math.pow(2,8*_-1);wt(this,h,m,_,Yt-1,-Yt)}let V=0,G=1,lt=0;for(this[m]=h&255;++V<_&&(G*=256);)h<0&<===0&&this[m+V-1]!==0&&(lt=1),this[m+V]=(h/G>>0)-lt&255;return m+_},u.prototype.writeIntBE=function(h,m,_,B){if(h=+h,m=m>>>0,!B){const Yt=Math.pow(2,8*_-1);wt(this,h,m,_,Yt-1,-Yt)}let V=_-1,G=1,lt=0;for(this[m+V]=h&255;--V>=0&&(G*=256);)h<0&<===0&&this[m+V+1]!==0&&(lt=1),this[m+V]=(h/G>>0)-lt&255;return m+_},u.prototype.writeInt8=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,1,127,-128),h<0&&(h=255+h+1),this[m]=h&255,m+1},u.prototype.writeInt16LE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,2,32767,-32768),this[m]=h&255,this[m+1]=h>>>8,m+2},u.prototype.writeInt16BE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,2,32767,-32768),this[m]=h>>>8,this[m+1]=h&255,m+2},u.prototype.writeInt32LE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,4,2147483647,-2147483648),this[m]=h&255,this[m+1]=h>>>8,this[m+2]=h>>>16,this[m+3]=h>>>24,m+4},u.prototype.writeInt32BE=function(h,m,_){return h=+h,m=m>>>0,_||wt(this,h,m,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[m]=h>>>24,this[m+1]=h>>>16,this[m+2]=h>>>8,this[m+3]=h&255,m+4},u.prototype.writeBigInt64LE=Ut(function(h,m=0){return Dt(this,h,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),u.prototype.writeBigInt64BE=Ut(function(h,m=0){return oe(this,h,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function un(h,m,_,B,V,G){if(_+B>h.length)throw new RangeError("Index out of range");if(_<0)throw new RangeError("Index out of range")}function jn(h,m,_,B,V){return m=+m,_=_>>>0,V||un(h,m,_,4),n.write(h,m,_,B,23,4),_+4}u.prototype.writeFloatLE=function(h,m,_){return jn(this,h,m,!0,_)},u.prototype.writeFloatBE=function(h,m,_){return jn(this,h,m,!1,_)};function On(h,m,_,B,V){return m=+m,_=_>>>0,V||un(h,m,_,8),n.write(h,m,_,B,52,8),_+8}u.prototype.writeDoubleLE=function(h,m,_){return On(this,h,m,!0,_)},u.prototype.writeDoubleBE=function(h,m,_){return On(this,h,m,!1,_)},u.prototype.copy=function(h,m,_,B){if(!u.isBuffer(h))throw new TypeError("argument should be a Buffer");if(_||(_=0),!B&&B!==0&&(B=this.length),m>=h.length&&(m=h.length),m||(m=0),B>0&&B<_&&(B=_),B===_||h.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(_<0||_>=this.length)throw new RangeError("Index out of range");if(B<0)throw new RangeError("sourceEnd out of bounds");B>this.length&&(B=this.length),h.length-m>>0,_=_===void 0?this.length:_>>>0,h||(h=0);let V;if(typeof h=="number")for(V=m;V<_;++V)this[V]=h;else{const G=u.isBuffer(h)?h:u.from(h,B),lt=G.length;if(lt===0)throw new TypeError('The value "'+h+'" is invalid for argument "value"');for(V=0;V<_-m;++V)this[V+m]=G[V%lt]}return this};const T={};function P(h,m,_){T[h]=class extends _{constructor(){super(),Object.defineProperty(this,"message",{value:m.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${h}]`,this.stack,delete this.name}get code(){return h}set code(B){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:B,writable:!0})}toString(){return`${this.name} [${h}]: ${this.message}`}}}P("ERR_BUFFER_OUT_OF_BOUNDS",function(h){return h?`${h} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),P("ERR_INVALID_ARG_TYPE",function(h,m){return`The "${h}" argument must be of type number. Received type ${typeof m}`},TypeError),P("ERR_OUT_OF_RANGE",function(h,m,_){let B=`The value of "${h}" is out of range.`,V=_;return Number.isInteger(_)&&Math.abs(_)>2**32?V=K(String(_)):typeof _=="bigint"&&(V=String(_),(_>BigInt(2)**BigInt(32)||_<-(BigInt(2)**BigInt(32)))&&(V=K(V)),V+="n"),B+=` It must be ${m}. Received ${V}`,B},RangeError);function K(h){let m="",_=h.length;const B=h[0]==="-"?1:0;for(;_>=B+4;_-=3)m=`_${h.slice(_-3,_)}${m}`;return`${h.slice(0,_)}${m}`}function it(h,m,_){z(m,"offset"),(h[m]===void 0||h[m+_]===void 0)&&Q(m,h.length-(_+1))}function W(h,m,_,B,V,G){if(h>_||h= 0${lt} and < 2${lt} ** ${(G+1)*8}${lt}`:Yt=`>= -(2${lt} ** ${(G+1)*8-1}${lt}) and < 2 ** ${(G+1)*8-1}${lt}`,new T.ERR_OUT_OF_RANGE("value",Yt,h)}it(B,V,G)}function z(h,m){if(typeof h!="number")throw new T.ERR_INVALID_ARG_TYPE(m,"number",h)}function Q(h,m,_){throw Math.floor(h)!==h?(z(h,_),new T.ERR_OUT_OF_RANGE("offset","an integer",h)):m<0?new T.ERR_BUFFER_OUT_OF_BOUNDS:new T.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${m}`,h)}const at=/[^+/0-9A-Za-z-_]/g;function ot(h){if(h=h.split("=")[0],h=h.trim().replace(at,""),h.length<2)return"";for(;h.length%4!==0;)h=h+"=";return h}function tt(h,m){m=m||1/0;let _;const B=h.length;let V=null;const G=[];for(let lt=0;lt55295&&_<57344){if(!V){if(_>56319){(m-=3)>-1&&G.push(239,191,189);continue}else if(lt+1===B){(m-=3)>-1&&G.push(239,191,189);continue}V=_;continue}if(_<56320){(m-=3)>-1&&G.push(239,191,189),V=_;continue}_=(V-55296<<10|_-56320)+65536}else V&&(m-=3)>-1&&G.push(239,191,189);if(V=null,_<128){if((m-=1)<0)break;G.push(_)}else if(_<2048){if((m-=2)<0)break;G.push(_>>6|192,_&63|128)}else if(_<65536){if((m-=3)<0)break;G.push(_>>12|224,_>>6&63|128,_&63|128)}else if(_<1114112){if((m-=4)<0)break;G.push(_>>18|240,_>>12&63|128,_>>6&63|128,_&63|128)}else throw new Error("Invalid code point")}return G}function _t(h){const m=[];for(let _=0;_>8,V=_%256,G.push(V),G.push(B);return G}function xt(h){return e.toByteArray(ot(h))}function Ct(h,m,_,B){let V;for(V=0;V=m.length||V>=h.length);++V)m[V+_]=h[V];return V}function Ot(h,m){return h instanceof m||h!=null&&h.constructor!=null&&h.constructor.name!=null&&h.constructor.name===m.name}function Kt(h){return h!==h}const jt=(function(){const h="0123456789abcdef",m=new Array(256);for(let _=0;_<16;++_){const B=_*16;for(let V=0;V<16;++V)m[B+V]=h[_]+h[V]}return m})();function Ut(h){return typeof BigInt>"u"?ee:h}function ee(){throw new Error("BigInt not supported")}})(d1);const Yp=d1.Buffer,[Tx]=window.OC?.config?.version?.split(".")??[],p1=Number.parseInt(Tx??"35"),Es=p1<32,Dx=p1<34,f1=Symbol.for("NcFormBox:context");function jd(){return Ei(f1,{isInFormBox:!1,formBoxItemClass:void 0})}const pe=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},Ox={class:"button-vue__wrapper"},$x={class:"button-vue__icon"},Rx={class:"button-vue__text"},Bx=Et({__name:"NcButton",props:{alignment:{default:"center"},ariaLabel:{default:void 0},disabled:{type:Boolean},download:{type:[String,Boolean],default:void 0},href:{default:void 0},pressed:{type:Boolean,default:void 0},size:{default:"normal"},target:{default:"_self"},text:{default:void 0},to:{default:void 0},type:{default:"button"},variant:{default:"secondary"},wide:{type:Boolean}},emits:["click","update:pressed"],setup(t,{emit:e}){const n=t,i=e,{formBoxItemClass:o}=jd(),s=Ei(c1,null)!==null,r=rt(()=>s&&n.to?"RouterLink":n.href?"a":"button"),a=rt(()=>r.value==="button"&&typeof n.pressed=="boolean"),l=rt(()=>n.pressed?"primary":n.pressed===!1&&n.variant==="primary"?"secondary":n.variant),c=rt(()=>l.value.startsWith("tertiary")),u=rt(()=>n.alignment.split("-")[0]),d=rt(()=>n.alignment.includes("-")),p=Ei("NcPopover:trigger:attrs",()=>({}),!1),f=rt(()=>p()),v=rt(()=>{if(r.value==="RouterLink")return{to:n.to,activeClass:"active"};if(r.value==="a")return{href:n.href||"#",target:n.target,rel:"nofollow noreferrer noopener",download:n.download||void 0};if(r.value==="button")return{...f.value,"aria-pressed":n.pressed,type:n.type,disabled:n.disabled}});function g(w){a.value&&i("update:pressed",!n.pressed),i("click",w)}return(w,b)=>(C(),ct(Po(r.value),Lt({class:["button-vue",[`button-vue--size-${t.size}`,{[`button-vue--${l.value}`]:l.value,"button-vue--tertiary":c.value,"button-vue--wide":t.wide,[`button-vue--${u.value}`]:u.value!=="center","button-vue--reverse":d.value,"button-vue--legacy":E(Es),"button-vue--legacy34":E(Dx)},E(o)]],"aria-label":t.ariaLabel},v.value,{onClick:g}),{default:dt(()=>[y("span",Ox,[y("span",$x,[kt(w.$slots,"icon",{},void 0,!0)]),y("span",Rx,[kt(w.$slots,"default",{},()=>[bt(A(t.text),1)],!0)])])]),_:3},16,["class","aria-label"]))}}),Se=pe(Bx,[["__scopeId","data-v-47ce59a3"]]);var Px="M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z",Xc="M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z",Nx="M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z",Lx="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z",Fx="M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z",gl="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",Vx="M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",jx="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",Ux="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",Yc="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",Ix="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z",zx="M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",Hx="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z",Jx="M14,19H18V5H14M6,19H10V5H6V19Z",Wx="M8,5.14V19.14L19,12.14L8,5.14Z",Gx="M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z";const Kx=["aria-hidden","aria-label"],qx={key:0,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Xx=["d"],Yx=["innerHTML"],Zx=Et({__name:"NcIconSvgWrapper",props:{directional:{type:Boolean},inline:{type:Boolean},svg:{default:""},name:{default:void 0},path:{default:""},size:{default:20}},setup(t){au(o=>({fb515064:n.value}));const e=t,n=rt(()=>typeof e.size=="number"?`${e.size}px`:e.size),i=rt(()=>{if(!e.svg||e.path)return;const o=a1.sanitize(e.svg),s=new DOMParser().parseFromString(o,"image/svg+xml");return s.querySelector("parsererror")?"":(s.documentElement.id&&s.documentElement.removeAttribute("id"),s.documentElement.outerHTML)});return(o,s)=>(C(),R("span",{"aria-hidden":t.name?void 0:"true","aria-label":t.name||void 0,class:Bt(["icon-vue",{"icon-vue--directional":t.directional,"icon-vue--inline":t.inline}]),role:"img"},[i.value?(C(),R("span",{key:1,innerHTML:i.value},null,8,Yx)):(C(),R("svg",qx,[y("path",{d:t.path},null,8,Xx)]))],10,Kx))}}),Pe=pe(Zx,[["__scopeId","data-v-aaedb1c3"]]),Qx=["role"],Mx={key:0,class:"notecard__heading"},t4={class:"notecard__text"},e4=Et({__name:"NcNoteCard",props:{heading:{default:void 0},showAlert:{type:Boolean},text:{default:void 0},type:{default:"warning"}},setup(t){const e=t,n=rt(()=>e.showAlert||e.type==="error"),i=rt(()=>{switch(e.type){case"error":return Nx;case"success":return Vx;case"info":return zx;default:return Px}});return(o,s)=>(C(),R("div",{class:Bt(["notecard",{[`notecard--${t.type}`]:t.type,"notecard--legacy":E(Es)}]),role:n.value?"alert":"note"},[kt(o.$slots,"icon",{},()=>[q(E(Pe),{path:i.value,class:Bt(["notecard__icon",{"notecard__icon--heading":t.heading}]),inline:""},null,8,["path","class"])],!0),y("div",null,[t.heading?(C(),R("p",Mx,A(t.heading),1)):st("",!0),kt(o.$slots,"default",{},()=>[y("p",t4,A(t.text),1)],!0)])],10,Qx))}}),Si=pe(e4,[["__scopeId","data-v-6be9fa31"]]),n4=Et({__name:"NcFormBox",props:{row:{type:Boolean}},setup(t){const e=xw();return $d(f1,{isInFormBox:!0,formBoxItemClass:e.ncFormBox__item}),(n,i)=>(C(),R("div",{class:Bt([n.$style.ncFormBox,t.row?n.$style.ncFormBox_row:n.$style.ncFormBox_col])},[kt(n.$slots,"default",{itemClass:n.$style.ncFormBox__item})],2))}}),i4="_ncFormBox_VNb0a",o4="_ncFormBox_row_NzGjv",s4="_ncFormBox__item_JIu9L",r4="_ncFormBox_col_UaYOI",a4={"material-design-icon":"_material-design-icon_UQYft",ncFormBox:i4,ncFormBox_row:o4,ncFormBox__item:s4,ncFormBox_col:r4},l4={$style:a4},za=pe(n4,[["__cssModules",l4]]);window._nc_vue_element_id=window._nc_vue_element_id??0;function oi(){return`nc-vue-${window._nc_vue_element_id++}`}const u4=["aria-describedby"],c4=Et({__name:"NcFormGroup",props:{label:{default:()=>{}},description:{default:()=>{}},hideLabel:{type:Boolean,default:!1},hideDescription:{type:Boolean,default:!1},noGap:{type:Boolean,default:!1}},setup(t){const e=ou(),n=`${`nc-form-group-${oi()}`}-description`,i=()=>!!t.description||!!e.description,o=()=>i()?n:void 0,s=()=>t.hideLabel&&(!i()||t.hideDescription);return(r,a)=>(C(),R("fieldset",{class:Bt([r.$style.formGroup,{[r.$style.formGroup_noGap]:t.noGap}]),"aria-describedby":o()},[y("legend",{class:Bt([r.$style.formGroup__label,{"hidden-visually":t.hideLabel}])},[kt(r.$slots,"label",{},()=>[bt(A(t.label||"āš ļø Missing label"),1)])],2),i()?(C(),R("div",{key:0,id:n,class:Bt([r.$style.formGroup__description,{"hidden-visually":t.hideDescription}])},[kt(r.$slots,"description",{},()=>[bt(A(t.description),1)])],2)):st("",!0),y("div",{class:Bt([r.$style.formGroup__content,{[r.$style.formGroup__content_only]:s()}])},[kt(r.$slots,"default")],2)],10,u4))}}),d4="_formGroup_eD8cV",h4="_formGroup_noGap_Eo-YJ",p4="_formGroup__label_KZ5RR",f4="_formGroup__description_rYOct",g4="_formGroup__content_ypTY1",m4="_formGroup__content_only_z-ggI",v4={"material-design-icon":"_material-design-icon_pO-y6",formGroup:d4,formGroup_noGap:h4,formGroup__label:p4,formGroup__description:f4,formGroup__content:g4,formGroup__content_only:m4},y4={$style:v4},Zc=pe(c4,[["__cssModules",y4]]),g1=Symbol.for("insideRadioGroup");function b4(){return Ei(g1,void 0)}const _4=Et({__name:"NcRadioGroup",props:ii({label:{},labelHidden:{type:Boolean},hideLabel:{type:Boolean},description:{}},{modelValue:{required:!1,default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const e=Wo(t,"modelValue"),n=Rt();$d(g1,rt(()=>({register:i,modelValue:e.value,onUpdate:o})));function i(s){n.value!==void 0&&n.value,n.value=s}function o(s){e.value=s}return(s,r)=>(C(),ct(Zc,{label:t.label,description:t.description,hideLabel:t.labelHidden||t.hideLabel},{default:dt(()=>[n.value?(C(),ct(za,{key:0,row:""},{default:dt(()=>[kt(s.$slots,"default")]),_:3})):(C(),R("span",{key:1,class:Bt(s.$style.radioGroup_checkboxRadioContainer)},[kt(s.$slots,"default")],2))]),_:3},8,["label","description","hideLabel"]))}}),w4="_radioGroup_checkboxRadioContainer_yHVcN",x4={"material-design-icon":"_material-design-icon_-FH6E",radioGroup_checkboxRadioContainer:w4},E4={$style:x4},C4=pe(_4,[["__cssModules",E4]]),S4=["id"],A4=["aria-labelledby","aria-label","checked","disabled","value"],k4=Et({__name:"NcRadioGroupButton",props:{ariaLabel:{},label:{},value:{},disabled:{type:Boolean}},setup(t){const e=t,n=oi(),i=b4(),{formBoxItemClass:o}=jd();Pi(()=>i.value.register(!0));const s=rt(()=>i?.value.modelValue===e.value);function r(){e.disabled||i.value.onUpdate(e.value)}return(a,l)=>(C(),R("div",{class:Bt([{[a.$style.radioGroupButton_active]:s.value,[a.$style.radioGroupButton_disabled]:t.disabled},a.$style.radioGroupButton,E(o)]),onClick:r},[a.$slots.icon?(C(),R("div",{key:0,class:Bt(a.$style.radioGroupButton__icon)},[kt(a.$slots,"icon")],2)):st("",!0),t.label?(C(),R("div",{key:1,id:E(n),class:Bt(a.$style.radioGroupButton__label)},A(t.label),11,S4)):st("",!0),y("input",{"aria-labelledby":t.label?E(n):void 0,"aria-label":t.label?void 0:t.ariaLabel,class:"hidden-visually",checked:s.value,type:"radio",disabled:t.disabled,value:t.value,onInput:r},null,40,A4)],2))}}),T4="_radioGroupButton_QcVyU",D4="_radioGroupButton__label_QupyB",O4="_radioGroupButton__icon_FNlLj",$4="_radioGroupButton_disabled_t8I3Z",R4="_radioGroupButton_active_ZblnM",B4={"material-design-icon":"_material-design-icon_kNZhO",radioGroupButton:T4,radioGroupButton__label:D4,radioGroupButton__icon:O4,radioGroupButton_disabled:$4,radioGroupButton_active:R4},P4={$style:B4},ec=pe(k4,[["__cssModules",P4]]),Pt=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},N4={name:"DatabaseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},L4=["aria-hidden","aria-label"],F4=["fill","width","height"],V4={d:"M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11 12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M4,9V12C4,14.21 7.58,16 12,16C16.42,16 20,14.21 20,12V9C20,11.21 16.42,13 12,13C7.58,13 4,11.21 4,9M4,14V17C4,19.21 7.58,21 12,21C16.42,21 20,19.21 20,17V14C20,16.21 16.42,18 12,18C7.58,18 4,16.21 4,14Z"},j4={key:0};function U4(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon database-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",V4,[n.title?(C(),R("title",j4,A(n.title),1)):st("",!0)])],8,F4))],16,L4)}const Ud=Pt(N4,[["render",U4]]),I4={name:"MonitorIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},z4=["aria-hidden","aria-label"],H4=["fill","width","height"],J4={d:"M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z"},W4={key:0};function G4(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon monitor-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",J4,[n.title?(C(),R("title",W4,A(n.title),1)):st("",!0)])],8,H4))],16,z4)}const m1=Pt(I4,[["render",G4]]),K4={name:"UpdateIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},q4=["aria-hidden","aria-label"],X4=["fill","width","height"],Y4={d:"M21,10.12H14.22L16.96,7.3C14.23,4.6 9.81,4.5 7.08,7.2C4.35,9.91 4.35,14.28 7.08,17C9.81,19.7 14.23,19.7 16.96,17C18.32,15.65 19,14.08 19,12.1H21C21,14.08 20.12,16.65 18.36,18.39C14.85,21.87 9.15,21.87 5.64,18.39C2.14,14.92 2.11,9.28 5.62,5.81C9.13,2.34 14.76,2.34 18.27,5.81L21,3V10.12M12.5,8V12.25L16,14.33L15.28,15.54L11,13V8H12.5Z"},Z4={key:0};function Q4(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon update-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",Y4,[n.title?(C(),R("title",Z4,A(n.title),1)):st("",!0)])],8,X4))],16,q4)}const v1=Pt(K4,[["render",Q4]]),M4=Et({__name:"SettingsNavigation",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(t){const e=Wo(t,"modelValue");return(n,i)=>(C(),ct(E(C4),{modelValue:e.value,"onUpdate:modelValue":i[0]||(i[0]=o=>e.value=o),class:"settings-navigation",label:E(O)("serverinfo","Monitoring pages"),labelHidden:""},{default:dt(()=>[q(E(ec),{value:"status",label:E(O)("serverinfo","Status")},{icon:dt(()=>[q(m1,{size:20})]),_:1},8,["label"]),q(E(ec),{value:"database",label:E(O)("serverinfo","Database")},{icon:dt(()=>[q(Ud,{size:20})]),_:1},8,["label"]),q(E(ec),{value:"background-jobs",label:E(O)("serverinfo","Background jobs")},{icon:dt(()=>[q(v1,{size:20})]),_:1},8,["label"])]),_:1},8,["modelValue","label"]))}}),t2=Pt(M4,[["__scopeId","data-v-c8fdb9c7"]]);class e2{bundle;constructor(e){this.bundle={pluralFunction:e,translations:{}}}addTranslations(e){const n=Object.values(e.translations[""]??{}).map(({msgid:i,msgid_plural:o,msgstr:s})=>o!==void 0?[`_${i}_::_${o}_`,s]:[i,s[0]]);this.bundle.translations={...this.bundle.translations,...Object.fromEntries(n)}}gettext(e,n={}){return O("",e,n,void 0,{bundle:this.bundle})}ngettext(e,n,i,o={}){return fl("",e,n,i,o,{bundle:this.bundle})}}class n2{debug=!1;language="en";translations={};setLanguage(e){return this.language=e,this}detectLocale(){return this.detectLanguage()}detectLanguage(){return this.setLanguage(No().replace("-","_"))}addTranslation(e,n){return this.translations[e]=n,this}enableDebugMode(){return this.debug=!0,this}build(){this.debug&&console.debug(`Creating gettext instance for language ${this.language}`);const e=new e2(n=>yx(n,this.language));return this.language in this.translations&&e.addTranslations(this.translations[this.language]),e}}function i2(){return new n2}const y1=i2().detectLanguage().build(),de=(...t)=>y1.gettext(...t);function Go(...t){for(const e of t)if(!e.registered){for(const{l:n,t:i}of e){if(n!==No()||!i)continue;const o=Object.fromEntries(Object.entries(i).map(([s,r])=>[s,{msgid:s,msgid_plural:r.p,msgstr:r.v}]));y1.addTranslations({translations:{"":o}})}e.registered=!0}}const o2=[{l:"ar",t:{"a few seconds ago":{v:["منذ Ų¹ŲÆŲ© Ų«ŁˆŲ§Ł†Ł"]},"sec. ago":{v:["Ų«Ų§Ł†ŁŠŲ© Ł…Ų¶ŲŖ"]},"seconds ago":{v:["Ų«ŁˆŲ§Ł†Ł Ł…Ų¶ŲŖ"]}}},{l:"ast",t:{"a few seconds ago":{v:["hai unos segundos"]},"sec. ago":{v:["hai segs"]},"seconds ago":{v:["hai segundos"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"a few seconds ago":{v:["před několika sekundami"]},"Invalid date":{v:["NeplatnĆ© datum"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtĆ­m"]}}},{l:"cs-CZ",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtĆ­m"]}}},{l:"da",t:{"a few seconds ago":{v:["et par sekunder siden"]},"Invalid date":{v:["Ugyldig dato"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"de",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"Invalid date":{v:["Ungültiges Datum"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"de-DE",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"Invalid date":{v:["Ungültiges Datum"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"el",t:{"a few seconds ago":{v:["πριν λίγα Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī±"]},"sec. ago":{v:["Γευτ. πριν"]},"seconds ago":{v:["Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī± πριν"]}}},{l:"en-GB",t:{"a few seconds ago":{v:["a few seconds ago"]},"sec. ago":{v:["sec. ago"]},"seconds ago":{v:["seconds ago"]}}},{l:"eo",t:{}},{l:"es",t:{"a few seconds ago":{v:["hace unos pocos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"es-AR",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrĆ”s"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"es-EC",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["Segundos atrĆ”s"]}}},{l:"es-MX",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrĆ”s"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"et-EE",t:{"a few seconds ago":{v:["mƵni sekund tagasi"]},"Invalid date":{v:["Vigane kuupƤev"]},"sec. ago":{v:["sek. tagasi"]},"seconds ago":{v:["sekundit tagasi"]}}},{l:"eu",t:{"a few seconds ago":{v:["duela segundo batzuk"]},"sec. ago":{v:["duela seg."]},"seconds ago":{v:["duela segundo"]}}},{l:"fa",t:{"a few seconds ago":{v:["چند Ų«Ų§Ł†ŪŒŁ‡ پیؓ"]},"sec. ago":{v:["چند Ų«Ų§Ł†ŪŒŁ‡ پیؓ"]},"seconds ago":{v:["چند Ų«Ų§Ł†ŪŒŁ‡ پیؓ"]}}},{l:"fi",t:{"a few seconds ago":{v:["muutamia sekunteja sitten"]},"sec. ago":{v:["sek. sitten"]},"seconds ago":{v:["sekunteja sitten"]}}},{l:"fr",t:{"a few seconds ago":{v:["il y a quelques instants"]},"Invalid date":{v:["Date non valide"]},"sec. ago":{v:["il y a qq. sec."]},"seconds ago":{v:["il y a quelques secondes"]}}},{l:"ga",t:{"a few seconds ago":{v:["cĆŗpla soicind ó shin"]},"sec. ago":{v:["soic. ó shin"]},"seconds ago":{v:["soicind ó shin"]}}},{l:"gl",t:{"a few seconds ago":{v:["hai uns segundos"]},"sec. ago":{v:["segs. atrĆ”s"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"he",t:{"a few seconds ago":{v:["לפני ×ž×”×¤×Ø שניות"]},"sec. ago":{v:["לפני ×ž×”×¤×Ø שניות"]},"seconds ago":{v:["לפני מה׳ שניות"]}}},{l:"hr",t:{"a few seconds ago":{v:["prije nekoliko sekundi"]},"sec. ago":{v:["prije nek. sek."]},"seconds ago":{v:["prije nek. sek."]}}},{l:"hu",t:{"a few seconds ago":{v:["nĆ©hĆ”ny mĆ”sodperce"]},"sec. ago":{v:["mĆ”sodperce"]},"seconds ago":{v:["mĆ”sodperce"]}}},{l:"id",t:{"a few seconds ago":{v:["beberapa detik yang lalu"]},"sec. ago":{v:["dtk. yang lalu"]},"seconds ago":{v:["beberapa detik lalu"]}}},{l:"is",t:{"a few seconds ago":{v:["fyrir ƶrfĆ”um sekĆŗndum sƭưan"]},"sec. ago":{v:["sek. sƭưan"]},"seconds ago":{v:["sekĆŗndum sƭưan"]}}},{l:"it",t:{"a few seconds ago":{v:["pochi secondi fa"]},"sec. ago":{v:["sec. fa"]},"seconds ago":{v:["secondi fa"]}}},{l:"ja",t:{"a few seconds ago":{v:["ę•°ē§’å‰"]},"sec. ago":{v:["ē§’å‰"]},"seconds ago":{v:["ę•°ē§’å‰"]}}},{l:"ja-JP",t:{"a few seconds ago":{v:["ę•°ē§’å‰"]},"sec. ago":{v:["ē§’å‰"]},"seconds ago":{v:["ę•°ē§’å‰"]}}},{l:"ko",t:{"a few seconds ago":{v:["방금 ģ „"]},"sec. ago":{v:["ėŖ‡ 쓈 ģ „"]},"seconds ago":{v:["쓈 ģ „"]}}},{l:"lo",t:{"a few seconds ago":{v:["ąŗŖąŗ­ąŗ‡ąŗŖąŗ²ąŗ”ąŗ§ąŗ“ąŗ™ąŗ²ąŗ—ąŗµąŗą»ˆąŗ­ąŗ™"]},"sec. ago":{v:["ąŗ§ąŗ“. ąŗą»ˆąŗ­ąŗ™"]},"seconds ago":{v:["ąŗ§ąŗ“ąŗ™ąŗ²ąŗ—ąŗµąŗą»ˆąŗ­ąŗ™"]}}},{l:"lt-LT",t:{"a few seconds ago":{v:["prieÅ” keletą sekundžių"]},"sec. ago":{v:["prieÅ” sek."]},"seconds ago":{v:["prieÅ” sekundes"]}}},{l:"lv",t:{}},{l:"mk",t:{"a few seconds ago":{v:["преГ неколку секунГи"]},"sec. ago":{v:["секунГа"]},"seconds ago":{v:["секунГи"]}}},{l:"mn",t:{"a few seconds ago":{v:["Ń…ŃŠ“Ń…ŃŠ½ ŃŠµŠŗŃƒŠ½Š“Ń‹Š½ өмнө"]},"sec. ago":{v:["сек. өмнө"]},"seconds ago":{v:["ŃŠµŠŗŃƒŠ½Š“Ń‹Š½ өмнө"]}}},{l:"my",t:{}},{l:"nb",t:{"a few seconds ago":{v:["noen fĆ„ sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"nl",t:{"a few seconds ago":{v:["enkele seconden geleden"]},"sec. ago":{v:["sec. geleden"]},"seconds ago":{v:["seconden geleden"]}}},{l:"oc",t:{}},{l:"pl",t:{"a few seconds ago":{v:["kilka sekund temu"]},"sec. ago":{v:["sek. temu"]},"seconds ago":{v:["sekund temu"]}}},{l:"pt-BR",t:{"a few seconds ago":{v:["hĆ” alguns segundos"]},"Invalid date":{v:["Data invĆ”lida"]},"sec. ago":{v:["seg. atrĆ”s"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"pt-PT",t:{"a few seconds ago":{v:["hĆ” alguns segundos"]},"sec. ago":{v:["seg. atrĆ”s"]},"seconds ago":{v:["segundos atrĆ”s"]}}},{l:"ro",t:{"a few seconds ago":{v:["acum cĆ¢teva secunde"]},"sec. ago":{v:["sec. Ć®n urmă"]},"seconds ago":{v:["secunde Ć®n urmă"]}}},{l:"ru",t:{"a few seconds ago":{v:["несколько секунГ назаГ"]},"sec. ago":{v:["сек. назаГ"]},"seconds ago":{v:["секунГ назаГ"]}}},{l:"sk",t:{"a few seconds ago":{v:["pred chvíľou"]},"sec. ago":{v:["pred pĆ”r sekundami"]},"seconds ago":{v:["pred sekundami"]}}},{l:"sl",t:{}},{l:"sr",t:{"a few seconds ago":{v:["пре неколико секунГи"]},"sec. ago":{v:["сек. Ń€Š°Š½ŠøŃ˜Šµ"]},"seconds ago":{v:["секунГи Ń€Š°Š½ŠøŃ˜Šµ"]}}},{l:"sv",t:{"a few seconds ago":{v:["fƶr nĆ„gra sekunder sedan"]},"Invalid date":{v:["Ogiltigt datum"]},"sec. ago":{v:["sek. sedan"]},"seconds ago":{v:["sekunder sedan"]}}},{l:"tr",t:{"a few seconds ago":{v:["birkaƧ saniye ƶnce"]},"Invalid date":{v:["Tarih geƧersiz"]},"sec. ago":{v:["sn. ƶnce"]},"seconds ago":{v:["saniye ƶnce"]}}},{l:"uk",t:{"a few seconds ago":{v:["Š“ŠµŠŗŃ–Š»ŃŒŠŗŠ° секунГ Ń‚Š¾Š¼Ńƒ"]},"sec. ago":{v:["с Ń‚Š¾Š¼Ńƒ"]},"seconds ago":{v:["с Ń‚Š¾Š¼Ńƒ"]}}},{l:"uz",t:{"a few seconds ago":{v:["bir necha soniya oldin"]},"sec. ago":{v:["sek. oldin"]},"seconds ago":{v:["soniyalar oldin"]}}},{l:"zh-CN",t:{"a few seconds ago":{v:["å‡ ē§’å‰"]},"sec. ago":{v:["å‡ ē§’å‰"]},"seconds ago":{v:["å‡ ē§’å‰"]}}},{l:"zh-HK",t:{"a few seconds ago":{v:["å¹¾ē§’å‰"]},"sec. ago":{v:["ē§’å‰"]},"seconds ago":{v:["ē§’å‰"]}}},{l:"zh-TW",t:{"a few seconds ago":{v:["å¹¾ē§’å‰"]},"sec. ago":{v:["ē§’å‰"]},"seconds ago":{v:["ē§’å‰"]}}}],s2=[{l:"ar",t:{Actions:{v:["Ų„Ų¬Ų±Ų§Ų”Ų§ŲŖ"]}}},{l:"ast",t:{Actions:{v:["Aiciones"]}}},{l:"br",t:{Actions:{v:["Oberioù"]}}},{l:"ca",t:{Actions:{v:["Accions"]}}},{l:"cs",t:{Actions:{v:["Akce"]}}},{l:"cs-CZ",t:{Actions:{v:["Akce"]}}},{l:"da",t:{Actions:{v:["Handlinger"]}}},{l:"de",t:{Actions:{v:["Aktionen"]}}},{l:"de-DE",t:{Actions:{v:["Aktionen"]}}},{l:"el",t:{Actions:{v:["Ενέργειες"]}}},{l:"en-GB",t:{Actions:{v:["Actions"]}}},{l:"eo",t:{Actions:{v:["Agoj"]}}},{l:"es",t:{Actions:{v:["Acciones"]}}},{l:"es-AR",t:{Actions:{v:["Acciones"]}}},{l:"es-EC",t:{Actions:{v:["Acciones"]}}},{l:"es-MX",t:{Actions:{v:["Acciones"]}}},{l:"et-EE",t:{Actions:{v:["Tegevus"]}}},{l:"eu",t:{Actions:{v:["Ekintzak"]}}},{l:"fa",t:{Actions:{v:["Ś©Ł†Ų“ā€ŒŁ‡Ų§"]}}},{l:"fi",t:{Actions:{v:["Toiminnot"]}}},{l:"fr",t:{Actions:{v:["Actions"]}}},{l:"ga",t:{Actions:{v:["GnĆ­omhartha"]}}},{l:"gl",t:{Actions:{v:["Accións"]}}},{l:"he",t:{Actions:{v:["×¤×¢×•×œ×•×Ŗ"]}}},{l:"hr",t:{Actions:{v:["Radnje"]}}},{l:"hu",t:{Actions:{v:["Műveletek"]}}},{l:"id",t:{Actions:{v:["Tindakan"]}}},{l:"is",t:{Actions:{v:["Aưgerưir"]}}},{l:"it",t:{Actions:{v:["Azioni"]}}},{l:"ja",t:{Actions:{v:["ę“ä½œ"]}}},{l:"ja-JP",t:{Actions:{v:["ę“ä½œ"]}}},{l:"ko",t:{Actions:{v:["ė™ģž‘"]}}},{l:"lo",t:{Actions:{v:["ການກະທຳ"]}}},{l:"lt-LT",t:{Actions:{v:["Veiksmai"]}}},{l:"lv",t:{}},{l:"mk",t:{Actions:{v:["Акции"]}}},{l:"mn",t:{Actions:{v:["ҮйлГлүүГ"]}}},{l:"my",t:{Actions:{v:["į€œį€Æį€•į€ŗį€†į€±į€¬į€„į€ŗį€į€»į€€į€ŗį€™į€»į€¬į€ø"]}}},{l:"nb",t:{Actions:{v:["Handlinger"]}}},{l:"nl",t:{Actions:{v:["Acties"]}}},{l:"oc",t:{Actions:{v:["Accions"]}}},{l:"pl",t:{Actions:{v:["Działania"]}}},{l:"pt-BR",t:{Actions:{v:["AƧƵes"]}}},{l:"pt-PT",t:{Actions:{v:["AƧƵes"]}}},{l:"ro",t:{Actions:{v:["Acțiuni"]}}},{l:"ru",t:{Actions:{v:["Š”ŠµŠ¹ŃŃ‚Š²ŠøŃ "]}}},{l:"sk",t:{Actions:{v:["Akcie"]}}},{l:"sl",t:{Actions:{v:["Dejanja"]}}},{l:"sr",t:{Actions:{v:["РаГње"]}}},{l:"sv",t:{Actions:{v:["ƅtgƤrder"]}}},{l:"tr",t:{Actions:{v:["İşlemler"]}}},{l:"uk",t:{Actions:{v:["Дії"]}}},{l:"uz",t:{Actions:{v:["Harakatlar"]}}},{l:"zh-CN",t:{Actions:{v:["蔌为"]}}},{l:"zh-HK",t:{Actions:{v:["動作"]}}},{l:"zh-TW",t:{Actions:{v:["動作"]}}}],r2=[{l:"ar",t:{"Clear selected":{v:["Ł…Ų­Łˆ المحدّد"]},"Deselect {option}":{v:["؄لغاؔ تحديد {option}"]},"No results":{v:["Ł„ŁŠŲ³ Ł‡Ł†Ų§Łƒ أية Ł†ŲŖŁŠŲ¬Ų©"]},Options:{v:["خيارات"]}}},{l:"ast",t:{"Clear selected":{v:["Borrar lo seleicionao"]},"Deselect {option}":{v:["Deseleicionar Ā«{option}Ā»"]},"No results":{v:["Nun hai nengĆŗn resultĆ”u"]},Options:{v:["Opciones"]}}},{l:"br",t:{"No results":{v:["Disoc'h ebet"]}}},{l:"ca",t:{"No results":{v:["Sense resultats"]}}},{l:"cs",t:{"Clear selected":{v:["Vyčistit vybranĆ©"]},"Deselect {option}":{v:["ZruÅ”it výběr {option}"]},"No results":{v:["Nic nenalezeno"]},Options:{v:["Možnosti"]}}},{l:"cs-CZ",t:{"Clear selected":{v:["Vyčistit vybranĆ©"]},"Deselect {option}":{v:["ZruÅ”it výběr {option}"]},"No results":{v:["Nic nenalezeno"]},Options:{v:["Možnosti"]}}},{l:"da",t:{"Clear selected":{v:["Ryd valgt"]},"Deselect {option}":{v:["FravƦlg {option}"]},"No results":{v:["Ingen resultater"]},Options:{v:["Indstillinger"]}}},{l:"de",t:{"Clear selected":{v:["Auswahl leeren"]},"Deselect {option}":{v:["{option} abwƤhlen"]},"No results":{v:["Keine Ergebnisse"]},Options:{v:["Optionen"]}}},{l:"de-DE",t:{"Clear selected":{v:["Auswahl leeren"]},"Deselect {option}":{v:["{option} abwƤhlen"]},"No results":{v:["Keine Ergebnisse"]},Options:{v:["Optionen"]}}},{l:"el",t:{"Clear selected":{v:["Ī•ĪŗĪŗĪ±ĪøĪ¬ĻĪ¹ĻƒĪ· επιλογής"]},"Deselect {option}":{v:["Αποεπιλογή {option}"]},"No results":{v:["Κανένα Ī±Ļ€ĪæĻ„Ī­Ī»ĪµĻƒĪ¼Ī±"]},Options:{v:["Επιλογές"]}}},{l:"en-GB",t:{"Clear selected":{v:["Clear selected"]},"Deselect {option}":{v:["Deselect {option}"]},"No results":{v:["No results"]},Options:{v:["Options"]}}},{l:"eo",t:{"No results":{v:["La rezulto forestas"]}}},{l:"es",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:[" NingĆŗn resultado"]},Options:{v:["Opciones"]}}},{l:"es-AR",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:["Sin resultados"]},Options:{v:["Opciones"]}}},{l:"es-EC",t:{"No results":{v:["Sin resultados"]}}},{l:"es-MX",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:["Sin resultados"]},Options:{v:["Opciones"]}}},{l:"et-EE",t:{"Clear selected":{v:["Tühjenda valik"]},"Deselect {option}":{v:["Eemalda {option} valik"]},"No results":{v:["Tulemusi pole"]},Options:{v:["Valikud"]}}},{l:"eu",t:{"No results":{v:["Emaitzarik ez"]}}},{l:"fa",t:{"Clear selected":{v:["پاک کردن Ł…ŁˆŲ±ŲÆ انتخاب ؓده"]},"Deselect {option}":{v:["Ł„ŲŗŁˆ انتخاب {option}"]},"No results":{v:["ŲØŲÆŁˆŁ† Ł‡ŪŒŚ† Ł†ŲŖŪŒŲ¬Ł‡ā€ŒŲ§ŪŒ"]},Options:{v:["ŚÆŲ²ŪŒŁ†Ł‡ā€ŒŁ‡Ų§"]}}},{l:"fi",t:{"Clear selected":{v:["TyhjennƤ valitut"]},"Deselect {option}":{v:["Poista valinta {option}"]},"No results":{v:["Ei tuloksia"]},Options:{v:["Valinnat"]}}},{l:"fr",t:{"Clear selected":{v:["Vider la sĆ©lection"]},"Deselect {option}":{v:["DĆ©sĆ©lectionner {option}"]},"No results":{v:["Aucun rĆ©sultat"]},Options:{v:["Options"]}}},{l:"ga",t:{"Clear selected":{v:["Glan roghnaithe"]},"Deselect {option}":{v:["DĆ­roghnaigh {option}"]},"No results":{v:["Gan torthaĆ­"]},Options:{v:["Roghanna"]}}},{l:"gl",t:{"Clear selected":{v:["Limpar o seleccionado"]},"Deselect {option}":{v:["Desmarcar {option}"]},"No results":{v:["Sen resultados"]},Options:{v:["Opcións"]}}},{l:"he",t:{"No results":{v:["אין תוצאות"]}}},{l:"hr",t:{"Clear selected":{v:["Očisti odabir"]},"Deselect {option}":{v:["Odznači {option}"]},"No results":{v:["Nema rezultata"]},Options:{v:["Mogućnosti"]}}},{l:"hu",t:{"Clear selected":{v:["KijelƶlĆ©s tƶrlĆ©se"]},"Deselect {option}":{v:["{option} kijelƶlĆ©sĆ©nek megszüntetĆ©se"]},"No results":{v:["Nincs talĆ”lat"]},Options:{v:["BeĆ”llĆ­tĆ”sok"]}}},{l:"id",t:{"Clear selected":{v:["Hapus terpilih"]},"Deselect {option}":{v:["Batalkan pemilihan {option}"]},"No results":{v:["Tidak ada hasil"]},Options:{v:["Opsi"]}}},{l:"is",t:{"Clear selected":{v:["Hreinsa valiư"]},"Deselect {option}":{v:["Afvelja {option}"]},"No results":{v:["Engar niưurstƶưur"]},Options:{v:["Valkostir"]}}},{l:"it",t:{"Clear selected":{v:["Cancella selezionati"]},"Deselect {option}":{v:["Deselezionare {option}"]},"No results":{v:["Nessun risultato"]}}},{l:"ja",t:{"Clear selected":{v:["éøęŠžć‚’č§£é™¤"]},"Deselect {option}":{v:["{option} ć®éøęŠžć‚’č§£é™¤"]},"No results":{v:["ēµęžœē„”ć—"]},Options:{v:["ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³"]}}},{l:"ja-JP",t:{"Clear selected":{v:["éøęŠžć‚’č§£é™¤"]},"Deselect {option}":{v:["{option} ć®éøęŠžć‚’č§£é™¤"]},"No results":{v:["ēµęžœē„”ć—"]},Options:{v:["ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³"]}}},{l:"ko",t:{"Clear selected":{v:["ģ„ ķƒ ķ•­ėŖ© ģ§€ģš°źø°"]},"Deselect {option}":{v:["{option} ģ„ ķƒ ķ•“ģ œ"]},"No results":{v:["ź²°ź³¼ ģ—†ģŒ"]},Options:{v:["ģ˜µģ…˜"]}}},{l:"lo",t:{"Clear selected":{v:["ąŗ„ąŗ¶ąŗšąŗŖąŗ“ą»ˆąŗ‡ąŗ—ąŗµą»ˆą»€ąŗ„ąŗ·ąŗ­ąŗ"]},"Deselect {option}":{v:["ąŗąŗ»ąŗą»€ąŗ„ąŗµąŗąŗąŗ²ąŗ™ą»€ąŗ„ąŗ·ąŗ­ąŗ {option}"]},"No results":{v:["ąŗšą»ą»ˆąŗ”ąŗµąŗœąŗ»ąŗ™ąŗ„ąŗ±ąŗš"]},Options:{v:["ຕົວເຄືອກ"]}}},{l:"lt-LT",t:{"Clear selected":{v:["IÅ”valyti pasirinkimą"]},"Deselect {option}":{v:["Panaikinkite {option} pasirinkimą"]},"No results":{v:["Nėra rezultatų"]},Options:{v:["Parinktys"]}}},{l:"lv",t:{"No results":{v:["Nav rezultātu"]}}},{l:"mk",t:{"Clear selected":{v:["Š˜ŃŃ‡ŠøŃŃ‚Šø означени"]},"Deselect {option}":{v:["ŠžŃ‚ŠŗŠ°Š¶Šø избор на {option}"]},"No results":{v:["ŠŠµŠ¼Š° Ń€ŠµŠ·ŃƒŠ»Ń‚Š°Ń‚Šø"]},Options:{v:["ŠžŠæŃ†ŠøŠø"]}}},{l:"mn",t:{"Clear selected":{v:["Донголтыг Ń†ŃŠ²ŃŃ€Š»ŃŃ…"]},"Deselect {option}":{v:["{option}-г сонголтоос хасах"]},"No results":{v:["Үр Гүн алга"]},Options:{v:["Тохиргоо"]}}},{l:"my",t:{"No results":{v:["į€›į€œį€’į€ŗį€™į€›į€¾į€­į€•į€«"]}}},{l:"nb",t:{"Clear selected":{v:["TĆøm merket"]},"Deselect {option}":{v:["Opphev valg {option}"]},"No results":{v:["Ingen resultater"]},Options:{v:["Alternativer"]}}},{l:"nl",t:{"Clear selected":{v:["Selectie wissen"]},"Deselect {option}":{v:["Selectie {option} opheffen"]},"No results":{v:["Geen resultaten"]},Options:{v:["Opties"]}}},{l:"oc",t:{"No results":{v:["Cap de resultat"]}}},{l:"pl",t:{"Clear selected":{v:["Wyczyść wybrane"]},"Deselect {option}":{v:["Odznacz {option}"]},"No results":{v:["Brak wyników"]},Options:{v:["Opcje"]}}},{l:"pt-BR",t:{"Clear selected":{v:["Limpar selecionado"]},"Deselect {option}":{v:["Desselecionar {option}"]},"No results":{v:["Sem resultados"]},Options:{v:["OpƧƵes"]}}},{l:"pt-PT",t:{"Clear selected":{v:["Limpeza selecionada"]},"Deselect {option}":{v:["Desmarcar {option}"]},"No results":{v:["Sem resultados"]},Options:{v:["OpƧƵes"]}}},{l:"ro",t:{"Clear selected":{v:["Șterge selecția"]},"Deselect {option}":{v:["Deselctează {option}"]},"No results":{v:["Nu există rezultate"]}}},{l:"ru",t:{"Clear selected":{v:["ŠžŃ‡ŠøŃŃ‚ŠøŃ‚ŃŒ выбранный"]},"Deselect {option}":{v:["ŠžŃ‚Š¼ŠµŠ½ŠøŃ‚ŃŒ выбор {option}"]},"No results":{v:["Š ŠµŠ·ŃƒŠ»ŃŒŃ‚Š°Ń‚Ń‹ Š¾Ń‚ŃŃƒŃŃ‚Š²ŃƒŃŽŃ‚"]},Options:{v:["Варианты"]}}},{l:"sk",t:{"Clear selected":{v:["VymazaÅ„ vybratĆ©"]},"Deselect {option}":{v:["ZruÅ”iÅ„ výber {option}"]},"No results":{v:["Žiadne výsledky"]},Options:{v:["možnosti"]}}},{l:"sl",t:{"No results":{v:["Ni zadetkov"]}}},{l:"sr",t:{"Clear selected":{v:["ŠžŠ±Ń€ŠøŃˆŠø изабрано"]},"Deselect {option}":{v:["Уклони избор {option}"]},"No results":{v:["ŠŠµŠ¼Š° Ń€ŠµŠ·ŃƒŠ»Ń‚Š°Ń‚Š°"]},Options:{v:["ŠžŠæŃ†ŠøŃ˜Šµ"]}}},{l:"sv",t:{"Clear selected":{v:["Rensa valda"]},"Deselect {option}":{v:["Avmarkera {option}"]},"No results":{v:["Inga resultat"]},Options:{v:["Alternativ"]}}},{l:"tr",t:{"Clear selected":{v:["SeƧilmişleri temizle"]},"Deselect {option}":{v:["{option} bırak"]},"No results":{v:["Herhangi bir sonuƧ bulunamadı"]},Options:{v:["SeƧenekler"]}}},{l:"uk",t:{"Clear selected":{v:["ŠžŃ‡ŠøŃŃ‚ŠøŃ‚Šø вибране"]},"Deselect {option}":{v:["Š—Š½ŃŃ‚Šø вибір {option}"]},"No results":{v:["Š’Ń–Š“ŃŃƒŃ‚Š½Ń– Ń€ŠµŠ·ŃƒŠ»ŃŒŃ‚Š°Ń‚Šø"]},Options:{v:["ŠŸŠ°Ń€Š°Š¼ŠµŃ‚Ń€Šø"]}}},{l:"uz",t:{"Clear selected":{v:["Tanlanganni tozalash"]},"Deselect {option}":{v:["{option}tanlovni bekor qiling"]},"No results":{v:["Natija yoŹ»q"]},Options:{v:["Variantlar"]}}},{l:"zh-CN",t:{"Clear selected":{v:["清除所选"]},"Deselect {option}":{v:["å–ę¶ˆé€‰ę‹© {option}"]},"No results":{v:["ę— ē»“ęžœ"]},Options:{v:["选锹"]}}},{l:"zh-HK",t:{"Clear selected":{v:["清除所選項目"]},"Deselect {option}":{v:["å–ę¶ˆéøę“‡ {option}"]},"No results":{v:["ē„”ēµęžœ"]},Options:{v:["選項"]}}},{l:"zh-TW",t:{"Clear selected":{v:["ęø…é™¤éøå®šé …ē›®"]},"Deselect {option}":{v:["å–ę¶ˆéøå– {option}"]},"No results":{v:["ē„”ēµęžœ"]},Options:{v:["選項"]}}}],a2=[{l:"ar",t:{"Clear text":{v:["Ł…Ų­Łˆ النص"]},"Save changes":{v:["حفظ Ų§Ł„ŲŖŲŗŁŠŁŠŲ±Ų§ŲŖ"]}}},{l:"ast",t:{"Clear text":{v:["Borrar el testu"]},"Save changes":{v:["Guardar los cambeos"]}}},{l:"br",t:{}},{l:"ca",t:{"Clear text":{v:["Netejar text"]}}},{l:"cs",t:{"Clear text":{v:["Čitelný text"]},"Save changes":{v:["Uložit změny"]}}},{l:"cs-CZ",t:{"Clear text":{v:["Čitelný text"]},"Save changes":{v:["Uložit změny"]}}},{l:"da",t:{"Clear text":{v:["Ryd tekst"]},"Save changes":{v:["Gem Ʀndringer"]}}},{l:"de",t:{"Clear text":{v:["Klartext"]},"Save changes":{v:["Ƅnderungen speichern"]}}},{l:"de-DE",t:{"Clear text":{v:["Klartext"]},"Save changes":{v:["Ƅnderungen speichern"]}}},{l:"el",t:{"Clear text":{v:["Ī•ĪŗĪŗĪ±ĪøĪ¬ĻĪ¹ĻƒĪ· κειμένου"]},"Save changes":{v:["Ī‘Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ· Ī±Ī»Ī»Ī±Ī³ĻŽĪ½"]}}},{l:"en-GB",t:{"Clear text":{v:["Clear text"]},"Save changes":{v:["Save changes"]}}},{l:"eo",t:{}},{l:"es",t:{"Clear text":{v:["Limpiar texto"]},"Save changes":{v:["Guardar cambios"]}}},{l:"es-AR",t:{"Clear text":{v:["Limpiar texto"]},"Save changes":{v:["Guardar cambios"]}}},{l:"es-EC",t:{"Clear text":{v:["Limpiar texto"]}}},{l:"es-MX",t:{"Clear text":{v:["Limpiar texto"]},"Save changes":{v:["Guardar cambios"]}}},{l:"et-EE",t:{"Clear text":{v:["Kustuta tekst"]},"Save changes":{v:["Salvesta muudatused"]}}},{l:"eu",t:{"Clear text":{v:["Garbitu testua"]}}},{l:"fa",t:{"Clear text":{v:["پاک کردن متن"]},"Save changes":{v:["Ų°Ų®ŪŒŲ±Ł‡Ł” تغییرات"]}}},{l:"fi",t:{"Clear text":{v:["TyhjennƤ teksti"]},"Save changes":{v:["Tallenna muutokset"]}}},{l:"fr",t:{"Clear text":{v:["Effacer le texte"]},"Save changes":{v:["Sauvegarder les changements"]}}},{l:"ga",t:{"Clear text":{v:["Glan tĆ©acs"]},"Save changes":{v:["SabhĆ”il na hathruithe"]}}},{l:"gl",t:{"Clear text":{v:["Limpar o texto"]},"Save changes":{v:["Gardar os cambios"]}}},{l:"he",t:{"Clear text":{v:["פינוי טקהט"]}}},{l:"hr",t:{"Clear text":{v:["Očisti tekst"]},"Save changes":{v:["Spremi promjene"]}}},{l:"hu",t:{"Clear text":{v:["Szƶveg tƶrlĆ©se"]},"Save changes":{v:["VĆ”ltoztatĆ”sok mentĆ©se"]}}},{l:"id",t:{"Clear text":{v:["Bersihkan teks"]},"Save changes":{v:["Simpan perubahan"]}}},{l:"is",t:{"Clear text":{v:["Hreinsa texta"]},"Save changes":{v:["Vista breytingar"]}}},{l:"it",t:{"Clear text":{v:["Cancella il testo"]},"Save changes":{v:["Salva le modifiche"]}}},{l:"ja",t:{"Clear text":{v:["ćƒ†ć‚­ć‚¹ćƒˆć‚’ć‚ÆćƒŖć‚¢"]},"Save changes":{v:["å¤‰ę›“ć‚’äæå­˜"]}}},{l:"ja-JP",t:{"Clear text":{v:["ćƒ†ć‚­ć‚¹ćƒˆć‚’ć‚ÆćƒŖć‚¢"]},"Save changes":{v:["å¤‰ę›“ć‚’äæå­˜"]}}},{l:"ko",t:{"Clear text":{v:["ķ…ģŠ¤ķŠø ģ§€ģš°źø°"]},"Save changes":{v:["변경 사항 ģ €ģž„"]}}},{l:"lo",t:{"Clear text":{v:["ąŗ„ąŗ¶ąŗšąŗ‚ą»ą»‰ąŗ„ąŗ§ąŗ²ąŗ”"]},"Save changes":{v:["ąŗšąŗ±ąŗ™ąŗ—ąŗ¶ąŗąŗąŗ²ąŗ™ąŗ›ą»ˆąŗ½ąŗ™ą»ąŗ›ąŗ‡"]}}},{l:"lt-LT",t:{"Clear text":{v:["IÅ”valyti tekstą"]},"Save changes":{v:["Ä®raÅ”yti pakeitimus"]}}},{l:"lv",t:{}},{l:"mk",t:{"Clear text":{v:["Š˜ŃŃ‡ŠøŃŃ‚Šø текст"]},"Save changes":{v:["Š—Š°Ń‡ŃƒŠ²Š°Ń˜ промени"]}}},{l:"mn",t:{"Clear text":{v:["Текстийг Ń†ŃŠ²ŃŃ€Š»ŃŃ…"]},"Save changes":{v:["Өөрчлөлтийг хаГгалах"]}}},{l:"my",t:{}},{l:"nb",t:{"Clear text":{v:["Fjern tekst"]},"Save changes":{v:["Lagre endringer"]}}},{l:"nl",t:{"Clear text":{v:["Tekst wissen"]},"Save changes":{v:["Wijzigingen opslaan"]}}},{l:"oc",t:{}},{l:"pl",t:{"Clear text":{v:["Wyczyść tekst"]},"Save changes":{v:["Zapisz zmiany"]}}},{l:"pt-BR",t:{"Clear text":{v:["Limpar texto"]},"Save changes":{v:["Salvar alteraƧƵes"]}}},{l:"pt-PT",t:{"Clear text":{v:["Limpar texto"]},"Save changes":{v:["Gravar alteraƧƵes"]}}},{l:"ro",t:{"Clear text":{v:["Șterge textul"]},"Save changes":{v:["Salvează modificările"]}}},{l:"ru",t:{"Clear text":{v:["ŠžŃ‡ŠøŃŃ‚ŠøŃ‚ŃŒ текст"]},"Save changes":{v:["Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ"]}}},{l:"sk",t:{"Clear text":{v:["VamazaÅ„ text"]},"Save changes":{v:["UložiÅ„ zmeny"]}}},{l:"sl",t:{"Clear text":{v:["Počisti besedilo"]}}},{l:"sr",t:{"Clear text":{v:["ŠžŠ±Ń€ŠøŃˆŠø текст"]},"Save changes":{v:["Š”Š°Ń‡ŃƒŠ²Š°Ń˜ измене"]}}},{l:"sv",t:{"Clear text":{v:["Rensa text"]},"Save changes":{v:["Spara Ƥndringar"]}}},{l:"tr",t:{"Clear text":{v:["Metni temizle"]},"Save changes":{v:["Değişiklikleri kaydet"]}}},{l:"uk",t:{"Clear text":{v:["ŠžŃ‡ŠøŃŃ‚ŠøŃ‚Šø текст"]},"Save changes":{v:["Зберегти зміни"]}}},{l:"uz",t:{"Clear text":{v:["Matnni tozalash"]},"Save changes":{v:["O'zgarishlarni saqlang"]}}},{l:"zh-CN",t:{"Clear text":{v:["ęø…é™¤ę–‡ęœ¬"]},"Save changes":{v:["äæå­˜äæ®ę”¹"]}}},{l:"zh-HK",t:{"Clear text":{v:["ęø…é™¤ę–‡ęœ¬"]},"Save changes":{v:["äæå­˜ę›“ę”¹"]}}},{l:"zh-TW",t:{"Clear text":{v:["清除文字"]},"Save changes":{v:["å„²å­˜č®Šę›“"]}}}],l2=[{l:"ar",t:{Close:{v:["؄غلاق"]}}},{l:"ast",t:{Close:{v:["Zarrar"]}}},{l:"br",t:{Close:{v:["SerriƱ"]}}},{l:"ca",t:{Close:{v:["Tanca"]}}},{l:"cs",t:{Close:{v:["Zavřít"]}}},{l:"cs-CZ",t:{Close:{v:["Zavřít"]}}},{l:"da",t:{Close:{v:["Luk"]}}},{l:"de",t:{Close:{v:["Schließen"]}}},{l:"de-DE",t:{Close:{v:["Schließen"]}}},{l:"el",t:{Close:{v:["Κλείσιμο"]}}},{l:"en-GB",t:{Close:{v:["Close"]}}},{l:"eo",t:{Close:{v:["Fermu"]}}},{l:"es",t:{Close:{v:["Cerrar"]}}},{l:"es-AR",t:{Close:{v:["Cerrar"]}}},{l:"es-EC",t:{Close:{v:["Cerrar"]}}},{l:"es-MX",t:{Close:{v:["Cerrar"]}}},{l:"et-EE",t:{Close:{v:["Sulge"]}}},{l:"eu",t:{Close:{v:["Itxi"]}}},{l:"fa",t:{Close:{v:["بستن"]}}},{l:"fi",t:{Close:{v:["Sulje"]}}},{l:"fr",t:{Close:{v:["Fermer"]}}},{l:"ga",t:{Close:{v:["DĆŗn"]}}},{l:"gl",t:{Close:{v:["Pechar"]}}},{l:"he",t:{Close:{v:["הגירה"]}}},{l:"hr",t:{Close:{v:["Zatvori"]}}},{l:"hu",t:{Close:{v:["BezĆ”rĆ”s"]}}},{l:"id",t:{Close:{v:["Tutup"]}}},{l:"is",t:{Close:{v:["Loka"]}}},{l:"it",t:{Close:{v:["Chiudi"]}}},{l:"ja",t:{Close:{v:["閉恘悋"]}}},{l:"ja-JP",t:{Close:{v:["閉恘悋"]}}},{l:"ko",t:{Close:{v:["ė‹«źø°"]}}},{l:"lo",t:{Close:{v:["ປຓດ"]}}},{l:"lt-LT",t:{Close:{v:["Užverti"]}}},{l:"lv",t:{Close:{v:["Aizvērt"]}}},{l:"mk",t:{Close:{v:["Затвори"]}}},{l:"mn",t:{Close:{v:["Єаах"]}}},{l:"my",t:{Close:{v:["ပိတ်ရန်"]}}},{l:"nb",t:{Close:{v:["Lukk"]}}},{l:"nl",t:{Close:{v:["Sluiten"]}}},{l:"oc",t:{Close:{v:["Tampar"]}}},{l:"pl",t:{Close:{v:["Zamknij"]}}},{l:"pt-BR",t:{Close:{v:["Fechar"]}}},{l:"pt-PT",t:{Close:{v:["Fechar"]}}},{l:"ro",t:{Close:{v:["Ǝnchideți"]}}},{l:"ru",t:{Close:{v:["Š—Š°ŠŗŃ€Ń‹Ń‚ŃŒ"]}}},{l:"sk",t:{Close:{v:["ZavrieÅ„"]}}},{l:"sl",t:{Close:{v:["Zapri"]}}},{l:"sr",t:{Close:{v:["Затвори"]}}},{l:"sv",t:{Close:{v:["StƤng"]}}},{l:"tr",t:{Close:{v:["Kapat"]}}},{l:"uk",t:{Close:{v:["Закрити"]}}},{l:"uz",t:{Close:{v:["Yopish"]}}},{l:"zh-CN",t:{Close:{v:["关闭"]}}},{l:"zh-HK",t:{Close:{v:["關閉"]}}},{l:"zh-TW",t:{Close:{v:["關閉"]}}}],u2=[{l:"ar",t:{}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{Copied:{v:["ZkopĆ­rovĆ”no"]},"Copy to clipboard":{v:["ZkopĆ­rovat do schrĆ”nky"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{Copied:{v:["Kopieret"]},"Copy to clipboard":{v:["KopiĆ©r til udklipsholderen"]}}},{l:"de",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"de-DE",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"el",t:{}},{l:"en-GB",t:{Copied:{v:["Copied"]},"Copy to clipboard":{v:["Copy to clipboard"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{Copied:{v:["Kopeeritud"]},"Copy to clipboard":{v:["Kopeeri lƵikelauale"]}}},{l:"eu",t:{}},{l:"fa",t:{}},{l:"fi",t:{}},{l:"fr",t:{Copied:{v:["CopiĆ©"]},"Copy to clipboard":{v:["Copier dans le presse-papiers"]}}},{l:"ga",t:{Copied:{v:["CóipeĆ”ilte"]},"Copy to clipboard":{v:["CóipeĆ”il chuig an ghearrthaisce"]}}},{l:"gl",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar ao portapapeis"]}}},{l:"he",t:{}},{l:"hr",t:{Copied:{v:["Kopirano"]},"Copy to clipboard":{v:["Kopiraj u međuspremnik"]}}},{l:"hu",t:{Copied:{v:["MĆ”solva"]},"Copy to clipboard":{v:["VĆ”gólapra mĆ”solĆ”s"]}}},{l:"id",t:{Copied:{v:["Disalin"]},"Copy to clipboard":{v:["Salin ke clipboard"]}}},{l:"is",t:{}},{l:"it",t:{}},{l:"ja",t:{Copied:{v:["ć‚³ćƒ”ćƒ¼ć•ć‚Œć¾ć—ćŸ"]},"Copy to clipboard":{v:["ć‚ÆćƒŖćƒƒćƒ—ćƒœćƒ¼ćƒ‰ć«ć‚³ćƒ”ćƒ¼"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{Copied:{v:["복사됨"]},"Copy to clipboard":{v:["ķ“ė¦½ė³“ė“œė”œ 복사"]}}},{l:"lo",t:{Copied:{v:["ສຳເນົາແຄ້ວ"]},"Copy to clipboard":{v:["ąŗŖąŗ³ą»€ąŗ™ąŗ»ąŗ²ą»ƒąŗŖą»ˆąŗ„ąŗ„ąŗ“ąŗšąŗšąŗ­ąŗ”"]}}},{l:"lt-LT",t:{Copied:{v:["Nukopijuota"]},"Copy to clipboard":{v:["Kopijuoti ÄÆ iÅ”karpinę"]}}},{l:"lv",t:{}},{l:"mk",t:{Copied:{v:["ŠšŠ¾ŠæŠøŃ€Š°Š½Š¾"]},"Copy to clipboard":{v:["ŠšŠ¾ŠæŠøŃ€Š°Ń˜ во клипбоарГ"]}}},{l:"mn",t:{Copied:{v:["ЄуулагГлаа"]},"Copy to clipboard":{v:["Данах ой руу Ń…ŃƒŃƒŠ»Š°Ń…"]}}},{l:"my",t:{}},{l:"nb",t:{}},{l:"nl",t:{Copied:{v:["Gekopieerd"]},"Copy to clipboard":{v:["Kopieer naar klembord"]}}},{l:"oc",t:{}},{l:"pl",t:{}},{l:"pt-BR",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar para a Ć”rea de transferĆŖncia"]}}},{l:"pt-PT",t:{}},{l:"ro",t:{}},{l:"ru",t:{Copied:{v:["Дкопировано"]},"Copy to clipboard":{v:["Š”ŠŗŠ¾ŠæŠøŃ€Š¾Š²Š°Ń‚ŃŒ в Š±ŃƒŃ„ер"]}}},{l:"sk",t:{}},{l:"sl",t:{}},{l:"sr",t:{}},{l:"sv",t:{Copied:{v:["Kopierat"]},"Copy to clipboard":{v:["Kopiera till urklipp"]}}},{l:"tr",t:{Copied:{v:["Kopyalandı"]},"Copy to clipboard":{v:["Panoya kopyalandı"]}}},{l:"uk",t:{}},{l:"uz",t:{Copied:{v:["Nusxalandi"]},"Copy to clipboard":{v:["Buferga nusxalash"]}}},{l:"zh-CN",t:{}},{l:"zh-HK",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["č¤‡č£½åˆ°å‰Ŗč²¼ē°æ"]}}},{l:"zh-TW",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["č¤‡č£½åˆ°å‰Ŗč²¼ē°æ"]}}}],c2=[{l:"ar",t:{"Loading …":{v:["Ų§Ł„ŲŖŲ­Ł…ŁŠŁ„ Ų¬Ų§Ų±Ł ..."]}}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Loading …":{v:["NačƭtĆ”ní …"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Loading …":{v:["IndlƦser ..."]}}},{l:"de",t:{"Loading …":{v:["Wird geladen …"]}}},{l:"de-DE",t:{"Loading …":{v:["Wird geladen …"]}}},{l:"el",t:{"Loading …":{v:["Ī¦ĻŒĻĻ„Ļ‰ĻƒĪ·  …"]}}},{l:"en-GB",t:{"Loading …":{v:["Loading …"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{"Loading …":{v:["Laadin…"]}}},{l:"eu",t:{}},{l:"fa",t:{"Loading …":{v:["ŲÆŲ± Ų­Ų§Ł„ بارگذاری ..."]}}},{l:"fi",t:{"Loading …":{v:["Ladataan ..."]}}},{l:"fr",t:{"Loading …":{v:["Chargement..."]}}},{l:"ga",t:{"Loading …":{v:["Ag lódĆ”il …"]}}},{l:"gl",t:{"Loading …":{v:["Cargando…"]}}},{l:"he",t:{}},{l:"hr",t:{"Loading …":{v:["Učitavanje …"]}}},{l:"hu",t:{"Loading …":{v:["BetƶltĆ©s…"]}}},{l:"id",t:{"Loading …":{v:["Memuat …"]}}},{l:"is",t:{"Loading …":{v:["Hleư inn …"]}}},{l:"it",t:{}},{l:"ja",t:{"Loading …":{v:["読み込み中 …"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{"Loading …":{v:["ė”œė”© 중 ..."]}}},{l:"lo",t:{"Loading …":{v:["ກຳຄັງໂຫຼດ…"]}}},{l:"lt-LT",t:{"Loading …":{v:["Ä®keliama …"]}}},{l:"lv",t:{}},{l:"mk",t:{"Loading …":{v:["Š’Ń‡ŠøŃ‚ŃƒŠ²Š°ŃšŠµĀ ā€¦"]}}},{l:"mn",t:{"Loading …":{v:["Ачаалж байна …"]}}},{l:"my",t:{}},{l:"nb",t:{"Loading …":{v:["Laster inn..."]}}},{l:"nl",t:{"Loading …":{v:["Laden …"]}}},{l:"oc",t:{}},{l:"pl",t:{"Loading …":{v:["Wczytywanie…"]}}},{l:"pt-BR",t:{"Loading …":{v:["Carregando …"]}}},{l:"pt-PT",t:{"Loading …":{v:["A carregar..."]}}},{l:"ro",t:{}},{l:"ru",t:{"Loading …":{v:["Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°Ā ā€¦"]}}},{l:"sk",t:{"Loading …":{v:["NahrĆ”vam ..."]}}},{l:"sl",t:{}},{l:"sr",t:{"Loading …":{v:["Учитава се…"]}}},{l:"sv",t:{"Loading …":{v:["LƤser in …"]}}},{l:"tr",t:{"Loading …":{v:["Yükleniyor…"]}}},{l:"uk",t:{"Loading …":{v:["Š—Š°Š²Š°Š½Ń‚Š°Š¶ŠµŠ½Š½ŃĀ ā€¦"]}}},{l:"uz",t:{"Loading …":{v:["Yuklanmoqda..."]}}},{l:"zh-CN",t:{"Loading …":{v:["加载中..."]}}},{l:"zh-HK",t:{"Loading …":{v:["åŠ č¼‰äø­Ā ā€¦"]}}},{l:"zh-TW",t:{"Loading …":{v:["載兄中......"]}}}],d2=[{l:"ar",t:{Next:{v:["Ų§Ł„ŲŖŲ§Ł„ŁŠ"]},"Pause slideshow":{v:["ŲŖŲ¬Ł…ŁŠŲÆ Ų¹Ų±Ų¶ الؓرائح"]},Previous:{v:["السابق"]},"Start slideshow":{v:["Ų„ŲØŲÆŲ„ العرض"]}}},{l:"ast",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Posar la presentación de diapositives"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Aniciar la presentación de diapositives"]}}},{l:"br",t:{Next:{v:["Da heul"]},"Pause slideshow":{v:["Arsav an diaporama"]},Previous:{v:["A-raok"]},"Start slideshow":{v:["KregiƱ an diaporama"]}}},{l:"ca",t:{Next:{v:["Següent"]},"Pause slideshow":{v:["Atura la presentació"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Inicia la presentació"]}}},{l:"cs",t:{Next:{v:["NĆ”sledujĆ­cĆ­"]},"Pause slideshow":{v:["Pozastavit prezentaci"]},Previous:{v:["PředchozĆ­"]},"Start slideshow":{v:["Spustit prezentaci"]}}},{l:"cs-CZ",t:{Next:{v:["NĆ”sledujĆ­cĆ­"]},"Pause slideshow":{v:["Pozastavit prezentaci"]},Previous:{v:["PředchozĆ­"]},"Start slideshow":{v:["Spustit prezentaci"]}}},{l:"da",t:{Next:{v:["Videre"]},"Pause slideshow":{v:["Suspender fremvisning"]},Previous:{v:["Forrige"]},"Start slideshow":{v:["Start fremvisning"]}}},{l:"de",t:{Next:{v:["Weiter"]},"Pause slideshow":{v:["Diashow pausieren"]},Previous:{v:["Vorherige"]},"Start slideshow":{v:["Diashow starten"]}}},{l:"de-DE",t:{Next:{v:["Weiter"]},"Pause slideshow":{v:["Diashow pausieren"]},Previous:{v:["Vorherige"]},"Start slideshow":{v:["Diashow starten"]}}},{l:"el",t:{Next:{v:["Ī•Ļ€ĻŒĪ¼ĪµĪ½Īæ"]},"Pause slideshow":{v:["Ī Ī±ĻĻƒĪ· προβολής Ī“Ī¹Ī±Ļ†Ī±Ī½ĪµĪ¹ĻŽĪ½"]},Previous:{v:["Ī ĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Īæ"]},"Start slideshow":{v:["Έναρξη προβολής Ī“Ī¹Ī±Ļ†Ī±Ī½ĪµĪ¹ĻŽĪ½"]}}},{l:"en-GB",t:{Next:{v:["Next"]},"Pause slideshow":{v:["Pause slideshow"]},Previous:{v:["Previous"]},"Start slideshow":{v:["Start slideshow"]}}},{l:"eo",t:{Next:{v:["Sekva"]},"Pause slideshow":{v:["Payzi bildprezenton"]},Previous:{v:["AntaÅ­a"]},"Start slideshow":{v:["Komenci bildprezenton"]}}},{l:"es",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar la presentación "]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar la presentación"]}}},{l:"es-AR",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar la presentación "]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar la presentación"]}}},{l:"es-EC",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar presentación de diapositivas"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar presentación de diapositivas"]}}},{l:"es-MX",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar presentación de diapositivas"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar presentación de diapositivas"]}}},{l:"et-EE",t:{Next:{v:["Edasi"]},"Pause slideshow":{v:["Slaidiesitluse paus"]},Previous:{v:["Eelmine"]},"Start slideshow":{v:["Alusta slaidiesitust"]}}},{l:"eu",t:{Next:{v:["Hurrengoa"]},"Pause slideshow":{v:["Pausatu diaporama"]},Previous:{v:["Aurrekoa"]},"Start slideshow":{v:["Hasi diaporama"]}}},{l:"fa",t:{Next:{v:["بعدی"]},"Pause slideshow":{v:["ŲŖŁˆŁ‚Ł Ł†Ł…Ų§ŪŒŲ“ Ų§Ų³Ł„Ų§ŪŒŲÆ"]},Previous:{v:["Ł‚ŲØŁ„ŪŒ"]},"Start slideshow":{v:["ؓروع Ł†Ł…Ų§ŪŒŲ“ Ų§Ų³Ł„Ų§ŪŒŲÆ"]}}},{l:"fi",t:{Next:{v:["Seuraava"]},"Pause slideshow":{v:["KeskeytƤ diaesitys"]},Previous:{v:["Edellinen"]},"Start slideshow":{v:["Aloita diaesitys"]}}},{l:"fr",t:{Next:{v:["Suivant"]},"Pause slideshow":{v:["Mettre le diaporama en pause"]},Previous:{v:["PrĆ©cĆ©dent"]},"Start slideshow":{v:["DĆ©marrer le diaporama"]}}},{l:"ga",t:{Next:{v:["Ar aghaidh"]},"Pause slideshow":{v:["Cuir taispeĆ”ntas sleamhnĆ”n ar sos"]},Previous:{v:["Roimhe Seo"]},"Start slideshow":{v:["Tosaigh taispeĆ”ntas sleamhnĆ”n"]}}},{l:"gl",t:{Next:{v:["Seguinte"]},"Pause slideshow":{v:["Pausar o diaporama"]},Previous:{v:["Anterir"]},"Start slideshow":{v:["Iniciar o diaporama"]}}},{l:"he",t:{Next:{v:["הבא"]},"Pause slideshow":{v:["השהיית ×ž×¦×’×Ŗ"]},Previous:{v:["הקודם"]},"Start slideshow":{v:["×”×Ŗ×—×œ×Ŗ ×”×ž×¦×’×Ŗ"]}}},{l:"hr",t:{Next:{v:["Sljedeće"]},"Pause slideshow":{v:["Pauziraj dijaprojekciju"]},Previous:{v:["Prethodno"]},"Start slideshow":{v:["Pokreni dijaprojekciju"]}}},{l:"hu",t:{Next:{v:["Kƶvetkező"]},"Pause slideshow":{v:["DiavetĆ­tĆ©s szüneteltetĆ©se"]},Previous:{v:["Előző"]},"Start slideshow":{v:["DiavetĆ­tĆ©s indĆ­tĆ”sa"]}}},{l:"id",t:{Next:{v:["Selanjutnya"]},"Pause slideshow":{v:["Jeda tayangan slide"]},Previous:{v:["Sebelumnya"]},"Start slideshow":{v:["Mulai salindia"]}}},{l:"is",t:{Next:{v:["NƦsta"]},"Pause slideshow":{v:["Gera hlĆ© Ć” skyggnusýningu"]},Previous:{v:["Fyrri"]},"Start slideshow":{v:["Byrja skyggnusýningu"]}}},{l:"it",t:{Next:{v:["Successivo"]},"Pause slideshow":{v:["Presentazione in pausa"]},Previous:{v:["Precedente"]},"Start slideshow":{v:["Avvia presentazione"]}}},{l:"ja",t:{Next:{v:["ꬔ"]},"Pause slideshow":{v:["ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’äø€ę™‚åœę­¢"]},Previous:{v:["前"]},"Start slideshow":{v:["ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’é–‹å§‹"]}}},{l:"ja-JP",t:{Next:{v:["ꬔ"]},"Pause slideshow":{v:["ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’äø€ę™‚åœę­¢"]},Previous:{v:["前"]},"Start slideshow":{v:["ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’é–‹å§‹"]}}},{l:"ko",t:{Next:{v:["ė‹¤ģŒ"]},"Pause slideshow":{v:["ģŠ¬ė¼ģ“ė“œģ‡¼ ģ¼ģ‹œģ •ģ§€"]},Previous:{v:["ģ“ģ „"]},"Start slideshow":{v:["ģŠ¬ė¼ģ“ė“œģ‡¼ ģ‹œģž‘"]}}},{l:"lo",t:{Next:{v:["ąŗ•ą»ą»ˆą»„ąŗ›"]},"Pause slideshow":{v:["ąŗ¢ąŗøąŗ”ąŗŖąŗ°ą»„ąŗ„ą»‰ą»‚ąŗŠąŗŠąŗ»ą»ˆąŗ§ąŗ„ąŗ²ąŗ§"]},Previous:{v:["ąŗą»ˆąŗ­ąŗ™ą»œą»‰ąŗ²"]},"Start slideshow":{v:["ą»€ąŗ„ąŗµą»ˆąŗ”ąŗŖąŗ°ą»„ąŗ„ą»‰ą»‚ąŗŠ"]}}},{l:"lt-LT",t:{Next:{v:["Kitas"]},"Pause slideshow":{v:["Pristabdyti skaidrių rodymą"]},Previous:{v:["Ankstesnis"]},"Start slideshow":{v:["Pradėti skaidrių rodymą"]}}},{l:"lv",t:{Next:{v:["Nākamais"]},"Pause slideshow":{v:["Pauzēt slaidrādi"]},Previous:{v:["IepriekŔējais"]},"Start slideshow":{v:["Sākt slaidrādi"]}}},{l:"mk",t:{Next:{v:["ДлеГно"]},"Pause slideshow":{v:["ŠŸŃƒŠ·ŠøŃ€Š°Ń˜ слајГшоу"]},Previous:{v:["ŠŸŃ€ŠµŠ“Ń…Š¾Š“Š½Š¾"]},"Start slideshow":{v:["Š”Ń‚Š°Ń€Ń‚ŃƒŠ²Š°Ń˜ слајГшоу"]}}},{l:"mn",t:{Next:{v:["Дараах"]},"Pause slideshow":{v:["ДлайГ шоуг түр зогсоох"]},Previous:{v:["Өмнөх"]},"Start slideshow":{v:["ДлайГ шоуг ŃŃ…Š»ŅÆŅÆŠ»ŃŃ…"]}}},{l:"my",t:{Next:{v:["į€”į€±į€¬į€€į€ŗį€žį€­į€Æį€·į€†į€€į€ŗį€›į€”į€ŗ"]},"Pause slideshow":{v:["į€…į€œį€­į€Æį€€į€ŗį€›į€¾į€­į€Æį€ø ခေတ္တရပ်ရန်"]},Previous:{v:["į€šį€į€„į€ŗ"]},"Start slideshow":{v:["į€…į€œį€­į€Æį€€į€ŗį€›į€¾į€­į€Æį€øį€”į€¬į€ø စတင်ရန်"]}}},{l:"nb",t:{Next:{v:["Neste"]},"Pause slideshow":{v:["Pause lysbildefremvisning"]},Previous:{v:["Forrige"]},"Start slideshow":{v:["Start lysbildefremvisning"]}}},{l:"nl",t:{Next:{v:["Volgende"]},"Pause slideshow":{v:["Diavoorstelling pauzeren"]},Previous:{v:["Vorige"]},"Start slideshow":{v:["Diavoorstelling starten"]}}},{l:"oc",t:{Next:{v:["Seguent"]},"Pause slideshow":{v:["Metre en pausa lo diaporama"]},Previous:{v:["Precedent"]},"Start slideshow":{v:["LanƧar lo diaporama"]}}},{l:"pl",t:{Next:{v:["Następny"]},"Pause slideshow":{v:["Wstrzymaj pokaz slajdów"]},Previous:{v:["Poprzedni"]},"Start slideshow":{v:["Rozpocznij pokaz slajdów"]}}},{l:"pt-BR",t:{Next:{v:["Próximo"]},"Pause slideshow":{v:["Pausar apresentação de slides"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar apresentação de slides"]}}},{l:"pt-PT",t:{Next:{v:["Seguinte"]},"Pause slideshow":{v:["Pausar diaporama"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar diaporama"]}}},{l:"ro",t:{Next:{v:["Următorul"]},"Pause slideshow":{v:["Pauză prezentare de diapozitive"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Ǝncepeți prezentarea de diapozitive"]}}},{l:"ru",t:{Next:{v:["Š”Š»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ"]},"Pause slideshow":{v:["ŠŸŃ€ŠøŠ¾ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ показ слйГов"]},Previous:{v:["ŠŸŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠµ"]},"Start slideshow":{v:["ŠŠ°Ń‡Š°Ń‚ŃŒ показ слайГов"]}}},{l:"sk",t:{Next:{v:["Ďalej"]},"Pause slideshow":{v:["PozastaviÅ„ prezentĆ”ciu"]},Previous:{v:["PredchĆ”dzajĆŗce"]},"Start slideshow":{v:["ZačaÅ„ prezentĆ”ciu"]}}},{l:"sl",t:{Next:{v:["Naslednji"]},"Pause slideshow":{v:["Ustavi predstavitev"]},Previous:{v:["Predhodni"]},"Start slideshow":{v:["Začni predstavitev"]}}},{l:"sr",t:{Next:{v:["ДлеГеће"]},"Pause slideshow":{v:["ŠŸŠ°ŃƒŠ·ŠøŃ€Š°Ń˜ слајГ шоу"]},Previous:{v:["ŠŸŃ€ŠµŃ‚Ń…Š¾Š“Š½Š¾"]},"Start slideshow":{v:["ŠŸŠ¾ŠŗŃ€ŠµŠ½Šø слајГ шоу"]}}},{l:"sv",t:{Next:{v:["NƤsta"]},"Pause slideshow":{v:["Pausa bildspelet"]},Previous:{v:["FƶregĆ„ende"]},"Start slideshow":{v:["Starta bildspelet"]}}},{l:"tr",t:{Next:{v:["Sonraki"]},"Pause slideshow":{v:["Slayt sunumunu duraklat"]},Previous:{v:["Ɩnceki"]},"Start slideshow":{v:["Slayt sunumunu başlat"]}}},{l:"uk",t:{Next:{v:["ВпереГ"]},"Pause slideshow":{v:["Пауза у показі слайГів"]},Previous:{v:["ŠŠ°Š·Š°Š“"]},"Start slideshow":{v:["ŠŸŠ¾Ń‡Š°Ń‚Šø показ слайГів"]}}},{l:"uz",t:{Next:{v:["Keyingi"]},"Pause slideshow":{v:["Slayd-shouni to'xtatib turish"]},Previous:{v:["Oldingi"]},"Start slideshow":{v:["Slayd-shouni boshlash"]}}},{l:"zh-CN",t:{Next:{v:["下一个"]},"Pause slideshow":{v:["ęš‚åœå¹»ēÆē‰‡"]},Previous:{v:["äøŠäø€äøŖ"]},"Start slideshow":{v:["开始幻灯片"]}}},{l:"zh-HK",t:{Next:{v:["下一個"]},"Pause slideshow":{v:["ęš«åœå¹»ē‡ˆē‰‡"]},Previous:{v:["äøŠäø€å€‹"]},"Start slideshow":{v:["é–‹å§‹å¹»ē‡ˆē‰‡"]}}},{l:"zh-TW",t:{Next:{v:["下一個"]},"Pause slideshow":{v:["ęš«åœå¹»ē‡ˆē‰‡"]},Previous:{v:["äøŠäø€å€‹"]},"Start slideshow":{v:["é–‹å§‹å¹»ē‡ˆē‰‡"]}}}],h2=[{l:"ar",t:{"Undo changes":{v:["ŲŖŲ±Ų§Ų¬ŁŽŲ¹ عن Ų§Ł„ŲŖŲŗŁŠŁŠŲ±Ų§ŲŖ"]}}},{l:"ast",t:{"Undo changes":{v:["Desfacer los cambeos"]}}},{l:"br",t:{}},{l:"ca",t:{"Undo changes":{v:["DesfĆ©s els canvis"]}}},{l:"cs",t:{"Undo changes":{v:["VzĆ­t změny zpět"]}}},{l:"cs-CZ",t:{"Undo changes":{v:["VzĆ­t změny zpět"]}}},{l:"da",t:{"Undo changes":{v:["Fortryd Ʀndringer"]}}},{l:"de",t:{"Undo changes":{v:["Ƅnderungen rückgƤngig machen"]}}},{l:"de-DE",t:{"Undo changes":{v:["Ƅnderungen rückgƤngig machen"]}}},{l:"el",t:{"Undo changes":{v:["Ī‘Ī½Ī±ĪÆĻĪµĻƒĪ· Ī‘Ī»Ī»Ī±Ī³ĻŽĪ½"]}}},{l:"en-GB",t:{"Undo changes":{v:["Undo changes"]}}},{l:"eo",t:{}},{l:"es",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-AR",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-EC",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-MX",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"et-EE",t:{"Undo changes":{v:["Pƶƶra muudatused tagasi"]}}},{l:"eu",t:{"Undo changes":{v:["Aldaketak desegin"]}}},{l:"fa",t:{"Undo changes":{v:["Ł„ŲŗŁˆ تغییرات"]}}},{l:"fi",t:{"Undo changes":{v:["Kumoa muutokset"]}}},{l:"fr",t:{"Undo changes":{v:["Annuler les changements"]}}},{l:"ga",t:{"Undo changes":{v:["Cealaigh athruithe"]}}},{l:"gl",t:{"Undo changes":{v:["Desfacer os cambios"]}}},{l:"he",t:{"Undo changes":{v:["ביטול שינויים"]}}},{l:"hr",t:{"Undo changes":{v:["PoniÅ”ti promjene"]}}},{l:"hu",t:{"Undo changes":{v:["VĆ”ltoztatĆ”sok visszavonĆ”sa"]}}},{l:"id",t:{"Undo changes":{v:["Urungkan perubahan"]}}},{l:"is",t:{"Undo changes":{v:["Afturkalla breytingar"]}}},{l:"it",t:{"Undo changes":{v:["Cancella i cambiamenti"]}}},{l:"ja",t:{"Undo changes":{v:["å¤‰ę›“ć‚’å–ć‚Šę¶ˆć—"]}}},{l:"ja-JP",t:{"Undo changes":{v:["å¤‰ę›“ć‚’å–ć‚Šę¶ˆć—"]}}},{l:"ko",t:{"Undo changes":{v:["변경 ė˜ėŒė¦¬źø°"]}}},{l:"lo",t:{"Undo changes":{v:["ąŗą»‰ąŗ­ąŗ™ąŗ„ąŗ·ąŗ™ąŗąŗ²ąŗ™ąŗ›ą»ˆąŗ½ąŗ™ą»ąŗ›ąŗ‡"]}}},{l:"lt-LT",t:{"Undo changes":{v:["AtÅ”aukti pakeitimus"]}}},{l:"lv",t:{}},{l:"mk",t:{"Undo changes":{v:["Врати ги промените"]}}},{l:"mn",t:{"Undo changes":{v:["Өөрчлөлтийг Š±ŃƒŃ†Š°Š°Ń…"]}}},{l:"my",t:{}},{l:"nb",t:{"Undo changes":{v:["Tilbakestill endringer"]}}},{l:"nl",t:{"Undo changes":{v:["Wijzigingen ongedaan maken"]}}},{l:"oc",t:{}},{l:"pl",t:{"Undo changes":{v:["Cofnij zmiany"]}}},{l:"pt-BR",t:{"Undo changes":{v:["Desfazer modificaƧƵes"]}}},{l:"pt-PT",t:{"Undo changes":{v:["Anular alteraƧƵes"]}}},{l:"ro",t:{"Undo changes":{v:["Anularea modificărilor"]}}},{l:"ru",t:{"Undo changes":{v:["ŠžŃ‚Š¼ŠµŠ½ŠøŃ‚ŃŒ ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ"]}}},{l:"sk",t:{"Undo changes":{v:["VrĆ”tiÅ„ zmeny"]}}},{l:"sl",t:{"Undo changes":{v:["Razveljavi spremembe"]}}},{l:"sr",t:{"Undo changes":{v:["ŠŸŠ¾Š½ŠøŃˆŃ‚Šø измене"]}}},{l:"sv",t:{"Undo changes":{v:["ƅngra Ƥndringar"]}}},{l:"tr",t:{"Undo changes":{v:["Değişiklikleri geri al"]}}},{l:"uk",t:{"Undo changes":{v:["Š”ŠŗŠ°ŃŃƒŠ²Š°Ń‚Šø зміни"]}}},{l:"uz",t:{"Undo changes":{v:["O'zgarishlarni bekor qilish"]}}},{l:"zh-CN",t:{"Undo changes":{v:["撤销曓改"]}}},{l:"zh-HK",t:{"Undo changes":{v:["å–ę¶ˆę›“ę”¹"]}}},{l:"zh-TW",t:{"Undo changes":{v:["é‚„åŽŸč®Šę›“"]}}}];Go(o2);const p2={long:de("a few seconds ago"),short:de("seconds ago"),narrow:de("sec. ago")};function f2(t=Date.now(),e={}){let n;const i=rt(()=>new Date(tn(t))),o=rt(()=>{const{language:a,relativeTime:l,ignoreSeconds:c}=tn(e);return{...a&&{language:a},...l&&{relativeTime:l},ignoreSeconds:c?p2[l||"long"]:!1}}),s=Rt("");dm(r);function r(){const a=i.value.getTime();if(Number.isNaN(a)){s.value=de("Invalid date");return}else s.value=bx(i.value,o.value);if(tn(e).update!==!1){const l=Math.abs(Date.now()-a),c=l>12e4||o.value.ignoreSeconds?Math.min(l/60,18e5):1e3;n=window.setTimeout(r,c)}}return Dn(()=>n&&window.clearTimeout(n)),el(s)}function g2(t,e){const n=rt(()=>({locale:l1(),format:{dateStyle:"short",timeStyle:"medium"},...tn(e)})),i=rt(()=>new Intl.DateTimeFormat(n.value.locale,n.value.format));return rt(()=>i.value.format(tn(t)))}const m2=["data-timestamp","title","textContent"],lu=Et({__name:"NcDateTime",props:{timestamp:{},format:{default:()=>({timeStyle:"medium",dateStyle:"short"})},relativeTime:{type:[Boolean,String],default:"long"},ignoreSeconds:{type:Boolean}},setup(t){const e=t,n=rt(()=>({format:e.format})),i=rt(()=>({ignoreSeconds:e.ignoreSeconds,relativeTime:e.relativeTime||"long",update:e.relativeTime!==!1})),o=g2(So(()=>e.timestamp),n),s=f2(So(()=>e.timestamp),i),r=rt(()=>e.relativeTime?s.value:o.value);return(a,l)=>(C(),R("span",{class:"nc-datetime",dir:"auto","data-timestamp":t.timestamp,title:E(o),textContent:A(r.value)},null,8,m2))}});function Qc(t,e){return Ig()?(cb(t,e),!0):!1}const Mc=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const v2=Object.prototype.toString,y2=t=>v2.call(t)==="[object Object]";function Ha(t){return Array.isArray(t)?t:[t]}function b2(t){return li()}function _2(t,e=!0,n){b2()?Pi(t,n):e?t():qr(t)}function w2(t,e=1e3,n={}){const{immediate:i=!0,immediateCallback:o=!1}=n;let s=null;const r=rn(!1);function a(){s&&(clearInterval(s),s=null)}function l(){r.value=!1,a()}function c(){const u=tn(e);u<=0||(r.value=!0,o&&t(),a(),r.value&&(s=setInterval(t,u)))}return i&&Mc&&c(),(_e(e)||typeof e=="function")&&Qc(ke(e,()=>{r.value&&Mc&&c()})),Qc(l),{isActive:Ob(r),pause:l,resume:c}}function x2(t,e,n){return ke(t,e,{...n,immediate:!0})}function E2(t,e,n){return ke(t,(i,o,s)=>{i&&e(i,o,s)},{...n,once:!1})}const uu=Mc?window:void 0;function Ao(t){var e;const n=tn(t);return(e=n?.$el)!==null&&e!==void 0?e:n}function Ja(...t){const e=(i,o,s,r)=>(i.addEventListener(o,s,r),()=>i.removeEventListener(o,s,r)),n=rt(()=>{const i=Ha(tn(t[0])).filter(o=>o!=null);return i.every(o=>typeof o!="string")?i:void 0});return x2(()=>{var i,o;return[(i=(o=n.value)===null||o===void 0?void 0:o.map(s=>Ao(s)))!==null&&i!==void 0?i:[uu].filter(s=>s!=null),Ha(tn(n.value?t[1]:t[0])),Ha(E(n.value?t[2]:t[1])),tn(n.value?t[3]:t[2])]},([i,o,s,r],a,l)=>{if(!i?.length||!o?.length||!s?.length)return;const c=y2(r)?{...r}:r,u=i.flatMap(d=>o.flatMap(p=>s.map(f=>e(d,p,f,c))));l(()=>{u.forEach(d=>d())})},{flush:"post"})}function C2(){const t=rn(!1),e=li();return e&&Pi(()=>{t.value=!0},e),t}function S2(t){const e=C2();return rt(()=>(e.value,!!t()))}function A2(t){return typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):()=>!0}function Zp(...t){let e,n,i={};t.length===3?(e=t[0],n=t[1],i=t[2]):t.length===2?typeof t[1]=="object"?(e=!0,n=t[0],i=t[1]):(e=t[0],n=t[1]):(e=!0,n=t[0]);const{target:o=uu,eventName:s="keydown",passive:r=!1,dedupe:a=!1}=i,l=A2(e);return Ja(o,s,c=>{c.repeat&&tn(a)||l(c)&&n(c)},r)}function k2(t,e,n={}){const{window:i=uu,...o}=n;let s;const r=S2(()=>i&&"ResizeObserver"in i),a=()=>{s&&(s.disconnect(),s=void 0)},l=ke(rt(()=>{const u=tn(t);return Array.isArray(u)?u.map(d=>Ao(d)):[Ao(u)]}),u=>{if(a(),r.value&&i){s=new ResizeObserver(e);for(const d of u)d&&s.observe(d,o)}},{immediate:!0,flush:"post"}),c=()=>{a(),l()};return Qc(c),{isSupported:r,stop:c}}function T2(t,e={width:0,height:0},n={}){const{window:i=uu,box:o="content-box"}=n,s=rt(()=>{var d;return(d=Ao(t))===null||d===void 0||(d=d.namespaceURI)===null||d===void 0?void 0:d.includes("svg")}),r=rn(e.width),a=rn(e.height),{stop:l}=k2(t,([d])=>{const p=o==="border-box"?d.borderBoxSize:o==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(i&&s.value){const f=Ao(t);if(f){const v=f.getBoundingClientRect();r.value=v.width,a.value=v.height}}else if(p){const f=Ha(p);r.value=f.reduce((v,{inlineSize:g})=>v+g,0),a.value=f.reduce((v,{blockSize:g})=>v+g,0)}else r.value=d.contentRect.width,a.value=d.contentRect.height},n);_2(()=>{const d=Ao(t);if(d&&"offsetWidth"in d)if(o==="content-box"&&i){const p=i.getComputedStyle(d),f=Number.parseFloat(p.paddingLeft)+Number.parseFloat(p.paddingRight),v=Number.parseFloat(p.paddingTop)+Number.parseFloat(p.paddingBottom),g=Number.parseFloat(p.borderLeftWidth)+Number.parseFloat(p.borderRightWidth),w=Number.parseFloat(p.borderTopWidth)+Number.parseFloat(p.borderBottomWidth);r.value=d.offsetWidth-f-g,a.value=d.offsetHeight-v-w}else r.value=d.offsetWidth,a.value=d.offsetHeight;else d&&(r.value=e.width,a.value=e.height)});const c=ke(()=>Ao(t),d=>{r.value=d?e.width:0,a.value=d?e.height:0});function u(){l(),c()}return{width:r,height:a,stop:u}}function D2(t,e={}){const{threshold:n=50,onSwipe:i,onSwipeEnd:o,onSwipeStart:s,passive:r=!0}=e,a=xs({x:0,y:0}),l=xs({x:0,y:0}),c=rt(()=>a.x-l.x),u=rt(()=>a.y-l.y),{max:d,abs:p}=Math,f=rt(()=>d(p(c.value),p(u.value))>=n),v=rn(!1),g=rt(()=>f.value?p(c.value)>p(u.value)?c.value>0?"left":"right":u.value>0?"up":"down":"none"),w=F=>[F.touches[0].clientX,F.touches[0].clientY],b=(F,j)=>{a.x=F,a.y=j},S=(F,j)=>{l.x=F,l.y=j},D={passive:r,capture:!r},k=F=>{v.value&&o?.(F,g.value),v.value=!1},N=[Ja(t,"touchstart",F=>{if(F.touches.length!==1)return;const[j,I]=w(F);b(j,I),S(j,I),s?.(F)},D),Ja(t,"touchmove",F=>{if(F.touches.length!==1)return;const[j,I]=w(F);S(j,I),D.capture&&!D.passive&&Math.abs(c.value)>Math.abs(u.value)&&F.preventDefault(),!v.value&&f.value&&(v.value=!0),v.value&&i?.(F)},D),Ja(t,["touchend","touchcancel"],k,D)];return{isSwiping:v,direction:g,coordsStart:a,coordsEnd:l,lengthX:c,lengthY:u,stop:()=>N.forEach(F=>F())}}const O2=["aria-label"],$2=["width","height"],R2=["fill"],B2=["fill"],P2={key:0},N2=Et({__name:"NcLoadingIcon",props:{appearance:{default:"auto"},name:{default:""},size:{default:20}},setup(t){const e=t,n=rt(()=>{const i=["#777","#CCC"];return e.appearance==="light"?i:e.appearance==="dark"?i.reverse():["var(--color-loading-light)","var(--color-loading-dark)"]});return(i,o)=>(C(),R("span",{"aria-label":t.name,role:"img",class:"material-design-icon loading-icon"},[(C(),R("svg",{width:t.size,height:t.size,viewBox:"0 0 24 24"},[y("path",{fill:n.value[0],d:"M12,4V2A10,10 0 1,0 22,12H20A8,8 0 1,1 12,4Z"},null,8,R2),y("path",{fill:n.value[1],d:"M12,4V2A10,10 0 0,1 22,12H20A8,8 0 0,0 12,4Z"},[t.name?(C(),R("title",P2,A(t.name),1)):st("",!0)],8,B2)],8,$2))],8,O2))}}),b1=pe(N2,[["__scopeId","data-v-cf399190"]]);Go(c2);const L2=Et({__name:"NcDialogButton",props:{callback:{type:Function,default:()=>{}},disabled:{type:Boolean,default:!1},icon:{default:void 0},label:{},type:{default:"button"},variant:{default:"tertiary"}},emits:["click"],setup(t,{emit:e}){const n=t,i=e,o=Rt(!1);async function s(r){if(!o.value){o.value=!0;try{const a=n.type==="reset"?!1:void 0,l=await n.callback?.()??a;l!==!1&&i("click",r,l)}finally{o.value=!1}}}return(r,a)=>(C(),ct(E(Se),{"aria-label":t.label,disabled:t.disabled,type:t.type,variant:t.variant,onClick:s},{icon:dt(()=>[kt(r.$slots,"icon",{},()=>[o.value?(C(),ct(E(b1),{key:0,name:E(de)("Loading …")},null,8,["name"])):t.icon!==void 0?(C(),ct(E(Pe),{key:1,svg:t.icon},null,8,["svg"])):st("",!0)])]),default:dt(()=>[bt(A(t.label)+" ",1)]),_:3},8,["aria-label","disabled","type","variant"]))}});var _1=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","area[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],ml=_1.join(","),w1=typeof Element>"u",jo=w1?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,vl=!w1&&Element.prototype.getRootNode?function(t){var e;return t==null||(e=t.getRootNode)===null||e===void 0?void 0:e.call(t)}:function(t){return t?.ownerDocument},yl=function(t,e){var n;e===void 0&&(e=!0);var i=t==null||(n=t.getAttribute)===null||n===void 0?void 0:n.call(t,"inert"),o=i===""||i==="true",s=o||e&&t&&(typeof t.closest=="function"?t.closest("[inert]"):yl(t.parentNode));return s},F2=function(t){var e,n=t==null||(e=t.getAttribute)===null||e===void 0?void 0:e.call(t,"contenteditable");return n===""||n==="true"},x1=function(t,e,n){if(yl(t))return[];var i=Array.prototype.slice.apply(t.querySelectorAll(ml));return e&&jo.call(t,ml)&&i.unshift(t),i=i.filter(n),i},bl=function(t,e,n){for(var i=[],o=Array.from(t);o.length;){var s=o.shift();if(!yl(s,!1))if(s.tagName==="SLOT"){var r=s.assignedElements(),a=r.length?r:s.children,l=bl(a,!0,n);n.flatten?i.push.apply(i,l):i.push({scopeParent:s,candidates:l})}else{var c=jo.call(s,ml);c&&n.filter(s)&&(e||!t.includes(s))&&i.push(s);var u=s.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(s),d=!yl(u,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(s));if(u&&d){var p=bl(u===!0?s.children:u.children,!0,n);n.flatten?i.push.apply(i,p):i.push({scopeParent:s,candidates:p})}else o.unshift.apply(o,s.children)}}return i},E1=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},Co=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||F2(t))&&!E1(t)?0:t.tabIndex},V2=function(t,e){var n=Co(t);return n<0&&e&&!E1(t)?0:n},j2=function(t,e){return t.tabIndex===e.tabIndex?t.documentOrder-e.documentOrder:t.tabIndex-e.tabIndex},C1=function(t){return t.tagName==="INPUT"},U2=function(t){return C1(t)&&t.type==="hidden"},I2=function(t){var e=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(n){return n.tagName==="SUMMARY"});return e},z2=function(t,e){for(var n=0;nsummary:first-of-type"),l=a?t.parentElement:t;if(jo.call(l,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof i=="function"){for(var c=t;t;){var u=t.parentElement,d=vl(t);if(u&&!u.shadowRoot&&i(u)===!0)return Qp(t);t.assignedSlot?t=t.assignedSlot:!u&&d!==t.ownerDocument?t=d.host:t=u}t=c}if(G2(t))return!t.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return Qp(t);return!1},q2=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if(e.tagName==="FIELDSET"&&e.disabled){for(var n=0;n=0)},S1=function(t){var e=[],n=[];return t.forEach(function(i,o){var s=!!i.scopeParent,r=s?i.scopeParent:i,a=V2(r,s),l=s?S1(i.candidates):r;a===0?s?e.push.apply(e,l):e.push(r):n.push({documentOrder:o,tabIndex:a,item:i,isScope:s,content:l})}),n.sort(j2).reduce(function(i,o){return o.isScope?i.push.apply(i,o.content):i.push(o.content),i},[]).concat(e)},Y2=function(t,e){e=e||{};var n;return e.getShadowRoot?n=bl([t],e.includeContainer,{filter:td.bind(null,e),flatten:!1,getShadowRoot:e.getShadowRoot,shadowRootFilter:X2}):n=x1(t,e.includeContainer,td.bind(null,e)),S1(n)},Z2=function(t,e){e=e||{};var n;return e.getShadowRoot?n=bl([t],e.includeContainer,{filter:_l.bind(null,e),flatten:!0,getShadowRoot:e.getShadowRoot}):n=x1(t,e.includeContainer,_l.bind(null,e)),n},ns=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return jo.call(t,ml)===!1?!1:td(e,t)},Q2=_1.concat("iframe:not([inert]):not([inert] *)").join(","),nc=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return jo.call(t,Q2)===!1?!1:_l(e,t)};function ed(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s,r=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var l=n.next();return r=l.done,l},e:function(l){a=!0,s=l},f:function(){try{r||n.return==null||n.return()}finally{if(a)throw s}}}}function tE(t,e,n){return(e=sE(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function eE(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function nE(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tf(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,i)}return n}function ef(t){for(var e=1;e0?t[t.length-1]:null},activateTrap:function(t,e){var n=_i.getActiveTrap(t);e!==n&&_i.pauseTrap(t);var i=t.indexOf(e);i===-1||t.splice(i,1),t.push(e)},deactivateTrap:function(t,e){var n=t.indexOf(e);n!==-1&&t.splice(n,1),_i.unpauseTrap(t)},pauseTrap:function(t){var e=_i.getActiveTrap(t);e?._setPausedState(!0)},unpauseTrap:function(t){var e=_i.getActiveTrap(t);e&&!e._isManuallyPaused()&&e._setPausedState(!1)}},rE=function(t){return t.tagName&&t.tagName.toLowerCase()==="input"&&typeof t.select=="function"},aE=function(t){return t?.key==="Escape"||t?.key==="Esc"||t?.keyCode===27},dr=function(t){return t?.key==="Tab"||t?.keyCode===9},lE=function(t){return dr(t)&&!t.shiftKey},uE=function(t){return dr(t)&&t.shiftKey},nf=function(t){return setTimeout(t,0)},Ws=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i1&&arguments[1]!==void 0?arguments[1]:{},M=U.hasFallback,nt=M===void 0?!1:M,et=U.params,ut=et===void 0?[]:et,ht=o[$];if(typeof ht=="function"&&(ht=ht.apply(void 0,iE(ut))),ht===!0&&(ht=void 0),!ht){if(ht===void 0||ht===!1)return ht;throw new Error("`".concat($,"` was specified but was not a node, or did not return a node"))}var mt=ht;if(typeof ht=="string"){try{mt=n.querySelector(ht)}catch(vt){throw new Error("`".concat($,'` appears to be an invalid selector; error="').concat(vt.message,'"'))}if(!mt&&!nt)throw new Error("`".concat($,"` as selector refers to no known node"))}return mt},u=function($){var U=$.activeElement;return U?U.shadowRoot&&U.shadowRoot.activeElement!==null?u(U.shadowRoot):U:null},d=function(){var $=c("initialFocus",{hasFallback:!0});if($===!1)return!1;if($===void 0||$&&!nc($,o.tabbableOptions)){var U=u(n);if(l(U)>=0)$=U;else{var M=s.tabbableGroups[0],nt=M&&M.firstTabbableNode;$=nt||c("fallbackFocus")}}else $===null&&($=c("fallbackFocus"));if(!$)throw new Error("Your focus-trap needs to have at least one focusable element");return $},p=function(){if(s.containerGroups=s.containers.map(function($){var U=Y2($,o.tabbableOptions),M=Z2($,o.tabbableOptions),nt=U.length>0?U[0]:void 0,et=U.length>0?U[U.length-1]:void 0,ut=M.find(function(vt){return ns(vt)}),ht=M.slice().reverse().find(function(vt){return ns(vt)}),mt=!!U.find(function(vt){return Co(vt)>0});return{container:$,tabbableNodes:U,focusableNodes:M,posTabIndexesFound:mt,firstTabbableNode:nt,lastTabbableNode:et,firstDomTabbableNode:ut,lastDomTabbableNode:ht,nextTabbableNode:function(vt){var Tt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Ft=U.indexOf(vt);return Ft<0?Tt?M.slice(M.indexOf(vt)+1).find(function(Xt){return ns(Xt)}):M.slice(0,M.indexOf(vt)).reverse().find(function(Xt){return ns(Xt)}):U[Ft+(Tt?1:-1)]}}}),s.tabbableGroups=s.containerGroups.filter(function($){return $.tabbableNodes.length>0}),s.tabbableGroups.length<=0&&!c("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(s.containerGroups.find(function($){return $.posTabIndexesFound})&&s.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},f=function($){if($!==!1&&$!==u(document)){if(!$||!$.focus){f(d());return}$.focus({preventScroll:!!o.preventScroll}),s.mostRecentlyFocusedNode=$,rE($)&&$.select()}},v=function($){var U=c("setReturnFocus",{params:[$]});return U||(U===!1?!1:$)},g=function($){var U=$.target,M=$.event,nt=$.isBackward,et=nt===void 0?!1:nt;U=U||va(M),p();var ut=null;if(s.tabbableGroups.length>0){var ht=l(U,M),mt=ht>=0?s.containerGroups[ht]:void 0;if(ht<0)et?ut=s.tabbableGroups[s.tabbableGroups.length-1].lastTabbableNode:ut=s.tabbableGroups[0].firstTabbableNode;else if(et){var vt=s.tabbableGroups.findIndex(function(Dt){var oe=Dt.firstTabbableNode;return U===oe});if(vt<0&&(mt.container===U||nc(U,o.tabbableOptions)&&!ns(U,o.tabbableOptions)&&!mt.nextTabbableNode(U,!1))&&(vt=ht),vt>=0){var Tt=vt===0?s.tabbableGroups.length-1:vt-1,Ft=s.tabbableGroups[Tt];ut=Co(U)>=0?Ft.lastTabbableNode:Ft.lastDomTabbableNode}else dr(M)||(ut=mt.nextTabbableNode(U,!1))}else{var Xt=s.tabbableGroups.findIndex(function(Dt){var oe=Dt.lastTabbableNode;return U===oe});if(Xt<0&&(mt.container===U||nc(U,o.tabbableOptions)&&!ns(U,o.tabbableOptions)&&!mt.nextTabbableNode(U))&&(Xt=ht),Xt>=0){var Vt=Xt===s.tabbableGroups.length-1?0:Xt+1,wt=s.tabbableGroups[Vt];ut=Co(U)>=0?wt.firstTabbableNode:wt.firstDomTabbableNode}else dr(M)||(ut=mt.nextTabbableNode(U))}}else ut=c("fallbackFocus");return ut},w=function($){var U=va($);if(!(l(U,$)>=0)){if(Ws(o.clickOutsideDeactivates,$)){r.deactivate({returnFocus:o.returnFocusOnDeactivate});return}Ws(o.allowOutsideClick,$)||$.preventDefault()}},b=function($){var U=va($),M=l(U,$)>=0;if(M||U instanceof Document)M&&(s.mostRecentlyFocusedNode=U);else{$.stopImmediatePropagation();var nt,et=!0;if(s.mostRecentlyFocusedNode)if(Co(s.mostRecentlyFocusedNode)>0){var ut=l(s.mostRecentlyFocusedNode),ht=s.containerGroups[ut].tabbableNodes;if(ht.length>0){var mt=ht.findIndex(function(vt){return vt===s.mostRecentlyFocusedNode});mt>=0&&(o.isKeyForward(s.recentNavEvent)?mt+1=0&&(nt=ht[mt-1],et=!1))}}else s.containerGroups.some(function(vt){return vt.tabbableNodes.some(function(Tt){return Co(Tt)>0})})||(et=!1);else et=!1;et&&(nt=g({target:s.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(s.recentNavEvent)})),f(nt||s.mostRecentlyFocusedNode||d())}s.recentNavEvent=void 0},S=function($){var U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;s.recentNavEvent=$;var M=g({event:$,isBackward:U});M&&(dr($)&&$.preventDefault(),f(M))},D=function($){(o.isKeyForward($)||o.isKeyBackward($))&&S($,o.isKeyBackward($))},k=function($){aE($)&&Ws(o.escapeDeactivates,$)!==!1&&($.preventDefault(),r.deactivate())},N=function($){var U=va($);l(U,$)>=0||Ws(o.clickOutsideDeactivates,$)||Ws(o.allowOutsideClick,$)||($.preventDefault(),$.stopImmediatePropagation())},F=function(){if(s.active){_i.activateTrap(i,r);var $;return o.delayInitialFocus?$=new Promise(function(U){s.delayInitialFocusTimer=nf(function(){f(d()),U()})}):f(d()),n.addEventListener("focusin",b,!0),n.addEventListener("mousedown",w,{capture:!0,passive:!1}),n.addEventListener("touchstart",w,{capture:!0,passive:!1}),n.addEventListener("click",N,{capture:!0,passive:!1}),n.addEventListener("keydown",D,{capture:!0,passive:!1}),n.addEventListener("keydown",k),$}},j=function($){s.active&&!s.paused&&r._setSubtreeIsolation(!1),s.adjacentElements.clear(),s.alreadySilent.clear();var U=new Set,M=new Set,nt=Mp($),et;try{for(nt.s();!(et=nt.n()).done;){var ut=et.value;U.add(ut);for(var ht=typeof ShadowRoot<"u"&&ut.getRootNode()instanceof ShadowRoot,mt=ut;mt;){U.add(mt);var vt=mt.parentElement,Tt=[];vt?Tt=vt.children:!vt&&ht&&(Tt=mt.getRootNode().children,vt=mt.getRootNode().host,ht=typeof ShadowRoot<"u"&&vt.getRootNode()instanceof ShadowRoot);var Ft=Mp(Tt),Xt;try{for(Ft.s();!(Xt=Ft.n()).done;){var Vt=Xt.value;M.add(Vt)}}catch(wt){Ft.e(wt)}finally{Ft.f()}mt=vt}}}catch(wt){nt.e(wt)}finally{nt.f()}U.forEach(function(wt){M.delete(wt)}),s.adjacentElements=M},I=function(){if(s.active)return n.removeEventListener("focusin",b,!0),n.removeEventListener("mousedown",w,!0),n.removeEventListener("touchstart",w,!0),n.removeEventListener("click",N,!0),n.removeEventListener("keydown",D,!0),n.removeEventListener("keydown",k),r},X=function($){var U=s.mostRecentlyFocusedNode;if(U){var M=$.some(function(et){var ut=Array.from(et.removedNodes);return ut.some(function(ht){return ht===U||typeof ht.contains=="function"&&ht.contains(U)})});if(M&&s.containers.some(function(et){return et?.isConnected})){p();var nt=d();f(nt)}}},J=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(X):void 0,Y=function(){J&&(J.disconnect(),s.active&&!s.paused&&s.containers.map(function($){J.observe($,{subtree:!0,childList:!0})}))};return r={get active(){return s.active},get paused(){return s.paused},activate:function($){if(s.active)return this;var U=a($,"onActivate"),M=a($,"onPostActivate"),nt=a($,"checkCanFocusTrap"),et=_i.getActiveTrap(i),ut=!1;if(et&&!et.paused){var ht;(ht=et._setSubtreeIsolation)===null||ht===void 0||ht.call(et,!1),ut=!0}try{nt||p(),s.active=!0,s.paused=!1,s.nodeFocusedBeforeActivation=u(n),U?.({trap:r});var mt=function(){nt&&p();var Tt=function(){r._setSubtreeIsolation(!0),Y(),M?.({trap:r})},Ft=F();Ft?Ft.then(Tt):Tt()};if(nt)return nt(s.containers.concat()).then(mt,mt),this;mt()}catch(Tt){if(et===_i.getActiveTrap(i)&&ut){var vt;(vt=et._setSubtreeIsolation)===null||vt===void 0||vt.call(et,!0)}throw Tt}return this},deactivate:function($){if(!s.active)return this;var U=ef({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},$);clearTimeout(s.delayInitialFocusTimer),s.delayInitialFocusTimer=void 0,s.paused||r._setSubtreeIsolation(!1),s.alreadySilent.clear(),I(),s.active=!1,s.paused=!1,Y(),_i.deactivateTrap(i,r);var M=a(U,"onDeactivate"),nt=a(U,"onPostDeactivate"),et=a(U,"checkCanReturnFocus"),ut=a(U,"delayReturnFocus"),ht=a(U,"returnFocus","returnFocusOnDeactivate");M?.({trap:r});var mt=function(){ht&&f(v(s.nodeFocusedBeforeActivation)),nt?.({trap:r})},vt=function(){ut&&ht?nf(mt):mt()};return ht&&et?(et(v(s.nodeFocusedBeforeActivation)).then(vt,vt),this):(vt(),this)},pause:function($){return s.active?(s.manuallyPaused=!0,this._setPausedState(!0,$)):this},unpause:function($){return s.active?(s.manuallyPaused=!1,i[i.length-1]!==this?this:this._setPausedState(!1,$)):this},updateContainerElements:function($){var U=[].concat($).filter(Boolean);return s.containers=U.map(function(M){return typeof M=="string"?n.querySelector(M):M}),o.isolateSubtrees&&j(s.containers),s.active&&(p(),s.paused||r._setSubtreeIsolation(!0)),Y(),this}},Object.defineProperties(r,{_isManuallyPaused:{value:function(){return s.manuallyPaused}},_setPausedState:{value:function($,U){if(s.paused===$)return this;if(s.paused=$,$){var M=a(U,"onPause"),nt=a(U,"onPostPause");M?.({trap:r}),I(),r._setSubtreeIsolation(!1),Y(),nt?.({trap:r})}else{var et=a(U,"onUnpause"),ut=a(U,"onPostUnpause");et?.({trap:r});var ht=function(){p();var mt=function(){r._setSubtreeIsolation(!0),Y(),ut?.({trap:r})},vt=F();vt?vt.then(mt):mt()};ht()}return this}},_setSubtreeIsolation:{value:function($){o.isolateSubtrees&&s.adjacentElements.forEach(function(U){var M;$?o.isolateSubtrees==="aria-hidden"?((U.ariaHidden==="true"||((M=U.getAttribute("aria-hidden"))===null||M===void 0?void 0:M.toLowerCase())==="true")&&s.alreadySilent.add(U),U.setAttribute("aria-hidden","true")):((U.inert||U.hasAttribute("inert"))&&s.alreadySilent.add(U),U.setAttribute("inert",!0)):s.alreadySilent.has(U)||(o.isolateSubtrees==="aria-hidden"?U.removeAttribute("aria-hidden"):U.removeAttribute("inert"))})}}}),r.updateContainerElements(t),r};function Rr(){return window._nc_focus_trap??=[],window._nc_focus_trap}function dE(){let t=[];return{pause(){t=[...Rr()];for(const e of t)e.pause()},unpause(){if(t.length===Rr().length)for(const e of t)e.unpause();t=[]}}}function hE(t,e={}){const n=dE();ke(t,()=>{tn(e.disabled)||(tn(t)?n.pause():n.unpause())}),Dn(()=>{n.unpause()})}const pE=["top","right","bottom","left"],of=["start","end"],sf=pE.reduce((t,e)=>t.concat(e,e+"-"+of[0],e+"-"+of[1]),[]),Mi=Math.min,Ai=Math.max,wl=Math.round,ya=Math.floor,ki=t=>({x:t,y:t}),fE={left:"right",right:"left",bottom:"top",top:"bottom"};function T1(t,e,n){return Ai(t,Mi(e,n))}function $i(t,e){return typeof t=="function"?t(e):t}function si(t){return t.split("-")[0]}function Nn(t){return t.split("-")[1]}function Id(t){return t==="x"?"y":"x"}function zd(t){return t==="y"?"height":"width"}function ti(t){const e=t[0];return e==="t"||e==="b"?"y":"x"}function Hd(t){return Id(ti(t))}function D1(t,e,n){n===void 0&&(n=!1);const i=Nn(t),o=Hd(t),s=zd(o);let r=o==="x"?i===(n?"end":"start")?"right":"left":i==="start"?"bottom":"top";return e.reference[s]>e.floating[s]&&(r=El(r)),[r,El(r)]}function gE(t){const e=El(t);return[xl(t),e,xl(e)]}function xl(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const rf=["left","right"],af=["right","left"],mE=["top","bottom"],vE=["bottom","top"];function yE(t,e,n){switch(t){case"top":case"bottom":return n?e?af:rf:e?rf:af;case"left":case"right":return e?mE:vE;default:return[]}}function bE(t,e,n,i){const o=Nn(t);let s=yE(si(t),n==="start",i);return o&&(s=s.map(r=>r+"-"+o),e&&(s=s.concat(s.map(xl)))),s}function El(t){const e=si(t);return fE[e]+t.slice(e.length)}function _E(t){var e,n,i,o;return{top:(e=t.top)!=null?e:0,right:(n=t.right)!=null?n:0,bottom:(i=t.bottom)!=null?i:0,left:(o=t.left)!=null?o:0}}function O1(t){return typeof t!="number"?_E(t):{top:t,right:t,bottom:t,left:t}}function Lo(t){const{x:e,y:n,width:i,height:o}=t;return{width:i,height:o,top:n,left:e,right:e+i,bottom:n+o,x:e,y:n}}function lf(t,e,n){let{reference:i,floating:o}=t;const s=ti(e),r=Hd(e),a=zd(r),l=si(e),c=s==="y",u=i.x+i.width/2-o.width/2,d=i.y+i.height/2-o.height/2,p=i[a]/2-o[a]/2;let f;switch(l){case"top":f={x:u,y:i.y-o.height};break;case"bottom":f={x:u,y:i.y+i.height};break;case"right":f={x:i.x+i.width,y:d};break;case"left":f={x:i.x-o.width,y:d};break;default:f={x:i.x,y:i.y}}const v=Nn(e);return v&&(f[r]+=p*(v==="end"?1:-1)*(n&&c?-1:1)),f}async function wE(t,e){var n;e===void 0&&(e={});const{x:i,y:o,platform:s,rects:r,elements:a,strategy:l}=t,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:p=!1,padding:f=0}=$i(e,t),v=O1(f),g=a[p?d==="floating"?"reference":"floating":d],w=Lo(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(g)))==null||n?g:g.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(a.floating)),boundary:c,rootBoundary:u,strategy:l})),b=d==="floating"?{x:i,y:o,width:r.floating.width,height:r.floating.height}:r.reference,S=await(s.getOffsetParent==null?void 0:s.getOffsetParent(a.floating)),D=await(s.isElement==null?void 0:s.isElement(S))&&await(s.getScale==null?void 0:s.getScale(S))||{x:1,y:1},k=Lo(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:b,offsetParent:S,strategy:l}):b);return{top:(w.top-k.top+v.top)/D.y,bottom:(k.bottom-w.bottom+v.bottom)/D.y,left:(w.left-k.left+v.left)/D.x,right:(k.right-w.right+v.right)/D.x}}const xE=50,$1=async(t,e,n)=>{const{placement:i="bottom",strategy:o="absolute",middleware:s=[],platform:r}=n,a=r.detectOverflow?r:{...r,detectOverflow:wE},l=await(r.isRTL==null?void 0:r.isRTL(e));let c=await r.getElementRects({reference:t,floating:e,strategy:o}),{x:u,y:d}=lf(c,i,l),p=i,f=0;const v={};for(let g=0;g({name:"arrow",options:t,async fn(e){const{x:n,y:i,placement:o,rects:s,platform:r,elements:a,middlewareData:l}=e,{element:c,padding:u=0}=$i(t,e)||{};if(c==null)return{};const d=O1(u),p={x:n,y:i},f=Hd(o),v=zd(f),g=await r.getDimensions(c),w=f==="y",b=w?"top":"left",S=w?"bottom":"right",D=w?"clientHeight":"clientWidth",k=s.reference[v]+s.reference[f]-p[f]-s.floating[v],N=p[f]-s.reference[f],F=await(r.getOffsetParent==null?void 0:r.getOffsetParent(c));let j=F?F[D]:0;(!j||!await(r.isElement==null?void 0:r.isElement(F)))&&(j=a.floating[D]||s.floating[v]);const I=k/2-N/2,X=j/2-g[v]/2-1,J=Mi(d[b],X),Y=Mi(d[S],X),$=j-g[v]-Y,U=j/2-g[v]/2+I,M=T1(J,U,$),nt=!l.arrow&&Nn(o)!=null&&U!==M&&s.reference[v]/2-(UNn(i)===t),...n.filter(i=>Nn(i)!==t)]:n.filter(i=>si(i)===i)).filter(i=>t?Nn(i)===t||(e?xl(i)!==i:!1):!0)}const SE=function(t){return t===void 0&&(t={}),{name:"autoPlacement",options:t,async fn(e){var n,i,o;const{rects:s,middlewareData:r,placement:a,platform:l,elements:c}=e,{crossAxis:u=!1,alignment:d,allowedPlacements:p=sf,autoAlignment:f=!0,...v}=$i(t,e),g=d!==void 0||p===sf?CE(d||null,f,p):p,w=((n=r.autoPlacement)==null?void 0:n.index)||0,b=g[w];if(b==null)return{};if(a!==b)return{reset:{placement:g[0]}};const S=await l.detectOverflow(e,v),D=D1(b,s,await(l.isRTL==null?void 0:l.isRTL(c.floating))),k=[S[si(b)],S[D[0]],S[D[1]]],N=[...((i=r.autoPlacement)==null?void 0:i.overflows)||[],{placement:b,overflows:k}],F=g[w+1];if(F)return{data:{index:w+1,overflows:N},reset:{placement:F}};const j=N.map(X=>{const J=Nn(X.placement);return[X.placement,J&&u?X.overflows.slice(0,2).reduce((Y,$)=>Y+$,0):X.overflows[0],X.overflows]}).sort((X,J)=>X[1]-J[1]),I=((o=j.filter(X=>X[2].slice(0,Nn(X[0])?2:3).every(J=>J<=0))[0])==null?void 0:o[0])||j[0][0];return I!==a?{data:{index:w+1,overflows:N},reset:{placement:I}}:{}}}},R1=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,i;const{placement:o,middlewareData:s,rects:r,initialPlacement:a,platform:l,elements:c}=e,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:p,fallbackStrategy:f="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:g=!0,...w}=$i(t,e);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const b=si(o),S=ti(a),D=si(a)===a,k=await(l.isRTL==null?void 0:l.isRTL(c.floating)),N=p||(D||!g?[El(a)]:gE(a)),F=v!=="none";!p&&F&&N.push(...bE(a,g,v,k));const j=[a,...N],I=await l.detectOverflow(e,w),X=[];let J=((i=s.flip)==null?void 0:i.overflows)||[];if(u&&X.push(I[b]),d){const M=D1(o,r,k);X.push(I[M[0]],I[M[1]])}if(J=[...J,{placement:o,overflows:X}],!X.every(M=>M<=0)){var Y,$;const M=(((Y=s.flip)==null?void 0:Y.index)||0)+1,nt=j[M];if(nt&&(!(d==="alignment"&&S!==ti(nt))||J.every(ut=>ti(ut.placement)===S?ut.overflows[0]>0:!0)))return{data:{index:M,overflows:J},reset:{placement:nt}};let et=($=J.filter(ut=>ut.overflows[0]<=0).sort((ut,ht)=>ut.overflows[1]-ht.overflows[1])[0])==null?void 0:$.placement;if(!et)switch(f){case"bestFit":{var U;const ut=(U=J.filter(ht=>{if(F){const mt=ti(ht.placement);return mt===S||mt==="y"}return!0}).map(ht=>[ht.placement,ht.overflows.filter(mt=>mt>0).reduce((mt,vt)=>mt+vt,0)]).sort((ht,mt)=>ht[1]-mt[1])[0])==null?void 0:U[0];ut&&(et=ut);break}case"initialPlacement":et=a;break}if(o!==et)return{reset:{placement:et}}}return{}}}},B1=new Set(["left","top"]);async function AE(t,e){const{placement:n,platform:i,elements:o}=t,s=await(i.isRTL==null?void 0:i.isRTL(o.floating)),r=si(n),a=Nn(n),l=ti(n)==="y",c=B1.has(r)?-1:1,u=s&&l?-1:1,d=$i(e,t);let{mainAxis:p,crossAxis:f,alignmentAxis:v}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return a&&typeof v=="number"&&(f=a==="end"?v*-1:v),l?{x:f*u,y:p*c}:{x:p*c,y:f*u}}const P1=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,i;const{x:o,y:s,placement:r,middlewareData:a}=e,l=await AE(e,t);return r===((n=a.offset)==null?void 0:n.placement)&&(i=a.arrow)!=null&&i.alignmentOffset?{}:{x:o+l.x,y:s+l.y,data:{...l,placement:r}}}}},N1=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:i,placement:o,platform:s}=e,{mainAxis:r=!0,crossAxis:a=!1,limiter:l={fn:S=>{let{x:D,y:k}=S;return{x:D,y:k}}},...c}=$i(t,e),u={x:n,y:i},d=await s.detectOverflow(e,c),p=ti(o),f=Id(p);let v=u[f],g=u[p];const w=(S,D)=>T1(D+d[S==="y"?"top":"left"],D,D-d[S==="y"?"bottom":"right"]);r&&(v=w(f,v)),a&&(g=w(p,g));const b=l.fn({...e,[f]:v,[p]:g});return{...b,data:{x:b.x-n,y:b.y-i,enabled:{[f]:r,[p]:a}}}}}},kE=function(t){return t===void 0&&(t={}),{options:t,fn(e){var n,i;const{x:o,y:s,placement:r,rects:a,middlewareData:l}=e,{offset:c=0,mainAxis:u=!0,crossAxis:d=!0}=$i(t,e),p={x:o,y:s},f=ti(r),v=Id(f);let g=p[v],w=p[f];const b=$i(c,e),S=typeof b=="number"?{mainAxis:b,crossAxis:0}:{mainAxis:(n=b.mainAxis)!=null?n:0,crossAxis:(i=b.crossAxis)!=null?i:0};if(u){const N=v==="y"?"height":"width",F=a.reference[v]-a.floating[N]+S.mainAxis,j=a.reference[v]+a.reference[N]-S.mainAxis;gj&&(g=j)}if(d){var D,k;const N=v==="y"?"width":"height",F=B1.has(si(r)),j=a.reference[f]-a.floating[N]+(F&&((D=l.offset)==null?void 0:D[f])||0)+(F?0:S.crossAxis),I=a.reference[f]+a.reference[N]+(F?0:((k=l.offset)==null?void 0:k[f])||0)-(F?S.crossAxis:0);wI&&(w=I)}return{[v]:g,[f]:w}}}},TE=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){const{placement:n,rects:i,platform:o,elements:s}=e,{apply:r=()=>{},...a}=$i(t,e),l=await o.detectOverflow(e,a),c=si(n),u=Nn(n),d=ti(n)==="y",{width:p,height:f}=i.floating;let v,g;c==="top"||c==="bottom"?(v=c,g=u===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?"start":"end")?"left":"right"):(g=c,v=u==="end"?"top":"bottom");const w=f-l.top-l.bottom,b=p-l.left-l.right,S=Mi(f-l[v],w),D=Mi(p-l[g],b),k=e.middlewareData.shift,N=!k;let F=S,j=D;k!=null&&k.enabled.x&&(j=b),k!=null&&k.enabled.y&&(F=w),N&&!u&&(d?j=p-2*Ai(l.left,l.right):F=f-2*Ai(l.top,l.bottom)),await r({...e,availableWidth:j,availableHeight:F});const I=await o.getDimensions(s.floating);return p!==I.width||f!==I.height?{reset:{rects:!0}}:{}}}};function An(t){var e;return((e=t.ownerDocument)==null?void 0:e.defaultView)||window}function ei(t){return An(t).getComputedStyle(t)}const uf=Math.min,hr=Math.max,Cl=Math.round;function L1(t){const e=ei(t);let n=parseFloat(e.width),i=parseFloat(e.height);const o=t.offsetWidth,s=t.offsetHeight,r=Cl(n)!==o||Cl(i)!==s;return r&&(n=o,i=s),{width:n,height:i,fallback:r}}function to(t){return V1(t)?(t.nodeName||"").toLowerCase():""}let ba;function F1(){if(ba)return ba;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(ba=t.brands.map((e=>e.brand+"/"+e.version)).join(" "),ba):navigator.userAgent}function ni(t){return t instanceof An(t).HTMLElement}function Ki(t){return t instanceof An(t).Element}function V1(t){return t instanceof An(t).Node}function cf(t){return typeof ShadowRoot>"u"?!1:t instanceof An(t).ShadowRoot||t instanceof ShadowRoot}function cu(t){const{overflow:e,overflowX:n,overflowY:i,display:o}=ei(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&!["inline","contents"].includes(o)}function DE(t){return["table","td","th"].includes(to(t))}function nd(t){const e=/firefox/i.test(F1()),n=ei(t),i=n.backdropFilter||n.WebkitBackdropFilter;return n.transform!=="none"||n.perspective!=="none"||!!i&&i!=="none"||e&&n.willChange==="filter"||e&&!!n.filter&&n.filter!=="none"||["transform","perspective"].some((o=>n.willChange.includes(o)))||["paint","layout","strict","content"].some((o=>{const s=n.contain;return s!=null&&s.includes(o)}))}function j1(){return!/^((?!chrome|android).)*safari/i.test(F1())}function Jd(t){return["html","body","#document"].includes(to(t))}function U1(t){return Ki(t)?t:t.contextElement}const I1={x:1,y:1};function vs(t){const e=U1(t);if(!ni(e))return I1;const n=e.getBoundingClientRect(),{width:i,height:o,fallback:s}=L1(e);let r=(s?Cl(n.width):n.width)/i,a=(s?Cl(n.height):n.height)/o;return r&&Number.isFinite(r)||(r=1),a&&Number.isFinite(a)||(a=1),{x:r,y:a}}function Br(t,e,n,i){var o,s;e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),a=U1(t);let l=I1;e&&(i?Ki(i)&&(l=vs(i)):l=vs(t));const c=a?An(a):window,u=!j1()&&n;let d=(r.left+(u&&((o=c.visualViewport)==null?void 0:o.offsetLeft)||0))/l.x,p=(r.top+(u&&((s=c.visualViewport)==null?void 0:s.offsetTop)||0))/l.y,f=r.width/l.x,v=r.height/l.y;if(a){const g=An(a),w=i&&Ki(i)?An(i):i;let b=g.frameElement;for(;b&&i&&w!==g;){const S=vs(b),D=b.getBoundingClientRect(),k=getComputedStyle(b);D.x+=(b.clientLeft+parseFloat(k.paddingLeft))*S.x,D.y+=(b.clientTop+parseFloat(k.paddingTop))*S.y,d*=S.x,p*=S.y,f*=S.x,v*=S.y,d+=D.x,p+=D.y,b=An(b).frameElement}}return{width:f,height:v,top:p,right:d+f,bottom:p+v,left:d,x:d,y:p}}function qi(t){return((V1(t)?t.ownerDocument:t.document)||window.document).documentElement}function du(t){return Ki(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function z1(t){return Br(qi(t)).left+du(t).scrollLeft}function Pr(t){if(to(t)==="html")return t;const e=t.assignedSlot||t.parentNode||cf(t)&&t.host||qi(t);return cf(e)?e.host:e}function H1(t){const e=Pr(t);return Jd(e)?e.ownerDocument.body:ni(e)&&cu(e)?e:H1(e)}function Sl(t,e){var n;e===void 0&&(e=[]);const i=H1(t),o=i===((n=t.ownerDocument)==null?void 0:n.body),s=An(i);return o?e.concat(s,s.visualViewport||[],cu(i)?i:[]):e.concat(i,Sl(i))}function df(t,e,n){return e==="viewport"?Lo((function(i,o){const s=An(i),r=qi(i),a=s.visualViewport;let l=r.clientWidth,c=r.clientHeight,u=0,d=0;if(a){l=a.width,c=a.height;const p=j1();(p||!p&&o==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}return{width:l,height:c,x:u,y:d}})(t,n)):Ki(e)?Lo((function(i,o){const s=Br(i,!0,o==="fixed"),r=s.top+i.clientTop,a=s.left+i.clientLeft,l=ni(i)?vs(i):{x:1,y:1};return{width:i.clientWidth*l.x,height:i.clientHeight*l.y,x:a*l.x,y:r*l.y}})(e,n)):Lo((function(i){const o=qi(i),s=du(i),r=i.ownerDocument.body,a=hr(o.scrollWidth,o.clientWidth,r.scrollWidth,r.clientWidth),l=hr(o.scrollHeight,o.clientHeight,r.scrollHeight,r.clientHeight);let c=-s.scrollLeft+z1(i);const u=-s.scrollTop;return ei(r).direction==="rtl"&&(c+=hr(o.clientWidth,r.clientWidth)-a),{width:a,height:l,x:c,y:u}})(qi(t)))}function hf(t){return ni(t)&&ei(t).position!=="fixed"?t.offsetParent:null}function pf(t){const e=An(t);let n=hf(t);for(;n&&DE(n)&&ei(n).position==="static";)n=hf(n);return n&&(to(n)==="html"||to(n)==="body"&&ei(n).position==="static"&&!nd(n))?e:n||(function(i){let o=Pr(i);for(;ni(o)&&!Jd(o);){if(nd(o))return o;o=Pr(o)}return null})(t)||e}function OE(t,e,n){const i=ni(e),o=qi(e),s=Br(t,!0,n==="fixed",e);let r={scrollLeft:0,scrollTop:0};const a={x:0,y:0};if(i||!i&&n!=="fixed")if((to(e)!=="body"||cu(o))&&(r=du(e)),ni(e)){const l=Br(e,!0);a.x=l.x+e.clientLeft,a.y=l.y+e.clientTop}else o&&(a.x=z1(o));return{x:s.left+r.scrollLeft-a.x,y:s.top+r.scrollTop-a.y,width:s.width,height:s.height}}const $E={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:i,strategy:o}=t;const s=n==="clippingAncestors"?(function(c,u){const d=u.get(c);if(d)return d;let p=Sl(c).filter((w=>Ki(w)&&to(w)!=="body")),f=null;const v=ei(c).position==="fixed";let g=v?Pr(c):c;for(;Ki(g)&&!Jd(g);){const w=ei(g),b=nd(g);(v?b||f:b||w.position!=="static"||!f||!["absolute","fixed"].includes(f.position))?f=w:p=p.filter((S=>S!==g)),g=Pr(g)}return u.set(c,p),p})(e,this._c):[].concat(n),r=[...s,i],a=r[0],l=r.reduce(((c,u)=>{const d=df(e,u,o);return c.top=hr(d.top,c.top),c.right=uf(d.right,c.right),c.bottom=uf(d.bottom,c.bottom),c.left=hr(d.left,c.left),c}),df(e,a,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:i}=t;const o=ni(n),s=qi(n);if(n===s)return e;let r={scrollLeft:0,scrollTop:0},a={x:1,y:1};const l={x:0,y:0};if((o||!o&&i!=="fixed")&&((to(n)!=="body"||cu(s))&&(r=du(n)),ni(n))){const c=Br(n);a=vs(n),l.x=c.x+n.clientLeft,l.y=c.y+n.clientTop}return{width:e.width*a.x,height:e.height*a.y,x:e.x*a.x-r.scrollLeft*a.x+l.x,y:e.y*a.y-r.scrollTop*a.y+l.y}},isElement:Ki,getDimensions:function(t){return ni(t)?L1(t):t.getBoundingClientRect()},getOffsetParent:pf,getDocumentElement:qi,getScale:vs,async getElementRects(t){let{reference:e,floating:n,strategy:i}=t;const o=this.getOffsetParent||pf,s=this.getDimensions;return{reference:OE(e,await o(n),i),floating:{x:0,y:0,...await s(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>ei(t).direction==="rtl"},RE=(t,e,n)=>{const i=new Map,o={platform:$E,...n},s={...o.platform,_c:i};return $1(t,e,{...o,platform:s})},Xi={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:150,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,autoHideOnMousedown:!1,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:t=>[...t,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover"],delay:{show:0,hide:400}}}};function BE(t,e){let n=Xi.themes[t]||{},i;do i=n[e],typeof i>"u"?n.$extend?n=Xi.themes[n.$extend]||{}:(n=null,i=Xi[e]):n=null;while(n);return i}function PE(t){const e=[t];let n=Xi.themes[t]||{};do n.$extend&&!n.$resetCss?(e.push(n.$extend),n=Xi.themes[n.$extend]||{}):n=null;while(n);return e.map(i=>`v-popper--theme-${i}`)}function ff(t){const e=[t];let n=Xi.themes[t]||{};do n.$extend?(e.push(n.$extend),n=Xi.themes[n.$extend]||{}):n=null;while(n);return e}let Nr=!1;if(typeof window<"u"){Nr=!1;try{const t=Object.defineProperty({},"passive",{get(){Nr=!0}});window.addEventListener("test",null,t)}catch{}}let J1=!1;typeof window<"u"&&typeof navigator<"u"&&(J1=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const NE=["auto","top","bottom","left","right"].reduce((t,e)=>t.concat([e,`${e}-start`,`${e}-end`]),[]),gf={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart",pointer:"pointerdown"},mf={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend",pointer:"pointerup"};function vf(t,e){const n=t.indexOf(e);n!==-1&&t.splice(n,1)}function ic(){return new Promise(t=>requestAnimationFrame(()=>{requestAnimationFrame(t)}))}const Bn=[];let ho=null;const yf={};function bf(t){let e=yf[t];return e||(e=yf[t]=[]),e}let id=function(){};typeof window<"u"&&(id=window.Element);function Gt(t){return function(e){return BE(e.theme,t)}}const oc="__floating-vue__popper",W1=()=>Et({name:"VPopper",provide(){return{[oc]:{parentPopper:this}}},inject:{[oc]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:Gt("disabled")},positioningDisabled:{type:Boolean,default:Gt("positioningDisabled")},placement:{type:String,default:Gt("placement"),validator:t=>NE.includes(t)},delay:{type:[String,Number,Object],default:Gt("delay")},distance:{type:[Number,String],default:Gt("distance")},skidding:{type:[Number,String],default:Gt("skidding")},triggers:{type:Array,default:Gt("triggers")},showTriggers:{type:[Array,Function],default:Gt("showTriggers")},hideTriggers:{type:[Array,Function],default:Gt("hideTriggers")},popperTriggers:{type:Array,default:Gt("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:Gt("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:Gt("popperHideTriggers")},container:{type:[String,Object,id,Boolean],default:Gt("container")},boundary:{type:[String,id],default:Gt("boundary")},strategy:{type:String,validator:t=>["absolute","fixed"].includes(t),default:Gt("strategy")},autoHide:{type:[Boolean,Function],default:Gt("autoHide")},handleResize:{type:Boolean,default:Gt("handleResize")},instantMove:{type:Boolean,default:Gt("instantMove")},eagerMount:{type:Boolean,default:Gt("eagerMount")},popperClass:{type:[String,Array,Object],default:Gt("popperClass")},computeTransformOrigin:{type:Boolean,default:Gt("computeTransformOrigin")},autoMinSize:{type:Boolean,default:Gt("autoMinSize")},autoSize:{type:[Boolean,String],default:Gt("autoSize")},autoMaxSize:{type:Boolean,default:Gt("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:Gt("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:Gt("preventOverflow")},overflowPadding:{type:[Number,String],default:Gt("overflowPadding")},arrowPadding:{type:[Number,String],default:Gt("arrowPadding")},arrowOverflow:{type:Boolean,default:Gt("arrowOverflow")},flip:{type:Boolean,default:Gt("flip")},shift:{type:Boolean,default:Gt("shift")},shiftCrossAxis:{type:Boolean,default:Gt("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:Gt("noAutoFocus")},disposeTimeout:{type:Number,default:Gt("disposeTimeout")}},emits:{show:()=>!0,hide:()=>!0,"update:shown":t=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},randomId:`popper_${[Math.random(),Date.now()].map(t=>t.toString(36).substring(2,10)).join("_")}`,shownChildren:new Set,lastAutoHide:!0,pendingHide:!1,containsGlobalTarget:!1,isDisposed:!0,mouseDownContains:!1}},computed:{popperId(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:{...this.classes,popperClass:this.popperClass},result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var t;return(t=this[oc])==null?void 0:t.parentPopper},hasPopperShowTriggerHover(){var t,e;return((t=this.popperTriggers)==null?void 0:t.includes("hover"))||((e=this.popperShowTriggers)==null?void 0:e.includes("hover"))}},watch:{shown:"$_autoShowHide",disabled(t){t?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())},triggers:{handler:"$_refreshListeners",deep:!0},positioningDisabled:"$_refreshListeners",...["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((t,e)=>(t[e]="$_computePosition",t),{})},created(){this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:t=null,skipDelay:e=!1,force:n=!1}={}){var i,o;(i=this.parentPopper)!=null&&i.lockedChild&&this.parentPopper.lockedChild!==this||(this.pendingHide=!1,(n||!this.disabled)&&(((o=this.parentPopper)==null?void 0:o.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(t,e),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:t=null,skipDelay:e=!1}={}){var n;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.pendingHide=!0;return}if(this.hasPopperShowTriggerHover&&this.$_isAimingPopper()){this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout(()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:e}),this.parentPopper.lockedChild=null)},1e3));return}((n=this.parentPopper)==null?void 0:n.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.pendingHide=!1,this.$_scheduleHide(t,e),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var t;this.isDisposed&&(this.isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=((t=this.referenceNode)==null?void 0:t.call(this))??this.$el,this.$_targetNodes=this.targetNodes().filter(e=>e.nodeType===e.ELEMENT_NODE),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.isDisposed||(this.isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){if(this.isDisposed||this.positioningDisabled)return;const t={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&t.middleware.push(P1({mainAxis:this.distance,crossAxis:this.skidding}));const e=this.placement.startsWith("auto");if(e?t.middleware.push(SE({alignment:this.placement.split("-")[1]??""})):t.placement=this.placement,this.preventOverflow&&(this.shift&&t.middleware.push(N1({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!e&&this.flip&&t.middleware.push(R1({padding:this.overflowPadding,boundary:this.boundary}))),t.middleware.push(EE({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&t.middleware.push({name:"arrowOverflow",fn:({placement:i,rects:o,middlewareData:s})=>{let r;const{centerOffset:a}=s.arrow;return i.startsWith("top")||i.startsWith("bottom")?r=Math.abs(a)>o.reference.width/2:r=Math.abs(a)>o.reference.height/2,{data:{overflow:r}}}}),this.autoMinSize||this.autoSize){const i=this.autoSize?this.autoSize:this.autoMinSize?"min":null;t.middleware.push({name:"autoSize",fn:({rects:o,placement:s,middlewareData:r})=>{var a;if((a=r.autoSize)!=null&&a.skip)return{};let l,c;return s.startsWith("top")||s.startsWith("bottom")?l=o.reference.width:c=o.reference.height,this.$_innerNode.style[i==="min"?"minWidth":i==="max"?"maxWidth":"width"]=l!=null?`${l}px`:null,this.$_innerNode.style[i==="min"?"minHeight":i==="max"?"maxHeight":"height"]=c!=null?`${c}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,t.middleware.push(TE({boundary:this.boundary,padding:this.overflowPadding,apply:({availableWidth:i,availableHeight:o})=>{this.$_innerNode.style.maxWidth=i!=null?`${i}px`:null,this.$_innerNode.style.maxHeight=o!=null?`${o}px`:null}})));const n=await RE(this.$_referenceNode,this.$_popperNode,t);Object.assign(this.result,{x:n.x,y:n.y,placement:n.placement,strategy:n.strategy,arrow:{...n.middlewareData.arrow,...n.middlewareData.arrowOverflow}})},$_scheduleShow(t,e=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),ho&&this.instantMove&&ho.instantMove&&ho!==this.parentPopper){ho.$_applyHide(!0),this.$_applyShow(!0);return}e?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(t,e=!1){if(this.shownChildren.size>0){this.pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(ho=this),e?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(t){const e=this.delay;return parseInt(e&&e[t]||e||0)},async $_applyShow(t=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=t,!this.isShown&&(this.$_ensureTeleport(),await ic(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...Sl(this.$_referenceNode),...Sl(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const e=this.$_referenceNode.getBoundingClientRect(),n=this.$_popperNode.querySelector(".v-popper__wrapper"),i=n.parentNode.getBoundingClientRect(),o=e.x+e.width/2-(i.left+n.offsetLeft),s=e.y+e.height/2-(i.top+n.offsetTop);this.result.transformOrigin=`${o}px ${s}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const t=this.showGroup;if(t){let e;for(let n=0;n0){this.pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=t,vf(Bn,this),Bn.length===0&&document.body.classList.remove("v-popper--some-open");for(const n of ff(this.theme)){const i=bf(n);vf(i,this),i.length===0&&document.body.classList.remove(`v-popper--some-open--${n}`)}ho===this&&(ho=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const e=this.disposeTimeout;e!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},e)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await ic(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.isDisposed)return;let t=this.container;if(typeof t=="string"?t=window.document.querySelector(t):t===!1&&(t=this.$_targetNodes[0].parentNode),!t)throw new Error("No container for popover: "+this.container);t.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const t=n=>{this.isShown&&!this.$_hideInProgress||(n.usedByTooltip=!0,!this.$_preventShow&&this.show({event:n}))};this.$_registerTriggerListeners(this.$_targetNodes,gf,this.triggers,this.showTriggers,t),this.$_registerTriggerListeners([this.$_popperNode],gf,this.popperTriggers,this.popperShowTriggers,t);const e=n=>{n.usedByTooltip||this.hide({event:n})};this.$_registerTriggerListeners(this.$_targetNodes,mf,this.triggers,this.hideTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],mf,this.popperTriggers,this.popperHideTriggers,e)},$_registerEventListeners(t,e,n){this.$_events.push({targetNodes:t,eventType:e,handler:n}),t.forEach(i=>i.addEventListener(e,n,Nr?{passive:!0}:void 0))},$_registerTriggerListeners(t,e,n,i,o){let s=n;i!=null&&(s=typeof i=="function"?i(s):i),s.forEach(r=>{const a=e[r];a&&this.$_registerEventListeners(t,a,o)})},$_removeEventListeners(t){const e=[];this.$_events.forEach(n=>{const{targetNodes:i,eventType:o,handler:s}=n;!t||t===o?i.forEach(r=>r.removeEventListener(o,s)):e.push(n)}),this.$_events=e},$_refreshListeners(){this.isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(t,e=!1){this.$_showFrameLocked||(this.hide({event:t}),t.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),e&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(t,e){for(const n of this.$_targetNodes){const i=n.getAttribute(t);i&&(n.removeAttribute(t),n.setAttribute(e,i))}},$_applyAttrsToTarget(t){for(const e of this.$_targetNodes)for(const n in t){const i=t[n];i==null?e.removeAttribute(n):e.setAttribute(n,i)}},$_updateParentShownChildren(t){let e=this.parentPopper;for(;e;)t?e.shownChildren.add(this.randomId):(e.shownChildren.delete(this.randomId),e.pendingHide&&e.hide()),e=e.parentPopper},$_isAimingPopper(){const t=this.$_referenceNode.getBoundingClientRect();if(pr>=t.left&&pr<=t.right&&fr>=t.top&&fr<=t.bottom){const e=this.$_popperNode.getBoundingClientRect(),n=pr-Ui,i=fr-Ii,o=e.left+e.width/2-Ui+(e.top+e.height/2)-Ii+e.width+e.height,s=Ui+n*o,r=Ii+i*o;return _a(Ui,Ii,s,r,e.left,e.top,e.left,e.bottom)||_a(Ui,Ii,s,r,e.left,e.top,e.right,e.top)||_a(Ui,Ii,s,r,e.right,e.top,e.right,e.bottom)||_a(Ui,Ii,s,r,e.left,e.bottom,e.right,e.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});if(typeof document<"u"&&typeof window<"u"){if(J1){const t=Nr?{passive:!0,capture:!0}:!0;document.addEventListener("touchstart",e=>_f(e),t),document.addEventListener("touchend",e=>wf(e,!0),t)}else window.addEventListener("mousedown",t=>_f(t),!0),window.addEventListener("click",t=>wf(t,!1),!0);window.addEventListener("resize",VE)}function _f(t,e){for(let n=0;n=0;i--){const o=Bn[i];try{const s=o.containsGlobalTarget=o.mouseDownContains||o.popperNode().contains(t.target);o.pendingHide=!1,requestAnimationFrame(()=>{if(o.pendingHide=!1,!n[o.randomId]&&xf(o,s,t)){if(o.$_handleGlobalClose(t,e),!t.closeAllPopover&&t.closePopover&&s){let a=o.parentPopper;for(;a;)n[a.randomId]=!0,a=a.parentPopper;return}let r=o.parentPopper;for(;r&&xf(r,r.containsGlobalTarget,t);)r.$_handleGlobalClose(t,e),r=r.parentPopper}})}catch{}}}function xf(t,e,n){return n.closeAllPopover||n.closePopover&&e||FE(t,n)&&!e}function FE(t,e){if(typeof t.autoHide=="function"){const n=t.autoHide(e);return t.lastAutoHide=n,n}return t.autoHide}function VE(){for(let t=0;t{Ui=pr,Ii=fr,pr=t.clientX,fr=t.clientY},Nr?{passive:!0}:void 0);function _a(t,e,n,i,o,s,r,a){const l=((r-o)*(e-s)-(a-s)*(t-o))/((a-s)*(n-t)-(r-o)*(i-e)),c=((n-t)*(e-s)-(i-e)*(t-o))/((a-s)*(n-t)-(r-o)*(i-e));return l>=0&&l<=1&&c>=0&&c<=1}const jE={extends:W1()},Wd=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n};function UE(t,e,n,i,o,s){return C(),R("div",{ref:"reference",class:Bt(["v-popper",{"v-popper--shown":t.slotData.isShown}])},[kt(t.$slots,"default",Ie($e(t.slotData)))],2)}const IE=Wd(jE,[["render",UE]]);function zE(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);var n=t.indexOf("Trident/");if(n>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var o=t.indexOf("Edge/");return o>0?parseInt(t.substring(o+5,t.indexOf(".",o)),10):-1}let Wa;function od(){od.init||(od.init=!0,Wa=zE()!==-1)}var Ga={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){od(),qr(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",Wa&&this.$el.appendChild(t),t.data="about:blank",Wa||this.$el.appendChild(t)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!Wa&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const HE=Kb();Wb("data-v-b329ee4c");const JE={class:"resize-observer",tabindex:"-1"};Gb();const WE=HE((t,e,n,i,o,s)=>(C(),ct("div",JE)));Ga.render=WE,Ga.__scopeId="data-v-b329ee4c",Ga.__file="src/components/ResizeObserver.vue";const G1=(t="theme")=>({computed:{themeClass(){return PE(this[t])}}}),GE=Et({name:"VPopperContent",components:{ResizeObserver:Ga},mixins:[G1()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(t){return t!=null&&!isNaN(t)?`${t}px`:null}}}),KE=["id","aria-hidden","tabindex","data-popper-placement"],qE={ref:"inner",class:"v-popper__inner"},XE=y("div",{class:"v-popper__arrow-outer"},null,-1),YE=y("div",{class:"v-popper__arrow-inner"},null,-1),ZE=[XE,YE];function QE(t,e,n,i,o,s){const r=xn("ResizeObserver");return C(),R("div",{id:t.popperId,ref:"popover",class:Bt(["v-popper__popper",[t.themeClass,t.classes.popperClass,{"v-popper__popper--shown":t.shown,"v-popper__popper--hidden":!t.shown,"v-popper__popper--show-from":t.classes.showFrom,"v-popper__popper--show-to":t.classes.showTo,"v-popper__popper--hide-from":t.classes.hideFrom,"v-popper__popper--hide-to":t.classes.hideTo,"v-popper__popper--skip-transition":t.skipTransition,"v-popper__popper--arrow-overflow":t.result&&t.result.arrow.overflow,"v-popper__popper--no-positioning":!t.result}]]),style:$o(t.result?{position:t.result.strategy,transform:`translate3d(${Math.round(t.result.x)}px,${Math.round(t.result.y)}px,0)`}:void 0),"aria-hidden":t.shown?"false":"true",tabindex:t.autoHide?0:void 0,"data-popper-placement":t.result?t.result.placement:void 0,onKeyup:e[2]||(e[2]=n1(a=>t.autoHide&&t.$emit("hide"),["esc"]))},[y("div",{class:"v-popper__backdrop",onClick:e[0]||(e[0]=a=>t.autoHide&&t.$emit("hide"))}),y("div",{class:"v-popper__wrapper",style:$o(t.result?{transformOrigin:t.result.transformOrigin}:void 0)},[y("div",qE,[t.mounted?(C(),R(yt,{key:0},[y("div",null,[kt(t.$slots,"default")]),t.handleResize?(C(),ct(r,{key:0,onNotify:e[1]||(e[1]=a=>t.$emit("resize",a))})):st("",!0)],64)):st("",!0)],512),y("div",{ref:"arrow",class:"v-popper__arrow-container",style:$o(t.result?{left:t.toPx(t.result.arrow.x),top:t.toPx(t.result.arrow.y)}:void 0)},ZE,4)],4)],46,KE)}const ME=Wd(GE,[["render",QE]]),tC={methods:{show(...t){return this.$refs.popper.show(...t)},hide(...t){return this.$refs.popper.hide(...t)},dispose(...t){return this.$refs.popper.dispose(...t)},onResize(...t){return this.$refs.popper.onResize(...t)}}};let sd=function(){};typeof window<"u"&&(sd=window.Element);const eC=Et({name:"VPopperWrapper",components:{Popper:IE,PopperContent:ME},mixins:[tC,G1("finalTheme")],props:{theme:{type:String,default:null},referenceNode:{type:Function,default:null},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:void 0},positioningDisabled:{type:Boolean,default:void 0},placement:{type:String,default:void 0},delay:{type:[String,Number,Object],default:void 0},distance:{type:[Number,String],default:void 0},skidding:{type:[Number,String],default:void 0},triggers:{type:Array,default:void 0},showTriggers:{type:[Array,Function],default:void 0},hideTriggers:{type:[Array,Function],default:void 0},popperTriggers:{type:Array,default:void 0},popperShowTriggers:{type:[Array,Function],default:void 0},popperHideTriggers:{type:[Array,Function],default:void 0},container:{type:[String,Object,sd,Boolean],default:void 0},boundary:{type:[String,sd],default:void 0},strategy:{type:String,default:void 0},autoHide:{type:[Boolean,Function],default:void 0},handleResize:{type:Boolean,default:void 0},instantMove:{type:Boolean,default:void 0},eagerMount:{type:Boolean,default:void 0},popperClass:{type:[String,Array,Object],default:void 0},computeTransformOrigin:{type:Boolean,default:void 0},autoMinSize:{type:Boolean,default:void 0},autoSize:{type:[Boolean,String],default:void 0},autoMaxSize:{type:Boolean,default:void 0},autoBoundaryMaxSize:{type:Boolean,default:void 0},preventOverflow:{type:Boolean,default:void 0},overflowPadding:{type:[Number,String],default:void 0},arrowPadding:{type:[Number,String],default:void 0},arrowOverflow:{type:Boolean,default:void 0},flip:{type:Boolean,default:void 0},shift:{type:Boolean,default:void 0},shiftCrossAxis:{type:Boolean,default:void 0},noAutoFocus:{type:Boolean,default:void 0},disposeTimeout:{type:Number,default:void 0}},emits:{show:()=>!0,hide:()=>!0,"update:shown":t=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},computed:{finalTheme(){return this.theme??this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(t=>t!==this.$refs.popperContent.$el)}}});function nC(t,e,n,i,o,s){const r=xn("PopperContent"),a=xn("Popper");return C(),ct(a,Lt({ref:"popper"},t.$props,{theme:t.finalTheme,"target-nodes":t.getTargetNodes,"popper-node":()=>t.$refs.popperContent.$el,class:[t.themeClass],onShow:e[0]||(e[0]=()=>t.$emit("show")),onHide:e[1]||(e[1]=()=>t.$emit("hide")),"onUpdate:shown":e[2]||(e[2]=l=>t.$emit("update:shown",l)),onApplyShow:e[3]||(e[3]=()=>t.$emit("apply-show")),onApplyHide:e[4]||(e[4]=()=>t.$emit("apply-hide")),onCloseGroup:e[5]||(e[5]=()=>t.$emit("close-group")),onCloseDirective:e[6]||(e[6]=()=>t.$emit("close-directive")),onAutoHide:e[7]||(e[7]=()=>t.$emit("auto-hide")),onResize:e[8]||(e[8]=()=>t.$emit("resize"))}),{default:dt(({popperId:l,isShown:c,shouldMountContent:u,skipTransition:d,autoHide:p,show:f,hide:v,handleResize:g,onResize:w,classes:b,result:S})=>[kt(t.$slots,"default",{shown:c,show:f,hide:v}),q(r,{ref:"popperContent","popper-id":l,theme:t.finalTheme,shown:c,mounted:u,"skip-transition":d,"auto-hide":p,"handle-resize":g,classes:b,result:S,onHide:v,onResize:w},{default:dt(()=>[kt(t.$slots,"popper",{shown:c,hide:v})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},16,["theme","target-nodes","popper-node","class"])}const rd=Wd(eC,[["render",nC]]),iC={...rd,name:"VDropdown",vPopperTheme:"dropdown"};({...rd},{...rd}),W1();const Ef=Xi,oC=iC;function sC(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var K1={exports:{}},ge=K1.exports={},qn,Xn;function ad(){throw new Error("setTimeout has not been defined")}function ld(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?qn=setTimeout:qn=ad}catch{qn=ad}try{typeof clearTimeout=="function"?Xn=clearTimeout:Xn=ld}catch{Xn=ld}})();function q1(t){if(qn===setTimeout)return setTimeout(t,0);if((qn===ad||!qn)&&setTimeout)return qn=setTimeout,setTimeout(t,0);try{return qn(t,0)}catch{try{return qn.call(null,t,0)}catch{return qn.call(this,t,0)}}}function rC(t){if(Xn===clearTimeout)return clearTimeout(t);if((Xn===ld||!Xn)&&clearTimeout)return Xn=clearTimeout,clearTimeout(t);try{return Xn(t)}catch{try{return Xn.call(null,t)}catch{return Xn.call(this,t)}}}var wi=[],ys=!1,ko,Ka=-1;function aC(){!ys||!ko||(ys=!1,ko.length?wi=ko.concat(wi):Ka=-1,wi.length&&X1())}function X1(){if(!ys){var t=q1(aC);ys=!0;for(var e=wi.length;e;){for(ko=wi,wi=[];++Ka1)for(var n=1;nconsole.error("SEMVER",...e):()=>{},sc}var rc,Sf;function Q1(){if(Sf)return rc;Sf=1;const t="2.0.0",e=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,i=16,o=e-6;return rc={MAX_LENGTH:e,MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:o,MAX_SAFE_INTEGER:n,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:t,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},rc}var ac={exports:{}},Af;function uC(){return Af||(Af=1,(function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:o}=Q1(),s=Z1();e=t.exports={};const r=e.re=[],a=e.safeRe=[],l=e.src=[],c=e.safeSrc=[],u=e.t={};let d=0;const p="[a-zA-Z0-9-]",f=[["\\s",1],["\\d",o],[p,i]],v=w=>{for(const[b,S]of f)w=w.split(`${b}*`).join(`${b}{0,${S}}`).split(`${b}+`).join(`${b}{1,${S}}`);return w},g=(w,b,S)=>{const D=v(b),k=d++;s(w,k,b),u[w]=k,l[k]=b,c[k]=D,r[k]=new RegExp(b,S?"g":void 0),a[k]=new RegExp(D,S?"g":void 0)};g("NUMERICIDENTIFIER","0|[1-9]\\d*"),g("NUMERICIDENTIFIERLOOSE","\\d+"),g("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${p}*`),g("MAINVERSION",`(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})`),g("MAINVERSIONLOOSE",`(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})`),g("PRERELEASEIDENTIFIER",`(?:${l[u.NONNUMERICIDENTIFIER]}|${l[u.NUMERICIDENTIFIER]})`),g("PRERELEASEIDENTIFIERLOOSE",`(?:${l[u.NONNUMERICIDENTIFIER]}|${l[u.NUMERICIDENTIFIERLOOSE]})`),g("PRERELEASE",`(?:-(${l[u.PRERELEASEIDENTIFIER]}(?:\\.${l[u.PRERELEASEIDENTIFIER]})*))`),g("PRERELEASELOOSE",`(?:-?(${l[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[u.PRERELEASEIDENTIFIERLOOSE]})*))`),g("BUILDIDENTIFIER",`${p}+`),g("BUILD",`(?:\\+(${l[u.BUILDIDENTIFIER]}(?:\\.${l[u.BUILDIDENTIFIER]})*))`),g("FULLPLAIN",`v?${l[u.MAINVERSION]}${l[u.PRERELEASE]}?${l[u.BUILD]}?`),g("FULL",`^${l[u.FULLPLAIN]}$`),g("LOOSEPLAIN",`[v=\\s]*${l[u.MAINVERSIONLOOSE]}${l[u.PRERELEASELOOSE]}?${l[u.BUILD]}?`),g("LOOSE",`^${l[u.LOOSEPLAIN]}$`),g("GTLT","((?:<|>)?=?)"),g("XRANGEIDENTIFIERLOOSE",`${l[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),g("XRANGEIDENTIFIER",`${l[u.NUMERICIDENTIFIER]}|x|X|\\*`),g("XRANGEPLAIN",`[v=\\s]*(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:${l[u.PRERELEASE]})?${l[u.BUILD]}?)?)?`),g("XRANGEPLAINLOOSE",`[v=\\s]*(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:${l[u.PRERELEASELOOSE]})?${l[u.BUILD]}?)?)?`),g("XRANGE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAIN]}$`),g("XRANGELOOSE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAINLOOSE]}$`),g("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),g("COERCE",`${l[u.COERCEPLAIN]}(?:$|[^\\d])`),g("COERCEFULL",l[u.COERCEPLAIN]+`(?:${l[u.PRERELEASE]})?(?:${l[u.BUILD]})?(?:$|[^\\d])`),g("COERCERTL",l[u.COERCE],!0),g("COERCERTLFULL",l[u.COERCEFULL],!0),g("LONETILDE","(?:~>?)"),g("TILDETRIM",`(\\s*)${l[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",g("TILDE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAIN]}$`),g("TILDELOOSE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAINLOOSE]}$`),g("LONECARET","(?:\\^)"),g("CARETTRIM",`(\\s*)${l[u.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",g("CARET",`^${l[u.LONECARET]}${l[u.XRANGEPLAIN]}$`),g("CARETLOOSE",`^${l[u.LONECARET]}${l[u.XRANGEPLAINLOOSE]}$`),g("COMPARATORLOOSE",`^${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]})$|^$`),g("COMPARATOR",`^${l[u.GTLT]}\\s*(${l[u.FULLPLAIN]})$|^$`),g("COMPARATORTRIM",`(\\s*)${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]}|${l[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",g("HYPHENRANGE",`^\\s*(${l[u.XRANGEPLAIN]})\\s+-\\s+(${l[u.XRANGEPLAIN]})\\s*$`),g("HYPHENRANGELOOSE",`^\\s*(${l[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[u.XRANGEPLAINLOOSE]})\\s*$`),g("STAR","(<|>)?=?\\s*\\*"),g("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),g("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(ac,ac.exports)),ac.exports}var lc,kf;function cC(){if(kf)return lc;kf=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return lc=n=>n?typeof n!="object"?t:n:e,lc}var uc,Tf;function dC(){if(Tf)return uc;Tf=1;const t=/^[0-9]+$/,e=(n,i)=>{if(typeof n=="number"&&typeof i=="number")return n===i?0:ne(i,n)},uc}var cc,Df;function M1(){if(Df)return cc;Df=1;const t=Z1(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:n}=Q1(),{safeRe:i,t:o}=uC(),s=cC(),{compareIdentifiers:r}=dC(),a=(c,u)=>{const d=u.split(".");if(d.length>c.length)return!1;for(let p=0;pe)throw new TypeError(`version is longer than ${e} characters`);t("SemVer",u,d),this.options=d,this.loose=!!d.loose,this.includePrerelease=!!d.includePrerelease;const p=u.trim().match(d.loose?i[o.LOOSE]:i[o.FULL]);if(!p)throw new TypeError(`Invalid Version: ${u}`);if(this.raw=u,this.major=+p[1],this.minor=+p[2],this.patch=+p[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");p[4]?this.prerelease=p[4].split(".").map(f=>{if(/^[0-9]+$/.test(f)){const v=+f;if(v>=0&&vu.major?1:this.minoru.minor?1:this.patchu.patch?1:0}comparePre(u){if(u instanceof l||(u=new l(u,this.options)),this.prerelease.length&&!u.prerelease.length)return-1;if(!this.prerelease.length&&u.prerelease.length)return 1;if(!this.prerelease.length&&!u.prerelease.length)return 0;let d=0;do{const p=this.prerelease[d],f=u.prerelease[d];if(t("prerelease compare",d,p,f),p===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(p===void 0)return-1;if(p!==f)return r(p,f)}while(++d)}compareBuild(u){u instanceof l||(u=new l(u,this.options));let d=0;do{const p=this.build[d],f=u.build[d];if(t("build compare",d,p,f),p===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(p===void 0)return-1;if(p!==f)return r(p,f)}while(++d)}inc(u,d,p){if(u.startsWith("pre")){if(!d&&p===!1)throw new Error("invalid increment argument: identifier is empty");if(d){const f=`-${d}`.match(this.options.loose?i[o.PRERELEASELOOSE]:i[o.PRERELEASE]);if(!f||f[1]!==d)throw new Error(`invalid identifier: ${d}`)}}switch(u){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",d,p);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",d,p);break;case"prepatch":this.prerelease.length=0,this.inc("patch",d,p),this.inc("pre",d,p);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",d,p),this.inc("pre",d,p);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const f=Number(p)?1:0;if(this.prerelease.length===0)this.prerelease=[f];else{let v=this.prerelease.length;for(;--v>=0;)typeof this.prerelease[v]=="number"&&(this.prerelease[v]++,v=-2);if(v===-1){if(d===this.prerelease.join(".")&&p===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(f)}}if(d){let v=[d,f];if(p===!1&&(v=[d]),a(this.prerelease,d)){const g=this.prerelease[d.split(".").length];isNaN(g)&&(this.prerelease=v)}else this.prerelease=v}break}default:throw new Error(`invalid increment argument: ${u}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return cc=l,cc}var dc,Of;function hC(){if(Of)return dc;Of=1;const t=M1();return dc=(e,n)=>new t(e,n).major,dc}var pC=hC();const $f=Vd(pC);var hc,Rf;function fC(){if(Rf)return hc;Rf=1;const t=M1();return hc=(e,n,i=!1)=>{if(e instanceof t)return e;try{return new t(e,n)}catch(o){if(!i)return null;throw o}},hc}var pc,Bf;function gC(){if(Bf)return pc;Bf=1;const t=fC();return pc=(e,n)=>{const i=t(e,n);return i?i.version:null},pc}var mC=gC();const vC=Vd(mC);class yC{bus;constructor(e){typeof e.getVersion!="function"||!vC(e.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):$f(e.getVersion())!==$f(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()),this.bus=e}getVersion(){return"3.3.3"}subscribe(e,n){this.bus.subscribe(e,n)}unsubscribe(e,n){this.bus.unsubscribe(e,n)}emit(e,...n){this.bus.emit(e,...n)}}class bC{handlers=new Map;getVersion(){return"3.3.3"}subscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).concat(n))}unsubscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).filter(i=>i!==n))}emit(e,...n){(this.handlers.get(e)||[]).forEach(i=>{try{i(n[0])}catch(o){console.error("could not invoke event listener",o)}})}}let Gs=null;function Gd(){return Gs!==null?Gs:typeof window>"u"?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&typeof window._nc_event_bus>"u"&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),typeof window?._nc_event_bus<"u"?Gs=new yC(window._nc_event_bus):Gs=window._nc_event_bus=new bC,Gs)}function tv(t,e){Gd().subscribe(t,e)}function _C(t,e){Gd().unsubscribe(t,e)}function wC(t,...e){Gd().emit(t,...e)}class Al{static GLOBAL_SCOPE_VOLATILE="nextcloud_vol";static GLOBAL_SCOPE_PERSISTENT="nextcloud_per";scope;wrapped;constructor(e,n,i){this.scope=`${i?Al.GLOBAL_SCOPE_PERSISTENT:Al.GLOBAL_SCOPE_VOLATILE}_${btoa(e)}_`,this.wrapped=n}scopeKey(e){return`${this.scope}${e}`}setItem(e,n){this.wrapped.setItem(this.scopeKey(e),n)}getItem(e){return this.wrapped.getItem(this.scopeKey(e))}removeItem(e){this.wrapped.removeItem(this.scopeKey(e))}clear(){Object.keys(this.wrapped).filter(e=>e.startsWith(this.scope)).map(this.wrapped.removeItem.bind(this.wrapped))}}class xC{appId;persisted=!1;clearedOnLogout=!1;constructor(e){this.appId=e}persist(e=!0){return this.persisted=e,this}clearOnLogout(e=!0){return this.clearedOnLogout=e,this}build(){return new Al(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}function EC(t){return new xC(t)}kC();function CC(){return globalThis._nc_auth_requestToken?globalThis._nc_auth_requestToken:globalThis.document?document.head.dataset.requesttoken??null:null}function ev(t){if(!t||typeof t!="string")throw new Error("Invalid CSRF token given",{cause:{token:t}});globalThis._nc_auth_requestToken!==t&&(globalThis._nc_auth_requestToken=t,globalThis.document&&(document.head.dataset.requesttoken=t),wC("csrf-token-update",{token:t,_internal:!0}))}async function SC(){const t=Qi("/csrftoken"),e=await fetch(t);if(!e.ok)throw new Error("Could not fetch CSRF token from API",{cause:e});try{const{token:n}=await e.json();return ev(n),n}catch(n){throw new Error("Could not parse CSRF token from API response",{cause:n})}}function AC(t){const e=async({token:n})=>{try{t(n)}catch(i){console.error("Error updating CSRF token observer",i)}};return tv("csrf-token-update",e),()=>_C("csrf-token-update",e)}function kC(){tv("csrf-token-update",({token:t,_internal:e})=>{e||ev(t)})}EC("public").persist().build();let is;function Pf(t,e){return t?t.getAttribute(e):null}function TC(){if(is!==void 0)return is;const t=document?.getElementsByTagName("head")[0];if(!t)return null;const e=Pf(t,"data-user");return e===null?(is=null,is):(is={uid:e,displayName:Pf(t,"data-user-displayname"),isAdmin:!!window._oc_isadmin},is)}var ye=(t=>(t[t.Debug=0]="Debug",t[t.Info=1]="Info",t[t.Warn=2]="Warn",t[t.Error=3]="Error",t[t.Fatal=4]="Fatal",t))(ye||{});class DC{context;constructor(e){this.context=e||{}}formatMessage(e,n,i){let o="["+ye[n].toUpperCase()+"] ";return i&&i.app&&(o+=i.app+": "),typeof e=="string"?o+e:(o+=`Unexpected ${e.name}`,e.message&&(o+=` "${e.message}"`),n===ye.Debug&&e.stack&&(o+=` Stack trace: -${e.stack}`),o)}log(e,n,i){if(!(typeof this.context?.level=="number"&&e{document.readyState==="complete"||document.readyState==="interactive"?(e.context.level=window._oc_config?.loglevel??ye.Warn,window._oc_debug&&(e.context.level=ye.Debug),document.removeEventListener("readystatechange",n)):document.addEventListener("readystatechange",n)};return n(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function $C(){return new OC(DC)}const RC=$C().detectUser().setApp("@nextcloud/vue").build(),kl=mx(),BC=Et({name:"NcPopoverTriggerProvider",provide(){return{"NcPopover:trigger:shown":()=>this.shown,"NcPopover:trigger:attrs":()=>this.triggerAttrs}},props:{shown:{type:Boolean,required:!0},popupRole:{type:String,default:void 0}},computed:{triggerAttrs(){return{"aria-haspopup":this.popupRole,"aria-expanded":this.shown.toString()}}},render(){return this.$slots.default?.({attrs:this.triggerAttrs})}}),PC="_ncPopover_oX-YA",NC={"material-design-icon":"_material-design-icon_CtXvA",ncPopover:PC},nv="nc-popover-9";Ef.themes[nv]=structuredClone(Ef.themes.dropdown);const LC={name:"NcPopover",components:{Dropdown:iC,NcPopoverTriggerProvider:BC},props:{boundary:{type:[String,Object],default:""},closeOnClickOutside:{type:Boolean,default:!0},noCloseOnClickOutside:{type:Boolean,default:!1},container:{type:[Boolean,String],default:"body"},delay:{type:[Number,Object],default:0},noFocusTrap:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},popoverBaseClass:{type:String,default:""},popoverTriggers:{type:[Array,Object],default:null},popupRole:{type:String,default:void 0,validator:t=>["menu","listbox","tree","grid","dialog","true"].includes(t)},setReturnFocus:{default:void 0,type:[Boolean,HTMLElement,SVGElement,String,Function]},shown:{type:Boolean,default:!1},triggers:{type:[Array,Object],default:()=>["click"]}},emits:["afterShow","afterHide","update:shown"],setup(){return{theme:nv}},data(){return{internalShown:this.shown}},computed:{popperTriggers(){if(this.popoverTriggers&&Array.isArray(this.popoverTriggers))return this.popoverTriggers},popperHideTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.hide},popperShowTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.show},internalTriggers(){if(this.triggers&&Array.isArray(this.triggers))return this.triggers},hideTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.hide},showTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.show},internalPlacement(){return this.placement==="start"?kl?"right":"left":this.placement==="end"?kl?"left":"right":this.placement}},watch:{shown(t){this.internalShown=t},internalShown(t){this.$emit("update:shown",t)}},mounted(){this.checkTriggerA11y()},beforeUnmount(){this.clearFocusTrap(),this.clearEscapeStopPropagation()},methods:{checkTriggerA11y(){window.OC?.debug&&this.getPopoverTriggerContainerElement().querySelector("[aria-expanded]")},removeFloatingVueAriaDescribedBy(){const t=this.getPopoverTriggerContainerElement().querySelectorAll("[data-popper-shown]");for(const e of t)e.removeAttribute("aria-describedby")},getPopoverContentElement(){return this.$refs.popover?.$refs.popperContent?.$el},getPopoverTriggerContainerElement(){return this.$refs.popover?.$refs.popper?.$refs.reference},async useFocusTrap(){if(await this.$nextTick(),this.noFocusTrap)return;const t=this.getPopoverContentElement();t.tabIndex=-1,t&&(this.$focusTrap=k1(t,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus,trapStack:Rr(),fallBackFocus:t}),this.$focusTrap.activate())},clearFocusTrap(t={}){try{this.$focusTrap?.deactivate(t),this.$focusTrap=null}catch(e){RC.warn("[NcPopover] Failed to clear focus trap",{error:e})}},addEscapeStopPropagation(){this.getPopoverContentElement()?.addEventListener("keydown",this.stopKeydownEscapeHandler)},clearEscapeStopPropagation(){this.getPopoverContentElement()?.removeEventListener("keydown",this.stopKeydownEscapeHandler)},stopKeydownEscapeHandler(t){t.type==="keydown"&&t.key==="Escape"&&t.stopPropagation()},async afterShow(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("afterShow")},{once:!0,passive:!0}),this.removeFloatingVueAriaDescribedBy(),await this.$nextTick(),await this.useFocusTrap(),this.addEscapeStopPropagation()},afterHide(){this.getPopoverContentElement()?.addEventListener("transitionend",()=>{this.$emit("afterHide")},{once:!0,passive:!0}),this.clearFocusTrap(),this.clearEscapeStopPropagation()}}};function FC(t,e,n,i,o,s){const r=xn("NcPopoverTriggerProvider"),a=xn("Dropdown");return C(),ct(a,{ref:"popover",shown:o.internalShown,"onUpdate:shown":[e[0]||(e[0]=l=>o.internalShown=l),e[1]||(e[1]=l=>o.internalShown=l)],autoHide:!n.noCloseOnClickOutside&&n.closeOnClickOutside,boundary:n.boundary||void 0,container:n.container,delay:n.delay,distance:4,handleResize:"",noAutoFocus:!0,placement:s.internalPlacement,popperClass:[t.$style.ncPopover,n.popoverBaseClass],popperTriggers:s.popperTriggers,popperHideTriggers:s.popperHideTriggers,popperShowTriggers:s.popperShowTriggers,theme:i.theme,triggers:s.internalTriggers,hideTriggers:s.hideTriggers,showTriggers:s.showTriggers,onApplyShow:s.afterShow,onApplyHide:s.afterHide},{popper:dt(l=>[kt(t.$slots,"default",Ie($e(l)))]),default:dt(()=>[q(r,{shown:o.internalShown,popupRole:n.popupRole},{default:dt(l=>[kt(t.$slots,"trigger",Ie($e(l)))]),_:3},8,["shown","popupRole"])]),_:3},8,["shown","autoHide","boundary","container","delay","placement","popperClass","popperTriggers","popperHideTriggers","popperShowTriggers","theme","triggers","hideTriggers","showTriggers","onApplyShow","onApplyHide"])}const VC={$style:NC},Nf=pe(LC,[["render",FC],["__cssModules",VC]]),jC=Symbol.for("NcActions:isSemanticMenu"),UC=Symbol.for("NcActions:closeMenu"),IC={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},zC=["aria-hidden","aria-label"],HC=["fill","width","height"],WC={d:"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"},JC={key:0};function GC(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon dots-horizontal-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",WC,[n.title?(C(),R("title",JC,A(n.title),1)):st("",!0)])],8,HC))],16,zC)}const KC=pe(IC,[["render",GC]]);Go(o2);function iv(t){return Array.isArray(t)&&t.some(e=>{if(e===null)return!1;if(typeof e=="object"){const n=e;if(n.type===Be||n.type===yt&&!iv(n.children)||n.type===Yr&&!n.children.trim())return!1}return!0})}const qC=".focusable",XC={name:"NcActions",components:{NcButton:Se,NcPopover:Nf},provide(){return{[jC]:rt(()=>this.actionsMenuSemanticType==="menu"),[UC]:this.closeMenu}},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},primary:{type:Boolean,default:!1},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:de("Actions")},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.getElementById("content-vue")??document.querySelector("body")},container:{type:[Boolean,String,Object,Element],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0},variant:{type:String,validator(t){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(t)},default:null},wide:{type:Boolean,default:!1},size:{type:String,default:"normal",validator(t){return["small","normal","large"].includes(t)}}},emits:["click","blur","focus","close","closed","open","opened","update:open"],setup(){return{randomId:oi()}},data(){return{opened:this.open,focusIndex:0,actionsMenuSemanticType:"unknown"}},computed:{triggerButtonVariant(){return this.variant||(this.primary?"primary":this.menuName?"secondary":"tertiary")},config(){return{menu:{popupRole:"menu",withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!1},navigation:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!1},dialog:{popupRole:"dialog",withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!0},tooltip:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!1,withFocusTrap:!1},unknown:{popupRole:void 0,role:void 0,withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!0}}[this.actionsMenuSemanticType]},withFocusTrap(){return this.config.withFocusTrap}},watch:{open(t){t!==this.opened&&(this.opened=t)},opened(){this.opened?document.body.addEventListener("keydown",this.handleEscapePressed):document.body.removeEventListener("keydown",this.handleEscapePressed)}},created(){dE(()=>this.opened,{disabled:()=>this.config.withFocusTrap}),"ariaHidden"in this.$attrs},methods:{getActionName(t){return t?.type?.name},isValidSingleAction(t){return["NcActionButton","NcActionLink","NcActionRouter"].includes(this.getActionName(t))},isAction(t){return this.getActionName(t)?.startsWith?.("NcAction")},isIconUrl(t){try{return!!new URL(t,t.startsWith("/")?window.location.origin:void 0)}catch{return!1}},toggleMenu(t){t?this.openMenu():this.closeMenu()},openMenu(){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},async closeMenu(t=!0){this.opened&&(await this.$nextTick(),this.opened=!1,this.$refs.popover?.clearFocusTrap({returnFocus:t}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,t&&this.$refs.triggerButton?.$el.focus())},onOpened(){this.$nextTick(()=>{this.focusFirstAction(null),this.$emit("opened")})},onClosed(){this.$emit("closed")},getCurrentActiveMenuItemElement(){return this.$refs.menu.querySelector("li.active")},getFocusableMenuItemElements(){return this.$refs.menu.querySelectorAll(qC)},onKeydown(t){if(t.key==="Tab"){if(this.config.withFocusTrap)return;if(!this.config.withTabNavigation){this.closeMenu(!0);return}t.preventDefault();const e=this.getFocusableMenuItemElements(),n=[...e].indexOf(document.activeElement);if(n===-1)return;const i=t.shiftKey?n-1:n+1;(i<0||i===e.length)&&this.closeMenu(!0),this.focusIndex=i,this.focusAction();return}this.config.withArrowNavigation&&(t.key==="ArrowUp"&&this.focusPreviousAction(t),t.key==="ArrowDown"&&this.focusNextAction(t),t.key==="PageUp"&&this.focusFirstAction(t),t.key==="PageDown"&&this.focusLastAction(t)),this.handleEscapePressed(t)},onTriggerKeydown(t){t.key==="Escape"&&this.actionsMenuSemanticType==="tooltip"&&this.closeMenu()},handleEscapePressed(t){t.key==="Escape"&&(this.closeMenu(),t.preventDefault())},removeCurrentActive(){const t=this.$refs.menu.querySelector("li.active");t&&t.classList.remove("active")},focusAction(){const t=this.getFocusableMenuItemElements()[this.focusIndex];if(t){this.removeCurrentActive();const e=t.closest("li.action");t.focus(),e&&e.classList.add("active")}},focusPreviousAction(t){this.opened&&(this.focusIndex===0?this.focusLastAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(t){if(this.opened){const e=this.getFocusableMenuItemElements().length-1;this.focusIndex===e?this.focusFirstAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(t){if(this.opened){this.preventIfEvent(t);const e=[...this.getFocusableMenuItemElements()].findIndex(n=>n.getAttribute("aria-checked")==="true"&&n.getAttribute("role")==="menuitemradio");this.focusIndex=e>-1?e:0,this.focusAction()}},focusLastAction(t){this.opened&&(this.preventIfEvent(t),this.focusIndex=this.getFocusableMenuItemElements().length-1,this.focusAction())},preventIfEvent(t){t&&(t.preventDefault(),t.stopPropagation())},onFocus(t){this.$emit("focus",t)},onBlur(t){this.$emit("blur",t),this.actionsMenuSemanticType==="tooltip"&&this.$refs.menu&&this.getFocusableMenuItemElements().length===0&&this.closeMenu(!1)},onClick(t){this.$emit("click",t)}},render(){const t=[],e=(f,v)=>{f.forEach(g=>{if(this.isAction(g)){v.push(g);return}g.type===yt&&e(g.children,v)})};if(e(this.$slots.default?.(),t),t.length===0)return;let n=t.filter(this.isValidSingleAction);this.forceMenu&&n.length>0&&this.inline>0&&(n=[]);const i=n.slice(0,this.inline),o=t.filter(f=>!i.includes(f)),s=["NcActionButton","NcActionButtonGroup","NcActionCheckbox","NcActionRadio"],r=["NcActionInput","NcActionTextEditable"],a=["NcActionLink","NcActionRouter"],l=o.some(f=>r.includes(this.getActionName(f))),c=o.some(f=>s.includes(this.getActionName(f))),u=o.some(f=>a.includes(this.getActionName(f)));l?this.actionsMenuSemanticType="dialog":c?this.actionsMenuSemanticType="menu":u?this.actionsMenuSemanticType="navigation":t.filter(f=>this.getActionName(f).startsWith("NcAction")).length===t.length?this.actionsMenuSemanticType="tooltip":this.actionsMenuSemanticType="unknown";const d=f=>{const v=f?.props?.icon,g=f?.children?.icon?.()?.[0]??(this.isIconUrl(v)?be("img",{class:"action-item__menutoggle__icon",src:v,alt:""}):be("span",{class:["icon",v]})),w=f?.children?.default?.()?.[0]?.children?.trim(),b=this.forceName?w:"";let S=f?.props?.title;this.forceName||S||(S=w);const D={...f?.props??{}},k=["submit","reset"].includes(D.type)?D.modelValue:"button";return delete D.modelValue,delete D.type,be(Se,Lt(D,{class:["action-item action-item--single",{"action-item--wide":this.wide}],"aria-label":f?.props?.["aria-label"]||w,title:S,disabled:this.disabled||f?.props?.disabled,pressed:f?.props?.modelValue,size:this.size,type:k,wide:this.wide,variant:this.variant||(b?"secondary":"tertiary"),onFocus:this.onFocus,onBlur:this.onBlur,"onUpdate:pressed":f?.props?.["onUpdate:modelValue"]??(()=>{})}),{default:()=>b,icon:()=>g})},p=f=>{const v=iv(this.$slots.icon?.())?this.$slots.icon?.():this.defaultIcon?be("span",{class:["icon",this.defaultIcon]}):be(KC,{size:20}),g=`${this.randomId}-trigger`;return be(Nf,{ref:"popover",delay:0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,autoBoundaryMaxSize:!0,container:this.container,...this.manualOpen&&{triggers:[]},noCloseOnClickOutside:this.manualOpen,popoverBaseClass:"action-item__popper",popupRole:this.config.popupRole,setReturnFocus:this.config.withFocusTrap?this.$refs.triggerButton?.$el:void 0,noFocusTrap:!this.config.withFocusTrap,"onUpdate:shown":this.toggleMenu,onAfterShow:this.onOpened,onAfterHide:this.onClosed},{trigger:()=>be(Se,{id:g,class:"action-item__menutoggle",disabled:this.disabled,size:this.size,variant:this.triggerButtonVariant,wide:this.wide,ref:"triggerButton","aria-label":this.menuName?null:this.ariaLabel,"aria-controls":this.opened&&this.config.popupRole?this.randomId:null,onFocus:this.onFocus,onBlur:this.onBlur,onClick:this.onClick,onKeydown:this.onTriggerKeydown},{icon:()=>v,default:()=>this.menuName}),default:()=>be("div",{class:{open:this.opened},tabindex:"-1",onKeydown:this.onKeydown,ref:"menu"},[be("ul",{id:this.randomId,tabindex:"-1",ref:"menuList",role:this.config.popupRole,"aria-labelledby":g,"aria-modal":this.actionsMenuSemanticType==="dialog"?"true":void 0},[f])])})};return t.length===1&&n.length===1&&!this.forceMenu?d(t[0]):(this.$nextTick(()=>{this.opened&&this.$refs.menu&&(this.$refs.menu.querySelector("li.active")||[]).length===0&&this.focusFirstAction()}),i.length>0&&this.inline>0?be("div",{class:["action-items",`action-item--${this.triggerButtonVariant}`]},[...i.map(d),o.length>0?be("div",{class:["action-item",{"action-item--open":this.opened}]},[p(o)]):null]):be("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerButtonVariant}`,{"action-item--open":this.opened,"action-item--wide":this.wide}]},[p(t)]))}},YC=pe(XC,[["__scopeId","data-v-7206c1f1"]]),ZC=/mac|ipad|iphone|darwin/i.test(navigator.userAgent),QC=window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),MC=/^[a-zA-Z0-9]$/,t3=/^[^\x20-\x7F]$/;function e3(t,e){return!(t.target instanceof HTMLElement)||t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement||t.target instanceof HTMLSelectElement||t.target.isContentEditable?!0:e.allowInModal?!1:Array.from(document.getElementsByClassName("modal-mask")).filter(n=>n.checkVisibility()).length>0}function Lf(t,e){return n=>{if((ZC?n.metaKey:n.ctrlKey)===!!e.ctrl){if(n.altKey!==!!e.alt||e.shift!==void 0&&n.shiftKey!==!!e.shift||e3(n,e))return;e.prevent&&n.preventDefault(),e.stop&&n.stopPropagation(),t(n)}}}function Ff(t,e=()=>{},n={}){if(QC)return()=>{};const i=(a,l)=>{if(a.key===l)return!0;if(n.caseSensitive){const c=l===l.toLowerCase(),u=a.key===a.key.toLowerCase();if(c!==u)return!1}return MC.test(l)&&t3.test(a.key)?a.code.replace(/^(?:Key|Digit|Numpad)/,"")===l.toUpperCase():a.key.toLowerCase()===l.toLowerCase()},o=a=>typeof t=="function"?t(a):typeof t=="string"?i(a,t):Array.isArray(t)?t.some(l=>i(a,l)):!0,s=Zp(o,Lf(e,n),{eventName:"keydown",dedupe:!0,passive:!n.prevent}),r=n.push?Zp(o,Lf(e,n),{eventName:"keyup",passive:!n.prevent}):()=>{};return()=>{s(),r()}}function n3(t=document.body){const e=window.getComputedStyle(t).getPropertyValue("--background-invert-if-dark");return e!==void 0?e==="invert(100%)":!1}n3();const i3=Rt(ov());window.addEventListener("resize",()=>{i3.value=ov()});function ov(){return window.outerHeight===window.screen.height}const Kd=1024,sv=Kd/2,Tl=t=>document.documentElement.clientWidth{o3.value=Tl(Kd),s3.value=Tl(sv)},{passive:!0});function Vf(t){return!t.parent||"vapor"in t||"vapor"in t.parent||t.parent.subTree!==t.vnode?null:t.parent}function r3(t){const e=[t];let n=Vf(t);for(;n;)e.push(n),n=Vf(n);return e}function a3(){const t=li();if(!t)throw new Error("useScopeId must be called within a setup context");const e=r3(t).map(n=>n.vnode.scopeId).filter(Boolean);return Object.fromEntries(e.map(n=>[n,""]))}Go(a2,c2);const l3=["aria-labelledby","aria-describedby"],u3=["data-theme-light","data-theme-dark"],c3=["id"],d3={class:"icons-menu"},h3=["title"],p3=["id"],f3={class:"modal-container__content"},g3=Et({inheritAttrs:!1,__name:"NcModal",props:ii({name:{default:""},hasPrevious:{type:Boolean},hasNext:{type:Boolean},outTransition:{type:Boolean},enableSlideshow:{type:Boolean},slideshowDelay:{default:5e3},slideshowPaused:{type:Boolean},disableSwipe:{type:Boolean},spreadNavigation:{type:Boolean},size:{default:"normal"},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},dark:{type:Boolean},lightBackdrop:{type:Boolean},container:{default:"body"},closeButtonOutside:{type:Boolean},additionalTrapElements:{default:()=>[]},inlineActions:{default:0},labelId:{default:""},setReturnFocus:{default:void 0}},{show:{type:Boolean,default:!0},showModifiers:{}}),emits:ii(["next","previous","close","update:show"],["update:show"]),setup(t,{emit:e}){au(Y=>({v56ab185f:b.value,v86f86e3a:v.value}));const n=Jo(t,"show"),i=t,o=e,s=a3(),r=oi(),a=Ar("mask");let l;Dn(()=>W()),ke(()=>i.additionalTrapElements,Y=>{l&&l.updateContainerElements([a.value,...Y])});const{isActive:c,pause:u,resume:d}=_2(D,So(()=>i.slideshowDelay),{immediate:!1}),p=Rt(0),f=Rt(!1);dm(()=>{f.value&&!i.slideshowPaused?d():c.value&&u()});const v=rt(()=>`${i.slideshowDelay}ms`),{stop:g}=T2(a,{onSwipeEnd:N});Dn(g),Ff("Escape",()=>{Rr().at(-1)===l&&j()},{allowInModal:!0}),Ff(["ArrowLeft","ArrowRight"],Y=>{document.activeElement&&!a.value.contains(document.activeElement)||(Y.key==="ArrowLeft"!==kl?k():D())},{allowInModal:!0});const w=ou(),b=rt(()=>{let Y=0;return i.hasNext&&i.enableSlideshow&&Y++,!i.noClose&&i.closeButtonOutside&&Y++,w.actions&&Y++,Y}),S=rt(()=>i.name.trim()!==""||b.value>0);Pi(()=>{!i.name&&i.labelId});function D(Y){if(!i.hasNext){f.value=!1;return}Y&&c.value&&F(),o("next",Y)}function k(Y){i.hasPrevious&&(Y&&c.value&&F(),o("previous",Y))}function N(Y,$){if(!i.disableSwipe){if($!=="left"&&$!=="right")return;$==="left"!==kl?D(Y):k(Y)}}function F(){u(),d(),p.value++}function j(Y){i.noClose||(n.value=!1,setTimeout(()=>{o("close",Y)},300))}function I(Y){i.closeOnClickOutside&&j(Y)}async function X(){if(l)return;await qr();const Y={allowOutsideClick:!0,fallbackFocus:a.value,trapStack:Rr(),escapeDeactivates:!1,setReturnFocus:i.setReturnFocus};l=k1([a.value,...i.additionalTrapElements],Y),l.activate()}function W(){l&&(l?.deactivate(),l=void 0)}return(Y,$)=>(C(),ct(t_,{disabled:t.container===null,to:t.container},[q(us,{name:"fade",appear:"",onAfterEnter:X,onBeforeLeave:W},{default:dt(()=>[Sn(y("div",Lt({...Y.$attrs,...E(s)},{ref:"mask",class:["modal-mask",{"modal-mask--opaque":t.dark||t.closeButtonOutside||t.hasPrevious||t.hasNext,"modal-mask--light":t.lightBackdrop}],role:"dialog","aria-modal":"true","aria-labelledby":t.labelId||`modal-name-${E(r)}`,"aria-describedby":"modal-description-"+E(r),tabindex:"-1"}),[q(us,{name:"fade-visibility",appear:""},{default:dt(()=>[S.value?(C(),R("div",{key:0,class:"modal-header","data-theme-light":t.lightBackdrop,"data-theme-dark":!t.lightBackdrop},[t.name.trim()!==""?(C(),R("h2",{key:0,id:"modal-name-"+E(r),class:"modal-header__name"},A(t.name),9,c3)):st("",!0),y("div",d3,[t.hasNext&&t.enableSlideshow?(C(),R("button",{key:0,class:Bt(["play-pause-icons",{"play-pause-icons--paused":t.slideshowPaused}]),title:E(c)?E(de)("Pause slideshow"):E(de)("Start slideshow"),type:"button",onClick:$[0]||($[0]=U=>f.value=!f.value)},[q(Pe,{class:"play-pause-icons__icon",inline:"",name:E(c)?E(de)("Pause slideshow"):E(de)("Start slideshow"),path:E(c)?E(Hx):E(Wx)},null,8,["name","path"]),E(c)?(C(),R("svg",{key:`${E(r)}-animation-${p.value}`,class:"progress-ring",height:"50",width:"50"},[...$[1]||($[1]=[y("circle",{class:"progress-ring__circle",stroke:"white","stroke-width":"2",fill:"transparent",r:"15",cx:"25",cy:"25"},null,-1)])])):st("",!0)],10,h3)):st("",!0),q(YC,{class:"header-actions",inline:t.inlineActions},{default:dt(()=>[kt(Y.$slots,"actions",{},void 0,!0)]),_:3},8,["inline"]),!t.noClose&&t.closeButtonOutside?(C(),ct(Se,{key:1,"aria-label":E(de)("Close"),class:"header-close",variant:"tertiary",onClick:j},{icon:dt(()=>[q(Pe,{path:E(Yc)},null,8,["path"])]),_:1},8,["aria-label"])):st("",!0)])],8,u3)):st("",!0)]),_:3}),q(us,{name:`modal-${t.outTransition?"out":"in"}`,appear:""},{default:dt(()=>[Sn(y("div",{class:Bt(["modal-wrapper",[`modal-wrapper--${t.size}`,{"modal-wrapper--spread-navigation":t.spreadNavigation,"modal-wrapper--no-header":!S.value}]]),onMousedown:Ua(I,["self"])},[q(us,{name:"fade-visibility",appear:""},{default:dt(()=>[Sn(q(Se,{"aria-label":E(de)("Previous"),class:"prev",variant:"tertiary-no-background",onClick:k},{icon:dt(()=>[q(Pe,{directional:"",path:E(Vx),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[Mn,t.hasPrevious]])]),_:1}),y("div",{id:"modal-description-"+E(r),class:"modal-container"},[y("div",f3,[kt(Y.$slots,"default",{},void 0,!0)]),!t.noClose&&!t.closeButtonOutside?(C(),ct(Se,{key:0,"aria-label":E(de)("Close"),class:"modal-container__close",variant:"tertiary",onClick:j},{icon:dt(()=>[q(Pe,{path:E(Yc)},null,8,["path"])]),_:1},8,["aria-label"])):st("",!0)],8,p3),q(us,{name:"fade-visibility",appear:""},{default:dt(()=>[Sn(q(Se,{"aria-label":E(de)("Next"),class:"next",variant:"tertiary-no-background",onClick:D},{icon:dt(()=>[q(Pe,{directional:"",path:E(jx),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[Mn,t.hasNext]])]),_:1})],34),[[Mn,n.value]])]),_:3},8,["name"])],16,l3),[[Mn,n.value]])]),_:3})],8,["disabled","to"]))}}),m3=pe(g3,[["__scopeId","data-v-3aeb69e6"]]),v3=["id","textContent"],y3=["aria-label","aria-labelledby"],b3={class:"dialog__text"},_3={class:"dialog__actions"},w3=Et({__name:"NcDialog",props:ii({name:{},message:{default:""},additionalTrapElements:{default:()=>[]},container:{default:"body"},size:{default:"small"},buttons:{default:()=>[]},isForm:{type:Boolean},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},outTransition:{type:Boolean},navigationAriaLabel:{default:""},navigationAriaLabelledby:{default:""},contentClasses:{default:""},dialogClasses:{default:""},navigationClasses:{default:""}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:ii(["closing","reset","submit"],["update:open"]),setup(t,{emit:e}){const n=Jo(t,"open"),i=t,o=e,s=ou(),r=Ar("wrapper"),{width:a}=k2(r,{width:900,height:0}),l=rt(()=>a.value<876),c=rt(()=>s?.navigation!==void 0),u=oi(),d=rt(()=>i.navigationAriaLabel||void 0),p=rt(()=>{if(!i.navigationAriaLabel)return i.navigationAriaLabelledby||u}),f=Ar("dialogElement"),v=rt(()=>i.isForm&&!c.value?"form":"div"),g=rt(()=>v.value!=="form"?{}:{submit(N){N.preventDefault(),o("submit",N)},reset(N){N.preventDefault(),o("reset",N)}}),w=Rt(!0);function b(N,F){N.type==="submit"&&v.value==="form"&&"reportValidity"in f.value&&!f.value.reportValidity()||(S(F),window.setTimeout(()=>D(),300))}function S(N){w.value=!1,o("closing",N)}function D(){w.value=!0,n.value=!1}const k=rt(()=>({noClose:i.noClose,container:i.container===void 0?"body":i.container,labelId:u,size:i.size,show:n.value&&w.value,outTransition:i.outTransition,closeOnClickOutside:i.closeOnClickOutside,additionalTrapElements:i.additionalTrapElements}));return(N,F)=>n.value?(C(),ct(E(m3),Lt({key:0,class:"dialog__modal",disableSwipe:""},k.value,{onClose:D,"onUpdate:show":F[0]||(F[0]=j=>S())}),{default:dt(()=>[y("h2",{id:E(u),class:"dialog__name",textContent:A(t.name)},null,8,v3),(C(),ct(Po(v.value),Lt({ref:"dialogElement",class:["dialog",t.dialogClasses]},Sm(g.value)),{default:dt(()=>[y("div",{ref:"wrapper",class:Bt(["dialog__wrapper",[{"dialog__wrapper--collapsed":l.value}]])},[c.value?(C(),R("nav",{key:0,class:Bt(["dialog__navigation",t.navigationClasses]),"aria-label":d.value,"aria-labelledby":p.value},[kt(N.$slots,"navigation",{isCollapsed:l.value},void 0,!0)],10,y3)):st("",!0),y("div",{class:Bt(["dialog__content",t.contentClasses])},[kt(N.$slots,"default",{},()=>[y("p",b3,A(t.message),1)],!0)],2)],2),y("div",_3,[kt(N.$slots,"actions",{},()=>[(C(!0),R(yt,null,Fe(t.buttons,(j,I)=>(C(),ct(E(N2),Lt({key:I},{ref_for:!0},j,{onClick:(X,W)=>b(j,W)}),null,16,["onClick"]))),128))],!0)])]),_:3},16,["class"]))]),_:3},16)):st("",!0)}}),hu=pe(w3,[["__scopeId","data-v-24e91b99"]]),x3=["title"],E3=Et({__name:"JobStatusIndicator",props:{status:{},dotOnly:{type:Boolean}},setup(t){const e=t,n=rt(()=>{switch(e.status){case"SUCCEEDED":return O("serverinfo","Succeeded");case"FAILED":return O("serverinfo","Failed");case"CRASHED":return O("serverinfo","Crashed");default:return O("serverinfo","Running")}});return(i,o)=>(C(),R("span",{class:Bt(["job-status",`job-status--${t.status.toLowerCase()}`]),title:t.dotOnly?n.value:void 0},[o[0]||(o[0]=y("span",{class:"job-status__dot","aria-hidden":"true"},null,-1)),y("span",{class:Bt(t.dotOnly&&"hidden-visually")},A(n.value),3)],10,x3))}}),rv=Pt(E3,[["__scopeId","data-v-0e5a1326"]]);function Rn(t){if(!Number.isFinite(t)||t<0)return O("serverinfo","Unknown");const e=["MB","GB","TB","PB","EB"];let n=t,i=0;for(;n>=1024&&i=1024&&i(C(),ct(E(hu),{name:E(Dl)(t.run.className),size:"normal",onClosing:i[0]||(i[0]=o=>n.$emit("close"))},{default:dt(()=>[y("dl",C3,[y("dt",null,A(E(O)("serverinfo","Class")),1),y("dd",S3,A(t.run.className),1),y("dt",null,A(E(O)("serverinfo","Status")),1),y("dd",null,[q(rv,{status:t.run.status},null,8,["status"])]),y("dt",null,A(E(O)("serverinfo","Started")),1),y("dd",null,[q(E(lu),{timestamp:t.run.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),y("dt",null,A(E(O)("serverinfo","Duration")),1),y("dd",null,A(E(Ol)(t.run.duration)),1),y("dt",null,A(E(O)("serverinfo","Peak memory")),1),y("dd",null,A(E(Xd)(t.run.memoryPeak)),1),y("dt",null,A(E(O)("serverinfo","Run ID")),1),y("dd",null,A(t.run.runId),1),y("dt",null,A(E(O)("serverinfo","Server ID")),1),y("dd",null,A(t.run.serverId),1),y("dt",null,A(E(O)("serverinfo","Process ID")),1),y("dd",null,A(t.run.pid),1)])]),_:1},8,["name"]))}}),k3=Pt(A3,[["__scopeId","data-v-c21cb020"]]),T3={name:"InformationOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},D3=["aria-hidden","aria-label"],O3=["fill","width","height"],$3={d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"},R3={key:0};function B3(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon information-outline-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",$3,[n.title?(C(),R("title",R3,A(n.title),1)):st("",!0)])],8,O3))],16,D3)}const P3=Pt(T3,[["render",B3]]),N3={class:"server-info-table"},L3={class:"status-cell"},F3={class:"hidden-visually"},V3={class:"when-cell"},j3={class:"duration-cell"},U3={class:"memory-cell"},I3={class:"info-cell"},z3={class:"hidden-visually"},H3={class:"status-cell"},W3=["title"],J3={class:"info-cell"},G3=Et({__name:"JobRunsTable",props:{runs:{}},emits:["select"],setup(t){const e={dateStyle:"short",timeStyle:"medium"};function n(i){return O("serverinfo","Details about {job} from {time}",{job:Dl(i.className),time:new Date(i.startedAt*1e3).toLocaleString(l1(),e)})}return(i,o)=>(C(),R("div",N3,[y("table",null,[y("thead",null,[y("tr",null,[y("th",L3,[y("span",F3,A(E(O)("serverinfo","Status")),1)]),y("th",null,A(E(O)("serverinfo","Job")),1),y("th",V3,A(E(O)("serverinfo","When")),1),y("th",j3,A(E(O)("serverinfo","Duration")),1),y("th",U3,A(E(O)("serverinfo","Peak memory")),1),y("th",I3,[y("span",z3,A(E(O)("serverinfo","Details")),1)])])]),y("tbody",null,[(C(!0),R(yt,null,Fe(t.runs,s=>(C(),R("tr",{key:s.runId},[y("td",H3,[q(rv,{status:s.status,dotOnly:""},null,8,["status"])]),y("td",{title:s.className},A(E(Dl)(s.className)),9,W3),y("td",null,[q(E(lu),{timestamp:s.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),y("td",null,A(E(Ol)(s.duration)),1),y("td",null,A(E(Xd)(s.memoryPeak)),1),y("td",J3,[q(E(Se),{variant:"tertiary",size:"small","aria-label":n(s),title:n(s),onClick:r=>i.$emit("select",s)},{icon:dt(()=>[q(P3,{size:20})]),_:1},8,["aria-label","title","onClick"])])]))),128))])])]))}}),jf=Pt(G3,[["__scopeId","data-v-10f09a63"]]),K3={class:"section-heading"},q3=Et({__name:"SectionHeading",props:{icon:{},title:{}},setup(t){return(e,n)=>(C(),R("h2",K3,[(C(),ct(Po(t.icon),{class:"icon",size:20})),bt(" "+A(t.title),1)]))}}),Ge=Pt(q3,[["__scopeId","data-v-0eb9e63c"]]),X3={class:"server-info-table"},Y3={class:"job-cell"},Z3={class:"count-cell"},Q3={class:"count-cell"},M3={class:"count-cell"},tS={class:"memory-cell"},eS=["title"],nS={class:"count-cell"},iS={class:"count-cell"},oS={class:"count-cell"},sS={class:"memory-cell"},rS=Et({__name:"SlowJobsTable",props:{jobs:{}},setup(t){return(e,n)=>(C(),R("div",X3,[y("table",null,[y("thead",null,[y("tr",null,[y("th",Y3,A(E(O)("serverinfo","Job")),1),y("th",Z3,A(E(O)("serverinfo","Runs")),1),y("th",Q3,A(E(O)("serverinfo","Average")),1),y("th",M3,A(E(O)("serverinfo","Longest")),1),y("th",tS,A(E(O)("serverinfo","Peak memory")),1)])]),y("tbody",null,[(C(!0),R(yt,null,Fe(t.jobs,i=>(C(),R("tr",{key:i.className},[y("td",{class:"job-cell",title:i.className},A(E(Dl)(i.className)),9,eS),y("td",nS,A(i.runs),1),y("td",iS,A(E(Ol)(i.avgDuration)),1),y("td",oS,A(E(Ol)(i.maxDuration)),1),y("td",sS,A(E(Xd)(i.memoryPeak)),1)]))),128))])])]))}}),aS=Pt(rS,[["__scopeId","data-v-452808c1"]]),lS={class:"stat-tile"},uS={class:"stat-tile__label"},cS={key:0,class:"hidden-visually"},dS=Et({__name:"StatTile",props:{label:{},value:{},status:{}},setup(t){const e=t,n=rt(()=>{switch(e.status){case"warning":return O("serverinfo","Warning");case"critical":return O("serverinfo","Critical");default:return""}});return(i,o)=>(C(),R("div",lS,[y("div",uS,A(t.label),1),y("div",{class:Bt(["stat-tile__value",t.status&&`stat-tile__value--${t.status}`])},[kt(i.$slots,"default",{},()=>[bt(A(t.value),1)],!0),n.value?(C(),R("span",cS,A(n.value),1)):st("",!0)],2)]))}}),De=Pt(dS,[["__scopeId","data-v-4a64fa3b"]]),hS={class:"section background-jobs"},pS={class:"row row--tiles"},fS=Et({__name:"BackgroundJobsSection",props:{cron:{},jobs:{}},setup(t){const e=t,n=Rt(null);function i(a){n.value={...a}}const o=rt(()=>e.cron.lastRun>0?Math.max(0,e.cron.now-e.cron.lastRun):-1),s=rt(()=>{const a=o.value;return a<0?"critical":e.cron.mode==="cron"?a>3600?"critical":a>900?"warning":"ok":a>7200?"critical":a>3600?"warning":"ok"}),r=rt(()=>{switch(e.cron.mode){case"cron":return O("serverinfo","System cron");case"webcron":return O("serverinfo","Webcron");default:return O("serverinfo","AJAX (not recommended)")}});return(a,l)=>(C(),R("div",hS,[q(Ge,{icon:v1,title:E(O)("serverinfo","Background jobs")},null,8,["title"]),y("div",pS,[q(De,{label:E(O)("serverinfo","Mode"),value:r.value,status:t.cron.mode==="ajax"?"warning":void 0},null,8,["label","value","status"]),q(De,{label:E(O)("serverinfo","Last run"),status:s.value},{default:dt(()=>[t.cron.lastRun>0?(C(),ct(E(lu),{key:0,timestamp:t.cron.lastRun*1e3},null,8,["timestamp"])):(C(),R(yt,{key:1},[bt(A(E(O)("serverinfo","Never")),1)],64))]),_:1},8,["label","status"])]),y("h3",null,A(E(fl)("serverinfo","Latest failures (last %n day)","Latest failures (last %n days)",t.jobs.retentionDays)),1),t.jobs.failures.length===0?(C(),ct(E(Si),{key:0,type:"success"},{default:dt(()=>[bt(A(E(fl)("serverinfo","No background job failed in the last %n day.","No background job failed in the last %n days.",t.jobs.retentionDays)),1)]),_:1})):(C(),ct(jf,{key:1,runs:t.jobs.failures,onSelect:i},null,8,["runs"])),y("h3",null,A(E(O)("serverinfo","Latest runs")),1),t.jobs.recent.length===0?(C(),ct(E(Si),{key:2,type:"info"},{default:dt(()=>[bt(A(E(O)("serverinfo","No background job has run yet.")),1)]),_:1})):(C(),ct(jf,{key:3,runs:t.jobs.recent,onSelect:i},null,8,["runs"])),y("h3",null,A(E(O)("serverinfo","Slowest jobs")),1),t.jobs.slowest.length===0?(C(),ct(E(Si),{key:4,type:"info"},{default:dt(()=>[bt(A(E(O)("serverinfo","The slow jobs statistics are not available yet. They are collected by a background job and appear after its next run.")),1)]),_:1})):(C(),ct(aS,{key:5,jobs:t.jobs.slowest},null,8,["jobs"])),n.value?(C(),ct(k3,{key:6,run:n.value,onClose:l[0]||(l[0]=c=>n.value=null)},null,8,["run"])):st("",!0)]))}}),gS=Pt(fS,[["__scopeId","data-v-612ee243"]]),mS={},vS={class:"section section-skeleton","aria-busy":"true"};function yS(t,e){return C(),R("div",vS,[...e[0]||(e[0]=[y("div",{class:"skeleton-bar skeleton-title"},null,-1),y("div",{class:"skeleton-bar skeleton-chart"},null,-1)])])}const Ye=Pt(mS,[["render",yS],["__scopeId","data-v-9a2b13f0"]]),bS={class:"background-jobs-view"},_S=Et({__name:"BackgroundJobsView",props:{periodicData:{}},setup(t){return(e,n)=>(C(),R("div",bS,[t.periodicData?(C(),ct(gS,{key:0,cron:t.periodicData.cron,jobs:t.periodicData.backgroundJobs},null,8,["cron","jobs"])):(C(),ct(Ye,{key:1}))]))}});function av(t,e){return function(){return t.apply(e,arguments)}}const{toString:wS}=Object.prototype,{getPrototypeOf:Cs}=Object,{iterator:Qr,toStringTag:lv}=Symbol,$l=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),Lr=(t,e)=>{let n=t;const i=[];for(;n!=null&&n!==Object.prototype;){if(i.indexOf(n)!==-1)return!1;if(i.push(n),$l(n,e))return!0;n=Cs(n)}return!1},xS=(t,e)=>t!=null&&Lr(t,e)?t[e]:void 0,Yd=(t=>e=>{const n=wS.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Vn=t=>(t=t.toLowerCase(),e=>Yd(e)===t),fu=t=>e=>typeof e===t,{isArray:Uo}=Array,Ss=fu("undefined");function $s(t){return t!==null&&!Ss(t)&&t.constructor!==null&&!Ss(t.constructor)&&an(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const uv=Vn("ArrayBuffer");function ES(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&uv(t.buffer),e}const CS=fu("string"),an=fu("function"),cv=fu("number"),Rs=t=>t!==null&&typeof t=="object",SS=t=>t===!0||t===!1,qa=t=>{if(!Rs(t))return!1;const e=Cs(t);return(e===null||e===Object.prototype||Cs(e)===null)&&!Lr(t,lv)&&!Lr(t,Qr)},AS=t=>{if(!Rs(t)||$s(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},kS=Vn("Date"),TS=Vn("File"),DS=t=>!!(t&&typeof t.uri<"u"),OS=t=>t&&typeof t.getParts<"u",$S=Vn("Blob"),RS=Vn("FileList"),BS=t=>Rs(t)&&an(t.pipe);function PS(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof _r<"u"?_r:{}}const Uf=PS(),If=typeof Uf.FormData<"u"?Uf.FormData:void 0,NS=t=>{if(!t)return!1;if(If&&t instanceof If)return!0;const e=Cs(t);if(!e||e===Object.prototype||!an(t.append))return!1;const n=Yd(t);return n==="formdata"||n==="object"&&an(t.toString)&&t.toString()==="[object FormData]"},LS=Vn("URLSearchParams"),[FS,VS,jS,US]=["ReadableStream","Request","Response","Headers"].map(Vn),IS=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Mr(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let i,o;if(typeof t!="object"&&(t=[t]),Uo(t))for(i=0,o=t.length;i0;)if(o=n[i],e===o.toLowerCase())return o;return null}const To=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:_r,hv=t=>!Ss(t)&&t!==To;function dd(...t){const{caseless:e,skipUndefined:n}=hv(this)&&this||{},i={},o=(s,r)=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;const a=e&&typeof r=="string"&&dv(i,r)||r,l=$l(i,a)?i[a]:void 0;qa(l)&&qa(s)?i[a]=dd(l,s):qa(s)?i[a]=dd({},s):Uo(s)?i[a]=s.slice():(!n||!Ss(s))&&(i[a]=s)};for(let s=0,r=t.length;s(Mr(e,(o,s)=>{n&&an(o)?Object.defineProperty(t,s,{__proto__:null,value:av(o,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,s,{__proto__:null,value:o,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:i}),t),HS=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),WS=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),n&&Object.assign(t.prototype,n)},JS=(t,e,n,i)=>{let o,s,r;const a={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),s=o.length;s-- >0;)r=o[s],(!i||i(r,t,e))&&!a[r]&&(e[r]=t[r],a[r]=!0);t=n!==!1&&Cs(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},GS=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const i=t.indexOf(e,n);return i!==-1&&i===n},KS=t=>{if(!t)return null;if(Uo(t))return t;let e=t.length;if(!cv(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},qS=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&Cs(Uint8Array)),XS=(t,e)=>{const n=(t&&t[Qr]).call(t);let i;for(;(i=n.next())&&!i.done;){const o=i.value;e.call(t,o[0],o[1])}},YS=(t,e)=>{let n;const i=[];for(;(n=t.exec(e))!==null;)i.push(n);return i},ZS=Vn("HTMLFormElement"),QS=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,n,i){return n.toUpperCase()+i}),{propertyIsEnumerable:MS}=Object.prototype,tA=Vn("RegExp"),pv=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),i={};Mr(n,(o,s)=>{let r;(r=e(o,s,t))!==!1&&(i[s]=r||o)}),Object.defineProperties(t,i)},eA=t=>{pv(t,(e,n)=>{if(an(t)&&["arguments","caller","callee"].includes(n))return!1;const i=t[n];if(an(i)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},nA=(t,e)=>{const n={},i=o=>{o.forEach(s=>{n[s]=!0})};return Uo(t)?i(t):i(String(t).split(e)),n},iA=()=>{},oA=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function sA(t){return!!(t&&an(t.append)&&t[lv]==="FormData"&&t[Qr])}const rA=t=>{const e=new WeakSet,n=i=>{if(Rs(i)){if(e.has(i))return;if($s(i))return i;if(!("toJSON"in i)){e.add(i);const o=Uo(i)?[]:{};return Mr(i,(s,r)=>{const a=n(s);!Ss(a)&&(o[r]=a)}),e.delete(i),o}}return i};return n(t)},aA=Vn("AsyncFunction"),lA=t=>t&&(Rs(t)||an(t))&&an(t.then)&&an(t.catch),fv=((t,e)=>t?setImmediate:e?((n,i)=>(To.addEventListener("message",({source:o,data:s})=>{o===To&&s===n&&i.length&&i.shift()()},!1),o=>{i.push(o),To.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",an(To.postMessage)),uA=typeof queueMicrotask<"u"?queueMicrotask.bind(To):typeof ud<"u"&&ud.nextTick||fv,gv=t=>t!=null&&an(t[Qr]),cA=t=>t!=null&&Lr(t,Qr)&&gv(t),L={isArray:Uo,isArrayBuffer:uv,isBuffer:$s,isFormData:NS,isArrayBufferView:ES,isString:CS,isNumber:cv,isBoolean:SS,isObject:Rs,isPlainObject:qa,isEmptyObject:AS,isReadableStream:FS,isRequest:VS,isResponse:jS,isHeaders:US,isUndefined:Ss,isDate:kS,isFile:TS,isReactNativeBlob:DS,isReactNative:OS,isBlob:$S,isRegExp:tA,isFunction:an,isStream:BS,isURLSearchParams:LS,isTypedArray:qS,isFileList:RS,forEach:Mr,merge:dd,extend:zS,trim:IS,stripBOM:HS,inherits:WS,toFlatObject:JS,kindOf:Yd,kindOfTest:Vn,endsWith:GS,toArray:KS,forEachEntry:XS,matchAll:YS,isHTMLForm:ZS,hasOwnProperty:$l,hasOwnProp:$l,hasOwnInPrototypeChain:Lr,getSafeProp:xS,reduceDescriptors:pv,freezeMethods:eA,toObjectSet:nA,toCamelCase:QS,noop:iA,toFiniteNumber:oA,findKey:dv,global:To,isContextDefined:hv,isSpecCompliantForm:sA,toJSONObject:rA,isAsyncFn:aA,isThenable:lA,setImmediate:fv,asap:uA,isIterable:gv,isSafeIterable:cA},dA=L.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),hA=t=>{const e={};let n,i,o;return t&&t.split(` -`).forEach(function(s){o=s.indexOf(":"),n=s.substring(0,o).trim().toLowerCase(),i=s.substring(o+1).trim(),!(!n||e[n]&&dA[n])&&(n==="set-cookie"?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)}),e};function pA(t){let e=0,n=t.length;for(;ee;){const i=t.charCodeAt(n-1);if(i!==9&&i!==32)break;n-=1}return e===0&&n===t.length?t:t.slice(e,n)}const fA=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),gA=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function Zd(t,e){return L.isArray(t)?t.map(n=>Zd(n,e)):pA(String(t).replace(e,""))}const mA=t=>Zd(t,fA),vA=t=>Zd(t,gA);function mv(t){const e=Object.create(null);return L.forEach(t.toJSON(),(n,i)=>{e[i]=vA(n)}),e}const zf=Symbol("internals");function Ks(t){return t&&String(t).trim().toLowerCase()}function Xa(t){return t===!1||t==null?t:L.isArray(t)?t.map(Xa):mA(String(t))}function yA(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=n.exec(t);)e[i[1]]=i[2];return e}const bA=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function fc(t,e,n,i,o){if(L.isFunction(i))return i.call(this,e,n);if(o&&(e=n),!!L.isString(e)){if(L.isString(i))return e.indexOf(i)!==-1;if(L.isRegExp(i))return i.test(e)}}function _A(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,i)=>n.toUpperCase()+i)}function wA(t,e){const n=L.toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+n,{__proto__:null,value:function(o,s,r){return this[i].call(this,e,o,s,r)},configurable:!0})})}let Je=class{constructor(t){t&&this.set(t)}set(t,e,n){const i=this;function o(r,a,l){const c=Ks(a);if(!c)return;const u=L.findKey(i,c);(!u||i[u]===void 0||l===!0||l===void 0&&i[u]!==!1)&&(i[u||a]=Xa(r))}const s=(r,a)=>L.forEach(r,(l,c)=>o(l,c,a));if(L.isPlainObject(t)||t instanceof this.constructor)s(t,e);else if(L.isString(t)&&(t=t.trim())&&!bA(t))s(hA(t),e);else if(L.isObject(t)&&L.isSafeIterable(t)){let r=Object.create(null),a,l;for(const c of t){if(!L.isArray(c))throw new TypeError("Object iterator must return a key-value pair");l=c[0],L.hasOwnProp(r,l)?(a=r[l],r[l]=L.isArray(a)?[...a,c[1]]:[a,c[1]]):r[l]=c[1]}s(r,e)}else t!=null&&o(e,t,n);return this}get(t,e){if(t=Ks(t),t){const n=L.findKey(this,t);if(n){const i=this[n];if(!e)return i;if(e===!0)return yA(i);if(L.isFunction(e))return e.call(this,i,n);if(L.isRegExp(e))return e.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=Ks(t),t){const n=L.findKey(this,t);return!!(n&&this[n]!==void 0&&(!e||fc(this,this[n],n,e)))}return!1}delete(t,e){const n=this;let i=!1;function o(s){if(s=Ks(s),s){const r=L.findKey(n,s);r&&(!e||fc(n,n[r],r,e))&&(delete n[r],i=!0)}}return L.isArray(t)?t.forEach(o):o(t),i}clear(t){const e=Object.keys(this);let n=e.length,i=!1;for(;n--;){const o=e[n];(!t||fc(this,this[o],o,t,!0))&&(delete this[o],i=!0)}return i}normalize(t){const e=this,n={};return L.forEach(this,(i,o)=>{const s=L.findKey(n,o);if(s){e[s]=Xa(i),delete e[o];return}const r=t?_A(o):String(o).trim();r!==o&&delete e[o],e[r]=Xa(i),n[r]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return L.forEach(this,(n,i)=>{n!=null&&n!==!1&&(e[i]=t&&L.isArray(n)?n.join(", "):n)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,e])=>t+": "+e).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach(i=>n.set(i)),n}static accessor(t){const e=(this[zf]=this[zf]={accessors:{}}).accessors,n=this.prototype;function i(o){const s=Ks(o);e[s]||(wA(n,o),e[s]=!0)}return L.isArray(t)?t.forEach(i):i(t),this}};Je.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),L.reduceDescriptors(Je.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(i){this[n]=i}}}),L.freezeMethods(Je);const xA="[REDACTED ****]";function EA(t){if(L.hasOwnProp(t,"toJSON"))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Object.prototype;){if(L.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function CA(t,e){const n=new Set(e.map(s=>String(s).toLowerCase())),i=[],o=s=>{if(s===null||typeof s!="object"||L.isBuffer(s))return s;if(i.indexOf(s)!==-1)return;s instanceof Je&&(s=s.toJSON()),i.push(s);let r;if(L.isArray(s))r=[],s.forEach((a,l)=>{const c=o(a);L.isUndefined(c)||(r[l]=c)});else{if(!L.isPlainObject(s)&&EA(s))return i.pop(),s;r=Object.create(null);for(const[a,l]of Object.entries(s)){const c=n.has(a.toLowerCase())?xA:o(l);L.isUndefined(c)||(r[a]=c)}}return i.pop(),r};return o(t)}let gt=class vv extends Error{static from(e,n,i,o,s,r){const a=new vv(e.message,n||e.code,i,o,s);return Object.defineProperty(a,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),a.name=e.name,e.status!=null&&a.status==null&&(a.status=e.status),r&&Object.assign(a,r),a}constructor(e,n,i,o,s){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),i&&(this.config=i),o&&(this.request=o),s&&(this.response=s,this.status=s.status)}toJSON(){const e=this.config,n=e&&L.hasOwnProp(e,"redact")?e.redact:void 0,i=L.isArray(n)&&n.length>0?CA(e,n):L.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:i,code:this.code,status:this.status}}};gt.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",gt.ERR_BAD_OPTION="ERR_BAD_OPTION",gt.ECONNABORTED="ECONNABORTED",gt.ETIMEDOUT="ETIMEDOUT",gt.ECONNREFUSED="ECONNREFUSED",gt.ERR_NETWORK="ERR_NETWORK",gt.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",gt.ERR_DEPRECATED="ERR_DEPRECATED",gt.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",gt.ERR_BAD_REQUEST="ERR_BAD_REQUEST",gt.ERR_CANCELED="ERR_CANCELED",gt.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",gt.ERR_INVALID_URL="ERR_INVALID_URL",gt.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const SA=null,yv=100;function hd(t){return L.isPlainObject(t)||L.isArray(t)}function bv(t){return L.endsWith(t,"[]")?t.slice(0,-2):t}function gc(t,e,n){return t?t.concat(e).map(function(i,o){return i=bv(i),!n&&o?"["+i+"]":i}).join(n?".":""):e}function AA(t){return L.isArray(t)&&!t.some(hd)}const kA=L.toFlatObject(L,{},null,function(t){return/^is[A-Z]/.test(t)});function gu(t,e,n){if(!L.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=L.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,S){return!L.isUndefined(S[b])});const i=n.metaTokens,o=n.visitor||v,s=n.dots,r=n.indexes,a=n.Blob||typeof Blob<"u"&&Blob,l=n.maxDepth===void 0?yv:n.maxDepth,c=a&&L.isSpecCompliantForm(e),u=[];if(!L.isFunction(o))throw new TypeError("visitor must be a function");function d(b){if(b===null)return"";if(L.isDate(b))return b.toISOString();if(L.isBoolean(b))return b.toString();if(!c&&L.isBlob(b))throw new gt("Blob is not supported. Use a Buffer instead.");if(L.isArrayBuffer(b)||L.isTypedArray(b)){if(c&&typeof a=="function")return new a([b]);if(typeof Yp<"u")return Yp.from(b);throw new gt("Blob is not supported. Use a Buffer instead.",gt.ERR_NOT_SUPPORT)}return b}function p(b){if(b>l)throw new gt("Object is too deeply nested ("+b+" levels). Max depth: "+l,gt.ERR_FORM_DATA_DEPTH_EXCEEDED)}function f(b,S){if(l===1/0)return JSON.stringify(b);const D=[];return JSON.stringify(b,function(k,N){if(!L.isObject(N))return N;for(;D.length&&D[D.length-1]!==this;)D.pop();return D.push(N),p(S+D.length-1),N})}function v(b,S,D){let k=b;if(L.isReactNative(e)&&L.isReactNativeBlob(b))return e.append(gc(D,S,s),d(b)),!1;if(b&&!D&&typeof b=="object"){if(L.endsWith(S,"{}"))S=i?S:S.slice(0,-2),b=f(b,1);else if(L.isArray(b)&&AA(b)||(L.isFileList(b)||L.endsWith(S,"[]"))&&(k=L.toArray(b)))return S=bv(S),k.forEach(function(N,F){!(L.isUndefined(N)||N===null)&&e.append(r===!0?gc([S],F,s):r===null?S:S+"[]",d(N))}),!1}return hd(b)?!0:(e.append(gc(D,S,s),d(b)),!1)}const g=Object.assign(kA,{defaultVisitor:v,convertValue:d,isVisitable:hd});function w(b,S,D=0){if(!L.isUndefined(b)){if(p(D),u.indexOf(b)!==-1)throw new Error("Circular reference detected in "+S.join("."));u.push(b),L.forEach(b,function(k,N){(!(L.isUndefined(k)||k===null)&&o.call(e,k,L.isString(N)?N.trim():N,S,g))===!0&&w(k,S?S.concat(N):[N],D+1)}),u.pop()}}if(!L.isObject(t))throw new TypeError("data must be an object");return w(t),e}function Hf(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(n){return e[n]})}function Qd(t,e){this._pairs=[],t&&gu(t,this,e)}const Wf=Qd.prototype;Wf.append=function(t,e){this._pairs.push([t,e])},Wf.toString=function(t){const e=t?n=>t.call(this,n,Hf):Hf;return this._pairs.map(function(n){return e(n[0])+"="+e(n[1])},"").join("&")};function TA(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function _v(t,e,n){if(!e)return t;t=t||"";const i=L.isFunction(n)?{serialize:n}:n,o=L.getSafeProp(i,"encode")||TA,s=L.getSafeProp(i,"serialize");let r;if(s?r=s(e,i):r=L.isURLSearchParams(e)?e.toString():new Qd(e,i).toString(o),r){const a=t.indexOf("#");a!==-1&&(t=t.slice(0,a)),t+=(t.indexOf("?")===-1?"?":"&")+r}return t}class Jf{constructor(){this.handlers=[]}use(e,n,i){return this.handlers.push({fulfilled:e,rejected:n,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){L.forEach(this.handlers,function(n){n!==null&&e(n)})}}const Md={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},DA=typeof URLSearchParams<"u"?URLSearchParams:Qd,OA=typeof FormData<"u"?FormData:null,$A=typeof Blob<"u"?Blob:null,RA={isBrowser:!0,classes:{URLSearchParams:DA,FormData:OA,Blob:$A},protocols:["http","https","file","blob","url","data"]},th=typeof window<"u"&&typeof document<"u",pd=typeof navigator=="object"&&navigator||void 0,BA=th&&(!pd||["ReactNative","NativeScript","NS"].indexOf(pd.product)<0),PA=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",NA=th&&window.location.href||"http://localhost",LA=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:th,hasStandardBrowserEnv:BA,hasStandardBrowserWebWorkerEnv:PA,navigator:pd,origin:NA},Symbol.toStringTag,{value:"Module"})),Ne={...LA,...RA};function FA(t,e){return gu(t,new Ne.classes.URLSearchParams,{visitor:function(n,i,o,s){return Ne.isNode&&L.isBuffer(n)?(this.append(i,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...e})}const Gf=yv;function wv(t){if(t>Gf)throw new gt("FormData field is too deeply nested ("+t+" levels). Max depth: "+Gf,gt.ERR_FORM_DATA_DEPTH_EXCEEDED)}function VA(t){const e=[],n=/\w+|\[(\w*)]/g;let i;for(;(i=n.exec(t))!==null;)wv(e.length),e.push(i[0]==="[]"?"":i[1]||i[0]);return e}function jA(t){const e={},n=Object.keys(t);let i;const o=n.length;let s;for(i=0;i=n.length;return r=!r&&L.isArray(o)?o.length:r,l?(L.hasOwnProp(o,r)?o[r]=L.isArray(o[r])?o[r].concat(i):[o[r],i]:o[r]=i,!a):((!L.hasOwnProp(o,r)||!L.isObject(o[r]))&&(o[r]=[]),e(n,i,o[r],s)&&L.isArray(o[r])&&(o[r]=jA(o[r])),!a)}if(L.isFormData(t)&&L.isFunction(t.entries)){const n={};return L.forEachEntry(t,(i,o)=>{e(VA(i),o,n,0)}),n}return null}const os=(t,e)=>t!=null&&L.hasOwnProp(t,e)?t[e]:void 0;function UA(t,e,n){if(L.isString(t))try{return(e||JSON.parse)(t),L.trim(t)}catch(i){if(i.name!=="SyntaxError")throw i}return(n||JSON.stringify)(t)}const ta={transitional:Md,adapter:["xhr","http","fetch"],transformRequest:[function(t,e){const n=e.getContentType()||"",i=n.indexOf("application/json")>-1,o=L.isObject(t);if(o&&L.isHTMLForm(t)&&(t=new FormData(t)),L.isFormData(t))return i?JSON.stringify(xv(t)):t;if(L.isArrayBuffer(t)||L.isBuffer(t)||L.isStream(t)||L.isFile(t)||L.isBlob(t)||L.isReadableStream(t))return t;if(L.isArrayBufferView(t))return t.buffer;if(L.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(o){const r=os(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return FA(t,r).toString();if((s=L.isFileList(t))||n.indexOf("multipart/form-data")>-1){const a=os(this,"env"),l=a&&a.FormData;return gu(s?{"files[]":t}:t,l&&new l,r)}}return o||i?(e.setContentType("application/json",!1),UA(t)):t}],transformResponse:[function(t){const e=os(this,"transitional")||ta.transitional,n=e&&e.forcedJSONParsing,i=os(this,"responseType"),o=i==="json";if(L.isResponse(t)||L.isReadableStream(t))return t;if(t&&L.isString(t)&&(n&&!i||o)){const s=!(e&&e.silentJSONParsing)&&o;try{return JSON.parse(t,os(this,"parseReviver"))}catch(r){if(s)throw r.name==="SyntaxError"?gt.from(r,gt.ERR_BAD_RESPONSE,this,null,os(this,"response")):r}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ne.classes.FormData,Blob:Ne.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};L.forEach(["delete","get","head","post","put","patch","query"],t=>{ta.headers[t]={}});function mc(t,e){const n=this||ta,i=e||n,o=Je.from(i.headers);let s=i.data;return L.forEach(t,function(r){s=r.call(n,s,o.normalize(),e?e.status:void 0)}),o.normalize(),s}function Ev(t){return!!(t&&t.__CANCEL__)}let ea=class extends gt{constructor(t,e,n){super(t??"canceled",gt.ERR_CANCELED,e,n),this.name="CanceledError",this.__CANCEL__=!0}};function Cv(t,e,n){const i=n.config.validateStatus;!n.status||!i||i(n.status)?t(n):e(new gt("Request failed with status code "+n.status,n.status>=400&&n.status<500?gt.ERR_BAD_REQUEST:gt.ERR_BAD_RESPONSE,n.config,n.request,n))}function IA(t){const e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(t);return e&&e[1]||""}function zA(t,e){t=t||10;const n=new Array(t),i=new Array(t);let o=0,s=0,r;return e=e!==void 0?e:1e3,function(a){const l=Date.now(),c=i[s];r||(r=l),n[o]=a,i[o]=l;let u=s,d=0;for(;u!==o;)d+=n[u++],u=u%t;if(o=(o+1)%t,o===s&&(s=(s+1)%t),l-r{n=l,o=null,s&&(clearTimeout(s),s=null),t(...a)};return[(...a)=>{const l=Date.now(),c=l-n;c>=i?r(a,l):(o=a,s||(s=setTimeout(()=>{s=null,r(o)},i-c)))},()=>o&&r(o)]}const Rl=(t,e,n=3)=>{let i=0;const o=zA(50,250);return HA(s=>{if(!s||typeof s.loaded!="number")return;const r=s.loaded,a=s.lengthComputable?s.total:void 0,l=a!=null?Math.min(r,a):r,c=Math.max(0,l-i),u=o(c);i=Math.max(i,l);const d={loaded:l,total:a,progress:a?l/a:void 0,bytes:c,rate:u||void 0,estimated:u&&a?(a-l)/u:void 0,event:s,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(d)},n)},Kf=(t,e)=>{const n=t!=null;return[i=>e[0]({lengthComputable:n,total:t,loaded:i}),e[1]]},qf=t=>(...e)=>L.asap(()=>t(...e)),WA=Ne.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,Ne.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(Ne.origin),Ne.navigator&&/(msie|trident)/i.test(Ne.navigator.userAgent)):()=>!0,JA=Ne.hasStandardBrowserEnv?{write(t,e,n,i,o,s,r){if(typeof document>"u")return;const a=[`${t}=${encodeURIComponent(e)}`];L.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),L.isString(i)&&a.push(`path=${i}`),L.isString(o)&&a.push(`domain=${o}`),s===!0&&a.push("secure"),L.isString(r)&&a.push(`SameSite=${r}`),document.cookie=a.join("; ")},read(t){if(typeof document>"u")return null;const e=document.cookie.split(";");for(let n=0;nt instanceof Je?{...t}:t;function Io(t,e){t=t||{},e=e||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function i(u,d,p,f){return L.isPlainObject(u)&&L.isPlainObject(d)?L.merge.call({caseless:f},u,d):L.isPlainObject(d)?L.merge({},d):L.isArray(d)?d.slice():d}function o(u,d,p,f){if(L.isUndefined(d)){if(!L.isUndefined(u))return i(void 0,u,p,f)}else return i(u,d,p,f)}function s(u,d){if(!L.isUndefined(d))return i(void 0,d)}function r(u,d){if(L.isUndefined(d)){if(!L.isUndefined(u))return i(void 0,u)}else return i(void 0,d)}function a(u){const d=L.hasOwnProp(e,"transitional")?e.transitional:void 0;if(!L.isUndefined(d))if(L.isPlainObject(d)){if(L.hasOwnProp(d,u))return d[u]}else return;const p=L.hasOwnProp(t,"transitional")?t.transitional:void 0;if(L.isPlainObject(p)&&L.hasOwnProp(p,u))return p[u]}function l(u,d,p){if(L.hasOwnProp(e,p))return i(u,d);if(L.hasOwnProp(t,p))return i(void 0,u)}const c={url:s,method:s,data:s,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,withXSRFToken:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,allowedSocketPaths:r,responseEncoding:r,validateStatus:l,headers:(u,d,p)=>o(Yf(u),Yf(d),p,!0)};return L.forEach(Object.keys({...t,...e}),function(u){if(u==="__proto__"||u==="constructor"||u==="prototype")return;const d=L.hasOwnProp(c,u)?c[u]:o,p=L.hasOwnProp(t,u)?t[u]:void 0,f=L.hasOwnProp(e,u)?e[u]:void 0,v=d(p,f,u);L.isUndefined(v)&&d!==l||(n[u]=v)}),L.hasOwnProp(e,"validateStatus")&&L.isUndefined(e.validateStatus)&&a("validateStatusUndefinedResolves")===!1&&(L.hasOwnProp(t,"validateStatus")?n.validateStatus=i(void 0,t.validateStatus):delete n.validateStatus),n}const QA=["content-type","content-length"];function MA(t,e,n){if(n!=="content-only"){t.set(e);return}Object.entries(e||{}).forEach(([i,o])=>{QA.includes(i.toLowerCase())&&t.set(i,o)})}const tk=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16)));function Av(t){const e=Io({},t),n=p=>L.hasOwnProp(e,p)?e[p]:void 0,i=n("data");let o=n("withXSRFToken");const s=n("xsrfHeaderName"),r=n("xsrfCookieName");let a=n("headers");const l=n("auth"),c=n("baseURL"),u=n("allowAbsoluteUrls"),d=n("url");if(e.headers=a=Je.from(a),e.url=_v(Sv(c,d,u,e),n("params"),n("paramsSerializer")),l){const p=L.getSafeProp(l,"username")||"",f=L.getSafeProp(l,"password")||"";try{a.set("Authorization","Basic "+btoa(p+":"+(f?tk(f):"")))}catch(v){throw gt.from(v,gt.ERR_BAD_OPTION_VALUE,t)}}if(L.isFormData(i)&&(Ne.hasStandardBrowserEnv||Ne.hasStandardBrowserWebWorkerEnv||L.isReactNative(i)?a.setContentType(void 0):L.isFunction(i.getHeaders)&&MA(a,i.getHeaders(),n("formDataHeaderPolicy"))),Ne.hasStandardBrowserEnv&&(L.isFunction(o)&&(o=o(e)),o===!0||o==null&&WA(e.url))){const p=s&&r&&JA.read(r);p&&a.set(s,p)}return e}const ek=typeof XMLHttpRequest<"u",nk=ek&&function(t){return new Promise(function(e,n){const i=Av(t);let o=i.data;const s=Je.from(i.headers).normalize();let{responseType:r,onUploadProgress:a,onDownloadProgress:l}=i,c,u,d,p,f;function v(){p&&p(),f&&f(),i.cancelToken&&i.cancelToken.unsubscribe(c),i.signal&&i.signal.removeEventListener("abort",c)}let g=new XMLHttpRequest;g.open(i.method.toUpperCase(),i.url,!0),g.timeout=i.timeout;function w(){if(!g)return;const S=Je.from("getAllResponseHeaders"in g&&g.getAllResponseHeaders()),D={data:!r||r==="text"||r==="json"?g.responseText:g.response,status:g.status,statusText:g.statusText,headers:S,config:t,request:g};Cv(function(k){e(k),v()},function(k){n(k),v()},D),g=null}"onloadend"in g?g.onloadend=w:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.startsWith("file:"))||setTimeout(w)},g.onabort=function(){g&&(n(new gt("Request aborted",gt.ECONNABORTED,t,g)),v(),g=null)},g.onerror=function(S){const D=S&&S.message?S.message:"Network Error",k=new gt(D,gt.ERR_NETWORK,t,g);k.event=S||null,n(k),v(),g=null},g.ontimeout=function(){let S=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const D=i.transitional||Md;i.timeoutErrorMessage&&(S=i.timeoutErrorMessage),n(new gt(S,D.clarifyTimeoutError?gt.ETIMEDOUT:gt.ECONNABORTED,t,g)),v(),g=null},o===void 0&&s.setContentType(null),"setRequestHeader"in g&&L.forEach(mv(s),function(S,D){g.setRequestHeader(D,S)}),L.isUndefined(i.withCredentials)||(g.withCredentials=!!i.withCredentials),r&&r!=="json"&&(g.responseType=i.responseType),l&&([d,f]=Rl(l,!0),g.addEventListener("progress",d)),a&&g.upload&&([u,p]=Rl(a),g.upload.addEventListener("progress",u),g.upload.addEventListener("loadend",p)),(i.cancelToken||i.signal)&&(c=S=>{g&&(n(!S||S.type?new ea(null,t,g):S),g.abort(),v(),g=null)},i.cancelToken&&i.cancelToken.subscribe(c),i.signal&&(i.signal.aborted?c():i.signal.addEventListener("abort",c)));const b=IA(i.url);if(b&&!Ne.protocols.includes(b)){n(new gt("Unsupported protocol "+b+":",gt.ERR_BAD_REQUEST,t)),v();return}g.send(o||null)})},ik=(t,e)=>{if(t=t?t.filter(Boolean):[],!e&&!t.length)return;const n=new AbortController;let i=!1;const o=function(l){if(!i){i=!0,r();const c=l instanceof Error?l:this.reason;n.abort(c instanceof gt?c:new ea(c instanceof Error?c.message:c))}};let s=e&&setTimeout(()=>{s=null,o(new gt(`timeout of ${e}ms exceeded`,gt.ETIMEDOUT))},e);const r=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(l=>{l.unsubscribe?l.unsubscribe(o):l.removeEventListener("abort",o)}),t=null)};t.forEach(l=>l.addEventListener("abort",o,{once:!0}));const{signal:a}=n;return a.unsubscribe=()=>L.asap(r),a},ok=function*(t,e){let n=t.byteLength;if(n{const o=sk(t,e);let s=0,r,a=l=>{r||(r=!0,i&&i(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await o.next();if(c){a(),l.close();return}let d=u.byteLength;if(n){let p=s+=d;n(p)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),o.return()}},{highWaterMark:2})},Bl=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,ak=(t,e,n)=>e+2d>=2&&i.charCodeAt(d-2)===37&&i.charCodeAt(d-1)===51&&(i.charCodeAt(d)===68||i.charCodeAt(d)===100);l>=0&&(i.charCodeAt(l)===61?(a++,l--):c(l)&&(a++,l-=3)),a===1&&l>=0&&(i.charCodeAt(l)===61||c(l))&&a++;const u=Math.floor(s/4)*3-(a||0);return u>0?u:0}let o=0;for(let s=0,r=i.length;s=55296&&a<=56319&&s+1=56320&&l<=57343?(o+=4,s++):o+=3}else o+=3}return o}const eh="1.18.1",Qf=64*1024,{isFunction:wa}=L,uk=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16))),Mf=t=>{if(!L.isString(t))return t;try{return decodeURIComponent(t)}catch{return t}},t0=(t,...e)=>{try{return!!t(...e)}catch{return!1}},ck=t=>{const e=t.indexOf("://");let n=t;return e!==-1&&(n=n.slice(e+3)),n.includes("@")||n.includes(":")},dk=t=>{const e=L.global!==void 0&&L.global!==null?L.global:globalThis,{ReadableStream:n,TextEncoder:i}=e;t=L.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},t);const{fetch:o,Request:s,Response:r}=t,a=o?wa(o):typeof fetch=="function",l=wa(s),c=wa(r);if(!a)return!1;const u=a&&wa(n),d=a&&(typeof i=="function"?(b=>S=>b.encode(S))(new i):async b=>new Uint8Array(await new s(b).arrayBuffer())),p=l&&u&&t0(()=>{let b=!1;const S=new s(Ne.origin,{body:new n,method:"POST",get duplex(){return b=!0,"half"}}),D=S.headers.has("Content-Type");return S.body!=null&&S.body.cancel(),b&&!D}),f=c&&u&&t0(()=>L.isReadableStream(new r("").body)),v={stream:f&&(b=>b.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(b=>{!v[b]&&(v[b]=(S,D)=>{let k=S&&S[b];if(k)return k.call(S);throw new gt(`Response type '${b}' is not supported`,gt.ERR_NOT_SUPPORT,D)})});const g=async b=>{if(b==null)return 0;if(L.isBlob(b))return b.size;if(L.isSpecCompliantForm(b))return(await new s(Ne.origin,{method:"POST",body:b}).arrayBuffer()).byteLength;if(L.isArrayBufferView(b)||L.isArrayBuffer(b))return b.byteLength;if(L.isURLSearchParams(b)&&(b=b+""),L.isString(b))return(await d(b)).byteLength},w=async(b,S)=>L.toFiniteNumber(b.getContentLength())??g(S);return async b=>{let{url:S,method:D,data:k,signal:N,cancelToken:F,timeout:j,onDownloadProgress:I,onUploadProgress:X,responseType:W,headers:Y,withCredentials:$="same-origin",fetchOptions:U,maxContentLength:M,maxBodyLength:nt}=Av(b);const et=L.isNumber(M)&&M>-1,ut=L.isNumber(nt)&&nt>-1,ht=Dt=>L.hasOwnProp(b,Dt)?b[Dt]:void 0;let mt=o||fetch;W=W?(W+"").toLowerCase():"text";let vt=ik([N,F&&F.toAbortSignal()],j),Tt=null;const Ft=vt&&vt.unsubscribe&&(()=>{vt.unsubscribe()});let Xt,Vt=null;const wt=()=>new gt("Request body larger than maxBodyLength limit",gt.ERR_BAD_REQUEST,b,Tt);try{let Dt;const oe=ht("auth");if(oe){const z=L.getSafeProp(oe,"username")||"",Q=L.getSafeProp(oe,"password")||"";Dt={username:z,password:Q}}if(ck(S)){const z=new URL(S,Ne.origin);if(!Dt&&(z.username||z.password)){const Q=Mf(z.username),at=Mf(z.password);Dt={username:Q,password:at}}(z.username||z.password)&&(z.username="",z.password="",S=z.href)}if(Dt&&(Y.delete("authorization"),Y.set("Authorization","Basic "+btoa(uk((Dt.username||"")+":"+(Dt.password||""))))),et&&typeof S=="string"&&S.startsWith("data:")&&lk(S)>M)throw new gt("maxContentLength size of "+M+" exceeded",gt.ERR_BAD_RESPONSE,b,Tt);if(ut&&D!=="get"&&D!=="head"){const z=await g(k);if(typeof z=="number"&&isFinite(z)&&(Xt=z,z>nt))throw wt()}const un=ut&&(L.isReadableStream(k)||L.isStream(k)),jn=(z,Q,at)=>Zf(z,Qf,ot=>{if(ut&&ot>nt)throw Vt=wt();Q&&Q(ot)},at);if(p&&D!=="get"&&D!=="head"&&(X||un)){if(Xt=Xt??await w(Y,k),Xt!==0||un){let z=new s(S,{method:"POST",body:k,duplex:"half"}),Q;if(L.isFormData(k)&&(Q=z.headers.get("content-type"))&&Y.setContentType(Q),z.body){const[at,ot]=X&&Kf(Xt,Rl(qf(X)))||[];k=jn(z.body,at,ot)}}}else if(un&&!l&&u&&D!=="get"&&D!=="head")k=jn(k);else if(un&&l&&!p&&D!=="get"&&D!=="head")throw new gt("Stream request bodies are not supported by the current fetch implementation",gt.ERR_NOT_SUPPORT,b,Tt);L.isString($)||($=$?"include":"omit");const On=l&&"credentials"in s.prototype;if(L.isFormData(k)){const z=Y.getContentType();z&&/^multipart\/form-data/i.test(z)&&!/boundary=/i.test(z)&&Y.delete("content-type")}Y.set("User-Agent","axios/"+eh,!1);const T={...U,signal:vt,method:D.toUpperCase(),headers:mv(Y.normalize()),body:k,duplex:"half",credentials:On?$:void 0};Tt=l&&new s(S,T);let P=await(l?mt(Tt,U):mt(S,T));const K=Je.from(P.headers);if(et){const z=L.toFiniteNumber(K.getContentLength());if(z!=null&&z>M)throw new gt("maxContentLength size of "+M+" exceeded",gt.ERR_BAD_RESPONSE,b,Tt)}const it=f&&(W==="stream"||W==="response");if(f&&P.body&&(I||et||it&&Ft)){const z={};["status","statusText","headers"].forEach(pt=>{z[pt]=P[pt]});const Q=L.toFiniteNumber(K.getContentLength()),[at,ot]=I&&Kf(Q,Rl(qf(I),!0))||[];let tt=0;const _t=pt=>{if(et&&(tt=pt,tt>M))throw new gt("maxContentLength size of "+M+" exceeded",gt.ERR_BAD_RESPONSE,b,Tt);at&&at(pt)};P=new r(Zf(P.body,Qf,_t,()=>{ot&&ot(),Ft&&Ft()}),z)}W=W||"text";let J=await v[L.findKey(v,W)||"text"](P,b);if(et&&!f&&!it){let z;if(J!=null&&(typeof J.byteLength=="number"?z=J.byteLength:typeof J.size=="number"?z=J.size:typeof J=="string"&&(z=typeof i=="function"?new i().encode(J).byteLength:J.length)),typeof z=="number"&&z>M)throw new gt("maxContentLength size of "+M+" exceeded",gt.ERR_BAD_RESPONSE,b,Tt)}return!it&&Ft&&Ft(),await new Promise((z,Q)=>{Cv(z,Q,{data:J,headers:Je.from(P.headers),status:P.status,statusText:P.statusText,config:b,request:Tt})})}catch(Dt){if(Ft&&Ft(),vt&&vt.aborted&&vt.reason instanceof gt){const oe=vt.reason;throw oe.config=b,Tt&&(oe.request=Tt),Dt!==oe&&Object.defineProperty(oe,"cause",{__proto__:null,value:Dt,writable:!0,enumerable:!1,configurable:!0}),oe}if(Vt)throw Tt&&!Vt.request&&(Vt.request=Tt),Vt;if(Dt instanceof gt)throw Tt&&!Dt.request&&(Dt.request=Tt),Dt;if(Dt&&Dt.name==="TypeError"&&/Load failed|fetch/i.test(Dt.message)){const oe=new gt("Network Error",gt.ERR_NETWORK,b,Tt,Dt&&Dt.response);throw Object.defineProperty(oe,"cause",{__proto__:null,value:Dt.cause||Dt,writable:!0,enumerable:!1,configurable:!0}),oe}throw gt.from(Dt,Dt&&Dt.code,b,Tt,Dt&&Dt.response)}}},hk=new Map,kv=t=>{let e=t&&t.env||{};const{fetch:n,Request:i,Response:o}=e,s=[i,o,n];let r=s.length,a=r,l,c,u=hk;for(;a--;)l=s[a],c=u.get(l),c===void 0&&u.set(l,c=a?new Map:dk(e)),u=c;return c};kv();const nh={http:SA,xhr:nk,fetch:{get:kv}};L.forEach(nh,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:e})}});const e0=t=>`- ${t}`,pk=t=>L.isFunction(t)||t===null||t===!1;function fk(t,e){t=L.isArray(t)?t:[t];const{length:n}=t;let i,o;const s={};for(let r=0;r`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let a=n?r.length>1?`since : +${e.stack}`),o)}log(e,n,i){if(!(typeof this.context?.level=="number"&&e{document.readyState==="complete"||document.readyState==="interactive"?(e.context.level=window._oc_config?.loglevel??ye.Warn,window._oc_debug&&(e.context.level=ye.Debug),document.removeEventListener("readystatechange",n)):document.addEventListener("readystatechange",n)};return n(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function RC(){return new $C(OC)}const BC=RC().detectUser().setApp("@nextcloud/vue").build(),kl=vx(),PC=Et({name:"NcPopoverTriggerProvider",provide(){return{"NcPopover:trigger:shown":()=>this.shown,"NcPopover:trigger:attrs":()=>this.triggerAttrs}},props:{shown:{type:Boolean,required:!0},popupRole:{type:String,default:void 0}},computed:{triggerAttrs(){return{"aria-haspopup":this.popupRole,"aria-expanded":this.shown.toString()}}},render(){return this.$slots.default?.({attrs:this.triggerAttrs})}}),NC="_ncPopover_oX-YA",LC={"material-design-icon":"_material-design-icon_CtXvA",ncPopover:NC},nv="nc-popover-9";Ef.themes[nv]=structuredClone(Ef.themes.dropdown);const FC={name:"NcPopover",components:{Dropdown:oC,NcPopoverTriggerProvider:PC},props:{boundary:{type:[String,Object],default:""},closeOnClickOutside:{type:Boolean,default:!0},noCloseOnClickOutside:{type:Boolean,default:!1},container:{type:[Boolean,String],default:"body"},delay:{type:[Number,Object],default:0},noFocusTrap:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},popoverBaseClass:{type:String,default:""},popoverTriggers:{type:[Array,Object],default:null},popupRole:{type:String,default:void 0,validator:t=>["menu","listbox","tree","grid","dialog","true"].includes(t)},setReturnFocus:{default:void 0,type:[Boolean,HTMLElement,SVGElement,String,Function]},shown:{type:Boolean,default:!1},triggers:{type:[Array,Object],default:()=>["click"]}},emits:["afterShow","afterHide","update:shown"],setup(){return{theme:nv}},data(){return{internalShown:this.shown}},computed:{popperTriggers(){if(this.popoverTriggers&&Array.isArray(this.popoverTriggers))return this.popoverTriggers},popperHideTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.hide},popperShowTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.show},internalTriggers(){if(this.triggers&&Array.isArray(this.triggers))return this.triggers},hideTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.hide},showTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.show},internalPlacement(){return this.placement==="start"?kl?"right":"left":this.placement==="end"?kl?"left":"right":this.placement}},watch:{shown(t){this.internalShown=t},internalShown(t){this.$emit("update:shown",t)}},mounted(){this.checkTriggerA11y()},beforeUnmount(){this.clearFocusTrap(),this.clearEscapeStopPropagation()},methods:{checkTriggerA11y(){window.OC?.debug&&this.getPopoverTriggerContainerElement().querySelector("[aria-expanded]")},removeFloatingVueAriaDescribedBy(){const t=this.getPopoverTriggerContainerElement().querySelectorAll("[data-popper-shown]");for(const e of t)e.removeAttribute("aria-describedby")},getPopoverContentElement(){return this.$refs.popover?.$refs.popperContent?.$el},getPopoverTriggerContainerElement(){return this.$refs.popover?.$refs.popper?.$refs.reference},async useFocusTrap(){if(await this.$nextTick(),this.noFocusTrap)return;const t=this.getPopoverContentElement();t.tabIndex=-1,t&&(this.$focusTrap=k1(t,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus,trapStack:Rr(),fallBackFocus:t}),this.$focusTrap.activate())},clearFocusTrap(t={}){try{this.$focusTrap?.deactivate(t),this.$focusTrap=null}catch(e){BC.warn("[NcPopover] Failed to clear focus trap",{error:e})}},addEscapeStopPropagation(){this.getPopoverContentElement()?.addEventListener("keydown",this.stopKeydownEscapeHandler)},clearEscapeStopPropagation(){this.getPopoverContentElement()?.removeEventListener("keydown",this.stopKeydownEscapeHandler)},stopKeydownEscapeHandler(t){t.type==="keydown"&&t.key==="Escape"&&t.stopPropagation()},async afterShow(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("afterShow")},{once:!0,passive:!0}),this.removeFloatingVueAriaDescribedBy(),await this.$nextTick(),await this.useFocusTrap(),this.addEscapeStopPropagation()},afterHide(){this.getPopoverContentElement()?.addEventListener("transitionend",()=>{this.$emit("afterHide")},{once:!0,passive:!0}),this.clearFocusTrap(),this.clearEscapeStopPropagation()}}};function VC(t,e,n,i,o,s){const r=xn("NcPopoverTriggerProvider"),a=xn("Dropdown");return C(),ct(a,{ref:"popover",shown:o.internalShown,"onUpdate:shown":[e[0]||(e[0]=l=>o.internalShown=l),e[1]||(e[1]=l=>o.internalShown=l)],autoHide:!n.noCloseOnClickOutside&&n.closeOnClickOutside,boundary:n.boundary||void 0,container:n.container,delay:n.delay,distance:4,handleResize:"",noAutoFocus:!0,placement:s.internalPlacement,popperClass:[t.$style.ncPopover,n.popoverBaseClass],popperTriggers:s.popperTriggers,popperHideTriggers:s.popperHideTriggers,popperShowTriggers:s.popperShowTriggers,theme:i.theme,triggers:s.internalTriggers,hideTriggers:s.hideTriggers,showTriggers:s.showTriggers,onApplyShow:s.afterShow,onApplyHide:s.afterHide},{popper:dt(l=>[kt(t.$slots,"default",Ie($e(l)))]),default:dt(()=>[q(r,{shown:o.internalShown,popupRole:n.popupRole},{default:dt(l=>[kt(t.$slots,"trigger",Ie($e(l)))]),_:3},8,["shown","popupRole"])]),_:3},8,["shown","autoHide","boundary","container","delay","placement","popperClass","popperTriggers","popperHideTriggers","popperShowTriggers","theme","triggers","hideTriggers","showTriggers","onApplyShow","onApplyHide"])}const jC={$style:LC},Nf=pe(FC,[["render",VC],["__cssModules",jC]]),UC=Symbol.for("NcActions:isSemanticMenu"),IC=Symbol.for("NcActions:closeMenu"),zC={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},HC=["aria-hidden","aria-label"],JC=["fill","width","height"],WC={d:"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"},GC={key:0};function KC(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon dots-horizontal-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",WC,[n.title?(C(),R("title",GC,A(n.title),1)):st("",!0)])],8,JC))],16,HC)}const qC=pe(zC,[["render",KC]]);Go(s2);function iv(t){return Array.isArray(t)&&t.some(e=>{if(e===null)return!1;if(typeof e=="object"){const n=e;if(n.type===Be||n.type===yt&&!iv(n.children)||n.type===Yr&&!n.children.trim())return!1}return!0})}const XC=".focusable",YC={name:"NcActions",components:{NcButton:Se,NcPopover:Nf},provide(){return{[UC]:rt(()=>this.actionsMenuSemanticType==="menu"),[IC]:this.closeMenu}},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},primary:{type:Boolean,default:!1},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:de("Actions")},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.getElementById("content-vue")??document.querySelector("body")},container:{type:[Boolean,String,Object,Element],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0},variant:{type:String,validator(t){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(t)},default:null},wide:{type:Boolean,default:!1},size:{type:String,default:"normal",validator(t){return["small","normal","large"].includes(t)}}},emits:["click","blur","focus","close","closed","open","opened","update:open"],setup(){return{randomId:oi()}},data(){return{opened:this.open,focusIndex:0,actionsMenuSemanticType:"unknown"}},computed:{triggerButtonVariant(){return this.variant||(this.primary?"primary":this.menuName?"secondary":"tertiary")},config(){return{menu:{popupRole:"menu",withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!1},navigation:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!1},dialog:{popupRole:"dialog",withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!0},tooltip:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!1,withFocusTrap:!1},unknown:{popupRole:void 0,role:void 0,withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!0}}[this.actionsMenuSemanticType]},withFocusTrap(){return this.config.withFocusTrap}},watch:{open(t){t!==this.opened&&(this.opened=t)},opened(){this.opened?document.body.addEventListener("keydown",this.handleEscapePressed):document.body.removeEventListener("keydown",this.handleEscapePressed)}},created(){hE(()=>this.opened,{disabled:()=>this.config.withFocusTrap}),"ariaHidden"in this.$attrs},methods:{getActionName(t){return t?.type?.name},isValidSingleAction(t){return["NcActionButton","NcActionLink","NcActionRouter"].includes(this.getActionName(t))},isAction(t){return this.getActionName(t)?.startsWith?.("NcAction")},isIconUrl(t){try{return!!new URL(t,t.startsWith("/")?window.location.origin:void 0)}catch{return!1}},toggleMenu(t){t?this.openMenu():this.closeMenu()},openMenu(){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},async closeMenu(t=!0){this.opened&&(await this.$nextTick(),this.opened=!1,this.$refs.popover?.clearFocusTrap({returnFocus:t}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,t&&this.$refs.triggerButton?.$el.focus())},onOpened(){this.$nextTick(()=>{this.focusFirstAction(null),this.$emit("opened")})},onClosed(){this.$emit("closed")},getCurrentActiveMenuItemElement(){return this.$refs.menu.querySelector("li.active")},getFocusableMenuItemElements(){return this.$refs.menu.querySelectorAll(XC)},onKeydown(t){if(t.key==="Tab"){if(this.config.withFocusTrap)return;if(!this.config.withTabNavigation){this.closeMenu(!0);return}t.preventDefault();const e=this.getFocusableMenuItemElements(),n=[...e].indexOf(document.activeElement);if(n===-1)return;const i=t.shiftKey?n-1:n+1;(i<0||i===e.length)&&this.closeMenu(!0),this.focusIndex=i,this.focusAction();return}this.config.withArrowNavigation&&(t.key==="ArrowUp"&&this.focusPreviousAction(t),t.key==="ArrowDown"&&this.focusNextAction(t),t.key==="PageUp"&&this.focusFirstAction(t),t.key==="PageDown"&&this.focusLastAction(t)),this.handleEscapePressed(t)},onTriggerKeydown(t){t.key==="Escape"&&this.actionsMenuSemanticType==="tooltip"&&this.closeMenu()},handleEscapePressed(t){t.key==="Escape"&&(this.closeMenu(),t.preventDefault())},removeCurrentActive(){const t=this.$refs.menu.querySelector("li.active");t&&t.classList.remove("active")},focusAction(){const t=this.getFocusableMenuItemElements()[this.focusIndex];if(t){this.removeCurrentActive();const e=t.closest("li.action");t.focus(),e&&e.classList.add("active")}},focusPreviousAction(t){this.opened&&(this.focusIndex===0?this.focusLastAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(t){if(this.opened){const e=this.getFocusableMenuItemElements().length-1;this.focusIndex===e?this.focusFirstAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(t){if(this.opened){this.preventIfEvent(t);const e=[...this.getFocusableMenuItemElements()].findIndex(n=>n.getAttribute("aria-checked")==="true"&&n.getAttribute("role")==="menuitemradio");this.focusIndex=e>-1?e:0,this.focusAction()}},focusLastAction(t){this.opened&&(this.preventIfEvent(t),this.focusIndex=this.getFocusableMenuItemElements().length-1,this.focusAction())},preventIfEvent(t){t&&(t.preventDefault(),t.stopPropagation())},onFocus(t){this.$emit("focus",t)},onBlur(t){this.$emit("blur",t),this.actionsMenuSemanticType==="tooltip"&&this.$refs.menu&&this.getFocusableMenuItemElements().length===0&&this.closeMenu(!1)},onClick(t){this.$emit("click",t)}},render(){const t=[],e=(f,v)=>{f.forEach(g=>{if(this.isAction(g)){v.push(g);return}g.type===yt&&e(g.children,v)})};if(e(this.$slots.default?.(),t),t.length===0)return;let n=t.filter(this.isValidSingleAction);this.forceMenu&&n.length>0&&this.inline>0&&(n=[]);const i=n.slice(0,this.inline),o=t.filter(f=>!i.includes(f)),s=["NcActionButton","NcActionButtonGroup","NcActionCheckbox","NcActionRadio"],r=["NcActionInput","NcActionTextEditable"],a=["NcActionLink","NcActionRouter"],l=o.some(f=>r.includes(this.getActionName(f))),c=o.some(f=>s.includes(this.getActionName(f))),u=o.some(f=>a.includes(this.getActionName(f)));l?this.actionsMenuSemanticType="dialog":c?this.actionsMenuSemanticType="menu":u?this.actionsMenuSemanticType="navigation":t.filter(f=>this.getActionName(f).startsWith("NcAction")).length===t.length?this.actionsMenuSemanticType="tooltip":this.actionsMenuSemanticType="unknown";const d=f=>{const v=f?.props?.icon,g=f?.children?.icon?.()?.[0]??(this.isIconUrl(v)?be("img",{class:"action-item__menutoggle__icon",src:v,alt:""}):be("span",{class:["icon",v]})),w=f?.children?.default?.()?.[0]?.children?.trim(),b=this.forceName?w:"";let S=f?.props?.title;this.forceName||S||(S=w);const D={...f?.props??{}},k=["submit","reset"].includes(D.type)?D.modelValue:"button";return delete D.modelValue,delete D.type,be(Se,Lt(D,{class:["action-item action-item--single",{"action-item--wide":this.wide}],"aria-label":f?.props?.["aria-label"]||w,title:S,disabled:this.disabled||f?.props?.disabled,pressed:f?.props?.modelValue,size:this.size,type:k,wide:this.wide,variant:this.variant||(b?"secondary":"tertiary"),onFocus:this.onFocus,onBlur:this.onBlur,"onUpdate:pressed":f?.props?.["onUpdate:modelValue"]??(()=>{})}),{default:()=>b,icon:()=>g})},p=f=>{const v=iv(this.$slots.icon?.())?this.$slots.icon?.():this.defaultIcon?be("span",{class:["icon",this.defaultIcon]}):be(qC,{size:20}),g=`${this.randomId}-trigger`;return be(Nf,{ref:"popover",delay:0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,autoBoundaryMaxSize:!0,container:this.container,...this.manualOpen&&{triggers:[]},noCloseOnClickOutside:this.manualOpen,popoverBaseClass:"action-item__popper",popupRole:this.config.popupRole,setReturnFocus:this.config.withFocusTrap?this.$refs.triggerButton?.$el:void 0,noFocusTrap:!this.config.withFocusTrap,"onUpdate:shown":this.toggleMenu,onAfterShow:this.onOpened,onAfterHide:this.onClosed},{trigger:()=>be(Se,{id:g,class:"action-item__menutoggle",disabled:this.disabled,size:this.size,variant:this.triggerButtonVariant,wide:this.wide,ref:"triggerButton","aria-label":this.menuName?null:this.ariaLabel,"aria-controls":this.opened&&this.config.popupRole?this.randomId:null,onFocus:this.onFocus,onBlur:this.onBlur,onClick:this.onClick,onKeydown:this.onTriggerKeydown},{icon:()=>v,default:()=>this.menuName}),default:()=>be("div",{class:{open:this.opened},tabindex:"-1",onKeydown:this.onKeydown,ref:"menu"},[be("ul",{id:this.randomId,tabindex:"-1",ref:"menuList",role:this.config.popupRole,"aria-labelledby":g,"aria-modal":this.actionsMenuSemanticType==="dialog"?"true":void 0},[f])])})};return t.length===1&&n.length===1&&!this.forceMenu?d(t[0]):(this.$nextTick(()=>{this.opened&&this.$refs.menu&&(this.$refs.menu.querySelector("li.active")||[]).length===0&&this.focusFirstAction()}),i.length>0&&this.inline>0?be("div",{class:["action-items",`action-item--${this.triggerButtonVariant}`]},[...i.map(d),o.length>0?be("div",{class:["action-item",{"action-item--open":this.opened}]},[p(o)]):null]):be("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerButtonVariant}`,{"action-item--open":this.opened,"action-item--wide":this.wide}]},[p(t)]))}},ZC=pe(YC,[["__scopeId","data-v-7206c1f1"]]),QC=/mac|ipad|iphone|darwin/i.test(navigator.userAgent),MC=window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),t3=/^[a-zA-Z0-9]$/,e3=/^[^\x20-\x7F]$/;function n3(t,e){return!(t.target instanceof HTMLElement)||t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement||t.target instanceof HTMLSelectElement||t.target.isContentEditable?!0:e.allowInModal?!1:Array.from(document.getElementsByClassName("modal-mask")).filter(n=>n.checkVisibility()).length>0}function Lf(t,e){return n=>{if((QC?n.metaKey:n.ctrlKey)===!!e.ctrl){if(n.altKey!==!!e.alt||e.shift!==void 0&&n.shiftKey!==!!e.shift||n3(n,e))return;e.prevent&&n.preventDefault(),e.stop&&n.stopPropagation(),t(n)}}}function Ff(t,e=()=>{},n={}){if(MC)return()=>{};const i=(a,l)=>{if(a.key===l)return!0;if(n.caseSensitive){const c=l===l.toLowerCase(),u=a.key===a.key.toLowerCase();if(c!==u)return!1}return t3.test(l)&&e3.test(a.key)?a.code.replace(/^(?:Key|Digit|Numpad)/,"")===l.toUpperCase():a.key.toLowerCase()===l.toLowerCase()},o=a=>typeof t=="function"?t(a):typeof t=="string"?i(a,t):Array.isArray(t)?t.some(l=>i(a,l)):!0,s=Zp(o,Lf(e,n),{eventName:"keydown",dedupe:!0,passive:!n.prevent}),r=n.push?Zp(o,Lf(e,n),{eventName:"keyup",passive:!n.prevent}):()=>{};return()=>{s(),r()}}function i3(t=document.body){const e=window.getComputedStyle(t).getPropertyValue("--background-invert-if-dark");return e!==void 0?e==="invert(100%)":!1}i3();const o3=Rt(ov());window.addEventListener("resize",()=>{o3.value=ov()});function ov(){return window.outerHeight===window.screen.height}const Kd=1024,sv=Kd/2,Tl=t=>document.documentElement.clientWidth{s3.value=Tl(Kd),r3.value=Tl(sv)},{passive:!0});function Vf(t){return!t.parent||"vapor"in t||"vapor"in t.parent||t.parent.subTree!==t.vnode?null:t.parent}function a3(t){const e=[t];let n=Vf(t);for(;n;)e.push(n),n=Vf(n);return e}function l3(){const t=li();if(!t)throw new Error("useScopeId must be called within a setup context");const e=a3(t).map(n=>n.vnode.scopeId).filter(Boolean);return Object.fromEntries(e.map(n=>[n,""]))}Go(l2,d2);const u3=["aria-labelledby","aria-describedby"],c3=["data-theme-light","data-theme-dark"],d3=["id"],h3={class:"icons-menu"},p3=["title"],f3=["id"],g3={class:"modal-container__content"},m3=Et({inheritAttrs:!1,__name:"NcModal",props:ii({name:{default:""},hasPrevious:{type:Boolean},hasNext:{type:Boolean},outTransition:{type:Boolean},enableSlideshow:{type:Boolean},slideshowDelay:{default:5e3},slideshowPaused:{type:Boolean},disableSwipe:{type:Boolean},spreadNavigation:{type:Boolean},size:{default:"normal"},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},dark:{type:Boolean},lightBackdrop:{type:Boolean},container:{default:"body"},closeButtonOutside:{type:Boolean},additionalTrapElements:{default:()=>[]},inlineActions:{default:0},labelId:{default:""},setReturnFocus:{default:void 0}},{show:{type:Boolean,default:!0},showModifiers:{}}),emits:ii(["next","previous","close","update:show"],["update:show"]),setup(t,{emit:e}){au(Y=>({v56ab185f:b.value,v86f86e3a:v.value}));const n=Wo(t,"show"),i=t,o=e,s=l3(),r=oi(),a=Ar("mask");let l;Dn(()=>J()),ke(()=>i.additionalTrapElements,Y=>{l&&l.updateContainerElements([a.value,...Y])});const{isActive:c,pause:u,resume:d}=w2(D,So(()=>i.slideshowDelay),{immediate:!1}),p=Rt(0),f=Rt(!1);dm(()=>{f.value&&!i.slideshowPaused?d():c.value&&u()});const v=rt(()=>`${i.slideshowDelay}ms`),{stop:g}=D2(a,{onSwipeEnd:N});Dn(g),Ff("Escape",()=>{Rr().at(-1)===l&&j()},{allowInModal:!0}),Ff(["ArrowLeft","ArrowRight"],Y=>{document.activeElement&&!a.value.contains(document.activeElement)||(Y.key==="ArrowLeft"!==kl?k():D())},{allowInModal:!0});const w=ou(),b=rt(()=>{let Y=0;return i.hasNext&&i.enableSlideshow&&Y++,!i.noClose&&i.closeButtonOutside&&Y++,w.actions&&Y++,Y}),S=rt(()=>i.name.trim()!==""||b.value>0);Pi(()=>{!i.name&&i.labelId});function D(Y){if(!i.hasNext){f.value=!1;return}Y&&c.value&&F(),o("next",Y)}function k(Y){i.hasPrevious&&(Y&&c.value&&F(),o("previous",Y))}function N(Y,$){if(!i.disableSwipe){if($!=="left"&&$!=="right")return;$==="left"!==kl?D(Y):k(Y)}}function F(){u(),d(),p.value++}function j(Y){i.noClose||(n.value=!1,setTimeout(()=>{o("close",Y)},300))}function I(Y){i.closeOnClickOutside&&j(Y)}async function X(){if(l)return;await qr();const Y={allowOutsideClick:!0,fallbackFocus:a.value,trapStack:Rr(),escapeDeactivates:!1,setReturnFocus:i.setReturnFocus};l=k1([a.value,...i.additionalTrapElements],Y),l.activate()}function J(){l&&(l?.deactivate(),l=void 0)}return(Y,$)=>(C(),ct(e_,{disabled:t.container===null,to:t.container},[q(us,{name:"fade",appear:"",onAfterEnter:X,onBeforeLeave:J},{default:dt(()=>[Sn(y("div",Lt({...Y.$attrs,...E(s)},{ref:"mask",class:["modal-mask",{"modal-mask--opaque":t.dark||t.closeButtonOutside||t.hasPrevious||t.hasNext,"modal-mask--light":t.lightBackdrop}],role:"dialog","aria-modal":"true","aria-labelledby":t.labelId||`modal-name-${E(r)}`,"aria-describedby":"modal-description-"+E(r),tabindex:"-1"}),[q(us,{name:"fade-visibility",appear:""},{default:dt(()=>[S.value?(C(),R("div",{key:0,class:"modal-header","data-theme-light":t.lightBackdrop,"data-theme-dark":!t.lightBackdrop},[t.name.trim()!==""?(C(),R("h2",{key:0,id:"modal-name-"+E(r),class:"modal-header__name"},A(t.name),9,d3)):st("",!0),y("div",h3,[t.hasNext&&t.enableSlideshow?(C(),R("button",{key:0,class:Bt(["play-pause-icons",{"play-pause-icons--paused":t.slideshowPaused}]),title:E(c)?E(de)("Pause slideshow"):E(de)("Start slideshow"),type:"button",onClick:$[0]||($[0]=U=>f.value=!f.value)},[q(Pe,{class:"play-pause-icons__icon",inline:"",name:E(c)?E(de)("Pause slideshow"):E(de)("Start slideshow"),path:E(c)?E(Jx):E(Wx)},null,8,["name","path"]),E(c)?(C(),R("svg",{key:`${E(r)}-animation-${p.value}`,class:"progress-ring",height:"50",width:"50"},[...$[1]||($[1]=[y("circle",{class:"progress-ring__circle",stroke:"white","stroke-width":"2",fill:"transparent",r:"15",cx:"25",cy:"25"},null,-1)])])):st("",!0)],10,p3)):st("",!0),q(ZC,{class:"header-actions",inline:t.inlineActions},{default:dt(()=>[kt(Y.$slots,"actions",{},void 0,!0)]),_:3},8,["inline"]),!t.noClose&&t.closeButtonOutside?(C(),ct(Se,{key:1,"aria-label":E(de)("Close"),class:"header-close",variant:"tertiary",onClick:j},{icon:dt(()=>[q(Pe,{path:E(Yc)},null,8,["path"])]),_:1},8,["aria-label"])):st("",!0)])],8,c3)):st("",!0)]),_:3}),q(us,{name:`modal-${t.outTransition?"out":"in"}`,appear:""},{default:dt(()=>[Sn(y("div",{class:Bt(["modal-wrapper",[`modal-wrapper--${t.size}`,{"modal-wrapper--spread-navigation":t.spreadNavigation,"modal-wrapper--no-header":!S.value}]]),onMousedown:Ua(I,["self"])},[q(us,{name:"fade-visibility",appear:""},{default:dt(()=>[Sn(q(Se,{"aria-label":E(de)("Previous"),class:"prev",variant:"tertiary-no-background",onClick:k},{icon:dt(()=>[q(Pe,{directional:"",path:E(jx),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[Mn,t.hasPrevious]])]),_:1}),y("div",{id:"modal-description-"+E(r),class:"modal-container"},[y("div",g3,[kt(Y.$slots,"default",{},void 0,!0)]),!t.noClose&&!t.closeButtonOutside?(C(),ct(Se,{key:0,"aria-label":E(de)("Close"),class:"modal-container__close",variant:"tertiary",onClick:j},{icon:dt(()=>[q(Pe,{path:E(Yc)},null,8,["path"])]),_:1},8,["aria-label"])):st("",!0)],8,f3),q(us,{name:"fade-visibility",appear:""},{default:dt(()=>[Sn(q(Se,{"aria-label":E(de)("Next"),class:"next",variant:"tertiary-no-background",onClick:D},{icon:dt(()=>[q(Pe,{directional:"",path:E(Ux),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[Mn,t.hasNext]])]),_:1})],34),[[Mn,n.value]])]),_:3},8,["name"])],16,u3),[[Mn,n.value]])]),_:3})],8,["disabled","to"]))}}),v3=pe(m3,[["__scopeId","data-v-3aeb69e6"]]),y3=["id","textContent"],b3=["aria-label","aria-labelledby"],_3={class:"dialog__text"},w3={class:"dialog__actions"},x3=Et({__name:"NcDialog",props:ii({name:{},message:{default:""},additionalTrapElements:{default:()=>[]},container:{default:"body"},size:{default:"small"},buttons:{default:()=>[]},isForm:{type:Boolean},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},outTransition:{type:Boolean},navigationAriaLabel:{default:""},navigationAriaLabelledby:{default:""},contentClasses:{default:""},dialogClasses:{default:""},navigationClasses:{default:""}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:ii(["closing","reset","submit"],["update:open"]),setup(t,{emit:e}){const n=Wo(t,"open"),i=t,o=e,s=ou(),r=Ar("wrapper"),{width:a}=T2(r,{width:900,height:0}),l=rt(()=>a.value<876),c=rt(()=>s?.navigation!==void 0),u=oi(),d=rt(()=>i.navigationAriaLabel||void 0),p=rt(()=>{if(!i.navigationAriaLabel)return i.navigationAriaLabelledby||u}),f=Ar("dialogElement"),v=rt(()=>i.isForm&&!c.value?"form":"div"),g=rt(()=>v.value!=="form"?{}:{submit(N){N.preventDefault(),o("submit",N)},reset(N){N.preventDefault(),o("reset",N)}}),w=Rt(!0);function b(N,F){N.type==="submit"&&v.value==="form"&&"reportValidity"in f.value&&!f.value.reportValidity()||(S(F),window.setTimeout(()=>D(),300))}function S(N){w.value=!1,o("closing",N)}function D(){w.value=!0,n.value=!1}const k=rt(()=>({noClose:i.noClose,container:i.container===void 0?"body":i.container,labelId:u,size:i.size,show:n.value&&w.value,outTransition:i.outTransition,closeOnClickOutside:i.closeOnClickOutside,additionalTrapElements:i.additionalTrapElements}));return(N,F)=>n.value?(C(),ct(E(v3),Lt({key:0,class:"dialog__modal",disableSwipe:""},k.value,{onClose:D,"onUpdate:show":F[0]||(F[0]=j=>S())}),{default:dt(()=>[y("h2",{id:E(u),class:"dialog__name",textContent:A(t.name)},null,8,y3),(C(),ct(Po(v.value),Lt({ref:"dialogElement",class:["dialog",t.dialogClasses]},Sm(g.value)),{default:dt(()=>[y("div",{ref:"wrapper",class:Bt(["dialog__wrapper",[{"dialog__wrapper--collapsed":l.value}]])},[c.value?(C(),R("nav",{key:0,class:Bt(["dialog__navigation",t.navigationClasses]),"aria-label":d.value,"aria-labelledby":p.value},[kt(N.$slots,"navigation",{isCollapsed:l.value},void 0,!0)],10,b3)):st("",!0),y("div",{class:Bt(["dialog__content",t.contentClasses])},[kt(N.$slots,"default",{},()=>[y("p",_3,A(t.message),1)],!0)],2)],2),y("div",w3,[kt(N.$slots,"actions",{},()=>[(C(!0),R(yt,null,Fe(t.buttons,(j,I)=>(C(),ct(E(L2),Lt({key:I},{ref_for:!0},j,{onClick:(X,J)=>b(j,J)}),null,16,["onClick"]))),128))],!0)])]),_:3},16,["class"]))]),_:3},16)):st("",!0)}}),hu=pe(x3,[["__scopeId","data-v-24e91b99"]]),E3=["title"],C3=Et({__name:"JobStatusIndicator",props:{status:{},dotOnly:{type:Boolean}},setup(t){const e=t,n=rt(()=>{switch(e.status){case"SUCCEEDED":return O("serverinfo","Succeeded");case"FAILED":return O("serverinfo","Failed");case"CRASHED":return O("serverinfo","Crashed");default:return O("serverinfo","Running")}});return(i,o)=>(C(),R("span",{class:Bt(["job-status",`job-status--${t.status.toLowerCase()}`]),title:t.dotOnly?n.value:void 0},[o[0]||(o[0]=y("span",{class:"job-status__dot","aria-hidden":"true"},null,-1)),y("span",{class:Bt(t.dotOnly&&"hidden-visually")},A(n.value),3)],10,E3))}}),rv=Pt(C3,[["__scopeId","data-v-0e5a1326"]]);function av(t){return t.status==="fail"&&t.severity==="notice"?"hint":t.status}function Rn(t){if(!Number.isFinite(t)||t<0)return O("serverinfo","Unknown");const e=["MB","GB","TB","PB","EB"];let n=t,i=0;for(;n>=1024&&i=1024&&i(C(),ct(E(hu),{name:E(Dl)(t.run.className),size:"normal",onClosing:i[0]||(i[0]=o=>n.$emit("close"))},{default:dt(()=>[y("dl",S3,[y("dt",null,A(E(O)("serverinfo","Class")),1),y("dd",A3,A(t.run.className),1),y("dt",null,A(E(O)("serverinfo","Status")),1),y("dd",null,[q(rv,{status:t.run.status},null,8,["status"])]),y("dt",null,A(E(O)("serverinfo","Started")),1),y("dd",null,[q(E(lu),{timestamp:t.run.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),y("dt",null,A(E(O)("serverinfo","Duration")),1),y("dd",null,A(E(Ol)(t.run.duration)),1),y("dt",null,A(E(O)("serverinfo","Peak memory")),1),y("dd",null,A(E(Xd)(t.run.memoryPeak)),1),y("dt",null,A(E(O)("serverinfo","Run ID")),1),y("dd",null,A(t.run.runId),1),y("dt",null,A(E(O)("serverinfo","Server ID")),1),y("dd",null,A(t.run.serverId),1),y("dt",null,A(E(O)("serverinfo","Process ID")),1),y("dd",null,A(t.run.pid),1)])]),_:1},8,["name"]))}}),T3=Pt(k3,[["__scopeId","data-v-c21cb020"]]),D3={name:"InformationOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},O3=["aria-hidden","aria-label"],$3=["fill","width","height"],R3={d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"},B3={key:0};function P3(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon information-outline-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",R3,[n.title?(C(),R("title",B3,A(n.title),1)):st("",!0)])],8,$3))],16,O3)}const N3=Pt(D3,[["render",P3]]),L3={class:"server-info-table"},F3={class:"status-cell"},V3={class:"hidden-visually"},j3={class:"when-cell"},U3={class:"duration-cell"},I3={class:"memory-cell"},z3={class:"info-cell"},H3={class:"hidden-visually"},J3={class:"status-cell"},W3=["title"],G3={class:"info-cell"},K3=Et({__name:"JobRunsTable",props:{runs:{}},emits:["select"],setup(t){const e={dateStyle:"short",timeStyle:"medium"};function n(i){return O("serverinfo","Details about {job} from {time}",{job:Dl(i.className),time:new Date(i.startedAt*1e3).toLocaleString(l1(),e)})}return(i,o)=>(C(),R("div",L3,[y("table",null,[y("thead",null,[y("tr",null,[y("th",F3,[y("span",V3,A(E(O)("serverinfo","Status")),1)]),y("th",null,A(E(O)("serverinfo","Job")),1),y("th",j3,A(E(O)("serverinfo","When")),1),y("th",U3,A(E(O)("serverinfo","Duration")),1),y("th",I3,A(E(O)("serverinfo","Peak memory")),1),y("th",z3,[y("span",H3,A(E(O)("serverinfo","Details")),1)])])]),y("tbody",null,[(C(!0),R(yt,null,Fe(t.runs,s=>(C(),R("tr",{key:s.runId},[y("td",J3,[q(rv,{status:s.status,dotOnly:""},null,8,["status"])]),y("td",{title:s.className},A(E(Dl)(s.className)),9,W3),y("td",null,[q(E(lu),{timestamp:s.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),y("td",null,A(E(Ol)(s.duration)),1),y("td",null,A(E(Xd)(s.memoryPeak)),1),y("td",G3,[q(E(Se),{variant:"tertiary",size:"small","aria-label":n(s),title:n(s),onClick:r=>i.$emit("select",s)},{icon:dt(()=>[q(N3,{size:20})]),_:1},8,["aria-label","title","onClick"])])]))),128))])])]))}}),jf=Pt(K3,[["__scopeId","data-v-10f09a63"]]),q3={class:"section-heading"},X3=Et({__name:"SectionHeading",props:{icon:{},title:{}},setup(t){return(e,n)=>(C(),R("h2",q3,[(C(),ct(Po(t.icon),{class:"icon",size:20})),bt(" "+A(t.title),1)]))}}),Ge=Pt(X3,[["__scopeId","data-v-0eb9e63c"]]),Y3={class:"server-info-table"},Z3={class:"job-cell"},Q3={class:"count-cell"},M3={class:"count-cell"},tS={class:"count-cell"},eS={class:"memory-cell"},nS=["title"],iS={class:"count-cell"},oS={class:"count-cell"},sS={class:"count-cell"},rS={class:"memory-cell"},aS=Et({__name:"SlowJobsTable",props:{jobs:{}},setup(t){return(e,n)=>(C(),R("div",Y3,[y("table",null,[y("thead",null,[y("tr",null,[y("th",Z3,A(E(O)("serverinfo","Job")),1),y("th",Q3,A(E(O)("serverinfo","Runs")),1),y("th",M3,A(E(O)("serverinfo","Average")),1),y("th",tS,A(E(O)("serverinfo","Longest")),1),y("th",eS,A(E(O)("serverinfo","Peak memory")),1)])]),y("tbody",null,[(C(!0),R(yt,null,Fe(t.jobs,i=>(C(),R("tr",{key:i.className},[y("td",{class:"job-cell",title:i.className},A(E(Dl)(i.className)),9,nS),y("td",iS,A(i.runs),1),y("td",oS,A(E(Ol)(i.avgDuration)),1),y("td",sS,A(E(Ol)(i.maxDuration)),1),y("td",rS,A(E(Xd)(i.memoryPeak)),1)]))),128))])])]))}}),lS=Pt(aS,[["__scopeId","data-v-452808c1"]]),uS={class:"stat-tile"},cS={class:"stat-tile__label"},dS={key:0,class:"hidden-visually"},hS=Et({__name:"StatTile",props:{label:{},value:{},status:{}},setup(t){const e=t,n=rt(()=>{switch(e.status){case"warning":return O("serverinfo","Warning");case"critical":return O("serverinfo","Critical");default:return""}});return(i,o)=>(C(),R("div",uS,[y("div",cS,A(t.label),1),y("div",{class:Bt(["stat-tile__value",t.status&&`stat-tile__value--${t.status}`])},[kt(i.$slots,"default",{},()=>[bt(A(t.value),1)],!0),n.value?(C(),R("span",dS,A(n.value),1)):st("",!0)],2)]))}}),De=Pt(hS,[["__scopeId","data-v-4a64fa3b"]]),pS={class:"section background-jobs"},fS={class:"row row--tiles"},gS=Et({__name:"BackgroundJobsSection",props:{cron:{},jobs:{}},setup(t){const e=t,n=Rt(null);function i(a){n.value={...a}}const o=rt(()=>e.cron.lastRun>0?Math.max(0,e.cron.now-e.cron.lastRun):-1),s=rt(()=>{const a=o.value;return a<0?"critical":e.cron.mode==="cron"?a>3600?"critical":a>900?"warning":"ok":a>7200?"critical":a>3600?"warning":"ok"}),r=rt(()=>{switch(e.cron.mode){case"cron":return O("serverinfo","System cron");case"webcron":return O("serverinfo","Webcron");default:return O("serverinfo","AJAX (not recommended)")}});return(a,l)=>(C(),R("div",pS,[q(Ge,{icon:v1,title:E(O)("serverinfo","Background jobs")},null,8,["title"]),y("div",fS,[q(De,{label:E(O)("serverinfo","Mode"),value:r.value,status:t.cron.mode==="ajax"?"warning":void 0},null,8,["label","value","status"]),q(De,{label:E(O)("serverinfo","Last run"),status:s.value},{default:dt(()=>[t.cron.lastRun>0?(C(),ct(E(lu),{key:0,timestamp:t.cron.lastRun*1e3},null,8,["timestamp"])):(C(),R(yt,{key:1},[bt(A(E(O)("serverinfo","Never")),1)],64))]),_:1},8,["label","status"])]),y("h3",null,A(E(fl)("serverinfo","Latest failures (last %n day)","Latest failures (last %n days)",t.jobs.retentionDays)),1),t.jobs.failures.length===0?(C(),ct(E(Si),{key:0,type:"success"},{default:dt(()=>[bt(A(E(fl)("serverinfo","No background job failed in the last %n day.","No background job failed in the last %n days.",t.jobs.retentionDays)),1)]),_:1})):(C(),ct(jf,{key:1,runs:t.jobs.failures,onSelect:i},null,8,["runs"])),y("h3",null,A(E(O)("serverinfo","Latest runs")),1),t.jobs.recent.length===0?(C(),ct(E(Si),{key:2,type:"info"},{default:dt(()=>[bt(A(E(O)("serverinfo","No background job has run yet.")),1)]),_:1})):(C(),ct(jf,{key:3,runs:t.jobs.recent,onSelect:i},null,8,["runs"])),y("h3",null,A(E(O)("serverinfo","Slowest jobs")),1),t.jobs.slowest.length===0?(C(),ct(E(Si),{key:4,type:"info"},{default:dt(()=>[bt(A(E(O)("serverinfo","The slow jobs statistics are not available yet. They are collected by a background job and appear after its next run.")),1)]),_:1})):(C(),ct(lS,{key:5,jobs:t.jobs.slowest},null,8,["jobs"])),n.value?(C(),ct(T3,{key:6,run:n.value,onClose:l[0]||(l[0]=c=>n.value=null)},null,8,["run"])):st("",!0)]))}}),mS=Pt(gS,[["__scopeId","data-v-612ee243"]]),vS={},yS={class:"section section-skeleton","aria-busy":"true"};function bS(t,e){return C(),R("div",yS,[...e[0]||(e[0]=[y("div",{class:"skeleton-bar skeleton-title"},null,-1),y("div",{class:"skeleton-bar skeleton-chart"},null,-1)])])}const Ye=Pt(vS,[["render",bS],["__scopeId","data-v-9a2b13f0"]]),_S={class:"background-jobs-view"},wS=Et({__name:"BackgroundJobsView",props:{periodicData:{}},setup(t){return(e,n)=>(C(),R("div",_S,[t.periodicData?(C(),ct(mS,{key:0,cron:t.periodicData.cron,jobs:t.periodicData.backgroundJobs},null,8,["cron","jobs"])):(C(),ct(Ye,{key:1}))]))}});function lv(t,e){return function(){return t.apply(e,arguments)}}const{toString:xS}=Object.prototype,{getPrototypeOf:Cs}=Object,{iterator:Qr,toStringTag:uv}=Symbol,$l=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),Lr=(t,e)=>{let n=t;const i=[];for(;n!=null&&n!==Object.prototype;){if(i.indexOf(n)!==-1)return!1;if(i.push(n),$l(n,e))return!0;n=Cs(n)}return!1},ES=(t,e)=>t!=null&&Lr(t,e)?t[e]:void 0,Yd=(t=>e=>{const n=xS.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Vn=t=>(t=t.toLowerCase(),e=>Yd(e)===t),fu=t=>e=>typeof e===t,{isArray:Uo}=Array,Ss=fu("undefined");function $s(t){return t!==null&&!Ss(t)&&t.constructor!==null&&!Ss(t.constructor)&&an(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const cv=Vn("ArrayBuffer");function CS(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&cv(t.buffer),e}const SS=fu("string"),an=fu("function"),dv=fu("number"),Rs=t=>t!==null&&typeof t=="object",AS=t=>t===!0||t===!1,qa=t=>{if(!Rs(t))return!1;const e=Cs(t);return(e===null||e===Object.prototype||Cs(e)===null)&&!Lr(t,uv)&&!Lr(t,Qr)},kS=t=>{if(!Rs(t)||$s(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},TS=Vn("Date"),DS=Vn("File"),OS=t=>!!(t&&typeof t.uri<"u"),$S=t=>t&&typeof t.getParts<"u",RS=Vn("Blob"),BS=Vn("FileList"),PS=t=>Rs(t)&&an(t.pipe);function NS(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof _r<"u"?_r:{}}const Uf=NS(),If=typeof Uf.FormData<"u"?Uf.FormData:void 0,LS=t=>{if(!t)return!1;if(If&&t instanceof If)return!0;const e=Cs(t);if(!e||e===Object.prototype||!an(t.append))return!1;const n=Yd(t);return n==="formdata"||n==="object"&&an(t.toString)&&t.toString()==="[object FormData]"},FS=Vn("URLSearchParams"),[VS,jS,US,IS]=["ReadableStream","Request","Response","Headers"].map(Vn),zS=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Mr(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let i,o;if(typeof t!="object"&&(t=[t]),Uo(t))for(i=0,o=t.length;i0;)if(o=n[i],e===o.toLowerCase())return o;return null}const To=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:_r,pv=t=>!Ss(t)&&t!==To;function dd(...t){const{caseless:e,skipUndefined:n}=pv(this)&&this||{},i={},o=(s,r)=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;const a=e&&typeof r=="string"&&hv(i,r)||r,l=$l(i,a)?i[a]:void 0;qa(l)&&qa(s)?i[a]=dd(l,s):qa(s)?i[a]=dd({},s):Uo(s)?i[a]=s.slice():(!n||!Ss(s))&&(i[a]=s)};for(let s=0,r=t.length;s(Mr(e,(o,s)=>{n&&an(o)?Object.defineProperty(t,s,{__proto__:null,value:lv(o,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,s,{__proto__:null,value:o,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:i}),t),JS=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),WS=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),n&&Object.assign(t.prototype,n)},GS=(t,e,n,i)=>{let o,s,r;const a={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),s=o.length;s-- >0;)r=o[s],(!i||i(r,t,e))&&!a[r]&&(e[r]=t[r],a[r]=!0);t=n!==!1&&Cs(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},KS=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const i=t.indexOf(e,n);return i!==-1&&i===n},qS=t=>{if(!t)return null;if(Uo(t))return t;let e=t.length;if(!dv(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},XS=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&Cs(Uint8Array)),YS=(t,e)=>{const n=(t&&t[Qr]).call(t);let i;for(;(i=n.next())&&!i.done;){const o=i.value;e.call(t,o[0],o[1])}},ZS=(t,e)=>{let n;const i=[];for(;(n=t.exec(e))!==null;)i.push(n);return i},QS=Vn("HTMLFormElement"),MS=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,n,i){return n.toUpperCase()+i}),{propertyIsEnumerable:tA}=Object.prototype,eA=Vn("RegExp"),fv=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),i={};Mr(n,(o,s)=>{let r;(r=e(o,s,t))!==!1&&(i[s]=r||o)}),Object.defineProperties(t,i)},nA=t=>{fv(t,(e,n)=>{if(an(t)&&["arguments","caller","callee"].includes(n))return!1;const i=t[n];if(an(i)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},iA=(t,e)=>{const n={},i=o=>{o.forEach(s=>{n[s]=!0})};return Uo(t)?i(t):i(String(t).split(e)),n},oA=()=>{},sA=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function rA(t){return!!(t&&an(t.append)&&t[uv]==="FormData"&&t[Qr])}const aA=t=>{const e=new WeakSet,n=i=>{if(Rs(i)){if(e.has(i))return;if($s(i))return i;if(!("toJSON"in i)){e.add(i);const o=Uo(i)?[]:{};return Mr(i,(s,r)=>{const a=n(s);!Ss(a)&&(o[r]=a)}),e.delete(i),o}}return i};return n(t)},lA=Vn("AsyncFunction"),uA=t=>t&&(Rs(t)||an(t))&&an(t.then)&&an(t.catch),gv=((t,e)=>t?setImmediate:e?((n,i)=>(To.addEventListener("message",({source:o,data:s})=>{o===To&&s===n&&i.length&&i.shift()()},!1),o=>{i.push(o),To.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",an(To.postMessage)),cA=typeof queueMicrotask<"u"?queueMicrotask.bind(To):typeof ud<"u"&&ud.nextTick||gv,mv=t=>t!=null&&an(t[Qr]),dA=t=>t!=null&&Lr(t,Qr)&&mv(t),L={isArray:Uo,isArrayBuffer:cv,isBuffer:$s,isFormData:LS,isArrayBufferView:CS,isString:SS,isNumber:dv,isBoolean:AS,isObject:Rs,isPlainObject:qa,isEmptyObject:kS,isReadableStream:VS,isRequest:jS,isResponse:US,isHeaders:IS,isUndefined:Ss,isDate:TS,isFile:DS,isReactNativeBlob:OS,isReactNative:$S,isBlob:RS,isRegExp:eA,isFunction:an,isStream:PS,isURLSearchParams:FS,isTypedArray:XS,isFileList:BS,forEach:Mr,merge:dd,extend:HS,trim:zS,stripBOM:JS,inherits:WS,toFlatObject:GS,kindOf:Yd,kindOfTest:Vn,endsWith:KS,toArray:qS,forEachEntry:YS,matchAll:ZS,isHTMLForm:QS,hasOwnProperty:$l,hasOwnProp:$l,hasOwnInPrototypeChain:Lr,getSafeProp:ES,reduceDescriptors:fv,freezeMethods:nA,toObjectSet:iA,toCamelCase:MS,noop:oA,toFiniteNumber:sA,findKey:hv,global:To,isContextDefined:pv,isSpecCompliantForm:rA,toJSONObject:aA,isAsyncFn:lA,isThenable:uA,setImmediate:gv,asap:cA,isIterable:mv,isSafeIterable:dA},hA=L.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),pA=t=>{const e={};let n,i,o;return t&&t.split(` +`).forEach(function(s){o=s.indexOf(":"),n=s.substring(0,o).trim().toLowerCase(),i=s.substring(o+1).trim(),!(!n||e[n]&&hA[n])&&(n==="set-cookie"?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)}),e};function fA(t){let e=0,n=t.length;for(;ee;){const i=t.charCodeAt(n-1);if(i!==9&&i!==32)break;n-=1}return e===0&&n===t.length?t:t.slice(e,n)}const gA=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),mA=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function Zd(t,e){return L.isArray(t)?t.map(n=>Zd(n,e)):fA(String(t).replace(e,""))}const vA=t=>Zd(t,gA),yA=t=>Zd(t,mA);function vv(t){const e=Object.create(null);return L.forEach(t.toJSON(),(n,i)=>{e[i]=yA(n)}),e}const zf=Symbol("internals");function Ks(t){return t&&String(t).trim().toLowerCase()}function Xa(t){return t===!1||t==null?t:L.isArray(t)?t.map(Xa):vA(String(t))}function bA(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=n.exec(t);)e[i[1]]=i[2];return e}const _A=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function fc(t,e,n,i,o){if(L.isFunction(i))return i.call(this,e,n);if(o&&(e=n),!!L.isString(e)){if(L.isString(i))return e.indexOf(i)!==-1;if(L.isRegExp(i))return i.test(e)}}function wA(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,i)=>n.toUpperCase()+i)}function xA(t,e){const n=L.toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+n,{__proto__:null,value:function(o,s,r){return this[i].call(this,e,o,s,r)},configurable:!0})})}let We=class{constructor(t){t&&this.set(t)}set(t,e,n){const i=this;function o(r,a,l){const c=Ks(a);if(!c)return;const u=L.findKey(i,c);(!u||i[u]===void 0||l===!0||l===void 0&&i[u]!==!1)&&(i[u||a]=Xa(r))}const s=(r,a)=>L.forEach(r,(l,c)=>o(l,c,a));if(L.isPlainObject(t)||t instanceof this.constructor)s(t,e);else if(L.isString(t)&&(t=t.trim())&&!_A(t))s(pA(t),e);else if(L.isObject(t)&&L.isSafeIterable(t)){let r=Object.create(null),a,l;for(const c of t){if(!L.isArray(c))throw new TypeError("Object iterator must return a key-value pair");l=c[0],L.hasOwnProp(r,l)?(a=r[l],r[l]=L.isArray(a)?[...a,c[1]]:[a,c[1]]):r[l]=c[1]}s(r,e)}else t!=null&&o(e,t,n);return this}get(t,e){if(t=Ks(t),t){const n=L.findKey(this,t);if(n){const i=this[n];if(!e)return i;if(e===!0)return bA(i);if(L.isFunction(e))return e.call(this,i,n);if(L.isRegExp(e))return e.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=Ks(t),t){const n=L.findKey(this,t);return!!(n&&this[n]!==void 0&&(!e||fc(this,this[n],n,e)))}return!1}delete(t,e){const n=this;let i=!1;function o(s){if(s=Ks(s),s){const r=L.findKey(n,s);r&&(!e||fc(n,n[r],r,e))&&(delete n[r],i=!0)}}return L.isArray(t)?t.forEach(o):o(t),i}clear(t){const e=Object.keys(this);let n=e.length,i=!1;for(;n--;){const o=e[n];(!t||fc(this,this[o],o,t,!0))&&(delete this[o],i=!0)}return i}normalize(t){const e=this,n={};return L.forEach(this,(i,o)=>{const s=L.findKey(n,o);if(s){e[s]=Xa(i),delete e[o];return}const r=t?wA(o):String(o).trim();r!==o&&delete e[o],e[r]=Xa(i),n[r]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return L.forEach(this,(n,i)=>{n!=null&&n!==!1&&(e[i]=t&&L.isArray(n)?n.join(", "):n)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,e])=>t+": "+e).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach(i=>n.set(i)),n}static accessor(t){const e=(this[zf]=this[zf]={accessors:{}}).accessors,n=this.prototype;function i(o){const s=Ks(o);e[s]||(xA(n,o),e[s]=!0)}return L.isArray(t)?t.forEach(i):i(t),this}};We.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),L.reduceDescriptors(We.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(i){this[n]=i}}}),L.freezeMethods(We);const EA="[REDACTED ****]";function CA(t){if(L.hasOwnProp(t,"toJSON"))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Object.prototype;){if(L.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function SA(t,e){const n=new Set(e.map(s=>String(s).toLowerCase())),i=[],o=s=>{if(s===null||typeof s!="object"||L.isBuffer(s))return s;if(i.indexOf(s)!==-1)return;s instanceof We&&(s=s.toJSON()),i.push(s);let r;if(L.isArray(s))r=[],s.forEach((a,l)=>{const c=o(a);L.isUndefined(c)||(r[l]=c)});else{if(!L.isPlainObject(s)&&CA(s))return i.pop(),s;r=Object.create(null);for(const[a,l]of Object.entries(s)){const c=n.has(a.toLowerCase())?EA:o(l);L.isUndefined(c)||(r[a]=c)}}return i.pop(),r};return o(t)}let gt=class yv extends Error{static from(e,n,i,o,s,r){const a=new yv(e.message,n||e.code,i,o,s);return Object.defineProperty(a,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),a.name=e.name,e.status!=null&&a.status==null&&(a.status=e.status),r&&Object.assign(a,r),a}constructor(e,n,i,o,s){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),i&&(this.config=i),o&&(this.request=o),s&&(this.response=s,this.status=s.status)}toJSON(){const e=this.config,n=e&&L.hasOwnProp(e,"redact")?e.redact:void 0,i=L.isArray(n)&&n.length>0?SA(e,n):L.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:i,code:this.code,status:this.status}}};gt.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",gt.ERR_BAD_OPTION="ERR_BAD_OPTION",gt.ECONNABORTED="ECONNABORTED",gt.ETIMEDOUT="ETIMEDOUT",gt.ECONNREFUSED="ECONNREFUSED",gt.ERR_NETWORK="ERR_NETWORK",gt.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",gt.ERR_DEPRECATED="ERR_DEPRECATED",gt.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",gt.ERR_BAD_REQUEST="ERR_BAD_REQUEST",gt.ERR_CANCELED="ERR_CANCELED",gt.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",gt.ERR_INVALID_URL="ERR_INVALID_URL",gt.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const AA=null,bv=100;function hd(t){return L.isPlainObject(t)||L.isArray(t)}function _v(t){return L.endsWith(t,"[]")?t.slice(0,-2):t}function gc(t,e,n){return t?t.concat(e).map(function(i,o){return i=_v(i),!n&&o?"["+i+"]":i}).join(n?".":""):e}function kA(t){return L.isArray(t)&&!t.some(hd)}const TA=L.toFlatObject(L,{},null,function(t){return/^is[A-Z]/.test(t)});function gu(t,e,n){if(!L.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=L.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,S){return!L.isUndefined(S[b])});const i=n.metaTokens,o=n.visitor||v,s=n.dots,r=n.indexes,a=n.Blob||typeof Blob<"u"&&Blob,l=n.maxDepth===void 0?bv:n.maxDepth,c=a&&L.isSpecCompliantForm(e),u=[];if(!L.isFunction(o))throw new TypeError("visitor must be a function");function d(b){if(b===null)return"";if(L.isDate(b))return b.toISOString();if(L.isBoolean(b))return b.toString();if(!c&&L.isBlob(b))throw new gt("Blob is not supported. Use a Buffer instead.");if(L.isArrayBuffer(b)||L.isTypedArray(b)){if(c&&typeof a=="function")return new a([b]);if(typeof Yp<"u")return Yp.from(b);throw new gt("Blob is not supported. Use a Buffer instead.",gt.ERR_NOT_SUPPORT)}return b}function p(b){if(b>l)throw new gt("Object is too deeply nested ("+b+" levels). Max depth: "+l,gt.ERR_FORM_DATA_DEPTH_EXCEEDED)}function f(b,S){if(l===1/0)return JSON.stringify(b);const D=[];return JSON.stringify(b,function(k,N){if(!L.isObject(N))return N;for(;D.length&&D[D.length-1]!==this;)D.pop();return D.push(N),p(S+D.length-1),N})}function v(b,S,D){let k=b;if(L.isReactNative(e)&&L.isReactNativeBlob(b))return e.append(gc(D,S,s),d(b)),!1;if(b&&!D&&typeof b=="object"){if(L.endsWith(S,"{}"))S=i?S:S.slice(0,-2),b=f(b,1);else if(L.isArray(b)&&kA(b)||(L.isFileList(b)||L.endsWith(S,"[]"))&&(k=L.toArray(b)))return S=_v(S),k.forEach(function(N,F){!(L.isUndefined(N)||N===null)&&e.append(r===!0?gc([S],F,s):r===null?S:S+"[]",d(N))}),!1}return hd(b)?!0:(e.append(gc(D,S,s),d(b)),!1)}const g=Object.assign(TA,{defaultVisitor:v,convertValue:d,isVisitable:hd});function w(b,S,D=0){if(!L.isUndefined(b)){if(p(D),u.indexOf(b)!==-1)throw new Error("Circular reference detected in "+S.join("."));u.push(b),L.forEach(b,function(k,N){(!(L.isUndefined(k)||k===null)&&o.call(e,k,L.isString(N)?N.trim():N,S,g))===!0&&w(k,S?S.concat(N):[N],D+1)}),u.pop()}}if(!L.isObject(t))throw new TypeError("data must be an object");return w(t),e}function Hf(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(n){return e[n]})}function Qd(t,e){this._pairs=[],t&&gu(t,this,e)}const Jf=Qd.prototype;Jf.append=function(t,e){this._pairs.push([t,e])},Jf.toString=function(t){const e=t?n=>t.call(this,n,Hf):Hf;return this._pairs.map(function(n){return e(n[0])+"="+e(n[1])},"").join("&")};function DA(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function wv(t,e,n){if(!e)return t;t=t||"";const i=L.isFunction(n)?{serialize:n}:n,o=L.getSafeProp(i,"encode")||DA,s=L.getSafeProp(i,"serialize");let r;if(s?r=s(e,i):r=L.isURLSearchParams(e)?e.toString():new Qd(e,i).toString(o),r){const a=t.indexOf("#");a!==-1&&(t=t.slice(0,a)),t+=(t.indexOf("?")===-1?"?":"&")+r}return t}class Wf{constructor(){this.handlers=[]}use(e,n,i){return this.handlers.push({fulfilled:e,rejected:n,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){L.forEach(this.handlers,function(n){n!==null&&e(n)})}}const Md={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},OA=typeof URLSearchParams<"u"?URLSearchParams:Qd,$A=typeof FormData<"u"?FormData:null,RA=typeof Blob<"u"?Blob:null,BA={isBrowser:!0,classes:{URLSearchParams:OA,FormData:$A,Blob:RA},protocols:["http","https","file","blob","url","data"]},th=typeof window<"u"&&typeof document<"u",pd=typeof navigator=="object"&&navigator||void 0,PA=th&&(!pd||["ReactNative","NativeScript","NS"].indexOf(pd.product)<0),NA=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",LA=th&&window.location.href||"http://localhost",FA=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:th,hasStandardBrowserEnv:PA,hasStandardBrowserWebWorkerEnv:NA,navigator:pd,origin:LA},Symbol.toStringTag,{value:"Module"})),Ne={...FA,...BA};function VA(t,e){return gu(t,new Ne.classes.URLSearchParams,{visitor:function(n,i,o,s){return Ne.isNode&&L.isBuffer(n)?(this.append(i,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...e})}const Gf=bv;function xv(t){if(t>Gf)throw new gt("FormData field is too deeply nested ("+t+" levels). Max depth: "+Gf,gt.ERR_FORM_DATA_DEPTH_EXCEEDED)}function jA(t){const e=[],n=/\w+|\[(\w*)]/g;let i;for(;(i=n.exec(t))!==null;)xv(e.length),e.push(i[0]==="[]"?"":i[1]||i[0]);return e}function UA(t){const e={},n=Object.keys(t);let i;const o=n.length;let s;for(i=0;i=n.length;return r=!r&&L.isArray(o)?o.length:r,l?(L.hasOwnProp(o,r)?o[r]=L.isArray(o[r])?o[r].concat(i):[o[r],i]:o[r]=i,!a):((!L.hasOwnProp(o,r)||!L.isObject(o[r]))&&(o[r]=[]),e(n,i,o[r],s)&&L.isArray(o[r])&&(o[r]=UA(o[r])),!a)}if(L.isFormData(t)&&L.isFunction(t.entries)){const n={};return L.forEachEntry(t,(i,o)=>{e(jA(i),o,n,0)}),n}return null}const os=(t,e)=>t!=null&&L.hasOwnProp(t,e)?t[e]:void 0;function IA(t,e,n){if(L.isString(t))try{return(e||JSON.parse)(t),L.trim(t)}catch(i){if(i.name!=="SyntaxError")throw i}return(n||JSON.stringify)(t)}const ta={transitional:Md,adapter:["xhr","http","fetch"],transformRequest:[function(t,e){const n=e.getContentType()||"",i=n.indexOf("application/json")>-1,o=L.isObject(t);if(o&&L.isHTMLForm(t)&&(t=new FormData(t)),L.isFormData(t))return i?JSON.stringify(Ev(t)):t;if(L.isArrayBuffer(t)||L.isBuffer(t)||L.isStream(t)||L.isFile(t)||L.isBlob(t)||L.isReadableStream(t))return t;if(L.isArrayBufferView(t))return t.buffer;if(L.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(o){const r=os(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return VA(t,r).toString();if((s=L.isFileList(t))||n.indexOf("multipart/form-data")>-1){const a=os(this,"env"),l=a&&a.FormData;return gu(s?{"files[]":t}:t,l&&new l,r)}}return o||i?(e.setContentType("application/json",!1),IA(t)):t}],transformResponse:[function(t){const e=os(this,"transitional")||ta.transitional,n=e&&e.forcedJSONParsing,i=os(this,"responseType"),o=i==="json";if(L.isResponse(t)||L.isReadableStream(t))return t;if(t&&L.isString(t)&&(n&&!i||o)){const s=!(e&&e.silentJSONParsing)&&o;try{return JSON.parse(t,os(this,"parseReviver"))}catch(r){if(s)throw r.name==="SyntaxError"?gt.from(r,gt.ERR_BAD_RESPONSE,this,null,os(this,"response")):r}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ne.classes.FormData,Blob:Ne.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};L.forEach(["delete","get","head","post","put","patch","query"],t=>{ta.headers[t]={}});function mc(t,e){const n=this||ta,i=e||n,o=We.from(i.headers);let s=i.data;return L.forEach(t,function(r){s=r.call(n,s,o.normalize(),e?e.status:void 0)}),o.normalize(),s}function Cv(t){return!!(t&&t.__CANCEL__)}let ea=class extends gt{constructor(t,e,n){super(t??"canceled",gt.ERR_CANCELED,e,n),this.name="CanceledError",this.__CANCEL__=!0}};function Sv(t,e,n){const i=n.config.validateStatus;!n.status||!i||i(n.status)?t(n):e(new gt("Request failed with status code "+n.status,n.status>=400&&n.status<500?gt.ERR_BAD_REQUEST:gt.ERR_BAD_RESPONSE,n.config,n.request,n))}function zA(t){const e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(t);return e&&e[1]||""}function HA(t,e){t=t||10;const n=new Array(t),i=new Array(t);let o=0,s=0,r;return e=e!==void 0?e:1e3,function(a){const l=Date.now(),c=i[s];r||(r=l),n[o]=a,i[o]=l;let u=s,d=0;for(;u!==o;)d+=n[u++],u=u%t;if(o=(o+1)%t,o===s&&(s=(s+1)%t),l-r{n=l,o=null,s&&(clearTimeout(s),s=null),t(...a)};return[(...a)=>{const l=Date.now(),c=l-n;c>=i?r(a,l):(o=a,s||(s=setTimeout(()=>{s=null,r(o)},i-c)))},()=>o&&r(o)]}const Rl=(t,e,n=3)=>{let i=0;const o=HA(50,250);return JA(s=>{if(!s||typeof s.loaded!="number")return;const r=s.loaded,a=s.lengthComputable?s.total:void 0,l=a!=null?Math.min(r,a):r,c=Math.max(0,l-i),u=o(c);i=Math.max(i,l);const d={loaded:l,total:a,progress:a?l/a:void 0,bytes:c,rate:u||void 0,estimated:u&&a?(a-l)/u:void 0,event:s,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(d)},n)},Kf=(t,e)=>{const n=t!=null;return[i=>e[0]({lengthComputable:n,total:t,loaded:i}),e[1]]},qf=t=>(...e)=>L.asap(()=>t(...e)),WA=Ne.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,Ne.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(Ne.origin),Ne.navigator&&/(msie|trident)/i.test(Ne.navigator.userAgent)):()=>!0,GA=Ne.hasStandardBrowserEnv?{write(t,e,n,i,o,s,r){if(typeof document>"u")return;const a=[`${t}=${encodeURIComponent(e)}`];L.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),L.isString(i)&&a.push(`path=${i}`),L.isString(o)&&a.push(`domain=${o}`),s===!0&&a.push("secure"),L.isString(r)&&a.push(`SameSite=${r}`),document.cookie=a.join("; ")},read(t){if(typeof document>"u")return null;const e=document.cookie.split(";");for(let n=0;nt instanceof We?{...t}:t;function Io(t,e){t=t||{},e=e||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function i(u,d,p,f){return L.isPlainObject(u)&&L.isPlainObject(d)?L.merge.call({caseless:f},u,d):L.isPlainObject(d)?L.merge({},d):L.isArray(d)?d.slice():d}function o(u,d,p,f){if(L.isUndefined(d)){if(!L.isUndefined(u))return i(void 0,u,p,f)}else return i(u,d,p,f)}function s(u,d){if(!L.isUndefined(d))return i(void 0,d)}function r(u,d){if(L.isUndefined(d)){if(!L.isUndefined(u))return i(void 0,u)}else return i(void 0,d)}function a(u){const d=L.hasOwnProp(e,"transitional")?e.transitional:void 0;if(!L.isUndefined(d))if(L.isPlainObject(d)){if(L.hasOwnProp(d,u))return d[u]}else return;const p=L.hasOwnProp(t,"transitional")?t.transitional:void 0;if(L.isPlainObject(p)&&L.hasOwnProp(p,u))return p[u]}function l(u,d,p){if(L.hasOwnProp(e,p))return i(u,d);if(L.hasOwnProp(t,p))return i(void 0,u)}const c={url:s,method:s,data:s,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,withXSRFToken:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,allowedSocketPaths:r,responseEncoding:r,validateStatus:l,headers:(u,d,p)=>o(Yf(u),Yf(d),p,!0)};return L.forEach(Object.keys({...t,...e}),function(u){if(u==="__proto__"||u==="constructor"||u==="prototype")return;const d=L.hasOwnProp(c,u)?c[u]:o,p=L.hasOwnProp(t,u)?t[u]:void 0,f=L.hasOwnProp(e,u)?e[u]:void 0,v=d(p,f,u);L.isUndefined(v)&&d!==l||(n[u]=v)}),L.hasOwnProp(e,"validateStatus")&&L.isUndefined(e.validateStatus)&&a("validateStatusUndefinedResolves")===!1&&(L.hasOwnProp(t,"validateStatus")?n.validateStatus=i(void 0,t.validateStatus):delete n.validateStatus),n}const MA=["content-type","content-length"];function tk(t,e,n){if(n!=="content-only"){t.set(e);return}Object.entries(e||{}).forEach(([i,o])=>{MA.includes(i.toLowerCase())&&t.set(i,o)})}const ek=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16)));function kv(t){const e=Io({},t),n=p=>L.hasOwnProp(e,p)?e[p]:void 0,i=n("data");let o=n("withXSRFToken");const s=n("xsrfHeaderName"),r=n("xsrfCookieName");let a=n("headers");const l=n("auth"),c=n("baseURL"),u=n("allowAbsoluteUrls"),d=n("url");if(e.headers=a=We.from(a),e.url=wv(Av(c,d,u,e),n("params"),n("paramsSerializer")),l){const p=L.getSafeProp(l,"username")||"",f=L.getSafeProp(l,"password")||"";try{a.set("Authorization","Basic "+btoa(p+":"+(f?ek(f):"")))}catch(v){throw gt.from(v,gt.ERR_BAD_OPTION_VALUE,t)}}if(L.isFormData(i)&&(Ne.hasStandardBrowserEnv||Ne.hasStandardBrowserWebWorkerEnv||L.isReactNative(i)?a.setContentType(void 0):L.isFunction(i.getHeaders)&&tk(a,i.getHeaders(),n("formDataHeaderPolicy"))),Ne.hasStandardBrowserEnv&&(L.isFunction(o)&&(o=o(e)),o===!0||o==null&&WA(e.url))){const p=s&&r&&GA.read(r);p&&a.set(s,p)}return e}const nk=typeof XMLHttpRequest<"u",ik=nk&&function(t){return new Promise(function(e,n){const i=kv(t);let o=i.data;const s=We.from(i.headers).normalize();let{responseType:r,onUploadProgress:a,onDownloadProgress:l}=i,c,u,d,p,f;function v(){p&&p(),f&&f(),i.cancelToken&&i.cancelToken.unsubscribe(c),i.signal&&i.signal.removeEventListener("abort",c)}let g=new XMLHttpRequest;g.open(i.method.toUpperCase(),i.url,!0),g.timeout=i.timeout;function w(){if(!g)return;const S=We.from("getAllResponseHeaders"in g&&g.getAllResponseHeaders()),D={data:!r||r==="text"||r==="json"?g.responseText:g.response,status:g.status,statusText:g.statusText,headers:S,config:t,request:g};Sv(function(k){e(k),v()},function(k){n(k),v()},D),g=null}"onloadend"in g?g.onloadend=w:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.startsWith("file:"))||setTimeout(w)},g.onabort=function(){g&&(n(new gt("Request aborted",gt.ECONNABORTED,t,g)),v(),g=null)},g.onerror=function(S){const D=S&&S.message?S.message:"Network Error",k=new gt(D,gt.ERR_NETWORK,t,g);k.event=S||null,n(k),v(),g=null},g.ontimeout=function(){let S=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const D=i.transitional||Md;i.timeoutErrorMessage&&(S=i.timeoutErrorMessage),n(new gt(S,D.clarifyTimeoutError?gt.ETIMEDOUT:gt.ECONNABORTED,t,g)),v(),g=null},o===void 0&&s.setContentType(null),"setRequestHeader"in g&&L.forEach(vv(s),function(S,D){g.setRequestHeader(D,S)}),L.isUndefined(i.withCredentials)||(g.withCredentials=!!i.withCredentials),r&&r!=="json"&&(g.responseType=i.responseType),l&&([d,f]=Rl(l,!0),g.addEventListener("progress",d)),a&&g.upload&&([u,p]=Rl(a),g.upload.addEventListener("progress",u),g.upload.addEventListener("loadend",p)),(i.cancelToken||i.signal)&&(c=S=>{g&&(n(!S||S.type?new ea(null,t,g):S),g.abort(),v(),g=null)},i.cancelToken&&i.cancelToken.subscribe(c),i.signal&&(i.signal.aborted?c():i.signal.addEventListener("abort",c)));const b=zA(i.url);if(b&&!Ne.protocols.includes(b)){n(new gt("Unsupported protocol "+b+":",gt.ERR_BAD_REQUEST,t)),v();return}g.send(o||null)})},ok=(t,e)=>{if(t=t?t.filter(Boolean):[],!e&&!t.length)return;const n=new AbortController;let i=!1;const o=function(l){if(!i){i=!0,r();const c=l instanceof Error?l:this.reason;n.abort(c instanceof gt?c:new ea(c instanceof Error?c.message:c))}};let s=e&&setTimeout(()=>{s=null,o(new gt(`timeout of ${e}ms exceeded`,gt.ETIMEDOUT))},e);const r=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(l=>{l.unsubscribe?l.unsubscribe(o):l.removeEventListener("abort",o)}),t=null)};t.forEach(l=>l.addEventListener("abort",o,{once:!0}));const{signal:a}=n;return a.unsubscribe=()=>L.asap(r),a},sk=function*(t,e){let n=t.byteLength;if(n{const o=rk(t,e);let s=0,r,a=l=>{r||(r=!0,i&&i(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await o.next();if(c){a(),l.close();return}let d=u.byteLength;if(n){let p=s+=d;n(p)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),o.return()}},{highWaterMark:2})},Bl=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,lk=(t,e,n)=>e+2d>=2&&i.charCodeAt(d-2)===37&&i.charCodeAt(d-1)===51&&(i.charCodeAt(d)===68||i.charCodeAt(d)===100);l>=0&&(i.charCodeAt(l)===61?(a++,l--):c(l)&&(a++,l-=3)),a===1&&l>=0&&(i.charCodeAt(l)===61||c(l))&&a++;const u=Math.floor(s/4)*3-(a||0);return u>0?u:0}let o=0;for(let s=0,r=i.length;s=55296&&a<=56319&&s+1=56320&&l<=57343?(o+=4,s++):o+=3}else o+=3}return o}const eh="1.18.1",Qf=64*1024,{isFunction:wa}=L,ck=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16))),Mf=t=>{if(!L.isString(t))return t;try{return decodeURIComponent(t)}catch{return t}},t0=(t,...e)=>{try{return!!t(...e)}catch{return!1}},dk=t=>{const e=t.indexOf("://");let n=t;return e!==-1&&(n=n.slice(e+3)),n.includes("@")||n.includes(":")},hk=t=>{const e=L.global!==void 0&&L.global!==null?L.global:globalThis,{ReadableStream:n,TextEncoder:i}=e;t=L.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},t);const{fetch:o,Request:s,Response:r}=t,a=o?wa(o):typeof fetch=="function",l=wa(s),c=wa(r);if(!a)return!1;const u=a&&wa(n),d=a&&(typeof i=="function"?(b=>S=>b.encode(S))(new i):async b=>new Uint8Array(await new s(b).arrayBuffer())),p=l&&u&&t0(()=>{let b=!1;const S=new s(Ne.origin,{body:new n,method:"POST",get duplex(){return b=!0,"half"}}),D=S.headers.has("Content-Type");return S.body!=null&&S.body.cancel(),b&&!D}),f=c&&u&&t0(()=>L.isReadableStream(new r("").body)),v={stream:f&&(b=>b.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(b=>{!v[b]&&(v[b]=(S,D)=>{let k=S&&S[b];if(k)return k.call(S);throw new gt(`Response type '${b}' is not supported`,gt.ERR_NOT_SUPPORT,D)})});const g=async b=>{if(b==null)return 0;if(L.isBlob(b))return b.size;if(L.isSpecCompliantForm(b))return(await new s(Ne.origin,{method:"POST",body:b}).arrayBuffer()).byteLength;if(L.isArrayBufferView(b)||L.isArrayBuffer(b))return b.byteLength;if(L.isURLSearchParams(b)&&(b=b+""),L.isString(b))return(await d(b)).byteLength},w=async(b,S)=>L.toFiniteNumber(b.getContentLength())??g(S);return async b=>{let{url:S,method:D,data:k,signal:N,cancelToken:F,timeout:j,onDownloadProgress:I,onUploadProgress:X,responseType:J,headers:Y,withCredentials:$="same-origin",fetchOptions:U,maxContentLength:M,maxBodyLength:nt}=kv(b);const et=L.isNumber(M)&&M>-1,ut=L.isNumber(nt)&&nt>-1,ht=Dt=>L.hasOwnProp(b,Dt)?b[Dt]:void 0;let mt=o||fetch;J=J?(J+"").toLowerCase():"text";let vt=ok([N,F&&F.toAbortSignal()],j),Tt=null;const Ft=vt&&vt.unsubscribe&&(()=>{vt.unsubscribe()});let Xt,Vt=null;const wt=()=>new gt("Request body larger than maxBodyLength limit",gt.ERR_BAD_REQUEST,b,Tt);try{let Dt;const oe=ht("auth");if(oe){const z=L.getSafeProp(oe,"username")||"",Q=L.getSafeProp(oe,"password")||"";Dt={username:z,password:Q}}if(dk(S)){const z=new URL(S,Ne.origin);if(!Dt&&(z.username||z.password)){const Q=Mf(z.username),at=Mf(z.password);Dt={username:Q,password:at}}(z.username||z.password)&&(z.username="",z.password="",S=z.href)}if(Dt&&(Y.delete("authorization"),Y.set("Authorization","Basic "+btoa(ck((Dt.username||"")+":"+(Dt.password||""))))),et&&typeof S=="string"&&S.startsWith("data:")&&uk(S)>M)throw new gt("maxContentLength size of "+M+" exceeded",gt.ERR_BAD_RESPONSE,b,Tt);if(ut&&D!=="get"&&D!=="head"){const z=await g(k);if(typeof z=="number"&&isFinite(z)&&(Xt=z,z>nt))throw wt()}const un=ut&&(L.isReadableStream(k)||L.isStream(k)),jn=(z,Q,at)=>Zf(z,Qf,ot=>{if(ut&&ot>nt)throw Vt=wt();Q&&Q(ot)},at);if(p&&D!=="get"&&D!=="head"&&(X||un)){if(Xt=Xt??await w(Y,k),Xt!==0||un){let z=new s(S,{method:"POST",body:k,duplex:"half"}),Q;if(L.isFormData(k)&&(Q=z.headers.get("content-type"))&&Y.setContentType(Q),z.body){const[at,ot]=X&&Kf(Xt,Rl(qf(X)))||[];k=jn(z.body,at,ot)}}}else if(un&&!l&&u&&D!=="get"&&D!=="head")k=jn(k);else if(un&&l&&!p&&D!=="get"&&D!=="head")throw new gt("Stream request bodies are not supported by the current fetch implementation",gt.ERR_NOT_SUPPORT,b,Tt);L.isString($)||($=$?"include":"omit");const On=l&&"credentials"in s.prototype;if(L.isFormData(k)){const z=Y.getContentType();z&&/^multipart\/form-data/i.test(z)&&!/boundary=/i.test(z)&&Y.delete("content-type")}Y.set("User-Agent","axios/"+eh,!1);const T={...U,signal:vt,method:D.toUpperCase(),headers:vv(Y.normalize()),body:k,duplex:"half",credentials:On?$:void 0};Tt=l&&new s(S,T);let P=await(l?mt(Tt,U):mt(S,T));const K=We.from(P.headers);if(et){const z=L.toFiniteNumber(K.getContentLength());if(z!=null&&z>M)throw new gt("maxContentLength size of "+M+" exceeded",gt.ERR_BAD_RESPONSE,b,Tt)}const it=f&&(J==="stream"||J==="response");if(f&&P.body&&(I||et||it&&Ft)){const z={};["status","statusText","headers"].forEach(pt=>{z[pt]=P[pt]});const Q=L.toFiniteNumber(K.getContentLength()),[at,ot]=I&&Kf(Q,Rl(qf(I),!0))||[];let tt=0;const _t=pt=>{if(et&&(tt=pt,tt>M))throw new gt("maxContentLength size of "+M+" exceeded",gt.ERR_BAD_RESPONSE,b,Tt);at&&at(pt)};P=new r(Zf(P.body,Qf,_t,()=>{ot&&ot(),Ft&&Ft()}),z)}J=J||"text";let W=await v[L.findKey(v,J)||"text"](P,b);if(et&&!f&&!it){let z;if(W!=null&&(typeof W.byteLength=="number"?z=W.byteLength:typeof W.size=="number"?z=W.size:typeof W=="string"&&(z=typeof i=="function"?new i().encode(W).byteLength:W.length)),typeof z=="number"&&z>M)throw new gt("maxContentLength size of "+M+" exceeded",gt.ERR_BAD_RESPONSE,b,Tt)}return!it&&Ft&&Ft(),await new Promise((z,Q)=>{Sv(z,Q,{data:W,headers:We.from(P.headers),status:P.status,statusText:P.statusText,config:b,request:Tt})})}catch(Dt){if(Ft&&Ft(),vt&&vt.aborted&&vt.reason instanceof gt){const oe=vt.reason;throw oe.config=b,Tt&&(oe.request=Tt),Dt!==oe&&Object.defineProperty(oe,"cause",{__proto__:null,value:Dt,writable:!0,enumerable:!1,configurable:!0}),oe}if(Vt)throw Tt&&!Vt.request&&(Vt.request=Tt),Vt;if(Dt instanceof gt)throw Tt&&!Dt.request&&(Dt.request=Tt),Dt;if(Dt&&Dt.name==="TypeError"&&/Load failed|fetch/i.test(Dt.message)){const oe=new gt("Network Error",gt.ERR_NETWORK,b,Tt,Dt&&Dt.response);throw Object.defineProperty(oe,"cause",{__proto__:null,value:Dt.cause||Dt,writable:!0,enumerable:!1,configurable:!0}),oe}throw gt.from(Dt,Dt&&Dt.code,b,Tt,Dt&&Dt.response)}}},pk=new Map,Tv=t=>{let e=t&&t.env||{};const{fetch:n,Request:i,Response:o}=e,s=[i,o,n];let r=s.length,a=r,l,c,u=pk;for(;a--;)l=s[a],c=u.get(l),c===void 0&&u.set(l,c=a?new Map:hk(e)),u=c;return c};Tv();const nh={http:AA,xhr:ik,fetch:{get:Tv}};L.forEach(nh,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:e})}});const e0=t=>`- ${t}`,fk=t=>L.isFunction(t)||t===null||t===!1;function gk(t,e){t=L.isArray(t)?t:[t];const{length:n}=t;let i,o;const s={};for(let r=0;r`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let a=n?r.length>1?`since : `+r.map(e0).join(` -`):" "+e0(r[0]):"as no adapter specified";throw new gt("There is no suitable adapter to dispatch the request "+a,gt.ERR_NOT_SUPPORT)}return o}const Tv={getAdapter:fk,adapters:nh};function vc(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new ea(null,t)}function n0(t){return vc(t),t.headers=Je.from(t.headers),t.data=mc.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Tv.getAdapter(t.adapter||ta.adapter,t)(t).then(function(e){vc(t),t.response=e;try{e.data=mc.call(t,t.transformResponse,e)}finally{delete t.response}return e.headers=Je.from(e.headers),e},function(e){if(!Ev(e)&&(vc(t),e&&e.response)){t.response=e.response;try{e.response.data=mc.call(t,t.transformResponse,e.response)}finally{delete t.response}e.response.headers=Je.from(e.response.headers)}return Promise.reject(e)})}const Pl={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{Pl[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const i0={};Pl.transitional=function(t,e,n){function i(o,s){return"[Axios v"+eh+"] Transitional option '"+o+"'"+s+(n?". "+n:"")}return(o,s,r)=>{if(t===!1)throw new gt(i(s," has been removed"+(e?" in "+e:"")),gt.ERR_DEPRECATED);return e&&!i0[s]&&(i0[s]=!0,console.warn(i(s," has been deprecated since v"+e+" and will be removed in the near future"))),t?t(o,s,r):!0}},Pl.spelling=function(t){return(e,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function gk(t,e,n){if(typeof t!="object"||t===null)throw new gt("options must be an object",gt.ERR_BAD_OPTION_VALUE);const i=Object.keys(t);let o=i.length;for(;o-- >0;){const s=i[o],r=Object.prototype.hasOwnProperty.call(e,s)?e[s]:void 0;if(r){const a=t[s],l=a===void 0||r(a,s,t);if(l!==!0)throw new gt("option "+s+" must be "+l,gt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new gt("Unknown option "+s,gt.ERR_BAD_OPTION)}}const Ya={assertOptions:gk,validators:Pl},je=Ya.validators;let Fo=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Jf,response:new Jf}}async request(t,e){try{return await this._request(t,e)}catch(n){if(n instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const o=(()=>{if(!i.stack)return"";const s=i.stack.indexOf(` +`):" "+e0(r[0]):"as no adapter specified";throw new gt("There is no suitable adapter to dispatch the request "+a,gt.ERR_NOT_SUPPORT)}return o}const Dv={getAdapter:gk,adapters:nh};function vc(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new ea(null,t)}function n0(t){return vc(t),t.headers=We.from(t.headers),t.data=mc.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Dv.getAdapter(t.adapter||ta.adapter,t)(t).then(function(e){vc(t),t.response=e;try{e.data=mc.call(t,t.transformResponse,e)}finally{delete t.response}return e.headers=We.from(e.headers),e},function(e){if(!Cv(e)&&(vc(t),e&&e.response)){t.response=e.response;try{e.response.data=mc.call(t,t.transformResponse,e.response)}finally{delete t.response}e.response.headers=We.from(e.response.headers)}return Promise.reject(e)})}const Pl={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{Pl[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const i0={};Pl.transitional=function(t,e,n){function i(o,s){return"[Axios v"+eh+"] Transitional option '"+o+"'"+s+(n?". "+n:"")}return(o,s,r)=>{if(t===!1)throw new gt(i(s," has been removed"+(e?" in "+e:"")),gt.ERR_DEPRECATED);return e&&!i0[s]&&(i0[s]=!0,console.warn(i(s," has been deprecated since v"+e+" and will be removed in the near future"))),t?t(o,s,r):!0}},Pl.spelling=function(t){return(e,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function mk(t,e,n){if(typeof t!="object"||t===null)throw new gt("options must be an object",gt.ERR_BAD_OPTION_VALUE);const i=Object.keys(t);let o=i.length;for(;o-- >0;){const s=i[o],r=Object.prototype.hasOwnProperty.call(e,s)?e[s]:void 0;if(r){const a=t[s],l=a===void 0||r(a,s,t);if(l!==!0)throw new gt("option "+s+" must be "+l,gt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new gt("Unknown option "+s,gt.ERR_BAD_OPTION)}}const Ya={assertOptions:mk,validators:Pl},je=Ya.validators;let Fo=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Wf,response:new Wf}}async request(t,e){try{return await this._request(t,e)}catch(n){if(n instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const o=(()=>{if(!i.stack)return"";const s=i.stack.indexOf(` `);return s===-1?"":i.stack.slice(s+1)})();try{if(!n.stack)n.stack=o;else if(o){const s=o.indexOf(` `),r=s===-1?-1:o.indexOf(` `,s+1),a=r===-1?"":o.slice(r+1);String(n.stack).endsWith(a)||(n.stack+=` -`+o)}}catch{}}throw n}}_request(t,e){typeof t=="string"?(e=e||{},e.url=t):e=t||{},e=Io(this.defaults,e);const{transitional:n,paramsSerializer:i,headers:o}=e;n!==void 0&&Ya.assertOptions(n,{silentJSONParsing:je.transitional(je.boolean),forcedJSONParsing:je.transitional(je.boolean),clarifyTimeoutError:je.transitional(je.boolean),legacyInterceptorReqResOrdering:je.transitional(je.boolean),advertiseZstdAcceptEncoding:je.transitional(je.boolean),validateStatusUndefinedResolves:je.transitional(je.boolean)},!1),i!=null&&(L.isFunction(i)?e.paramsSerializer={serialize:i}:Ya.assertOptions(i,{encode:je.function,serialize:je.function},!0)),e.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?e.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:e.allowAbsoluteUrls=!0),Ya.assertOptions(e,{baseUrl:je.spelling("baseURL"),withXsrfToken:je.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();let s=o&&L.merge(o.common,o[e.method]);o&&L.forEach(["delete","get","head","post","put","patch","query","common"],f=>{delete o[f]}),e.headers=Je.concat(s,o);const r=[];let a=!0;this.interceptors.request.forEach(function(f){if(typeof f.runWhen=="function"&&f.runWhen(e)===!1)return;a=a&&f.synchronous;const v=e.transitional||Md;v&&v.legacyInterceptorReqResOrdering?r.unshift(f.fulfilled,f.rejected):r.push(f.fulfilled,f.rejected)});const l=[];this.interceptors.response.forEach(function(f){l.push(f.fulfilled,f.rejected)});let c,u=0,d;if(!a){const f=[n0.bind(this),void 0];for(f.unshift(...r),f.push(...l),d=f.length,c=Promise.resolve(e);u{if(!i._listeners)return;let s=i._listeners.length;for(;s-- >0;)i._listeners[s](o);i._listeners=null}),this.promise.then=o=>{let s;const r=new Promise(a=>{i.subscribe(a),s=a}).then(o);return r.cancel=function(){i.unsubscribe(s)},r},e(function(o,s,r){i.reason||(i.reason=new ea(o,s,r),n(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=i=>{e.abort(i)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new Dv(function(n){e=n}),cancel:e}}};function vk(t){return function(e){return t.apply(null,e)}}function yk(t){return L.isObject(t)&&t.isAxiosError===!0}const fd={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(fd).forEach(([t,e])=>{fd[e]=t});function Ov(t){const e=new Fo(t),n=av(Fo.prototype.request,e);return L.extend(n,Fo.prototype,e,{allOwnKeys:!0}),L.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return Ov(Io(t,i))},n}const ce=Ov(ta);ce.Axios=Fo,ce.CanceledError=ea,ce.CancelToken=mk,ce.isCancel=Ev,ce.VERSION=eh,ce.toFormData=gu,ce.AxiosError=gt,ce.Cancel=ce.CanceledError,ce.all=function(t){return Promise.all(t)},ce.spread=vk,ce.isAxiosError=yk,ce.mergeConfig=Io,ce.AxiosHeaders=Je,ce.formToJSON=t=>xv(L.isHTMLForm(t)?new FormData(t):t),ce.getAdapter=Tv.getAdapter,ce.HttpStatusCode=fd,ce.default=ce;const{Axios:oF,AxiosError:sF,CanceledError:rF,isCancel:aF,CancelToken:lF,VERSION:uF,all:cF,Cancel:dF,isAxiosError:ih,spread:hF,toFormData:pF,AxiosHeaders:fF,HttpStatusCode:gF,formToJSON:mF,getAdapter:vF,mergeConfig:yF,create:bF}=ce;function bk(){const t=ce.create({headers:{requesttoken:EC()??"","X-Requested-With":"XMLHttpRequest"}});return SC(e=>{t.defaults.headers.requesttoken=e}),Object.assign(t,{CancelToken:ce.CancelToken,isCancel:ce.isCancel})}const o0="_nextcloudCsrfTokenReloaded";function _k(t){return async e=>{if(!ih(e))throw e;const{config:n,response:i,request:o}=e,s=o?.responseURL;if(n&&!(o0 in n)&&i?.status===412&&i?.data?.message==="CSRF check failed"){console.warn(`Request to ${s} failed because of a CSRF mismatch. Fetching a new token.`);const r=await CC();return t.defaults.headers.requesttoken=r,t({...n,[o0]:!0,headers:{...n.headers,requesttoken:r}})}throw e}}const s0="_nextcloudMaintenanceModeRetryDelay";function wk(t){return async e=>{if(!ih(e))throw e;const{config:n,response:i,request:o}=e,s=o?.responseURL,r=i?.status,a=i?.headers;let l=n?.[s0]??1;if(r===503&&a?.["x-nextcloud-maintenance-mode"]==="1"&&n?.retryIfMaintenanceMode){if(l*=2,l>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:s}),e;return console.warn(`Request to ${s} failed because of maintenance mode. Retrying in ${l}s`),await new Promise(c=>{setTimeout(c,l*1e3)}),t({...n,[s0]:l})}throw e}}async function xk(t){if(ih(t)){const{config:e,response:n,request:i}=t,o=i?.responseURL;n?.status===401&&n?.data?.message==="Current user is not logged in"&&e?.reloadExpiredSession&&globalThis.location?.reload&&(console.error(`Request to ${o} failed because the user session expired. Reloading the page …`),globalThis.OC?.reload?globalThis.OC.reload():globalThis.location.reload())}throw t}const Cn=bk();Cn.interceptors.response.use(t=>t,_k(Cn)),Cn.interceptors.response.use(t=>t,wk(Cn)),Cn.interceptors.response.use(t=>t,xk);const Ek={name:"CogIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ck=["aria-hidden","aria-label"],Sk=["fill","width","height"],Ak={d:"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z"},kk={key:0};function Tk(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon cog-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",Ak,[n.title?(C(),R("title",kk,A(n.title),1)):st("",!0)])],8,Sk))],16,Ck)}const Dk=Pt(Ek,[["render",Tk]]);function na(t){return t+.5|0}const Hi=(t,e,n)=>Math.max(Math.min(t,n),e);function ir(t){return Hi(na(t*2.55),0,255)}function Yi(t){return Hi(na(t*255),0,255)}function vi(t){return Hi(na(t/2.55)/100,0,1)}function r0(t){return Hi(na(t*100),0,100)}const yn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},gd=[..."0123456789ABCDEF"],Ok=t=>gd[t&15],$k=t=>gd[(t&240)>>4]+gd[t&15],xa=t=>(t&240)>>4===(t&15),Rk=t=>xa(t.r)&&xa(t.g)&&xa(t.b)&&xa(t.a);function Bk(t){var e=t.length,n;return t[0]==="#"&&(e===4||e===5?n={r:255&yn[t[1]]*17,g:255&yn[t[2]]*17,b:255&yn[t[3]]*17,a:e===5?yn[t[4]]*17:255}:(e===7||e===9)&&(n={r:yn[t[1]]<<4|yn[t[2]],g:yn[t[3]]<<4|yn[t[4]],b:yn[t[5]]<<4|yn[t[6]],a:e===9?yn[t[7]]<<4|yn[t[8]]:255})),n}const Pk=(t,e)=>t<255?e(t):"";function Nk(t){var e=Rk(t)?Ok:$k;return t?"#"+e(t.r)+e(t.g)+e(t.b)+Pk(t.a,e):void 0}const Lk=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function $v(t,e,n){const i=e*Math.min(n,1-n),o=(s,r=(s+t/30)%12)=>n-i*Math.max(Math.min(r-3,9-r,1),-1);return[o(0),o(8),o(4)]}function Fk(t,e,n){const i=(o,s=(o+t/60)%6)=>n-n*e*Math.max(Math.min(s,4-s,1),0);return[i(5),i(3),i(1)]}function Vk(t,e,n){const i=$v(t,1,.5);let o;for(e+n>1&&(o=1/(e+n),e*=o,n*=o),o=0;o<3;o++)i[o]*=1-e-n,i[o]+=e;return i}function jk(t,e,n,i,o){return t===o?(e-n)/i+(e.5?c/(2-o-s):c/(o+s),a=jk(e,n,i,c,o),a=a*60+.5),[a|0,l||0,r]}function sh(t,e,n,i){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,n,i)).map(Yi)}function rh(t,e,n){return sh($v,t,e,n)}function Uk(t,e,n){return sh(Vk,t,e,n)}function Ik(t,e,n){return sh(Fk,t,e,n)}function Rv(t){return(t%360+360)%360}function zk(t){const e=Lk.exec(t);let n=255,i;if(!e)return;e[5]!==i&&(n=e[6]?ir(+e[5]):Yi(+e[5]));const o=Rv(+e[2]),s=+e[3]/100,r=+e[4]/100;return e[1]==="hwb"?i=Uk(o,s,r):e[1]==="hsv"?i=Ik(o,s,r):i=rh(o,s,r),{r:i[0],g:i[1],b:i[2],a:n}}function Hk(t,e){var n=oh(t);n[0]=Rv(n[0]+e),n=rh(n),t.r=n[0],t.g=n[1],t.b=n[2]}function Wk(t){if(!t)return;const e=oh(t),n=e[0],i=r0(e[1]),o=r0(e[2]);return t.a<255?`hsla(${n}, ${i}%, ${o}%, ${vi(t.a)})`:`hsl(${n}, ${i}%, ${o}%)`}const a0={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},l0={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function Jk(){const t={},e=Object.keys(l0),n=Object.keys(a0);let i,o,s,r,a;for(i=0;i>16&255,s>>8&255,s&255]}return t}let Ea;function Gk(t){Ea||(Ea=Jk(),Ea.transparent=[0,0,0,0]);const e=Ea[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const Kk=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function qk(t){const e=Kk.exec(t);let n=255,i,o,s;if(e){if(e[7]!==i){const r=+e[7];n=e[8]?ir(r):Hi(r*255,0,255)}return i=+e[1],o=+e[3],s=+e[5],i=255&(e[2]?ir(i):Hi(i,0,255)),o=255&(e[4]?ir(o):Hi(o,0,255)),s=255&(e[6]?ir(s):Hi(s,0,255)),{r:i,g:o,b:s,a:n}}}function Xk(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${vi(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}const yc=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,ss=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Yk(t,e,n){const i=ss(vi(t.r)),o=ss(vi(t.g)),s=ss(vi(t.b));return{r:Yi(yc(i+n*(ss(vi(e.r))-i))),g:Yi(yc(o+n*(ss(vi(e.g))-o))),b:Yi(yc(s+n*(ss(vi(e.b))-s))),a:t.a+n*(e.a-t.a)}}function Ca(t,e,n){if(t){let i=oh(t);i[e]=Math.max(0,Math.min(i[e]+i[e]*n,e===0?360:1)),i=rh(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function Bv(t,e){return t&&Object.assign(e||{},t)}function u0(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Yi(t[3]))):(e=Bv(t,{r:0,g:0,b:0,a:1}),e.a=Yi(e.a)),e}function Zk(t){return t.charAt(0)==="r"?qk(t):zk(t)}class Fr{constructor(e){if(e instanceof Fr)return e;const n=typeof e;let i;n==="object"?i=u0(e):n==="string"&&(i=Bk(e)||Gk(e)||Zk(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=Bv(this._rgb);return e&&(e.a=vi(e.a)),e}set rgb(e){this._rgb=u0(e)}rgbString(){return this._valid?Xk(this._rgb):void 0}hexString(){return this._valid?Nk(this._rgb):void 0}hslString(){return this._valid?Wk(this._rgb):void 0}mix(e,n){if(e){const i=this.rgb,o=e.rgb;let s;const r=n===s?.5:n,a=2*r-1,l=i.a-o.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;s=1-c,i.r=255&c*i.r+s*o.r+.5,i.g=255&c*i.g+s*o.g+.5,i.b=255&c*i.b+s*o.b+.5,i.a=r*i.a+(1-r)*o.a,this.rgb=i}return this}interpolate(e,n){return e&&(this._rgb=Yk(this._rgb,e._rgb,n)),this}clone(){return new Fr(this.rgb)}alpha(e){return this._rgb.a=Yi(e),this}clearer(e){const n=this._rgb;return n.a*=1-e,this}greyscale(){const e=this._rgb,n=na(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=n,this}opaquer(e){const n=this._rgb;return n.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return Ca(this._rgb,2,e),this}darken(e){return Ca(this._rgb,2,-e),this}saturate(e){return Ca(this._rgb,1,e),this}desaturate(e){return Ca(this._rgb,1,-e),this}rotate(e){return Hk(this._rgb,e),this}}function hi(){}const Qk=(()=>{let t=0;return()=>t++})();function re(t){return t==null}function Te(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function Jt(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function Ke(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function Wn(t,e){return Ke(t)?t:e}function It(t,e){return typeof t>"u"?e:t}const Mk=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100:+t/e,Pv=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*e:+t;function le(t,e,n){if(t&&typeof t.call=="function")return t.apply(n,e)}function te(t,e,n,i){let o,s,r;if(Te(t))for(s=t.length,o=0;ot,x:t=>t.x,y:t=>t.y};function nT(t){const e=t.split("."),n=[];let i="";for(const o of e)i+=o,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function iT(t){const e=nT(t);return n=>{for(const i of e){if(i==="")break;n=n&&n[i]}return n}}function jr(t,e){return(c0[e]||(c0[e]=iT(e)))(t)}function ah(t){return t.charAt(0).toUpperCase()+t.slice(1)}const Fl=t=>typeof t<"u",eo=t=>typeof t=="function",d0=(t,e)=>{if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0};function oT(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}const ie=Math.PI,he=2*ie,sT=he+ie,Vl=Number.POSITIVE_INFINITY,rT=ie/180,Ae=ie/2,po=ie/4,h0=ie*2/3,Lv=Math.log10,As=Math.sign;function mr(t,e,n){return Math.abs(t-e)o-s).pop(),e}function lT(t){return typeof t=="symbol"||typeof t=="object"&&t!==null&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}function Ur(t){return!lT(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function uT(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}function cT(t,e,n){let i,o,s;for(i=0,o=t.length;il&&c=Math.min(e,n)-i&&t<=Math.max(e,n)+i}function lh(t,e,n){n=n||(r=>t[r]1;)s=o+i>>1,n(s)?o=s:i=s;return{lo:o,hi:i}}const Oo=(t,e,n,i)=>lh(t,n,i?o=>{const s=t[o][e];return st[o][e]lh(t,n,i=>t[i][e]>=n);function gT(t,e,n){let i=0,o=t.length;for(;ii&&t[o-1]>n;)o--;return i>0||o{const i="_onData"+ah(n),o=t[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!1,value(...s){const r=o.apply(this,s);return t._chartjs.listeners.forEach(a=>{typeof a[i]=="function"&&a[i](...s)}),r}})})}function g0(t,e){const n=t._chartjs;if(!n)return;const i=n.listeners,o=i.indexOf(e);o!==-1&&i.splice(o,1),!(i.length>0)&&(Vv.forEach(s=>{delete t[s]}),delete t._chartjs)}function vT(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const jv=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function Uv(t,e){let n=[],i=!1;return function(...o){n=o,i||(i=!0,jv.call(window,()=>{i=!1,t.apply(e,n)}))}}function yT(t,e){let n;return function(...i){return e?(clearTimeout(n),n=setTimeout(t,e,i)):t.apply(this,i),e}}const Iv=t=>t==="start"?"left":t==="end"?"right":"center",dn=(t,e,n)=>t==="start"?e:t==="end"?n:(e+n)/2,bT=(t,e,n,i)=>t===(i?"left":"right")?n:t==="center"?(e+n)/2:e;function _T(t,e,n){const i=e.length;let o=0,s=i;if(t._sorted){const{iScale:r,vScale:a,_parsed:l}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,u=r.axis,{min:d,max:p,minDefined:f,maxDefined:v}=r.getUserBounds();if(f){if(o=Math.min(Oo(l,u,d).lo,n?i:Oo(e,u,r.getPixelForValue(d)).lo),c){const g=l.slice(0,o+1).reverse().findIndex(w=>!re(w[a.axis]));o-=Math.max(0,g)}o=Me(o,0,i-1)}if(v){let g=Math.max(Oo(l,r.axis,p,!0).hi+1,n?0:Oo(e,u,r.getPixelForValue(p),!0).hi+1);if(c){const w=l.slice(g-1).findIndex(b=>!re(b[a.axis]));g+=Math.max(0,w)}s=Me(g,o,i)-o}else s=i-o}return{start:o,count:s}}function wT(t){const{xScale:e,yScale:n,_scaleRanges:i}=t,o={xmin:e.min,xmax:e.max,ymin:n.min,ymax:n.max};if(!i)return t._scaleRanges=o,!0;const s=i.xmin!==e.min||i.xmax!==e.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,o),s}const Sa=t=>t===0||t===1,m0=(t,e,n)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-e)*he/n)),v0=(t,e,n)=>Math.pow(2,-10*t)*Math.sin((t-e)*he/n)+1,vr={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*Ae)+1,easeOutSine:t=>Math.sin(t*Ae),easeInOutSine:t=>-.5*(Math.cos(ie*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>Sa(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>Sa(t)?t:m0(t,.075,.3),easeOutElastic:t=>Sa(t)?t:v0(t,.075,.3),easeInOutElastic(t){return Sa(t)?t:t<.5?.5*m0(t*2,.1125,.45):.5+.5*v0(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:t=>1-vr.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?vr.easeInBounce(t*2)*.5:vr.easeOutBounce(t*2-1)*.5+.5};function uh(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function y0(t){return uh(t)?t:new Fr(t)}function bc(t){return uh(t)?t:new Fr(t).saturate(.5).darken(.1).hexString()}const xT=["x","y","borderWidth","radius","tension"],ET=["color","borderColor","backgroundColor"];function CT(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>e!=="onProgress"&&e!=="onComplete"&&e!=="fn"}),t.set("animations",{colors:{type:"color",properties:ET},numbers:{type:"number",properties:xT}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>e|0}}}})}function ST(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const b0=new Map;function AT(t,e){e=e||{};const n=t+JSON.stringify(e);let i=b0.get(n);return i||(i=new Intl.NumberFormat(t,e),b0.set(n,i)),i}function ch(t,e,n){return AT(e,n).format(t)}const kT={values(t){return Te(t)?t:""+t},numeric(t,e,n){if(t===0)return"0";const i=this.chart.options.locale;let o,s=t;if(n.length>1){const c=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(c<1e-4||c>1e15)&&(o="scientific"),s=TT(t,n)}const r=Lv(Math.abs(s)),a=isNaN(r)?1:Math.max(Math.min(-1*Math.floor(r),20),0),l={notation:o,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),ch(t,i,l)}};function TT(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(n)>=1&&t!==Math.floor(t)&&(n=t-Math.floor(t)),n}var zv={formatters:kT};function DT(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,n)=>n.lineWidth,tickColor:(e,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:zv.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&e!=="callback"&&e!=="parser",_indexable:e=>e!=="borderDash"&&e!=="tickBorderDash"&&e!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:e=>e!=="backdropPadding"&&e!=="callback",_indexable:e=>e!=="backdropPadding"})}const zo=Object.create(null),vd=Object.create(null);function yr(t,e){if(!e)return t;const n=e.split(".");for(let i=0,o=n.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,o)=>bc(o.backgroundColor),this.hoverBorderColor=(i,o)=>bc(o.borderColor),this.hoverColor=(i,o)=>bc(o.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(n)}set(e,n){return _c(this,e,n)}get(e){return yr(this,e)}describe(e,n){return _c(vd,e,n)}override(e,n){return _c(zo,e,n)}route(e,n,i,o){const s=yr(this,e),r=yr(this,i),a="_"+n;Object.defineProperties(s,{[a]:{value:s[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[a],c=r[o];return Jt(l)?Object.assign({},c,l):It(l,c)},set(l){this[a]=l}}})}apply(e){e.forEach(n=>n(this))}}var me=new OT({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[CT,ST,DT]);function $T(t){return!t||re(t.size)||re(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function _0(t,e,n,i,o){let s=e[o];return s||(s=e[o]=t.measureText(o).width,n.push(o)),s>i&&(i=s),i}function fo(t,e,n){const i=t.currentDevicePixelRatio,o=n!==0?Math.max(n/2,.5):0;return Math.round((e-o)*i)/i+o}function w0(t,e){!e&&!t||(e=e||t.getContext("2d"),e.save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function yd(t,e,n,i){Hv(t,e,n,i,null)}function Hv(t,e,n,i,o){let s,r,a,l,c,u,d,p;const f=e.pointStyle,v=e.rotation,g=e.radius;let w=(v||0)*rT;if(f&&typeof f=="object"&&(s=f.toString(),s==="[object HTMLImageElement]"||s==="[object HTMLCanvasElement]")){t.save(),t.translate(n,i),t.rotate(w),t.drawImage(f,-f.width/2,-f.height/2,f.width,f.height),t.restore();return}if(!(isNaN(g)||g<=0)){switch(t.beginPath(),f){default:o?t.ellipse(n,i,o/2,g,0,0,he):t.arc(n,i,g,0,he),t.closePath();break;case"triangle":u=o?o/2:g,t.moveTo(n+Math.sin(w)*u,i-Math.cos(w)*g),w+=h0,t.lineTo(n+Math.sin(w)*u,i-Math.cos(w)*g),w+=h0,t.lineTo(n+Math.sin(w)*u,i-Math.cos(w)*g),t.closePath();break;case"rectRounded":c=g*.516,l=g-c,r=Math.cos(w+po)*l,d=Math.cos(w+po)*(o?o/2-c:l),a=Math.sin(w+po)*l,p=Math.sin(w+po)*(o?o/2-c:l),t.arc(n-d,i-a,c,w-ie,w-Ae),t.arc(n+p,i-r,c,w-Ae,w),t.arc(n+d,i+a,c,w,w+Ae),t.arc(n-p,i+r,c,w+Ae,w+ie),t.closePath();break;case"rect":if(!v){l=Math.SQRT1_2*g,u=o?o/2:l,t.rect(n-u,i-l,2*u,2*l);break}w+=po;case"rectRot":d=Math.cos(w)*(o?o/2:g),r=Math.cos(w)*g,a=Math.sin(w)*g,p=Math.sin(w)*(o?o/2:g),t.moveTo(n-d,i-a),t.lineTo(n+p,i-r),t.lineTo(n+d,i+a),t.lineTo(n-p,i+r),t.closePath();break;case"crossRot":w+=po;case"cross":d=Math.cos(w)*(o?o/2:g),r=Math.cos(w)*g,a=Math.sin(w)*g,p=Math.sin(w)*(o?o/2:g),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+p,i-r),t.lineTo(n-p,i+r);break;case"star":d=Math.cos(w)*(o?o/2:g),r=Math.cos(w)*g,a=Math.sin(w)*g,p=Math.sin(w)*(o?o/2:g),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+p,i-r),t.lineTo(n-p,i+r),w+=po,d=Math.cos(w)*(o?o/2:g),r=Math.cos(w)*g,a=Math.sin(w)*g,p=Math.sin(w)*(o?o/2:g),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+p,i-r),t.lineTo(n-p,i+r);break;case"line":r=o?o/2:Math.cos(w)*g,a=Math.sin(w)*g,t.moveTo(n-r,i-a),t.lineTo(n+r,i+a);break;case"dash":t.moveTo(n,i),t.lineTo(n+Math.cos(w)*(o?o/2:g),i+Math.sin(w)*g);break;case!1:t.closePath();break}t.fill(),e.borderWidth>0&&t.stroke()}}function zr(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.xe.top-n&&t.y0&&s.strokeColor!=="";let l,c;for(t.save(),t.font=o.string,PT(t,s),l=0;l+t||0;function dh(t,e){const n={},i=Jt(e),o=i?Object.keys(e):e,s=Jt(t)?i?r=>It(t[r],t[e[r]]):r=>t[r]:()=>t;for(const r of o)n[r]=UT(s(r));return n}function IT(t){return dh(t,{top:"y",right:"x",bottom:"y",left:"x"})}function br(t){return dh(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Fn(t){const e=IT(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function sn(t,e){t=t||{},e=e||me.font;let n=It(t.size,e.size);typeof n=="string"&&(n=parseInt(n,10));let i=It(t.style,e.style);i&&!(""+i).match(VT)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const o={family:It(t.family,e.family),lineHeight:jT(It(t.lineHeight,e.lineHeight),n),size:n,style:i,weight:It(t.weight,e.weight),string:""};return o.string=$T(o),o}function Aa(t,e,n,i){let o,s,r;for(o=0,s=t.length;on&&a===0?0:a+l;return{min:r(i,-Math.abs(s)),max:r(o,s)}}function Ko(t,e){return Object.assign(Object.create(t),e)}function hh(t,e=[""],n,i,o=()=>t[0]){const s=n||t;typeof i>"u"&&(i=Kv("_fallback",t));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:s,_fallback:i,_getTarget:o,override:a=>hh([a,...t],e,s,i)};return new Proxy(r,{deleteProperty(a,l){return delete a[l],delete a._keys,delete t[0][l],!0},get(a,l){return Jv(a,l,()=>YT(l,e,t,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(a,l){return E0(a).includes(l)},ownKeys(a){return E0(a)},set(a,l,c){const u=a._storage||(a._storage=o());return a[l]=u[l]=c,delete a._keys,!0}})}function ks(t,e,n,i){const o={_cacheable:!1,_proxy:t,_context:e,_subProxy:n,_stack:new Set,_descriptors:Wv(t,i),setContext:s=>ks(t,s,n,i),override:s=>ks(t.override(s),e,n,i)};return new Proxy(o,{deleteProperty(s,r){return delete s[r],delete t[r],!0},get(s,r,a){return Jv(s,r,()=>WT(s,r,a))},getOwnPropertyDescriptor(s,r){return s._descriptors.allKeys?Reflect.has(t,r)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,r)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(s,r){return Reflect.has(t,r)},ownKeys(){return Reflect.ownKeys(t)},set(s,r,a){return t[r]=a,delete s[r],!0}})}function Wv(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scriptable,_indexable:i=e.indexable,_allKeys:o=e.allKeys}=t;return{allKeys:o,scriptable:n,indexable:i,isScriptable:eo(n)?n:()=>n,isIndexable:eo(i)?i:()=>i}}const HT=(t,e)=>t?t+ah(e):e,ph=(t,e)=>Jt(e)&&t!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function Jv(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||e==="constructor")return t[e];const i=n();return t[e]=i,i}function WT(t,e,n){const{_proxy:i,_context:o,_subProxy:s,_descriptors:r}=t;let a=i[e];return eo(a)&&r.isScriptable(e)&&(a=JT(e,a,t,n)),Te(a)&&a.length&&(a=GT(e,a,t,r.isIndexable)),ph(e,a)&&(a=ks(a,o,s&&s[e],r)),a}function JT(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_stack:a}=n;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=e(s,r||i);return a.delete(t),ph(t,l)&&(l=fh(o._scopes,o,t,l)),l}function GT(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_descriptors:a}=n;if(typeof s.index<"u"&&i(t))return e[s.index%e.length];if(Jt(e[0])){const l=e,c=o._scopes.filter(u=>u!==l);e=[];for(const u of l){const d=fh(c,o,t,u);e.push(ks(d,s,r&&r[t],a))}}return e}function Gv(t,e,n){return eo(t)?t(e,n):t}const KT=(t,e)=>t===!0?e:typeof t=="string"?jr(e,t):void 0;function qT(t,e,n,i,o){for(const s of e){const r=KT(n,s);if(r){t.add(r);const a=Gv(r._fallback,n,o);if(typeof a<"u"&&a!==n&&a!==i)return a}else if(r===!1&&typeof i<"u"&&n!==i)return null}return!1}function fh(t,e,n,i){const o=e._rootScopes,s=Gv(e._fallback,n,i),r=[...t,...o],a=new Set;a.add(i);let l=x0(a,r,n,s||n,i);return l===null||typeof s<"u"&&s!==n&&(l=x0(a,r,s,l,i),l===null)?!1:hh(Array.from(a),[""],o,s,()=>XT(e,n,i))}function x0(t,e,n,i,o){for(;n;)n=qT(t,e,n,i,o);return n}function XT(t,e,n){const i=t._getTarget();e in i||(i[e]={});const o=i[e];return Te(o)&&Jt(n)?n:o||{}}function YT(t,e,n,i){let o;for(const s of e)if(o=Kv(HT(s,t),n),typeof o<"u")return ph(t,o)?fh(n,i,t,o):o}function Kv(t,e){for(const n of e){if(!n)continue;const i=n[t];if(typeof i<"u")return i}}function E0(t){let e=t._keys;return e||(e=t._keys=ZT(t._scopes)),e}function ZT(t){const e=new Set;for(const n of t)for(const i of Object.keys(n).filter(o=>!o.startsWith("_")))e.add(i);return Array.from(e)}const QT=Number.EPSILON||1e-14,Ts=(t,e)=>et==="x"?"y":"x";function MT(t,e,n,i){const o=t.skip?e:t,s=e,r=n.skip?e:n,a=md(s,o),l=md(r,s);let c=a/(a+l),u=l/(a+l);c=isNaN(c)?0:c,u=isNaN(u)?0:u;const d=i*c,p=i*u;return{previous:{x:s.x-d*(r.x-o.x),y:s.y-d*(r.y-o.y)},next:{x:s.x+p*(r.x-o.x),y:s.y+p*(r.y-o.y)}}}function t5(t,e,n){const i=t.length;let o,s,r,a,l,c=Ts(t,0);for(let u=0;u!c.skip)),e.cubicInterpolationMode==="monotone")n5(t,o);else{let c=i?t[t.length-1]:t[0];for(s=0,r=t.length;st.ownerDocument.defaultView.getComputedStyle(t,null);function s5(t,e){return yu(t).getPropertyValue(e)}const r5=["top","right","bottom","left"];function Vo(t,e,n){const i={};n=n?"-"+n:"";for(let o=0;o<4;o++){const s=r5[o];i[s]=parseFloat(t[e+"-"+s+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const a5=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function l5(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:o,offsetY:s}=i;let r=!1,a,l;if(a5(o,s,t.target))a=o,l=s;else{const c=e.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,r=!0}return{x:a,y:l,box:r}}function _o(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:i}=e,o=yu(n),s=o.boxSizing==="border-box",r=Vo(o,"padding"),a=Vo(o,"border","width"),{x:l,y:c,box:u}=l5(t,n),d=r.left+(u&&a.left),p=r.top+(u&&a.top);let{width:f,height:v}=e;return s&&(f-=r.width+a.width,v-=r.height+a.height),{x:Math.round((l-d)/f*n.width/i),y:Math.round((c-p)/v*n.height/i)}}function u5(t,e,n){let i,o;if(e===void 0||n===void 0){const s=t&&mh(t);if(!s)e=t.clientWidth,n=t.clientHeight;else{const r=s.getBoundingClientRect(),a=yu(s),l=Vo(a,"border","width"),c=Vo(a,"padding");e=r.width-c.width-l.width,n=r.height-c.height-l.height,i=Ul(a.maxWidth,s,"clientWidth"),o=Ul(a.maxHeight,s,"clientHeight")}}return{width:e,height:n,maxWidth:i||Vl,maxHeight:o||Vl}}const Wi=t=>Math.round(t*10)/10;function c5(t,e,n,i){const o=yu(t),s=Vo(o,"margin"),r=Ul(o.maxWidth,t,"clientWidth")||Vl,a=Ul(o.maxHeight,t,"clientHeight")||Vl,l=u5(t,e,n);let{width:c,height:u}=l;if(o.boxSizing==="content-box"){const d=Vo(o,"border","width"),p=Vo(o,"padding");c-=p.width+d.width,u-=p.height+d.height}return c=Math.max(0,c-s.width),u=Math.max(0,i?c/i:u-s.height),c=Wi(Math.min(c,r,l.maxWidth)),u=Wi(Math.min(u,a,l.maxHeight)),c&&!u&&(u=Wi(c/2)),(e!==void 0||n!==void 0)&&i&&l.height&&u>l.height&&(u=l.height,c=Wi(Math.floor(u*i))),{width:c,height:u}}function C0(t,e,n){const i=e||1,o=Wi(t.height*i),s=Wi(t.width*i);t.height=Wi(t.height),t.width=Wi(t.width);const r=t.canvas;return r.style&&(n||!r.style.height&&!r.style.width)&&(r.style.height=`${t.height}px`,r.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||r.height!==o||r.width!==s?(t.currentDevicePixelRatio=i,r.height=o,r.width=s,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}const d5=(function(){let t=!1;try{const e={get passive(){return t=!0,!1}};gh()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch{}return t})();function S0(t,e){const n=s5(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function wo(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function h5(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:i==="middle"?n<.5?t.y:e.y:i==="after"?n<1?t.y:e.y:n>0?e.y:t.y}}function p5(t,e,n,i){const o={x:t.cp2x,y:t.cp2y},s={x:e.cp1x,y:e.cp1y},r=wo(t,o,n),a=wo(o,s,n),l=wo(s,e,n),c=wo(r,a,n),u=wo(a,l,n);return wo(c,u,n)}const f5=function(t,e){return{x(n){return t+t+e-n},setWidth(n){e=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},g5=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function bs(t,e,n){return t?f5(e,n):g5()}function Xv(t,e){let n,i;(e==="ltr"||e==="rtl")&&(n=t.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=i)}function Yv(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Zv(t){return t==="angle"?{between:Ir,compare:hT,normalize:pn}:{between:Do,compare:(e,n)=>e-n,normalize:e=>e}}function A0({start:t,end:e,count:n,loop:i,style:o}){return{start:t%n,end:e%n,loop:i&&(e-t+1)%n===0,style:o}}function m5(t,e,n){const{property:i,start:o,end:s}=n,{between:r,normalize:a}=Zv(i),l=e.length;let{start:c,end:u,loop:d}=t,p,f;if(d){for(c+=l,u+=l,p=0,f=l;pl(o,D,b)&&a(o,D)!==0,N=()=>a(s,b)===0||l(s,D,b),F=()=>g||k(),j=()=>!g||N();for(let I=u,X=u;I<=d;++I)S=e[I%r],!S.skip&&(b=c(S[i]),b!==D&&(g=l(b,o,s),w===null&&F()&&(w=a(b,o)===0?I:X),w!==null&&j()&&(v.push(A0({start:w,end:I,loop:p,count:r,style:f})),w=null),X=I,D=b));return w!==null&&v.push(A0({start:w,end:d,loop:p,count:r,style:f})),v}function Mv(t,e){const n=[],i=t.segments;for(let o=0;oo&&t[s%e].skip;)s--;return s%=e,{start:o,end:s}}function y5(t,e,n,i){const o=t.length,s=[];let r=e,a=t[e],l;for(l=e+1;l<=n;++l){const c=t[l%o];c.skip||c.stop?a.skip||(i=!1,s.push({start:e%o,end:(l-1)%o,loop:i}),e=r=c.stop?l:null):(r=l,a.skip&&(e=l)),a=c}return r!==null&&s.push({start:e%o,end:r%o,loop:i}),s}function b5(t,e){const n=t.points,i=t.options.spanGaps,o=n.length;if(!o)return[];const s=!!t._loop,{start:r,end:a}=v5(n,o,s,i);if(i===!0)return k0(t,[{start:r,end:a,loop:s}],n,e);const l=aa({chart:e,initial:n.initial,numSteps:r,currentStep:Math.min(i-n.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=jv.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._charts.forEach((i,o)=>{if(!i.running||!i.items.length)return;const s=i.items;let r=s.length-1,a=!1,l;for(;r>=0;--r)l=s[r],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(e),a=!0):(s[r]=s[s.length-1],s.pop());a&&(o.draw(),this._notify(o,i,e,"progress")),s.length||(i.running=!1,this._notify(o,i,e,"complete"),i.initial=!1),n+=s.length}),this._lastDate=e,n===0&&(this._running=!1)}_getAnims(e){const n=this._charts;let i=n.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,i)),i}listen(e,n,i){this._getAnims(e).listeners[n].push(i)}add(e,n){!n||!n.length||this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._charts.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,o)=>Math.max(i,o._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._charts.get(e);return!(!n||!n.running||!n.items.length)}stop(e){const n=this._charts.get(e);if(!n||!n.items.length)return;const i=n.items;let o=i.length-1;for(;o>=0;--o)i[o].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var pi=new E5;const D0="transparent",C5={boolean(t,e,n){return n>.5?e:t},color(t,e,n){const i=y0(t||D0),o=i.valid&&y0(e||D0);return o&&o.valid?o.mix(i,n).hexString():e},number(t,e,n){return t+(e-t)*n}};class S5{constructor(e,n,i,o){const s=n[i];o=Aa([e.to,o,s,e.from]);const r=Aa([e.from,s,o]);this._active=!0,this._fn=e.fn||C5[e.type||typeof r],this._easing=vr[e.easing]||vr.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=i,this._from=r,this._to=o,this._promises=void 0}active(){return this._active}update(e,n,i){if(this._active){this._notify(!1);const o=this._target[this._prop],s=i-this._start,r=this._duration-s;this._start=i,this._duration=Math.floor(Math.max(r,e.duration)),this._total+=s,this._loop=!!e.loop,this._to=Aa([e.to,n,o,e.from]),this._from=Aa([e.from,o,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,i=this._duration,o=this._prop,s=this._from,r=this._loop,a=this._to;let l;if(this._active=s!==a&&(r||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[o]=this._fn(s,a,l)}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,i)=>{e.push({res:n,rej:i})})}_notify(e){const n=e?"res":"rej",i=this._promises||[];for(let o=0;o{const s=e[o];if(!Jt(s))return;const r={};for(const a of n)r[a]=s[a];(Te(s.properties)&&s.properties||[o]).forEach(a=>{(a===o||!i.has(a))&&i.set(a,r)})})}_animateOptions(e,n){const i=n.options,o=k5(e,i);if(!o)return[];const s=this._createAnimations(o,i);return i.$shared&&A5(e.options.$animations,i).then(()=>{e.options=i},()=>{}),s}_createAnimations(e,n){const i=this._properties,o=[],s=e.$animations||(e.$animations={}),r=Object.keys(n),a=Date.now();let l;for(l=r.length-1;l>=0;--l){const c=r[l];if(c.charAt(0)==="$")continue;if(c==="options"){o.push(...this._animateOptions(e,n));continue}const u=n[c];let d=s[c];const p=i.get(c);if(d)if(p&&d.active()){d.update(p,u,a);continue}else d.cancel();if(!p||!p.duration){e[c]=u;continue}s[c]=d=new S5(p,e,c,u),o.push(d)}return o}update(e,n){if(this._properties.size===0){Object.assign(e,n);return}const i=this._createAnimations(e,n);if(i.length)return pi.add(this._chart,i),!0}}function A5(t,e){const n=[],i=Object.keys(e);for(let o=0;o0||!n&&s<0)return o.index}return null}function B0(t,e){const{chart:n,_cachedMeta:i}=t,o=n._stacks||(n._stacks={}),{iScale:s,vScale:r,index:a}=i,l=s.axis,c=r.axis,u=$5(s,r,i),d=e.length;let p;for(let f=0;fn[i].axis===e).shift()}function P5(t,e){return Ko(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function N5(t,e,n){return Ko(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function qs(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){e=e||t._parsed;for(const o of e){const s=o._stacks;if(!s||s[i]===void 0||s[i][n]===void 0)return;delete s[i][n],s[i]._visualValues!==void 0&&s[i]._visualValues[n]!==void 0&&delete s[i]._visualValues[n]}}}const Ec=t=>t==="reset"||t==="none",P0=(t,e)=>e?t:Object.assign({},t),L5=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:ny(n,!0),values:null};class vh{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=wc(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&qs(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,i=this.getDataset(),o=(d,p,f,v)=>d==="x"?p:d==="r"?v:f,s=n.xAxisID=It(i.xAxisID,xc(e,"x")),r=n.yAxisID=It(i.yAxisID,xc(e,"y")),a=n.rAxisID=It(i.rAxisID,xc(e,"r")),l=n.indexAxis,c=n.iAxisID=o(l,s,r,a),u=n.vAxisID=o(l,r,s,a);n.xScale=this.getScaleForId(s),n.yScale=this.getScaleForId(r),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(c),n.vScale=this.getScaleForId(u)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&g0(this._data,this),e._stacked&&qs(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),i=this._data;if(Jt(n)){const o=this._cachedMeta;this._data=O5(n,o)}else if(i!==n){if(i){g0(i,this);const o=this._cachedMeta;qs(o),o._parsed=[]}n&&Object.isExtensible(n)&&mT(n,this),this._syncList=[],this._data=n}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const n=this._cachedMeta,i=this.getDataset();let o=!1;this._dataCheck();const s=n._stacked;n._stacked=wc(n.vScale,n),n.stack!==i.stack&&(o=!0,qs(n),n.stack=i.stack),this._resyncElements(e),(o||s!==n._stacked)&&(B0(this,n._parsed),n._stacked=wc(n.vScale,n))}configure(){const e=this.chart.config,n=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),n,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,n){const{_cachedMeta:i,_data:o}=this,{iScale:s,_stacked:r}=i,a=s.axis;let l=e===0&&n===o.length?!0:i._sorted,c=e>0&&i._parsed[e-1],u,d,p;if(this._parsing===!1)i._parsed=o,i._sorted=!0,p=o;else{Te(o[e])?p=this.parseArrayData(i,o,e,n):Jt(o[e])?p=this.parseObjectData(i,o,e,n):p=this.parsePrimitiveData(i,o,e,n);const f=()=>d[a]===null||c&&d[a]g||d=0;--p)if(!v()){this.updateRangeFromParsed(c,e,f,l);break}}return c}getAllParsedValues(e){const n=this._cachedMeta._parsed,i=[];let o,s,r;for(o=0,s=n.length;o=0&&ethis.getContext(i,o,n),g=c.resolveNamedOptions(p,f,v,d);return g.$shared&&(g.$shared=l,s[r]=Object.freeze(P0(g,l))),g}_resolveAnimations(e,n,i){const o=this.chart,s=this._cachedDataOpts,r=`animation-${n}`,a=s[r];if(a)return a;let l;if(o.options.animation!==!1){const u=this.chart.config,d=u.datasetAnimationScopeKeys(this._type,n),p=u.getOptionScopes(this.getDataset(),d);l=u.createResolver(p,this.getContext(e,i,n))}const c=new ey(o,l&&l.animations);return l&&l._cacheable&&(s[r]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||Ec(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const i=this.resolveDataElementOptions(e,n),o=this._sharedOptions,s=this.getSharedOptions(i),r=this.includeOptions(n,s)||s!==o;return this.updateSharedOptions(s,n,i),{sharedOptions:s,includeOptions:r}}updateElement(e,n,i,o){Ec(o)?Object.assign(e,i):this._resolveAnimations(n,o).update(e,i)}updateSharedOptions(e,n,i){e&&!Ec(n)&&this._resolveAnimations(void 0,n).update(e,i)}_setStyle(e,n,i,o){e.active=o;const s=this.getStyle(n,o);this._resolveAnimations(n,i,o).update(e,{options:!o&&this.getSharedOptions(s)||s})}removeHoverStyle(e,n,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,n,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,i=this._cachedMeta.data;for(const[a,l,c]of this._syncList)this[a](l,c);this._syncList=[];const o=i.length,s=n.length,r=Math.min(s,o);r&&this.parse(0,r),s>o?this._insertElements(o,s-o,e):s{for(c.length+=n,a=c.length-1;a>=r;a--)c[a]=c[a-n]};for(l(s),a=e;aIr(D,a,l,!0)?1:Math.max(k,k*n,N,N*n),v=(D,k,N)=>Ir(D,a,l,!0)?-1:Math.min(k,k*n,N,N*n),g=f(0,c,d),w=f(Ae,u,p),b=v(ie,c,d),S=v(ie+Ae,u,p);i=(g-b)/2,o=(w-S)/2,s=-(g+b)/2,r=-(w+S)/2}return{ratioX:i,ratioY:o,offsetX:s,offsetY:r}}class V5 extends vh{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:e=>e!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data,{labels:{pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=e.legend.options;return n.labels.length&&n.datasets.length?n.labels.map((l,c)=>{const u=e.getDatasetMeta(0).controller.getStyle(c);return{text:l,fillStyle:u.backgroundColor,fontColor:s,hidden:!e.getDataVisibility(c),lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:u.borderWidth,strokeStyle:u.borderColor,textAlign:o,pointStyle:i,borderRadius:r&&(a||u.borderRadius),index:c}}):[]}},onClick(e,n,i){i.chart.toggleDataVisibility(n.index),i.chart.update()}}}};constructor(e,n){super(e,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,n){const i=this.getDataset().data,o=this._cachedMeta;if(this._parsing===!1)o._parsed=i;else{let s=l=>+i[l];if(Jt(i[e])){const{key:l="value"}=this._parsing;s=c=>+jr(i[c],l)}let r,a;for(r=e,a=e+n;r0&&!isNaN(e)?he*(Math.abs(e)/n):0}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart,o=i.data.labels||[],s=ch(n._parsed[e],i.options.locale);return{label:o[e]||"",value:s}}getMaxBorderWidth(e){let n=0;const i=this.chart;let o,s,r,a,l;if(!e){for(o=0,s=i.data.datasets.length;o0&&this.getParsed(n-1);for(let N=0;N=S){j.skip=!0;continue}const I=this.getParsed(N),X=re(I[f]),W=j[p]=r.getPixelForValue(I[p],N),Y=j[f]=s||X?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,I,l):I[f],N);j.skip=isNaN(W)||isNaN(Y)||X,j.stop=N>0&&Math.abs(I[p]-k[p])>w,g&&(j.parsed=I,j.raw=c.data[N]),d&&(j.options=u||this.resolveDataElementOptions(N,F.active?"active":o)),b||this.updateElement(F,N,j,o),k=I}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,i=n.options&&n.options.borderWidth||0,o=e.data||[];if(!o.length)return i;const s=o[0].size(this.resolveDataElementOptions(0)),r=o[o.length-1].size(this.resolveDataElementOptions(o.length-1));return Math.max(i,s,r)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}function go(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class yh{static override(e){Object.assign(yh.prototype,e)}options;constructor(e){this.options=e||{}}init(){}formats(){return go()}parse(){return go()}format(){return go()}add(){return go()}diff(){return go()}startOf(){return go()}endOf(){return go()}}var j5={_date:yh};function U5(t,e,n,i){const{controller:o,data:s,_sorted:r}=t,a=o._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&e===a.axis&&e!=="r"&&r&&s.length){const c=a._reversePixels?fT:Oo;if(i){if(o._sharedOptions){const u=s[0],d=typeof u.getRange=="function"&&u.getRange(e);if(d){const p=c(s,e,n-d),f=c(s,e,n+d);return{lo:p.lo,hi:f.hi}}}}else{const u=c(s,e,n);if(l){const{vScale:d}=o._cachedMeta,{_parsed:p}=t,f=p.slice(0,u.lo+1).reverse().findIndex(g=>!re(g[d.axis]));u.lo-=Math.max(0,f);const v=p.slice(u.hi).findIndex(g=>!re(g[d.axis]));u.hi+=Math.max(0,v)}return u}}return{lo:0,hi:s.length-1}}function _u(t,e,n,i,o){const s=t.getSortedVisibleDatasetMetas(),r=n[e];for(let a=0,l=s.length;a{l[r]&&l[r](e[n],o)&&(s.push({element:l,datasetIndex:c,index:u}),a=a||l.inRange(e.x,e.y,o))}),i&&!a?[]:s}var W5={modes:{index(t,e,n,i){const o=_o(e,t),s=n.axis||"x",r=n.includeInvisible||!1,a=n.intersect?Cc(t,o,s,i,r):Sc(t,o,s,!1,i,r),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(c=>{const u=a[0].index,d=c.data[u];d&&!d.skip&&l.push({element:d,datasetIndex:c.index,index:u})}),l):[]},dataset(t,e,n,i){const o=_o(e,t),s=n.axis||"xy",r=n.includeInvisible||!1;let a=n.intersect?Cc(t,o,s,i,r):Sc(t,o,s,!1,i,r);if(a.length>0){const l=a[0].datasetIndex,c=t.getDatasetMeta(l).data;a=[];for(let u=0;un.pos===e)}function L0(t,e){return t.filter(n=>iy.indexOf(n.pos)===-1&&n.box.axis===e)}function Ys(t,e){return t.sort((n,i)=>{const o=e?i:n,s=e?n:i;return o.weight===s.weight?o.index-s.index:o.weight-s.weight})}function J5(t){const e=[];let n,i,o,s,r,a;for(n=0,i=(t||[]).length;nc.box.fullSize),!0),i=Ys(Xs(e,"left"),!0),o=Ys(Xs(e,"right")),s=Ys(Xs(e,"top"),!0),r=Ys(Xs(e,"bottom")),a=L0(e,"x"),l=L0(e,"y");return{fullSize:n,leftAndTop:i.concat(s),rightAndBottom:o.concat(l).concat(r).concat(a),chartArea:Xs(e,"chartArea"),vertical:i.concat(o).concat(l),horizontal:s.concat(r).concat(a)}}function F0(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function oy(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function X5(t,e,n,i){const{pos:o,box:s}=n,r=t.maxPadding;if(!Jt(o)){n.size&&(t[o]-=n.size);const d=i[n.stack]||{size:0,count:1};d.size=Math.max(d.size,n.horizontal?s.height:s.width),n.size=d.size/d.count,t[o]+=n.size}s.getPadding&&oy(r,s.getPadding());const a=Math.max(0,e.outerWidth-F0(r,t,"left","right")),l=Math.max(0,e.outerHeight-F0(r,t,"top","bottom")),c=a!==t.w,u=l!==t.h;return t.w=a,t.h=l,n.horizontal?{same:c,other:u}:{same:u,other:c}}function Y5(t){const e=t.maxPadding;function n(i){const o=Math.max(e[i]-t[i],0);return t[i]+=o,o}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function Z5(t,e){const n=e.maxPadding;function i(o){const s={left:0,top:0,right:0,bottom:0};return o.forEach(r=>{s[r]=Math.max(e[r],n[r])}),s}return i(t?["left","right"]:["top","bottom"])}function or(t,e,n,i){const o=[];let s,r,a,l,c,u;for(s=0,r=t.length,c=0;s{typeof g.beforeLayout=="function"&&g.beforeLayout()});const u=l.reduce((g,w)=>w.box.options&&w.box.options.display===!1?g:g+1,0)||1,d=Object.freeze({outerWidth:e,outerHeight:n,padding:o,availableWidth:s,availableHeight:r,vBoxMaxWidth:s/2/u,hBoxMaxHeight:r/2}),p=Object.assign({},o);oy(p,Fn(i));const f=Object.assign({maxPadding:p,w:s,h:r,x:o.left,y:o.top},o),v=K5(l.concat(c),d);or(a.fullSize,f,d,v),or(l,f,d,v),or(c,f,d,v)&&or(l,f,d,v),Y5(f),V0(a.leftAndTop,f,d,v),f.x+=f.w,f.y+=f.h,V0(a.rightAndBottom,f,d,v),t.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},te(a.chartArea,g=>{const w=g.box;Object.assign(w,t.chartArea),w.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})})}};class sy{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,i){}removeEventListener(e,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,i,o){return n=Math.max(0,n||e.width),i=i||e.height,{width:n,height:Math.max(0,o?Math.floor(n/o):i)}}isAttached(e){return!0}updateConfig(e){}}class Q5 extends sy{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const Za="$chartjs",M5={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},j0=t=>t===null||t==="";function t6(t,e){const n=t.style,i=t.getAttribute("height"),o=t.getAttribute("width");if(t[Za]={initial:{height:i,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",j0(o)){const s=S0(t,"width");s!==void 0&&(t.width=s)}if(j0(i))if(t.style.height==="")t.height=t.width/(e||2);else{const s=S0(t,"height");s!==void 0&&(t.height=s)}return t}const ry=d5?{passive:!0}:!1;function e6(t,e,n){t&&t.addEventListener(e,n,ry)}function n6(t,e,n){t&&t.canvas&&t.canvas.removeEventListener(e,n,ry)}function i6(t,e){const n=M5[t.type]||t.type,{x:i,y:o}=_o(t,e);return{type:n,chart:e,native:t,x:i!==void 0?i:null,y:o!==void 0?o:null}}function Il(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function o6(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||Il(a.addedNodes,i),r=r&&!Il(a.removedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}function s6(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||Il(a.removedNodes,i),r=r&&!Il(a.addedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}const Hr=new Map;let U0=0;function ay(){const t=window.devicePixelRatio;t!==U0&&(U0=t,Hr.forEach((e,n)=>{n.currentDevicePixelRatio!==t&&e()}))}function r6(t,e){Hr.size||window.addEventListener("resize",ay),Hr.set(t,e)}function a6(t){Hr.delete(t),Hr.size||window.removeEventListener("resize",ay)}function l6(t,e,n){const i=t.canvas,o=i&&mh(i);if(!o)return;const s=Uv((a,l)=>{const c=o.clientWidth;n(a,l),c{const l=a[0],c=l.contentRect.width,u=l.contentRect.height;c===0&&u===0||s(c,u)});return r.observe(o),r6(t,s),r}function Ac(t,e,n){n&&n.disconnect(),e==="resize"&&a6(t)}function u6(t,e,n){const i=t.canvas,o=Uv(s=>{t.ctx!==null&&n(i6(s,t))},t);return e6(i,e,o),o}class c6 extends sy{acquireContext(e,n){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(t6(e,n),i):null}releaseContext(e){const n=e.canvas;if(!n[Za])return!1;const i=n[Za].initial;["height","width"].forEach(s=>{const r=i[s];re(r)?n.removeAttribute(s):n.setAttribute(s,r)});const o=i.style||{};return Object.keys(o).forEach(s=>{n.style[s]=o[s]}),n.width=n.width,delete n[Za],!0}addEventListener(e,n,i){this.removeEventListener(e,n);const o=e.$proxies||(e.$proxies={}),s={attach:o6,detach:s6,resize:l6}[n]||u6;o[n]=s(e,n,i)}removeEventListener(e,n){const i=e.$proxies||(e.$proxies={}),o=i[n];o&&(({attach:Ac,detach:Ac,resize:Ac}[n]||n6)(e,n,o),i[n]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,i,o){return c5(e,n,i,o)}isAttached(e){const n=e&&mh(e);return!!(n&&n.isConnected)}}function d6(t){return!gh()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?Q5:c6}let qo=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:e,y:n}}hasValue(){return Ur(this.x)&&Ur(this.y)}getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={};return t.forEach(o=>{i[o]=n[o]&&n[o].active()?n[o]._to:this[o]}),i}};function h6(t,e){const n=t.options.ticks,i=p6(t),o=Math.min(n.maxTicksLimit||i,i),s=n.major.enabled?g6(e):[],r=s.length,a=s[0],l=s[r-1],c=[];if(r>o)return m6(e,c,s,r/o),c;const u=f6(s,e,o);if(r>0){let d,p;const f=r>1?Math.round((l-a)/(r-1)):null;for(Oa(e,c,u,re(f)?0:a-f,a),d=0,p=r-1;do)return l}return Math.max(o,1)}function g6(t){const e=[];let n,i;for(n=0,i=t.length;nt==="left"?"right":t==="right"?"left":t,I0=(t,e,n)=>e==="top"||e==="left"?t[e]+n:t[e]-n,z0=(t,e)=>Math.min(e||t,t);function H0(t,e){const n=[],i=t.length/e,o=t.length;let s=0;for(;sr+a)))return l}function _6(t,e){te(t,n=>{const i=n.gc,o=i.length/2;let s;if(o>e){for(s=0;si?i:n,i=o&&n>i?n:i,{min:Wn(n,Wn(i,n)),max:Wn(i,Wn(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){le(this.options.beforeUpdate,[this])}update(e,n,i){const{beginAtZero:o,grace:s,ticks:r}=this.options,a=r.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=zT(this,s,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a=s||i<=1||!this.isHorizontal()){this.labelRotation=o;return}const u=this._getLabelSizes(),d=u.widest.width,p=u.highest.height,f=Me(this.chart.width-d,0,this.maxWidth);a=e.offset?this.maxWidth/i:f/(i-1),d+6>a&&(a=f/(i-(e.offset?.5:1)),l=this.maxHeight-Zs(e.grid)-n.padding-W0(e.title,this.chart.options.font),c=Math.sqrt(d*d+p*p),r=dT(Math.min(Math.asin(Me((u.highest.height+6)/a,-1,1)),Math.asin(Me(l/c,-1,1))-Math.asin(Me(p/c,-1,1)))),r=Math.max(o,Math.min(s,r))),this.labelRotation=r}afterCalculateLabelRotation(){le(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){le(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:i,title:o,grid:s}}=this,r=this._isVisible(),a=this.isHorizontal();if(r){const l=W0(o,n.options.font);if(a?(e.width=this.maxWidth,e.height=Zs(s)+l):(e.height=this.maxHeight,e.width=Zs(s)+l),i.display&&this.ticks.length){const{first:c,last:u,widest:d,highest:p}=this._getLabelSizes(),f=i.padding*2,v=xi(this.labelRotation),g=Math.cos(v),w=Math.sin(v);if(a){const b=i.mirror?0:w*d.width+g*p.height;e.height=Math.min(this.maxHeight,e.height+b+f)}else{const b=i.mirror?0:g*d.width+w*p.height;e.width=Math.min(this.maxWidth,e.width+b+f)}this._calculatePadding(c,u,w,g)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,i,o){const{ticks:{align:s,padding:r},position:a}=this.options,l=this.labelRotation!==0,c=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const u=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let p=0,f=0;l?c?(p=o*e.width,f=i*n.height):(p=i*e.height,f=o*n.width):s==="start"?f=n.width:s==="end"?p=e.width:s!=="inner"&&(p=e.width/2,f=n.width/2),this.paddingLeft=Math.max((p-u+r)*this.width/(this.width-u),0),this.paddingRight=Math.max((f-d+r)*this.width/(this.width-d),0)}else{let u=n.height/2,d=e.height/2;s==="start"?(u=0,d=e.height):s==="end"&&(u=n.height,d=0),this.paddingTop=u+r,this.paddingBottom=d+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){le(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return n==="top"||n==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let n,i;for(n=0,i=e.length;n({width:r[X]||0,height:a[X]||0});return{first:I(0),last:I(n-1),widest:I(F),highest:I(j),widths:r,heights:a}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return pT(this._alignToPixels?fo(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&ea*o?a/i:l/o:l*o0}_computeGridLineItems(e){const n=this.axis,i=this.chart,o=this.options,{grid:s,position:r,border:a}=o,l=s.offset,c=this.isHorizontal(),u=this.ticks.length+(l?1:0),d=Zs(s),p=[],f=a.setContext(this.getContext()),v=f.display?f.width:0,g=v/2,w=function(nt){return fo(i,nt,v)};let b,S,D,k,N,F,j,I,X,W,Y,$;if(r==="top")b=w(this.bottom),F=this.bottom-d,I=b-g,W=w(e.top)+g,$=e.bottom;else if(r==="bottom")b=w(this.top),W=e.top,$=w(e.bottom)-g,F=b+g,I=this.top+d;else if(r==="left")b=w(this.right),N=this.right-d,j=b-g,X=w(e.left)+g,Y=e.right;else if(r==="right")b=w(this.left),X=e.left,Y=w(e.right)-g,N=b+g,j=this.left+d;else if(n==="x"){if(r==="center")b=w((e.top+e.bottom)/2+.5);else if(Jt(r)){const nt=Object.keys(r)[0],et=r[nt];b=w(this.chart.scales[nt].getPixelForValue(et))}W=e.top,$=e.bottom,F=b+g,I=F+d}else if(n==="y"){if(r==="center")b=w((e.left+e.right)/2);else if(Jt(r)){const nt=Object.keys(r)[0],et=r[nt];b=w(this.chart.scales[nt].getPixelForValue(et))}N=b-g,j=N-d,X=e.left,Y=e.right}const U=It(o.ticks.maxTicksLimit,u),M=Math.max(1,Math.ceil(u/U));for(S=0;S0&&(Dt-=Vt/2);break}Tt={left:Dt,top:wt,width:Vt+Ft.width,height:Xt+Ft.height,color:nt.backdropColor}}w.push({label:k,font:X,textOffset:$,options:{rotation:g,color:ut,strokeColor:ht,strokeWidth:mt,textAlign:vt,textBaseline:U,translation:[N,F],backdrop:Tt}})}return w}_getXAxisLabelAlignment(){const{position:e,ticks:n}=this.options;if(-xi(this.labelRotation))return e==="top"?"left":"right";let i="center";return n.align==="start"?i="left":n.align==="end"?i="right":n.align==="inner"&&(i="inner"),i}_getYAxisLabelAlignment(e){const{position:n,ticks:{crossAlign:i,mirror:o,padding:s}}=this.options,r=this._getLabelSizes(),a=e+s,l=r.widest.width;let c,u;return n==="left"?o?(u=this.right+s,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u+=l)):(u=this.right-a,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u=this.left)):n==="right"?o?(u=this.left+s,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u-=l)):(u=this.left+a,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u=this.right)):c="right",{textAlign:c,x:u}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:e.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){const{ctx:e,options:{backgroundColor:n},left:i,top:o,width:s,height:r}=this;n&&(e.save(),e.fillStyle=n,e.fillRect(i,o,s,r),e.restore())}getLineWidthForValue(e){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const i=this.ticks.findIndex(o=>o.value===e);return i>=0?n.setContext(this.getContext(i)).lineWidth:0}drawGrid(e){const n=this.options.grid,i=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let s,r;const a=(l,c,u)=>{!u.width||!u.color||(i.save(),i.lineWidth=u.width,i.strokeStyle=u.color,i.setLineDash(u.borderDash||[]),i.lineDashOffset=u.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(n.display)for(s=0,r=o.length;s{this.draw(s)}}]:[{z:i,draw:s=>{this.drawBackground(),this.drawGrid(s),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:n,draw:s=>{this.drawLabels(s)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",o=[];let s,r;for(s=0,r=n.length;s{const i=n.split("."),o=i.pop(),s=[t].concat(i).join("."),r=e[n].split("."),a=r.pop(),l=r.join(".");me.route(s,o,l,a)})}function k6(t){return"id"in t&&"defaults"in t}class T6{constructor(){this.controllers=new $a(vh,"datasets",!0),this.elements=new $a(qo,"elements"),this.plugins=new $a(Object,"plugins"),this.scales=new $a(Bs,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,n,i){[...n].forEach(o=>{const s=i||this._getRegistryForType(o);i||s.isForType(o)||s===this.plugins&&o.id?this._exec(e,s,o):te(o,r=>{const a=i||this._getRegistryForType(r);this._exec(e,a,r)})})}_exec(e,n,i){const o=ah(e);le(i["before"+o],[],i),n[e](i),le(i["after"+o],[],i)}_getRegistryForType(e){for(let n=0;ns.filter(a=>!r.some(l=>a.plugin.id===l.plugin.id));this._notify(o(n,i),e,"stop"),this._notify(o(i,n),e,"start")}}function O6(t){const e={},n=[],i=Object.keys(Kn.plugins.items);for(let s=0;s1&&J0(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function G0(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}function F6(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(n.length)return G0(t,"x",n[0])||G0(t,"y",n[0])}return{}}function V6(t,e){const n=zo[t.type]||{scales:{}},i=e.scales||{},o=_d(t.type,e),s=Object.create(null);return Object.keys(i).forEach(r=>{const a=i[r];if(!Jt(a))return console.error(`Invalid scale configuration for scale: ${r}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);const l=wd(r,a,F6(r,t),me.scales[a.type]),c=N6(l,o),u=n.scales||{};s[r]=gr(Object.create(null),[{axis:l},a,u[l],u[c]])}),t.data.datasets.forEach(r=>{const a=r.type||t.type,l=r.indexAxis||_d(a,e),c=(zo[a]||{}).scales||{};Object.keys(c).forEach(u=>{const d=P6(u,l),p=r[d+"AxisID"]||d;s[p]=s[p]||Object.create(null),gr(s[p],[{axis:d},i[p],c[u]])})}),Object.keys(s).forEach(r=>{const a=s[r];gr(a,[me.scales[a.type],me.scale])}),s}function ly(t){const e=t.options||(t.options={});e.plugins=It(e.plugins,{}),e.scales=V6(t,e)}function uy(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function j6(t){return t=t||{},t.data=uy(t.data),ly(t),t}const K0=new Map,cy=new Set;function Ra(t,e){let n=K0.get(t);return n||(n=e(),K0.set(t,n),cy.add(n)),n}const Qs=(t,e,n)=>{const i=jr(e,n);i!==void 0&&t.add(i)};class U6{constructor(e){this._config=j6(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=uy(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),ly(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return Ra(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,n){return Ra(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,`transitions.${n}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,n){return Ra(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,`datasets.${e}`,`elements.${n}`,""]])}pluginScopeKeys(e){const n=e.id,i=this.type;return Ra(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const i=this._scopeCache;let o=i.get(e);return(!o||n)&&(o=new Map,i.set(e,o)),o}getOptionScopes(e,n,i){const{options:o,type:s}=this,r=this._cachedScopes(e,i),a=r.get(n);if(a)return a;const l=new Set;n.forEach(u=>{e&&(l.add(e),u.forEach(d=>Qs(l,e,d))),u.forEach(d=>Qs(l,o,d)),u.forEach(d=>Qs(l,zo[s]||{},d)),u.forEach(d=>Qs(l,me,d)),u.forEach(d=>Qs(l,vd,d))});const c=Array.from(l);return c.length===0&&c.push(Object.create(null)),cy.has(n)&&r.set(n,c),c}chartOptionScopes(){const{options:e,type:n}=this;return[e,zo[n]||{},me.datasets[n]||{},{type:n},me,vd]}resolveNamedOptions(e,n,i,o=[""]){const s={$shared:!0},{resolver:r,subPrefixes:a}=q0(this._resolverCache,e,o);let l=r;if(z6(r,n)){s.$shared=!1,i=eo(i)?i():i;const c=this.createResolver(e,i,a);l=ks(r,i,c)}for(const c of n)s[c]=l[c];return s}createResolver(e,n,i=[""],o){const{resolver:s}=q0(this._resolverCache,e,i);return Jt(n)?ks(s,n,void 0,o):s}}function q0(t,e,n){let i=t.get(e);i||(i=new Map,t.set(e,i));const o=n.join();let s=i.get(o);return s||(s={resolver:hh(e,n),subPrefixes:n.filter(r=>!r.toLowerCase().includes("hover"))},i.set(o,s)),s}const I6=t=>Jt(t)&&Object.getOwnPropertyNames(t).some(e=>eo(t[e]));function z6(t,e){const{isScriptable:n,isIndexable:i}=Wv(t);for(const o of e){const s=n(o),r=i(o),a=(r||s)&&t[o];if(s&&(eo(a)||I6(a))||r&&Te(a))return!0}return!1}var H6="4.5.1";const W6=["top","bottom","left","right","chartArea"];function X0(t,e){return t==="top"||t==="bottom"||W6.indexOf(t)===-1&&e==="x"}function Y0(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}function Z0(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),le(n&&n.onComplete,[t],e)}function J6(t){const e=t.chart,n=e.options.animation;le(n&&n.onProgress,[t],e)}function dy(t){return gh()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Qa={},Q0=t=>{const e=dy(t);return Object.values(Qa).filter(n=>n.canvas===e).pop()};function G6(t,e,n){const i=Object.keys(t);for(const o of i){const s=+o;if(s>=e){const r=t[o];delete t[o],(n>0||s>e)&&(t[s+n]=r)}}}function K6(t,e,n,i){return!n||t.type==="mouseout"?null:i?e:t}let no=class{static defaults=me;static instances=Qa;static overrides=zo;static registry=Kn;static version=H6;static getChart=Q0;static register(...t){Kn.add(...t),M0()}static unregister(...t){Kn.remove(...t),M0()}constructor(t,e){const n=this.config=new U6(e),i=dy(t),o=Q0(i);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const s=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||d6(i)),this.platform.updateConfig(n);const r=this.platform.acquireContext(i,s.aspectRatio),a=r&&r.canvas,l=a&&a.height,c=a&&a.width;if(this.id=Qk(),this.ctx=r,this.canvas=a,this.width=c,this.height=l,this._options=s,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new D6,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=yT(u=>this.update(u),s.resizeDelay||0),this._dataChanges=[],Qa[this.id]=this,!r||!a){console.error("Failed to create chart: can't acquire context from the given item");return}pi.listen(this,"complete",Z0),pi.listen(this,"progress",J6),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:n,height:i,_aspectRatio:o}=this;return re(t)?e&&o?o:i?n/i:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return Kn}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():C0(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return w0(this.canvas,this.ctx),this}stop(){return pi.stop(this),this}resize(t,e){pi.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const n=this.options,i=this.canvas,o=n.maintainAspectRatio&&this.aspectRatio,s=this.platform.getMaximumSize(i,t,e,o),r=n.devicePixelRatio||this.platform.getDevicePixelRatio(),a=this.width?"resize":"attach";this.width=s.width,this.height=s.height,this._aspectRatio=this.aspectRatio,C0(this,r,!0)&&(this.notifyPlugins("resize",{size:s}),le(n.onResize,[this,s],this),this.attached&&this._doResize(a)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};te(t,(e,n)=>{e.id=n})}buildOrUpdateScales(){const t=this.options,e=t.scales,n=this.scales,i=Object.keys(n).reduce((s,r)=>(s[r]=!1,s),{});let o=[];e&&(o=o.concat(Object.keys(e).map(s=>{const r=e[s],a=wd(s,r),l=a==="r",c=a==="x";return{options:r,dposition:l?"chartArea":c?"bottom":"left",dtype:l?"radialLinear":c?"category":"linear"}}))),te(o,s=>{const r=s.options,a=r.id,l=wd(a,r),c=It(r.type,s.dtype);(r.position===void 0||X0(r.position,l)!==X0(s.dposition))&&(r.position=s.dposition),i[a]=!0;let u=null;if(a in n&&n[a].type===c)u=n[a];else{const d=Kn.getScale(c);u=new d({id:a,type:c,ctx:this.ctx,chart:this}),n[u.id]=u}u.init(r,t)}),te(i,(s,r)=>{s||delete n[r]}),te(n,s=>{Ji.configure(this,s,s.options),Ji.addBox(this,s)})}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,n=t.length;if(t.sort((i,o)=>i.index-o.index),n>e){for(let i=e;ie.length&&delete this._stacks,t.forEach((n,i)=>{e.filter(o=>o===n._dataset).length===0&&this._destroyDatasetMeta(i)})}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let n,i;for(this._removeUnreferencedMetasets(),n=0,i=e.length;n{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const n=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),i=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let s=0;for(let l=0,c=this.data.datasets.length;l{l.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Y0("z","_idx"));const{_active:r,_lastEvent:a}=this;a?this._eventHandler(a,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){te(this.scales,t=>{Ji.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),n=new Set(t.events);(!d0(e,n)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:n,start:i,count:o}of e){const s=n==="_removeElements"?-o:o;G6(t,i,s)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,n=o=>new Set(t.filter(s=>s[0]===o).map((s,r)=>r+","+s.splice(1).join(","))),i=n(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Ji.update(this,this.width,this.height,t);const e=this.chartArea,n=e.width<=0||e.height<=0;this._layers=[],te(this.boxes,i=>{n&&i.position==="chartArea"||(i.configure&&i.configure(),this._layers.push(...i._layers()))},this),this._layers.forEach((i,o)=>{i._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,n=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,n={meta:t,index:t.index,cancelable:!0},i=ty(this,t);this.notifyPlugins("beforeDatasetDraw",n)!==!1&&(i&&mu(e,i),t.controller.draw(),i&&vu(e),n.cancelable=!1,this.notifyPlugins("afterDatasetDraw",n))}isPointInArea(t){return zr(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,n,i){const o=W5.modes[e];return typeof o=="function"?o(this,t,n,i):[]}getDatasetMeta(t){const e=this.data.datasets[t],n=this._metasets;let i=n.filter(o=>o&&o._dataset===e).pop();return i||(i={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},n.push(i)),i}getContext(){return this.$context||(this.$context=Ko(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const n=this.getDatasetMeta(t);return typeof n.hidden=="boolean"?!n.hidden:!e.hidden}setDatasetVisibility(t,e){const n=this.getDatasetMeta(t);n.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,n){const i=n?"show":"hide",o=this.getDatasetMeta(t),s=o.controller._resolveAnimations(void 0,i);Fl(e)?(o.data[e].hidden=!n,this.update()):(this.setDatasetVisibility(t,n),s.update(o,{visible:n}),this.update(r=>r.datasetIndex===t?i:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),pi.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,o,s),t[o]=s},i=(o,s,r)=>{o.offsetX=s,o.offsetY=r,this._eventHandler(o)};te(this.options.events,o=>n(o,i))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,n=(a,l)=>{e.addEventListener(this,a,l),t[a]=l},i=(a,l)=>{t[a]&&(e.removeEventListener(this,a,l),delete t[a])},o=(a,l)=>{this.canvas&&this.resize(a,l)};let s;const r=()=>{i("attach",r),this.attached=!0,this.resize(),n("resize",o),n("detach",s)};s=()=>{this.attached=!1,i("resize",o),this._stop(),this._resize(0,0),n("attach",r)},e.isAttached(this.canvas)?r():s()}unbindEvents(){te(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},te(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,n){const i=n?"set":"remove";let o,s,r,a;for(e==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+i+"DatasetHoverStyle"]()),r=0,a=t.length;r{const s=this.getDatasetMeta(i);if(!s)throw new Error("No dataset found at index "+i);return{datasetIndex:i,element:s.data[o],index:o}});!Nl(n,e)&&(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,e))}notifyPlugins(t,e,n){return this._plugins.notify(this,t,e,n)}isPluginEnabled(t){return this._plugins._cache.filter(e=>e.plugin.id===t).length===1}_updateHoverStyles(t,e,n){const i=this.options.hover,o=(a,l)=>a.filter(c=>!l.some(u=>c.datasetIndex===u.datasetIndex&&c.index===u.index)),s=o(e,t),r=n?t:o(t,e);s.length&&this.updateHoverStyle(s,i.mode,!1),r.length&&i.mode&&this.updateHoverStyle(r,i.mode,!0)}_eventHandler(t,e){const n={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},i=s=>(s.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",n,i)===!1)return;const o=this._handleEvent(t,e,n.inChartArea);return n.cancelable=!1,this.notifyPlugins("afterEvent",n,i),(o||n.changed)&&this.render(),this}_handleEvent(t,e,n){const{_active:i=[],options:o}=this,s=e,r=this._getActiveElements(t,i,n,s),a=oT(t),l=K6(t,this._lastEvent,n,a);n&&(this._lastEvent=null,le(o.onHover,[t,r,this],this),a&&le(o.onClick,[t,r,this],this));const c=!Nl(r,i);return(c||e)&&(this._active=r,this._updateHoverStyles(r,i,e)),this._lastEvent=l,c}_getActiveElements(t,e,n,i){if(t.type==="mouseout")return[];if(!n)return e;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,i)}};function M0(){return te(no.instances,t=>t._plugins.invalidate())}function q6(t,e,n){const{startAngle:i,x:o,y:s,outerRadius:r,innerRadius:a,options:l}=e,{borderWidth:c,borderJoinStyle:u}=l,d=Math.min(c/r,pn(i-n));if(t.beginPath(),t.arc(o,s,r-c/2,i+d/2,n-d/2),a>0){const p=Math.min(c/a,pn(i-n));t.arc(o,s,a+c/2,n-p/2,i+p/2,!0)}else{const p=Math.min(c/2,r*pn(i-n));if(u==="round")t.arc(o,s,p,n-ie/2,i+ie/2,!0);else if(u==="bevel"){const f=2*p*p,v=-f*Math.cos(n+ie/2)+o,g=-f*Math.sin(n+ie/2)+s,w=f*Math.cos(i+ie/2)+o,b=f*Math.sin(i+ie/2)+s;t.lineTo(v,g),t.lineTo(w,b)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip("evenodd")}function X6(t,e,n){const{startAngle:i,pixelMargin:o,x:s,y:r,outerRadius:a,innerRadius:l}=e;let c=o/a;t.beginPath(),t.arc(s,r,a,i-c,n+c),l>o?(c=o/l,t.arc(s,r,l,n+c,i-c,!0)):t.arc(s,r,o,n+Ae,i-Ae),t.closePath(),t.clip()}function Y6(t){return dh(t,["outerStart","outerEnd","innerStart","innerEnd"])}function Z6(t,e,n,i){const o=Y6(t.options.borderRadius),s=(n-e)/2,r=Math.min(s,i*e/2),a=l=>{const c=(n-Math.min(s,l))*i/2;return Me(l,0,Math.min(s,c))};return{outerStart:a(o.outerStart),outerEnd:a(o.outerEnd),innerStart:Me(o.innerStart,0,r),innerEnd:Me(o.innerEnd,0,r)}}function rs(t,e,n,i){return{x:n+t*Math.cos(e),y:i+t*Math.sin(e)}}function zl(t,e,n,i,o,s){const{x:r,y:a,startAngle:l,pixelMargin:c,innerRadius:u}=e,d=Math.max(e.outerRadius+i+n-c,0),p=u>0?u+i+n+c:0;let f=0;const v=o-l;if(i){const nt=u>0?u-i:0,et=d>0?d-i:0,ut=(nt+et)/2,ht=ut!==0?v*ut/(ut+i):v;f=(v-ht)/2}const g=Math.max(.001,v*d-n/ie)/d,w=(v-g)/2,b=l+w+f,S=o-w-f,{outerStart:D,outerEnd:k,innerStart:N,innerEnd:F}=Z6(e,p,d,S-b),j=d-D,I=d-k,X=b+D/j,W=S-k/I,Y=p+N,$=p+F,U=b+N/Y,M=S-F/$;if(t.beginPath(),s){const nt=(X+W)/2;if(t.arc(r,a,d,X,nt),t.arc(r,a,d,nt,W),k>0){const mt=rs(I,W,r,a);t.arc(mt.x,mt.y,k,W,S+Ae)}const et=rs($,S,r,a);if(t.lineTo(et.x,et.y),F>0){const mt=rs($,M,r,a);t.arc(mt.x,mt.y,F,S+Ae,M+Math.PI)}const ut=(S-F/p+(b+N/p))/2;if(t.arc(r,a,p,S-F/p,ut,!0),t.arc(r,a,p,ut,b+N/p,!0),N>0){const mt=rs(Y,U,r,a);t.arc(mt.x,mt.y,N,U+Math.PI,b-Ae)}const ht=rs(j,b,r,a);if(t.lineTo(ht.x,ht.y),D>0){const mt=rs(j,X,r,a);t.arc(mt.x,mt.y,D,b-Ae,X)}}else{t.moveTo(r,a);const nt=Math.cos(X)*d+r,et=Math.sin(X)*d+a;t.lineTo(nt,et);const ut=Math.cos(W)*d+r,ht=Math.sin(W)*d+a;t.lineTo(ut,ht)}t.closePath()}function Q6(t,e,n,i,o){const{fullCircles:s,startAngle:r,circumference:a}=e;let l=e.endAngle;if(s){zl(t,e,n,i,l,o);for(let c=0;c=ie&&f===0&&u!=="miter"&&q6(t,e,g),s||(zl(t,e,n,i,g,o),t.stroke())}class tD extends qo{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:"backgroundColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,n,i){const o=this.getProps(["x","y"],i),{angle:s,distance:r}=Fv(o,{x:e,y:n}),{startAngle:a,endAngle:l,innerRadius:c,outerRadius:u,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),p=(this.options.spacing+this.options.borderWidth)/2,f=It(d,l-a),v=Ir(s,a,l)&&a!==l,g=f>=he||v,w=Do(r,c+p,u+p);return g&&w}getCenterPoint(e){const{x:n,y:i,startAngle:o,endAngle:s,innerRadius:r,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:l,spacing:c}=this.options,u=(o+s)/2,d=(r+a+c+l)/2;return{x:n+Math.cos(u)*d,y:i+Math.sin(u)*d}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:n,circumference:i}=this,o=(n.offset||0)/4,s=(n.spacing||0)/2,r=n.circular;if(this.pixelMargin=n.borderAlign==="inner"?.33:0,this.fullCircles=i>he?Math.floor(i/he):0,i===0||this.innerRadius<0||this.outerRadius<0)return;e.save();const a=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(a)*o,Math.sin(a)*o);const l=1-Math.sin(Math.min(ie,i||0)),c=o*l;e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,Q6(e,this,c,s,r),M6(e,this,c,s,r),e.restore()}}function hy(t,e,n=e){t.lineCap=It(n.borderCapStyle,e.borderCapStyle),t.setLineDash(It(n.borderDash,e.borderDash)),t.lineDashOffset=It(n.borderDashOffset,e.borderDashOffset),t.lineJoin=It(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=It(n.borderWidth,e.borderWidth),t.strokeStyle=It(n.borderColor,e.borderColor)}function eD(t,e,n){t.lineTo(n.x,n.y)}function nD(t){return t.stepped?RT:t.tension||t.cubicInterpolationMode==="monotone"?BT:eD}function py(t,e,n={}){const i=t.length,{start:o=0,end:s=i-1}=n,{start:r,end:a}=e,l=Math.max(o,r),c=Math.min(s,a),u=oa&&s>a;return{count:i,start:l,loop:e.loop,ilen:c(r+(c?a-k:k))%s,D=()=>{g!==w&&(t.lineTo(u,w),t.lineTo(u,g),t.lineTo(u,b))};for(l&&(f=o[S(0)],t.moveTo(f.x,f.y)),p=0;p<=a;++p){if(f=o[S(p)],f.skip)continue;const k=f.x,N=f.y,F=k|0;F===v?(Nw&&(w=N),u=(d*u+k)/++d):(D(),t.lineTo(k,N),v=F,d=0,g=w=N),b=N}D()}function xd(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!n?oD:iD}function sD(t){return t.stepped?h5:t.tension||t.cubicInterpolationMode==="monotone"?p5:wo}function rD(t,e,n,i){let o=e._path;o||(o=e._path=new Path2D,e.path(o,n,i)&&o.closePath()),hy(t,e.options),t.stroke(o)}function aD(t,e,n,i){const{segments:o,options:s}=e,r=xd(e);for(const a of o)hy(t,s,a.style),t.beginPath(),r(t,e,a,{start:n,end:n+i-1})&&t.closePath(),t.stroke()}const lD=typeof Path2D=="function";function uD(t,e,n,i){lD&&!e.options.segment?rD(t,e,n,i):aD(t,e,n,i)}class Ps extends qo{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"&&e!=="fill"};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const o=i.spanGaps?this._loop:this._fullLoop;o5(this._points,i,e,o,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=b5(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,i=e.length;return i&&n[e[i-1].end]}interpolate(e,n){const i=this.options,o=e[n],s=this.points,r=Mv(this,{property:n,start:o,end:o});if(!r.length)return;const a=[],l=sD(i);let c,u;for(c=0,u=r.length;c{a=wu(r,a,o);const l=o[r],c=o[a];i!==null?(s.push({x:l.x,y:i}),s.push({x:c.x,y:i})):n!==null&&(s.push({x:n,y:l.y}),s.push({x:n,y:c.y}))}),s}function wu(t,e,n){for(;e>t;e--){const i=n[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function eg(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}function fy(t,e){let n=[],i=!1;return Te(t)?(i=!0,n=t):n=dD(t,e),n.length?new Ps({points:n,options:{tension:0},_loop:i,_fullLoop:i}):null}function ng(t){return t&&t.fill!==!1}function hD(t,e,n){let i=t[e].fill;const o=[e];let s;if(!n)return i;for(;i!==!1&&o.indexOf(i)===-1;){if(!Ke(i))return i;if(s=t[i],!s)return!1;if(s.visible)return i;o.push(i),i=s.fill}return!1}function pD(t,e,n){const i=vD(t);if(Jt(i))return isNaN(i.value)?!1:i;let o=parseFloat(i);return Ke(o)&&Math.floor(o)===o?fD(i[0],e,o,n):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function fD(t,e,n,i){return(t==="-"||t==="+")&&(n=e+n),n===e||n<0||n>=i?!1:n}function gD(t,e){let n=null;return t==="start"?n=e.bottom:t==="end"?n=e.top:Jt(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function mD(t,e,n){let i;return t==="start"?i=n:t==="end"?i=e.options.reverse?e.min:e.max:Jt(t)?i=t.value:i=e.getBaseValue(),i}function vD(t){const e=t.options,n=e.fill;let i=It(n&&n.target,n);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function yD(t){const{scale:e,index:n,line:i}=t,o=[],s=i.segments,r=i.points,a=bD(e,n);a.push(fy({x:null,y:e.bottom},i));for(let l=0;l=0;--r){const a=o[r].$filler;a&&(a.line.updateControlPoints(s,a.axis),i&&a.fill&&kc(t.ctx,a,s))}},beforeDatasetsDraw(t,e,n){if(n.drawTime!=="beforeDatasetsDraw")return;const i=t.getSortedVisibleDatasetMetas();for(let o=i.length-1;o>=0;--o){const s=i[o].$filler;ng(s)&&kc(t.ctx,s,t.chartArea)}},beforeDatasetDraw(t,e,n){const i=e.meta.$filler;!ng(i)||n.drawTime!=="beforeDatasetDraw"||kc(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const rg=(t,e)=>{let{boxHeight:n=e,boxWidth:i=e}=t;return t.usePointStyle&&(n=Math.min(n,e),i=t.pointStyleWidth||Math.min(i,e)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(e,n)}},DD=(t,e)=>t!==null&&e!==null&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class ag extends qo{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n,i){this.maxWidth=e,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let n=le(e.generateLabels,[this.chart],this)||[];e.filter&&(n=n.filter(i=>e.filter(i,this.chart.data))),e.sort&&(n=n.sort((i,o)=>e.sort(i,o,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:e,ctx:n}=this;if(!e.display){this.width=this.height=0;return}const i=e.labels,o=sn(i.font),s=o.size,r=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=rg(i,s);let c,u;n.font=o.string,this.isHorizontal()?(c=this.maxWidth,u=this._fitRows(r,s,a,l)+10):(u=this.maxHeight,c=this._fitCols(r,o,a,l)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(u,e.maxHeight||this.maxHeight)}_fitRows(e,n,i,o){const{ctx:s,maxWidth:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],u=o+a;let d=e;s.textAlign="left",s.textBaseline="middle";let p=-1,f=-u;return this.legendItems.forEach((v,g)=>{const w=i+n/2+s.measureText(v.text).width;(g===0||c[c.length-1]+w+2*a>r)&&(d+=u,c[c.length-(g>0?0:1)]=0,f+=u,p++),l[g]={left:0,top:f,row:p,width:w,height:o},c[c.length-1]+=w+a}),d}_fitCols(e,n,i,o){const{ctx:s,maxHeight:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],u=r-e;let d=a,p=0,f=0,v=0,g=0;return this.legendItems.forEach((w,b)=>{const{itemWidth:S,itemHeight:D}=OD(i,n,s,w,o);b>0&&f+D+2*a>u&&(d+=p+a,c.push({width:p,height:f}),v+=p+a,g++,p=f=0),l[b]={left:v,top:f,col:g,width:S,height:D},p=Math.max(p,S),f+=D+a}),d+=p,c.push({width:p,height:f}),d}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:o},rtl:s}}=this,r=bs(s,this.left,this.width);if(this.isHorizontal()){let a=0,l=dn(i,this.left+o,this.right-this.lineWidths[a]);for(const c of n)a!==c.row&&(a=c.row,l=dn(i,this.left+o,this.right-this.lineWidths[a])),c.top+=this.top+e+o,c.left=r.leftForLtr(r.x(l),c.width),l+=c.width+o}else{let a=0,l=dn(i,this.top+e+o,this.bottom-this.columnSizes[a].height);for(const c of n)c.col!==a&&(a=c.col,l=dn(i,this.top+e+o,this.bottom-this.columnSizes[a].height)),c.top=l,c.left+=this.left+o,c.left=r.leftForLtr(r.x(c.left),c.width),l+=c.height+o}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const e=this.ctx;mu(e,this),this._draw(),vu(e)}}_draw(){const{options:e,columnSizes:n,lineWidths:i,ctx:o}=this,{align:s,labels:r}=e,a=me.color,l=bs(e.rtl,this.left,this.width),c=sn(r.font),{padding:u}=r,d=c.size,p=d/2;let f;this.drawTitle(),o.textAlign=l.textAlign("left"),o.textBaseline="middle",o.lineWidth=.5,o.font=c.string;const{boxWidth:v,boxHeight:g,itemHeight:w}=rg(r,d),b=function(F,j,I){if(isNaN(v)||v<=0||isNaN(g)||g<0)return;o.save();const X=It(I.lineWidth,1);if(o.fillStyle=It(I.fillStyle,a),o.lineCap=It(I.lineCap,"butt"),o.lineDashOffset=It(I.lineDashOffset,0),o.lineJoin=It(I.lineJoin,"miter"),o.lineWidth=X,o.strokeStyle=It(I.strokeStyle,a),o.setLineDash(It(I.lineDash,[])),r.usePointStyle){const W={radius:g*Math.SQRT2/2,pointStyle:I.pointStyle,rotation:I.rotation,borderWidth:X},Y=l.xPlus(F,v/2),$=j+p;Hv(o,W,Y,$,r.pointStyleWidth&&v)}else{const W=j+Math.max((d-g)/2,0),Y=l.leftForLtr(F,v),$=br(I.borderRadius);o.beginPath(),Object.values($).some(U=>U!==0)?bd(o,{x:Y,y:W,w:v,h:g,radius:$}):o.rect(Y,W,v,g),o.fill(),X!==0&&o.stroke()}o.restore()},S=function(F,j,I){jl(o,I.text,F,j+w/2,c,{strikethrough:I.hidden,textAlign:l.textAlign(I.textAlign)})},D=this.isHorizontal(),k=this._computeTitleHeight();D?f={x:dn(s,this.left+u,this.right-i[0]),y:this.top+u+k,line:0}:f={x:this.left+u,y:dn(s,this.top+k+u,this.bottom-n[0].height),line:0},Xv(this.ctx,e.textDirection);const N=w+u;this.legendItems.forEach((F,j)=>{o.strokeStyle=F.fontColor,o.fillStyle=F.fontColor;const I=o.measureText(F.text).width,X=l.textAlign(F.textAlign||(F.textAlign=r.textAlign)),W=v+p+I;let Y=f.x,$=f.y;l.setWidth(this.width),D?j>0&&Y+W+u>this.right&&($=f.y+=N,f.line++,Y=f.x=dn(s,this.left+u,this.right-i[f.line])):j>0&&$+N>this.bottom&&(Y=f.x=Y+n[f.line].width+u,f.line++,$=f.y=dn(s,this.top+k+u,this.bottom-n[f.line].height));const U=l.x(Y);if(b(U,$,F),Y=bT(X,Y+v+p,D?Y+W:this.right,e.rtl),S(l.x(Y),$,F),D)f.x+=W+u;else if(typeof F.text!="string"){const M=c.lineHeight;f.y+=my(F,M)+u}else f.y+=N}),Yv(this.ctx,e.textDirection)}drawTitle(){const e=this.options,n=e.title,i=sn(n.font),o=Fn(n.padding);if(!n.display)return;const s=bs(e.rtl,this.left,this.width),r=this.ctx,a=n.position,l=i.size/2,c=o.top+l;let u,d=this.left,p=this.width;if(this.isHorizontal())p=Math.max(...this.lineWidths),u=this.top+c,d=dn(e.align,d,this.right-p);else{const v=this.columnSizes.reduce((g,w)=>Math.max(g,w.height),0);u=c+dn(e.align,this.top,this.bottom-v-e.labels.padding-this._computeTitleHeight())}const f=dn(a,d,d+p);r.textAlign=s.textAlign(Iv(a)),r.textBaseline="middle",r.strokeStyle=n.color,r.fillStyle=n.color,r.font=i.string,jl(r,n.text,f,u,i)}_computeTitleHeight(){const e=this.options.title,n=sn(e.font),i=Fn(e.padding);return e.display?n.lineHeight+i.height:0}_getLegendItemAt(e,n){let i,o,s;if(Do(e,this.left,this.right)&&Do(n,this.top,this.bottom)){for(s=this.legendHitBoxes,i=0;is.length>r.length?s:r)),e+n.size/2+i.measureText(o).width}function RD(t,e,n){let i=t;return typeof e.text!="string"&&(i=my(e,n)),i}function my(t,e){const n=t.text?t.text.length:0;return e*n}function BD(t,e){return!!((t==="mousemove"||t==="mouseout")&&(e.onHover||e.onLeave)||e.onClick&&(t==="click"||t==="mouseup"))}var PD={id:"legend",_element:ag,start(t,e,n){const i=t.legend=new ag({ctx:t.ctx,options:n,chart:t});Ji.configure(t,i,n),Ji.addBox(t,i)},stop(t){Ji.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const i=t.legend;Ji.configure(t,i,n),i.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const i=e.datasetIndex,o=n.chart;o.isDatasetVisible(i)?(o.hide(i),e.hidden=!0):(o.show(i),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=t.legend.options;return t._getSortedDatasetMetas().map(l=>{const c=l.controller.getStyle(n?0:void 0),u=Fn(c.borderWidth);return{text:e[l.index].label,fillStyle:c.backgroundColor,fontColor:s,hidden:!l.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(u.width+u.height)/4,strokeStyle:c.borderColor,pointStyle:i||c.pointStyle,rotation:c.rotation,textAlign:o||c.textAlign,borderRadius:r&&(a||c.borderRadius),datasetIndex:l.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};const sr={average(t){if(!t.length)return!1;let e,n,i=new Set,o=0,s=0;for(e=0,n=t.length;er+a)/i.size,y:o/s}},nearest(t,e){if(!t.length)return!1;let n=e.x,i=e.y,o=Number.POSITIVE_INFINITY,s,r,a;for(s=0,r=t.length;s{delete o[f]}),e.headers=We.concat(s,o);const r=[];let a=!0;this.interceptors.request.forEach(function(f){if(typeof f.runWhen=="function"&&f.runWhen(e)===!1)return;a=a&&f.synchronous;const v=e.transitional||Md;v&&v.legacyInterceptorReqResOrdering?r.unshift(f.fulfilled,f.rejected):r.push(f.fulfilled,f.rejected)});const l=[];this.interceptors.response.forEach(function(f){l.push(f.fulfilled,f.rejected)});let c,u=0,d;if(!a){const f=[n0.bind(this),void 0];for(f.unshift(...r),f.push(...l),d=f.length,c=Promise.resolve(e);u{if(!i._listeners)return;let s=i._listeners.length;for(;s-- >0;)i._listeners[s](o);i._listeners=null}),this.promise.then=o=>{let s;const r=new Promise(a=>{i.subscribe(a),s=a}).then(o);return r.cancel=function(){i.unsubscribe(s)},r},e(function(o,s,r){i.reason||(i.reason=new ea(o,s,r),n(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=i=>{e.abort(i)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new Ov(function(n){e=n}),cancel:e}}};function yk(t){return function(e){return t.apply(null,e)}}function bk(t){return L.isObject(t)&&t.isAxiosError===!0}const fd={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(fd).forEach(([t,e])=>{fd[e]=t});function $v(t){const e=new Fo(t),n=lv(Fo.prototype.request,e);return L.extend(n,Fo.prototype,e,{allOwnKeys:!0}),L.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return $v(Io(t,i))},n}const ce=$v(ta);ce.Axios=Fo,ce.CanceledError=ea,ce.CancelToken=vk,ce.isCancel=Cv,ce.VERSION=eh,ce.toFormData=gu,ce.AxiosError=gt,ce.Cancel=ce.CanceledError,ce.all=function(t){return Promise.all(t)},ce.spread=yk,ce.isAxiosError=bk,ce.mergeConfig=Io,ce.AxiosHeaders=We,ce.formToJSON=t=>Ev(L.isHTMLForm(t)?new FormData(t):t),ce.getAdapter=Dv.getAdapter,ce.HttpStatusCode=fd,ce.default=ce;const{Axios:sF,AxiosError:rF,CanceledError:aF,isCancel:lF,CancelToken:uF,VERSION:cF,all:dF,Cancel:hF,isAxiosError:ih,spread:pF,toFormData:fF,AxiosHeaders:gF,HttpStatusCode:mF,formToJSON:vF,getAdapter:yF,mergeConfig:bF,create:_F}=ce;function _k(){const t=ce.create({headers:{requesttoken:CC()??"","X-Requested-With":"XMLHttpRequest"}});return AC(e=>{t.defaults.headers.requesttoken=e}),Object.assign(t,{CancelToken:ce.CancelToken,isCancel:ce.isCancel})}const o0="_nextcloudCsrfTokenReloaded";function wk(t){return async e=>{if(!ih(e))throw e;const{config:n,response:i,request:o}=e,s=o?.responseURL;if(n&&!(o0 in n)&&i?.status===412&&i?.data?.message==="CSRF check failed"){console.warn(`Request to ${s} failed because of a CSRF mismatch. Fetching a new token.`);const r=await SC();return t.defaults.headers.requesttoken=r,t({...n,[o0]:!0,headers:{...n.headers,requesttoken:r}})}throw e}}const s0="_nextcloudMaintenanceModeRetryDelay";function xk(t){return async e=>{if(!ih(e))throw e;const{config:n,response:i,request:o}=e,s=o?.responseURL,r=i?.status,a=i?.headers;let l=n?.[s0]??1;if(r===503&&a?.["x-nextcloud-maintenance-mode"]==="1"&&n?.retryIfMaintenanceMode){if(l*=2,l>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:s}),e;return console.warn(`Request to ${s} failed because of maintenance mode. Retrying in ${l}s`),await new Promise(c=>{setTimeout(c,l*1e3)}),t({...n,[s0]:l})}throw e}}async function Ek(t){if(ih(t)){const{config:e,response:n,request:i}=t,o=i?.responseURL;n?.status===401&&n?.data?.message==="Current user is not logged in"&&e?.reloadExpiredSession&&globalThis.location?.reload&&(console.error(`Request to ${o} failed because the user session expired. Reloading the page …`),globalThis.OC?.reload?globalThis.OC.reload():globalThis.location.reload())}throw t}const Cn=_k();Cn.interceptors.response.use(t=>t,wk(Cn)),Cn.interceptors.response.use(t=>t,xk(Cn)),Cn.interceptors.response.use(t=>t,Ek);const Ck={name:"CogIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Sk=["aria-hidden","aria-label"],Ak=["fill","width","height"],kk={d:"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z"},Tk={key:0};function Dk(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon cog-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",kk,[n.title?(C(),R("title",Tk,A(n.title),1)):st("",!0)])],8,Ak))],16,Sk)}const Ok=Pt(Ck,[["render",Dk]]);function na(t){return t+.5|0}const Hi=(t,e,n)=>Math.max(Math.min(t,n),e);function ir(t){return Hi(na(t*2.55),0,255)}function Yi(t){return Hi(na(t*255),0,255)}function vi(t){return Hi(na(t/2.55)/100,0,1)}function r0(t){return Hi(na(t*100),0,100)}const yn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},gd=[..."0123456789ABCDEF"],$k=t=>gd[t&15],Rk=t=>gd[(t&240)>>4]+gd[t&15],xa=t=>(t&240)>>4===(t&15),Bk=t=>xa(t.r)&&xa(t.g)&&xa(t.b)&&xa(t.a);function Pk(t){var e=t.length,n;return t[0]==="#"&&(e===4||e===5?n={r:255&yn[t[1]]*17,g:255&yn[t[2]]*17,b:255&yn[t[3]]*17,a:e===5?yn[t[4]]*17:255}:(e===7||e===9)&&(n={r:yn[t[1]]<<4|yn[t[2]],g:yn[t[3]]<<4|yn[t[4]],b:yn[t[5]]<<4|yn[t[6]],a:e===9?yn[t[7]]<<4|yn[t[8]]:255})),n}const Nk=(t,e)=>t<255?e(t):"";function Lk(t){var e=Bk(t)?$k:Rk;return t?"#"+e(t.r)+e(t.g)+e(t.b)+Nk(t.a,e):void 0}const Fk=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Rv(t,e,n){const i=e*Math.min(n,1-n),o=(s,r=(s+t/30)%12)=>n-i*Math.max(Math.min(r-3,9-r,1),-1);return[o(0),o(8),o(4)]}function Vk(t,e,n){const i=(o,s=(o+t/60)%6)=>n-n*e*Math.max(Math.min(s,4-s,1),0);return[i(5),i(3),i(1)]}function jk(t,e,n){const i=Rv(t,1,.5);let o;for(e+n>1&&(o=1/(e+n),e*=o,n*=o),o=0;o<3;o++)i[o]*=1-e-n,i[o]+=e;return i}function Uk(t,e,n,i,o){return t===o?(e-n)/i+(e.5?c/(2-o-s):c/(o+s),a=Uk(e,n,i,c,o),a=a*60+.5),[a|0,l||0,r]}function sh(t,e,n,i){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,n,i)).map(Yi)}function rh(t,e,n){return sh(Rv,t,e,n)}function Ik(t,e,n){return sh(jk,t,e,n)}function zk(t,e,n){return sh(Vk,t,e,n)}function Bv(t){return(t%360+360)%360}function Hk(t){const e=Fk.exec(t);let n=255,i;if(!e)return;e[5]!==i&&(n=e[6]?ir(+e[5]):Yi(+e[5]));const o=Bv(+e[2]),s=+e[3]/100,r=+e[4]/100;return e[1]==="hwb"?i=Ik(o,s,r):e[1]==="hsv"?i=zk(o,s,r):i=rh(o,s,r),{r:i[0],g:i[1],b:i[2],a:n}}function Jk(t,e){var n=oh(t);n[0]=Bv(n[0]+e),n=rh(n),t.r=n[0],t.g=n[1],t.b=n[2]}function Wk(t){if(!t)return;const e=oh(t),n=e[0],i=r0(e[1]),o=r0(e[2]);return t.a<255?`hsla(${n}, ${i}%, ${o}%, ${vi(t.a)})`:`hsl(${n}, ${i}%, ${o}%)`}const a0={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},l0={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function Gk(){const t={},e=Object.keys(l0),n=Object.keys(a0);let i,o,s,r,a;for(i=0;i>16&255,s>>8&255,s&255]}return t}let Ea;function Kk(t){Ea||(Ea=Gk(),Ea.transparent=[0,0,0,0]);const e=Ea[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const qk=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Xk(t){const e=qk.exec(t);let n=255,i,o,s;if(e){if(e[7]!==i){const r=+e[7];n=e[8]?ir(r):Hi(r*255,0,255)}return i=+e[1],o=+e[3],s=+e[5],i=255&(e[2]?ir(i):Hi(i,0,255)),o=255&(e[4]?ir(o):Hi(o,0,255)),s=255&(e[6]?ir(s):Hi(s,0,255)),{r:i,g:o,b:s,a:n}}}function Yk(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${vi(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}const yc=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,ss=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Zk(t,e,n){const i=ss(vi(t.r)),o=ss(vi(t.g)),s=ss(vi(t.b));return{r:Yi(yc(i+n*(ss(vi(e.r))-i))),g:Yi(yc(o+n*(ss(vi(e.g))-o))),b:Yi(yc(s+n*(ss(vi(e.b))-s))),a:t.a+n*(e.a-t.a)}}function Ca(t,e,n){if(t){let i=oh(t);i[e]=Math.max(0,Math.min(i[e]+i[e]*n,e===0?360:1)),i=rh(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function Pv(t,e){return t&&Object.assign(e||{},t)}function u0(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Yi(t[3]))):(e=Pv(t,{r:0,g:0,b:0,a:1}),e.a=Yi(e.a)),e}function Qk(t){return t.charAt(0)==="r"?Xk(t):Hk(t)}class Fr{constructor(e){if(e instanceof Fr)return e;const n=typeof e;let i;n==="object"?i=u0(e):n==="string"&&(i=Pk(e)||Kk(e)||Qk(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=Pv(this._rgb);return e&&(e.a=vi(e.a)),e}set rgb(e){this._rgb=u0(e)}rgbString(){return this._valid?Yk(this._rgb):void 0}hexString(){return this._valid?Lk(this._rgb):void 0}hslString(){return this._valid?Wk(this._rgb):void 0}mix(e,n){if(e){const i=this.rgb,o=e.rgb;let s;const r=n===s?.5:n,a=2*r-1,l=i.a-o.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;s=1-c,i.r=255&c*i.r+s*o.r+.5,i.g=255&c*i.g+s*o.g+.5,i.b=255&c*i.b+s*o.b+.5,i.a=r*i.a+(1-r)*o.a,this.rgb=i}return this}interpolate(e,n){return e&&(this._rgb=Zk(this._rgb,e._rgb,n)),this}clone(){return new Fr(this.rgb)}alpha(e){return this._rgb.a=Yi(e),this}clearer(e){const n=this._rgb;return n.a*=1-e,this}greyscale(){const e=this._rgb,n=na(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=n,this}opaquer(e){const n=this._rgb;return n.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return Ca(this._rgb,2,e),this}darken(e){return Ca(this._rgb,2,-e),this}saturate(e){return Ca(this._rgb,1,e),this}desaturate(e){return Ca(this._rgb,1,-e),this}rotate(e){return Jk(this._rgb,e),this}}function hi(){}const Mk=(()=>{let t=0;return()=>t++})();function re(t){return t==null}function Te(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function Wt(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function Ke(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function Jn(t,e){return Ke(t)?t:e}function It(t,e){return typeof t>"u"?e:t}const tT=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100:+t/e,Nv=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*e:+t;function le(t,e,n){if(t&&typeof t.call=="function")return t.apply(n,e)}function te(t,e,n,i){let o,s,r;if(Te(t))for(s=t.length,o=0;ot,x:t=>t.x,y:t=>t.y};function iT(t){const e=t.split("."),n=[];let i="";for(const o of e)i+=o,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function oT(t){const e=iT(t);return n=>{for(const i of e){if(i==="")break;n=n&&n[i]}return n}}function jr(t,e){return(c0[e]||(c0[e]=oT(e)))(t)}function ah(t){return t.charAt(0).toUpperCase()+t.slice(1)}const Fl=t=>typeof t<"u",eo=t=>typeof t=="function",d0=(t,e)=>{if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0};function sT(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}const ie=Math.PI,he=2*ie,rT=he+ie,Vl=Number.POSITIVE_INFINITY,aT=ie/180,Ae=ie/2,po=ie/4,h0=ie*2/3,Fv=Math.log10,As=Math.sign;function mr(t,e,n){return Math.abs(t-e)o-s).pop(),e}function uT(t){return typeof t=="symbol"||typeof t=="object"&&t!==null&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}function Ur(t){return!uT(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function cT(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}function dT(t,e,n){let i,o,s;for(i=0,o=t.length;il&&c=Math.min(e,n)-i&&t<=Math.max(e,n)+i}function lh(t,e,n){n=n||(r=>t[r]1;)s=o+i>>1,n(s)?o=s:i=s;return{lo:o,hi:i}}const Oo=(t,e,n,i)=>lh(t,n,i?o=>{const s=t[o][e];return st[o][e]lh(t,n,i=>t[i][e]>=n);function mT(t,e,n){let i=0,o=t.length;for(;ii&&t[o-1]>n;)o--;return i>0||o{const i="_onData"+ah(n),o=t[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!1,value(...s){const r=o.apply(this,s);return t._chartjs.listeners.forEach(a=>{typeof a[i]=="function"&&a[i](...s)}),r}})})}function g0(t,e){const n=t._chartjs;if(!n)return;const i=n.listeners,o=i.indexOf(e);o!==-1&&i.splice(o,1),!(i.length>0)&&(jv.forEach(s=>{delete t[s]}),delete t._chartjs)}function yT(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const Uv=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function Iv(t,e){let n=[],i=!1;return function(...o){n=o,i||(i=!0,Uv.call(window,()=>{i=!1,t.apply(e,n)}))}}function bT(t,e){let n;return function(...i){return e?(clearTimeout(n),n=setTimeout(t,e,i)):t.apply(this,i),e}}const zv=t=>t==="start"?"left":t==="end"?"right":"center",dn=(t,e,n)=>t==="start"?e:t==="end"?n:(e+n)/2,_T=(t,e,n,i)=>t===(i?"left":"right")?n:t==="center"?(e+n)/2:e;function wT(t,e,n){const i=e.length;let o=0,s=i;if(t._sorted){const{iScale:r,vScale:a,_parsed:l}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,u=r.axis,{min:d,max:p,minDefined:f,maxDefined:v}=r.getUserBounds();if(f){if(o=Math.min(Oo(l,u,d).lo,n?i:Oo(e,u,r.getPixelForValue(d)).lo),c){const g=l.slice(0,o+1).reverse().findIndex(w=>!re(w[a.axis]));o-=Math.max(0,g)}o=Me(o,0,i-1)}if(v){let g=Math.max(Oo(l,r.axis,p,!0).hi+1,n?0:Oo(e,u,r.getPixelForValue(p),!0).hi+1);if(c){const w=l.slice(g-1).findIndex(b=>!re(b[a.axis]));g+=Math.max(0,w)}s=Me(g,o,i)-o}else s=i-o}return{start:o,count:s}}function xT(t){const{xScale:e,yScale:n,_scaleRanges:i}=t,o={xmin:e.min,xmax:e.max,ymin:n.min,ymax:n.max};if(!i)return t._scaleRanges=o,!0;const s=i.xmin!==e.min||i.xmax!==e.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,o),s}const Sa=t=>t===0||t===1,m0=(t,e,n)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-e)*he/n)),v0=(t,e,n)=>Math.pow(2,-10*t)*Math.sin((t-e)*he/n)+1,vr={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*Ae)+1,easeOutSine:t=>Math.sin(t*Ae),easeInOutSine:t=>-.5*(Math.cos(ie*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>Sa(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>Sa(t)?t:m0(t,.075,.3),easeOutElastic:t=>Sa(t)?t:v0(t,.075,.3),easeInOutElastic(t){return Sa(t)?t:t<.5?.5*m0(t*2,.1125,.45):.5+.5*v0(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:t=>1-vr.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?vr.easeInBounce(t*2)*.5:vr.easeOutBounce(t*2-1)*.5+.5};function uh(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function y0(t){return uh(t)?t:new Fr(t)}function bc(t){return uh(t)?t:new Fr(t).saturate(.5).darken(.1).hexString()}const ET=["x","y","borderWidth","radius","tension"],CT=["color","borderColor","backgroundColor"];function ST(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>e!=="onProgress"&&e!=="onComplete"&&e!=="fn"}),t.set("animations",{colors:{type:"color",properties:CT},numbers:{type:"number",properties:ET}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>e|0}}}})}function AT(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const b0=new Map;function kT(t,e){e=e||{};const n=t+JSON.stringify(e);let i=b0.get(n);return i||(i=new Intl.NumberFormat(t,e),b0.set(n,i)),i}function ch(t,e,n){return kT(e,n).format(t)}const TT={values(t){return Te(t)?t:""+t},numeric(t,e,n){if(t===0)return"0";const i=this.chart.options.locale;let o,s=t;if(n.length>1){const c=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(c<1e-4||c>1e15)&&(o="scientific"),s=DT(t,n)}const r=Fv(Math.abs(s)),a=isNaN(r)?1:Math.max(Math.min(-1*Math.floor(r),20),0),l={notation:o,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),ch(t,i,l)}};function DT(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(n)>=1&&t!==Math.floor(t)&&(n=t-Math.floor(t)),n}var Hv={formatters:TT};function OT(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,n)=>n.lineWidth,tickColor:(e,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Hv.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&e!=="callback"&&e!=="parser",_indexable:e=>e!=="borderDash"&&e!=="tickBorderDash"&&e!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:e=>e!=="backdropPadding"&&e!=="callback",_indexable:e=>e!=="backdropPadding"})}const zo=Object.create(null),vd=Object.create(null);function yr(t,e){if(!e)return t;const n=e.split(".");for(let i=0,o=n.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,o)=>bc(o.backgroundColor),this.hoverBorderColor=(i,o)=>bc(o.borderColor),this.hoverColor=(i,o)=>bc(o.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(n)}set(e,n){return _c(this,e,n)}get(e){return yr(this,e)}describe(e,n){return _c(vd,e,n)}override(e,n){return _c(zo,e,n)}route(e,n,i,o){const s=yr(this,e),r=yr(this,i),a="_"+n;Object.defineProperties(s,{[a]:{value:s[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[a],c=r[o];return Wt(l)?Object.assign({},c,l):It(l,c)},set(l){this[a]=l}}})}apply(e){e.forEach(n=>n(this))}}var me=new $T({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[ST,AT,OT]);function RT(t){return!t||re(t.size)||re(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function _0(t,e,n,i,o){let s=e[o];return s||(s=e[o]=t.measureText(o).width,n.push(o)),s>i&&(i=s),i}function fo(t,e,n){const i=t.currentDevicePixelRatio,o=n!==0?Math.max(n/2,.5):0;return Math.round((e-o)*i)/i+o}function w0(t,e){!e&&!t||(e=e||t.getContext("2d"),e.save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function yd(t,e,n,i){Jv(t,e,n,i,null)}function Jv(t,e,n,i,o){let s,r,a,l,c,u,d,p;const f=e.pointStyle,v=e.rotation,g=e.radius;let w=(v||0)*aT;if(f&&typeof f=="object"&&(s=f.toString(),s==="[object HTMLImageElement]"||s==="[object HTMLCanvasElement]")){t.save(),t.translate(n,i),t.rotate(w),t.drawImage(f,-f.width/2,-f.height/2,f.width,f.height),t.restore();return}if(!(isNaN(g)||g<=0)){switch(t.beginPath(),f){default:o?t.ellipse(n,i,o/2,g,0,0,he):t.arc(n,i,g,0,he),t.closePath();break;case"triangle":u=o?o/2:g,t.moveTo(n+Math.sin(w)*u,i-Math.cos(w)*g),w+=h0,t.lineTo(n+Math.sin(w)*u,i-Math.cos(w)*g),w+=h0,t.lineTo(n+Math.sin(w)*u,i-Math.cos(w)*g),t.closePath();break;case"rectRounded":c=g*.516,l=g-c,r=Math.cos(w+po)*l,d=Math.cos(w+po)*(o?o/2-c:l),a=Math.sin(w+po)*l,p=Math.sin(w+po)*(o?o/2-c:l),t.arc(n-d,i-a,c,w-ie,w-Ae),t.arc(n+p,i-r,c,w-Ae,w),t.arc(n+d,i+a,c,w,w+Ae),t.arc(n-p,i+r,c,w+Ae,w+ie),t.closePath();break;case"rect":if(!v){l=Math.SQRT1_2*g,u=o?o/2:l,t.rect(n-u,i-l,2*u,2*l);break}w+=po;case"rectRot":d=Math.cos(w)*(o?o/2:g),r=Math.cos(w)*g,a=Math.sin(w)*g,p=Math.sin(w)*(o?o/2:g),t.moveTo(n-d,i-a),t.lineTo(n+p,i-r),t.lineTo(n+d,i+a),t.lineTo(n-p,i+r),t.closePath();break;case"crossRot":w+=po;case"cross":d=Math.cos(w)*(o?o/2:g),r=Math.cos(w)*g,a=Math.sin(w)*g,p=Math.sin(w)*(o?o/2:g),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+p,i-r),t.lineTo(n-p,i+r);break;case"star":d=Math.cos(w)*(o?o/2:g),r=Math.cos(w)*g,a=Math.sin(w)*g,p=Math.sin(w)*(o?o/2:g),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+p,i-r),t.lineTo(n-p,i+r),w+=po,d=Math.cos(w)*(o?o/2:g),r=Math.cos(w)*g,a=Math.sin(w)*g,p=Math.sin(w)*(o?o/2:g),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+p,i-r),t.lineTo(n-p,i+r);break;case"line":r=o?o/2:Math.cos(w)*g,a=Math.sin(w)*g,t.moveTo(n-r,i-a),t.lineTo(n+r,i+a);break;case"dash":t.moveTo(n,i),t.lineTo(n+Math.cos(w)*(o?o/2:g),i+Math.sin(w)*g);break;case!1:t.closePath();break}t.fill(),e.borderWidth>0&&t.stroke()}}function zr(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.xe.top-n&&t.y0&&s.strokeColor!=="";let l,c;for(t.save(),t.font=o.string,NT(t,s),l=0;l+t||0;function dh(t,e){const n={},i=Wt(e),o=i?Object.keys(e):e,s=Wt(t)?i?r=>It(t[r],t[e[r]]):r=>t[r]:()=>t;for(const r of o)n[r]=IT(s(r));return n}function zT(t){return dh(t,{top:"y",right:"x",bottom:"y",left:"x"})}function br(t){return dh(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Fn(t){const e=zT(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function sn(t,e){t=t||{},e=e||me.font;let n=It(t.size,e.size);typeof n=="string"&&(n=parseInt(n,10));let i=It(t.style,e.style);i&&!(""+i).match(jT)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const o={family:It(t.family,e.family),lineHeight:UT(It(t.lineHeight,e.lineHeight),n),size:n,style:i,weight:It(t.weight,e.weight),string:""};return o.string=RT(o),o}function Aa(t,e,n,i){let o,s,r;for(o=0,s=t.length;on&&a===0?0:a+l;return{min:r(i,-Math.abs(s)),max:r(o,s)}}function Ko(t,e){return Object.assign(Object.create(t),e)}function hh(t,e=[""],n,i,o=()=>t[0]){const s=n||t;typeof i>"u"&&(i=qv("_fallback",t));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:s,_fallback:i,_getTarget:o,override:a=>hh([a,...t],e,s,i)};return new Proxy(r,{deleteProperty(a,l){return delete a[l],delete a._keys,delete t[0][l],!0},get(a,l){return Gv(a,l,()=>ZT(l,e,t,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(a,l){return E0(a).includes(l)},ownKeys(a){return E0(a)},set(a,l,c){const u=a._storage||(a._storage=o());return a[l]=u[l]=c,delete a._keys,!0}})}function ks(t,e,n,i){const o={_cacheable:!1,_proxy:t,_context:e,_subProxy:n,_stack:new Set,_descriptors:Wv(t,i),setContext:s=>ks(t,s,n,i),override:s=>ks(t.override(s),e,n,i)};return new Proxy(o,{deleteProperty(s,r){return delete s[r],delete t[r],!0},get(s,r,a){return Gv(s,r,()=>WT(s,r,a))},getOwnPropertyDescriptor(s,r){return s._descriptors.allKeys?Reflect.has(t,r)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,r)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(s,r){return Reflect.has(t,r)},ownKeys(){return Reflect.ownKeys(t)},set(s,r,a){return t[r]=a,delete s[r],!0}})}function Wv(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scriptable,_indexable:i=e.indexable,_allKeys:o=e.allKeys}=t;return{allKeys:o,scriptable:n,indexable:i,isScriptable:eo(n)?n:()=>n,isIndexable:eo(i)?i:()=>i}}const JT=(t,e)=>t?t+ah(e):e,ph=(t,e)=>Wt(e)&&t!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function Gv(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||e==="constructor")return t[e];const i=n();return t[e]=i,i}function WT(t,e,n){const{_proxy:i,_context:o,_subProxy:s,_descriptors:r}=t;let a=i[e];return eo(a)&&r.isScriptable(e)&&(a=GT(e,a,t,n)),Te(a)&&a.length&&(a=KT(e,a,t,r.isIndexable)),ph(e,a)&&(a=ks(a,o,s&&s[e],r)),a}function GT(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_stack:a}=n;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=e(s,r||i);return a.delete(t),ph(t,l)&&(l=fh(o._scopes,o,t,l)),l}function KT(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_descriptors:a}=n;if(typeof s.index<"u"&&i(t))return e[s.index%e.length];if(Wt(e[0])){const l=e,c=o._scopes.filter(u=>u!==l);e=[];for(const u of l){const d=fh(c,o,t,u);e.push(ks(d,s,r&&r[t],a))}}return e}function Kv(t,e,n){return eo(t)?t(e,n):t}const qT=(t,e)=>t===!0?e:typeof t=="string"?jr(e,t):void 0;function XT(t,e,n,i,o){for(const s of e){const r=qT(n,s);if(r){t.add(r);const a=Kv(r._fallback,n,o);if(typeof a<"u"&&a!==n&&a!==i)return a}else if(r===!1&&typeof i<"u"&&n!==i)return null}return!1}function fh(t,e,n,i){const o=e._rootScopes,s=Kv(e._fallback,n,i),r=[...t,...o],a=new Set;a.add(i);let l=x0(a,r,n,s||n,i);return l===null||typeof s<"u"&&s!==n&&(l=x0(a,r,s,l,i),l===null)?!1:hh(Array.from(a),[""],o,s,()=>YT(e,n,i))}function x0(t,e,n,i,o){for(;n;)n=XT(t,e,n,i,o);return n}function YT(t,e,n){const i=t._getTarget();e in i||(i[e]={});const o=i[e];return Te(o)&&Wt(n)?n:o||{}}function ZT(t,e,n,i){let o;for(const s of e)if(o=qv(JT(s,t),n),typeof o<"u")return ph(t,o)?fh(n,i,t,o):o}function qv(t,e){for(const n of e){if(!n)continue;const i=n[t];if(typeof i<"u")return i}}function E0(t){let e=t._keys;return e||(e=t._keys=QT(t._scopes)),e}function QT(t){const e=new Set;for(const n of t)for(const i of Object.keys(n).filter(o=>!o.startsWith("_")))e.add(i);return Array.from(e)}const MT=Number.EPSILON||1e-14,Ts=(t,e)=>et==="x"?"y":"x";function t5(t,e,n,i){const o=t.skip?e:t,s=e,r=n.skip?e:n,a=md(s,o),l=md(r,s);let c=a/(a+l),u=l/(a+l);c=isNaN(c)?0:c,u=isNaN(u)?0:u;const d=i*c,p=i*u;return{previous:{x:s.x-d*(r.x-o.x),y:s.y-d*(r.y-o.y)},next:{x:s.x+p*(r.x-o.x),y:s.y+p*(r.y-o.y)}}}function e5(t,e,n){const i=t.length;let o,s,r,a,l,c=Ts(t,0);for(let u=0;u!c.skip)),e.cubicInterpolationMode==="monotone")i5(t,o);else{let c=i?t[t.length-1]:t[0];for(s=0,r=t.length;st.ownerDocument.defaultView.getComputedStyle(t,null);function r5(t,e){return yu(t).getPropertyValue(e)}const a5=["top","right","bottom","left"];function Vo(t,e,n){const i={};n=n?"-"+n:"";for(let o=0;o<4;o++){const s=a5[o];i[s]=parseFloat(t[e+"-"+s+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const l5=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function u5(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:o,offsetY:s}=i;let r=!1,a,l;if(l5(o,s,t.target))a=o,l=s;else{const c=e.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,r=!0}return{x:a,y:l,box:r}}function _o(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:i}=e,o=yu(n),s=o.boxSizing==="border-box",r=Vo(o,"padding"),a=Vo(o,"border","width"),{x:l,y:c,box:u}=u5(t,n),d=r.left+(u&&a.left),p=r.top+(u&&a.top);let{width:f,height:v}=e;return s&&(f-=r.width+a.width,v-=r.height+a.height),{x:Math.round((l-d)/f*n.width/i),y:Math.round((c-p)/v*n.height/i)}}function c5(t,e,n){let i,o;if(e===void 0||n===void 0){const s=t&&mh(t);if(!s)e=t.clientWidth,n=t.clientHeight;else{const r=s.getBoundingClientRect(),a=yu(s),l=Vo(a,"border","width"),c=Vo(a,"padding");e=r.width-c.width-l.width,n=r.height-c.height-l.height,i=Ul(a.maxWidth,s,"clientWidth"),o=Ul(a.maxHeight,s,"clientHeight")}}return{width:e,height:n,maxWidth:i||Vl,maxHeight:o||Vl}}const Ji=t=>Math.round(t*10)/10;function d5(t,e,n,i){const o=yu(t),s=Vo(o,"margin"),r=Ul(o.maxWidth,t,"clientWidth")||Vl,a=Ul(o.maxHeight,t,"clientHeight")||Vl,l=c5(t,e,n);let{width:c,height:u}=l;if(o.boxSizing==="content-box"){const d=Vo(o,"border","width"),p=Vo(o,"padding");c-=p.width+d.width,u-=p.height+d.height}return c=Math.max(0,c-s.width),u=Math.max(0,i?c/i:u-s.height),c=Ji(Math.min(c,r,l.maxWidth)),u=Ji(Math.min(u,a,l.maxHeight)),c&&!u&&(u=Ji(c/2)),(e!==void 0||n!==void 0)&&i&&l.height&&u>l.height&&(u=l.height,c=Ji(Math.floor(u*i))),{width:c,height:u}}function C0(t,e,n){const i=e||1,o=Ji(t.height*i),s=Ji(t.width*i);t.height=Ji(t.height),t.width=Ji(t.width);const r=t.canvas;return r.style&&(n||!r.style.height&&!r.style.width)&&(r.style.height=`${t.height}px`,r.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||r.height!==o||r.width!==s?(t.currentDevicePixelRatio=i,r.height=o,r.width=s,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}const h5=(function(){let t=!1;try{const e={get passive(){return t=!0,!1}};gh()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch{}return t})();function S0(t,e){const n=r5(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function wo(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function p5(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:i==="middle"?n<.5?t.y:e.y:i==="after"?n<1?t.y:e.y:n>0?e.y:t.y}}function f5(t,e,n,i){const o={x:t.cp2x,y:t.cp2y},s={x:e.cp1x,y:e.cp1y},r=wo(t,o,n),a=wo(o,s,n),l=wo(s,e,n),c=wo(r,a,n),u=wo(a,l,n);return wo(c,u,n)}const g5=function(t,e){return{x(n){return t+t+e-n},setWidth(n){e=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},m5=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function bs(t,e,n){return t?g5(e,n):m5()}function Yv(t,e){let n,i;(e==="ltr"||e==="rtl")&&(n=t.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=i)}function Zv(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Qv(t){return t==="angle"?{between:Ir,compare:pT,normalize:pn}:{between:Do,compare:(e,n)=>e-n,normalize:e=>e}}function A0({start:t,end:e,count:n,loop:i,style:o}){return{start:t%n,end:e%n,loop:i&&(e-t+1)%n===0,style:o}}function v5(t,e,n){const{property:i,start:o,end:s}=n,{between:r,normalize:a}=Qv(i),l=e.length;let{start:c,end:u,loop:d}=t,p,f;if(d){for(c+=l,u+=l,p=0,f=l;pl(o,D,b)&&a(o,D)!==0,N=()=>a(s,b)===0||l(s,D,b),F=()=>g||k(),j=()=>!g||N();for(let I=u,X=u;I<=d;++I)S=e[I%r],!S.skip&&(b=c(S[i]),b!==D&&(g=l(b,o,s),w===null&&F()&&(w=a(b,o)===0?I:X),w!==null&&j()&&(v.push(A0({start:w,end:I,loop:p,count:r,style:f})),w=null),X=I,D=b));return w!==null&&v.push(A0({start:w,end:d,loop:p,count:r,style:f})),v}function ty(t,e){const n=[],i=t.segments;for(let o=0;oo&&t[s%e].skip;)s--;return s%=e,{start:o,end:s}}function b5(t,e,n,i){const o=t.length,s=[];let r=e,a=t[e],l;for(l=e+1;l<=n;++l){const c=t[l%o];c.skip||c.stop?a.skip||(i=!1,s.push({start:e%o,end:(l-1)%o,loop:i}),e=r=c.stop?l:null):(r=l,a.skip&&(e=l)),a=c}return r!==null&&s.push({start:e%o,end:r%o,loop:i}),s}function _5(t,e){const n=t.points,i=t.options.spanGaps,o=n.length;if(!o)return[];const s=!!t._loop,{start:r,end:a}=y5(n,o,s,i);if(i===!0)return k0(t,[{start:r,end:a,loop:s}],n,e);const l=aa({chart:e,initial:n.initial,numSteps:r,currentStep:Math.min(i-n.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=Uv.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._charts.forEach((i,o)=>{if(!i.running||!i.items.length)return;const s=i.items;let r=s.length-1,a=!1,l;for(;r>=0;--r)l=s[r],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(e),a=!0):(s[r]=s[s.length-1],s.pop());a&&(o.draw(),this._notify(o,i,e,"progress")),s.length||(i.running=!1,this._notify(o,i,e,"complete"),i.initial=!1),n+=s.length}),this._lastDate=e,n===0&&(this._running=!1)}_getAnims(e){const n=this._charts;let i=n.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,i)),i}listen(e,n,i){this._getAnims(e).listeners[n].push(i)}add(e,n){!n||!n.length||this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._charts.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,o)=>Math.max(i,o._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._charts.get(e);return!(!n||!n.running||!n.items.length)}stop(e){const n=this._charts.get(e);if(!n||!n.items.length)return;const i=n.items;let o=i.length-1;for(;o>=0;--o)i[o].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var pi=new C5;const D0="transparent",S5={boolean(t,e,n){return n>.5?e:t},color(t,e,n){const i=y0(t||D0),o=i.valid&&y0(e||D0);return o&&o.valid?o.mix(i,n).hexString():e},number(t,e,n){return t+(e-t)*n}};class A5{constructor(e,n,i,o){const s=n[i];o=Aa([e.to,o,s,e.from]);const r=Aa([e.from,s,o]);this._active=!0,this._fn=e.fn||S5[e.type||typeof r],this._easing=vr[e.easing]||vr.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=i,this._from=r,this._to=o,this._promises=void 0}active(){return this._active}update(e,n,i){if(this._active){this._notify(!1);const o=this._target[this._prop],s=i-this._start,r=this._duration-s;this._start=i,this._duration=Math.floor(Math.max(r,e.duration)),this._total+=s,this._loop=!!e.loop,this._to=Aa([e.to,n,o,e.from]),this._from=Aa([e.from,o,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,i=this._duration,o=this._prop,s=this._from,r=this._loop,a=this._to;let l;if(this._active=s!==a&&(r||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[o]=this._fn(s,a,l)}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,i)=>{e.push({res:n,rej:i})})}_notify(e){const n=e?"res":"rej",i=this._promises||[];for(let o=0;o{const s=e[o];if(!Wt(s))return;const r={};for(const a of n)r[a]=s[a];(Te(s.properties)&&s.properties||[o]).forEach(a=>{(a===o||!i.has(a))&&i.set(a,r)})})}_animateOptions(e,n){const i=n.options,o=T5(e,i);if(!o)return[];const s=this._createAnimations(o,i);return i.$shared&&k5(e.options.$animations,i).then(()=>{e.options=i},()=>{}),s}_createAnimations(e,n){const i=this._properties,o=[],s=e.$animations||(e.$animations={}),r=Object.keys(n),a=Date.now();let l;for(l=r.length-1;l>=0;--l){const c=r[l];if(c.charAt(0)==="$")continue;if(c==="options"){o.push(...this._animateOptions(e,n));continue}const u=n[c];let d=s[c];const p=i.get(c);if(d)if(p&&d.active()){d.update(p,u,a);continue}else d.cancel();if(!p||!p.duration){e[c]=u;continue}s[c]=d=new A5(p,e,c,u),o.push(d)}return o}update(e,n){if(this._properties.size===0){Object.assign(e,n);return}const i=this._createAnimations(e,n);if(i.length)return pi.add(this._chart,i),!0}}function k5(t,e){const n=[],i=Object.keys(e);for(let o=0;o0||!n&&s<0)return o.index}return null}function B0(t,e){const{chart:n,_cachedMeta:i}=t,o=n._stacks||(n._stacks={}),{iScale:s,vScale:r,index:a}=i,l=s.axis,c=r.axis,u=R5(s,r,i),d=e.length;let p;for(let f=0;fn[i].axis===e).shift()}function N5(t,e){return Ko(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function L5(t,e,n){return Ko(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function qs(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){e=e||t._parsed;for(const o of e){const s=o._stacks;if(!s||s[i]===void 0||s[i][n]===void 0)return;delete s[i][n],s[i]._visualValues!==void 0&&s[i]._visualValues[n]!==void 0&&delete s[i]._visualValues[n]}}}const Ec=t=>t==="reset"||t==="none",P0=(t,e)=>e?t:Object.assign({},t),F5=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:iy(n,!0),values:null};class vh{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=wc(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&qs(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,i=this.getDataset(),o=(d,p,f,v)=>d==="x"?p:d==="r"?v:f,s=n.xAxisID=It(i.xAxisID,xc(e,"x")),r=n.yAxisID=It(i.yAxisID,xc(e,"y")),a=n.rAxisID=It(i.rAxisID,xc(e,"r")),l=n.indexAxis,c=n.iAxisID=o(l,s,r,a),u=n.vAxisID=o(l,r,s,a);n.xScale=this.getScaleForId(s),n.yScale=this.getScaleForId(r),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(c),n.vScale=this.getScaleForId(u)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&g0(this._data,this),e._stacked&&qs(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),i=this._data;if(Wt(n)){const o=this._cachedMeta;this._data=$5(n,o)}else if(i!==n){if(i){g0(i,this);const o=this._cachedMeta;qs(o),o._parsed=[]}n&&Object.isExtensible(n)&&vT(n,this),this._syncList=[],this._data=n}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const n=this._cachedMeta,i=this.getDataset();let o=!1;this._dataCheck();const s=n._stacked;n._stacked=wc(n.vScale,n),n.stack!==i.stack&&(o=!0,qs(n),n.stack=i.stack),this._resyncElements(e),(o||s!==n._stacked)&&(B0(this,n._parsed),n._stacked=wc(n.vScale,n))}configure(){const e=this.chart.config,n=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),n,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,n){const{_cachedMeta:i,_data:o}=this,{iScale:s,_stacked:r}=i,a=s.axis;let l=e===0&&n===o.length?!0:i._sorted,c=e>0&&i._parsed[e-1],u,d,p;if(this._parsing===!1)i._parsed=o,i._sorted=!0,p=o;else{Te(o[e])?p=this.parseArrayData(i,o,e,n):Wt(o[e])?p=this.parseObjectData(i,o,e,n):p=this.parsePrimitiveData(i,o,e,n);const f=()=>d[a]===null||c&&d[a]g||d=0;--p)if(!v()){this.updateRangeFromParsed(c,e,f,l);break}}return c}getAllParsedValues(e){const n=this._cachedMeta._parsed,i=[];let o,s,r;for(o=0,s=n.length;o=0&&ethis.getContext(i,o,n),g=c.resolveNamedOptions(p,f,v,d);return g.$shared&&(g.$shared=l,s[r]=Object.freeze(P0(g,l))),g}_resolveAnimations(e,n,i){const o=this.chart,s=this._cachedDataOpts,r=`animation-${n}`,a=s[r];if(a)return a;let l;if(o.options.animation!==!1){const u=this.chart.config,d=u.datasetAnimationScopeKeys(this._type,n),p=u.getOptionScopes(this.getDataset(),d);l=u.createResolver(p,this.getContext(e,i,n))}const c=new ny(o,l&&l.animations);return l&&l._cacheable&&(s[r]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||Ec(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const i=this.resolveDataElementOptions(e,n),o=this._sharedOptions,s=this.getSharedOptions(i),r=this.includeOptions(n,s)||s!==o;return this.updateSharedOptions(s,n,i),{sharedOptions:s,includeOptions:r}}updateElement(e,n,i,o){Ec(o)?Object.assign(e,i):this._resolveAnimations(n,o).update(e,i)}updateSharedOptions(e,n,i){e&&!Ec(n)&&this._resolveAnimations(void 0,n).update(e,i)}_setStyle(e,n,i,o){e.active=o;const s=this.getStyle(n,o);this._resolveAnimations(n,i,o).update(e,{options:!o&&this.getSharedOptions(s)||s})}removeHoverStyle(e,n,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,n,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,i=this._cachedMeta.data;for(const[a,l,c]of this._syncList)this[a](l,c);this._syncList=[];const o=i.length,s=n.length,r=Math.min(s,o);r&&this.parse(0,r),s>o?this._insertElements(o,s-o,e):s{for(c.length+=n,a=c.length-1;a>=r;a--)c[a]=c[a-n]};for(l(s),a=e;aIr(D,a,l,!0)?1:Math.max(k,k*n,N,N*n),v=(D,k,N)=>Ir(D,a,l,!0)?-1:Math.min(k,k*n,N,N*n),g=f(0,c,d),w=f(Ae,u,p),b=v(ie,c,d),S=v(ie+Ae,u,p);i=(g-b)/2,o=(w-S)/2,s=-(g+b)/2,r=-(w+S)/2}return{ratioX:i,ratioY:o,offsetX:s,offsetY:r}}class j5 extends vh{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:e=>e!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data,{labels:{pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=e.legend.options;return n.labels.length&&n.datasets.length?n.labels.map((l,c)=>{const u=e.getDatasetMeta(0).controller.getStyle(c);return{text:l,fillStyle:u.backgroundColor,fontColor:s,hidden:!e.getDataVisibility(c),lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:u.borderWidth,strokeStyle:u.borderColor,textAlign:o,pointStyle:i,borderRadius:r&&(a||u.borderRadius),index:c}}):[]}},onClick(e,n,i){i.chart.toggleDataVisibility(n.index),i.chart.update()}}}};constructor(e,n){super(e,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,n){const i=this.getDataset().data,o=this._cachedMeta;if(this._parsing===!1)o._parsed=i;else{let s=l=>+i[l];if(Wt(i[e])){const{key:l="value"}=this._parsing;s=c=>+jr(i[c],l)}let r,a;for(r=e,a=e+n;r0&&!isNaN(e)?he*(Math.abs(e)/n):0}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart,o=i.data.labels||[],s=ch(n._parsed[e],i.options.locale);return{label:o[e]||"",value:s}}getMaxBorderWidth(e){let n=0;const i=this.chart;let o,s,r,a,l;if(!e){for(o=0,s=i.data.datasets.length;o0&&this.getParsed(n-1);for(let N=0;N=S){j.skip=!0;continue}const I=this.getParsed(N),X=re(I[f]),J=j[p]=r.getPixelForValue(I[p],N),Y=j[f]=s||X?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,I,l):I[f],N);j.skip=isNaN(J)||isNaN(Y)||X,j.stop=N>0&&Math.abs(I[p]-k[p])>w,g&&(j.parsed=I,j.raw=c.data[N]),d&&(j.options=u||this.resolveDataElementOptions(N,F.active?"active":o)),b||this.updateElement(F,N,j,o),k=I}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,i=n.options&&n.options.borderWidth||0,o=e.data||[];if(!o.length)return i;const s=o[0].size(this.resolveDataElementOptions(0)),r=o[o.length-1].size(this.resolveDataElementOptions(o.length-1));return Math.max(i,s,r)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}function go(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class yh{static override(e){Object.assign(yh.prototype,e)}options;constructor(e){this.options=e||{}}init(){}formats(){return go()}parse(){return go()}format(){return go()}add(){return go()}diff(){return go()}startOf(){return go()}endOf(){return go()}}var U5={_date:yh};function I5(t,e,n,i){const{controller:o,data:s,_sorted:r}=t,a=o._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&e===a.axis&&e!=="r"&&r&&s.length){const c=a._reversePixels?gT:Oo;if(i){if(o._sharedOptions){const u=s[0],d=typeof u.getRange=="function"&&u.getRange(e);if(d){const p=c(s,e,n-d),f=c(s,e,n+d);return{lo:p.lo,hi:f.hi}}}}else{const u=c(s,e,n);if(l){const{vScale:d}=o._cachedMeta,{_parsed:p}=t,f=p.slice(0,u.lo+1).reverse().findIndex(g=>!re(g[d.axis]));u.lo-=Math.max(0,f);const v=p.slice(u.hi).findIndex(g=>!re(g[d.axis]));u.hi+=Math.max(0,v)}return u}}return{lo:0,hi:s.length-1}}function _u(t,e,n,i,o){const s=t.getSortedVisibleDatasetMetas(),r=n[e];for(let a=0,l=s.length;a{l[r]&&l[r](e[n],o)&&(s.push({element:l,datasetIndex:c,index:u}),a=a||l.inRange(e.x,e.y,o))}),i&&!a?[]:s}var W5={modes:{index(t,e,n,i){const o=_o(e,t),s=n.axis||"x",r=n.includeInvisible||!1,a=n.intersect?Cc(t,o,s,i,r):Sc(t,o,s,!1,i,r),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(c=>{const u=a[0].index,d=c.data[u];d&&!d.skip&&l.push({element:d,datasetIndex:c.index,index:u})}),l):[]},dataset(t,e,n,i){const o=_o(e,t),s=n.axis||"xy",r=n.includeInvisible||!1;let a=n.intersect?Cc(t,o,s,i,r):Sc(t,o,s,!1,i,r);if(a.length>0){const l=a[0].datasetIndex,c=t.getDatasetMeta(l).data;a=[];for(let u=0;un.pos===e)}function L0(t,e){return t.filter(n=>oy.indexOf(n.pos)===-1&&n.box.axis===e)}function Ys(t,e){return t.sort((n,i)=>{const o=e?i:n,s=e?n:i;return o.weight===s.weight?o.index-s.index:o.weight-s.weight})}function G5(t){const e=[];let n,i,o,s,r,a;for(n=0,i=(t||[]).length;nc.box.fullSize),!0),i=Ys(Xs(e,"left"),!0),o=Ys(Xs(e,"right")),s=Ys(Xs(e,"top"),!0),r=Ys(Xs(e,"bottom")),a=L0(e,"x"),l=L0(e,"y");return{fullSize:n,leftAndTop:i.concat(s),rightAndBottom:o.concat(l).concat(r).concat(a),chartArea:Xs(e,"chartArea"),vertical:i.concat(o).concat(l),horizontal:s.concat(r).concat(a)}}function F0(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function sy(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function Y5(t,e,n,i){const{pos:o,box:s}=n,r=t.maxPadding;if(!Wt(o)){n.size&&(t[o]-=n.size);const d=i[n.stack]||{size:0,count:1};d.size=Math.max(d.size,n.horizontal?s.height:s.width),n.size=d.size/d.count,t[o]+=n.size}s.getPadding&&sy(r,s.getPadding());const a=Math.max(0,e.outerWidth-F0(r,t,"left","right")),l=Math.max(0,e.outerHeight-F0(r,t,"top","bottom")),c=a!==t.w,u=l!==t.h;return t.w=a,t.h=l,n.horizontal?{same:c,other:u}:{same:u,other:c}}function Z5(t){const e=t.maxPadding;function n(i){const o=Math.max(e[i]-t[i],0);return t[i]+=o,o}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function Q5(t,e){const n=e.maxPadding;function i(o){const s={left:0,top:0,right:0,bottom:0};return o.forEach(r=>{s[r]=Math.max(e[r],n[r])}),s}return i(t?["left","right"]:["top","bottom"])}function or(t,e,n,i){const o=[];let s,r,a,l,c,u;for(s=0,r=t.length,c=0;s{typeof g.beforeLayout=="function"&&g.beforeLayout()});const u=l.reduce((g,w)=>w.box.options&&w.box.options.display===!1?g:g+1,0)||1,d=Object.freeze({outerWidth:e,outerHeight:n,padding:o,availableWidth:s,availableHeight:r,vBoxMaxWidth:s/2/u,hBoxMaxHeight:r/2}),p=Object.assign({},o);sy(p,Fn(i));const f=Object.assign({maxPadding:p,w:s,h:r,x:o.left,y:o.top},o),v=q5(l.concat(c),d);or(a.fullSize,f,d,v),or(l,f,d,v),or(c,f,d,v)&&or(l,f,d,v),Z5(f),V0(a.leftAndTop,f,d,v),f.x+=f.w,f.y+=f.h,V0(a.rightAndBottom,f,d,v),t.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},te(a.chartArea,g=>{const w=g.box;Object.assign(w,t.chartArea),w.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})})}};class ry{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,i){}removeEventListener(e,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,i,o){return n=Math.max(0,n||e.width),i=i||e.height,{width:n,height:Math.max(0,o?Math.floor(n/o):i)}}isAttached(e){return!0}updateConfig(e){}}class M5 extends ry{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const Za="$chartjs",t6={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},j0=t=>t===null||t==="";function e6(t,e){const n=t.style,i=t.getAttribute("height"),o=t.getAttribute("width");if(t[Za]={initial:{height:i,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",j0(o)){const s=S0(t,"width");s!==void 0&&(t.width=s)}if(j0(i))if(t.style.height==="")t.height=t.width/(e||2);else{const s=S0(t,"height");s!==void 0&&(t.height=s)}return t}const ay=h5?{passive:!0}:!1;function n6(t,e,n){t&&t.addEventListener(e,n,ay)}function i6(t,e,n){t&&t.canvas&&t.canvas.removeEventListener(e,n,ay)}function o6(t,e){const n=t6[t.type]||t.type,{x:i,y:o}=_o(t,e);return{type:n,chart:e,native:t,x:i!==void 0?i:null,y:o!==void 0?o:null}}function Il(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function s6(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||Il(a.addedNodes,i),r=r&&!Il(a.removedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}function r6(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||Il(a.removedNodes,i),r=r&&!Il(a.addedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}const Hr=new Map;let U0=0;function ly(){const t=window.devicePixelRatio;t!==U0&&(U0=t,Hr.forEach((e,n)=>{n.currentDevicePixelRatio!==t&&e()}))}function a6(t,e){Hr.size||window.addEventListener("resize",ly),Hr.set(t,e)}function l6(t){Hr.delete(t),Hr.size||window.removeEventListener("resize",ly)}function u6(t,e,n){const i=t.canvas,o=i&&mh(i);if(!o)return;const s=Iv((a,l)=>{const c=o.clientWidth;n(a,l),c{const l=a[0],c=l.contentRect.width,u=l.contentRect.height;c===0&&u===0||s(c,u)});return r.observe(o),a6(t,s),r}function Ac(t,e,n){n&&n.disconnect(),e==="resize"&&l6(t)}function c6(t,e,n){const i=t.canvas,o=Iv(s=>{t.ctx!==null&&n(o6(s,t))},t);return n6(i,e,o),o}class d6 extends ry{acquireContext(e,n){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(e6(e,n),i):null}releaseContext(e){const n=e.canvas;if(!n[Za])return!1;const i=n[Za].initial;["height","width"].forEach(s=>{const r=i[s];re(r)?n.removeAttribute(s):n.setAttribute(s,r)});const o=i.style||{};return Object.keys(o).forEach(s=>{n.style[s]=o[s]}),n.width=n.width,delete n[Za],!0}addEventListener(e,n,i){this.removeEventListener(e,n);const o=e.$proxies||(e.$proxies={}),s={attach:s6,detach:r6,resize:u6}[n]||c6;o[n]=s(e,n,i)}removeEventListener(e,n){const i=e.$proxies||(e.$proxies={}),o=i[n];o&&(({attach:Ac,detach:Ac,resize:Ac}[n]||i6)(e,n,o),i[n]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,i,o){return d5(e,n,i,o)}isAttached(e){const n=e&&mh(e);return!!(n&&n.isConnected)}}function h6(t){return!gh()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?M5:d6}let qo=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:e,y:n}}hasValue(){return Ur(this.x)&&Ur(this.y)}getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={};return t.forEach(o=>{i[o]=n[o]&&n[o].active()?n[o]._to:this[o]}),i}};function p6(t,e){const n=t.options.ticks,i=f6(t),o=Math.min(n.maxTicksLimit||i,i),s=n.major.enabled?m6(e):[],r=s.length,a=s[0],l=s[r-1],c=[];if(r>o)return v6(e,c,s,r/o),c;const u=g6(s,e,o);if(r>0){let d,p;const f=r>1?Math.round((l-a)/(r-1)):null;for(Oa(e,c,u,re(f)?0:a-f,a),d=0,p=r-1;do)return l}return Math.max(o,1)}function m6(t){const e=[];let n,i;for(n=0,i=t.length;nt==="left"?"right":t==="right"?"left":t,I0=(t,e,n)=>e==="top"||e==="left"?t[e]+n:t[e]-n,z0=(t,e)=>Math.min(e||t,t);function H0(t,e){const n=[],i=t.length/e,o=t.length;let s=0;for(;sr+a)))return l}function w6(t,e){te(t,n=>{const i=n.gc,o=i.length/2;let s;if(o>e){for(s=0;si?i:n,i=o&&n>i?n:i,{min:Jn(n,Jn(i,n)),max:Jn(i,Jn(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){le(this.options.beforeUpdate,[this])}update(e,n,i){const{beginAtZero:o,grace:s,ticks:r}=this.options,a=r.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=HT(this,s,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a=s||i<=1||!this.isHorizontal()){this.labelRotation=o;return}const u=this._getLabelSizes(),d=u.widest.width,p=u.highest.height,f=Me(this.chart.width-d,0,this.maxWidth);a=e.offset?this.maxWidth/i:f/(i-1),d+6>a&&(a=f/(i-(e.offset?.5:1)),l=this.maxHeight-Zs(e.grid)-n.padding-J0(e.title,this.chart.options.font),c=Math.sqrt(d*d+p*p),r=hT(Math.min(Math.asin(Me((u.highest.height+6)/a,-1,1)),Math.asin(Me(l/c,-1,1))-Math.asin(Me(p/c,-1,1)))),r=Math.max(o,Math.min(s,r))),this.labelRotation=r}afterCalculateLabelRotation(){le(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){le(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:i,title:o,grid:s}}=this,r=this._isVisible(),a=this.isHorizontal();if(r){const l=J0(o,n.options.font);if(a?(e.width=this.maxWidth,e.height=Zs(s)+l):(e.height=this.maxHeight,e.width=Zs(s)+l),i.display&&this.ticks.length){const{first:c,last:u,widest:d,highest:p}=this._getLabelSizes(),f=i.padding*2,v=xi(this.labelRotation),g=Math.cos(v),w=Math.sin(v);if(a){const b=i.mirror?0:w*d.width+g*p.height;e.height=Math.min(this.maxHeight,e.height+b+f)}else{const b=i.mirror?0:g*d.width+w*p.height;e.width=Math.min(this.maxWidth,e.width+b+f)}this._calculatePadding(c,u,w,g)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,i,o){const{ticks:{align:s,padding:r},position:a}=this.options,l=this.labelRotation!==0,c=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const u=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let p=0,f=0;l?c?(p=o*e.width,f=i*n.height):(p=i*e.height,f=o*n.width):s==="start"?f=n.width:s==="end"?p=e.width:s!=="inner"&&(p=e.width/2,f=n.width/2),this.paddingLeft=Math.max((p-u+r)*this.width/(this.width-u),0),this.paddingRight=Math.max((f-d+r)*this.width/(this.width-d),0)}else{let u=n.height/2,d=e.height/2;s==="start"?(u=0,d=e.height):s==="end"&&(u=n.height,d=0),this.paddingTop=u+r,this.paddingBottom=d+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){le(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return n==="top"||n==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let n,i;for(n=0,i=e.length;n({width:r[X]||0,height:a[X]||0});return{first:I(0),last:I(n-1),widest:I(F),highest:I(j),widths:r,heights:a}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return fT(this._alignToPixels?fo(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&ea*o?a/i:l/o:l*o0}_computeGridLineItems(e){const n=this.axis,i=this.chart,o=this.options,{grid:s,position:r,border:a}=o,l=s.offset,c=this.isHorizontal(),u=this.ticks.length+(l?1:0),d=Zs(s),p=[],f=a.setContext(this.getContext()),v=f.display?f.width:0,g=v/2,w=function(nt){return fo(i,nt,v)};let b,S,D,k,N,F,j,I,X,J,Y,$;if(r==="top")b=w(this.bottom),F=this.bottom-d,I=b-g,J=w(e.top)+g,$=e.bottom;else if(r==="bottom")b=w(this.top),J=e.top,$=w(e.bottom)-g,F=b+g,I=this.top+d;else if(r==="left")b=w(this.right),N=this.right-d,j=b-g,X=w(e.left)+g,Y=e.right;else if(r==="right")b=w(this.left),X=e.left,Y=w(e.right)-g,N=b+g,j=this.left+d;else if(n==="x"){if(r==="center")b=w((e.top+e.bottom)/2+.5);else if(Wt(r)){const nt=Object.keys(r)[0],et=r[nt];b=w(this.chart.scales[nt].getPixelForValue(et))}J=e.top,$=e.bottom,F=b+g,I=F+d}else if(n==="y"){if(r==="center")b=w((e.left+e.right)/2);else if(Wt(r)){const nt=Object.keys(r)[0],et=r[nt];b=w(this.chart.scales[nt].getPixelForValue(et))}N=b-g,j=N-d,X=e.left,Y=e.right}const U=It(o.ticks.maxTicksLimit,u),M=Math.max(1,Math.ceil(u/U));for(S=0;S0&&(Dt-=Vt/2);break}Tt={left:Dt,top:wt,width:Vt+Ft.width,height:Xt+Ft.height,color:nt.backdropColor}}w.push({label:k,font:X,textOffset:$,options:{rotation:g,color:ut,strokeColor:ht,strokeWidth:mt,textAlign:vt,textBaseline:U,translation:[N,F],backdrop:Tt}})}return w}_getXAxisLabelAlignment(){const{position:e,ticks:n}=this.options;if(-xi(this.labelRotation))return e==="top"?"left":"right";let i="center";return n.align==="start"?i="left":n.align==="end"?i="right":n.align==="inner"&&(i="inner"),i}_getYAxisLabelAlignment(e){const{position:n,ticks:{crossAlign:i,mirror:o,padding:s}}=this.options,r=this._getLabelSizes(),a=e+s,l=r.widest.width;let c,u;return n==="left"?o?(u=this.right+s,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u+=l)):(u=this.right-a,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u=this.left)):n==="right"?o?(u=this.left+s,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u-=l)):(u=this.left+a,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u=this.right)):c="right",{textAlign:c,x:u}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:e.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){const{ctx:e,options:{backgroundColor:n},left:i,top:o,width:s,height:r}=this;n&&(e.save(),e.fillStyle=n,e.fillRect(i,o,s,r),e.restore())}getLineWidthForValue(e){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const i=this.ticks.findIndex(o=>o.value===e);return i>=0?n.setContext(this.getContext(i)).lineWidth:0}drawGrid(e){const n=this.options.grid,i=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let s,r;const a=(l,c,u)=>{!u.width||!u.color||(i.save(),i.lineWidth=u.width,i.strokeStyle=u.color,i.setLineDash(u.borderDash||[]),i.lineDashOffset=u.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(n.display)for(s=0,r=o.length;s{this.draw(s)}}]:[{z:i,draw:s=>{this.drawBackground(),this.drawGrid(s),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:n,draw:s=>{this.drawLabels(s)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",o=[];let s,r;for(s=0,r=n.length;s{const i=n.split("."),o=i.pop(),s=[t].concat(i).join("."),r=e[n].split("."),a=r.pop(),l=r.join(".");me.route(s,o,l,a)})}function T6(t){return"id"in t&&"defaults"in t}class D6{constructor(){this.controllers=new $a(vh,"datasets",!0),this.elements=new $a(qo,"elements"),this.plugins=new $a(Object,"plugins"),this.scales=new $a(Bs,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,n,i){[...n].forEach(o=>{const s=i||this._getRegistryForType(o);i||s.isForType(o)||s===this.plugins&&o.id?this._exec(e,s,o):te(o,r=>{const a=i||this._getRegistryForType(r);this._exec(e,a,r)})})}_exec(e,n,i){const o=ah(e);le(i["before"+o],[],i),n[e](i),le(i["after"+o],[],i)}_getRegistryForType(e){for(let n=0;ns.filter(a=>!r.some(l=>a.plugin.id===l.plugin.id));this._notify(o(n,i),e,"stop"),this._notify(o(i,n),e,"start")}}function $6(t){const e={},n=[],i=Object.keys(Kn.plugins.items);for(let s=0;s1&&W0(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function G0(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}function V6(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(n.length)return G0(t,"x",n[0])||G0(t,"y",n[0])}return{}}function j6(t,e){const n=zo[t.type]||{scales:{}},i=e.scales||{},o=_d(t.type,e),s=Object.create(null);return Object.keys(i).forEach(r=>{const a=i[r];if(!Wt(a))return console.error(`Invalid scale configuration for scale: ${r}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);const l=wd(r,a,V6(r,t),me.scales[a.type]),c=L6(l,o),u=n.scales||{};s[r]=gr(Object.create(null),[{axis:l},a,u[l],u[c]])}),t.data.datasets.forEach(r=>{const a=r.type||t.type,l=r.indexAxis||_d(a,e),c=(zo[a]||{}).scales||{};Object.keys(c).forEach(u=>{const d=N6(u,l),p=r[d+"AxisID"]||d;s[p]=s[p]||Object.create(null),gr(s[p],[{axis:d},i[p],c[u]])})}),Object.keys(s).forEach(r=>{const a=s[r];gr(a,[me.scales[a.type],me.scale])}),s}function uy(t){const e=t.options||(t.options={});e.plugins=It(e.plugins,{}),e.scales=j6(t,e)}function cy(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function U6(t){return t=t||{},t.data=cy(t.data),uy(t),t}const K0=new Map,dy=new Set;function Ra(t,e){let n=K0.get(t);return n||(n=e(),K0.set(t,n),dy.add(n)),n}const Qs=(t,e,n)=>{const i=jr(e,n);i!==void 0&&t.add(i)};class I6{constructor(e){this._config=U6(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=cy(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),uy(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return Ra(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,n){return Ra(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,`transitions.${n}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,n){return Ra(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,`datasets.${e}`,`elements.${n}`,""]])}pluginScopeKeys(e){const n=e.id,i=this.type;return Ra(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const i=this._scopeCache;let o=i.get(e);return(!o||n)&&(o=new Map,i.set(e,o)),o}getOptionScopes(e,n,i){const{options:o,type:s}=this,r=this._cachedScopes(e,i),a=r.get(n);if(a)return a;const l=new Set;n.forEach(u=>{e&&(l.add(e),u.forEach(d=>Qs(l,e,d))),u.forEach(d=>Qs(l,o,d)),u.forEach(d=>Qs(l,zo[s]||{},d)),u.forEach(d=>Qs(l,me,d)),u.forEach(d=>Qs(l,vd,d))});const c=Array.from(l);return c.length===0&&c.push(Object.create(null)),dy.has(n)&&r.set(n,c),c}chartOptionScopes(){const{options:e,type:n}=this;return[e,zo[n]||{},me.datasets[n]||{},{type:n},me,vd]}resolveNamedOptions(e,n,i,o=[""]){const s={$shared:!0},{resolver:r,subPrefixes:a}=q0(this._resolverCache,e,o);let l=r;if(H6(r,n)){s.$shared=!1,i=eo(i)?i():i;const c=this.createResolver(e,i,a);l=ks(r,i,c)}for(const c of n)s[c]=l[c];return s}createResolver(e,n,i=[""],o){const{resolver:s}=q0(this._resolverCache,e,i);return Wt(n)?ks(s,n,void 0,o):s}}function q0(t,e,n){let i=t.get(e);i||(i=new Map,t.set(e,i));const o=n.join();let s=i.get(o);return s||(s={resolver:hh(e,n),subPrefixes:n.filter(r=>!r.toLowerCase().includes("hover"))},i.set(o,s)),s}const z6=t=>Wt(t)&&Object.getOwnPropertyNames(t).some(e=>eo(t[e]));function H6(t,e){const{isScriptable:n,isIndexable:i}=Wv(t);for(const o of e){const s=n(o),r=i(o),a=(r||s)&&t[o];if(s&&(eo(a)||z6(a))||r&&Te(a))return!0}return!1}var J6="4.5.1";const W6=["top","bottom","left","right","chartArea"];function X0(t,e){return t==="top"||t==="bottom"||W6.indexOf(t)===-1&&e==="x"}function Y0(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}function Z0(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),le(n&&n.onComplete,[t],e)}function G6(t){const e=t.chart,n=e.options.animation;le(n&&n.onProgress,[t],e)}function hy(t){return gh()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Qa={},Q0=t=>{const e=hy(t);return Object.values(Qa).filter(n=>n.canvas===e).pop()};function K6(t,e,n){const i=Object.keys(t);for(const o of i){const s=+o;if(s>=e){const r=t[o];delete t[o],(n>0||s>e)&&(t[s+n]=r)}}}function q6(t,e,n,i){return!n||t.type==="mouseout"?null:i?e:t}let no=class{static defaults=me;static instances=Qa;static overrides=zo;static registry=Kn;static version=J6;static getChart=Q0;static register(...t){Kn.add(...t),M0()}static unregister(...t){Kn.remove(...t),M0()}constructor(t,e){const n=this.config=new I6(e),i=hy(t),o=Q0(i);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const s=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||h6(i)),this.platform.updateConfig(n);const r=this.platform.acquireContext(i,s.aspectRatio),a=r&&r.canvas,l=a&&a.height,c=a&&a.width;if(this.id=Mk(),this.ctx=r,this.canvas=a,this.width=c,this.height=l,this._options=s,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new O6,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=bT(u=>this.update(u),s.resizeDelay||0),this._dataChanges=[],Qa[this.id]=this,!r||!a){console.error("Failed to create chart: can't acquire context from the given item");return}pi.listen(this,"complete",Z0),pi.listen(this,"progress",G6),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:n,height:i,_aspectRatio:o}=this;return re(t)?e&&o?o:i?n/i:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return Kn}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():C0(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return w0(this.canvas,this.ctx),this}stop(){return pi.stop(this),this}resize(t,e){pi.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const n=this.options,i=this.canvas,o=n.maintainAspectRatio&&this.aspectRatio,s=this.platform.getMaximumSize(i,t,e,o),r=n.devicePixelRatio||this.platform.getDevicePixelRatio(),a=this.width?"resize":"attach";this.width=s.width,this.height=s.height,this._aspectRatio=this.aspectRatio,C0(this,r,!0)&&(this.notifyPlugins("resize",{size:s}),le(n.onResize,[this,s],this),this.attached&&this._doResize(a)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};te(t,(e,n)=>{e.id=n})}buildOrUpdateScales(){const t=this.options,e=t.scales,n=this.scales,i=Object.keys(n).reduce((s,r)=>(s[r]=!1,s),{});let o=[];e&&(o=o.concat(Object.keys(e).map(s=>{const r=e[s],a=wd(s,r),l=a==="r",c=a==="x";return{options:r,dposition:l?"chartArea":c?"bottom":"left",dtype:l?"radialLinear":c?"category":"linear"}}))),te(o,s=>{const r=s.options,a=r.id,l=wd(a,r),c=It(r.type,s.dtype);(r.position===void 0||X0(r.position,l)!==X0(s.dposition))&&(r.position=s.dposition),i[a]=!0;let u=null;if(a in n&&n[a].type===c)u=n[a];else{const d=Kn.getScale(c);u=new d({id:a,type:c,ctx:this.ctx,chart:this}),n[u.id]=u}u.init(r,t)}),te(i,(s,r)=>{s||delete n[r]}),te(n,s=>{Wi.configure(this,s,s.options),Wi.addBox(this,s)})}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,n=t.length;if(t.sort((i,o)=>i.index-o.index),n>e){for(let i=e;ie.length&&delete this._stacks,t.forEach((n,i)=>{e.filter(o=>o===n._dataset).length===0&&this._destroyDatasetMeta(i)})}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let n,i;for(this._removeUnreferencedMetasets(),n=0,i=e.length;n{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const n=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),i=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let s=0;for(let l=0,c=this.data.datasets.length;l{l.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Y0("z","_idx"));const{_active:r,_lastEvent:a}=this;a?this._eventHandler(a,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){te(this.scales,t=>{Wi.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),n=new Set(t.events);(!d0(e,n)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:n,start:i,count:o}of e){const s=n==="_removeElements"?-o:o;K6(t,i,s)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,n=o=>new Set(t.filter(s=>s[0]===o).map((s,r)=>r+","+s.splice(1).join(","))),i=n(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Wi.update(this,this.width,this.height,t);const e=this.chartArea,n=e.width<=0||e.height<=0;this._layers=[],te(this.boxes,i=>{n&&i.position==="chartArea"||(i.configure&&i.configure(),this._layers.push(...i._layers()))},this),this._layers.forEach((i,o)=>{i._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,n=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,n={meta:t,index:t.index,cancelable:!0},i=ey(this,t);this.notifyPlugins("beforeDatasetDraw",n)!==!1&&(i&&mu(e,i),t.controller.draw(),i&&vu(e),n.cancelable=!1,this.notifyPlugins("afterDatasetDraw",n))}isPointInArea(t){return zr(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,n,i){const o=W5.modes[e];return typeof o=="function"?o(this,t,n,i):[]}getDatasetMeta(t){const e=this.data.datasets[t],n=this._metasets;let i=n.filter(o=>o&&o._dataset===e).pop();return i||(i={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},n.push(i)),i}getContext(){return this.$context||(this.$context=Ko(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const n=this.getDatasetMeta(t);return typeof n.hidden=="boolean"?!n.hidden:!e.hidden}setDatasetVisibility(t,e){const n=this.getDatasetMeta(t);n.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,n){const i=n?"show":"hide",o=this.getDatasetMeta(t),s=o.controller._resolveAnimations(void 0,i);Fl(e)?(o.data[e].hidden=!n,this.update()):(this.setDatasetVisibility(t,n),s.update(o,{visible:n}),this.update(r=>r.datasetIndex===t?i:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),pi.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,o,s),t[o]=s},i=(o,s,r)=>{o.offsetX=s,o.offsetY=r,this._eventHandler(o)};te(this.options.events,o=>n(o,i))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,n=(a,l)=>{e.addEventListener(this,a,l),t[a]=l},i=(a,l)=>{t[a]&&(e.removeEventListener(this,a,l),delete t[a])},o=(a,l)=>{this.canvas&&this.resize(a,l)};let s;const r=()=>{i("attach",r),this.attached=!0,this.resize(),n("resize",o),n("detach",s)};s=()=>{this.attached=!1,i("resize",o),this._stop(),this._resize(0,0),n("attach",r)},e.isAttached(this.canvas)?r():s()}unbindEvents(){te(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},te(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,n){const i=n?"set":"remove";let o,s,r,a;for(e==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+i+"DatasetHoverStyle"]()),r=0,a=t.length;r{const s=this.getDatasetMeta(i);if(!s)throw new Error("No dataset found at index "+i);return{datasetIndex:i,element:s.data[o],index:o}});!Nl(n,e)&&(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,e))}notifyPlugins(t,e,n){return this._plugins.notify(this,t,e,n)}isPluginEnabled(t){return this._plugins._cache.filter(e=>e.plugin.id===t).length===1}_updateHoverStyles(t,e,n){const i=this.options.hover,o=(a,l)=>a.filter(c=>!l.some(u=>c.datasetIndex===u.datasetIndex&&c.index===u.index)),s=o(e,t),r=n?t:o(t,e);s.length&&this.updateHoverStyle(s,i.mode,!1),r.length&&i.mode&&this.updateHoverStyle(r,i.mode,!0)}_eventHandler(t,e){const n={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},i=s=>(s.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",n,i)===!1)return;const o=this._handleEvent(t,e,n.inChartArea);return n.cancelable=!1,this.notifyPlugins("afterEvent",n,i),(o||n.changed)&&this.render(),this}_handleEvent(t,e,n){const{_active:i=[],options:o}=this,s=e,r=this._getActiveElements(t,i,n,s),a=sT(t),l=q6(t,this._lastEvent,n,a);n&&(this._lastEvent=null,le(o.onHover,[t,r,this],this),a&&le(o.onClick,[t,r,this],this));const c=!Nl(r,i);return(c||e)&&(this._active=r,this._updateHoverStyles(r,i,e)),this._lastEvent=l,c}_getActiveElements(t,e,n,i){if(t.type==="mouseout")return[];if(!n)return e;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,i)}};function M0(){return te(no.instances,t=>t._plugins.invalidate())}function X6(t,e,n){const{startAngle:i,x:o,y:s,outerRadius:r,innerRadius:a,options:l}=e,{borderWidth:c,borderJoinStyle:u}=l,d=Math.min(c/r,pn(i-n));if(t.beginPath(),t.arc(o,s,r-c/2,i+d/2,n-d/2),a>0){const p=Math.min(c/a,pn(i-n));t.arc(o,s,a+c/2,n-p/2,i+p/2,!0)}else{const p=Math.min(c/2,r*pn(i-n));if(u==="round")t.arc(o,s,p,n-ie/2,i+ie/2,!0);else if(u==="bevel"){const f=2*p*p,v=-f*Math.cos(n+ie/2)+o,g=-f*Math.sin(n+ie/2)+s,w=f*Math.cos(i+ie/2)+o,b=f*Math.sin(i+ie/2)+s;t.lineTo(v,g),t.lineTo(w,b)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip("evenodd")}function Y6(t,e,n){const{startAngle:i,pixelMargin:o,x:s,y:r,outerRadius:a,innerRadius:l}=e;let c=o/a;t.beginPath(),t.arc(s,r,a,i-c,n+c),l>o?(c=o/l,t.arc(s,r,l,n+c,i-c,!0)):t.arc(s,r,o,n+Ae,i-Ae),t.closePath(),t.clip()}function Z6(t){return dh(t,["outerStart","outerEnd","innerStart","innerEnd"])}function Q6(t,e,n,i){const o=Z6(t.options.borderRadius),s=(n-e)/2,r=Math.min(s,i*e/2),a=l=>{const c=(n-Math.min(s,l))*i/2;return Me(l,0,Math.min(s,c))};return{outerStart:a(o.outerStart),outerEnd:a(o.outerEnd),innerStart:Me(o.innerStart,0,r),innerEnd:Me(o.innerEnd,0,r)}}function rs(t,e,n,i){return{x:n+t*Math.cos(e),y:i+t*Math.sin(e)}}function zl(t,e,n,i,o,s){const{x:r,y:a,startAngle:l,pixelMargin:c,innerRadius:u}=e,d=Math.max(e.outerRadius+i+n-c,0),p=u>0?u+i+n+c:0;let f=0;const v=o-l;if(i){const nt=u>0?u-i:0,et=d>0?d-i:0,ut=(nt+et)/2,ht=ut!==0?v*ut/(ut+i):v;f=(v-ht)/2}const g=Math.max(.001,v*d-n/ie)/d,w=(v-g)/2,b=l+w+f,S=o-w-f,{outerStart:D,outerEnd:k,innerStart:N,innerEnd:F}=Q6(e,p,d,S-b),j=d-D,I=d-k,X=b+D/j,J=S-k/I,Y=p+N,$=p+F,U=b+N/Y,M=S-F/$;if(t.beginPath(),s){const nt=(X+J)/2;if(t.arc(r,a,d,X,nt),t.arc(r,a,d,nt,J),k>0){const mt=rs(I,J,r,a);t.arc(mt.x,mt.y,k,J,S+Ae)}const et=rs($,S,r,a);if(t.lineTo(et.x,et.y),F>0){const mt=rs($,M,r,a);t.arc(mt.x,mt.y,F,S+Ae,M+Math.PI)}const ut=(S-F/p+(b+N/p))/2;if(t.arc(r,a,p,S-F/p,ut,!0),t.arc(r,a,p,ut,b+N/p,!0),N>0){const mt=rs(Y,U,r,a);t.arc(mt.x,mt.y,N,U+Math.PI,b-Ae)}const ht=rs(j,b,r,a);if(t.lineTo(ht.x,ht.y),D>0){const mt=rs(j,X,r,a);t.arc(mt.x,mt.y,D,b-Ae,X)}}else{t.moveTo(r,a);const nt=Math.cos(X)*d+r,et=Math.sin(X)*d+a;t.lineTo(nt,et);const ut=Math.cos(J)*d+r,ht=Math.sin(J)*d+a;t.lineTo(ut,ht)}t.closePath()}function M6(t,e,n,i,o){const{fullCircles:s,startAngle:r,circumference:a}=e;let l=e.endAngle;if(s){zl(t,e,n,i,l,o);for(let c=0;c=ie&&f===0&&u!=="miter"&&X6(t,e,g),s||(zl(t,e,n,i,g,o),t.stroke())}class eD extends qo{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:"backgroundColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,n,i){const o=this.getProps(["x","y"],i),{angle:s,distance:r}=Vv(o,{x:e,y:n}),{startAngle:a,endAngle:l,innerRadius:c,outerRadius:u,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),p=(this.options.spacing+this.options.borderWidth)/2,f=It(d,l-a),v=Ir(s,a,l)&&a!==l,g=f>=he||v,w=Do(r,c+p,u+p);return g&&w}getCenterPoint(e){const{x:n,y:i,startAngle:o,endAngle:s,innerRadius:r,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:l,spacing:c}=this.options,u=(o+s)/2,d=(r+a+c+l)/2;return{x:n+Math.cos(u)*d,y:i+Math.sin(u)*d}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:n,circumference:i}=this,o=(n.offset||0)/4,s=(n.spacing||0)/2,r=n.circular;if(this.pixelMargin=n.borderAlign==="inner"?.33:0,this.fullCircles=i>he?Math.floor(i/he):0,i===0||this.innerRadius<0||this.outerRadius<0)return;e.save();const a=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(a)*o,Math.sin(a)*o);const l=1-Math.sin(Math.min(ie,i||0)),c=o*l;e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,M6(e,this,c,s,r),tD(e,this,c,s,r),e.restore()}}function py(t,e,n=e){t.lineCap=It(n.borderCapStyle,e.borderCapStyle),t.setLineDash(It(n.borderDash,e.borderDash)),t.lineDashOffset=It(n.borderDashOffset,e.borderDashOffset),t.lineJoin=It(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=It(n.borderWidth,e.borderWidth),t.strokeStyle=It(n.borderColor,e.borderColor)}function nD(t,e,n){t.lineTo(n.x,n.y)}function iD(t){return t.stepped?BT:t.tension||t.cubicInterpolationMode==="monotone"?PT:nD}function fy(t,e,n={}){const i=t.length,{start:o=0,end:s=i-1}=n,{start:r,end:a}=e,l=Math.max(o,r),c=Math.min(s,a),u=oa&&s>a;return{count:i,start:l,loop:e.loop,ilen:c(r+(c?a-k:k))%s,D=()=>{g!==w&&(t.lineTo(u,w),t.lineTo(u,g),t.lineTo(u,b))};for(l&&(f=o[S(0)],t.moveTo(f.x,f.y)),p=0;p<=a;++p){if(f=o[S(p)],f.skip)continue;const k=f.x,N=f.y,F=k|0;F===v?(Nw&&(w=N),u=(d*u+k)/++d):(D(),t.lineTo(k,N),v=F,d=0,g=w=N),b=N}D()}function xd(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!n?sD:oD}function rD(t){return t.stepped?p5:t.tension||t.cubicInterpolationMode==="monotone"?f5:wo}function aD(t,e,n,i){let o=e._path;o||(o=e._path=new Path2D,e.path(o,n,i)&&o.closePath()),py(t,e.options),t.stroke(o)}function lD(t,e,n,i){const{segments:o,options:s}=e,r=xd(e);for(const a of o)py(t,s,a.style),t.beginPath(),r(t,e,a,{start:n,end:n+i-1})&&t.closePath(),t.stroke()}const uD=typeof Path2D=="function";function cD(t,e,n,i){uD&&!e.options.segment?aD(t,e,n,i):lD(t,e,n,i)}class Ps extends qo{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"&&e!=="fill"};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const o=i.spanGaps?this._loop:this._fullLoop;s5(this._points,i,e,o,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=_5(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,i=e.length;return i&&n[e[i-1].end]}interpolate(e,n){const i=this.options,o=e[n],s=this.points,r=ty(this,{property:n,start:o,end:o});if(!r.length)return;const a=[],l=rD(i);let c,u;for(c=0,u=r.length;c{a=wu(r,a,o);const l=o[r],c=o[a];i!==null?(s.push({x:l.x,y:i}),s.push({x:c.x,y:i})):n!==null&&(s.push({x:n,y:l.y}),s.push({x:n,y:c.y}))}),s}function wu(t,e,n){for(;e>t;e--){const i=n[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function eg(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}function gy(t,e){let n=[],i=!1;return Te(t)?(i=!0,n=t):n=hD(t,e),n.length?new Ps({points:n,options:{tension:0},_loop:i,_fullLoop:i}):null}function ng(t){return t&&t.fill!==!1}function pD(t,e,n){let i=t[e].fill;const o=[e];let s;if(!n)return i;for(;i!==!1&&o.indexOf(i)===-1;){if(!Ke(i))return i;if(s=t[i],!s)return!1;if(s.visible)return i;o.push(i),i=s.fill}return!1}function fD(t,e,n){const i=yD(t);if(Wt(i))return isNaN(i.value)?!1:i;let o=parseFloat(i);return Ke(o)&&Math.floor(o)===o?gD(i[0],e,o,n):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function gD(t,e,n,i){return(t==="-"||t==="+")&&(n=e+n),n===e||n<0||n>=i?!1:n}function mD(t,e){let n=null;return t==="start"?n=e.bottom:t==="end"?n=e.top:Wt(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function vD(t,e,n){let i;return t==="start"?i=n:t==="end"?i=e.options.reverse?e.min:e.max:Wt(t)?i=t.value:i=e.getBaseValue(),i}function yD(t){const e=t.options,n=e.fill;let i=It(n&&n.target,n);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function bD(t){const{scale:e,index:n,line:i}=t,o=[],s=i.segments,r=i.points,a=_D(e,n);a.push(gy({x:null,y:e.bottom},i));for(let l=0;l=0;--r){const a=o[r].$filler;a&&(a.line.updateControlPoints(s,a.axis),i&&a.fill&&kc(t.ctx,a,s))}},beforeDatasetsDraw(t,e,n){if(n.drawTime!=="beforeDatasetsDraw")return;const i=t.getSortedVisibleDatasetMetas();for(let o=i.length-1;o>=0;--o){const s=i[o].$filler;ng(s)&&kc(t.ctx,s,t.chartArea)}},beforeDatasetDraw(t,e,n){const i=e.meta.$filler;!ng(i)||n.drawTime!=="beforeDatasetDraw"||kc(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const rg=(t,e)=>{let{boxHeight:n=e,boxWidth:i=e}=t;return t.usePointStyle&&(n=Math.min(n,e),i=t.pointStyleWidth||Math.min(i,e)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(e,n)}},OD=(t,e)=>t!==null&&e!==null&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class ag extends qo{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n,i){this.maxWidth=e,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let n=le(e.generateLabels,[this.chart],this)||[];e.filter&&(n=n.filter(i=>e.filter(i,this.chart.data))),e.sort&&(n=n.sort((i,o)=>e.sort(i,o,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:e,ctx:n}=this;if(!e.display){this.width=this.height=0;return}const i=e.labels,o=sn(i.font),s=o.size,r=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=rg(i,s);let c,u;n.font=o.string,this.isHorizontal()?(c=this.maxWidth,u=this._fitRows(r,s,a,l)+10):(u=this.maxHeight,c=this._fitCols(r,o,a,l)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(u,e.maxHeight||this.maxHeight)}_fitRows(e,n,i,o){const{ctx:s,maxWidth:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],u=o+a;let d=e;s.textAlign="left",s.textBaseline="middle";let p=-1,f=-u;return this.legendItems.forEach((v,g)=>{const w=i+n/2+s.measureText(v.text).width;(g===0||c[c.length-1]+w+2*a>r)&&(d+=u,c[c.length-(g>0?0:1)]=0,f+=u,p++),l[g]={left:0,top:f,row:p,width:w,height:o},c[c.length-1]+=w+a}),d}_fitCols(e,n,i,o){const{ctx:s,maxHeight:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],u=r-e;let d=a,p=0,f=0,v=0,g=0;return this.legendItems.forEach((w,b)=>{const{itemWidth:S,itemHeight:D}=$D(i,n,s,w,o);b>0&&f+D+2*a>u&&(d+=p+a,c.push({width:p,height:f}),v+=p+a,g++,p=f=0),l[b]={left:v,top:f,col:g,width:S,height:D},p=Math.max(p,S),f+=D+a}),d+=p,c.push({width:p,height:f}),d}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:o},rtl:s}}=this,r=bs(s,this.left,this.width);if(this.isHorizontal()){let a=0,l=dn(i,this.left+o,this.right-this.lineWidths[a]);for(const c of n)a!==c.row&&(a=c.row,l=dn(i,this.left+o,this.right-this.lineWidths[a])),c.top+=this.top+e+o,c.left=r.leftForLtr(r.x(l),c.width),l+=c.width+o}else{let a=0,l=dn(i,this.top+e+o,this.bottom-this.columnSizes[a].height);for(const c of n)c.col!==a&&(a=c.col,l=dn(i,this.top+e+o,this.bottom-this.columnSizes[a].height)),c.top=l,c.left+=this.left+o,c.left=r.leftForLtr(r.x(c.left),c.width),l+=c.height+o}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const e=this.ctx;mu(e,this),this._draw(),vu(e)}}_draw(){const{options:e,columnSizes:n,lineWidths:i,ctx:o}=this,{align:s,labels:r}=e,a=me.color,l=bs(e.rtl,this.left,this.width),c=sn(r.font),{padding:u}=r,d=c.size,p=d/2;let f;this.drawTitle(),o.textAlign=l.textAlign("left"),o.textBaseline="middle",o.lineWidth=.5,o.font=c.string;const{boxWidth:v,boxHeight:g,itemHeight:w}=rg(r,d),b=function(F,j,I){if(isNaN(v)||v<=0||isNaN(g)||g<0)return;o.save();const X=It(I.lineWidth,1);if(o.fillStyle=It(I.fillStyle,a),o.lineCap=It(I.lineCap,"butt"),o.lineDashOffset=It(I.lineDashOffset,0),o.lineJoin=It(I.lineJoin,"miter"),o.lineWidth=X,o.strokeStyle=It(I.strokeStyle,a),o.setLineDash(It(I.lineDash,[])),r.usePointStyle){const J={radius:g*Math.SQRT2/2,pointStyle:I.pointStyle,rotation:I.rotation,borderWidth:X},Y=l.xPlus(F,v/2),$=j+p;Jv(o,J,Y,$,r.pointStyleWidth&&v)}else{const J=j+Math.max((d-g)/2,0),Y=l.leftForLtr(F,v),$=br(I.borderRadius);o.beginPath(),Object.values($).some(U=>U!==0)?bd(o,{x:Y,y:J,w:v,h:g,radius:$}):o.rect(Y,J,v,g),o.fill(),X!==0&&o.stroke()}o.restore()},S=function(F,j,I){jl(o,I.text,F,j+w/2,c,{strikethrough:I.hidden,textAlign:l.textAlign(I.textAlign)})},D=this.isHorizontal(),k=this._computeTitleHeight();D?f={x:dn(s,this.left+u,this.right-i[0]),y:this.top+u+k,line:0}:f={x:this.left+u,y:dn(s,this.top+k+u,this.bottom-n[0].height),line:0},Yv(this.ctx,e.textDirection);const N=w+u;this.legendItems.forEach((F,j)=>{o.strokeStyle=F.fontColor,o.fillStyle=F.fontColor;const I=o.measureText(F.text).width,X=l.textAlign(F.textAlign||(F.textAlign=r.textAlign)),J=v+p+I;let Y=f.x,$=f.y;l.setWidth(this.width),D?j>0&&Y+J+u>this.right&&($=f.y+=N,f.line++,Y=f.x=dn(s,this.left+u,this.right-i[f.line])):j>0&&$+N>this.bottom&&(Y=f.x=Y+n[f.line].width+u,f.line++,$=f.y=dn(s,this.top+k+u,this.bottom-n[f.line].height));const U=l.x(Y);if(b(U,$,F),Y=_T(X,Y+v+p,D?Y+J:this.right,e.rtl),S(l.x(Y),$,F),D)f.x+=J+u;else if(typeof F.text!="string"){const M=c.lineHeight;f.y+=vy(F,M)+u}else f.y+=N}),Zv(this.ctx,e.textDirection)}drawTitle(){const e=this.options,n=e.title,i=sn(n.font),o=Fn(n.padding);if(!n.display)return;const s=bs(e.rtl,this.left,this.width),r=this.ctx,a=n.position,l=i.size/2,c=o.top+l;let u,d=this.left,p=this.width;if(this.isHorizontal())p=Math.max(...this.lineWidths),u=this.top+c,d=dn(e.align,d,this.right-p);else{const v=this.columnSizes.reduce((g,w)=>Math.max(g,w.height),0);u=c+dn(e.align,this.top,this.bottom-v-e.labels.padding-this._computeTitleHeight())}const f=dn(a,d,d+p);r.textAlign=s.textAlign(zv(a)),r.textBaseline="middle",r.strokeStyle=n.color,r.fillStyle=n.color,r.font=i.string,jl(r,n.text,f,u,i)}_computeTitleHeight(){const e=this.options.title,n=sn(e.font),i=Fn(e.padding);return e.display?n.lineHeight+i.height:0}_getLegendItemAt(e,n){let i,o,s;if(Do(e,this.left,this.right)&&Do(n,this.top,this.bottom)){for(s=this.legendHitBoxes,i=0;is.length>r.length?s:r)),e+n.size/2+i.measureText(o).width}function BD(t,e,n){let i=t;return typeof e.text!="string"&&(i=vy(e,n)),i}function vy(t,e){const n=t.text?t.text.length:0;return e*n}function PD(t,e){return!!((t==="mousemove"||t==="mouseout")&&(e.onHover||e.onLeave)||e.onClick&&(t==="click"||t==="mouseup"))}var ND={id:"legend",_element:ag,start(t,e,n){const i=t.legend=new ag({ctx:t.ctx,options:n,chart:t});Wi.configure(t,i,n),Wi.addBox(t,i)},stop(t){Wi.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const i=t.legend;Wi.configure(t,i,n),i.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const i=e.datasetIndex,o=n.chart;o.isDatasetVisible(i)?(o.hide(i),e.hidden=!0):(o.show(i),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=t.legend.options;return t._getSortedDatasetMetas().map(l=>{const c=l.controller.getStyle(n?0:void 0),u=Fn(c.borderWidth);return{text:e[l.index].label,fillStyle:c.backgroundColor,fontColor:s,hidden:!l.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(u.width+u.height)/4,strokeStyle:c.borderColor,pointStyle:i||c.pointStyle,rotation:c.rotation,textAlign:o||c.textAlign,borderRadius:r&&(a||c.borderRadius),datasetIndex:l.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};const sr={average(t){if(!t.length)return!1;let e,n,i=new Set,o=0,s=0;for(e=0,n=t.length;er+a)/i.size,y:o/s}},nearest(t,e){if(!t.length)return!1;let n=e.x,i=e.y,o=Number.POSITIVE_INFINITY,s,r,a;for(s=0,r=t.length;s-1?t.split(` -`):t}function ND(t,e){const{element:n,datasetIndex:i,index:o}=e,s=t.getDatasetMeta(i).controller,{label:r,value:a}=s.getLabelAndValue(o);return{chart:t,label:r,parsed:s.getParsed(o),raw:t.data.datasets[i].data[o],formattedValue:a,dataset:s.getDataset(),dataIndex:o,datasetIndex:i,element:n}}function lg(t,e){const n=t.chart.ctx,{body:i,footer:o,title:s}=t,{boxWidth:r,boxHeight:a}=e,l=sn(e.bodyFont),c=sn(e.titleFont),u=sn(e.footerFont),d=s.length,p=o.length,f=i.length,v=Fn(e.padding);let g=v.height,w=0,b=i.reduce((k,N)=>k+N.before.length+N.lines.length+N.after.length,0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(g+=d*c.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){const k=e.displayColors?Math.max(a,l.lineHeight):l.lineHeight;g+=f*k+(b-f)*l.lineHeight+(b-1)*e.bodySpacing}p&&(g+=e.footerMarginTop+p*u.lineHeight+(p-1)*e.footerSpacing);let S=0;const D=function(k){w=Math.max(w,n.measureText(k).width+S)};return n.save(),n.font=c.string,te(t.title,D),n.font=l.string,te(t.beforeBody.concat(t.afterBody),D),S=e.displayColors?r+2+e.boxPadding:0,te(i,k=>{te(k.before,D),te(k.lines,D),te(k.after,D)}),S=0,n.font=u.string,te(t.footer,D),n.restore(),w+=v.width,{width:w,height:g}}function LD(t,e){const{y:n,height:i}=e;return nt.height-i/2?"bottom":"center"}function FD(t,e,n,i){const{x:o,width:s}=i,r=n.caretSize+n.caretPadding;if(t==="left"&&o+s+r>e.width||t==="right"&&o-s-r<0)return!0}function VD(t,e,n,i){const{x:o,width:s}=n,{width:r,chartArea:{left:a,right:l}}=t;let c="center";return i==="center"?c=o<=(a+l)/2?"left":"right":o<=s/2?c="left":o>=r-s/2&&(c="right"),FD(c,t,e,n)&&(c="center"),c}function ug(t,e,n){const i=n.yAlign||e.yAlign||LD(t,n);return{xAlign:n.xAlign||e.xAlign||VD(t,e,n,i),yAlign:i}}function jD(t,e){let{x:n,width:i}=t;return e==="right"?n-=i:e==="center"&&(n-=i/2),n}function UD(t,e,n){let{y:i,height:o}=t;return e==="top"?i+=n:e==="bottom"?i-=o+n:i-=o/2,i}function cg(t,e,n,i){const{caretSize:o,caretPadding:s,cornerRadius:r}=t,{xAlign:a,yAlign:l}=n,c=o+s,{topLeft:u,topRight:d,bottomLeft:p,bottomRight:f}=br(r);let v=jD(e,a);const g=UD(e,l,c);return l==="center"?a==="left"?v+=c:a==="right"&&(v-=c):a==="left"?v-=Math.max(u,p)+o:a==="right"&&(v+=Math.max(d,f)+o),{x:Me(v,0,i.width-e.width),y:Me(g,0,i.height-e.height)}}function Ba(t,e,n){const i=Fn(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-i.right:t.x+i.left}function dg(t){return Jn([],fi(t))}function ID(t,e,n){return Ko(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function hg(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const vy={beforeTitle:hi,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(i>0&&e.dataIndex"u"?vy[e].call(n,i):o}class pg extends qo{static positioners=sr;constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,i=this.options.setContext(this.getContext()),o=i.enabled&&n.options.animation&&i.animations,s=new ey(this.chart,o);return o._cacheable&&(this._cachedAnimations=Object.freeze(s)),s}getContext(){return this.$context||(this.$context=ID(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:i}=n,o=en(i,"beforeTitle",this,e),s=en(i,"title",this,e),r=en(i,"afterTitle",this,e);let a=[];return a=Jn(a,fi(o)),a=Jn(a,fi(s)),a=Jn(a,fi(r)),a}getBeforeBody(e,n){return dg(en(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:i}=n,o=[];return te(e,s=>{const r={before:[],lines:[],after:[]},a=hg(i,s);Jn(r.before,fi(en(a,"beforeLabel",this,s))),Jn(r.lines,en(a,"label",this,s)),Jn(r.after,fi(en(a,"afterLabel",this,s))),o.push(r)}),o}getAfterBody(e,n){return dg(en(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:i}=n,o=en(i,"beforeFooter",this,e),s=en(i,"footer",this,e),r=en(i,"afterFooter",this,e);let a=[];return a=Jn(a,fi(o)),a=Jn(a,fi(s)),a=Jn(a,fi(r)),a}_createItems(e){const n=this._active,i=this.chart.data,o=[],s=[],r=[];let a=[],l,c;for(l=0,c=n.length;le.filter(u,d,p,i))),e.itemSort&&(a=a.sort((u,d)=>e.itemSort(u,d,i))),te(a,u=>{const d=hg(e.callbacks,u);o.push(en(d,"labelColor",this,u)),s.push(en(d,"labelPointStyle",this,u)),r.push(en(d,"labelTextColor",this,u))}),this.labelColors=o,this.labelPointStyles=s,this.labelTextColors=r,this.dataPoints=a,a}update(e,n){const i=this.options.setContext(this.getContext()),o=this._active;let s,r=[];if(!o.length)this.opacity!==0&&(s={opacity:0});else{const a=sr[i.position].call(this,o,this._eventPosition);r=this._createItems(i),this.title=this.getTitle(r,i),this.beforeBody=this.getBeforeBody(r,i),this.body=this.getBody(r,i),this.afterBody=this.getAfterBody(r,i),this.footer=this.getFooter(r,i);const l=this._size=lg(this,i),c=Object.assign({},a,l),u=ug(this.chart,i,c),d=cg(i,c,u,this.chart);this.xAlign=u.xAlign,this.yAlign=u.yAlign,s={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=r,this.$context=void 0,s&&this._resolveAnimations().update(this,s),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,i,o){const s=this.getCaretPosition(e,i,o);n.lineTo(s.x1,s.y1),n.lineTo(s.x2,s.y2),n.lineTo(s.x3,s.y3)}getCaretPosition(e,n,i){const{xAlign:o,yAlign:s}=this,{caretSize:r,cornerRadius:a}=i,{topLeft:l,topRight:c,bottomLeft:u,bottomRight:d}=br(a),{x:p,y:f}=e,{width:v,height:g}=n;let w,b,S,D,k,N;return s==="center"?(k=f+g/2,o==="left"?(w=p,b=w-r,D=k+r,N=k-r):(w=p+v,b=w+r,D=k-r,N=k+r),S=w):(o==="left"?b=p+Math.max(l,u)+r:o==="right"?b=p+v-Math.max(c,d)-r:b=this.caretX,s==="top"?(D=f,k=D-r,w=b-r,S=b+r):(D=f+g,k=D+r,w=b+r,S=b-r),N=D),{x1:w,x2:b,x3:S,y1:D,y2:k,y3:N}}drawTitle(e,n,i){const o=this.title,s=o.length;let r,a,l;if(s){const c=bs(i.rtl,this.x,this.width);for(e.x=Ba(this,i.titleAlign,i),n.textAlign=c.textAlign(i.titleAlign),n.textBaseline="middle",r=sn(i.titleFont),a=i.titleSpacing,n.fillStyle=i.titleColor,n.font=r.string,l=0;lS!==0)?(e.beginPath(),e.fillStyle=s.multiKeyBackground,bd(e,{x:g,y:v,w:c,h:l,radius:b}),e.fill(),e.stroke(),e.fillStyle=r.backgroundColor,e.beginPath(),bd(e,{x:w,y:v+1,w:c-2,h:l-2,radius:b}),e.fill()):(e.fillStyle=s.multiKeyBackground,e.fillRect(g,v,c,l),e.strokeRect(g,v,c,l),e.fillStyle=r.backgroundColor,e.fillRect(w,v+1,c-2,l-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,n,i){const{body:o}=this,{bodySpacing:s,bodyAlign:r,displayColors:a,boxHeight:l,boxWidth:c,boxPadding:u}=i,d=sn(i.bodyFont);let p=d.lineHeight,f=0;const v=bs(i.rtl,this.x,this.width),g=function(I){n.fillText(I,v.x(e.x+f),e.y+p/2),e.y+=p+s},w=v.textAlign(r);let b,S,D,k,N,F,j;for(n.textAlign=r,n.textBaseline="middle",n.font=d.string,e.x=Ba(this,w,i),n.fillStyle=i.bodyColor,te(this.beforeBody,g),f=a&&w!=="right"?r==="center"?c/2+u:c+2+u:0,k=0,F=o.length;k0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,i=this.$animations,o=i&&i.x,s=i&&i.y;if(o||s){const r=sr[e.position].call(this,this._active,this._eventPosition);if(!r)return;const a=this._size=lg(this,e),l=Object.assign({},r,this._size),c=ug(n,e,l),u=cg(e,l,c,n);(o._to!==u.x||s._to!==u.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=a.width,this.height=a.height,this.caretX=r.x,this.caretY=r.y,this._resolveAnimations().update(this,u))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const o={width:this.width,height:this.height},s={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const r=Fn(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(e.save(),e.globalAlpha=i,this.drawBackground(s,e,o,n),Xv(e,n.textDirection),s.y+=r.top,this.drawTitle(s,e,n),this.drawBody(s,e,n),this.drawFooter(s,e,n),Yv(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const i=this._active,o=e.map(({datasetIndex:a,index:l})=>{const c=this.chart.getDatasetMeta(a);if(!c)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:c.data[l],index:l}}),s=!Nl(i,o),r=this._positionChanged(o,n);(s||r)&&(this._active=o,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const o=this.options,s=this._active||[],r=this._getActiveElements(e,s,n,i),a=this._positionChanged(r,e),l=n||!Nl(r,s)||a;return l&&(this._active=r,(o.enabled||o.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),l}_getActiveElements(e,n,i,o){const s=this.options;if(e.type==="mouseout")return[];if(!o)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const r=this.chart.getElementsAtEventForMode(e,s.mode,s,i);return s.reverse&&r.reverse(),r}_positionChanged(e,n){const{caretX:i,caretY:o,options:s}=this,r=sr[s.position].call(this,e,n);return r!==!1&&(i!==r.x||o!==r.y)}}var xu={id:"tooltip",_element:pg,positioners:sr,afterInit(t,e,n){n&&(t.tooltip=new pg({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:vy},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const zD=(t,e,n,i)=>(typeof e=="string"?(n=t.push(e)-1,i.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function HD(t,e,n,i){const o=t.indexOf(e);if(o===-1)return zD(t,e,n,i);const s=t.lastIndexOf(e);return o!==s?n:o}const WD=(t,e)=>t===null?null:Me(Math.round(t),0,e);function fg(t){const e=this.getLabels();return t>=0&&tn.length-1?null:this.getPixelForValue(n[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}function JD(t,e){const n=[],{bounds:i,step:o,min:s,max:r,precision:a,count:l,maxTicks:c,maxDigits:u,includeBounds:d}=t,p=o||1,f=c-1,{min:v,max:g}=e,w=!re(s),b=!re(r),S=!re(l),D=(g-v)/(u+1);let k=p0((g-v)/f/p)*p,N,F,j,I;if(k<1e-14&&!w&&!b)return[{value:v},{value:g}];I=Math.ceil(g/k)-Math.floor(v/k),I>f&&(k=p0(I*k/f/p)*p),re(a)||(N=Math.pow(10,a),k=Math.ceil(k*N)/N),i==="ticks"?(F=Math.floor(v/k)*k,j=Math.ceil(g/k)*k):(F=v,j=g),w&&b&&o&&uT((r-s)/o,k/1e3)?(I=Math.round(Math.min((r-s)/k,c)),k=(r-s)/I,F=s,j=r):S?(F=w?s:F,j=b?r:j,I=l-1,k=(j-F)/I):(I=(j-F)/k,mr(I,Math.round(I),k/1e3)?I=Math.round(I):I=Math.ceil(I));const X=Math.max(f0(k),f0(F));N=Math.pow(10,re(a)?X:a),F=Math.round(F*N)/N,j=Math.round(j*N)/N;let W=0;for(w&&(d&&F!==s?(n.push({value:s}),Fr)break;n.push({value:Y})}return b&&d&&j!==r?n.length&&mr(n[n.length-1].value,r,gg(r,D,t))?n[n.length-1].value=r:n.push({value:r}):(!b||j===r)&&n.push({value:j}),n}function gg(t,e,{horizontal:n,minRotation:i}){const o=xi(i),s=(n?Math.sin(o):Math.cos(o))||.001,r=.75*e*(""+t).length;return Math.min(e/s,r)}class GD extends Bs{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return re(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:o,max:s}=this;const r=l=>o=n?o:l,a=l=>s=i?s:l;if(e){const l=As(o),c=As(s);l<0&&c<0?a(0):l>0&&c>0&&r(0)}if(o===s){let l=s===0?1:Math.abs(s*.05);a(s+l),e||r(o-l)}this.min=o,this.max=s}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=e,o;return i?(o=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),n=n||11),n&&(o=Math.min(n,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const o={maxTicks:i,bounds:e.bounds,min:e.min,max:e.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},s=this._range||this,r=JD(o,s);return e.bounds==="ticks"&&cT(r,this,"value"),e.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){const e=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&e.length){const o=(i-n)/Math.max(e.length-1,1)/2;n-=o,i+=o}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(e){return ch(e,this.chart.options.locale,this.options.ticks.format)}}class xh extends GD{static id="linear";static defaults={ticks:{callback:zv.formatters.numeric}};determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=Ke(e)?e:0,this.max=Ke(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,i=xi(this.options.ticks.minRotation),o=(e?Math.sin(i):Math.cos(i))||.001,s=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,s.lineHeight/o))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}const Eu={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},on=Object.keys(Eu);function mg(t,e){return t-e}function vg(t,e){if(re(e))return null;const n=t._adapter,{parser:i,round:o,isoWeekday:s}=t._parseOpts;let r=e;return typeof i=="function"&&(r=i(r)),Ke(r)||(r=typeof i=="string"?n.parse(r,i):n.parse(r)),r===null?null:(o&&(r=o==="week"&&(Ur(s)||s===!0)?n.startOf(r,"isoWeek",s):n.startOf(r,o)),+r)}function yg(t,e,n,i){const o=on.length;for(let s=on.indexOf(t);s=on.indexOf(n);s--){const r=on[s];if(Eu[r].common&&t._adapter.diff(o,i,r)>=e-1)return r}return on[n?on.indexOf(n):0]}function qD(t){for(let e=on.indexOf(t)+1,n=on.length;e=e?n[i]:n[o];t[s]=!0}}function XD(t,e,n,i){const o=t._adapter,s=+o.startOf(e[0].value,i),r=e[e.length-1].value;let a,l;for(a=s;a<=r;a=+o.add(a,1,i))l=n[a],l>=0&&(e[l].major=!0);return e}function _g(t,e,n){const i=[],o={},s=e.length;let r,a;for(r=0;r+e.value))}initOffsets(e=[]){let n=0,i=0,o,s;this.options.offset&&e.length&&(o=this.getDecimalForValue(e[0]),e.length===1?n=1-o:n=(this.getDecimalForValue(e[1])-o)/2,s=this.getDecimalForValue(e[e.length-1]),e.length===1?i=s:i=(s-this.getDecimalForValue(e[e.length-2]))/2);const r=e.length<3?.5:.25;n=Me(n,0,r),i=Me(i,0,r),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const e=this._adapter,n=this.min,i=this.max,o=this.options,s=o.time,r=s.unit||yg(s.minUnit,n,i,this._getLabelCapacity(n)),a=It(o.ticks.stepSize,1),l=r==="week"?s.isoWeekday:!1,c=Ur(l)||l===!0,u={};let d=n,p,f;if(c&&(d=+e.startOf(d,"isoWeek",l)),d=+e.startOf(d,c?"day":r),e.diff(i,n,r)>1e5*a)throw new Error(n+" and "+i+" are too far apart with stepSize of "+a+" "+r);const v=o.ticks.source==="data"&&this.getDataTimestamps();for(p=d,f=0;p+g)}getLabelForValue(e){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(e,i.tooltipFormat):n.format(e,i.displayFormats.datetime)}format(e,n){const i=this.options.time.displayFormats,o=this._unit,s=n||i[o];return this._adapter.format(e,s)}_tickFormatFunction(e,n,i,o){const s=this.options,r=s.ticks.callback;if(r)return le(r,[e,n,i],this);const a=s.time.displayFormats,l=this._unit,c=this._majorUnit,u=l&&a[l],d=c&&a[c],p=i[n],f=c&&d&&p&&p.major;return this._adapter.format(e,o||(f?d:u))}generateTickLabels(e){let n,i,o;for(n=0,i=e.length;n0?a:1}getDataTimestamps(){let e=this._cache.data||[],n,i;if(e.length)return e;const o=this.getMatchingVisibleMetas();if(this._normalized&&o.length)return this._cache.data=o[0].controller.getAllParsedValues(this);for(n=0,i=o.length;n=t[i].pos&&e<=t[o].pos&&({lo:i,hi:o}=Oo(t,"pos",e)),{pos:s,time:a}=t[i],{pos:r,time:l}=t[o]):(e>=t[i].time&&e<=t[o].time&&({lo:i,hi:o}=Oo(t,"time",e)),{time:s,pos:a}=t[i],{time:r,pos:l}=t[o]);const c=r-s;return c?a+(l-a)*(e-s)/c:a}class _F extends wg{static id="timeseries";static defaults=wg.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=Pa(n,this.min),this._tableRange=Pa(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:i}=this,o=[],s=[];let r,a,l,c,u;for(r=0,a=e.length;r=n&&c<=i&&o.push(c);if(o.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(r=0,a=o.length;ro-s)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?e=this.normalize(n.concat(i)):e=n.length?n:i,e=this._cache.all=e,e}getDecimalForValue(e){return(Pa(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const n=this._offsets,i=this.getDecimalForPixel(e)/n.factor-n.end;return Pa(this._table,i*this._tableRange+this._minPos,!0)}}const yy={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},YD={ariaLabel:{type:String},ariaDescribedby:{type:String}},ZD={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...yy,...YD},QD=Xm[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function as(t){return Os(t)?Wt(t):t}function MD(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return Os(e)?new Proxy(t,{}):t}function tO(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function by(t,e){t.labels=e}function _y(t,e,n){const i=[];t.datasets=e.map(o=>{const s=t.datasets.find(r=>r[n]===o[n]);return!s||!o.data||i.includes(s)?{...o}:(i.push(s),Object.assign(s,o),s)})}function eO(t,e){const n={labels:[],datasets:[]};return by(n,t.labels),_y(n,t.datasets,e),n}const nO=Et({props:ZD,setup(t,e){let{expose:n,slots:i}=e;const o=Rt(null),s=rn(null);n({chart:s});const r=()=>{if(!o.value)return;const{type:c,data:u,options:d,plugins:p,datasetIdKey:f}=t,v=eO(u,f),g=MD(v,u);s.value=new no(o.value,{type:c,data:g,options:{...d},plugins:p})},a=()=>{const c=Wt(s.value);c&&(t.destroyDelay>0?setTimeout(()=>{c.destroy(),s.value=null},t.destroyDelay):(c.destroy(),s.value=null))},l=c=>{c.update(t.updateMode)};return Pi(r),Dn(a),ke([()=>t.options,()=>t.data],(c,u)=>{let[d,p]=c,[f,v]=u;const g=Wt(s.value);if(!g)return;let w=!1;if(d){const b=as(d),S=as(f);b&&b!==S&&(tO(g,b),w=!0)}if(p){const b=as(p.labels),S=as(v.labels),D=as(p.datasets),k=as(v.datasets);b!==S&&(by(g.config.data,b),w=!0),D&&D!==k&&(_y(g.config.data,D,t.datasetIdKey),w=!0)}w&&qr(()=>{l(g)})},{deep:!0}),()=>be("canvas",{role:"img","aria-label":t.ariaLabel,"aria-describedby":t.ariaDescribedby,ref:o},[be("p",{},[i.default?i.default():""])])}});function iO(t,e){return no.register(e),Et({props:yy,setup(n,i){let{expose:o}=i;const s=rn(null),r=rn(null);ke(()=>r.value?.chart??null,l=>{s.value=l},{flush:"sync"}),o({chart:s});const a=l=>{r.value=l};return()=>be(nO,QD({ref:a},{type:t,...n}))}})}const Eh=iO("line",bu),oO={class:"db-live"},sO={class:"db-live__head"},rO={class:"db-live__label"},aO={class:"db-live__value"},lO={class:"db-live__chart"},xg=30,uO=3e3,cO=Et({__name:"DatabaseLiveCharts",props:{active:{type:Boolean}},setup(t){const e=t;no.register(wh,_h,xh,bu,Ps,bh,xu);const n=rn([]),i=rn([]),o=rn([]),s=Rt("—"),r=Rt("—"),a=Rt("—"),l=Rt(O("serverinfo","Queries per second"));let c=null,u=!1,d=null,p=null;const f=rt(()=>pu());function v(F,j){const I=[...F.value,j];F.value=I.length>xg?I.slice(I.length-xg):I}async function g(){c=null;try{const{data:F}=await Cn.get(Qi("/apps/serverinfo/database/live"));if(v(o,F.latencyMs??null),a.value=F.latencyMs!==null?`${F.latencyMs} ms`:"—",F.available){v(n,F.connections.used),s.value=`${F.connections.used} / ${F.connections.max}`;const j=Date.now();if(d!==null&&p!==null){const I=(j-p)/1e3,X=F.throughput.counter-d,W=I>0&&X>=0?X/I:null;v(i,W===null?null:Math.round(W)),r.value=W===null?"—":Math.round(W).toLocaleString()}d=F.throughput.counter,p=j,l.value=F.throughput.label==="Transactions/s"?O("serverinfo","Transactions per second"):O("serverinfo","Queries per second")}}catch{v(n,null),v(i,null),v(o,null)}finally{w()}}function w(){u||!e.active||document.hidden||c!==null||(c=setTimeout(g,uO))}function b(){c!==null&&(clearTimeout(c),c=null)}ke(()=>[e.active,document.hidden],()=>{e.active&&!document.hidden?c===null&&g():b()},{immediate:!0});function S(){document.hidden?b():e.active&&c===null&&g()}document.addEventListener("visibilitychange",S),Dn(()=>{u=!0,document.removeEventListener("visibilitychange",S),b()});function D(F){return{animation:!1,responsive:!0,maintainAspectRatio:!1,scales:{x:{display:!1},y:{display:!1,beginAtZero:!0}},plugins:{legend:{display:!1},tooltip:{displayColors:!1,callbacks:{label:j=>`${j.parsed.y??"—"} ${F}`}}},elements:{point:{radius:0,hitRadius:8}}}}function k(F){return{labels:F.map(()=>""),datasets:[{data:F,borderColor:f.value,backgroundColor:qd(f.value,.15),borderWidth:2,fill:!0,tension:.3,spanGaps:!1}]}}const N=rt(()=>[{key:"connections",label:O("serverinfo","Current connections"),value:s.value,data:k(n.value),options:D(O("serverinfo","connections"))},{key:"queries",label:l.value,value:r.value,data:k(i.value),options:D("/s")},{key:"latency",label:O("serverinfo","Database latency"),value:a.value,data:k(o.value),options:D("ms")}]);return(F,j)=>(C(),R("div",oO,[(C(!0),R(yt,null,Fe(N.value,I=>(C(),R("section",{key:I.key,class:"db-live__box"},[y("header",sO,[y("span",rO,A(I.label),1),y("span",aO,A(I.value),1)]),y("div",lO,[q(E(Eh),{data:I.data,options:I.options},null,8,["data","options"])])]))),128))]))}}),dO=Pt(cO,[["__scopeId","data-v-3092ee62"]]),hO={name:"CodeJsonIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},pO=["aria-hidden","aria-label"],fO=["fill","width","height"],gO={d:"M5,3H7V5H5V10A2,2 0 0,1 3,12A2,2 0 0,1 5,14V19H7V21H5C3.93,20.73 3,20.1 3,19V15A2,2 0 0,0 1,13H0V11H1A2,2 0 0,0 3,9V5A2,2 0 0,1 5,3M19,3A2,2 0 0,1 21,5V9A2,2 0 0,0 23,11H24V13H23A2,2 0 0,0 21,15V19A2,2 0 0,1 19,21H17V19H19V14A2,2 0 0,1 21,12A2,2 0 0,1 19,10V5H17V3H19M12,15A1,1 0 0,1 13,16A1,1 0 0,1 12,17A1,1 0 0,1 11,16A1,1 0 0,1 12,15M8,15A1,1 0 0,1 9,16A1,1 0 0,1 8,17A1,1 0 0,1 7,16A1,1 0 0,1 8,15M16,15A1,1 0 0,1 17,16A1,1 0 0,1 16,17A1,1 0 0,1 15,16A1,1 0 0,1 16,15Z"},mO={key:0};function vO(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon code-json-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",gO,[n.title?(C(),R("title",mO,A(n.title),1)):st("",!0)])],8,fO))],16,pO)}const yO=Pt(hO,[["render",vO]]),bO={class:"rule-card__header"},_O={class:"rule-card__title-block"},wO={class:"rule-card__title"},xO={class:"rule-card__meta"},EO={key:0,class:"rule-card__issue"},CO={key:1,class:"rule-card__line"},SO={key:2,class:"rule-card__line rule-card__line--muted"},AO={key:3,class:"rule-card__affected"},kO={key:4,class:"rule-card__line"},TO={key:5,class:"rule-card__details"},DO={key:0,class:"rule-card__tag"},OO={key:6,class:"rule-card__actions"},$O=["href"],RO=Et({__name:"DatabaseRuleCard",props:{rule:{}},emits:["snippet"],setup(t){const e=t,n=rt(()=>e.rule.value!==null||e.rule.apply!==null),i=rt(()=>{switch(e.rule.status){case"ok":return O("serverinfo","Passing");case"skipped":return O("serverinfo","Skipped");default:return O("serverinfo","Failing")}}),o=rt(()=>{switch(e.rule.severity){case"alert":return O("serverinfo","Alert");case"notice":return O("serverinfo","Notice");default:return O("serverinfo","Warning")}}),s=rt(()=>{const r=e.rule.value;return r===null?"":Number.isInteger(r)?r.toLocaleString():r.toFixed(2)});return(r,a)=>(C(),R("article",{class:Bt(["rule-card",`rule-card--${t.rule.status}`])},[y("header",bO,[y("span",{class:Bt(["rule-card__dot",`rule-card__dot--${t.rule.severity}`])},null,2),y("div",_O,[y("h4",wO,A(t.rule.name),1),y("span",xO,[bt(A(o.value)+" ",1),a[1]||(a[1]=y("span",{"aria-hidden":"true"},"Ā·",-1)),y("code",null,A(t.rule.id),1)])]),y("span",{class:Bt(["rule-card__chip",`rule-card__chip--${t.rule.status}`])},A(i.value),3)]),t.rule.status==="fail"&&t.rule.issue?(C(),R("p",EO,A(t.rule.issue),1)):st("",!0),t.rule.justification?(C(),R("p",CO,A(t.rule.justification),1)):t.rule.skipReason?(C(),R("p",SO,A(t.rule.skipReason),1)):st("",!0),t.rule.details?.length?(C(),R("ul",AO,[(C(!0),R(yt,null,Fe(t.rule.details,l=>(C(),R("li",{key:l},[y("code",null,A(l),1)]))),128))])):st("",!0),t.rule.status==="fail"&&t.rule.recommendation?(C(),R("p",kO,A(t.rule.recommendation),1)):st("",!0),n.value?(C(),R("dl",TO,[t.rule.value!==null?(C(),R(yt,{key:0},[y("dt",null,A(E(O)("serverinfo","Value")),1),y("dd",null,A(s.value),1)],64)):st("",!0),t.rule.apply?(C(),R(yt,{key:1},[y("dt",null,A(E(O)("serverinfo","Setting")),1),y("dd",null,[y("code",null,A(t.rule.apply.variable),1),a[2]||(a[2]=y("span",{"aria-hidden":"true"},"→",-1)),y("code",null,A(t.rule.apply.recommendedValue),1),t.rule.apply.runtimeWritable?st("",!0):(C(),R("span",DO,A(E(O)("serverinfo","restart required")),1))])],64)):st("",!0),t.rule.apply?.note?(C(),R(yt,{key:2},[y("dt",null,A(E(O)("serverinfo","Note")),1),y("dd",null,A(t.rule.apply.note),1)],64)):st("",!0)])):st("",!0),t.rule.status==="fail"&&t.rule.apply||t.rule.docUrl?(C(),R("footer",OO,[t.rule.status==="fail"&&t.rule.apply?(C(),ct(E(Se),{key:0,variant:"secondary",onClick:a[0]||(a[0]=l=>r.$emit("snippet",t.rule))},{icon:dt(()=>[q(yO,{size:20})]),default:dt(()=>[bt(" "+A(E(O)("serverinfo","Show config snippet")),1)]),_:1})):st("",!0),t.rule.docUrl?(C(),R("a",{key:1,href:t.rule.docUrl,target:"_blank",rel:"noreferrer noopener",class:"rule-card__doc"},A(E(O)("serverinfo","Documentation ↗")),9,$O)):st("",!0)])):st("",!0)],2))}}),BO=Pt(RO,[["__scopeId","data-v-40b93a60"]]);function Cu(){return typeof window<"u"}function Ns(t){return wy(t)?(t.nodeName||"").toLowerCase():"#document"}function ln(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function Ni(t){var e;return(e=(wy(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function wy(t){return Cu()?t instanceof Node||t instanceof ln(t).Node:!1}function ri(t){return Cu()?t instanceof Element||t instanceof ln(t).Element:!1}function io(t){return Cu()?t instanceof HTMLElement||t instanceof ln(t).HTMLElement:!1}function Eg(t){return!Cu()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof ln(t).ShadowRoot}function Su(t){const{overflow:e,overflowX:n,overflowY:i,display:o}=ai(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&o!=="inline"&&o!=="contents"}function PO(t){return/^(table|td|th)$/.test(Ns(t))}function Au(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const NO=/transform|translate|scale|rotate|perspective|filter/,LO=/paint|layout|strict|content/,mo=t=>!!t&&t!=="none";let Dc;function Ch(t){const e=ri(t)?ai(t):t;return mo(e.transform)||mo(e.translate)||mo(e.scale)||mo(e.rotate)||mo(e.perspective)||!Sh()&&(mo(e.backdropFilter)||mo(e.filter))||NO.test(e.willChange||"")||LO.test(e.contain||"")}function FO(t){let e=Ho(t);for(;io(e)&&!Wr(e);){if(Ch(e))return e;if(Au(e))return null;e=Ho(e)}return null}function Sh(){return Dc==null&&(Dc=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Dc}function Wr(t){return/^(html|body|#document)$/.test(Ns(t))}function ai(t){return ln(t).getComputedStyle(t)}function ku(t){return ri(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Ho(t){if(Ns(t)==="html")return t;const e=t.assignedSlot||t.parentNode||Eg(t)&&t.host||Ni(t);return Eg(e)?e.host:e}function xy(t){const e=Ho(t);return Wr(e)?(t.ownerDocument||t).body:io(e)&&Su(e)?e:xy(e)}function Jr(t,e,n){var i;e===void 0&&(e=[]),n===void 0&&(n=!0);const o=xy(t),s=o===((i=t.ownerDocument)==null?void 0:i.body),r=ln(o);if(s){const a=Cd(r);return e.concat(r,r.visualViewport||[],Su(o)?o:[],a&&n?Jr(a):[])}else return e.concat(o,Jr(o,[],n))}function Cd(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Ey(t){const e=ai(t);let n=parseFloat(e.width)||0,i=parseFloat(e.height)||0;const o=io(t),s=o?t.offsetWidth:n,r=o?t.offsetHeight:i,a=wl(n)!==s||wl(i)!==r;return a&&(n=s,i=r),{width:n,height:i,$:a}}function Ah(t){return ri(t)?t:t.contextElement}function _s(t){const e=Ah(t);if(!io(e))return ki(1);const n=e.getBoundingClientRect(),{width:i,height:o,$:s}=Ey(e);let r=(s?wl(n.width):n.width)/i,a=(s?wl(n.height):n.height)/o;return(!r||!Number.isFinite(r))&&(r=1),(!a||!Number.isFinite(a))&&(a=1),{x:r,y:a}}const VO=ki(0);function Cy(t){const e=ln(t);return!Sh()||!e.visualViewport?VO:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function jO(t,e,n){return e===void 0&&(e=!1),!!n&&e&&n===ln(t)}function Wo(t,e,n,i){e===void 0&&(e=!1),n===void 0&&(n=!1);const o=t.getBoundingClientRect(),s=Ah(t);let r=ki(1);e&&(i?ri(i)&&(r=_s(i)):r=_s(t));const a=jO(s,n,i)?Cy(s):ki(0);let l=(o.left+a.x)/r.x,c=(o.top+a.y)/r.y,u=o.width/r.x,d=o.height/r.y;if(s&&i){const p=ln(s),f=ri(i)?ln(i):i;let v=p,g=Cd(v);for(;g&&f!==v;){const w=_s(g),b=g.getBoundingClientRect(),S=ai(g),D=b.left+(g.clientLeft+parseFloat(S.paddingLeft))*w.x,k=b.top+(g.clientTop+parseFloat(S.paddingTop))*w.y;l*=w.x,c*=w.y,u*=w.x,d*=w.y,l+=D,c+=k,v=ln(g),g=Cd(v)}}return Lo({width:u,height:d,x:l,y:c})}function Tu(t,e){const n=ku(t).scrollLeft;return e?e.left+n:Wo(Ni(t)).left+n}function Sy(t,e){const n=t.getBoundingClientRect(),i=n.left+e.scrollLeft-Tu(t,n),o=n.top+e.scrollTop;return{x:i,y:o}}function UO(t){let{elements:e,rect:n,offsetParent:i,strategy:o}=t;const s=o==="fixed",r=Ni(i),a=e?Au(e.floating):!1;if(i===r||a&&s)return n;let l={scrollLeft:0,scrollTop:0},c=ki(1);const u=ki(0),d=io(i);if((d||!s)&&((Ns(i)!=="body"||Su(r))&&(l=ku(i)),d)){const f=Wo(i);c=_s(i),u.x=f.x+i.clientLeft,u.y=f.y+i.clientTop}const p=r&&!d&&!s?Sy(r,l):ki(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+u.x+p.x,y:n.y*c.y-l.scrollTop*c.y+u.y+p.y}}function IO(t){return t.getClientRects?Array.from(t.getClientRects()):[]}function zO(t){const e=ku(t),n=t.ownerDocument.body,i=Ai(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),o=Ai(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let s=-e.scrollLeft+Tu(t);const r=-e.scrollTop;return ai(n).direction==="rtl"&&(s+=Ai(t.clientWidth,n.clientWidth)-i),{width:i,height:o,x:s,y:r}}const HO=25;function WO(t,e,n){n===void 0&&(n="viewport");const i=n==="layoutViewport",o=ln(t),s=Ni(t),r=o.visualViewport;let a=s.clientWidth,l=s.clientHeight,c=0,u=0;if(r){const d=!Sh()||e==="fixed";i?d||(c=-r.offsetLeft,u=-r.offsetTop):(a=r.width,l=r.height,d&&(c=r.offsetLeft,u=r.offsetTop))}if(Tu(s)<=0){const d=s.ownerDocument,p=d.body,f=getComputedStyle(p),v=d.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,g=Math.abs(s.clientWidth-p.clientWidth-v),w=getComputedStyle(s).scrollbarGutter==="stable both-edges"?g/2:g;w<=HO&&(a-=w)}return{width:a,height:l,x:c,y:u}}function JO(t,e){const n=Wo(t,!0,e==="fixed"),i=n.top+t.clientTop,o=n.left+t.clientLeft,s=_s(t),r=t.clientWidth*s.x,a=t.clientHeight*s.y,l=o*s.x,c=i*s.y;return{width:r,height:a,x:l,y:c}}function Cg(t,e,n){let i;if(e==="viewport"||e==="layoutViewport")i=WO(t,n,e);else if(e==="document")i=zO(Ni(t));else if(ri(e))i=JO(e,n);else{const o=Cy(t);i={x:e.x-o.x,y:e.y-o.y,width:e.width,height:e.height}}return Lo(i)}function GO(t,e){const n=e.get(t);if(n)return n;let i=Jr(t,[],!1).filter(a=>ri(a)&&Ns(a)!=="body"),o=null;const s=ai(t).position==="fixed";let r=s?Ho(t):t;for(;ri(r)&&!Wr(r);){const a=ai(r),l=Ch(r),c=o?o.position:s?"fixed":"";!l&&(c==="fixed"||c==="absolute"&&a.position==="static")?i=i.filter(u=>u!==r):o=a,r=Ho(r)}return e.set(t,i),i}function KO(t){let{element:e,boundary:n,rootBoundary:i,strategy:o}=t;const s=[...n==="clippingAncestors"?Au(e)?[]:GO(e,this._c):[].concat(n),i],r=Cg(e,s[0],o);let a=r.top,l=r.right,c=r.bottom,u=r.left;for(let d=1;d{a(!1,1e-7)},1e3)}F=!1}try{i=new IntersectionObserver(j,{...N,root:s.ownerDocument})}catch{i=new IntersectionObserver(j,N)}i.observe(t)}const l=ln(t),c=()=>a(n);return l.addEventListener("resize",c),a(!0),()=>{l.removeEventListener("resize",c),r()}}function t$(t,e,n,i){i===void 0&&(i={});const{ancestorScroll:o=!0,ancestorResize:s=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:a=typeof IntersectionObserver=="function",animationFrame:l=!1}=i,c=Ah(t),u=o||s?[...c?Jr(c):[],...e?Jr(e):[]]:[];u.forEach(b=>{o&&b.addEventListener("scroll",n),s&&b.addEventListener("resize",n)});const d=c&&a?MO(c,n,s):null;let p=-1,f=null;r&&(f=new ResizeObserver(b=>{let[S]=b;S&&S.target===c&&f&&e&&(f.unobserve(e),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var D;(D=f)==null||D.observe(e)})),n()}),c&&!l&&f.observe(c),e&&f.observe(e));let v,g=l?Wo(t):null;l&&w();function w(){const b=Wo(t);g&&!ky(g,b)&&n(),g=b,v=requestAnimationFrame(w)}return n(),()=>{var b;u.forEach(S=>{o&&S.removeEventListener("scroll",n),s&&S.removeEventListener("resize",n)}),d?.(),(b=f)==null||b.disconnect(),f=null,l&&cancelAnimationFrame(v)}}const e$=P1,n$=N1,i$=R1,o$=AE,s$=(t,e,n)=>{const i=new Map,o=n??{},s={...QO,...o.platform,_c:i};return $1(t,e,{...o,platform:s})},r$={mounted(t,{instance:e}){if(e.appendToBody){document.body.appendChild(t);const{height:n,top:i,left:o,width:s}=e.$refs.toggle.getBoundingClientRect(),r=window.scrollX||window.pageXOffset,a=window.scrollY||window.pageYOffset;t.unbindPosition=e.calculatePosition(t,e,{width:s+"px",left:r+o+"px",top:a+i+n+"px"})}},unmounted(t,{instance:e}){e.appendToBody&&(t.unbindPosition&&typeof t.unbindPosition=="function"&&t.unbindPosition(),t.parentNode&&t.parentNode.removeChild(t))}},a$={props:{loading:{type:Boolean,default:!1}},data(){return{mutableLoading:!1}},watch:{search(){this.$emit("search",this.search,this.toggleLoading)},loading(t){this.mutableLoading=t}},methods:{toggleLoading(t=null){return t==null?this.mutableLoading=!this.mutableLoading:this.mutableLoading=t}}},l$={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(t){this.autoscroll&&t&&this.$nextTick(()=>this.maybeAdjustScroll())}},methods:{maybeAdjustScroll(){const t=this.$refs.dropdownMenu?.children[this.typeAheadPointer]||!1;if(t){const e=this.getDropdownViewport(),{top:n,bottom:i,height:o}=t.getBoundingClientRect();if(ne.bottom)return this.$refs.dropdownMenu.scrollTop=t.offsetTop-(e.height-o)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},u$={data(){return{typeAheadPointer:-1}},watch:{filteredOptions(){if(this.resetFocusOnOptionsChange){for(let t=0;t=0;t--)if(this.selectable(this.filteredOptions[t])){this.typeAheadPointer=t;break}},typeAheadDown(){for(let t=this.typeAheadPointer+1;t{e[n]=t[n]}),JSON.stringify(e)}let d$=0;function h$(){return++d$}const kh=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},p$={},f$={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"};function g$(t,e){return C(),R("svg",f$,[...e[0]||(e[0]=[y("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1)])])}const m$=kh(p$,[["render",g$]]),v$={},y$={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"};function b$(t,e){return C(),R("svg",y$,[...e[0]||(e[0]=[y("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1)])])}const _$=kh(v$,[["render",b$]]),Ag={Deselect:m$,OpenIndicator:_$},w$={components:{...Ag},directives:{appendToBody:r$},mixins:[l$,u$,a$],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default(){return[]}},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},ariaLabelCombobox:{type:String,default:"Search for options"},ariaLabelListbox:{type:String,default:"Options"},ariaLabelClearSelected:{type:String,default:"Clear selected"},ariaLabelDeselectOption:{type:Function,default:t=>`Deselect ${t}`},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:t=>t},selectable:{type:Function,default:()=>!0},getOptionLabel:{type:Function,default(t){return typeof t=="object"?Object.hasOwn(t,this.label)?t[this.label]:fp(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(t)}. -https://vue-select.org/api/props.html#getoptionlabel`):t}},getOptionKey:{type:Function,default(t){if(typeof t!="object")return t;try{return Object.hasOwn(t,"id")?t.id:c$(t)}catch{return fp()}}},onTab:{type:Function,default(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(t,e,n){return(e||"").toLocaleLowerCase().indexOf(n.toLocaleLowerCase())>-1}},filter:{type:Function,default(t,e){return t.filter(n=>{let i=this.getOptionLabel(n);return typeof i=="number"&&(i=i.toString()),this.filterBy(n,i,e)})}},createOption:{type:Function,default(t){return typeof this.optionList[0]=="object"?{[this.label]:t}:t}},resetFocusOnOptionsChange:{type:Boolean,default:!0},resetOnOptionsChange:{default:!1,validator:t=>["function","boolean"].includes(typeof t)},clearSearchOnBlur:{type:Function,default({clearSearchOnSelect:t,multiple:e}){return t&&!e}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:t=>t},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(t,e,{width:n,top:i,left:o}){t.style.top=i,t.style.left=o,t.style.width=n}},dropdownShouldOpen:{type:Function,default({noDrop:t,open:e,mutableLoading:n}){return t?!1:e&&!n}},keyboardFocusBorder:{type:Boolean,default:!1},uid:{type:[String,Number],default:()=>h$()}},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],data(){return{search:"",open:!1,isComposing:!1,isKeyboardNavigation:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let t=this.modelValue;return this.isTrackingValues&&(t=this.$data._value),t!=null&&t!==""?[].concat(t):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const t={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:{id:this.inputId,disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,role:"combobox","aria-autocomplete":"list","aria-label":this.ariaLabelCombobox,"aria-controls":`vs-${this.uid}__listbox`,"aria-owns":`vs-${this.uid}__listbox`,"aria-expanded":this.dropdownOpen.toString(),ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search,...this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs-${this.uid}__option-${this.typeAheadPointer}`}:{}},events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,keypress:this.onSearchKeyPress,blur:this.onSearchBlur,focus:this.onSearchFocus,input:e=>this.search=e.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:t,listFooter:t,header:{...t,deselect:this.deselect},footer:{...t,deselect:this.deselect}}},childComponents(){return{...Ag,...this.components}},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const t=i=>this.limit!==null?i.slice(0,this.limit):i,e=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return t(e);const n=this.search.length?this.filter(e,this.search,this):e;if(this.taggable&&this.search.length)try{const i=this.createOption(this.search);this.optionExists(i)||n.unshift(i)}catch{}return t(n)},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(t,e){const n=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(t,e,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&n()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(t){this.isTrackingValues&&this.setInternalValueFromOptions(t)}},multiple(){this.clearSelection()},open(t){this.$emit(t?"open":"close")},search(t){t.length&&(this.open=!0)}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(t){Array.isArray(t)?this.$data._value=t.map(e=>this.findOptionFromReducedValue(e)):this.$data._value=this.findOptionFromReducedValue(t)},select(t){this.$emit("option:selecting",t),this.isOptionSelected(t)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(t):(this.taggable&&!this.optionExists(t)&&(this.$emit("option:created",t),this.pushTag(t)),this.multiple&&(t=this.selectedValue.concat(t)),this.updateValue(t),this.$emit("option:selected",t)),this.onAfterSelect(t)},deselect(t){this.$emit("option:deselecting",t),this.updateValue(this.selectedValue.filter(e=>!this.optionComparator(e,t))),this.$emit("option:deselected",t)},keyboardDeselect(t,e){this.deselect(t);const n=this.deselectButtons?.[e+1],i=this.deselectButtons?.[e-1],o=n??i;o?o.focus():this.searchEl.focus()},clearSelection(){this.updateValue(this.multiple?[]:null),this.searchEl.focus()},onAfterSelect(){this.closeOnSelect&&(this.open=!this.open),this.clearSearchOnSelect&&(this.search=""),this.noDrop&&this.multiple&&this.$nextTick(()=>this.$refs.search.focus())},updateValue(t){typeof this.modelValue>"u"&&(this.$data._value=t),t!==null&&(Array.isArray(t)?t=t.map(e=>this.reduce(e)):t=this.reduce(t)),this.$emit("update:modelValue",t)},toggleDropdown(t){const e=t.target!==this.searchEl;e&&t.preventDefault();const n=[...this.deselectButtons||[],...this.$refs.clearButton?[this.$refs.clearButton]:[]];if(this.searchEl===void 0||n.filter(Boolean).some(i=>i.contains(t.target)||i===t.target)){t.preventDefault();return}this.open&&e?(this.open=!1,this.searchEl.blur()):this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(t){return this.selectedValue.some(e=>this.optionComparator(e,t))},isOptionDeselectable(t){return this.isOptionSelected(t)&&this.deselectFromDropdown},hasKeyboardFocusBorder(t){return this.keyboardFocusBorder&&this.isKeyboardNavigation?t===this.typeAheadPointer:!1},optionComparator(t,e){return this.getOptionKey(t)===this.getOptionKey(e)},findOptionFromReducedValue(t){const e=i=>JSON.stringify(this.reduce(i))===JSON.stringify(t),n=[...this.options,...this.pushedTags].filter(e);return n.length===1?n[0]:n.find(i=>this.optionComparator(i,this.$data._value))||t},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let t=null;this.multiple&&(t=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(t)}},optionExists(t){return this.optionList.some(e=>this.optionComparator(e,t))},optionAriaSelected(t){return this.selectable(t)?String(this.isOptionSelected(t)):null},normalizeOptionForSlot(t){return typeof t=="object"?t:{[this.label]:t}},pushTag(t){this.pushedTags.push(t)},onEscape(){this.search.length?this.search="":this.open=!1},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:t,multiple:e}=this;this.clearSearchOnBlur({clearSearchOnSelect:t,multiple:e})&&(this.search=""),this.closeSearchOptions();return}this.search.length===0&&this.options.length===0&&this.closeSearchOptions()},onSearchFocus(){this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onMouseMove(t,e){this.isKeyboardNavigation=!1,this.selectable(t)&&(this.typeAheadPointer=e)},onSearchKeyDown(t){const e=o=>{if(o.preventDefault(),!this.open){this.open=!0;return}return!this.isComposing&&this.typeAheadSelect()},n={8:()=>this.maybeDeleteValue(),9:()=>this.onTab(),27:()=>this.onEscape(),38:o=>{if(o.preventDefault(),this.isKeyboardNavigation=!0,!this.open){this.open=!0;return}return this.typeAheadUp()},40:o=>{if(o.preventDefault(),this.isKeyboardNavigation=!0,!this.open){this.open=!0;return}return this.typeAheadDown()}};this.selectOnKeyCodes.forEach(o=>n[o]=e);const i=this.mapKeydown(n,this);if(typeof i[t.keyCode]=="function")return i[t.keyCode](t)},onSearchKeyPress(t){!this.open&&t.keyCode===32&&(t.preventDefault(),this.open=!0)}}},x$=["id","dir"],E$={ref:"toggle",class:"vs__dropdown-toggle"},C$=["disabled","title","aria-label","onMousedown","onKeydown"],S$={ref:"actions",class:"vs__actions"},A$=["disabled","title","aria-label"],k$={class:"vs__spinner"},T$=["id","aria-label","aria-multiselectable"],D$=["id","aria-selected","onMousemove","onClick"],O$={key:0,class:"vs__no-options"},$$=["id","aria-label"];function R$(t,e,n,i,o,s){const r=f_("append-to-body");return C(),R("div",{id:`v-select-${n.uid}`,dir:n.dir,class:Bt(["v-select",s.stateClasses])},[kt(t.$slots,"header",Ie($e(s.scope.header))),y("div",E$,[y("div",{ref:"selectedOptions",class:"vs__selected-options",onMousedown:e[0]||(e[0]=(...a)=>s.toggleDropdown&&s.toggleDropdown(...a))},[(C(!0),R(yt,null,Fe(s.selectedValue,(a,l)=>kt(t.$slots,"selected-option-container",{option:s.normalizeOptionForSlot(a),deselect:s.deselect,multiple:n.multiple,disabled:n.disabled},()=>[(C(),R("span",{key:n.getOptionKey(a),class:"vs__selected"},[kt(t.$slots,"selected-option",Lt({ref_for:!0},s.normalizeOptionForSlot(a)),()=>[bt(A(n.getOptionLabel(a)),1)]),n.multiple?(C(),R("button",{key:0,ref_for:!0,ref:c=>o.deselectButtons[l]=c,disabled:n.disabled,type:"button",class:"vs__deselect",title:n.ariaLabelDeselectOption(n.getOptionLabel(a)),"aria-label":n.ariaLabelDeselectOption(n.getOptionLabel(a)),onMousedown:Ua(c=>s.deselect(a),["stop"]),onKeydown:n1(c=>s.keyboardDeselect(a,l),["enter"])},[(C(),ct(Po(s.childComponents.Deselect)))],40,C$)):st("",!0)]))])),256)),kt(t.$slots,"search",Ie($e(s.scope.search)),()=>[y("input",Lt({class:"vs__search"},s.scope.search.attributes,Sm(s.scope.search.events,!0)),null,16)])],544),y("div",S$,[Sn(y("button",{ref:"clearButton",disabled:n.disabled,type:"button",class:"vs__clear",title:n.ariaLabelClearSelected,"aria-label":n.ariaLabelClearSelected,onClick:e[1]||(e[1]=(...a)=>s.clearSelection&&s.clearSelection(...a))},[(C(),ct(Po(s.childComponents.Deselect)))],8,A$),[[Mn,s.showClearButton]]),n.noDrop?st("",!0):(C(),R("button",{key:0,ref:"openIndicatorButton",class:"vs__open-indicator-button",type:"button",tabindex:"-1","aria-hidden":"true",onMousedown:e[2]||(e[2]=(...a)=>s.toggleDropdown&&s.toggleDropdown(...a))},[kt(t.$slots,"open-indicator",Ie($e(s.scope.openIndicator)),()=>[(C(),ct(Po(s.childComponents.OpenIndicator),Ie($e(s.scope.openIndicator.attributes)),null,16))])],544)),kt(t.$slots,"spinner",Ie($e(s.scope.spinner)),()=>[Sn(y("div",k$," Loading... ",512),[[Mn,t.mutableLoading]])])],512)],512),q(us,{name:n.transition},{default:dt(()=>[s.dropdownOpen?Sn((C(),R("ul",{id:`vs-${n.uid}__listbox`,ref:"dropdownMenu",key:`vs-${n.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox","aria-label":n.ariaLabelListbox,"aria-multiselectable":n.multiple?"true":null,tabindex:"-1",onMousedown:e[3]||(e[3]=Ua((...a)=>s.onMousedown&&s.onMousedown(...a),["prevent"])),onMouseup:e[4]||(e[4]=(...a)=>s.onMouseUp&&s.onMouseUp(...a))},[kt(t.$slots,"list-header",Ie($e(s.scope.listHeader))),(C(!0),R(yt,null,Fe(s.filteredOptions,(a,l)=>(C(),R("li",{id:`vs-${n.uid}__option-${l}`,key:n.getOptionKey(a),role:"option",class:Bt(["vs__dropdown-option",{"vs__dropdown-option--deselect":s.isOptionDeselectable(a)&&l===t.typeAheadPointer,"vs__dropdown-option--selected":s.isOptionSelected(a),"vs__dropdown-option--highlight":l===t.typeAheadPointer,"vs__dropdown-option--kb-focus":s.hasKeyboardFocusBorder(l),"vs__dropdown-option--disabled":!n.selectable(a)}]),"aria-selected":s.optionAriaSelected(a),onMousemove:c=>s.onMouseMove(a,l),onClick:Ua(c=>n.selectable(a)?s.select(a):null,["prevent","stop"])},[kt(t.$slots,"option",Lt({ref_for:!0},s.normalizeOptionForSlot(a)),()=>[bt(A(n.getOptionLabel(a)),1)])],42,D$))),128)),s.filteredOptions.length===0?(C(),R("li",O$,[kt(t.$slots,"no-options",Ie($e(s.scope.noOptions)),()=>[e[5]||(e[5]=bt(" Sorry, no matching options. ",-1))])])):st("",!0),kt(t.$slots,"list-footer",Ie($e(s.scope.listFooter)))],40,T$)),[[r]]):(C(),R("ul",{key:1,id:`vs-${n.uid}__listbox`,role:"listbox","aria-label":n.ariaLabelListbox,style:{display:"none",visibility:"hidden"}},null,8,$$))]),_:3},8,["name"]),kt(t.$slots,"footer",Ie($e(s.scope.footer)))],10,x$)}const vo=kh(w$,[["render",R$]]),B$={name:"ChevronDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},P$=["aria-hidden","aria-label"],N$=["fill","width","height"],L$={d:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},F$={key:0};function V$(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chevron-down-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",L$,[n.title?(C(),R("title",F$,A(n.title),1)):st("",!0)])],8,N$))],16,P$)}const j$=pe(B$,[["render",V$]]),U$={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},I$=["aria-hidden","aria-label"],z$=["fill","width","height"],H$={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},W$={key:0};function J$(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon close-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",H$,[n.title?(C(),R("title",W$,A(n.title),1)):st("",!0)])],8,z$))],16,I$)}const G$=pe(U$,[["render",J$]]);function Ty(t,e){const n=[];let i=0,o=t.toLowerCase().indexOf(e.toLowerCase(),i),s=0;for(;o>-1&&s++[]}},computed:{ranges(){let t=[];return!this.search&&this.highlight.length===0||(this.highlight.length>0?t=this.highlight:t=Ty(this.text,this.search),t.forEach((e,n)=>{e.end(n.start0&&e.push({start:n.start<0?0:n.start,end:n.end>this.text.length?this.text.length:n.end}),e),[]),t.sort((e,n)=>e.start-n.start),t=t.reduce((e,n)=>{if(!e.length)e.push(n);else{const i=e.length-1;e[i].end>=n.start?e[i]={start:e[i].start,end:Math.max(e[i].end,n.end)}:e.push(n)}return e},[])),t},chunks(){if(this.ranges.length===0)return[{start:0,end:this.text.length,highlight:!1,text:this.text}];const t=[];let e=0,n=0;for(;e=this.ranges.length&&et.highlight?be("strong",{},t.text):t.text)):be("span",{},this.text)}}),q$={name:"NcEllipsisedOption",components:{NcHighlight:K$},props:{name:{type:String,default:""},search:{type:String,default:""}},computed:{needsTruncate(){return this.name&&this.name.length>=10},split(){return this.name.length-Math.min(Math.floor(this.name.length/2),10)},part1(){return this.needsTruncate?this.name.slice(0,this.split):this.name},part2(){return this.needsTruncate?this.name.slice(this.split):""},highlight1(){return this.search?Ty(this.name,this.search):[]},highlight2(){return this.highlight1.map(t=>({start:t.start-this.split,end:t.end-this.split}))}}},X$=["title"];function Y$(t,e,n,i,o,s){const r=xn("NcHighlight");return C(),R("span",{dir:"auto",class:"name-parts",title:n.name},[q(r,{class:"name-parts__first",text:s.part1,search:n.search,highlight:s.highlight1},null,8,["text","search","highlight"]),s.part2?(C(),ct(r,{key:0,class:"name-parts__last",text:s.part2,search:n.search,highlight:s.highlight2},null,8,["text","search","highlight"])):st("",!0)],8,X$)}const Z$=pe(q$,[["render",Y$],["__scopeId","data-v-c843f2cd"]]),Q$={class:"input-field__main-wrapper"},M$=["id","aria-describedby","disabled","placeholder","type","value"],tR=["for"],eR={class:"input-field__icon input-field__icon--leading"},nR={key:2,class:"input-field__icon input-field__icon--trailing"},iR=["id"],oR=Et({inheritAttrs:!1,__name:"NcInputField",props:ii({class:{default:""},inputClass:{default:""},id:{default:()=>oi()},label:{default:void 0},labelOutside:{type:Boolean},type:{default:"text"},placeholder:{default:void 0},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{default:""},disabled:{type:Boolean},pill:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:ii(["trailingButtonClick"],["update:modelValue"]),setup(t,{expose:e,emit:n}){const i=Jo(t,"modelValue"),o=t,s=n;e({focus:p,select:f});const r=m_(),a=Ar("input"),l=rt(()=>o.showTrailingButton||o.success),c=rt(()=>{if(o.placeholder)return o.placeholder;if(o.label)return Es?o.label:""}),u=rt(()=>o.label||o.labelOutside),d=rt(()=>{const g=[];return o.helperText&&g.push(`${o.id}-helper-text`),r["aria-describedby"]&&g.push(String(r["aria-describedby"])),g.join(" ")||void 0});function p(g){a.value.focus(g)}function f(){a.value.select()}function v(g){const w=g.target;i.value=o.type==="number"&&typeof i.value=="number"?parseFloat(w.value):w.value}return(g,w)=>(C(),R("div",{class:Bt(["input-field",[{"input-field--disabled":t.disabled,"input-field--error":t.error,"input-field--label-outside":t.labelOutside||!u.value,"input-field--leading-icon":!!g.$slots.icon,"input-field--trailing-icon":l.value,"input-field--pill":t.pill,"input-field--success":t.success,"input-field--legacy":E(Es)},g.$props.class]])},[y("div",Q$,[y("input",Lt(g.$attrs,{id:t.id,ref:"input","aria-describedby":d.value,"aria-live":"polite",class:["input-field__input",t.inputClass],disabled:t.disabled,placeholder:c.value,type:t.type,value:i.value.toString(),onInput:v}),null,16,M$),!t.labelOutside&&u.value?(C(),R("label",{key:0,class:"input-field__label",for:t.id},A(t.label),9,tR)):st("",!0),Sn(y("div",eR,[kt(g.$slots,"icon",{},void 0,!0)],512),[[Mn,!!g.$slots.icon]]),t.showTrailingButton?(C(),ct(Se,{key:1,class:"input-field__trailing-button","aria-label":t.trailingButtonLabel,disabled:t.disabled,variant:"tertiary-no-background",onClick:w[0]||(w[0]=b=>s("trailingButtonClick",b))},{icon:dt(()=>[kt(g.$slots,"trailing-button-icon",{},void 0,!0)]),_:3},8,["aria-label","disabled"])):t.success||t.error?(C(),R("div",nR,[t.success?(C(),ct(Pe,{key:0,path:E(gl)},null,8,["path"])):(C(),ct(Pe,{key:1,path:E(Xc)},null,8,["path"]))])):st("",!0)]),t.helperText?(C(),R("p",{key:0,id:`${t.id}-helper-text`,class:"input-field__helper-text-message"},[t.success?(C(),ct(Pe,{key:0,class:"input-field__helper-text-message__icon",path:E(gl),inline:""},null,8,["path"])):t.error?(C(),ct(Pe,{key:1,class:"input-field__helper-text-message__icon",path:E(Xc),inline:""},null,8,["path"])):st("",!0),bt(" "+A(t.helperText),1)],8,iR)):st("",!0)],2))}}),kg=pe(oR,[["__scopeId","data-v-feb04bef"]]);Go(r2,d2);const ds=Et({__name:"NcTextField",props:ii({class:{},inputClass:{},id:{},label:{},labelOutside:{type:Boolean},placeholder:{},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{},disabled:{type:Boolean},pill:{type:Boolean},type:{},trailingButtonIcon:{default:"close"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(t,{expose:e}){const n=Jo(t,"modelValue"),i=t;e({focus:l,select:c});const o=Ar("inputField"),s={arrowEnd:de("Save changes"),close:de("Clear text"),undo:de("Undo changes")},r=new Set(Object.keys(kg.props)),a=rt(()=>{const u=Object.fromEntries(Object.entries(i).filter(([d])=>r.has(d)));return u.trailingButtonLabel??=s[i.trailingButtonIcon],u});function l(u){o.value.focus(u)}function c(){o.value.select()}return(u,d)=>(C(),ct(E(kg),Lt(a.value,{ref:"inputField",modelValue:n.value,"onUpdate:modelValue":d[0]||(d[0]=p=>n.value=p)}),Xr({_:2},[u.$slots.icon?{name:"icon",fn:dt(()=>[kt(u.$slots,"icon")]),key:"0"}:void 0,t.type!=="search"?{name:"trailing-button-icon",fn:dt(()=>[t.trailingButtonIcon==="arrowEnd"?(C(),ct(E(Pe),{key:0,directional:"",path:E(Nx)},null,8,["path"])):(C(),ct(E(Pe),{key:1,path:t.trailingButtonIcon==="undo"?E(Jx):E(Yc)},null,8,["path"]))]),key:"1"}:void 0]),1040,["modelValue"]))}});Go(s2);const sR={name:"NcSelect",components:{ChevronDown:j$,NcEllipsisedOption:Z$,NcIconSvgWrapper:Pe,NcLoadingIcon:b1,NcTextField:ds,VueSelect:vo},props:{...vo.props,...vo.mixins.reduce((t,e)=>({...t,...e.props}),{}),ariaLabelClearSelected:{type:String,default:de("Clear selected")},ariaLabelCombobox:{type:String,default:null},ariaLabelListbox:{type:String,default:de("Options")},ariaLabelDeselectOption:{type:Function,default:t=>de("Deselect {option}",{option:t})},appendToBody:{type:Boolean,default:!0},calculatePosition:{type:Function,default:null},keepOpen:{type:Boolean,default:!1},components:{type:Object,default:()=>({Deselect:{render:()=>be(G$,{size:20,fillColor:"var(--vs-controls-color)",style:[{cursor:"pointer"}]})}})},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},dropdownShouldOpen:{type:Function,default:({noDrop:t,open:e})=>t?!1:e},filterBy:{type:Function,default:null},inputClass:{type:[String,Object],default:null},inputId:{type:String,default:()=>oi()},inputLabel:{type:String,default:null},helperText:{type:String,default:""},error:{type:Boolean,default:!1},success:{type:Boolean,default:!1},labelOutside:{type:Boolean,default:!1},keyboardFocusBorder:{type:Boolean,default:!0},label:{type:String,default:null},loading:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noWrap:{type:Boolean,default:!1},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},mapKeydown:{type:Function,default(t,e){return{...t,27:n=>{e.open&&n.stopPropagation(),t[27](n)}}}},uid:{type:String,default:()=>oi()},placement:{type:String,default:"bottom"},resetFocusOnOptionsChange:{type:Boolean,default:!0},modelValue:{type:[String,Number,Object,Array],default:null},required:{type:Boolean,default:!1}," ":{}},emits:[" ","update:modelValue"],setup(){const t=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),e=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline"));return{avatarSize:t-2*e,isLegacy:Es,mdiAlertCircleOutline:Xc,mdiCheck:gl}},data(){return{search:""}},computed:{inputRequired(){return this.required?this.modelValue===null||Array.isArray(this.modelValue)&&this.modelValue.length===0:null},localCalculatePosition(){return this.calculatePosition!==null?this.calculatePosition:(t,e,{width:n})=>{t.style.width=n;const i={name:"addClass",fn(){return t.classList.add("vs__dropdown-menu--floating","nc-select__dropdown"),{}}},o={name:"togglePlacementClass",fn({placement:r}){return e.$el.classList.toggle("select--drop-up",r==="top"),t.classList.toggle("vs__dropdown-menu--floating-placement-top",r==="top"),{}}},s=()=>{s$(e.$refs.toggle,t,{placement:this.placement,middleware:[i$(),i,o,e$(({placement:r})=>r.startsWith("top")?10:-1),n$({limiter:o$()})]}).then(({x:r,y:a})=>{Object.assign(t.style,{left:`${r}px`,top:`${a}px`,width:`${e.$refs.toggle.getBoundingClientRect().width}px`})})};return t$(e.$refs.toggle,t,s)}},localFilterBy(){return this.filterBy??vo.props.filterBy.default},localLabel(){return this.label??vo.props.label.default},propsToForward(){const t=[...Object.keys(vo.props),...vo.mixins.flatMap(e=>Object.keys(e.props??{}))];return{...Object.fromEntries(Object.entries(this.$props).filter(([e,n])=>t.includes(e))),calculatePosition:this.localCalculatePosition,closeOnSelect:!this.keepOpen,filterBy:this.localFilterBy,label:this.localLabel}}},mounted(){!this.labelOutside&&!this.inputLabel&&this.ariaLabelCombobox,this.inputLabel&&this.ariaLabelCombobox},methods:{t:de,forwardedSlots(){return Object.keys(this.$slots).filter(t=>t!=="footer")}}},rR=["for"],aR=["id"];function lR(t,e,n,i,o,s){const r=xn("NcTextField"),a=xn("ChevronDown"),l=xn("NcEllipsisedOption"),c=xn("NcLoadingIcon"),u=xn("NcIconSvgWrapper"),d=xn("VueSelect");return C(),ct(d,Lt({class:["select nc-select",{"select--legacy":i.isLegacy,"select--no-wrap":n.noWrap}]},s.propsToForward,{onSearch:e[0]||(e[0]=p=>o.search=p),"onUpdate:modelValue":e[1]||(e[1]=p=>t.$emit("update:modelValue",p))}),Xr({search:dt(({attributes:p,events:f})=>[q(r,{id:p.id,class:Bt(["vs__search",[n.inputClass]]),type:p.type,modelValue:p.value,placeholder:n.multiple||n.modelValue?"":n.placeholder||"",label:!n.labelOutside&&!n.multiple&&n.inputLabel?n.inputLabel:"",labelOutside:n.labelOutside||n.multiple,disabled:n.disabled,required:s.inputRequired,role:p.role,tabindex:p.tabindex,readonly:p.readonly,autocomplete:p.autocomplete,"aria-label":p["aria-label"],"aria-describedby":[p["aria-describedby"],n.helperText?`${n.inputId}-helper-text`:null].filter(Boolean).join(" ")||void 0,"aria-autocomplete":p["aria-autocomplete"],"aria-controls":p["aria-controls"],"aria-owns":p["aria-owns"],"aria-expanded":p["aria-expanded"],"aria-activedescendant":p["aria-activedescendant"],onKeydown:f.keydown,onKeypress:f.keypress,onFocus:f.focus,onBlur:f.blur,onCompositionstart:f.compositionstart,onCompositionend:f.compositionend,"onUpdate:modelValue":v=>f.input({target:{value:v}})},null,8,["id","class","type","modelValue","placeholder","label","labelOutside","disabled","required","role","tabindex","readonly","autocomplete","aria-label","aria-describedby","aria-autocomplete","aria-controls","aria-owns","aria-expanded","aria-activedescendant","onKeydown","onKeypress","onFocus","onBlur","onCompositionstart","onCompositionend","onUpdate:modelValue"])]),"open-indicator":dt(({attributes:p})=>[q(a,Lt(p,{fillColor:"var(--vs-controls-color)",style:{cursor:n.disabled?null:"pointer"},size:20}),null,16,["style"])]),option:dt(p=>[kt(t.$slots,"option",Ie($e(p)),()=>[q(l,{name:String(p[s.localLabel]),search:o.search},null,8,["name","search"])])]),"selected-option":dt(p=>[kt(t.$slots,"selected-option",Ie($e(p)),()=>[q(l,{name:String(p[s.localLabel]),search:o.search},null,8,["name","search"])])]),spinner:dt(p=>[p.loading?(C(),ct(c,{key:0})):st("",!0)]),"no-options":dt(()=>[bt(A(s.t("No results")),1)]),_:2},[n.multiple&&!n.labelOutside&&n.inputLabel?{name:"header",fn:dt(()=>[y("label",{for:n.inputId,class:"select__label"},A(n.inputLabel),9,rR)]),key:"0"}:void 0,n.helperText||t.$slots.footer?{name:"footer",fn:dt(p=>[n.helperText?(C(),R("p",{key:0,id:`${n.inputId}-helper-text`,class:Bt(["select__helper-text",{"select__helper-text--error":n.error,"select__helper-text--success":n.success}])},[n.success?(C(),ct(u,{key:0,class:"select__helper-text-icon",path:i.mdiCheck,inline:""},null,8,["path"])):n.error?(C(),ct(u,{key:1,class:"select__helper-text-icon",path:i.mdiAlertCircleOutline,inline:""},null,8,["path"])):st("",!0),bt(" "+A(n.helperText),1)],10,aR)):st("",!0),kt(t.$slots,"footer",Ie($e(p)))]),key:"1"}:void 0,Fe(s.forwardedSlots(),p=>({name:p,fn:dt(f=>[kt(t.$slots,p,Ie($e(f)))])}))]),1040,["class"])}const uR=pe(sR,[["render",lR]]),cR={class:"db-settings"},dR={class:"db-settings__intro"},hR=Et({__name:"DatabaseSettingsDialog",props:{override:{}},emits:["close","saved"],setup(t,{emit:e}){const n=t,i=e,o=[{id:"pdo_mysql",label:"MySQL / MariaDB"},{id:"pdo_pgsql",label:"PostgreSQL"}],s=Rt({...n.override}),r=Rt(""),a=Rt(!1),l=Rt(""),c=Rt("success"),u=rt({get:()=>String(s.value.port||""),set:g=>{s.value.port=Number.parseInt(g,10)||0}}),d=rt({get:()=>o.find(g=>g.id===s.value.driver)??o[0],set:g=>{s.value.driver=g.id}});function p(g,w){l.value=g,c.value=w}async function f(){a.value=!0;try{const g=await Cn.post(Qi("/apps/serverinfo/database/test-connection"),{host:s.value.host,port:s.value.port,user:s.value.user,password:r.value,database:s.value.database,driver:s.value.driver});p(g.data.ok?O("serverinfo","Connected. Server version: {version}",{version:g.data.version??""}):g.data.message,g.data.ok?"success":"error")}catch(g){p(String(g),"error")}finally{a.value=!1}}async function v(){a.value=!0;try{await Cn.put(Qi("/apps/serverinfo/database/settings"),{host:s.value.host,port:s.value.port,user:s.value.user,database:s.value.database,driver:s.value.driver,password:r.value===""?null:r.value,clearPassword:s.value.host===""}),i("saved"),i("close")}catch(g){p(String(g),"error")}finally{a.value=!1}}return(g,w)=>(C(),ct(E(hu),{name:E(O)("serverinfo","Database connection"),open:!0,size:"normal","onUpdate:open":w[7]||(w[7]=b=>g.$emit("close"))},{actions:dt(()=>[q(E(Se),{variant:"tertiary",onClick:w[6]||(w[6]=b=>g.$emit("close"))},{default:dt(()=>[bt(A(E(O)("serverinfo","Cancel")),1)]),_:1}),q(E(Se),{variant:"secondary",disabled:a.value||s.value.host==="",onClick:f},{default:dt(()=>[bt(A(E(O)("serverinfo","Test connection")),1)]),_:1},8,["disabled"]),q(E(Se),{variant:"primary",disabled:a.value,onClick:v},{default:dt(()=>[bt(A(E(O)("serverinfo","Save")),1)]),_:1},8,["disabled"])]),default:dt(()=>[y("div",cR,[y("p",dR,A(E(O)("serverinfo","By default the checks use the same connection as Nextcloud. Give a separate connection here to run them as a user with the rights Nextcloud does not need, for example to read the full server configuration. Leave the host empty to use the default connection.")),1),q(E(ds),{modelValue:s.value.host,"onUpdate:modelValue":w[0]||(w[0]=b=>s.value.host=b),label:E(O)("serverinfo","Host")},null,8,["modelValue","label"]),q(E(ds),{modelValue:u.value,"onUpdate:modelValue":w[1]||(w[1]=b=>u.value=b),type:"number",label:E(O)("serverinfo","Port")},null,8,["modelValue","label"]),q(E(ds),{modelValue:s.value.user,"onUpdate:modelValue":w[2]||(w[2]=b=>s.value.user=b),label:E(O)("serverinfo","User")},null,8,["modelValue","label"]),q(E(ds),{modelValue:r.value,"onUpdate:modelValue":w[3]||(w[3]=b=>r.value=b),type:"password",label:s.value.passwordSet?E(O)("serverinfo","Password (stored, leave empty to keep)"):E(O)("serverinfo","Password")},null,8,["modelValue","label"]),q(E(ds),{modelValue:s.value.database,"onUpdate:modelValue":w[4]||(w[4]=b=>s.value.database=b),label:E(O)("serverinfo","Database name")},null,8,["modelValue","label"]),q(E(uR),{modelValue:d.value,"onUpdate:modelValue":w[5]||(w[5]=b=>d.value=b),options:o,clearable:!1,inputLabel:E(O)("serverinfo","Driver")},null,8,["modelValue","inputLabel"]),l.value?(C(),ct(E(Si),{key:0,type:c.value},{default:dt(()=>[bt(A(l.value),1)]),_:1},8,["type"])):st("",!0)])]),_:1},8,["name"]))}}),pR=Pt(hR,[["__scopeId","data-v-846e1455"]]),fR={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},gR=["aria-hidden","aria-label"],mR=["fill","width","height"],vR={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},yR={key:0};function bR(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon check-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",vR,[n.title?(C(),R("title",yR,A(n.title),1)):st("",!0)])],8,mR))],16,gR)}const _R=Pt(fR,[["render",bR]]),wR={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},xR=["aria-hidden","aria-label"],ER=["fill","width","height"],CR={d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"},SR={key:0};function AR(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon content-copy-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",CR,[n.title?(C(),R("title",SR,A(n.title),1)):st("",!0)])],8,ER))],16,xR)}const kR=Pt(wR,[["render",AR]]),TR={class:"snippet"},DR={class:"snippet__code"},OR={key:0,class:"snippet__note"},$R={key:1,class:"snippet__note"},RR=Et({__name:"DatabaseSnippetDialog",props:{rule:{}},emits:["close"],setup(t){const e=t,n=Rt(!1),i=Rt(!1),o=rt(()=>{const r=e.rule?.apply;if(!r)return"";const a=`${r.configKey} = ${r.recommendedValue}`;return r.configFile==="postgresql.conf"?`# ${r.configFile} +`):t}function LD(t,e){const{element:n,datasetIndex:i,index:o}=e,s=t.getDatasetMeta(i).controller,{label:r,value:a}=s.getLabelAndValue(o);return{chart:t,label:r,parsed:s.getParsed(o),raw:t.data.datasets[i].data[o],formattedValue:a,dataset:s.getDataset(),dataIndex:o,datasetIndex:i,element:n}}function lg(t,e){const n=t.chart.ctx,{body:i,footer:o,title:s}=t,{boxWidth:r,boxHeight:a}=e,l=sn(e.bodyFont),c=sn(e.titleFont),u=sn(e.footerFont),d=s.length,p=o.length,f=i.length,v=Fn(e.padding);let g=v.height,w=0,b=i.reduce((k,N)=>k+N.before.length+N.lines.length+N.after.length,0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(g+=d*c.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){const k=e.displayColors?Math.max(a,l.lineHeight):l.lineHeight;g+=f*k+(b-f)*l.lineHeight+(b-1)*e.bodySpacing}p&&(g+=e.footerMarginTop+p*u.lineHeight+(p-1)*e.footerSpacing);let S=0;const D=function(k){w=Math.max(w,n.measureText(k).width+S)};return n.save(),n.font=c.string,te(t.title,D),n.font=l.string,te(t.beforeBody.concat(t.afterBody),D),S=e.displayColors?r+2+e.boxPadding:0,te(i,k=>{te(k.before,D),te(k.lines,D),te(k.after,D)}),S=0,n.font=u.string,te(t.footer,D),n.restore(),w+=v.width,{width:w,height:g}}function FD(t,e){const{y:n,height:i}=e;return nt.height-i/2?"bottom":"center"}function VD(t,e,n,i){const{x:o,width:s}=i,r=n.caretSize+n.caretPadding;if(t==="left"&&o+s+r>e.width||t==="right"&&o-s-r<0)return!0}function jD(t,e,n,i){const{x:o,width:s}=n,{width:r,chartArea:{left:a,right:l}}=t;let c="center";return i==="center"?c=o<=(a+l)/2?"left":"right":o<=s/2?c="left":o>=r-s/2&&(c="right"),VD(c,t,e,n)&&(c="center"),c}function ug(t,e,n){const i=n.yAlign||e.yAlign||FD(t,n);return{xAlign:n.xAlign||e.xAlign||jD(t,e,n,i),yAlign:i}}function UD(t,e){let{x:n,width:i}=t;return e==="right"?n-=i:e==="center"&&(n-=i/2),n}function ID(t,e,n){let{y:i,height:o}=t;return e==="top"?i+=n:e==="bottom"?i-=o+n:i-=o/2,i}function cg(t,e,n,i){const{caretSize:o,caretPadding:s,cornerRadius:r}=t,{xAlign:a,yAlign:l}=n,c=o+s,{topLeft:u,topRight:d,bottomLeft:p,bottomRight:f}=br(r);let v=UD(e,a);const g=ID(e,l,c);return l==="center"?a==="left"?v+=c:a==="right"&&(v-=c):a==="left"?v-=Math.max(u,p)+o:a==="right"&&(v+=Math.max(d,f)+o),{x:Me(v,0,i.width-e.width),y:Me(g,0,i.height-e.height)}}function Ba(t,e,n){const i=Fn(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-i.right:t.x+i.left}function dg(t){return Wn([],fi(t))}function zD(t,e,n){return Ko(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function hg(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const yy={beforeTitle:hi,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(i>0&&e.dataIndex"u"?yy[e].call(n,i):o}class pg extends qo{static positioners=sr;constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,i=this.options.setContext(this.getContext()),o=i.enabled&&n.options.animation&&i.animations,s=new ny(this.chart,o);return o._cacheable&&(this._cachedAnimations=Object.freeze(s)),s}getContext(){return this.$context||(this.$context=zD(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:i}=n,o=en(i,"beforeTitle",this,e),s=en(i,"title",this,e),r=en(i,"afterTitle",this,e);let a=[];return a=Wn(a,fi(o)),a=Wn(a,fi(s)),a=Wn(a,fi(r)),a}getBeforeBody(e,n){return dg(en(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:i}=n,o=[];return te(e,s=>{const r={before:[],lines:[],after:[]},a=hg(i,s);Wn(r.before,fi(en(a,"beforeLabel",this,s))),Wn(r.lines,en(a,"label",this,s)),Wn(r.after,fi(en(a,"afterLabel",this,s))),o.push(r)}),o}getAfterBody(e,n){return dg(en(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:i}=n,o=en(i,"beforeFooter",this,e),s=en(i,"footer",this,e),r=en(i,"afterFooter",this,e);let a=[];return a=Wn(a,fi(o)),a=Wn(a,fi(s)),a=Wn(a,fi(r)),a}_createItems(e){const n=this._active,i=this.chart.data,o=[],s=[],r=[];let a=[],l,c;for(l=0,c=n.length;le.filter(u,d,p,i))),e.itemSort&&(a=a.sort((u,d)=>e.itemSort(u,d,i))),te(a,u=>{const d=hg(e.callbacks,u);o.push(en(d,"labelColor",this,u)),s.push(en(d,"labelPointStyle",this,u)),r.push(en(d,"labelTextColor",this,u))}),this.labelColors=o,this.labelPointStyles=s,this.labelTextColors=r,this.dataPoints=a,a}update(e,n){const i=this.options.setContext(this.getContext()),o=this._active;let s,r=[];if(!o.length)this.opacity!==0&&(s={opacity:0});else{const a=sr[i.position].call(this,o,this._eventPosition);r=this._createItems(i),this.title=this.getTitle(r,i),this.beforeBody=this.getBeforeBody(r,i),this.body=this.getBody(r,i),this.afterBody=this.getAfterBody(r,i),this.footer=this.getFooter(r,i);const l=this._size=lg(this,i),c=Object.assign({},a,l),u=ug(this.chart,i,c),d=cg(i,c,u,this.chart);this.xAlign=u.xAlign,this.yAlign=u.yAlign,s={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=r,this.$context=void 0,s&&this._resolveAnimations().update(this,s),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,i,o){const s=this.getCaretPosition(e,i,o);n.lineTo(s.x1,s.y1),n.lineTo(s.x2,s.y2),n.lineTo(s.x3,s.y3)}getCaretPosition(e,n,i){const{xAlign:o,yAlign:s}=this,{caretSize:r,cornerRadius:a}=i,{topLeft:l,topRight:c,bottomLeft:u,bottomRight:d}=br(a),{x:p,y:f}=e,{width:v,height:g}=n;let w,b,S,D,k,N;return s==="center"?(k=f+g/2,o==="left"?(w=p,b=w-r,D=k+r,N=k-r):(w=p+v,b=w+r,D=k-r,N=k+r),S=w):(o==="left"?b=p+Math.max(l,u)+r:o==="right"?b=p+v-Math.max(c,d)-r:b=this.caretX,s==="top"?(D=f,k=D-r,w=b-r,S=b+r):(D=f+g,k=D+r,w=b+r,S=b-r),N=D),{x1:w,x2:b,x3:S,y1:D,y2:k,y3:N}}drawTitle(e,n,i){const o=this.title,s=o.length;let r,a,l;if(s){const c=bs(i.rtl,this.x,this.width);for(e.x=Ba(this,i.titleAlign,i),n.textAlign=c.textAlign(i.titleAlign),n.textBaseline="middle",r=sn(i.titleFont),a=i.titleSpacing,n.fillStyle=i.titleColor,n.font=r.string,l=0;lS!==0)?(e.beginPath(),e.fillStyle=s.multiKeyBackground,bd(e,{x:g,y:v,w:c,h:l,radius:b}),e.fill(),e.stroke(),e.fillStyle=r.backgroundColor,e.beginPath(),bd(e,{x:w,y:v+1,w:c-2,h:l-2,radius:b}),e.fill()):(e.fillStyle=s.multiKeyBackground,e.fillRect(g,v,c,l),e.strokeRect(g,v,c,l),e.fillStyle=r.backgroundColor,e.fillRect(w,v+1,c-2,l-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,n,i){const{body:o}=this,{bodySpacing:s,bodyAlign:r,displayColors:a,boxHeight:l,boxWidth:c,boxPadding:u}=i,d=sn(i.bodyFont);let p=d.lineHeight,f=0;const v=bs(i.rtl,this.x,this.width),g=function(I){n.fillText(I,v.x(e.x+f),e.y+p/2),e.y+=p+s},w=v.textAlign(r);let b,S,D,k,N,F,j;for(n.textAlign=r,n.textBaseline="middle",n.font=d.string,e.x=Ba(this,w,i),n.fillStyle=i.bodyColor,te(this.beforeBody,g),f=a&&w!=="right"?r==="center"?c/2+u:c+2+u:0,k=0,F=o.length;k0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,i=this.$animations,o=i&&i.x,s=i&&i.y;if(o||s){const r=sr[e.position].call(this,this._active,this._eventPosition);if(!r)return;const a=this._size=lg(this,e),l=Object.assign({},r,this._size),c=ug(n,e,l),u=cg(e,l,c,n);(o._to!==u.x||s._to!==u.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=a.width,this.height=a.height,this.caretX=r.x,this.caretY=r.y,this._resolveAnimations().update(this,u))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const o={width:this.width,height:this.height},s={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const r=Fn(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(e.save(),e.globalAlpha=i,this.drawBackground(s,e,o,n),Yv(e,n.textDirection),s.y+=r.top,this.drawTitle(s,e,n),this.drawBody(s,e,n),this.drawFooter(s,e,n),Zv(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const i=this._active,o=e.map(({datasetIndex:a,index:l})=>{const c=this.chart.getDatasetMeta(a);if(!c)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:c.data[l],index:l}}),s=!Nl(i,o),r=this._positionChanged(o,n);(s||r)&&(this._active=o,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const o=this.options,s=this._active||[],r=this._getActiveElements(e,s,n,i),a=this._positionChanged(r,e),l=n||!Nl(r,s)||a;return l&&(this._active=r,(o.enabled||o.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),l}_getActiveElements(e,n,i,o){const s=this.options;if(e.type==="mouseout")return[];if(!o)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const r=this.chart.getElementsAtEventForMode(e,s.mode,s,i);return s.reverse&&r.reverse(),r}_positionChanged(e,n){const{caretX:i,caretY:o,options:s}=this,r=sr[s.position].call(this,e,n);return r!==!1&&(i!==r.x||o!==r.y)}}var xu={id:"tooltip",_element:pg,positioners:sr,afterInit(t,e,n){n&&(t.tooltip=new pg({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:yy},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const HD=(t,e,n,i)=>(typeof e=="string"?(n=t.push(e)-1,i.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function JD(t,e,n,i){const o=t.indexOf(e);if(o===-1)return HD(t,e,n,i);const s=t.lastIndexOf(e);return o!==s?n:o}const WD=(t,e)=>t===null?null:Me(Math.round(t),0,e);function fg(t){const e=this.getLabels();return t>=0&&tn.length-1?null:this.getPixelForValue(n[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}function GD(t,e){const n=[],{bounds:i,step:o,min:s,max:r,precision:a,count:l,maxTicks:c,maxDigits:u,includeBounds:d}=t,p=o||1,f=c-1,{min:v,max:g}=e,w=!re(s),b=!re(r),S=!re(l),D=(g-v)/(u+1);let k=p0((g-v)/f/p)*p,N,F,j,I;if(k<1e-14&&!w&&!b)return[{value:v},{value:g}];I=Math.ceil(g/k)-Math.floor(v/k),I>f&&(k=p0(I*k/f/p)*p),re(a)||(N=Math.pow(10,a),k=Math.ceil(k*N)/N),i==="ticks"?(F=Math.floor(v/k)*k,j=Math.ceil(g/k)*k):(F=v,j=g),w&&b&&o&&cT((r-s)/o,k/1e3)?(I=Math.round(Math.min((r-s)/k,c)),k=(r-s)/I,F=s,j=r):S?(F=w?s:F,j=b?r:j,I=l-1,k=(j-F)/I):(I=(j-F)/k,mr(I,Math.round(I),k/1e3)?I=Math.round(I):I=Math.ceil(I));const X=Math.max(f0(k),f0(F));N=Math.pow(10,re(a)?X:a),F=Math.round(F*N)/N,j=Math.round(j*N)/N;let J=0;for(w&&(d&&F!==s?(n.push({value:s}),Fr)break;n.push({value:Y})}return b&&d&&j!==r?n.length&&mr(n[n.length-1].value,r,gg(r,D,t))?n[n.length-1].value=r:n.push({value:r}):(!b||j===r)&&n.push({value:j}),n}function gg(t,e,{horizontal:n,minRotation:i}){const o=xi(i),s=(n?Math.sin(o):Math.cos(o))||.001,r=.75*e*(""+t).length;return Math.min(e/s,r)}class KD extends Bs{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return re(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:o,max:s}=this;const r=l=>o=n?o:l,a=l=>s=i?s:l;if(e){const l=As(o),c=As(s);l<0&&c<0?a(0):l>0&&c>0&&r(0)}if(o===s){let l=s===0?1:Math.abs(s*.05);a(s+l),e||r(o-l)}this.min=o,this.max=s}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=e,o;return i?(o=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),n=n||11),n&&(o=Math.min(n,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const o={maxTicks:i,bounds:e.bounds,min:e.min,max:e.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},s=this._range||this,r=GD(o,s);return e.bounds==="ticks"&&dT(r,this,"value"),e.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){const e=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&e.length){const o=(i-n)/Math.max(e.length-1,1)/2;n-=o,i+=o}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(e){return ch(e,this.chart.options.locale,this.options.ticks.format)}}class xh extends KD{static id="linear";static defaults={ticks:{callback:Hv.formatters.numeric}};determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=Ke(e)?e:0,this.max=Ke(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,i=xi(this.options.ticks.minRotation),o=(e?Math.sin(i):Math.cos(i))||.001,s=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,s.lineHeight/o))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}const Eu={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},on=Object.keys(Eu);function mg(t,e){return t-e}function vg(t,e){if(re(e))return null;const n=t._adapter,{parser:i,round:o,isoWeekday:s}=t._parseOpts;let r=e;return typeof i=="function"&&(r=i(r)),Ke(r)||(r=typeof i=="string"?n.parse(r,i):n.parse(r)),r===null?null:(o&&(r=o==="week"&&(Ur(s)||s===!0)?n.startOf(r,"isoWeek",s):n.startOf(r,o)),+r)}function yg(t,e,n,i){const o=on.length;for(let s=on.indexOf(t);s=on.indexOf(n);s--){const r=on[s];if(Eu[r].common&&t._adapter.diff(o,i,r)>=e-1)return r}return on[n?on.indexOf(n):0]}function XD(t){for(let e=on.indexOf(t)+1,n=on.length;e=e?n[i]:n[o];t[s]=!0}}function YD(t,e,n,i){const o=t._adapter,s=+o.startOf(e[0].value,i),r=e[e.length-1].value;let a,l;for(a=s;a<=r;a=+o.add(a,1,i))l=n[a],l>=0&&(e[l].major=!0);return e}function _g(t,e,n){const i=[],o={},s=e.length;let r,a;for(r=0;r+e.value))}initOffsets(e=[]){let n=0,i=0,o,s;this.options.offset&&e.length&&(o=this.getDecimalForValue(e[0]),e.length===1?n=1-o:n=(this.getDecimalForValue(e[1])-o)/2,s=this.getDecimalForValue(e[e.length-1]),e.length===1?i=s:i=(s-this.getDecimalForValue(e[e.length-2]))/2);const r=e.length<3?.5:.25;n=Me(n,0,r),i=Me(i,0,r),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const e=this._adapter,n=this.min,i=this.max,o=this.options,s=o.time,r=s.unit||yg(s.minUnit,n,i,this._getLabelCapacity(n)),a=It(o.ticks.stepSize,1),l=r==="week"?s.isoWeekday:!1,c=Ur(l)||l===!0,u={};let d=n,p,f;if(c&&(d=+e.startOf(d,"isoWeek",l)),d=+e.startOf(d,c?"day":r),e.diff(i,n,r)>1e5*a)throw new Error(n+" and "+i+" are too far apart with stepSize of "+a+" "+r);const v=o.ticks.source==="data"&&this.getDataTimestamps();for(p=d,f=0;p+g)}getLabelForValue(e){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(e,i.tooltipFormat):n.format(e,i.displayFormats.datetime)}format(e,n){const i=this.options.time.displayFormats,o=this._unit,s=n||i[o];return this._adapter.format(e,s)}_tickFormatFunction(e,n,i,o){const s=this.options,r=s.ticks.callback;if(r)return le(r,[e,n,i],this);const a=s.time.displayFormats,l=this._unit,c=this._majorUnit,u=l&&a[l],d=c&&a[c],p=i[n],f=c&&d&&p&&p.major;return this._adapter.format(e,o||(f?d:u))}generateTickLabels(e){let n,i,o;for(n=0,i=e.length;n0?a:1}getDataTimestamps(){let e=this._cache.data||[],n,i;if(e.length)return e;const o=this.getMatchingVisibleMetas();if(this._normalized&&o.length)return this._cache.data=o[0].controller.getAllParsedValues(this);for(n=0,i=o.length;n=t[i].pos&&e<=t[o].pos&&({lo:i,hi:o}=Oo(t,"pos",e)),{pos:s,time:a}=t[i],{pos:r,time:l}=t[o]):(e>=t[i].time&&e<=t[o].time&&({lo:i,hi:o}=Oo(t,"time",e)),{time:s,pos:a}=t[i],{time:r,pos:l}=t[o]);const c=r-s;return c?a+(l-a)*(e-s)/c:a}class wF extends wg{static id="timeseries";static defaults=wg.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=Pa(n,this.min),this._tableRange=Pa(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:i}=this,o=[],s=[];let r,a,l,c,u;for(r=0,a=e.length;r=n&&c<=i&&o.push(c);if(o.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(r=0,a=o.length;ro-s)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?e=this.normalize(n.concat(i)):e=n.length?n:i,e=this._cache.all=e,e}getDecimalForValue(e){return(Pa(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const n=this._offsets,i=this.getDecimalForPixel(e)/n.factor-n.end;return Pa(this._table,i*this._tableRange+this._minPos,!0)}}const by={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},ZD={ariaLabel:{type:String},ariaDescribedby:{type:String}},QD={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...by,...ZD},MD=Xm[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function as(t){return Os(t)?Jt(t):t}function tO(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return Os(e)?new Proxy(t,{}):t}function eO(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function _y(t,e){t.labels=e}function wy(t,e,n){const i=[];t.datasets=e.map(o=>{const s=t.datasets.find(r=>r[n]===o[n]);return!s||!o.data||i.includes(s)?{...o}:(i.push(s),Object.assign(s,o),s)})}function nO(t,e){const n={labels:[],datasets:[]};return _y(n,t.labels),wy(n,t.datasets,e),n}const iO=Et({props:QD,setup(t,e){let{expose:n,slots:i}=e;const o=Rt(null),s=rn(null);n({chart:s});const r=()=>{if(!o.value)return;const{type:c,data:u,options:d,plugins:p,datasetIdKey:f}=t,v=nO(u,f),g=tO(v,u);s.value=new no(o.value,{type:c,data:g,options:{...d},plugins:p})},a=()=>{const c=Jt(s.value);c&&(t.destroyDelay>0?setTimeout(()=>{c.destroy(),s.value=null},t.destroyDelay):(c.destroy(),s.value=null))},l=c=>{c.update(t.updateMode)};return Pi(r),Dn(a),ke([()=>t.options,()=>t.data],(c,u)=>{let[d,p]=c,[f,v]=u;const g=Jt(s.value);if(!g)return;let w=!1;if(d){const b=as(d),S=as(f);b&&b!==S&&(eO(g,b),w=!0)}if(p){const b=as(p.labels),S=as(v.labels),D=as(p.datasets),k=as(v.datasets);b!==S&&(_y(g.config.data,b),w=!0),D&&D!==k&&(wy(g.config.data,D,t.datasetIdKey),w=!0)}w&&qr(()=>{l(g)})},{deep:!0}),()=>be("canvas",{role:"img","aria-label":t.ariaLabel,"aria-describedby":t.ariaDescribedby,ref:o},[be("p",{},[i.default?i.default():""])])}});function oO(t,e){return no.register(e),Et({props:by,setup(n,i){let{expose:o}=i;const s=rn(null),r=rn(null);ke(()=>r.value?.chart??null,l=>{s.value=l},{flush:"sync"}),o({chart:s});const a=l=>{r.value=l};return()=>be(iO,MD({ref:a},{type:t,...n}))}})}const Eh=oO("line",bu),sO={class:"db-live"},rO={class:"db-live__head"},aO={class:"db-live__label"},lO={class:"db-live__value"},uO={class:"db-live__chart"},xg=30,cO=3e3,dO=Et({__name:"DatabaseLiveCharts",props:{active:{type:Boolean}},setup(t){const e=t;no.register(wh,_h,xh,bu,Ps,bh,xu);const n=rn([]),i=rn([]),o=rn([]),s=Rt("—"),r=Rt("—"),a=Rt("—"),l=Rt(O("serverinfo","Queries per second"));let c=null,u=!1,d=null,p=null;const f=rt(()=>pu());function v(F,j){const I=[...F.value,j];F.value=I.length>xg?I.slice(I.length-xg):I}async function g(){c=null;try{const{data:F}=await Cn.get(Qi("/apps/serverinfo/database/live"));if(v(o,F.latencyMs??null),a.value=F.latencyMs!==null?`${F.latencyMs} ms`:"—",F.available){v(n,F.connections.used),s.value=`${F.connections.used} / ${F.connections.max}`;const j=Date.now();if(d!==null&&p!==null){const I=(j-p)/1e3,X=F.throughput.counter-d,J=I>0&&X>=0?X/I:null;v(i,J===null?null:Math.round(J)),r.value=J===null?"—":Math.round(J).toLocaleString()}d=F.throughput.counter,p=j,l.value=F.throughput.label==="Transactions/s"?O("serverinfo","Transactions per second"):O("serverinfo","Queries per second")}}catch{v(n,null),v(i,null),v(o,null)}finally{w()}}function w(){u||!e.active||document.hidden||c!==null||(c=setTimeout(g,cO))}function b(){c!==null&&(clearTimeout(c),c=null)}ke(()=>[e.active,document.hidden],()=>{e.active&&!document.hidden?c===null&&g():b()},{immediate:!0});function S(){document.hidden?b():e.active&&c===null&&g()}document.addEventListener("visibilitychange",S),Dn(()=>{u=!0,document.removeEventListener("visibilitychange",S),b()});function D(F){return{animation:!1,responsive:!0,maintainAspectRatio:!1,scales:{x:{display:!1},y:{display:!1,beginAtZero:!0}},plugins:{legend:{display:!1},tooltip:{displayColors:!1,callbacks:{label:j=>`${j.parsed.y??"—"} ${F}`}}},elements:{point:{radius:0,hitRadius:8}}}}function k(F){return{labels:F.map(()=>""),datasets:[{data:F,borderColor:f.value,backgroundColor:qd(f.value,.15),borderWidth:2,fill:!0,tension:.3,spanGaps:!1}]}}const N=rt(()=>[{key:"connections",label:O("serverinfo","Current connections"),value:s.value,data:k(n.value),options:D(O("serverinfo","connections"))},{key:"queries",label:l.value,value:r.value,data:k(i.value),options:D("/s")},{key:"latency",label:O("serverinfo","Database latency"),value:a.value,data:k(o.value),options:D("ms")}]);return(F,j)=>(C(),R("div",sO,[(C(!0),R(yt,null,Fe(N.value,I=>(C(),R("section",{key:I.key,class:"db-live__box"},[y("header",rO,[y("span",aO,A(I.label),1),y("span",lO,A(I.value),1)]),y("div",uO,[q(E(Eh),{data:I.data,options:I.options},null,8,["data","options"])])]))),128))]))}}),hO=Pt(dO,[["__scopeId","data-v-3092ee62"]]),pO={name:"CodeJsonIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},fO=["aria-hidden","aria-label"],gO=["fill","width","height"],mO={d:"M5,3H7V5H5V10A2,2 0 0,1 3,12A2,2 0 0,1 5,14V19H7V21H5C3.93,20.73 3,20.1 3,19V15A2,2 0 0,0 1,13H0V11H1A2,2 0 0,0 3,9V5A2,2 0 0,1 5,3M19,3A2,2 0 0,1 21,5V9A2,2 0 0,0 23,11H24V13H23A2,2 0 0,0 21,15V19A2,2 0 0,1 19,21H17V19H19V14A2,2 0 0,1 21,12A2,2 0 0,1 19,10V5H17V3H19M12,15A1,1 0 0,1 13,16A1,1 0 0,1 12,17A1,1 0 0,1 11,16A1,1 0 0,1 12,15M8,15A1,1 0 0,1 9,16A1,1 0 0,1 8,17A1,1 0 0,1 7,16A1,1 0 0,1 8,15M16,15A1,1 0 0,1 17,16A1,1 0 0,1 16,17A1,1 0 0,1 15,16A1,1 0 0,1 16,15Z"},vO={key:0};function yO(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon code-json-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",mO,[n.title?(C(),R("title",vO,A(n.title),1)):st("",!0)])],8,gO))],16,fO)}const bO=Pt(pO,[["render",yO]]),_O={class:"rule-card__header"},wO={class:"rule-card__title-block"},xO={class:"rule-card__title"},EO={class:"rule-card__meta"},CO={key:0,class:"rule-card__issue"},SO={key:1,class:"rule-card__line"},AO={key:2,class:"rule-card__line rule-card__line--muted"},kO={key:3,class:"rule-card__affected"},TO={key:4,class:"rule-card__line"},DO={key:5,class:"rule-card__details"},OO={key:0,class:"rule-card__tag"},$O={key:6,class:"rule-card__actions"},RO=["href"],BO=Et({__name:"DatabaseRuleCard",props:{rule:{}},emits:["snippet"],setup(t){const e=t,n=rt(()=>e.rule.value!==null||e.rule.apply!==null),i=rt(()=>av(e.rule)),o=rt(()=>{switch(i.value){case"ok":return O("serverinfo","Passing");case"skipped":return O("serverinfo","Skipped");case"hint":return O("serverinfo","Hint");default:return O("serverinfo","Failing")}}),s=rt(()=>{switch(e.rule.severity){case"alert":return O("serverinfo","Alert");case"notice":return O("serverinfo","Notice");default:return O("serverinfo","Warning")}}),r=rt(()=>{const a=e.rule.value;return a===null?"":Number.isInteger(a)?a.toLocaleString():a.toFixed(2)});return(a,l)=>(C(),R("article",{class:Bt(["rule-card",`rule-card--${i.value}`])},[y("header",_O,[y("span",{class:Bt(["rule-card__dot",`rule-card__dot--${t.rule.severity}`])},null,2),y("div",wO,[y("h4",xO,A(t.rule.name),1),y("span",EO,[bt(A(s.value)+" ",1),l[1]||(l[1]=y("span",{"aria-hidden":"true"},"Ā·",-1)),y("code",null,A(t.rule.id),1)])]),y("span",{class:Bt(["rule-card__chip",`rule-card__chip--${i.value}`])},A(o.value),3)]),t.rule.status==="fail"&&t.rule.issue?(C(),R("p",CO,A(t.rule.issue),1)):st("",!0),t.rule.justification?(C(),R("p",SO,A(t.rule.justification),1)):t.rule.skipReason?(C(),R("p",AO,A(t.rule.skipReason),1)):st("",!0),t.rule.details?.length?(C(),R("ul",kO,[(C(!0),R(yt,null,Fe(t.rule.details,c=>(C(),R("li",{key:c},[y("code",null,A(c),1)]))),128))])):st("",!0),t.rule.status==="fail"&&t.rule.recommendation?(C(),R("p",TO,A(t.rule.recommendation),1)):st("",!0),n.value?(C(),R("dl",DO,[t.rule.value!==null?(C(),R(yt,{key:0},[y("dt",null,A(E(O)("serverinfo","Value")),1),y("dd",null,A(r.value),1)],64)):st("",!0),t.rule.apply?(C(),R(yt,{key:1},[y("dt",null,A(E(O)("serverinfo","Setting")),1),y("dd",null,[y("code",null,A(t.rule.apply.variable),1),l[2]||(l[2]=y("span",{"aria-hidden":"true"},"→",-1)),y("code",null,A(t.rule.apply.recommendedValue),1),t.rule.apply.runtimeWritable?st("",!0):(C(),R("span",OO,A(E(O)("serverinfo","restart required")),1))])],64)):st("",!0),t.rule.apply?.note?(C(),R(yt,{key:2},[y("dt",null,A(E(O)("serverinfo","Note")),1),y("dd",null,A(t.rule.apply.note),1)],64)):st("",!0)])):st("",!0),t.rule.status==="fail"&&t.rule.apply||t.rule.docUrl?(C(),R("footer",$O,[t.rule.status==="fail"&&t.rule.apply?(C(),ct(E(Se),{key:0,variant:"secondary",onClick:l[0]||(l[0]=c=>a.$emit("snippet",t.rule))},{icon:dt(()=>[q(bO,{size:20})]),default:dt(()=>[bt(" "+A(E(O)("serverinfo","Show config snippet")),1)]),_:1})):st("",!0),t.rule.docUrl?(C(),R("a",{key:1,href:t.rule.docUrl,target:"_blank",rel:"noreferrer noopener",class:"rule-card__doc"},A(E(O)("serverinfo","Documentation ↗")),9,RO)):st("",!0)])):st("",!0)],2))}}),PO=Pt(BO,[["__scopeId","data-v-43d2b623"]]);function Cu(){return typeof window<"u"}function Ns(t){return xy(t)?(t.nodeName||"").toLowerCase():"#document"}function ln(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function Ni(t){var e;return(e=(xy(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function xy(t){return Cu()?t instanceof Node||t instanceof ln(t).Node:!1}function ri(t){return Cu()?t instanceof Element||t instanceof ln(t).Element:!1}function io(t){return Cu()?t instanceof HTMLElement||t instanceof ln(t).HTMLElement:!1}function Eg(t){return!Cu()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof ln(t).ShadowRoot}function Su(t){const{overflow:e,overflowX:n,overflowY:i,display:o}=ai(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&o!=="inline"&&o!=="contents"}function NO(t){return/^(table|td|th)$/.test(Ns(t))}function Au(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const LO=/transform|translate|scale|rotate|perspective|filter/,FO=/paint|layout|strict|content/,mo=t=>!!t&&t!=="none";let Dc;function Ch(t){const e=ri(t)?ai(t):t;return mo(e.transform)||mo(e.translate)||mo(e.scale)||mo(e.rotate)||mo(e.perspective)||!Sh()&&(mo(e.backdropFilter)||mo(e.filter))||LO.test(e.willChange||"")||FO.test(e.contain||"")}function VO(t){let e=Ho(t);for(;io(e)&&!Jr(e);){if(Ch(e))return e;if(Au(e))return null;e=Ho(e)}return null}function Sh(){return Dc==null&&(Dc=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Dc}function Jr(t){return/^(html|body|#document)$/.test(Ns(t))}function ai(t){return ln(t).getComputedStyle(t)}function ku(t){return ri(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Ho(t){if(Ns(t)==="html")return t;const e=t.assignedSlot||t.parentNode||Eg(t)&&t.host||Ni(t);return Eg(e)?e.host:e}function Ey(t){const e=Ho(t);return Jr(e)?(t.ownerDocument||t).body:io(e)&&Su(e)?e:Ey(e)}function Wr(t,e,n){var i;e===void 0&&(e=[]),n===void 0&&(n=!0);const o=Ey(t),s=o===((i=t.ownerDocument)==null?void 0:i.body),r=ln(o);if(s){const a=Cd(r);return e.concat(r,r.visualViewport||[],Su(o)?o:[],a&&n?Wr(a):[])}else return e.concat(o,Wr(o,[],n))}function Cd(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Cy(t){const e=ai(t);let n=parseFloat(e.width)||0,i=parseFloat(e.height)||0;const o=io(t),s=o?t.offsetWidth:n,r=o?t.offsetHeight:i,a=wl(n)!==s||wl(i)!==r;return a&&(n=s,i=r),{width:n,height:i,$:a}}function Ah(t){return ri(t)?t:t.contextElement}function _s(t){const e=Ah(t);if(!io(e))return ki(1);const n=e.getBoundingClientRect(),{width:i,height:o,$:s}=Cy(e);let r=(s?wl(n.width):n.width)/i,a=(s?wl(n.height):n.height)/o;return(!r||!Number.isFinite(r))&&(r=1),(!a||!Number.isFinite(a))&&(a=1),{x:r,y:a}}const jO=ki(0);function Sy(t){const e=ln(t);return!Sh()||!e.visualViewport?jO:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function UO(t,e,n){return e===void 0&&(e=!1),!!n&&e&&n===ln(t)}function Jo(t,e,n,i){e===void 0&&(e=!1),n===void 0&&(n=!1);const o=t.getBoundingClientRect(),s=Ah(t);let r=ki(1);e&&(i?ri(i)&&(r=_s(i)):r=_s(t));const a=UO(s,n,i)?Sy(s):ki(0);let l=(o.left+a.x)/r.x,c=(o.top+a.y)/r.y,u=o.width/r.x,d=o.height/r.y;if(s&&i){const p=ln(s),f=ri(i)?ln(i):i;let v=p,g=Cd(v);for(;g&&f!==v;){const w=_s(g),b=g.getBoundingClientRect(),S=ai(g),D=b.left+(g.clientLeft+parseFloat(S.paddingLeft))*w.x,k=b.top+(g.clientTop+parseFloat(S.paddingTop))*w.y;l*=w.x,c*=w.y,u*=w.x,d*=w.y,l+=D,c+=k,v=ln(g),g=Cd(v)}}return Lo({width:u,height:d,x:l,y:c})}function Tu(t,e){const n=ku(t).scrollLeft;return e?e.left+n:Jo(Ni(t)).left+n}function Ay(t,e){const n=t.getBoundingClientRect(),i=n.left+e.scrollLeft-Tu(t,n),o=n.top+e.scrollTop;return{x:i,y:o}}function IO(t){let{elements:e,rect:n,offsetParent:i,strategy:o}=t;const s=o==="fixed",r=Ni(i),a=e?Au(e.floating):!1;if(i===r||a&&s)return n;let l={scrollLeft:0,scrollTop:0},c=ki(1);const u=ki(0),d=io(i);if((d||!s)&&((Ns(i)!=="body"||Su(r))&&(l=ku(i)),d)){const f=Jo(i);c=_s(i),u.x=f.x+i.clientLeft,u.y=f.y+i.clientTop}const p=r&&!d&&!s?Ay(r,l):ki(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+u.x+p.x,y:n.y*c.y-l.scrollTop*c.y+u.y+p.y}}function zO(t){return t.getClientRects?Array.from(t.getClientRects()):[]}function HO(t){const e=ku(t),n=t.ownerDocument.body,i=Ai(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),o=Ai(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let s=-e.scrollLeft+Tu(t);const r=-e.scrollTop;return ai(n).direction==="rtl"&&(s+=Ai(t.clientWidth,n.clientWidth)-i),{width:i,height:o,x:s,y:r}}const JO=25;function WO(t,e,n){n===void 0&&(n="viewport");const i=n==="layoutViewport",o=ln(t),s=Ni(t),r=o.visualViewport;let a=s.clientWidth,l=s.clientHeight,c=0,u=0;if(r){const d=!Sh()||e==="fixed";i?d||(c=-r.offsetLeft,u=-r.offsetTop):(a=r.width,l=r.height,d&&(c=r.offsetLeft,u=r.offsetTop))}if(Tu(s)<=0){const d=s.ownerDocument,p=d.body,f=getComputedStyle(p),v=d.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,g=Math.abs(s.clientWidth-p.clientWidth-v),w=getComputedStyle(s).scrollbarGutter==="stable both-edges"?g/2:g;w<=JO&&(a-=w)}return{width:a,height:l,x:c,y:u}}function GO(t,e){const n=Jo(t,!0,e==="fixed"),i=n.top+t.clientTop,o=n.left+t.clientLeft,s=_s(t),r=t.clientWidth*s.x,a=t.clientHeight*s.y,l=o*s.x,c=i*s.y;return{width:r,height:a,x:l,y:c}}function Cg(t,e,n){let i;if(e==="viewport"||e==="layoutViewport")i=WO(t,n,e);else if(e==="document")i=HO(Ni(t));else if(ri(e))i=GO(e,n);else{const o=Sy(t);i={x:e.x-o.x,y:e.y-o.y,width:e.width,height:e.height}}return Lo(i)}function KO(t,e){const n=e.get(t);if(n)return n;let i=Wr(t,[],!1).filter(a=>ri(a)&&Ns(a)!=="body"),o=null;const s=ai(t).position==="fixed";let r=s?Ho(t):t;for(;ri(r)&&!Jr(r);){const a=ai(r),l=Ch(r),c=o?o.position:s?"fixed":"";!l&&(c==="fixed"||c==="absolute"&&a.position==="static")?i=i.filter(u=>u!==r):o=a,r=Ho(r)}return e.set(t,i),i}function qO(t){let{element:e,boundary:n,rootBoundary:i,strategy:o}=t;const s=[...n==="clippingAncestors"?Au(e)?[]:KO(e,this._c):[].concat(n),i],r=Cg(e,s[0],o);let a=r.top,l=r.right,c=r.bottom,u=r.left;for(let d=1;d{a(!1,1e-7)},1e3)}F=!1}try{i=new IntersectionObserver(j,{...N,root:s.ownerDocument})}catch{i=new IntersectionObserver(j,N)}i.observe(t)}const l=ln(t),c=()=>a(n);return l.addEventListener("resize",c),a(!0),()=>{l.removeEventListener("resize",c),r()}}function e$(t,e,n,i){i===void 0&&(i={});const{ancestorScroll:o=!0,ancestorResize:s=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:a=typeof IntersectionObserver=="function",animationFrame:l=!1}=i,c=Ah(t),u=o||s?[...c?Wr(c):[],...e?Wr(e):[]]:[];u.forEach(b=>{o&&b.addEventListener("scroll",n),s&&b.addEventListener("resize",n)});const d=c&&a?t$(c,n,s):null;let p=-1,f=null;r&&(f=new ResizeObserver(b=>{let[S]=b;S&&S.target===c&&f&&e&&(f.unobserve(e),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var D;(D=f)==null||D.observe(e)})),n()}),c&&!l&&f.observe(c),e&&f.observe(e));let v,g=l?Jo(t):null;l&&w();function w(){const b=Jo(t);g&&!Ty(g,b)&&n(),g=b,v=requestAnimationFrame(w)}return n(),()=>{var b;u.forEach(S=>{o&&S.removeEventListener("scroll",n),s&&S.removeEventListener("resize",n)}),d?.(),(b=f)==null||b.disconnect(),f=null,l&&cancelAnimationFrame(v)}}const n$=P1,i$=N1,o$=R1,s$=kE,r$=(t,e,n)=>{const i=new Map,o=n??{},s={...MO,...o.platform,_c:i};return $1(t,e,{...o,platform:s})},a$={mounted(t,{instance:e}){if(e.appendToBody){document.body.appendChild(t);const{height:n,top:i,left:o,width:s}=e.$refs.toggle.getBoundingClientRect(),r=window.scrollX||window.pageXOffset,a=window.scrollY||window.pageYOffset;t.unbindPosition=e.calculatePosition(t,e,{width:s+"px",left:r+o+"px",top:a+i+n+"px"})}},unmounted(t,{instance:e}){e.appendToBody&&(t.unbindPosition&&typeof t.unbindPosition=="function"&&t.unbindPosition(),t.parentNode&&t.parentNode.removeChild(t))}},l$={props:{loading:{type:Boolean,default:!1}},data(){return{mutableLoading:!1}},watch:{search(){this.$emit("search",this.search,this.toggleLoading)},loading(t){this.mutableLoading=t}},methods:{toggleLoading(t=null){return t==null?this.mutableLoading=!this.mutableLoading:this.mutableLoading=t}}},u$={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(t){this.autoscroll&&t&&this.$nextTick(()=>this.maybeAdjustScroll())}},methods:{maybeAdjustScroll(){const t=this.$refs.dropdownMenu?.children[this.typeAheadPointer]||!1;if(t){const e=this.getDropdownViewport(),{top:n,bottom:i,height:o}=t.getBoundingClientRect();if(ne.bottom)return this.$refs.dropdownMenu.scrollTop=t.offsetTop-(e.height-o)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},c$={data(){return{typeAheadPointer:-1}},watch:{filteredOptions(){if(this.resetFocusOnOptionsChange){for(let t=0;t=0;t--)if(this.selectable(this.filteredOptions[t])){this.typeAheadPointer=t;break}},typeAheadDown(){for(let t=this.typeAheadPointer+1;t{e[n]=t[n]}),JSON.stringify(e)}let h$=0;function p$(){return++h$}const kh=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},f$={},g$={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"};function m$(t,e){return C(),R("svg",g$,[...e[0]||(e[0]=[y("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1)])])}const v$=kh(f$,[["render",m$]]),y$={},b$={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"};function _$(t,e){return C(),R("svg",b$,[...e[0]||(e[0]=[y("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1)])])}const w$=kh(y$,[["render",_$]]),Ag={Deselect:v$,OpenIndicator:w$},x$={components:{...Ag},directives:{appendToBody:a$},mixins:[u$,c$,l$],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default(){return[]}},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},ariaLabelCombobox:{type:String,default:"Search for options"},ariaLabelListbox:{type:String,default:"Options"},ariaLabelClearSelected:{type:String,default:"Clear selected"},ariaLabelDeselectOption:{type:Function,default:t=>`Deselect ${t}`},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:t=>t},selectable:{type:Function,default:()=>!0},getOptionLabel:{type:Function,default(t){return typeof t=="object"?Object.hasOwn(t,this.label)?t[this.label]:fp(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(t)}. +https://vue-select.org/api/props.html#getoptionlabel`):t}},getOptionKey:{type:Function,default(t){if(typeof t!="object")return t;try{return Object.hasOwn(t,"id")?t.id:d$(t)}catch{return fp()}}},onTab:{type:Function,default(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(t,e,n){return(e||"").toLocaleLowerCase().indexOf(n.toLocaleLowerCase())>-1}},filter:{type:Function,default(t,e){return t.filter(n=>{let i=this.getOptionLabel(n);return typeof i=="number"&&(i=i.toString()),this.filterBy(n,i,e)})}},createOption:{type:Function,default(t){return typeof this.optionList[0]=="object"?{[this.label]:t}:t}},resetFocusOnOptionsChange:{type:Boolean,default:!0},resetOnOptionsChange:{default:!1,validator:t=>["function","boolean"].includes(typeof t)},clearSearchOnBlur:{type:Function,default({clearSearchOnSelect:t,multiple:e}){return t&&!e}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:t=>t},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(t,e,{width:n,top:i,left:o}){t.style.top=i,t.style.left=o,t.style.width=n}},dropdownShouldOpen:{type:Function,default({noDrop:t,open:e,mutableLoading:n}){return t?!1:e&&!n}},keyboardFocusBorder:{type:Boolean,default:!1},uid:{type:[String,Number],default:()=>p$()}},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],data(){return{search:"",open:!1,isComposing:!1,isKeyboardNavigation:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let t=this.modelValue;return this.isTrackingValues&&(t=this.$data._value),t!=null&&t!==""?[].concat(t):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const t={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:{id:this.inputId,disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,role:"combobox","aria-autocomplete":"list","aria-label":this.ariaLabelCombobox,"aria-controls":`vs-${this.uid}__listbox`,"aria-owns":`vs-${this.uid}__listbox`,"aria-expanded":this.dropdownOpen.toString(),ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search,...this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs-${this.uid}__option-${this.typeAheadPointer}`}:{}},events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,keypress:this.onSearchKeyPress,blur:this.onSearchBlur,focus:this.onSearchFocus,input:e=>this.search=e.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:t,listFooter:t,header:{...t,deselect:this.deselect},footer:{...t,deselect:this.deselect}}},childComponents(){return{...Ag,...this.components}},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const t=i=>this.limit!==null?i.slice(0,this.limit):i,e=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return t(e);const n=this.search.length?this.filter(e,this.search,this):e;if(this.taggable&&this.search.length)try{const i=this.createOption(this.search);this.optionExists(i)||n.unshift(i)}catch{}return t(n)},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(t,e){const n=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(t,e,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&n()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(t){this.isTrackingValues&&this.setInternalValueFromOptions(t)}},multiple(){this.clearSelection()},open(t){this.$emit(t?"open":"close")},search(t){t.length&&(this.open=!0)}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(t){Array.isArray(t)?this.$data._value=t.map(e=>this.findOptionFromReducedValue(e)):this.$data._value=this.findOptionFromReducedValue(t)},select(t){this.$emit("option:selecting",t),this.isOptionSelected(t)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(t):(this.taggable&&!this.optionExists(t)&&(this.$emit("option:created",t),this.pushTag(t)),this.multiple&&(t=this.selectedValue.concat(t)),this.updateValue(t),this.$emit("option:selected",t)),this.onAfterSelect(t)},deselect(t){this.$emit("option:deselecting",t),this.updateValue(this.selectedValue.filter(e=>!this.optionComparator(e,t))),this.$emit("option:deselected",t)},keyboardDeselect(t,e){this.deselect(t);const n=this.deselectButtons?.[e+1],i=this.deselectButtons?.[e-1],o=n??i;o?o.focus():this.searchEl.focus()},clearSelection(){this.updateValue(this.multiple?[]:null),this.searchEl.focus()},onAfterSelect(){this.closeOnSelect&&(this.open=!this.open),this.clearSearchOnSelect&&(this.search=""),this.noDrop&&this.multiple&&this.$nextTick(()=>this.$refs.search.focus())},updateValue(t){typeof this.modelValue>"u"&&(this.$data._value=t),t!==null&&(Array.isArray(t)?t=t.map(e=>this.reduce(e)):t=this.reduce(t)),this.$emit("update:modelValue",t)},toggleDropdown(t){const e=t.target!==this.searchEl;e&&t.preventDefault();const n=[...this.deselectButtons||[],...this.$refs.clearButton?[this.$refs.clearButton]:[]];if(this.searchEl===void 0||n.filter(Boolean).some(i=>i.contains(t.target)||i===t.target)){t.preventDefault();return}this.open&&e?(this.open=!1,this.searchEl.blur()):this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(t){return this.selectedValue.some(e=>this.optionComparator(e,t))},isOptionDeselectable(t){return this.isOptionSelected(t)&&this.deselectFromDropdown},hasKeyboardFocusBorder(t){return this.keyboardFocusBorder&&this.isKeyboardNavigation?t===this.typeAheadPointer:!1},optionComparator(t,e){return this.getOptionKey(t)===this.getOptionKey(e)},findOptionFromReducedValue(t){const e=i=>JSON.stringify(this.reduce(i))===JSON.stringify(t),n=[...this.options,...this.pushedTags].filter(e);return n.length===1?n[0]:n.find(i=>this.optionComparator(i,this.$data._value))||t},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let t=null;this.multiple&&(t=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(t)}},optionExists(t){return this.optionList.some(e=>this.optionComparator(e,t))},optionAriaSelected(t){return this.selectable(t)?String(this.isOptionSelected(t)):null},normalizeOptionForSlot(t){return typeof t=="object"?t:{[this.label]:t}},pushTag(t){this.pushedTags.push(t)},onEscape(){this.search.length?this.search="":this.open=!1},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:t,multiple:e}=this;this.clearSearchOnBlur({clearSearchOnSelect:t,multiple:e})&&(this.search=""),this.closeSearchOptions();return}this.search.length===0&&this.options.length===0&&this.closeSearchOptions()},onSearchFocus(){this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onMouseMove(t,e){this.isKeyboardNavigation=!1,this.selectable(t)&&(this.typeAheadPointer=e)},onSearchKeyDown(t){const e=o=>{if(o.preventDefault(),!this.open){this.open=!0;return}return!this.isComposing&&this.typeAheadSelect()},n={8:()=>this.maybeDeleteValue(),9:()=>this.onTab(),27:()=>this.onEscape(),38:o=>{if(o.preventDefault(),this.isKeyboardNavigation=!0,!this.open){this.open=!0;return}return this.typeAheadUp()},40:o=>{if(o.preventDefault(),this.isKeyboardNavigation=!0,!this.open){this.open=!0;return}return this.typeAheadDown()}};this.selectOnKeyCodes.forEach(o=>n[o]=e);const i=this.mapKeydown(n,this);if(typeof i[t.keyCode]=="function")return i[t.keyCode](t)},onSearchKeyPress(t){!this.open&&t.keyCode===32&&(t.preventDefault(),this.open=!0)}}},E$=["id","dir"],C$={ref:"toggle",class:"vs__dropdown-toggle"},S$=["disabled","title","aria-label","onMousedown","onKeydown"],A$={ref:"actions",class:"vs__actions"},k$=["disabled","title","aria-label"],T$={class:"vs__spinner"},D$=["id","aria-label","aria-multiselectable"],O$=["id","aria-selected","onMousemove","onClick"],$$={key:0,class:"vs__no-options"},R$=["id","aria-label"];function B$(t,e,n,i,o,s){const r=g_("append-to-body");return C(),R("div",{id:`v-select-${n.uid}`,dir:n.dir,class:Bt(["v-select",s.stateClasses])},[kt(t.$slots,"header",Ie($e(s.scope.header))),y("div",C$,[y("div",{ref:"selectedOptions",class:"vs__selected-options",onMousedown:e[0]||(e[0]=(...a)=>s.toggleDropdown&&s.toggleDropdown(...a))},[(C(!0),R(yt,null,Fe(s.selectedValue,(a,l)=>kt(t.$slots,"selected-option-container",{option:s.normalizeOptionForSlot(a),deselect:s.deselect,multiple:n.multiple,disabled:n.disabled},()=>[(C(),R("span",{key:n.getOptionKey(a),class:"vs__selected"},[kt(t.$slots,"selected-option",Lt({ref_for:!0},s.normalizeOptionForSlot(a)),()=>[bt(A(n.getOptionLabel(a)),1)]),n.multiple?(C(),R("button",{key:0,ref_for:!0,ref:c=>o.deselectButtons[l]=c,disabled:n.disabled,type:"button",class:"vs__deselect",title:n.ariaLabelDeselectOption(n.getOptionLabel(a)),"aria-label":n.ariaLabelDeselectOption(n.getOptionLabel(a)),onMousedown:Ua(c=>s.deselect(a),["stop"]),onKeydown:n1(c=>s.keyboardDeselect(a,l),["enter"])},[(C(),ct(Po(s.childComponents.Deselect)))],40,S$)):st("",!0)]))])),256)),kt(t.$slots,"search",Ie($e(s.scope.search)),()=>[y("input",Lt({class:"vs__search"},s.scope.search.attributes,Sm(s.scope.search.events,!0)),null,16)])],544),y("div",A$,[Sn(y("button",{ref:"clearButton",disabled:n.disabled,type:"button",class:"vs__clear",title:n.ariaLabelClearSelected,"aria-label":n.ariaLabelClearSelected,onClick:e[1]||(e[1]=(...a)=>s.clearSelection&&s.clearSelection(...a))},[(C(),ct(Po(s.childComponents.Deselect)))],8,k$),[[Mn,s.showClearButton]]),n.noDrop?st("",!0):(C(),R("button",{key:0,ref:"openIndicatorButton",class:"vs__open-indicator-button",type:"button",tabindex:"-1","aria-hidden":"true",onMousedown:e[2]||(e[2]=(...a)=>s.toggleDropdown&&s.toggleDropdown(...a))},[kt(t.$slots,"open-indicator",Ie($e(s.scope.openIndicator)),()=>[(C(),ct(Po(s.childComponents.OpenIndicator),Ie($e(s.scope.openIndicator.attributes)),null,16))])],544)),kt(t.$slots,"spinner",Ie($e(s.scope.spinner)),()=>[Sn(y("div",T$," Loading... ",512),[[Mn,t.mutableLoading]])])],512)],512),q(us,{name:n.transition},{default:dt(()=>[s.dropdownOpen?Sn((C(),R("ul",{id:`vs-${n.uid}__listbox`,ref:"dropdownMenu",key:`vs-${n.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox","aria-label":n.ariaLabelListbox,"aria-multiselectable":n.multiple?"true":null,tabindex:"-1",onMousedown:e[3]||(e[3]=Ua((...a)=>s.onMousedown&&s.onMousedown(...a),["prevent"])),onMouseup:e[4]||(e[4]=(...a)=>s.onMouseUp&&s.onMouseUp(...a))},[kt(t.$slots,"list-header",Ie($e(s.scope.listHeader))),(C(!0),R(yt,null,Fe(s.filteredOptions,(a,l)=>(C(),R("li",{id:`vs-${n.uid}__option-${l}`,key:n.getOptionKey(a),role:"option",class:Bt(["vs__dropdown-option",{"vs__dropdown-option--deselect":s.isOptionDeselectable(a)&&l===t.typeAheadPointer,"vs__dropdown-option--selected":s.isOptionSelected(a),"vs__dropdown-option--highlight":l===t.typeAheadPointer,"vs__dropdown-option--kb-focus":s.hasKeyboardFocusBorder(l),"vs__dropdown-option--disabled":!n.selectable(a)}]),"aria-selected":s.optionAriaSelected(a),onMousemove:c=>s.onMouseMove(a,l),onClick:Ua(c=>n.selectable(a)?s.select(a):null,["prevent","stop"])},[kt(t.$slots,"option",Lt({ref_for:!0},s.normalizeOptionForSlot(a)),()=>[bt(A(n.getOptionLabel(a)),1)])],42,O$))),128)),s.filteredOptions.length===0?(C(),R("li",$$,[kt(t.$slots,"no-options",Ie($e(s.scope.noOptions)),()=>[e[5]||(e[5]=bt(" Sorry, no matching options. ",-1))])])):st("",!0),kt(t.$slots,"list-footer",Ie($e(s.scope.listFooter)))],40,D$)),[[r]]):(C(),R("ul",{key:1,id:`vs-${n.uid}__listbox`,role:"listbox","aria-label":n.ariaLabelListbox,style:{display:"none",visibility:"hidden"}},null,8,R$))]),_:3},8,["name"]),kt(t.$slots,"footer",Ie($e(s.scope.footer)))],10,E$)}const vo=kh(x$,[["render",B$]]),P$={name:"ChevronDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},N$=["aria-hidden","aria-label"],L$=["fill","width","height"],F$={d:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},V$={key:0};function j$(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chevron-down-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",F$,[n.title?(C(),R("title",V$,A(n.title),1)):st("",!0)])],8,L$))],16,N$)}const U$=pe(P$,[["render",j$]]),I$={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},z$=["aria-hidden","aria-label"],H$=["fill","width","height"],J$={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},W$={key:0};function G$(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon close-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",J$,[n.title?(C(),R("title",W$,A(n.title),1)):st("",!0)])],8,H$))],16,z$)}const K$=pe(I$,[["render",G$]]);function Dy(t,e){const n=[];let i=0,o=t.toLowerCase().indexOf(e.toLowerCase(),i),s=0;for(;o>-1&&s++[]}},computed:{ranges(){let t=[];return!this.search&&this.highlight.length===0||(this.highlight.length>0?t=this.highlight:t=Dy(this.text,this.search),t.forEach((e,n)=>{e.end(n.start0&&e.push({start:n.start<0?0:n.start,end:n.end>this.text.length?this.text.length:n.end}),e),[]),t.sort((e,n)=>e.start-n.start),t=t.reduce((e,n)=>{if(!e.length)e.push(n);else{const i=e.length-1;e[i].end>=n.start?e[i]={start:e[i].start,end:Math.max(e[i].end,n.end)}:e.push(n)}return e},[])),t},chunks(){if(this.ranges.length===0)return[{start:0,end:this.text.length,highlight:!1,text:this.text}];const t=[];let e=0,n=0;for(;e=this.ranges.length&&et.highlight?be("strong",{},t.text):t.text)):be("span",{},this.text)}}),X$={name:"NcEllipsisedOption",components:{NcHighlight:q$},props:{name:{type:String,default:""},search:{type:String,default:""}},computed:{needsTruncate(){return this.name&&this.name.length>=10},split(){return this.name.length-Math.min(Math.floor(this.name.length/2),10)},part1(){return this.needsTruncate?this.name.slice(0,this.split):this.name},part2(){return this.needsTruncate?this.name.slice(this.split):""},highlight1(){return this.search?Dy(this.name,this.search):[]},highlight2(){return this.highlight1.map(t=>({start:t.start-this.split,end:t.end-this.split}))}}},Y$=["title"];function Z$(t,e,n,i,o,s){const r=xn("NcHighlight");return C(),R("span",{dir:"auto",class:"name-parts",title:n.name},[q(r,{class:"name-parts__first",text:s.part1,search:n.search,highlight:s.highlight1},null,8,["text","search","highlight"]),s.part2?(C(),ct(r,{key:0,class:"name-parts__last",text:s.part2,search:n.search,highlight:s.highlight2},null,8,["text","search","highlight"])):st("",!0)],8,Y$)}const Q$=pe(X$,[["render",Z$],["__scopeId","data-v-c843f2cd"]]),M$={class:"input-field__main-wrapper"},tR=["id","aria-describedby","disabled","placeholder","type","value"],eR=["for"],nR={class:"input-field__icon input-field__icon--leading"},iR={key:2,class:"input-field__icon input-field__icon--trailing"},oR=["id"],sR=Et({inheritAttrs:!1,__name:"NcInputField",props:ii({class:{default:""},inputClass:{default:""},id:{default:()=>oi()},label:{default:void 0},labelOutside:{type:Boolean},type:{default:"text"},placeholder:{default:void 0},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{default:""},disabled:{type:Boolean},pill:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:ii(["trailingButtonClick"],["update:modelValue"]),setup(t,{expose:e,emit:n}){const i=Wo(t,"modelValue"),o=t,s=n;e({focus:p,select:f});const r=v_(),a=Ar("input"),l=rt(()=>o.showTrailingButton||o.success),c=rt(()=>{if(o.placeholder)return o.placeholder;if(o.label)return Es?o.label:""}),u=rt(()=>o.label||o.labelOutside),d=rt(()=>{const g=[];return o.helperText&&g.push(`${o.id}-helper-text`),r["aria-describedby"]&&g.push(String(r["aria-describedby"])),g.join(" ")||void 0});function p(g){a.value.focus(g)}function f(){a.value.select()}function v(g){const w=g.target;i.value=o.type==="number"&&typeof i.value=="number"?parseFloat(w.value):w.value}return(g,w)=>(C(),R("div",{class:Bt(["input-field",[{"input-field--disabled":t.disabled,"input-field--error":t.error,"input-field--label-outside":t.labelOutside||!u.value,"input-field--leading-icon":!!g.$slots.icon,"input-field--trailing-icon":l.value,"input-field--pill":t.pill,"input-field--success":t.success,"input-field--legacy":E(Es)},g.$props.class]])},[y("div",M$,[y("input",Lt(g.$attrs,{id:t.id,ref:"input","aria-describedby":d.value,"aria-live":"polite",class:["input-field__input",t.inputClass],disabled:t.disabled,placeholder:c.value,type:t.type,value:i.value.toString(),onInput:v}),null,16,tR),!t.labelOutside&&u.value?(C(),R("label",{key:0,class:"input-field__label",for:t.id},A(t.label),9,eR)):st("",!0),Sn(y("div",nR,[kt(g.$slots,"icon",{},void 0,!0)],512),[[Mn,!!g.$slots.icon]]),t.showTrailingButton?(C(),ct(Se,{key:1,class:"input-field__trailing-button","aria-label":t.trailingButtonLabel,disabled:t.disabled,variant:"tertiary-no-background",onClick:w[0]||(w[0]=b=>s("trailingButtonClick",b))},{icon:dt(()=>[kt(g.$slots,"trailing-button-icon",{},void 0,!0)]),_:3},8,["aria-label","disabled"])):t.success||t.error?(C(),R("div",iR,[t.success?(C(),ct(Pe,{key:0,path:E(gl)},null,8,["path"])):(C(),ct(Pe,{key:1,path:E(Xc)},null,8,["path"]))])):st("",!0)]),t.helperText?(C(),R("p",{key:0,id:`${t.id}-helper-text`,class:"input-field__helper-text-message"},[t.success?(C(),ct(Pe,{key:0,class:"input-field__helper-text-message__icon",path:E(gl),inline:""},null,8,["path"])):t.error?(C(),ct(Pe,{key:1,class:"input-field__helper-text-message__icon",path:E(Xc),inline:""},null,8,["path"])):st("",!0),bt(" "+A(t.helperText),1)],8,oR)):st("",!0)],2))}}),kg=pe(sR,[["__scopeId","data-v-feb04bef"]]);Go(a2,h2);const ds=Et({__name:"NcTextField",props:ii({class:{},inputClass:{},id:{},label:{},labelOutside:{type:Boolean},placeholder:{},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{},disabled:{type:Boolean},pill:{type:Boolean},type:{},trailingButtonIcon:{default:"close"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(t,{expose:e}){const n=Wo(t,"modelValue"),i=t;e({focus:l,select:c});const o=Ar("inputField"),s={arrowEnd:de("Save changes"),close:de("Clear text"),undo:de("Undo changes")},r=new Set(Object.keys(kg.props)),a=rt(()=>{const u=Object.fromEntries(Object.entries(i).filter(([d])=>r.has(d)));return u.trailingButtonLabel??=s[i.trailingButtonIcon],u});function l(u){o.value.focus(u)}function c(){o.value.select()}return(u,d)=>(C(),ct(E(kg),Lt(a.value,{ref:"inputField",modelValue:n.value,"onUpdate:modelValue":d[0]||(d[0]=p=>n.value=p)}),Xr({_:2},[u.$slots.icon?{name:"icon",fn:dt(()=>[kt(u.$slots,"icon")]),key:"0"}:void 0,t.type!=="search"?{name:"trailing-button-icon",fn:dt(()=>[t.trailingButtonIcon==="arrowEnd"?(C(),ct(E(Pe),{key:0,directional:"",path:E(Lx)},null,8,["path"])):(C(),ct(E(Pe),{key:1,path:t.trailingButtonIcon==="undo"?E(Gx):E(Yc)},null,8,["path"]))]),key:"1"}:void 0]),1040,["modelValue"]))}});Go(r2);const rR={name:"NcSelect",components:{ChevronDown:U$,NcEllipsisedOption:Q$,NcIconSvgWrapper:Pe,NcLoadingIcon:b1,NcTextField:ds,VueSelect:vo},props:{...vo.props,...vo.mixins.reduce((t,e)=>({...t,...e.props}),{}),ariaLabelClearSelected:{type:String,default:de("Clear selected")},ariaLabelCombobox:{type:String,default:null},ariaLabelListbox:{type:String,default:de("Options")},ariaLabelDeselectOption:{type:Function,default:t=>de("Deselect {option}",{option:t})},appendToBody:{type:Boolean,default:!0},calculatePosition:{type:Function,default:null},keepOpen:{type:Boolean,default:!1},components:{type:Object,default:()=>({Deselect:{render:()=>be(K$,{size:20,fillColor:"var(--vs-controls-color)",style:[{cursor:"pointer"}]})}})},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},dropdownShouldOpen:{type:Function,default:({noDrop:t,open:e})=>t?!1:e},filterBy:{type:Function,default:null},inputClass:{type:[String,Object],default:null},inputId:{type:String,default:()=>oi()},inputLabel:{type:String,default:null},helperText:{type:String,default:""},error:{type:Boolean,default:!1},success:{type:Boolean,default:!1},labelOutside:{type:Boolean,default:!1},keyboardFocusBorder:{type:Boolean,default:!0},label:{type:String,default:null},loading:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noWrap:{type:Boolean,default:!1},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},mapKeydown:{type:Function,default(t,e){return{...t,27:n=>{e.open&&n.stopPropagation(),t[27](n)}}}},uid:{type:String,default:()=>oi()},placement:{type:String,default:"bottom"},resetFocusOnOptionsChange:{type:Boolean,default:!0},modelValue:{type:[String,Number,Object,Array],default:null},required:{type:Boolean,default:!1}," ":{}},emits:[" ","update:modelValue"],setup(){const t=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),e=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline"));return{avatarSize:t-2*e,isLegacy:Es,mdiAlertCircleOutline:Xc,mdiCheck:gl}},data(){return{search:""}},computed:{inputRequired(){return this.required?this.modelValue===null||Array.isArray(this.modelValue)&&this.modelValue.length===0:null},localCalculatePosition(){return this.calculatePosition!==null?this.calculatePosition:(t,e,{width:n})=>{t.style.width=n;const i={name:"addClass",fn(){return t.classList.add("vs__dropdown-menu--floating","nc-select__dropdown"),{}}},o={name:"togglePlacementClass",fn({placement:r}){return e.$el.classList.toggle("select--drop-up",r==="top"),t.classList.toggle("vs__dropdown-menu--floating-placement-top",r==="top"),{}}},s=()=>{r$(e.$refs.toggle,t,{placement:this.placement,middleware:[o$(),i,o,n$(({placement:r})=>r.startsWith("top")?10:-1),i$({limiter:s$()})]}).then(({x:r,y:a})=>{Object.assign(t.style,{left:`${r}px`,top:`${a}px`,width:`${e.$refs.toggle.getBoundingClientRect().width}px`})})};return e$(e.$refs.toggle,t,s)}},localFilterBy(){return this.filterBy??vo.props.filterBy.default},localLabel(){return this.label??vo.props.label.default},propsToForward(){const t=[...Object.keys(vo.props),...vo.mixins.flatMap(e=>Object.keys(e.props??{}))];return{...Object.fromEntries(Object.entries(this.$props).filter(([e,n])=>t.includes(e))),calculatePosition:this.localCalculatePosition,closeOnSelect:!this.keepOpen,filterBy:this.localFilterBy,label:this.localLabel}}},mounted(){!this.labelOutside&&!this.inputLabel&&this.ariaLabelCombobox,this.inputLabel&&this.ariaLabelCombobox},methods:{t:de,forwardedSlots(){return Object.keys(this.$slots).filter(t=>t!=="footer")}}},aR=["for"],lR=["id"];function uR(t,e,n,i,o,s){const r=xn("NcTextField"),a=xn("ChevronDown"),l=xn("NcEllipsisedOption"),c=xn("NcLoadingIcon"),u=xn("NcIconSvgWrapper"),d=xn("VueSelect");return C(),ct(d,Lt({class:["select nc-select",{"select--legacy":i.isLegacy,"select--no-wrap":n.noWrap}]},s.propsToForward,{onSearch:e[0]||(e[0]=p=>o.search=p),"onUpdate:modelValue":e[1]||(e[1]=p=>t.$emit("update:modelValue",p))}),Xr({search:dt(({attributes:p,events:f})=>[q(r,{id:p.id,class:Bt(["vs__search",[n.inputClass]]),type:p.type,modelValue:p.value,placeholder:n.multiple||n.modelValue?"":n.placeholder||"",label:!n.labelOutside&&!n.multiple&&n.inputLabel?n.inputLabel:"",labelOutside:n.labelOutside||n.multiple,disabled:n.disabled,required:s.inputRequired,role:p.role,tabindex:p.tabindex,readonly:p.readonly,autocomplete:p.autocomplete,"aria-label":p["aria-label"],"aria-describedby":[p["aria-describedby"],n.helperText?`${n.inputId}-helper-text`:null].filter(Boolean).join(" ")||void 0,"aria-autocomplete":p["aria-autocomplete"],"aria-controls":p["aria-controls"],"aria-owns":p["aria-owns"],"aria-expanded":p["aria-expanded"],"aria-activedescendant":p["aria-activedescendant"],onKeydown:f.keydown,onKeypress:f.keypress,onFocus:f.focus,onBlur:f.blur,onCompositionstart:f.compositionstart,onCompositionend:f.compositionend,"onUpdate:modelValue":v=>f.input({target:{value:v}})},null,8,["id","class","type","modelValue","placeholder","label","labelOutside","disabled","required","role","tabindex","readonly","autocomplete","aria-label","aria-describedby","aria-autocomplete","aria-controls","aria-owns","aria-expanded","aria-activedescendant","onKeydown","onKeypress","onFocus","onBlur","onCompositionstart","onCompositionend","onUpdate:modelValue"])]),"open-indicator":dt(({attributes:p})=>[q(a,Lt(p,{fillColor:"var(--vs-controls-color)",style:{cursor:n.disabled?null:"pointer"},size:20}),null,16,["style"])]),option:dt(p=>[kt(t.$slots,"option",Ie($e(p)),()=>[q(l,{name:String(p[s.localLabel]),search:o.search},null,8,["name","search"])])]),"selected-option":dt(p=>[kt(t.$slots,"selected-option",Ie($e(p)),()=>[q(l,{name:String(p[s.localLabel]),search:o.search},null,8,["name","search"])])]),spinner:dt(p=>[p.loading?(C(),ct(c,{key:0})):st("",!0)]),"no-options":dt(()=>[bt(A(s.t("No results")),1)]),_:2},[n.multiple&&!n.labelOutside&&n.inputLabel?{name:"header",fn:dt(()=>[y("label",{for:n.inputId,class:"select__label"},A(n.inputLabel),9,aR)]),key:"0"}:void 0,n.helperText||t.$slots.footer?{name:"footer",fn:dt(p=>[n.helperText?(C(),R("p",{key:0,id:`${n.inputId}-helper-text`,class:Bt(["select__helper-text",{"select__helper-text--error":n.error,"select__helper-text--success":n.success}])},[n.success?(C(),ct(u,{key:0,class:"select__helper-text-icon",path:i.mdiCheck,inline:""},null,8,["path"])):n.error?(C(),ct(u,{key:1,class:"select__helper-text-icon",path:i.mdiAlertCircleOutline,inline:""},null,8,["path"])):st("",!0),bt(" "+A(n.helperText),1)],10,lR)):st("",!0),kt(t.$slots,"footer",Ie($e(p)))]),key:"1"}:void 0,Fe(s.forwardedSlots(),p=>({name:p,fn:dt(f=>[kt(t.$slots,p,Ie($e(f)))])}))]),1040,["class"])}const cR=pe(rR,[["render",uR]]),dR={class:"db-settings"},hR={class:"db-settings__intro"},pR=Et({__name:"DatabaseSettingsDialog",props:{override:{}},emits:["close","saved"],setup(t,{emit:e}){const n=t,i=e,o=[{id:"pdo_mysql",label:"MySQL / MariaDB"},{id:"pdo_pgsql",label:"PostgreSQL"}],s=Rt({...n.override}),r=Rt(""),a=Rt(!1),l=Rt(""),c=Rt("success"),u=rt({get:()=>String(s.value.port||""),set:g=>{s.value.port=Number.parseInt(g,10)||0}}),d=rt({get:()=>o.find(g=>g.id===s.value.driver)??o[0],set:g=>{s.value.driver=g.id}});function p(g,w){l.value=g,c.value=w}async function f(){a.value=!0;try{const g=await Cn.post(Qi("/apps/serverinfo/database/test-connection"),{host:s.value.host,port:s.value.port,user:s.value.user,password:r.value,database:s.value.database,driver:s.value.driver});p(g.data.ok?O("serverinfo","Connected. Server version: {version}",{version:g.data.version??""}):g.data.message,g.data.ok?"success":"error")}catch(g){p(String(g),"error")}finally{a.value=!1}}async function v(){a.value=!0;try{await Cn.put(Qi("/apps/serverinfo/database/settings"),{host:s.value.host,port:s.value.port,user:s.value.user,database:s.value.database,driver:s.value.driver,password:r.value===""?null:r.value,clearPassword:s.value.host===""}),i("saved"),i("close")}catch(g){p(String(g),"error")}finally{a.value=!1}}return(g,w)=>(C(),ct(E(hu),{name:E(O)("serverinfo","Database connection"),open:!0,size:"normal","onUpdate:open":w[7]||(w[7]=b=>g.$emit("close"))},{actions:dt(()=>[q(E(Se),{variant:"tertiary",onClick:w[6]||(w[6]=b=>g.$emit("close"))},{default:dt(()=>[bt(A(E(O)("serverinfo","Cancel")),1)]),_:1}),q(E(Se),{variant:"secondary",disabled:a.value||s.value.host==="",onClick:f},{default:dt(()=>[bt(A(E(O)("serverinfo","Test connection")),1)]),_:1},8,["disabled"]),q(E(Se),{variant:"primary",disabled:a.value,onClick:v},{default:dt(()=>[bt(A(E(O)("serverinfo","Save")),1)]),_:1},8,["disabled"])]),default:dt(()=>[y("div",dR,[y("p",hR,A(E(O)("serverinfo","By default the checks use the same connection as Nextcloud. Give a separate connection here to run them as a user with the rights Nextcloud does not need, for example to read the full server configuration. Leave the host empty to use the default connection.")),1),q(E(ds),{modelValue:s.value.host,"onUpdate:modelValue":w[0]||(w[0]=b=>s.value.host=b),label:E(O)("serverinfo","Host")},null,8,["modelValue","label"]),q(E(ds),{modelValue:u.value,"onUpdate:modelValue":w[1]||(w[1]=b=>u.value=b),type:"number",label:E(O)("serverinfo","Port")},null,8,["modelValue","label"]),q(E(ds),{modelValue:s.value.user,"onUpdate:modelValue":w[2]||(w[2]=b=>s.value.user=b),label:E(O)("serverinfo","User")},null,8,["modelValue","label"]),q(E(ds),{modelValue:r.value,"onUpdate:modelValue":w[3]||(w[3]=b=>r.value=b),type:"password",label:s.value.passwordSet?E(O)("serverinfo","Password (stored, leave empty to keep)"):E(O)("serverinfo","Password")},null,8,["modelValue","label"]),q(E(ds),{modelValue:s.value.database,"onUpdate:modelValue":w[4]||(w[4]=b=>s.value.database=b),label:E(O)("serverinfo","Database name")},null,8,["modelValue","label"]),q(E(cR),{modelValue:d.value,"onUpdate:modelValue":w[5]||(w[5]=b=>d.value=b),options:o,clearable:!1,inputLabel:E(O)("serverinfo","Driver")},null,8,["modelValue","inputLabel"]),l.value?(C(),ct(E(Si),{key:0,type:c.value},{default:dt(()=>[bt(A(l.value),1)]),_:1},8,["type"])):st("",!0)])]),_:1},8,["name"]))}}),fR=Pt(pR,[["__scopeId","data-v-846e1455"]]),gR={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},mR=["aria-hidden","aria-label"],vR=["fill","width","height"],yR={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},bR={key:0};function _R(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon check-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",yR,[n.title?(C(),R("title",bR,A(n.title),1)):st("",!0)])],8,vR))],16,mR)}const wR=Pt(gR,[["render",_R]]),xR={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ER=["aria-hidden","aria-label"],CR=["fill","width","height"],SR={d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"},AR={key:0};function kR(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon content-copy-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",SR,[n.title?(C(),R("title",AR,A(n.title),1)):st("",!0)])],8,CR))],16,ER)}const TR=Pt(xR,[["render",kR]]),DR={class:"snippet"},OR={class:"snippet__code"},$R={key:0,class:"snippet__note"},RR={key:1,class:"snippet__note"},BR=Et({__name:"DatabaseSnippetDialog",props:{rule:{}},emits:["close"],setup(t){const e=t,n=Rt(!1),i=Rt(!1),o=rt(()=>{const r=e.rule?.apply;if(!r)return"";const a=`${r.configKey} = ${r.recommendedValue}`;return r.configFile==="postgresql.conf"?`# ${r.configFile} ${a}`:`# ${r.configFile} [mysqld] -${a}`});async function s(){try{await navigator.clipboard.writeText(o.value),n.value=!0,i.value=!1,setTimeout(()=>{n.value=!1},1800)}catch{i.value=!0}}return(r,a)=>t.rule?(C(),ct(E(hu),{key:0,name:E(O)("serverinfo","Configuration snippet"),open:!0,size:"normal","onUpdate:open":a[1]||(a[1]=l=>r.$emit("close"))},{actions:dt(()=>[q(E(Se),{variant:"tertiary",onClick:a[0]||(a[0]=l=>r.$emit("close"))},{default:dt(()=>[bt(A(E(O)("serverinfo","Close")),1)]),_:1})]),default:dt(()=>[y("div",TR,[y("p",null,A(E(O)("serverinfo","Add the following to your {file}, then restart the database.",{file:t.rule.apply?.configFile??""})),1),y("pre",DR,[y("code",null,A(o.value),1)]),q(E(Se),{variant:"primary",onClick:s},{icon:dt(()=>[n.value?(C(),ct(_R,{key:0,size:20})):(C(),ct(kR,{key:1,size:20}))]),default:dt(()=>[bt(" "+A(n.value?E(O)("serverinfo","Copied"):E(O)("serverinfo","Copy to clipboard")),1)]),_:1}),i.value?(C(),R("p",OR,A(E(O)("serverinfo","Could not copy to clipboard. Select the text above manually instead.")),1)):st("",!0),t.rule.apply?.note?(C(),R("p",$R,A(t.rule.apply.note),1)):st("",!0)])]),_:1},8,["name"])):st("",!0)}}),BR=Pt(RR,[["__scopeId","data-v-ff214019"]]),PR={class:"database-view"},NR={class:"section"},LR={class:"database-view__heading"},FR=["aria-label"],VR=["aria-pressed","onClick"],jR={class:"database-view__filter-count"},UR={class:"database-view__group-title"},IR={key:0,class:"database-view__group-fails"},zR={class:"database-view__cards"},HR={key:0,class:"database-view__empty"},WR=Et({__name:"DatabaseView",props:{active:{type:Boolean}},setup(t){const e=t,n=Rt(null),i=Rt(null),o=Rt(!1),s=Rt(""),r=Rt(!1),a=Rt(null),l=Rt("fail"),c=rt(()=>n.value?.supported?n.value.results:[]),u=rt(()=>[{id:"fail",label:O("serverinfo","Failing"),count:c.value.filter(f=>f.status==="fail").length},{id:"ok",label:O("serverinfo","Passing"),count:c.value.filter(f=>f.status==="ok").length},{id:"skipped",label:O("serverinfo","Skipped"),count:c.value.filter(f=>f.status==="skipped").length},{id:"all",label:O("serverinfo","All"),count:c.value.length}]),d=rt(()=>{const f=l.value==="all"?c.value:c.value.filter(g=>g.status===l.value),v=new Map;for(const g of f){const w=v.get(g.category);w?w.push(g):v.set(g.category,[g])}return[...v.entries()].map(([g,w])=>({category:g,rules:w,failCount:w.filter(b=>b.status==="fail").length}))});async function p(){o.value=!0,s.value="";try{const[f,v]=await Promise.all([Cn.get(Qi("/apps/serverinfo/database/check")),Cn.get(Qi("/apps/serverinfo/database/settings"))]);n.value=f.data,i.value=v.data.override}catch(f){s.value=O("serverinfo","The database checks could not be run.")+" "+String(f)}finally{o.value=!1}}return ke(()=>e.active,f=>{f&&n.value===null&&!o.value&&p()},{immediate:!0}),(f,v)=>(C(),R("div",PR,[y("div",NR,[q(dO,{active:t.active},null,8,["active"]),y("div",LR,[q(Ge,{icon:Ud,title:E(O)("serverinfo","Database checks")},null,8,["title"]),q(E(Se),{variant:"tertiary",title:E(O)("serverinfo","Database connection settings"),"aria-label":E(O)("serverinfo","Database connection settings"),onClick:v[0]||(v[0]=g=>r.value=!0)},{icon:dt(()=>[q(Dk,{size:20})]),_:1},8,["title","aria-label"])]),o.value?(C(),ct(Ye,{key:0})):s.value?(C(),ct(E(Si),{key:1,type:"error"},{default:dt(()=>[bt(A(s.value),1)]),_:1})):n.value&&!n.value.supported?(C(),ct(E(Si),{key:2,type:"info"},{default:dt(()=>[n.value.reason==="flavour"?(C(),R(yt,{key:0},[bt(A(E(O)("serverinfo","These checks only cover MySQL, MariaDB and PostgreSQL. This server uses a different database.")),1)],64)):(C(),R(yt,{key:1},[bt(A(n.value.message),1)],64))]),_:1})):n.value?.supported?(C(),R(yt,{key:3},[y("nav",{class:"database-view__filters","aria-label":E(O)("serverinfo","Filter checks by status")},[(C(!0),R(yt,null,Fe(u.value,g=>(C(),R("button",{key:g.id,type:"button",class:Bt(["database-view__filter",{"database-view__filter--active":l.value===g.id}]),"aria-pressed":l.value===g.id,onClick:w=>l.value=g.id},[bt(A(g.label)+" ",1),y("span",jR,A(g.count),1)],10,VR))),128))],8,FR),(C(!0),R(yt,null,Fe(d.value,g=>(C(),R("section",{key:g.category,class:"database-view__group"},[y("h3",UR,[bt(A(g.category)+" ",1),g.failCount>0?(C(),R("span",IR,A(E(fl)("serverinfo","%n failing","%n failing",g.failCount)),1)):st("",!0)]),y("div",zR,[(C(!0),R(yt,null,Fe(g.rules,w=>(C(),ct(BO,{key:w.id,rule:w,onSnippet:v[1]||(v[1]=b=>a.value=b)},null,8,["rule"]))),128))])]))),128)),d.value.length===0?(C(),R("p",HR,A(E(O)("serverinfo","No checks match this filter.")),1)):st("",!0)],64)):st("",!0)]),a.value?(C(),ct(BR,{key:0,rule:a.value,onClose:v[2]||(v[2]=g=>a.value=null)},null,8,["rule"])):st("",!0),r.value&&i.value?(C(),ct(pR,{key:1,override:i.value,onClose:v[3]||(v[3]=g=>r.value=!1),onSaved:p},null,8,["override"])):st("",!0)]))}}),JR=Pt(WR,[["__scopeId","data-v-f531f024"]]),GR={name:"AccountGroupIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},KR=["aria-hidden","aria-label"],qR=["fill","width","height"],XR={d:"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z"},YR={key:0};function ZR(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon account-group-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",XR,[n.title?(C(),R("title",YR,A(n.title),1)):st("",!0)])],8,qR))],16,KR)}const QR=Pt(GR,[["render",ZR]]),MR={class:"section network-infos"},t8={class:"infobox"},e8={class:"interface-wrapper active-users-wrapper"},n8={key:0,class:"active-users-box"},i8={class:"info"},o8={key:1,class:"active-users-box"},s8={class:"info"},r8={key:2,class:"active-users-box"},a8={class:"info"},l8={key:3,class:"active-users-box"},u8={class:"info"},c8=Et({__name:"ActiveUsersSection",props:{activeUsers:{},numUsers:{}},setup(t){const e=t;function n(i){const o=e.numUsers===0?0:Math.round(i*1e3/e.numUsers)/10;return O("serverinfo","{0}% of all users",[String(o)])}return(i,o)=>(C(),R("div",MR,[q(Ge,{icon:QR,title:E(O)("serverinfo","Active users")},null,8,["title"]),y("div",t8,[y("div",e8,[t.activeUsers.last1hour>0?(C(),R("div",n8,[bt(A(E(O)("serverinfo","Last hour")),1),o[0]||(o[0]=y("br",null,null,-1)),y("span",i8,A(t.activeUsers.last1hour),1),o[1]||(o[1]=y("br",null,null,-1)),y("em",null,A(n(t.activeUsers.last1hour)),1)])):st("",!0),t.activeUsers.last24hours>0?(C(),R("div",o8,[bt(A(E(O)("serverinfo","Last 24 Hours")),1),o[2]||(o[2]=y("br",null,null,-1)),y("span",s8,A(t.activeUsers.last24hours),1),o[3]||(o[3]=y("br",null,null,-1)),y("em",null,A(n(t.activeUsers.last24hours)),1)])):st("",!0),t.activeUsers.last7days>0?(C(),R("div",r8,[bt(A(E(O)("serverinfo","Last 7 Days")),1),o[4]||(o[4]=y("br",null,null,-1)),y("span",a8,A(t.activeUsers.last7days),1),o[5]||(o[5]=y("br",null,null,-1)),y("em",null,A(n(t.activeUsers.last7days)),1)])):st("",!0),t.activeUsers.last1month>0?(C(),R("div",l8,[bt(A(E(O)("serverinfo","Last 30 Days")),1),o[6]||(o[6]=y("br",null,null,-1)),y("span",u8,A(t.activeUsers.last1month),1),o[7]||(o[7]=y("br",null,null,-1)),y("em",null,A(n(t.activeUsers.last1month)),1)])):st("",!0)])])]))}}),d8={name:"ChipIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},h8=["aria-hidden","aria-label"],p8=["fill","width","height"],f8={d:"M6,4H18V5H21V7H18V9H21V11H18V13H21V15H18V17H21V19H18V20H6V19H3V17H6V15H3V13H6V11H3V9H6V7H3V5H6V4M11,15V18H12V15H11M13,15V18H14V15H13M15,15V18H16V15H15Z"},g8={key:0};function m8(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chip-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",f8,[n.title?(C(),R("title",g8,A(n.title),1)):st("",!0)])],8,p8))],16,h8)}const v8=Pt(d8,[["render",m8]]),y8={key:0},b8={class:"row row--tiles"},_8={key:0,id:"cpuSection",class:"infobox"},w8={class:"chart-wrapper"},x8={key:1},Tg=60,E8=Et({__name:"CpuChartSection",props:{cpuload:{type:[Array,Boolean]},cpunum:{},tick:{}},setup(t){const e=t;no.register(wh,_h,xh,bu,Ps,bh,xu);function n(){return"rgb(148, 148, 148)"}const i={borderColor:n(),backgroundColor:qd(pu(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},o=rn({labels:Array(Tg).fill(""),datasets:[{...i,data:Array(Tg).fill(null)}]}),s={animation:!1,responsive:!0,maintainAspectRatio:!1,scales:{x:{display:!1},y:{min:0,max:100,ticks:{color:n(),callback:l=>l+" %"},grid:{display:!1}}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{callbacks:{label:l=>l.parsed.y.toFixed(1)+" %"}}}},r=rt(()=>e.cpuload===!1||e.cpuload.length===0?null:e.cpuload.map(l=>l.toFixed(2)).join(" / ")),a=rt(()=>e.cpuload===!1||e.cpuload.length===0||e.cpunum<=0?null:(e.cpuload[0]/e.cpunum*100).toFixed(1));return ke(()=>e.tick,()=>{const l=e.cpuload;if(l===!1||e.cpunum<=0||l.length===0)return;const c=[...o.value.labels.slice(1),new Date().toLocaleTimeString()],u=[...o.value.datasets[0].data.slice(1),l[0]/e.cpunum*100];o.value={labels:c,datasets:[{...i,data:u}]}}),(l,c)=>(C(),R(yt,null,[q(Ge,{icon:v8,title:E(O)("serverinfo","Load")},null,8,["title"]),r.value===null?(C(),R("p",y8,[y("em",null,A(E(O)("serverinfo","CPU info not available")),1)])):(C(),R(yt,{key:1},[y("div",b8,[a.value!==null?(C(),ct(De,{key:0,label:E(O)("serverinfo","Current usage"),value:`${a.value} %`},null,8,["label","value"])):st("",!0),t.cpunum>0?(C(),ct(De,{key:1,label:E(O)("serverinfo","Threads"),value:t.cpunum},null,8,["label","value"])):st("",!0),q(De,{label:E(O)("serverinfo","Load average"),value:r.value},null,8,["label","value"])]),a.value!==null?(C(),R("div",_8,[y("div",w8,[q(E(Eh),{data:o.value,options:s},null,8,["data"])])])):(C(),R("p",x8,[y("em",null,A(E(O)("serverinfo","The number of CPU threads is unknown, so the load cannot be shown as a percentage.")),1)]))],64))],64))}}),C8=Pt(E8,[["__scopeId","data-v-07ed95bd"]]),S8={class:"server-info-table"},A8={class:"info"},k8={class:"info"},T8={class:"info"},D8=Et({__name:"DatabaseSection",props:{database:{}},setup(t){return(e,n)=>(C(),R(yt,null,[q(Ge,{icon:Ud,title:E(O)("serverinfo","Database")},null,8,["title"]),y("div",S8,[y("table",null,[y("tbody",null,[y("tr",null,[y("td",null,A(E(O)("serverinfo","Type:")),1),y("td",A8,A(t.database.type),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Version:")),1),y("td",k8,A(t.database.version),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Size:")),1),y("td",T8,A(E(En)(t.database.size)),1)])])])])],64))}}),O8={name:"HarddiskIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$8=["aria-hidden","aria-label"],R8=["fill","width","height"],B8={d:"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M12,4A6,6 0 0,0 6,10C6,13.31 8.69,16 12.1,16L11.22,13.77C10.95,13.29 11.11,12.68 11.59,12.4L12.45,11.9C12.93,11.63 13.54,11.79 13.82,12.27L15.74,14.69C17.12,13.59 18,11.9 18,10A6,6 0 0,0 12,4M12,9A1,1 0 0,1 13,10A1,1 0 0,1 12,11A1,1 0 0,1 11,10A1,1 0 0,1 12,9M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M12.09,13.27L14.58,19.58L17.17,18.08L12.95,12.77L12.09,13.27Z"},P8={key:0};function N8(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon harddisk-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",B8,[n.title?(C(),R("title",P8,A(n.title),1)):st("",!0)])],8,R8))],16,$8)}const L8=Pt(O8,[["render",N8]]),F8={class:"section disk-status"},V8={class:"row row--tiles"},j8={class:"row row--cards"},U8={class:"diskchart-container"},I8=["aria-label"],z8={class:"diskinfo-container"},H8=["title"],W8={class:"diskinfo"},J8={class:"diskinfo__row"},G8={class:"info"},K8={class:"diskinfo__row"},q8={class:"info"},X8={class:"diskinfo__row"},Y8={class:"info"},Z8={class:"diskinfo__row"},Q8={class:"info-color-label--available"},M8={class:"info"},tB={class:"diskinfo__row"},eB={class:"info-color-label--used"},nB={class:"info"},iB=Et({__name:"DiskSection",props:{disks:{},freespace:{},storage:{}},setup(t){const e=t;no.register(tD,V5,xu);const n=[],i=[];function o(l){return l.split("/").pop()??l}function s(l){return O("serverinfo","{used} of {total} used",{used:Rn(l.used),total:Rn(l.used+l.available)})}function r(l){const c=Number.parseFloat(l);return Number.isNaN(c)?l:Math.round(c)+"%"}function a(l,c){return{id:"centerLabel",afterDatasetsDraw(u){const{ctx:d,chartArea:p}=u,f=Math.round((p.right-p.left)*.24);d.save(),d.fillStyle=c,d.font=`bold ${f}px ${getComputedStyle(u.canvas).fontFamily}`,d.textAlign="center",d.textBaseline="middle",d.fillText(l,(p.left+p.right)/2,(p.top+p.bottom)/2),d.restore()}}}return Pi(()=>{const l=pu(),c=cd("--color-border-maxcontrast","rgb(148, 148, 148)"),u=cd("--color-main-text","#222222");e.disks.forEach((d,p)=>{const f=n[p];f&&i.push(new no(f,{type:"doughnut",data:{labels:[O("serverinfo","Used"),O("serverinfo","Available")],datasets:[{backgroundColor:[l,c],borderWidth:0,borderRadius:4,spacing:2,hoverOffset:4,data:[d.used,d.available]}]},options:{responsive:!0,maintainAspectRatio:!0,aspectRatio:1,cutout:"70%",layout:{padding:4},plugins:{legend:{display:!1},tooltip:{callbacks:{label:v=>`${v.label}: ${Rn(v.parsed)}`}}}},plugins:[a(r(d.percent),u)]}))})}),Dn(()=>{i.forEach(l=>l.destroy()),i.length=0}),(l,c)=>(C(),R("div",F8,[q(Ge,{icon:L8,title:E(O)("serverinfo","Disk")},null,8,["title"]),y("div",V8,[q(De,{label:E(O)("serverinfo","Files"),value:t.storage.num_files},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","Storages"),value:t.storage.num_storages},null,8,["label","value"]),t.freespace!==null?(C(),ct(De,{key:0,label:E(O)("serverinfo","Free space"),value:E(En)(t.freespace)},null,8,["label","value"])):st("",!0)]),y("div",j8,[(C(!0),R(yt,null,Fe(t.disks,(u,d)=>(C(),R("div",{key:u.device,class:"infobox text-center-mobile"},[y("div",U8,[y("canvas",{ref_for:!0,ref:p=>{p&&(n[d]=p)},class:"DiskChart",role:"img","aria-label":s(u)},null,8,I8)]),y("div",z8,[y("h3",{title:u.device},A(o(u.device)),9,H8),y("dl",W8,[y("div",J8,[y("dt",null,A(E(O)("serverinfo","Mount:")),1),y("dd",G8,A(u.mount),1)]),y("div",K8,[y("dt",null,A(E(O)("serverinfo","Filesystem:")),1),y("dd",q8,A(u.fs),1)]),y("div",X8,[y("dt",null,A(E(O)("serverinfo","Size:")),1),y("dd",Y8,A(E(Rn)(u.used+u.available)),1)]),y("div",Z8,[y("dt",Q8,A(E(O)("serverinfo","Available:")),1),y("dd",M8,A(E(Rn)(u.available)),1)]),y("div",tB,[y("dt",eB,A(E(O)("serverinfo","Used:")),1),y("dd",nB,A(u.percent)+" ("+A(E(Rn)(u.used))+") ",1)])])])]))),128))])]))}}),oB=Pt(iB,[["__scopeId","data-v-d52cfcd6"]]),sB={name:"MemoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},rB=["aria-hidden","aria-label"],aB=["fill","width","height"],lB={d:"M17,17H7V7H17M21,11V9H19V7C19,5.89 18.1,5 17,5H15V3H13V5H11V3H9V5H7C5.89,5 5,5.89 5,7V9H3V11H5V13H3V15H5V17A2,2 0 0,0 7,19H9V21H11V19H13V21H15V19H17A2,2 0 0,0 19,17V15H21V13H19V11M13,13H11V11H13M15,9H9V15H15V9Z"},uB={key:0};function cB(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon memory-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",lB,[n.title?(C(),R("title",uB,A(n.title),1)):st("",!0)])],8,aB))],16,rB)}const dB=Pt(sB,[["render",cB]]),hB={key:0},pB={class:"row row--tiles"},fB={id:"memorySection",class:"infobox"},gB={class:"chart-wrapper"},$c=60,mB=Et({__name:"MemoryChartSection",props:{memTotal:{},memFree:{},swapTotal:{},swapFree:{},tick:{}},setup(t){const e=t;no.register(wh,_h,PD,xh,bu,Ps,bh,xu);const n=rt(()=>e.memTotal>0&&e.memFree>=0),i=rt(()=>e.swapTotal>0&&e.swapFree>=0);function o(){return"rgb(148, 148, 148)"}const s={label:O("serverinfo","RAM usage"),borderColor:o(),backgroundColor:qd(pu(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},r={label:O("serverinfo","Swap usage"),borderColor:"rgba(100,100,100,0.8)",backgroundColor:"rgba(100,100,100,0.2)",fill:!0,pointRadius:0,borderWidth:1,tension:.2},a=rn({labels:Array($c).fill(""),datasets:[{...s,data:Array($c).fill(null)},{...r,data:Array($c).fill(null)}]}),l=Rt(1),c=rt(()=>({animation:!1,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{display:!1},y:{min:0,max:l.value,ticks:{color:o(),callback:f=>f+" GB"},grid:{display:!1}}},plugins:{legend:{display:!0,position:"bottom",labels:{color:o(),filter:f=>i.value||f.datasetIndex===0}},tooltip:{callbacks:{label:f=>(f.dataset.label??"")+": "+f.parsed.y.toFixed(2)+" GB"}}}})),u=rt(()=>Rn(e.memTotal)),d=rt(()=>Rn(e.memTotal-e.memFree)),p=rt(()=>Rn(e.swapTotal-e.swapFree));return ke(()=>e.tick,()=>{if(!n.value)return;const f=e.memTotal/1024,v=i.value?e.swapTotal/1024:0;l.value=Math.ceil(Math.max(f,v));const g=[...a.value.labels.slice(1),new Date().toLocaleTimeString()],w=(e.memTotal-e.memFree)/1024,b=[...a.value.datasets[0].data.slice(1),w],S=i.value?(e.swapTotal-e.swapFree)/1024:null,D=[...a.value.datasets[1].data.slice(1),S];a.value={labels:g,datasets:[{...s,data:b},{...r,data:D}]}}),(f,v)=>(C(),R(yt,null,[q(Ge,{icon:dB,title:E(O)("serverinfo","Memory")},null,8,["title"]),n.value?(C(),R(yt,{key:1},[y("div",pB,[q(De,{label:E(O)("serverinfo","Used"),value:d.value},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","Total"),value:u.value},null,8,["label","value"]),i.value?(C(),ct(De,{key:0,label:E(O)("serverinfo","Swap used"),value:p.value},null,8,["label","value"])):st("",!0)]),y("div",fB,[y("div",gB,[q(E(Eh),{data:a.value,options:c.value},null,8,["data","options"])])])],64)):(C(),R("p",hB,[y("em",null,A(E(O)("serverinfo","RAM info not available")),1)]))],64))}}),vB=Pt(mB,[["__scopeId","data-v-03ed9b79"]]),yB=["id"],bB=Et({inheritAttrs:!1,__name:"NcFormBoxItem",props:{tag:{},label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},class:{default:()=>{}},itemClasses:{default:()=>{}}},emits:["click"],setup(t){const e=ou(),{formBoxItemClass:n}=jd(),i=oi(),o=()=>!!t.description||!!e.description;return(s,r)=>(C(),R("div",{class:Bt([t.class,s.$style.formBoxItem,E(n),{[s.$style.formBoxItem_inverted]:t.invertedAccent&&o(),[s.$style.formBoxItem_legacy]:E(Es)}])},[y("span",{class:Bt(s.$style.formBoxItem__content)},[(C(),ct(Po(t.tag),Lt({class:[s.$style.formBoxItem__element,t.itemClasses]},s.$attrs,{onClick:r[0]||(r[0]=a=>s.$emit("click",a))}),{default:dt(()=>[kt(s.$slots,"default",{descriptionId:E(i)},()=>[bt(A(t.label||"āš ļø Label is missing"),1)])]),_:3},16,["class"])),o()?(C(),R("span",{key:0,id:E(i),class:Bt(s.$style.formBoxItem__description)},[kt(s.$slots,"description",{},()=>[bt(A(t.description),1)])],10,yB)):st("",!0)],2),y("span",{class:Bt(s.$style.formBoxItem__icon)},[kt(s.$slots,"icon",{descriptionId:E(i)},()=>[r[1]||(r[1]=bt(" āš ļø Icon is missing ",-1))])],2)],2))}}),_B="_formBoxItem_ER-6m",wB="_formBoxItem__description_g-KcX",xB="_formBoxItem_legacy_TW1Sp",EB="_formBoxItem_inverted_CxfyH",CB="_formBoxItem__element_zgVx-",SB="_formBoxItem__content_dYtDe",AB="_formBoxItem__icon_ZIpCi",kB={"material-design-icon":"_material-design-icon_ILRX2",formBoxItem:_B,formBoxItem__description:wB,formBoxItem_legacy:xB,formBoxItem_inverted:EB,formBoxItem__element:CB,formBoxItem__content:SB,formBoxItem__icon:AB},TB={$style:kB},Dy=pe(bB,[["__cssModules",TB]]);function DB(t){const e=xs(t),n=Ei(c1,null)!==null,i=rt(()=>n&&e.to?"RouterLink":e.href?"a":"button"),o=rt(()=>i.value==="RouterLink"||i.value==="a"),s=rt(()=>i.value==="a"),r=rt(()=>i.value==="RouterLink"),a=rt(()=>i.value==="button"),l=rt(()=>{if(i.value==="RouterLink")return{to:e.to,activeClass:"active",...e.additionalAttrs?.("RouterLink")??{}};if(i.value==="a")return{href:e.href,target:e.target,download:e.download||void 0,rel:"nofollow noreferrer noopener",...e.additionalAttrs?.("a")??{}};if(i.value==="button")return{type:e.type||"button",disabled:e.disabled,...e.additionalAttrs?.("button")??{}}});return{tag:i,isLink:o,isHyperLink:s,isRouterLink:r,isButton:a,attrs:l}}const OB=Et({__name:"NcFormBoxButton",props:{label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},to:{default:()=>{}},href:{default:()=>{}},target:{default:()=>{}},disabled:{type:Boolean,default:!1}},emits:["click"],setup(t){const{tag:e,attrs:n,isLink:i}=DB({to:So(()=>t.to),href:So(()=>t.href),target:So(()=>t.target),disabled:So(()=>t.disabled)}),o=rt(()=>{if(i.value)return t.target==="_blank"?zx:Lx});return(s,r)=>(C(),ct(Dy,Lt({tag:E(e),itemClasses:["button-vue",s.$style.formBoxButton],invertedAccent:t.invertedAccent},E(n),{tabindex:"0",onClick:r[0]||(r[0]=a=>s.$emit("click",a))}),Xr({_:2},[s.$slots.default||t.label?{name:"default",fn:dt(()=>[kt(s.$slots,"default",{},()=>[bt(A(t.label),1)])]),key:"0"}:void 0,s.$slots.description||t.description?{name:"description",fn:dt(()=>[kt(s.$slots,"description",{},()=>[bt(A(t.description),1)])]),key:"1"}:void 0,s.$slots.icon||o.value?{name:"icon",fn:dt(()=>[kt(s.$slots,"icon",{},()=>[o.value?(C(),ct(Pe,{key:0,path:o.value,inline:""},null,8,["path"])):st("",!0)])]),key:"2"}:void 0]),1040,["tag","itemClasses","invertedAccent"]))}}),$B="_formBoxButton_14txJ",RB={"material-design-icon":"_material-design-icon_0RfRa",formBoxButton:$B},BB={$style:RB},PB=pe(OB,[["__cssModules",BB]]);Go(l2);const NB=2e3;function LB(t){const e=Rt(!1),n=rt(()=>e.value?gl:Ux),i=rt(()=>e.value?de("Copied"):de("Copy to clipboard"));async function o(){if(e.value)return;const s=tn(t);try{await navigator.clipboard.writeText(s)}catch{prompt("",s)}e.value=!0,setTimeout(()=>{e.value=!1},NB)}return{isCopied:e,copy:o,icon:n,altText:i}}const FB={class:"hidden-visually"},Rc=Et({__name:"NcFormBoxCopyButton",props:{label:{default:()=>{}},value:{},disabled:{type:Boolean,default:!1}},emits:["copy"],setup(t,{emit:e}){const n=e,{isCopied:i,copy:o,icon:s,altText:r}=LB(()=>t.value);return x2(i,()=>n("copy")),(a,l)=>(C(),ct(PB,{disabled:t.disabled,invertedAccent:"",onClick:E(o)},Xr({description:dt(()=>[bt(A(t.value),1)]),icon:dt(()=>[q(Pe,{path:E(s),inline:""},null,8,["path"])]),_:2},[a.$slots.default||t.label?{name:"default",fn:dt(()=>[y("span",FB,A(E(r)),1),kt(a.$slots,"default",{},()=>[bt(A(t.label),1)])]),key:"0"}:void 0]),1032,["disabled","onClick"]))}}),VB=`{n.value=!1},1800)}catch{i.value=!0}}return(r,a)=>t.rule?(C(),ct(E(hu),{key:0,name:E(O)("serverinfo","Configuration snippet"),open:!0,size:"normal","onUpdate:open":a[1]||(a[1]=l=>r.$emit("close"))},{actions:dt(()=>[q(E(Se),{variant:"tertiary",onClick:a[0]||(a[0]=l=>r.$emit("close"))},{default:dt(()=>[bt(A(E(O)("serverinfo","Close")),1)]),_:1})]),default:dt(()=>[y("div",DR,[y("p",null,A(E(O)("serverinfo","Add the following to your {file}, then restart the database.",{file:t.rule.apply?.configFile??""})),1),y("pre",OR,[y("code",null,A(o.value),1)]),q(E(Se),{variant:"primary",onClick:s},{icon:dt(()=>[n.value?(C(),ct(wR,{key:0,size:20})):(C(),ct(TR,{key:1,size:20}))]),default:dt(()=>[bt(" "+A(n.value?E(O)("serverinfo","Copied"):E(O)("serverinfo","Copy to clipboard")),1)]),_:1}),i.value?(C(),R("p",$R,A(E(O)("serverinfo","Could not copy to clipboard. Select the text above manually instead.")),1)):st("",!0),t.rule.apply?.note?(C(),R("p",RR,A(t.rule.apply.note),1)):st("",!0)])]),_:1},8,["name"])):st("",!0)}}),PR=Pt(BR,[["__scopeId","data-v-ff214019"]]),NR={class:"database-view"},LR={class:"section"},FR={class:"database-view__heading"},VR=["aria-label"],jR=["aria-pressed","onClick"],UR={class:"database-view__filter-count"},IR={class:"database-view__group-title"},zR={key:0,class:"database-view__group-fails"},HR={class:"database-view__cards"},JR={key:0,class:"database-view__empty"},WR=Et({__name:"DatabaseView",props:{active:{type:Boolean}},setup(t){const e=t,n=Rt(null),i=Rt(null),o=Rt(!1),s=Rt(""),r=Rt(!1),a=Rt(null),l=Rt("fail"),c=rt(()=>n.value?.supported?n.value.results:[]),u=rt(()=>[{id:"fail",label:O("serverinfo","Findings"),count:c.value.filter(f=>f.status==="fail").length},{id:"ok",label:O("serverinfo","Passing"),count:c.value.filter(f=>f.status==="ok").length},{id:"skipped",label:O("serverinfo","Skipped"),count:c.value.filter(f=>f.status==="skipped").length},{id:"all",label:O("serverinfo","All"),count:c.value.length}]),d=rt(()=>{const f=l.value==="all"?c.value:c.value.filter(g=>g.status===l.value),v=new Map;for(const g of f){const w=v.get(g.category);w?w.push(g):v.set(g.category,[g])}return[...v.entries()].map(([g,w])=>({category:g,rules:w,failCount:w.filter(b=>av(b)==="fail").length}))});async function p(){o.value=!0,s.value="";try{const[f,v]=await Promise.all([Cn.get(Qi("/apps/serverinfo/database/check")),Cn.get(Qi("/apps/serverinfo/database/settings"))]);n.value=f.data,i.value=v.data.override}catch(f){s.value=O("serverinfo","The database checks could not be run.")+" "+String(f)}finally{o.value=!1}}return ke(()=>e.active,f=>{f&&n.value===null&&!o.value&&p()},{immediate:!0}),(f,v)=>(C(),R("div",NR,[y("div",LR,[q(hO,{active:t.active},null,8,["active"]),y("div",FR,[q(Ge,{icon:Ud,title:E(O)("serverinfo","Database checks")},null,8,["title"]),q(E(Se),{variant:"tertiary",title:E(O)("serverinfo","Database connection settings"),"aria-label":E(O)("serverinfo","Database connection settings"),onClick:v[0]||(v[0]=g=>r.value=!0)},{icon:dt(()=>[q(Ok,{size:20})]),_:1},8,["title","aria-label"])]),o.value?(C(),ct(Ye,{key:0})):s.value?(C(),ct(E(Si),{key:1,type:"error"},{default:dt(()=>[bt(A(s.value),1)]),_:1})):n.value&&!n.value.supported?(C(),ct(E(Si),{key:2,type:"info"},{default:dt(()=>[n.value.reason==="flavour"?(C(),R(yt,{key:0},[bt(A(E(O)("serverinfo","These checks only cover MySQL, MariaDB and PostgreSQL. This server uses a different database.")),1)],64)):(C(),R(yt,{key:1},[bt(A(n.value.message),1)],64))]),_:1})):n.value?.supported?(C(),R(yt,{key:3},[y("nav",{class:"database-view__filters","aria-label":E(O)("serverinfo","Filter checks by status")},[(C(!0),R(yt,null,Fe(u.value,g=>(C(),R("button",{key:g.id,type:"button",class:Bt(["database-view__filter",{"database-view__filter--active":l.value===g.id}]),"aria-pressed":l.value===g.id,onClick:w=>l.value=g.id},[bt(A(g.label)+" ",1),y("span",UR,A(g.count),1)],10,jR))),128))],8,VR),(C(!0),R(yt,null,Fe(d.value,g=>(C(),R("section",{key:g.category,class:"database-view__group"},[y("h3",IR,[bt(A(g.category)+" ",1),g.failCount>0?(C(),R("span",zR,A(E(fl)("serverinfo","%n failing","%n failing",g.failCount)),1)):st("",!0)]),y("div",HR,[(C(!0),R(yt,null,Fe(g.rules,w=>(C(),ct(PO,{key:w.id,rule:w,onSnippet:v[1]||(v[1]=b=>a.value=b)},null,8,["rule"]))),128))])]))),128)),d.value.length===0?(C(),R("p",JR,A(E(O)("serverinfo","No checks match this filter.")),1)):st("",!0)],64)):st("",!0)]),a.value?(C(),ct(PR,{key:0,rule:a.value,onClose:v[2]||(v[2]=g=>a.value=null)},null,8,["rule"])):st("",!0),r.value&&i.value?(C(),ct(fR,{key:1,override:i.value,onClose:v[3]||(v[3]=g=>r.value=!1),onSaved:p},null,8,["override"])):st("",!0)]))}}),GR=Pt(WR,[["__scopeId","data-v-fb7b97cc"]]),KR={name:"AccountGroupIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},qR=["aria-hidden","aria-label"],XR=["fill","width","height"],YR={d:"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z"},ZR={key:0};function QR(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon account-group-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",YR,[n.title?(C(),R("title",ZR,A(n.title),1)):st("",!0)])],8,XR))],16,qR)}const MR=Pt(KR,[["render",QR]]),t8={class:"section network-infos"},e8={class:"infobox"},n8={class:"interface-wrapper active-users-wrapper"},i8={key:0,class:"active-users-box"},o8={class:"info"},s8={key:1,class:"active-users-box"},r8={class:"info"},a8={key:2,class:"active-users-box"},l8={class:"info"},u8={key:3,class:"active-users-box"},c8={class:"info"},d8=Et({__name:"ActiveUsersSection",props:{activeUsers:{},numUsers:{}},setup(t){const e=t;function n(i){const o=e.numUsers===0?0:Math.round(i*1e3/e.numUsers)/10;return O("serverinfo","{0}% of all users",[String(o)])}return(i,o)=>(C(),R("div",t8,[q(Ge,{icon:MR,title:E(O)("serverinfo","Active users")},null,8,["title"]),y("div",e8,[y("div",n8,[t.activeUsers.last1hour>0?(C(),R("div",i8,[bt(A(E(O)("serverinfo","Last hour")),1),o[0]||(o[0]=y("br",null,null,-1)),y("span",o8,A(t.activeUsers.last1hour),1),o[1]||(o[1]=y("br",null,null,-1)),y("em",null,A(n(t.activeUsers.last1hour)),1)])):st("",!0),t.activeUsers.last24hours>0?(C(),R("div",s8,[bt(A(E(O)("serverinfo","Last 24 Hours")),1),o[2]||(o[2]=y("br",null,null,-1)),y("span",r8,A(t.activeUsers.last24hours),1),o[3]||(o[3]=y("br",null,null,-1)),y("em",null,A(n(t.activeUsers.last24hours)),1)])):st("",!0),t.activeUsers.last7days>0?(C(),R("div",a8,[bt(A(E(O)("serverinfo","Last 7 Days")),1),o[4]||(o[4]=y("br",null,null,-1)),y("span",l8,A(t.activeUsers.last7days),1),o[5]||(o[5]=y("br",null,null,-1)),y("em",null,A(n(t.activeUsers.last7days)),1)])):st("",!0),t.activeUsers.last1month>0?(C(),R("div",u8,[bt(A(E(O)("serverinfo","Last 30 Days")),1),o[6]||(o[6]=y("br",null,null,-1)),y("span",c8,A(t.activeUsers.last1month),1),o[7]||(o[7]=y("br",null,null,-1)),y("em",null,A(n(t.activeUsers.last1month)),1)])):st("",!0)])])]))}}),h8={name:"ChipIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},p8=["aria-hidden","aria-label"],f8=["fill","width","height"],g8={d:"M6,4H18V5H21V7H18V9H21V11H18V13H21V15H18V17H21V19H18V20H6V19H3V17H6V15H3V13H6V11H3V9H6V7H3V5H6V4M11,15V18H12V15H11M13,15V18H14V15H13M15,15V18H16V15H15Z"},m8={key:0};function v8(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chip-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",g8,[n.title?(C(),R("title",m8,A(n.title),1)):st("",!0)])],8,f8))],16,p8)}const y8=Pt(h8,[["render",v8]]),b8={key:0},_8={class:"row row--tiles"},w8={key:0,id:"cpuSection",class:"infobox"},x8={class:"chart-wrapper"},E8={key:1},Tg=60,C8=Et({__name:"CpuChartSection",props:{cpuload:{type:[Array,Boolean]},cpunum:{},tick:{}},setup(t){const e=t;no.register(wh,_h,xh,bu,Ps,bh,xu);function n(){return"rgb(148, 148, 148)"}const i={borderColor:n(),backgroundColor:qd(pu(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},o=rn({labels:Array(Tg).fill(""),datasets:[{...i,data:Array(Tg).fill(null)}]}),s={animation:!1,responsive:!0,maintainAspectRatio:!1,scales:{x:{display:!1},y:{min:0,max:100,ticks:{color:n(),callback:l=>l+" %"},grid:{display:!1}}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{callbacks:{label:l=>l.parsed.y.toFixed(1)+" %"}}}},r=rt(()=>e.cpuload===!1||e.cpuload.length===0?null:e.cpuload.map(l=>l.toFixed(2)).join(" / ")),a=rt(()=>e.cpuload===!1||e.cpuload.length===0||e.cpunum<=0?null:(e.cpuload[0]/e.cpunum*100).toFixed(1));return ke(()=>e.tick,()=>{const l=e.cpuload;if(l===!1||e.cpunum<=0||l.length===0)return;const c=[...o.value.labels.slice(1),new Date().toLocaleTimeString()],u=[...o.value.datasets[0].data.slice(1),l[0]/e.cpunum*100];o.value={labels:c,datasets:[{...i,data:u}]}}),(l,c)=>(C(),R(yt,null,[q(Ge,{icon:y8,title:E(O)("serverinfo","Load")},null,8,["title"]),r.value===null?(C(),R("p",b8,[y("em",null,A(E(O)("serverinfo","CPU info not available")),1)])):(C(),R(yt,{key:1},[y("div",_8,[a.value!==null?(C(),ct(De,{key:0,label:E(O)("serverinfo","Current usage"),value:`${a.value} %`},null,8,["label","value"])):st("",!0),t.cpunum>0?(C(),ct(De,{key:1,label:E(O)("serverinfo","Threads"),value:t.cpunum},null,8,["label","value"])):st("",!0),q(De,{label:E(O)("serverinfo","Load average"),value:r.value},null,8,["label","value"])]),a.value!==null?(C(),R("div",w8,[y("div",x8,[q(E(Eh),{data:o.value,options:s},null,8,["data"])])])):(C(),R("p",E8,[y("em",null,A(E(O)("serverinfo","The number of CPU threads is unknown, so the load cannot be shown as a percentage.")),1)]))],64))],64))}}),S8=Pt(C8,[["__scopeId","data-v-07ed95bd"]]),A8={class:"server-info-table"},k8={class:"info"},T8={class:"info"},D8={class:"info"},O8=Et({__name:"DatabaseSection",props:{database:{}},setup(t){return(e,n)=>(C(),R(yt,null,[q(Ge,{icon:Ud,title:E(O)("serverinfo","Database")},null,8,["title"]),y("div",A8,[y("table",null,[y("tbody",null,[y("tr",null,[y("td",null,A(E(O)("serverinfo","Type:")),1),y("td",k8,A(t.database.type),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Version:")),1),y("td",T8,A(t.database.version),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Size:")),1),y("td",D8,A(E(En)(t.database.size)),1)])])])])],64))}}),$8={name:"HarddiskIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},R8=["aria-hidden","aria-label"],B8=["fill","width","height"],P8={d:"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M12,4A6,6 0 0,0 6,10C6,13.31 8.69,16 12.1,16L11.22,13.77C10.95,13.29 11.11,12.68 11.59,12.4L12.45,11.9C12.93,11.63 13.54,11.79 13.82,12.27L15.74,14.69C17.12,13.59 18,11.9 18,10A6,6 0 0,0 12,4M12,9A1,1 0 0,1 13,10A1,1 0 0,1 12,11A1,1 0 0,1 11,10A1,1 0 0,1 12,9M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M12.09,13.27L14.58,19.58L17.17,18.08L12.95,12.77L12.09,13.27Z"},N8={key:0};function L8(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon harddisk-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",P8,[n.title?(C(),R("title",N8,A(n.title),1)):st("",!0)])],8,B8))],16,R8)}const F8=Pt($8,[["render",L8]]),V8={class:"section disk-status"},j8={class:"row row--tiles"},U8={class:"row row--cards"},I8={class:"diskchart-container"},z8=["aria-label"],H8={class:"diskinfo-container"},J8=["title"],W8={class:"diskinfo"},G8={class:"diskinfo__row"},K8={class:"info"},q8={class:"diskinfo__row"},X8={class:"info"},Y8={class:"diskinfo__row"},Z8={class:"info"},Q8={class:"diskinfo__row"},M8={class:"info-color-label--available"},tB={class:"info"},eB={class:"diskinfo__row"},nB={class:"info-color-label--used"},iB={class:"info"},oB=Et({__name:"DiskSection",props:{disks:{},freespace:{},storage:{}},setup(t){const e=t;no.register(eD,j5,xu);const n=[],i=[];function o(l){return l.split("/").pop()??l}function s(l){return O("serverinfo","{used} of {total} used",{used:Rn(l.used),total:Rn(l.used+l.available)})}function r(l){const c=Number.parseFloat(l);return Number.isNaN(c)?l:Math.round(c)+"%"}function a(l,c){return{id:"centerLabel",afterDatasetsDraw(u){const{ctx:d,chartArea:p}=u,f=Math.round((p.right-p.left)*.24);d.save(),d.fillStyle=c,d.font=`bold ${f}px ${getComputedStyle(u.canvas).fontFamily}`,d.textAlign="center",d.textBaseline="middle",d.fillText(l,(p.left+p.right)/2,(p.top+p.bottom)/2),d.restore()}}}return Pi(()=>{const l=pu(),c=cd("--color-border-maxcontrast","rgb(148, 148, 148)"),u=cd("--color-main-text","#222222");e.disks.forEach((d,p)=>{const f=n[p];f&&i.push(new no(f,{type:"doughnut",data:{labels:[O("serverinfo","Used"),O("serverinfo","Available")],datasets:[{backgroundColor:[l,c],borderWidth:0,borderRadius:4,spacing:2,hoverOffset:4,data:[d.used,d.available]}]},options:{responsive:!0,maintainAspectRatio:!0,aspectRatio:1,cutout:"70%",layout:{padding:4},plugins:{legend:{display:!1},tooltip:{callbacks:{label:v=>`${v.label}: ${Rn(v.parsed)}`}}}},plugins:[a(r(d.percent),u)]}))})}),Dn(()=>{i.forEach(l=>l.destroy()),i.length=0}),(l,c)=>(C(),R("div",V8,[q(Ge,{icon:F8,title:E(O)("serverinfo","Disk")},null,8,["title"]),y("div",j8,[q(De,{label:E(O)("serverinfo","Files"),value:t.storage.num_files},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","Storages"),value:t.storage.num_storages},null,8,["label","value"]),t.freespace!==null?(C(),ct(De,{key:0,label:E(O)("serverinfo","Free space"),value:E(En)(t.freespace)},null,8,["label","value"])):st("",!0)]),y("div",U8,[(C(!0),R(yt,null,Fe(t.disks,(u,d)=>(C(),R("div",{key:u.device,class:"infobox text-center-mobile"},[y("div",I8,[y("canvas",{ref_for:!0,ref:p=>{p&&(n[d]=p)},class:"DiskChart",role:"img","aria-label":s(u)},null,8,z8)]),y("div",H8,[y("h3",{title:u.device},A(o(u.device)),9,J8),y("dl",W8,[y("div",G8,[y("dt",null,A(E(O)("serverinfo","Mount:")),1),y("dd",K8,A(u.mount),1)]),y("div",q8,[y("dt",null,A(E(O)("serverinfo","Filesystem:")),1),y("dd",X8,A(u.fs),1)]),y("div",Y8,[y("dt",null,A(E(O)("serverinfo","Size:")),1),y("dd",Z8,A(E(Rn)(u.used+u.available)),1)]),y("div",Q8,[y("dt",M8,A(E(O)("serverinfo","Available:")),1),y("dd",tB,A(E(Rn)(u.available)),1)]),y("div",eB,[y("dt",nB,A(E(O)("serverinfo","Used:")),1),y("dd",iB,A(u.percent)+" ("+A(E(Rn)(u.used))+") ",1)])])])]))),128))])]))}}),sB=Pt(oB,[["__scopeId","data-v-d52cfcd6"]]),rB={name:"MemoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},aB=["aria-hidden","aria-label"],lB=["fill","width","height"],uB={d:"M17,17H7V7H17M21,11V9H19V7C19,5.89 18.1,5 17,5H15V3H13V5H11V3H9V5H7C5.89,5 5,5.89 5,7V9H3V11H5V13H3V15H5V17A2,2 0 0,0 7,19H9V21H11V19H13V21H15V19H17A2,2 0 0,0 19,17V15H21V13H19V11M13,13H11V11H13M15,9H9V15H15V9Z"},cB={key:0};function dB(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon memory-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",uB,[n.title?(C(),R("title",cB,A(n.title),1)):st("",!0)])],8,lB))],16,aB)}const hB=Pt(rB,[["render",dB]]),pB={key:0},fB={class:"row row--tiles"},gB={id:"memorySection",class:"infobox"},mB={class:"chart-wrapper"},$c=60,vB=Et({__name:"MemoryChartSection",props:{memTotal:{},memFree:{},swapTotal:{},swapFree:{},tick:{}},setup(t){const e=t;no.register(wh,_h,ND,xh,bu,Ps,bh,xu);const n=rt(()=>e.memTotal>0&&e.memFree>=0),i=rt(()=>e.swapTotal>0&&e.swapFree>=0);function o(){return"rgb(148, 148, 148)"}const s={label:O("serverinfo","RAM usage"),borderColor:o(),backgroundColor:qd(pu(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},r={label:O("serverinfo","Swap usage"),borderColor:"rgba(100,100,100,0.8)",backgroundColor:"rgba(100,100,100,0.2)",fill:!0,pointRadius:0,borderWidth:1,tension:.2},a=rn({labels:Array($c).fill(""),datasets:[{...s,data:Array($c).fill(null)},{...r,data:Array($c).fill(null)}]}),l=Rt(1),c=rt(()=>({animation:!1,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{display:!1},y:{min:0,max:l.value,ticks:{color:o(),callback:f=>f+" GB"},grid:{display:!1}}},plugins:{legend:{display:!0,position:"bottom",labels:{color:o(),filter:f=>i.value||f.datasetIndex===0}},tooltip:{callbacks:{label:f=>(f.dataset.label??"")+": "+f.parsed.y.toFixed(2)+" GB"}}}})),u=rt(()=>Rn(e.memTotal)),d=rt(()=>Rn(e.memTotal-e.memFree)),p=rt(()=>Rn(e.swapTotal-e.swapFree));return ke(()=>e.tick,()=>{if(!n.value)return;const f=e.memTotal/1024,v=i.value?e.swapTotal/1024:0;l.value=Math.ceil(Math.max(f,v));const g=[...a.value.labels.slice(1),new Date().toLocaleTimeString()],w=(e.memTotal-e.memFree)/1024,b=[...a.value.datasets[0].data.slice(1),w],S=i.value?(e.swapTotal-e.swapFree)/1024:null,D=[...a.value.datasets[1].data.slice(1),S];a.value={labels:g,datasets:[{...s,data:b},{...r,data:D}]}}),(f,v)=>(C(),R(yt,null,[q(Ge,{icon:hB,title:E(O)("serverinfo","Memory")},null,8,["title"]),n.value?(C(),R(yt,{key:1},[y("div",fB,[q(De,{label:E(O)("serverinfo","Used"),value:d.value},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","Total"),value:u.value},null,8,["label","value"]),i.value?(C(),ct(De,{key:0,label:E(O)("serverinfo","Swap used"),value:p.value},null,8,["label","value"])):st("",!0)]),y("div",gB,[y("div",mB,[q(E(Eh),{data:a.value,options:c.value},null,8,["data","options"])])])],64)):(C(),R("p",pB,[y("em",null,A(E(O)("serverinfo","RAM info not available")),1)]))],64))}}),yB=Pt(vB,[["__scopeId","data-v-03ed9b79"]]),bB=["id"],_B=Et({inheritAttrs:!1,__name:"NcFormBoxItem",props:{tag:{},label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},class:{default:()=>{}},itemClasses:{default:()=>{}}},emits:["click"],setup(t){const e=ou(),{formBoxItemClass:n}=jd(),i=oi(),o=()=>!!t.description||!!e.description;return(s,r)=>(C(),R("div",{class:Bt([t.class,s.$style.formBoxItem,E(n),{[s.$style.formBoxItem_inverted]:t.invertedAccent&&o(),[s.$style.formBoxItem_legacy]:E(Es)}])},[y("span",{class:Bt(s.$style.formBoxItem__content)},[(C(),ct(Po(t.tag),Lt({class:[s.$style.formBoxItem__element,t.itemClasses]},s.$attrs,{onClick:r[0]||(r[0]=a=>s.$emit("click",a))}),{default:dt(()=>[kt(s.$slots,"default",{descriptionId:E(i)},()=>[bt(A(t.label||"āš ļø Label is missing"),1)])]),_:3},16,["class"])),o()?(C(),R("span",{key:0,id:E(i),class:Bt(s.$style.formBoxItem__description)},[kt(s.$slots,"description",{},()=>[bt(A(t.description),1)])],10,bB)):st("",!0)],2),y("span",{class:Bt(s.$style.formBoxItem__icon)},[kt(s.$slots,"icon",{descriptionId:E(i)},()=>[r[1]||(r[1]=bt(" āš ļø Icon is missing ",-1))])],2)],2))}}),wB="_formBoxItem_ER-6m",xB="_formBoxItem__description_g-KcX",EB="_formBoxItem_legacy_TW1Sp",CB="_formBoxItem_inverted_CxfyH",SB="_formBoxItem__element_zgVx-",AB="_formBoxItem__content_dYtDe",kB="_formBoxItem__icon_ZIpCi",TB={"material-design-icon":"_material-design-icon_ILRX2",formBoxItem:wB,formBoxItem__description:xB,formBoxItem_legacy:EB,formBoxItem_inverted:CB,formBoxItem__element:SB,formBoxItem__content:AB,formBoxItem__icon:kB},DB={$style:TB},Oy=pe(_B,[["__cssModules",DB]]);function OB(t){const e=xs(t),n=Ei(c1,null)!==null,i=rt(()=>n&&e.to?"RouterLink":e.href?"a":"button"),o=rt(()=>i.value==="RouterLink"||i.value==="a"),s=rt(()=>i.value==="a"),r=rt(()=>i.value==="RouterLink"),a=rt(()=>i.value==="button"),l=rt(()=>{if(i.value==="RouterLink")return{to:e.to,activeClass:"active",...e.additionalAttrs?.("RouterLink")??{}};if(i.value==="a")return{href:e.href,target:e.target,download:e.download||void 0,rel:"nofollow noreferrer noopener",...e.additionalAttrs?.("a")??{}};if(i.value==="button")return{type:e.type||"button",disabled:e.disabled,...e.additionalAttrs?.("button")??{}}});return{tag:i,isLink:o,isHyperLink:s,isRouterLink:r,isButton:a,attrs:l}}const $B=Et({__name:"NcFormBoxButton",props:{label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},to:{default:()=>{}},href:{default:()=>{}},target:{default:()=>{}},disabled:{type:Boolean,default:!1}},emits:["click"],setup(t){const{tag:e,attrs:n,isLink:i}=OB({to:So(()=>t.to),href:So(()=>t.href),target:So(()=>t.target),disabled:So(()=>t.disabled)}),o=rt(()=>{if(i.value)return t.target==="_blank"?Hx:Fx});return(s,r)=>(C(),ct(Oy,Lt({tag:E(e),itemClasses:["button-vue",s.$style.formBoxButton],invertedAccent:t.invertedAccent},E(n),{tabindex:"0",onClick:r[0]||(r[0]=a=>s.$emit("click",a))}),Xr({_:2},[s.$slots.default||t.label?{name:"default",fn:dt(()=>[kt(s.$slots,"default",{},()=>[bt(A(t.label),1)])]),key:"0"}:void 0,s.$slots.description||t.description?{name:"description",fn:dt(()=>[kt(s.$slots,"description",{},()=>[bt(A(t.description),1)])]),key:"1"}:void 0,s.$slots.icon||o.value?{name:"icon",fn:dt(()=>[kt(s.$slots,"icon",{},()=>[o.value?(C(),ct(Pe,{key:0,path:o.value,inline:""},null,8,["path"])):st("",!0)])]),key:"2"}:void 0]),1040,["tag","itemClasses","invertedAccent"]))}}),RB="_formBoxButton_14txJ",BB={"material-design-icon":"_material-design-icon_0RfRa",formBoxButton:RB},PB={$style:BB},NB=pe($B,[["__cssModules",PB]]);Go(u2);const LB=2e3;function FB(t){const e=Rt(!1),n=rt(()=>e.value?gl:Ix),i=rt(()=>e.value?de("Copied"):de("Copy to clipboard"));async function o(){if(e.value)return;const s=tn(t);try{await navigator.clipboard.writeText(s)}catch{prompt("",s)}e.value=!0,setTimeout(()=>{e.value=!1},LB)}return{isCopied:e,copy:o,icon:n,altText:i}}const VB={class:"hidden-visually"},Rc=Et({__name:"NcFormBoxCopyButton",props:{label:{default:()=>{}},value:{},disabled:{type:Boolean,default:!1}},emits:["copy"],setup(t,{emit:e}){const n=e,{isCopied:i,copy:o,icon:s,altText:r}=FB(()=>t.value);return E2(i,()=>n("copy")),(a,l)=>(C(),ct(NB,{disabled:t.disabled,invertedAccent:"",onClick:E(o)},Xr({description:dt(()=>[bt(A(t.value),1)]),icon:dt(()=>[q(Pe,{path:E(s),inline:""},null,8,["path"])]),_:2},[a.$slots.default||t.label?{name:"default",fn:dt(()=>[y("span",VB,A(E(r)),1),kt(a.$slots,"default",{},()=>[bt(A(t.label),1)])]),key:"0"}:void 0]),1032,["disabled","onClick"]))}}),jB=` @@ -27,5 +27,5 @@ ${a}`});async function s(){try{await navigator.clipboard.writeText(o.value),n.va cy="6" r="3" fill="var(--color-main-background)" /> -`,jB=Et({__name:"NcIconToggleSwitch",props:{checked:{type:Boolean},size:{default:34},inline:{type:Boolean,default:!1}},setup(t){au(i=>({v6bd152af:e.value,v16fd8ca9:n.value}));const e=rt(()=>t.checked?"var(--color-primary-element)":"var(--color-text-maxcontrast)"),n=rt(()=>t.checked?"calc(17 / 24 * 100%)":"calc(7 / 24 * 100%)");return(i,o)=>(C(),ct(Pe,{class:Bt(i.$style.iconToggleSwitch),svg:VB,size:t.size,inline:t.inline},null,8,["class","size","inline"]))}}),UB="_iconToggleSwitch_fKjEc",IB={"material-design-icon":"_material-design-icon_Pm1ga",iconToggleSwitch:UB},zB={$style:IB},HB=pe(jB,[["__cssModules",zB]]),WB=["id","aria-describedby","disabled"],JB=Et({__name:"NcFormBoxSwitch",props:ii({label:{default:()=>{}},description:{default:()=>{}},disabled:{type:Boolean,default:!1}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:ii(["enable","disable"],["update:modelValue"]),setup(t,{emit:e}){const n=Jo(t,"modelValue"),i=e,o=oi();return ke(n,()=>{n.value?i("enable"):i("disable")},{flush:"sync"}),(s,r)=>(C(),ct(Dy,{tag:"label",for:E(o)},Xr({icon:dt(({descriptionId:a})=>[Sn(y("input",{id:E(o),"onUpdate:modelValue":r[0]||(r[0]=l=>n.value=l),class:Bt(s.$style.formBoxSwitch__input),type:"checkbox",role:"switch","aria-describedby":a,disabled:t.disabled},null,10,WB),[[xw,n.value]]),q(HB,{checked:n.value,inline:""},null,8,["checked"])]),_:2},[s.$slots.default||t.label?{name:"default",fn:dt(()=>[kt(s.$slots,"default",{},()=>[bt(A(t.label),1)])]),key:"0"}:void 0,s.$slots.description||t.description?{name:"description",fn:dt(()=>[kt(s.$slots,"description",{},()=>[bt(A(t.description),1)])]),key:"1"}:void 0]),1032,["for"]))}}),GB="_formBoxSwitch__input_BLkhF",KB={"material-design-icon":"_material-design-icon_0Ylmc",formBoxSwitch__input:GB},qB={$style:KB},Bc=pe(JB,[["__cssModules",qB]]),XB={name:"ConnectionIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},YB=["aria-hidden","aria-label"],ZB=["fill","width","height"],QB={d:"M21.4 7.5C22.2 8.3 22.2 9.6 21.4 10.3L18.6 13.1L10.8 5.3L13.6 2.5C14.4 1.7 15.7 1.7 16.4 2.5L18.2 4.3L21.2 1.3L22.6 2.7L19.6 5.7L21.4 7.5M15.6 13.3L14.2 11.9L11.4 14.7L9.3 12.6L12.1 9.8L10.7 8.4L7.9 11.2L6.4 9.8L3.6 12.6C2.8 13.4 2.8 14.7 3.6 15.4L5.4 17.2L1.4 21.2L2.8 22.6L6.8 18.6L8.6 20.4C9.4 21.2 10.7 21.2 11.4 20.4L14.2 17.6L12.8 16.2L15.6 13.3Z"},MB={key:0};function tP(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon connection-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",QB,[n.title?(C(),R("title",MB,A(n.title),1)):st("",!0)])],8,ZB))],16,YB)}const eP=Pt(XB,[["render",tP]]),nP={class:"section monitoring"},Dg="NC-Token",iP=Et({__name:"MonitoringSection",props:{ocs:{}},setup(t){const e=t,n=Array.from(crypto.getRandomValues(new Uint8Array(32)),a=>a.toString(16).padStart(2,"0")).join(""),i=Rt(!1),o=Rt(!0),s=Rt(!0),r=rt(()=>{try{const a=new URL(e.ocs);return i.value&&a.searchParams.set("format","json"),o.value||a.searchParams.set("skipApps","false"),s.value||a.searchParams.set("skipUpdate","false"),a.toString()}catch{return e.ocs}});return(a,l)=>(C(),R("div",nP,[q(Ge,{icon:eP,title:E(O)("serverinfo","External monitoring API")},null,8,["title"]),q(E(za),null,{default:dt(()=>[q(E(Rc),{label:E(O)("serverinfo","Endpoint URL"),value:r.value},null,8,["label","value"])]),_:1}),q(E(Zc),{label:E(O)("serverinfo","Configuration")},{default:dt(()=>[q(E(za),null,{default:dt(()=>[q(E(Bc),{modelValue:i.value,"onUpdate:modelValue":l[0]||(l[0]=c=>i.value=c),label:E(O)("serverinfo","Output in JSON")},null,8,["modelValue","label"]),q(E(Bc),{modelValue:o.value,"onUpdate:modelValue":l[1]||(l[1]=c=>o.value=c),label:E(O)("serverinfo","Skip apps section"),description:E(O)("serverinfo","Including the apps section sends an external request to the app store")},null,8,["modelValue","label","description"]),q(E(Bc),{modelValue:s.value,"onUpdate:modelValue":l[2]||(l[2]=c=>s.value=c),label:E(O)("serverinfo","Skip server update")},null,8,["modelValue","label"])]),_:1})]),_:1},8,["label"]),q(E(Zc),{label:E(O)("serverinfo","Authentication"),description:E(O)("serverinfo","This token was generated in your browser and is not stored until you run the command below. Send it in the {header} header with every request.",{header:Dg})},{default:dt(()=>[q(E(za),null,{default:dt(()=>[q(E(Rc),{label:E(O)("serverinfo","Command to store the token"),value:`occ config:app:set serverinfo token --value ${E(n)}`},null,8,["label","value"]),q(E(Rc),{label:E(O)("serverinfo","Request header"),value:`${Dg}: ${E(n)}`},null,8,["label","value"])]),_:1})]),_:1},8,["label","description"])]))}}),oP=Pt(iP,[["__scopeId","data-v-94a398b4"]]),sP={name:"LanIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},rP=["aria-hidden","aria-label"],aP=["fill","width","height"],lP={d:"M10,2C8.89,2 8,2.89 8,4V7C8,8.11 8.89,9 10,9H11V11H2V13H6V15H5C3.89,15 3,15.89 3,17V20C3,21.11 3.89,22 5,22H9C10.11,22 11,21.11 11,20V17C11,15.89 10.11,15 9,15H8V13H16V15H15C13.89,15 13,15.89 13,17V20C13,21.11 13.89,22 15,22H19C20.11,22 21,21.11 21,20V17C21,15.89 20.11,15 19,15H18V13H22V11H13V9H14C15.11,9 16,8.11 16,7V4C16,2.89 15.11,2 14,2H10M10,4H14V7H10V4M5,17H9V20H5V17M15,17H19V20H15V17Z"},uP={key:0};function cP(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon lan-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",lP,[n.title?(C(),R("title",uP,A(n.title),1)):st("",!0)])],8,aP))],16,rP)}const dP=Pt(sP,[["render",cP]]),hP={class:"section network-infos"},pP={class:"row row--tiles"},fP={class:"row row--cards"},gP={class:"infobox"},mP={class:"interface-wrapper"},vP={class:"info"},yP={class:"info"},bP={class:"info"},_P={class:"info"},wP={class:"info"},xP=Et({__name:"NetworkSection",props:{networkinfo:{},interfaces:{}},setup(t){return(e,n)=>(C(),R("div",hP,[q(Ge,{icon:dP,title:E(O)("serverinfo","Network")},null,8,["title"]),y("div",pP,[q(De,{label:E(O)("serverinfo","Hostname"),value:t.networkinfo.hostname},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","Gateway"),value:t.networkinfo.gateway},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","DNS"),value:t.networkinfo.dns},null,8,["label","value"])]),y("div",fP,[(C(!0),R(yt,null,Fe(t.interfaces,i=>(C(),R("div",{key:i.name},[y("div",gP,[y("div",mP,[y("h3",null,A(i.name),1),bt(" "+A(E(O)("serverinfo","Status:"))+" ",1),y("span",vP,A(i.up?"up":"down"),1),n[1]||(n[1]=y("br",null,null,-1)),bt(" "+A(E(O)("serverinfo","Speed:"))+" ",1),y("span",yP,A(i.speed)+" ("+A(E(O)("serverinfo","Duplex:"))+" "+A(i.duplex)+")",1),n[2]||(n[2]=y("br",null,null,-1)),i.mac?(C(),R(yt,{key:0},[bt(A(E(O)("serverinfo","MAC:"))+" ",1),y("span",bP,A(i.mac),1),n[0]||(n[0]=y("br",null,null,-1))],64)):st("",!0),bt(" "+A(E(O)("serverinfo","IPv4:"))+" ",1),y("span",_P,A(i.ipv4.join(", ")),1),n[3]||(n[3]=y("br",null,null,-1)),bt(" "+A(E(O)("serverinfo","IPv6:"))+" ",1),y("span",wP,A(i.ipv6.join(", ")),1)])])]))),128))])]))}}),EP={name:"FlashIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},CP=["aria-hidden","aria-label"],SP=["fill","width","height"],AP={d:"M7,2V13H10V22L17,10H13L17,2H7Z"},kP={key:0};function TP(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon flash-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",AP,[n.title?(C(),R("title",kP,A(n.title),1)):st("",!0)])],8,SP))],16,CP)}const DP=Pt(EP,[["render",TP]]),OP=["aria-label","aria-labelledby","aria-describedby","aria-valuenow"],$P=["height","width"],RP=["stroke-dasharray","stroke-dashoffset","stroke-width","r","cx","cy"],BP=["stroke-dasharray","stroke-dashoffset","stroke-width","r","cx","cy"],PP={key:1,class:"progress-bar-container"},NP=["aria-label","aria-labelledby","aria-describedby","value"],LP={key:0,"aria-hidden":"true",class:"progress-bar__value"},Na=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline")),Og=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),FP=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--clickable-area-small")),VP=Et({__name:"NcProgressBar",props:{ariaLabel:{default:void 0},ariaLabelledby:{default:void 0},ariaDescribedby:{default:void 0},value:{default:0},size:{default:"small"},error:{type:Boolean},type:{default:"linear"},color:{default:"var(--color-primary-element)"},showValue:{type:Boolean,default:!1}},setup(t){au(c=>({v737c16c0:c.color,v0630ed12:o.value}));const e=t,n=rt(()=>Math.max(0,Math.min(100,e.value))/100),i=rt(()=>typeof e.size=="number"?Math.round(e.size):e.type==="circular"?e.size==="medium"?Og:FP:e.size==="medium"?1.5*Na:Na),o=rt(()=>`${i.value}px`),s=rt(()=>Math.max(Na,i.value/Og*Na)),r=rt(()=>i.value/2),a=rt(()=>i.value/2-s.value),l=rt(()=>a.value*2*Math.PI);return(c,u)=>t.type==="circular"?(C(),R("span",{key:0,class:Bt(["progress-bar progress-bar--circular",{"progress-bar--error":t.error}]),"aria-label":t.ariaLabel,"aria-labelledby":t.ariaLabelledby,"aria-describedby":t.ariaDescribedby,"aria-valuenow":t.value,role:"progressbar"},[(C(),R("svg",{height:i.value,width:i.value},[y("circle",{stroke:"currentColor",fill:"transparent","stroke-dasharray":`${n.value*l.value} ${(1-n.value)*l.value}`,"stroke-dashoffset":.25*l.value,"stroke-width":s.value,r:a.value,cx:r.value,cy:r.value},null,8,RP),y("circle",{stroke:"var(--color-background-darker)",fill:"transparent","stroke-dasharray":`${(1-n.value)*l.value} ${n.value*l.value}`,"stroke-dashoffset":(.25-n.value)*l.value,"stroke-width":s.value,r:a.value,cx:r.value,cy:r.value},null,8,BP)],8,$P))],10,OP)):(C(),R("div",PP,[y("progress",{class:Bt(["progress-bar progress-bar--linear vue",{"progress-bar--error":t.error}]),"aria-label":t.ariaLabel,"aria-labelledby":t.ariaLabelledby,"aria-describedby":t.ariaDescribedby,value:t.value,max:"100"},null,10,NP),t.showValue?(C(),R("span",LP,A(t.value)+"%",1)):st("",!0)]))}}),jP=pe(VP,[["__scopeId","data-v-461c5031"]]),UP={class:"usage-meter-bar"},IP={class:"usage-meter-bar__header"},zP={class:"info"},HP=75,WP=90,JP=Et({__name:"UsageMeterBar",props:{label:{},detail:{},percentage:{},forceError:{type:Boolean}},setup(t){return(e,n)=>(C(),R("div",UP,[y("div",IP,[y("span",null,A(t.label),1),y("span",zP,A(t.detail),1)]),q(E(jP),{value:t.percentage,size:"medium",color:t.percentage>=HP?"var(--color-warning)":void 0,error:t.forceError||t.percentage>=WP},null,8,["value","color","error"])]))}}),Oy=Pt(JP,[["__scopeId","data-v-733874f2"]]),GP={class:"row row--tiles"},KP=["title"],qP={class:"server-info-table"},XP={class:"info"},YP={class:"info"},ZP={class:"info"},QP={key:0},MP={class:"info"},tN=Et({__name:"OpcacheSection",props:{opcache:{}},setup(t){const e=t,n=rt(()=>{switch(e.opcache.status){case"not_loaded":return O("serverinfo","OPcache is not loaded.");case"disabled":return O("serverinfo","OPcache is disabled.");case"api_restricted":return O("serverinfo",'Nextcloud is not permitted to read the OPcache status ("opcache.restrict_api").');default:return O("serverinfo","OPcache status is unavailable.")}});function i(r,a,l,c,u=!1){return c<=0?null:{label:r,detail:a,percentage:Math.round(l/c*100),forceError:u}}const o=rt(()=>{if(e.opcache.status!=="ok")return[];const{memory:r,internedStrings:a,keys:l,cacheFull:c}=e.opcache;return[i(O("serverinfo","Memory"),O("serverinfo","{used} of {total}",{used:En(r.used+r.wasted),total:En(r.total)}),r.used+r.wasted,r.total,c),i(O("serverinfo","Interned strings"),O("serverinfo","{used} of {total}",{used:En(a.used),total:En(a.total)}),a.used,a.total),i(O("serverinfo","Keys"),O("serverinfo","{used} of {max}",{used:l.used.toLocaleString(),max:l.max.toLocaleString()}),l.used,l.max)].filter(u=>u!==null)}),s=rt(()=>e.opcache.status!=="ok"||!e.opcache.jit?"":e.opcache.jit.enabled?O("serverinfo","Enabled, {used} of {total} buffer used",{used:En(e.opcache.jit.bufferUsed),total:En(e.opcache.jit.bufferTotal)}):O("serverinfo","Disabled"));return(r,a)=>(C(),R(yt,null,[q(Ge,{icon:DP,title:E(O)("serverinfo","OPcache")},null,8,["title"]),t.opcache.status!=="ok"?(C(),ct(E(Si),{key:0,type:"warning"},{default:dt(()=>[bt(A(n.value),1)]),_:1})):(C(),R(yt,{key:1},[y("div",GP,[q(De,{label:E(O)("serverinfo","Hit rate"),value:`${t.opcache.hitRate.toFixed(2)} %`},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","Cached scripts"),value:t.opcache.cachedScripts},null,8,["label","value"])]),y("div",{class:"opcache-meters",title:E(O)("serverinfo","These numbers describe the PHP process handling this request. Other FPM pools or the CLI keep their own OPcache.")},[(C(!0),R(yt,null,Fe(o.value,l=>(C(),ct(Oy,Lt({key:l.label},{ref_for:!0},l),null,16))),128))],8,KP),y("div",qP,[y("table",null,[y("tbody",null,[y("tr",null,[y("td",null,A(E(O)("serverinfo","Revalidate frequency:")),1),y("td",XP,A(t.opcache.revalidateFreq)+" "+A(E(O)("serverinfo","seconds")),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Validate timestamps:")),1),y("td",YP,A(t.opcache.validateTimestamps?E(O)("serverinfo","Yes"):E(O)("serverinfo","No")),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","OOM restarts:")),1),y("td",{class:Bt(["info",{"info--warning":t.opcache.oomRestarts>0}])},A(t.opcache.oomRestarts),3)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Last restart:")),1),y("td",ZP,[t.opcache.lastRestart!==null?(C(),ct(E(lu),{key:0,timestamp:t.opcache.lastRestart*1e3},null,8,["timestamp"])):(C(),R(yt,{key:1},[bt(A(E(O)("serverinfo","Never")),1)],64))])]),t.opcache.jit?(C(),R("tr",QP,[y("td",null,A(E(O)("serverinfo","JIT:")),1),y("td",MP,A(s.value),1)])):st("",!0)])])])],64))],64))}}),eN=Pt(tN,[["__scopeId","data-v-6fef687a"]]),nN={name:"CogsIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},iN=["aria-hidden","aria-label"],oN=["fill","width","height"],sN={d:"M15.9,18.45C17.25,18.45 18.35,17.35 18.35,16C18.35,14.65 17.25,13.55 15.9,13.55C14.54,13.55 13.45,14.65 13.45,16C13.45,17.35 14.54,18.45 15.9,18.45M21.1,16.68L22.58,17.84C22.71,17.95 22.75,18.13 22.66,18.29L21.26,20.71C21.17,20.86 21,20.92 20.83,20.86L19.09,20.16C18.73,20.44 18.33,20.67 17.91,20.85L17.64,22.7C17.62,22.87 17.47,23 17.3,23H14.5C14.32,23 14.18,22.87 14.15,22.7L13.89,20.85C13.46,20.67 13.07,20.44 12.71,20.16L10.96,20.86C10.81,20.92 10.62,20.86 10.54,20.71L9.14,18.29C9.05,18.13 9.09,17.95 9.22,17.84L10.7,16.68L10.65,16L10.7,15.31L9.22,14.16C9.09,14.05 9.05,13.86 9.14,13.71L10.54,11.29C10.62,11.13 10.81,11.07 10.96,11.13L12.71,11.84C13.07,11.56 13.46,11.32 13.89,11.15L14.15,9.29C14.18,9.13 14.32,9 14.5,9H17.3C17.47,9 17.62,9.13 17.64,9.29L17.91,11.15C18.33,11.32 18.73,11.56 19.09,11.84L20.83,11.13C21,11.07 21.17,11.13 21.26,11.29L22.66,13.71C22.75,13.86 22.71,14.05 22.58,14.16L21.1,15.31L21.15,16L21.1,16.68M6.69,8.07C7.56,8.07 8.26,7.37 8.26,6.5C8.26,5.63 7.56,4.92 6.69,4.92A1.58,1.58 0 0,0 5.11,6.5C5.11,7.37 5.82,8.07 6.69,8.07M10.03,6.94L11,7.68C11.07,7.75 11.09,7.87 11.03,7.97L10.13,9.53C10.08,9.63 9.96,9.67 9.86,9.63L8.74,9.18L8,9.62L7.81,10.81C7.79,10.92 7.7,11 7.59,11H5.79C5.67,11 5.58,10.92 5.56,10.81L5.4,9.62L4.64,9.18L3.5,9.63C3.41,9.67 3.3,9.63 3.24,9.53L2.34,7.97C2.28,7.87 2.31,7.75 2.39,7.68L3.34,6.94L3.31,6.5L3.34,6.06L2.39,5.32C2.31,5.25 2.28,5.13 2.34,5.03L3.24,3.47C3.3,3.37 3.41,3.33 3.5,3.37L4.63,3.82L5.4,3.38L5.56,2.19C5.58,2.08 5.67,2 5.79,2H7.59C7.7,2 7.79,2.08 7.81,2.19L8,3.38L8.74,3.82L9.86,3.37C9.96,3.33 10.08,3.37 10.13,3.47L11.03,5.03C11.09,5.13 11.07,5.25 11,5.32L10.03,6.06L10.06,6.5L10.03,6.94Z"},rN={key:0};function aN(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon cogs-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",sN,[n.title?(C(),R("title",rN,A(n.title),1)):st("",!0)])],8,oN))],16,iN)}const lN=Pt(nN,[["render",aN]]),uN={name:"LanguagePhpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},cN=["aria-hidden","aria-label"],dN=["fill","width","height"],hN={d:"M12,18.08C5.37,18.08 0,15.36 0,12C0,8.64 5.37,5.92 12,5.92C18.63,5.92 24,8.64 24,12C24,15.36 18.63,18.08 12,18.08M6.81,10.13C7.35,10.13 7.72,10.23 7.9,10.44C8.08,10.64 8.12,11 8.03,11.47C7.93,12 7.74,12.34 7.45,12.56C7.17,12.78 6.74,12.89 6.16,12.89H5.29L5.82,10.13H6.81M3.31,15.68H4.75L5.09,13.93H6.32C6.86,13.93 7.3,13.87 7.65,13.76C8,13.64 8.32,13.45 8.61,13.18C8.85,12.96 9.04,12.72 9.19,12.45C9.34,12.19 9.45,11.89 9.5,11.57C9.66,10.79 9.55,10.18 9.17,9.75C8.78,9.31 8.18,9.1 7.35,9.1H4.59L3.31,15.68M10.56,7.35L9.28,13.93H10.7L11.44,10.16H12.58C12.94,10.16 13.18,10.22 13.29,10.34C13.4,10.46 13.42,10.68 13.36,11L12.79,13.93H14.24L14.83,10.86C14.96,10.24 14.86,9.79 14.56,9.5C14.26,9.23 13.71,9.1 12.91,9.1H11.64L12,7.35H10.56M18,10.13C18.55,10.13 18.91,10.23 19.09,10.44C19.27,10.64 19.31,11 19.22,11.47C19.12,12 18.93,12.34 18.65,12.56C18.36,12.78 17.93,12.89 17.35,12.89H16.5L17,10.13H18M14.5,15.68H15.94L16.28,13.93H17.5C18.05,13.93 18.5,13.87 18.85,13.76C19.2,13.64 19.5,13.45 19.8,13.18C20.04,12.96 20.24,12.72 20.38,12.45C20.53,12.19 20.64,11.89 20.7,11.57C20.85,10.79 20.74,10.18 20.36,9.75C20,9.31 19.37,9.1 18.54,9.1H15.79L14.5,15.68Z"},pN={key:0};function fN(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon language-php-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",hN,[n.title?(C(),R("title",pN,A(n.title),1)):st("",!0)])],8,dN))],16,cN)}const gN=Pt(uN,[["render",fN]]),mN={key:0,class:"server-info-table"},vN=Et({__name:"PhpExtensionsDialog",props:{extensions:{}},emits:["close"],setup(t){return(e,n)=>(C(),ct(E(hu),{name:E(O)("serverinfo","PHP extensions"),size:"normal",onClosing:n[0]||(n[0]=i=>e.$emit("close"))},{default:dt(()=>[t.extensions?(C(),R("div",mN,[y("table",null,[y("thead",null,[y("tr",null,[y("th",null,A(E(O)("serverinfo","Extension")),1)])]),y("tbody",null,[(C(!0),R(yt,null,Fe(t.extensions,i=>(C(),R("tr",{key:i},[y("td",null,A(i),1)]))),128))])])])):(C(),R(yt,{key:1},[bt(A(E(O)("serverinfo","Unable to list extensions")),1)],64))]),_:1},8,["name"]))}}),yN={class:"row row--tiles"},bN={class:"server-info-table"},_N={class:"info"},wN={class:"info"},xN={class:"info"},EN={class:"info"},CN={class:"info"},SN={key:0},AN=["href"],kN={class:"server-info-table"},TN={class:"info"},DN={class:"info"},ON={class:"info"},$N={class:"info"},RN={class:"info"},BN={class:"info"},PN={class:"info"},NN={class:"info"},LN={class:"info"},FN={class:"info"},VN={class:"info"},jN={class:"info"},UN=Et({__name:"PhpSection",props:{php:{},fpm:{type:[Object,Boolean]},phpinfo:{type:Boolean},phpinfoUrl:{}},setup(t){const e=t,n=rt(()=>e.php.memoryLimit<0?O("serverinfo","Unlimited"):En(e.php.memoryLimit)),i=Rt(!1),o=rt(()=>e.php.extensions===null?O("serverinfo","Unable to list extensions"):O("serverinfo","{count} loaded",{count:e.php.extensions.length}));return(s,r)=>(C(),R(yt,null,[q(Ge,{icon:gN,title:E(O)("serverinfo","PHP")},null,8,["title"]),y("div",yN,[q(De,{label:E(O)("serverinfo","Version"),value:t.php.version},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","Memory limit"),value:n.value},null,8,["label","value"])]),y("div",bN,[y("table",null,[y("tbody",null,[y("tr",null,[y("td",null,A(E(O)("serverinfo","Max execution time:")),1),y("td",_N,[t.php.maxExecutionTime===0?(C(),R(yt,{key:0},[bt(A(E(O)("serverinfo","Unlimited")),1)],64)):(C(),R(yt,{key:1},[bt(A(t.php.maxExecutionTime)+" "+A(E(O)("serverinfo","seconds")),1)],64))])]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Upload max size:")),1),y("td",wN,A(E(En)(t.php.uploadMaxFilesize)),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Post max size:")),1),y("td",xN,A(E(En)(t.php.postMaxSize)),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","SAPI:")),1),y("td",EN,A(t.php.sapi),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Extensions:")),1),y("td",CN,[q(E(Se),{class:"extensions-button",variant:"tertiary",size:"small",onClick:r[0]||(r[0]=a=>i.value=!0)},{default:dt(()=>[bt(A(o.value),1)]),_:1})])]),t.phpinfo?(C(),R("tr",SN,[y("td",null,A(E(O)("serverinfo","PHP Info:")),1),y("td",null,[y("a",{class:"info",target:"_blank",rel:"noopener noreferrer",href:t.phpinfoUrl},A(E(O)("serverinfo","Show phpinfo")),9,AN)])])):st("",!0)])])]),t.fpm!==!1?(C(),R(yt,{key:0},[q(Ge,{icon:lN,title:E(O)("serverinfo","FPM worker pool")},null,8,["title"]),y("div",kN,[y("table",null,[y("tbody",null,[y("tr",null,[y("td",null,A(E(O)("serverinfo","Pool name:")),1),y("td",TN,A(t.fpm.pool),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Pool type:")),1),y("td",DN,A(t.fpm["process-manager"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Start time:")),1),y("td",ON,A(t.fpm["start-time"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Accepted connections:")),1),y("td",$N,A(t.fpm["accepted-conn"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Total processes:")),1),y("td",RN,A(t.fpm["total-processes"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Active processes:")),1),y("td",BN,A(t.fpm["active-processes"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Idle processes:")),1),y("td",PN,A(t.fpm["idle-processes"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Listen queue:")),1),y("td",NN,A(t.fpm["listen-queue"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Slow requests:")),1),y("td",LN,A(t.fpm["slow-requests"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Max listen queue:")),1),y("td",FN,A(t.fpm["max-listen-queue"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Max active processes:")),1),y("td",VN,A(t.fpm["max-active-processes"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Max children reached:")),1),y("td",jN,A(t.fpm["max-children-reached"]),1)])])])])],64)):st("",!0),i.value?(C(),ct(vN,{key:1,extensions:t.php.extensions,onClose:r[1]||(r[1]=a=>i.value=!1)},null,8,["extensions"])):st("",!0)],64))}}),IN=Pt(UN,[["__scopeId","data-v-13baec9e"]]),zN={name:"GaugeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},HN=["aria-hidden","aria-label"],WN=["fill","width","height"],JN={d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12C20,14.4 19,16.5 17.3,18C15.9,16.7 14,16 12,16C10,16 8.2,16.7 6.7,18C5,16.5 4,14.4 4,12A8,8 0 0,1 12,4M14,5.89C13.62,5.9 13.26,6.15 13.1,6.54L11.81,9.77L11.71,10C11,10.13 10.41,10.6 10.14,11.26C9.73,12.29 10.23,13.45 11.26,13.86C12.29,14.27 13.45,13.77 13.86,12.74C14.12,12.08 14,11.32 13.57,10.76L13.67,10.5L14.96,7.29L14.97,7.26C15.17,6.75 14.92,6.17 14.41,5.96C14.28,5.91 14.15,5.89 14,5.89M10,6A1,1 0 0,0 9,7A1,1 0 0,0 10,8A1,1 0 0,0 11,7A1,1 0 0,0 10,6M7,9A1,1 0 0,0 6,10A1,1 0 0,0 7,11A1,1 0 0,0 8,10A1,1 0 0,0 7,9M17,9A1,1 0 0,0 16,10A1,1 0 0,0 17,11A1,1 0 0,0 18,10A1,1 0 0,0 17,9Z"},GN={key:0};function KN(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon gauge-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",JN,[n.title?(C(),R("title",GN,A(n.title),1)):st("",!0)])],8,WN))],16,HN)}const qN=Pt(zN,[["render",KN]]),XN={key:0},YN={key:1,class:"resource-usage"},ZN=Et({__name:"ResourceOverviewSection",props:{cpuload:{type:[Array,Boolean]},cpunum:{},memTotal:{},memFree:{},swapTotal:{},swapFree:{}},setup(t){const e=t;function n(o,s,r){return r<=0||s<0?null:{label:o,detail:O("serverinfo","{used} of {total}",{used:Rn(s),total:Rn(r)}),percentage:Math.round(s/r*100)}}const i=rt(()=>{const o=e.memTotal,s=e.swapTotal;return[e.cpuload===!1||e.cpunum<=0?null:{label:O("serverinfo","CPU"),detail:(e.cpuload[0]/e.cpunum*100).toFixed(1)+" %",percentage:Math.min(100,Math.round(e.cpuload[0]/e.cpunum*100))},n(O("serverinfo","Memory"),e.memFree<0?-1:o-e.memFree,o),n(O("serverinfo","Swap"),e.swapFree<0?-1:s-e.swapFree,s)].filter(r=>r!==null)});return(o,s)=>(C(),R(yt,null,[q(Ge,{icon:qN,title:E(O)("serverinfo","Resource usage")},null,8,["title"]),i.value.length===0?(C(),R("p",XN,[y("em",null,A(E(O)("serverinfo","Resource usage not available")),1)])):(C(),R("div",YN,[(C(!0),R(yt,null,Fe(i.value,r=>(C(),ct(Oy,Lt({key:r.label},{ref_for:!0},r),null,16))),128))]))],64))}}),QN=Pt(ZN,[["__scopeId","data-v-15e6dfa6"]]),MN={name:"ShareVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},tL=["aria-hidden","aria-label"],eL=["fill","width","height"],nL={d:"M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z"},iL={key:0};function oL(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon share-variant-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",nL,[n.title?(C(),R("title",iL,A(n.title),1)):st("",!0)])],8,eL))],16,tL)}const sL=Pt(MN,[["render",oL]]),rL={class:"section network-infos"},aL={class:"row row--cards"},lL={class:"infobox"},uL={class:"interface-wrapper"},cL={class:"info"},dL={class:"info"},hL={class:"info"},pL={class:"info"},fL={class:"info"},gL={class:"info"},mL={class:"info"},vL=Et({__name:"SharesSection",props:{shares:{}},setup(t){return(e,n)=>(C(),R("div",rL,[q(Ge,{icon:sL,title:E(O)("serverinfo","Shares")},null,8,["title"]),y("div",aL,[y("div",null,[y("div",lL,[y("div",uL,[t.shares.num_shares_user>0?(C(),R(yt,{key:0},[bt(A(E(O)("serverinfo","Users:"))+" ",1),y("span",cL,A(t.shares.num_shares_user),1),n[0]||(n[0]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_shares_groups>0?(C(),R(yt,{key:1},[bt(A(E(O)("serverinfo","Groups:"))+" ",1),y("span",dL,A(t.shares.num_shares_groups),1),n[1]||(n[1]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_shares_link>0?(C(),R(yt,{key:2},[bt(A(E(O)("serverinfo","Links:"))+" ",1),y("span",hL,A(t.shares.num_shares_link),1),n[2]||(n[2]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_shares_mail>0?(C(),R(yt,{key:3},[bt(A(E(O)("serverinfo","Emails:"))+" ",1),y("span",pL,A(t.shares.num_shares_mail),1),n[3]||(n[3]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_fed_shares_sent>0?(C(),R(yt,{key:4},[bt(A(E(O)("serverinfo","Federated sent:"))+" ",1),y("span",fL,A(t.shares.num_fed_shares_sent),1),n[4]||(n[4]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_fed_shares_received>0?(C(),R(yt,{key:5},[bt(A(E(O)("serverinfo","Federated received:"))+" ",1),y("span",gL,A(t.shares.num_fed_shares_received),1),n[5]||(n[5]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_shares_room>0?(C(),R(yt,{key:6},[bt(A(E(O)("serverinfo","Talk conversations:"))+" ",1),y("span",mL,A(t.shares.num_shares_room),1),n[6]||(n[6]=y("br",null,null,-1))],64)):st("",!0)])])])])]))}}),yL={class:"server-info-table"},bL={class:"info"},_L={class:"info"},wL={class:"info"},xL={class:"info"},EL=Et({__name:"SystemSection",props:{hostname:{},osname:{},cpu:{},servertime:{},uptime:{}},setup(t){return(e,n)=>(C(),R(yt,null,[q(Ge,{icon:m1,title:t.hostname},null,8,["title"]),y("div",yL,[y("table",null,[y("tbody",null,[y("tr",null,[y("td",null,A(E(O)("serverinfo","Operating System:")),1),y("td",bL,A(t.osname),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","CPU:")),1),y("td",_L,A(t.cpu.threads>0?E(O)("serverinfo","{name} ({threads} threads)",{name:t.cpu.name,threads:t.cpu.threads}):t.cpu.name),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Server time:")),1),y("td",null,[y("span",wL,A(t.servertime),1)])]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Uptime:")),1),y("td",null,[y("span",xL,A(t.uptime),1)])])])])])],64))}}),CL={name:"ThermometerIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},SL=["aria-hidden","aria-label"],AL=["fill","width","height"],kL={d:"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5V8H11V5A1 1 0 0 1 12 4Z"},TL={key:0};function DL(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon thermometer-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",kL,[n.title?(C(),R("title",TL,A(n.title),1)):st("",!0)])],8,AL))],16,SL)}const OL=Pt(CL,[["render",DL]]),$L={class:"server-info-table"},RL={class:"info temp"},BL=Et({__name:"ThermalSection",props:{thermalzones:{}},setup(t){return(e,n)=>(C(),R(yt,null,[q(Ge,{icon:OL,title:E(O)("serverinfo","Temperature")},null,8,["title"]),y("div",$L,[y("table",null,[y("tbody",null,[(C(!0),R(yt,null,Fe(t.thermalzones,i=>(C(),R("tr",{key:i.zone},[y("td",null,A(i.type)+":",1),y("td",null,[y("span",RL,A(Math.round(i.temp)),1),n[0]||(n[0]=bt("°C",-1))])]))),128))])])])],64))}}),PL=Pt(BL,[["__scopeId","data-v-cb3096fd"]]),NL={class:"status-view"},LL={class:"section server-infos-two"},FL={class:"row"},VL={class:"section server-infos-two"},jL={class:"row"},UL={key:1,class:"section"},IL={class:"section php-opcache"},zL={class:"row"},HL={class:"section"},WL={class:"row"},JL={class:"section server-infos-two"},GL={class:"row"},KL={class:"section server-infos-two"},qL={class:"row"},XL={class:"section php-opcache"},YL={class:"row"},ZL={class:"section"},QL={class:"row"},ML=Et({__name:"StatusView",props:{staticData:{},staticError:{type:Boolean},liveData:{},tick:{}},setup(t){const e=t,n=rt(()=>{const i=e.liveData?.cpu.load;return Array.isArray(i)&&i.length>0?i:!1});return(i,o)=>(C(),R("div",NL,[t.staticData?(C(),R(yt,{key:0},[y("div",LL,[y("div",FL,[y("div",null,[q(EL,{hostname:t.staticData.hostname,osname:t.staticData.osname,cpu:t.staticData.cpu,servertime:t.liveData?.servertime??"",uptime:t.liveData?.uptime??""},null,8,["hostname","osname","cpu","servertime","uptime"])]),y("div",null,[t.liveData?(C(),ct(QN,{key:0,cpuload:n.value,cpunum:t.staticData.cpu.threads,memTotal:t.liveData.memory.total,memFree:t.liveData.memory.free,swapTotal:t.liveData.memory.swap_total,swapFree:t.liveData.memory.swap_free},null,8,["cpuload","cpunum","memTotal","memFree","swapTotal","swapFree"])):(C(),ct(Ye,{key:1}))])])]),y("div",VL,[y("div",jL,[y("div",null,[t.liveData?(C(),ct(C8,{key:0,cpuload:n.value,cpunum:t.staticData.cpu.threads,tick:t.tick},null,8,["cpuload","cpunum","tick"])):(C(),ct(Ye,{key:1}))]),y("div",null,[t.liveData?(C(),ct(vB,{key:0,memTotal:t.liveData.memory.total,memFree:t.liveData.memory.free,swapTotal:t.liveData.memory.swap_total,swapFree:t.liveData.memory.swap_free,tick:t.tick},null,8,["memTotal","memFree","swapTotal","swapFree","tick"])):(C(),ct(Ye,{key:1}))])])]),q(oB,{disks:t.staticData.diskinfo,freespace:t.staticData.freeSpace,storage:t.staticData.storage},null,8,["disks","freespace","storage"]),q(xP,{networkinfo:t.staticData.networkinfo,interfaces:t.staticData.networkinterfaces},null,8,["networkinfo","interfaces"]),q(c8,{activeUsers:t.staticData.activeUsers,numUsers:t.staticData.storage.num_users},null,8,["activeUsers","numUsers"]),t.staticData.shares.num_shares>0?(C(),ct(vL,{key:0,shares:t.staticData.shares},null,8,["shares"])):st("",!0),!t.liveData||t.liveData.thermalzones.length>0?(C(),R("div",UL,[t.liveData?(C(),ct(PL,{key:1,thermalzones:t.liveData.thermalzones},null,8,["thermalzones"])):(C(),ct(Ye,{key:0}))])):st("",!0),y("div",IL,[y("div",zL,[y("div",null,[q(IN,{php:t.staticData.php,fpm:t.staticData.fpm,phpinfo:t.staticData.phpinfo,phpinfoUrl:t.staticData.phpinfoUrl},null,8,["php","fpm","phpinfo","phpinfoUrl"])]),y("div",null,[q(eN,{opcache:t.staticData.opcache},null,8,["opcache"])])])]),y("div",HL,[y("div",WL,[y("div",null,[q(D8,{database:t.staticData.database},null,8,["database"])])])]),q(oP,{ocs:t.staticData.ocs},null,8,["ocs"])],64)):t.staticError?st("",!0):(C(),R(yt,{key:1},[y("div",JL,[y("div",GL,[y("div",null,[q(Ye)]),y("div",null,[q(Ye)])])]),y("div",KL,[y("div",qL,[y("div",null,[q(Ye)]),y("div",null,[q(Ye)])])]),q(Ye),q(Ye),y("div",XL,[y("div",YL,[y("div",null,[q(Ye)]),y("div",null,[q(Ye)])])]),y("div",ZL,[y("div",QL,[y("div",null,[q(Ye)])])])],64))]))}});function $g(t,e=2e3){const n=Rt(null),i=Rt(0),o=Rt(0),s=Rt(null),r=6e4;let a=null,l=!1,c=!1;async function u(){a=null,c=!0;try{const v=await Cn.get(Qi(t));n.value=v.data,i.value++,o.value=0,s.value=new Date}catch{o.value++}finally{c=!1,d()}}function d(){l||document.hidden||a!==null||(a=setTimeout(u,p()))}function p(){return o.value===0?e:Math.min(e*2**o.value,r)}function f(){document.hidden?a!==null&&(clearTimeout(a),a=null):c||u()}return document.addEventListener("visibilitychange",f),a=setTimeout(u,0),Dn(()=>{l=!0,document.removeEventListener("visibilitychange",f),a!==null&&(clearTimeout(a),a=null)}),{data:n,tick:i,failures:o,lastUpdated:s}}function tF(){const t=Rt(null),e=Rt(!0),n=Rt(!1);async function i(){e.value=!0,n.value=!1;try{const o=await Cn.get(Qi("/apps/serverinfo/data"));t.value=o.data}catch{n.value=!0}finally{e.value=!1}}return i(),{data:t,loading:e,error:n,reload:i}}const eF={class:"server-info-wrapper"},nF=Et({name:"ServerInfo",__name:"SettingsAdmin",setup(t){const e=["status","database","background-jobs"];function n(){const g=window.location.hash.replace(/^#/,"");return e.includes(g)?g:"status"}const i=Rt(n());ke(i,g=>{window.history.replaceState(null,"",`#${g}`)});function o(){i.value=n()}window.addEventListener("hashchange",o),Dn(()=>{window.removeEventListener("hashchange",o)});const{data:s,error:r,reload:a}=tF(),{data:l,tick:c,failures:u,lastUpdated:d}=$g("/apps/serverinfo/update"),{data:p,failures:f}=$g("/apps/serverinfo/periodic",6e4),v=rt(()=>u.value>=2||f.value>=2);return(g,w)=>(C(),R("div",eF,[E(r)?(C(),ct(E(Si),{key:0,type:"error",class:"server-info-notice"},{default:dt(()=>[y("p",null,A(E(O)("serverinfo","The server information could not be loaded.")),1),q(E(Se),{onClick:E(a)},{default:dt(()=>[bt(A(E(O)("serverinfo","Try again")),1)]),_:1},8,["onClick"])]),_:1})):v.value?(C(),ct(E(Si),{key:1,type:"warning",class:"server-info-notice"},{default:dt(()=>[E(d)?(C(),R(yt,{key:0},[bt(A(E(O)("serverinfo","These values stopped updating at {time}: the server is not responding.",{time:E(d).toLocaleTimeString()})),1)],64)):(C(),R(yt,{key:1},[bt(A(E(O)("serverinfo","The live values could not be loaded: the server is not responding.")),1)],64))]),_:1})):st("",!0),q(M4,{modelValue:i.value,"onUpdate:modelValue":w[0]||(w[0]=b=>i.value=b)},null,8,["modelValue"]),Sn(q(ML,{staticData:E(s),staticError:E(r),liveData:E(l),tick:E(c)},null,8,["staticData","staticError","liveData","tick"]),[[Mn,i.value==="status"]]),Sn(q(JR,{active:i.value==="database"},null,8,["active"]),[[Mn,i.value==="database"]]),Sn(q(_S,{periodicData:E(p)},null,8,["periodicData"]),[[Mn,i.value==="background-jobs"]])]))}}),iF=Pt(nF,[["__scopeId","data-v-4daaaea0"]]);Dw(iF).mount("#serverinfo-settings"); +`,UB=Et({__name:"NcIconToggleSwitch",props:{checked:{type:Boolean},size:{default:34},inline:{type:Boolean,default:!1}},setup(t){au(i=>({v6bd152af:e.value,v16fd8ca9:n.value}));const e=rt(()=>t.checked?"var(--color-primary-element)":"var(--color-text-maxcontrast)"),n=rt(()=>t.checked?"calc(17 / 24 * 100%)":"calc(7 / 24 * 100%)");return(i,o)=>(C(),ct(Pe,{class:Bt(i.$style.iconToggleSwitch),svg:jB,size:t.size,inline:t.inline},null,8,["class","size","inline"]))}}),IB="_iconToggleSwitch_fKjEc",zB={"material-design-icon":"_material-design-icon_Pm1ga",iconToggleSwitch:IB},HB={$style:zB},JB=pe(UB,[["__cssModules",HB]]),WB=["id","aria-describedby","disabled"],GB=Et({__name:"NcFormBoxSwitch",props:ii({label:{default:()=>{}},description:{default:()=>{}},disabled:{type:Boolean,default:!1}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:ii(["enable","disable"],["update:modelValue"]),setup(t,{emit:e}){const n=Wo(t,"modelValue"),i=e,o=oi();return ke(n,()=>{n.value?i("enable"):i("disable")},{flush:"sync"}),(s,r)=>(C(),ct(Oy,{tag:"label",for:E(o)},Xr({icon:dt(({descriptionId:a})=>[Sn(y("input",{id:E(o),"onUpdate:modelValue":r[0]||(r[0]=l=>n.value=l),class:Bt(s.$style.formBoxSwitch__input),type:"checkbox",role:"switch","aria-describedby":a,disabled:t.disabled},null,10,WB),[[Ew,n.value]]),q(JB,{checked:n.value,inline:""},null,8,["checked"])]),_:2},[s.$slots.default||t.label?{name:"default",fn:dt(()=>[kt(s.$slots,"default",{},()=>[bt(A(t.label),1)])]),key:"0"}:void 0,s.$slots.description||t.description?{name:"description",fn:dt(()=>[kt(s.$slots,"description",{},()=>[bt(A(t.description),1)])]),key:"1"}:void 0]),1032,["for"]))}}),KB="_formBoxSwitch__input_BLkhF",qB={"material-design-icon":"_material-design-icon_0Ylmc",formBoxSwitch__input:KB},XB={$style:qB},Bc=pe(GB,[["__cssModules",XB]]),YB={name:"ConnectionIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ZB=["aria-hidden","aria-label"],QB=["fill","width","height"],MB={d:"M21.4 7.5C22.2 8.3 22.2 9.6 21.4 10.3L18.6 13.1L10.8 5.3L13.6 2.5C14.4 1.7 15.7 1.7 16.4 2.5L18.2 4.3L21.2 1.3L22.6 2.7L19.6 5.7L21.4 7.5M15.6 13.3L14.2 11.9L11.4 14.7L9.3 12.6L12.1 9.8L10.7 8.4L7.9 11.2L6.4 9.8L3.6 12.6C2.8 13.4 2.8 14.7 3.6 15.4L5.4 17.2L1.4 21.2L2.8 22.6L6.8 18.6L8.6 20.4C9.4 21.2 10.7 21.2 11.4 20.4L14.2 17.6L12.8 16.2L15.6 13.3Z"},tP={key:0};function eP(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon connection-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",MB,[n.title?(C(),R("title",tP,A(n.title),1)):st("",!0)])],8,QB))],16,ZB)}const nP=Pt(YB,[["render",eP]]),iP={class:"section monitoring"},Dg="NC-Token",oP=Et({__name:"MonitoringSection",props:{ocs:{}},setup(t){const e=t,n=Array.from(crypto.getRandomValues(new Uint8Array(32)),a=>a.toString(16).padStart(2,"0")).join(""),i=Rt(!1),o=Rt(!0),s=Rt(!0),r=rt(()=>{try{const a=new URL(e.ocs);return i.value&&a.searchParams.set("format","json"),o.value||a.searchParams.set("skipApps","false"),s.value||a.searchParams.set("skipUpdate","false"),a.toString()}catch{return e.ocs}});return(a,l)=>(C(),R("div",iP,[q(Ge,{icon:nP,title:E(O)("serverinfo","External monitoring API")},null,8,["title"]),q(E(za),null,{default:dt(()=>[q(E(Rc),{label:E(O)("serverinfo","Endpoint URL"),value:r.value},null,8,["label","value"])]),_:1}),q(E(Zc),{label:E(O)("serverinfo","Configuration")},{default:dt(()=>[q(E(za),null,{default:dt(()=>[q(E(Bc),{modelValue:i.value,"onUpdate:modelValue":l[0]||(l[0]=c=>i.value=c),label:E(O)("serverinfo","Output in JSON")},null,8,["modelValue","label"]),q(E(Bc),{modelValue:o.value,"onUpdate:modelValue":l[1]||(l[1]=c=>o.value=c),label:E(O)("serverinfo","Skip apps section"),description:E(O)("serverinfo","Including the apps section sends an external request to the app store")},null,8,["modelValue","label","description"]),q(E(Bc),{modelValue:s.value,"onUpdate:modelValue":l[2]||(l[2]=c=>s.value=c),label:E(O)("serverinfo","Skip server update")},null,8,["modelValue","label"])]),_:1})]),_:1},8,["label"]),q(E(Zc),{label:E(O)("serverinfo","Authentication"),description:E(O)("serverinfo","This token was generated in your browser and is not stored until you run the command below. Send it in the {header} header with every request.",{header:Dg})},{default:dt(()=>[q(E(za),null,{default:dt(()=>[q(E(Rc),{label:E(O)("serverinfo","Command to store the token"),value:`occ config:app:set serverinfo token --value ${E(n)}`},null,8,["label","value"]),q(E(Rc),{label:E(O)("serverinfo","Request header"),value:`${Dg}: ${E(n)}`},null,8,["label","value"])]),_:1})]),_:1},8,["label","description"])]))}}),sP=Pt(oP,[["__scopeId","data-v-94a398b4"]]),rP={name:"LanIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},aP=["aria-hidden","aria-label"],lP=["fill","width","height"],uP={d:"M10,2C8.89,2 8,2.89 8,4V7C8,8.11 8.89,9 10,9H11V11H2V13H6V15H5C3.89,15 3,15.89 3,17V20C3,21.11 3.89,22 5,22H9C10.11,22 11,21.11 11,20V17C11,15.89 10.11,15 9,15H8V13H16V15H15C13.89,15 13,15.89 13,17V20C13,21.11 13.89,22 15,22H19C20.11,22 21,21.11 21,20V17C21,15.89 20.11,15 19,15H18V13H22V11H13V9H14C15.11,9 16,8.11 16,7V4C16,2.89 15.11,2 14,2H10M10,4H14V7H10V4M5,17H9V20H5V17M15,17H19V20H15V17Z"},cP={key:0};function dP(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon lan-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",uP,[n.title?(C(),R("title",cP,A(n.title),1)):st("",!0)])],8,lP))],16,aP)}const hP=Pt(rP,[["render",dP]]),pP={class:"section network-infos"},fP={class:"row row--tiles"},gP={class:"row row--cards"},mP={class:"infobox"},vP={class:"interface-wrapper"},yP={class:"info"},bP={class:"info"},_P={class:"info"},wP={class:"info"},xP={class:"info"},EP=Et({__name:"NetworkSection",props:{networkinfo:{},interfaces:{}},setup(t){return(e,n)=>(C(),R("div",pP,[q(Ge,{icon:hP,title:E(O)("serverinfo","Network")},null,8,["title"]),y("div",fP,[q(De,{label:E(O)("serverinfo","Hostname"),value:t.networkinfo.hostname},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","Gateway"),value:t.networkinfo.gateway},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","DNS"),value:t.networkinfo.dns},null,8,["label","value"])]),y("div",gP,[(C(!0),R(yt,null,Fe(t.interfaces,i=>(C(),R("div",{key:i.name},[y("div",mP,[y("div",vP,[y("h3",null,A(i.name),1),bt(" "+A(E(O)("serverinfo","Status:"))+" ",1),y("span",yP,A(i.up?"up":"down"),1),n[1]||(n[1]=y("br",null,null,-1)),bt(" "+A(E(O)("serverinfo","Speed:"))+" ",1),y("span",bP,A(i.speed)+" ("+A(E(O)("serverinfo","Duplex:"))+" "+A(i.duplex)+")",1),n[2]||(n[2]=y("br",null,null,-1)),i.mac?(C(),R(yt,{key:0},[bt(A(E(O)("serverinfo","MAC:"))+" ",1),y("span",_P,A(i.mac),1),n[0]||(n[0]=y("br",null,null,-1))],64)):st("",!0),bt(" "+A(E(O)("serverinfo","IPv4:"))+" ",1),y("span",wP,A(i.ipv4.join(", ")),1),n[3]||(n[3]=y("br",null,null,-1)),bt(" "+A(E(O)("serverinfo","IPv6:"))+" ",1),y("span",xP,A(i.ipv6.join(", ")),1)])])]))),128))])]))}}),CP={name:"FlashIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},SP=["aria-hidden","aria-label"],AP=["fill","width","height"],kP={d:"M7,2V13H10V22L17,10H13L17,2H7Z"},TP={key:0};function DP(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon flash-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",kP,[n.title?(C(),R("title",TP,A(n.title),1)):st("",!0)])],8,AP))],16,SP)}const OP=Pt(CP,[["render",DP]]),$P=["aria-label","aria-labelledby","aria-describedby","aria-valuenow"],RP=["height","width"],BP=["stroke-dasharray","stroke-dashoffset","stroke-width","r","cx","cy"],PP=["stroke-dasharray","stroke-dashoffset","stroke-width","r","cx","cy"],NP={key:1,class:"progress-bar-container"},LP=["aria-label","aria-labelledby","aria-describedby","value"],FP={key:0,"aria-hidden":"true",class:"progress-bar__value"},Na=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline")),Og=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),VP=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--clickable-area-small")),jP=Et({__name:"NcProgressBar",props:{ariaLabel:{default:void 0},ariaLabelledby:{default:void 0},ariaDescribedby:{default:void 0},value:{default:0},size:{default:"small"},error:{type:Boolean},type:{default:"linear"},color:{default:"var(--color-primary-element)"},showValue:{type:Boolean,default:!1}},setup(t){au(c=>({v737c16c0:c.color,v0630ed12:o.value}));const e=t,n=rt(()=>Math.max(0,Math.min(100,e.value))/100),i=rt(()=>typeof e.size=="number"?Math.round(e.size):e.type==="circular"?e.size==="medium"?Og:VP:e.size==="medium"?1.5*Na:Na),o=rt(()=>`${i.value}px`),s=rt(()=>Math.max(Na,i.value/Og*Na)),r=rt(()=>i.value/2),a=rt(()=>i.value/2-s.value),l=rt(()=>a.value*2*Math.PI);return(c,u)=>t.type==="circular"?(C(),R("span",{key:0,class:Bt(["progress-bar progress-bar--circular",{"progress-bar--error":t.error}]),"aria-label":t.ariaLabel,"aria-labelledby":t.ariaLabelledby,"aria-describedby":t.ariaDescribedby,"aria-valuenow":t.value,role:"progressbar"},[(C(),R("svg",{height:i.value,width:i.value},[y("circle",{stroke:"currentColor",fill:"transparent","stroke-dasharray":`${n.value*l.value} ${(1-n.value)*l.value}`,"stroke-dashoffset":.25*l.value,"stroke-width":s.value,r:a.value,cx:r.value,cy:r.value},null,8,BP),y("circle",{stroke:"var(--color-background-darker)",fill:"transparent","stroke-dasharray":`${(1-n.value)*l.value} ${n.value*l.value}`,"stroke-dashoffset":(.25-n.value)*l.value,"stroke-width":s.value,r:a.value,cx:r.value,cy:r.value},null,8,PP)],8,RP))],10,$P)):(C(),R("div",NP,[y("progress",{class:Bt(["progress-bar progress-bar--linear vue",{"progress-bar--error":t.error}]),"aria-label":t.ariaLabel,"aria-labelledby":t.ariaLabelledby,"aria-describedby":t.ariaDescribedby,value:t.value,max:"100"},null,10,LP),t.showValue?(C(),R("span",FP,A(t.value)+"%",1)):st("",!0)]))}}),UP=pe(jP,[["__scopeId","data-v-461c5031"]]),IP={class:"usage-meter-bar"},zP={class:"usage-meter-bar__header"},HP={class:"info"},JP=75,WP=90,GP=Et({__name:"UsageMeterBar",props:{label:{},detail:{},percentage:{},forceError:{type:Boolean}},setup(t){return(e,n)=>(C(),R("div",IP,[y("div",zP,[y("span",null,A(t.label),1),y("span",HP,A(t.detail),1)]),q(E(UP),{value:t.percentage,size:"medium",color:t.percentage>=JP?"var(--color-warning)":void 0,error:t.forceError||t.percentage>=WP},null,8,["value","color","error"])]))}}),$y=Pt(GP,[["__scopeId","data-v-733874f2"]]),KP={class:"row row--tiles"},qP=["title"],XP={class:"server-info-table"},YP={class:"info"},ZP={class:"info"},QP={class:"info"},MP={key:0},tN={class:"info"},eN=Et({__name:"OpcacheSection",props:{opcache:{}},setup(t){const e=t,n=rt(()=>{switch(e.opcache.status){case"not_loaded":return O("serverinfo","OPcache is not loaded.");case"disabled":return O("serverinfo","OPcache is disabled.");case"api_restricted":return O("serverinfo",'Nextcloud is not permitted to read the OPcache status ("opcache.restrict_api").');default:return O("serverinfo","OPcache status is unavailable.")}});function i(r,a,l,c,u=!1){return c<=0?null:{label:r,detail:a,percentage:Math.round(l/c*100),forceError:u}}const o=rt(()=>{if(e.opcache.status!=="ok")return[];const{memory:r,internedStrings:a,keys:l,cacheFull:c}=e.opcache;return[i(O("serverinfo","Memory"),O("serverinfo","{used} of {total}",{used:En(r.used+r.wasted),total:En(r.total)}),r.used+r.wasted,r.total,c),i(O("serverinfo","Interned strings"),O("serverinfo","{used} of {total}",{used:En(a.used),total:En(a.total)}),a.used,a.total),i(O("serverinfo","Keys"),O("serverinfo","{used} of {max}",{used:l.used.toLocaleString(),max:l.max.toLocaleString()}),l.used,l.max)].filter(u=>u!==null)}),s=rt(()=>e.opcache.status!=="ok"||!e.opcache.jit?"":e.opcache.jit.enabled?O("serverinfo","Enabled, {used} of {total} buffer used",{used:En(e.opcache.jit.bufferUsed),total:En(e.opcache.jit.bufferTotal)}):O("serverinfo","Disabled"));return(r,a)=>(C(),R(yt,null,[q(Ge,{icon:OP,title:E(O)("serverinfo","OPcache")},null,8,["title"]),t.opcache.status!=="ok"?(C(),ct(E(Si),{key:0,type:"warning"},{default:dt(()=>[bt(A(n.value),1)]),_:1})):(C(),R(yt,{key:1},[y("div",KP,[q(De,{label:E(O)("serverinfo","Hit rate"),value:`${t.opcache.hitRate.toFixed(2)} %`},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","Cached scripts"),value:t.opcache.cachedScripts},null,8,["label","value"])]),y("div",{class:"opcache-meters",title:E(O)("serverinfo","These numbers describe the PHP process handling this request. Other FPM pools or the CLI keep their own OPcache.")},[(C(!0),R(yt,null,Fe(o.value,l=>(C(),ct($y,Lt({key:l.label},{ref_for:!0},l),null,16))),128))],8,qP),y("div",XP,[y("table",null,[y("tbody",null,[y("tr",null,[y("td",null,A(E(O)("serverinfo","Revalidate frequency:")),1),y("td",YP,A(t.opcache.revalidateFreq)+" "+A(E(O)("serverinfo","seconds")),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Validate timestamps:")),1),y("td",ZP,A(t.opcache.validateTimestamps?E(O)("serverinfo","Yes"):E(O)("serverinfo","No")),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","OOM restarts:")),1),y("td",{class:Bt(["info",{"info--warning":t.opcache.oomRestarts>0}])},A(t.opcache.oomRestarts),3)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Last restart:")),1),y("td",QP,[t.opcache.lastRestart!==null?(C(),ct(E(lu),{key:0,timestamp:t.opcache.lastRestart*1e3},null,8,["timestamp"])):(C(),R(yt,{key:1},[bt(A(E(O)("serverinfo","Never")),1)],64))])]),t.opcache.jit?(C(),R("tr",MP,[y("td",null,A(E(O)("serverinfo","JIT:")),1),y("td",tN,A(s.value),1)])):st("",!0)])])])],64))],64))}}),nN=Pt(eN,[["__scopeId","data-v-6fef687a"]]),iN={name:"CogsIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},oN=["aria-hidden","aria-label"],sN=["fill","width","height"],rN={d:"M15.9,18.45C17.25,18.45 18.35,17.35 18.35,16C18.35,14.65 17.25,13.55 15.9,13.55C14.54,13.55 13.45,14.65 13.45,16C13.45,17.35 14.54,18.45 15.9,18.45M21.1,16.68L22.58,17.84C22.71,17.95 22.75,18.13 22.66,18.29L21.26,20.71C21.17,20.86 21,20.92 20.83,20.86L19.09,20.16C18.73,20.44 18.33,20.67 17.91,20.85L17.64,22.7C17.62,22.87 17.47,23 17.3,23H14.5C14.32,23 14.18,22.87 14.15,22.7L13.89,20.85C13.46,20.67 13.07,20.44 12.71,20.16L10.96,20.86C10.81,20.92 10.62,20.86 10.54,20.71L9.14,18.29C9.05,18.13 9.09,17.95 9.22,17.84L10.7,16.68L10.65,16L10.7,15.31L9.22,14.16C9.09,14.05 9.05,13.86 9.14,13.71L10.54,11.29C10.62,11.13 10.81,11.07 10.96,11.13L12.71,11.84C13.07,11.56 13.46,11.32 13.89,11.15L14.15,9.29C14.18,9.13 14.32,9 14.5,9H17.3C17.47,9 17.62,9.13 17.64,9.29L17.91,11.15C18.33,11.32 18.73,11.56 19.09,11.84L20.83,11.13C21,11.07 21.17,11.13 21.26,11.29L22.66,13.71C22.75,13.86 22.71,14.05 22.58,14.16L21.1,15.31L21.15,16L21.1,16.68M6.69,8.07C7.56,8.07 8.26,7.37 8.26,6.5C8.26,5.63 7.56,4.92 6.69,4.92A1.58,1.58 0 0,0 5.11,6.5C5.11,7.37 5.82,8.07 6.69,8.07M10.03,6.94L11,7.68C11.07,7.75 11.09,7.87 11.03,7.97L10.13,9.53C10.08,9.63 9.96,9.67 9.86,9.63L8.74,9.18L8,9.62L7.81,10.81C7.79,10.92 7.7,11 7.59,11H5.79C5.67,11 5.58,10.92 5.56,10.81L5.4,9.62L4.64,9.18L3.5,9.63C3.41,9.67 3.3,9.63 3.24,9.53L2.34,7.97C2.28,7.87 2.31,7.75 2.39,7.68L3.34,6.94L3.31,6.5L3.34,6.06L2.39,5.32C2.31,5.25 2.28,5.13 2.34,5.03L3.24,3.47C3.3,3.37 3.41,3.33 3.5,3.37L4.63,3.82L5.4,3.38L5.56,2.19C5.58,2.08 5.67,2 5.79,2H7.59C7.7,2 7.79,2.08 7.81,2.19L8,3.38L8.74,3.82L9.86,3.37C9.96,3.33 10.08,3.37 10.13,3.47L11.03,5.03C11.09,5.13 11.07,5.25 11,5.32L10.03,6.06L10.06,6.5L10.03,6.94Z"},aN={key:0};function lN(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon cogs-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",rN,[n.title?(C(),R("title",aN,A(n.title),1)):st("",!0)])],8,sN))],16,oN)}const uN=Pt(iN,[["render",lN]]),cN={name:"LanguagePhpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},dN=["aria-hidden","aria-label"],hN=["fill","width","height"],pN={d:"M12,18.08C5.37,18.08 0,15.36 0,12C0,8.64 5.37,5.92 12,5.92C18.63,5.92 24,8.64 24,12C24,15.36 18.63,18.08 12,18.08M6.81,10.13C7.35,10.13 7.72,10.23 7.9,10.44C8.08,10.64 8.12,11 8.03,11.47C7.93,12 7.74,12.34 7.45,12.56C7.17,12.78 6.74,12.89 6.16,12.89H5.29L5.82,10.13H6.81M3.31,15.68H4.75L5.09,13.93H6.32C6.86,13.93 7.3,13.87 7.65,13.76C8,13.64 8.32,13.45 8.61,13.18C8.85,12.96 9.04,12.72 9.19,12.45C9.34,12.19 9.45,11.89 9.5,11.57C9.66,10.79 9.55,10.18 9.17,9.75C8.78,9.31 8.18,9.1 7.35,9.1H4.59L3.31,15.68M10.56,7.35L9.28,13.93H10.7L11.44,10.16H12.58C12.94,10.16 13.18,10.22 13.29,10.34C13.4,10.46 13.42,10.68 13.36,11L12.79,13.93H14.24L14.83,10.86C14.96,10.24 14.86,9.79 14.56,9.5C14.26,9.23 13.71,9.1 12.91,9.1H11.64L12,7.35H10.56M18,10.13C18.55,10.13 18.91,10.23 19.09,10.44C19.27,10.64 19.31,11 19.22,11.47C19.12,12 18.93,12.34 18.65,12.56C18.36,12.78 17.93,12.89 17.35,12.89H16.5L17,10.13H18M14.5,15.68H15.94L16.28,13.93H17.5C18.05,13.93 18.5,13.87 18.85,13.76C19.2,13.64 19.5,13.45 19.8,13.18C20.04,12.96 20.24,12.72 20.38,12.45C20.53,12.19 20.64,11.89 20.7,11.57C20.85,10.79 20.74,10.18 20.36,9.75C20,9.31 19.37,9.1 18.54,9.1H15.79L14.5,15.68Z"},fN={key:0};function gN(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon language-php-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",pN,[n.title?(C(),R("title",fN,A(n.title),1)):st("",!0)])],8,hN))],16,dN)}const mN=Pt(cN,[["render",gN]]),vN={key:0,class:"server-info-table"},yN=Et({__name:"PhpExtensionsDialog",props:{extensions:{}},emits:["close"],setup(t){return(e,n)=>(C(),ct(E(hu),{name:E(O)("serverinfo","PHP extensions"),size:"normal",onClosing:n[0]||(n[0]=i=>e.$emit("close"))},{default:dt(()=>[t.extensions?(C(),R("div",vN,[y("table",null,[y("thead",null,[y("tr",null,[y("th",null,A(E(O)("serverinfo","Extension")),1)])]),y("tbody",null,[(C(!0),R(yt,null,Fe(t.extensions,i=>(C(),R("tr",{key:i},[y("td",null,A(i),1)]))),128))])])])):(C(),R(yt,{key:1},[bt(A(E(O)("serverinfo","Unable to list extensions")),1)],64))]),_:1},8,["name"]))}}),bN={class:"row row--tiles"},_N={class:"server-info-table"},wN={class:"info"},xN={class:"info"},EN={class:"info"},CN={class:"info"},SN={class:"info"},AN={key:0},kN=["href"],TN={class:"server-info-table"},DN={class:"info"},ON={class:"info"},$N={class:"info"},RN={class:"info"},BN={class:"info"},PN={class:"info"},NN={class:"info"},LN={class:"info"},FN={class:"info"},VN={class:"info"},jN={class:"info"},UN={class:"info"},IN=Et({__name:"PhpSection",props:{php:{},fpm:{type:[Object,Boolean]},phpinfo:{type:Boolean},phpinfoUrl:{}},setup(t){const e=t,n=rt(()=>e.php.memoryLimit<0?O("serverinfo","Unlimited"):En(e.php.memoryLimit)),i=Rt(!1),o=rt(()=>e.php.extensions===null?O("serverinfo","Unable to list extensions"):O("serverinfo","{count} loaded",{count:e.php.extensions.length}));return(s,r)=>(C(),R(yt,null,[q(Ge,{icon:mN,title:E(O)("serverinfo","PHP")},null,8,["title"]),y("div",bN,[q(De,{label:E(O)("serverinfo","Version"),value:t.php.version},null,8,["label","value"]),q(De,{label:E(O)("serverinfo","Memory limit"),value:n.value},null,8,["label","value"])]),y("div",_N,[y("table",null,[y("tbody",null,[y("tr",null,[y("td",null,A(E(O)("serverinfo","Max execution time:")),1),y("td",wN,[t.php.maxExecutionTime===0?(C(),R(yt,{key:0},[bt(A(E(O)("serverinfo","Unlimited")),1)],64)):(C(),R(yt,{key:1},[bt(A(t.php.maxExecutionTime)+" "+A(E(O)("serverinfo","seconds")),1)],64))])]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Upload max size:")),1),y("td",xN,A(E(En)(t.php.uploadMaxFilesize)),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Post max size:")),1),y("td",EN,A(E(En)(t.php.postMaxSize)),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","SAPI:")),1),y("td",CN,A(t.php.sapi),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Extensions:")),1),y("td",SN,[q(E(Se),{class:"extensions-button",variant:"tertiary",size:"small",onClick:r[0]||(r[0]=a=>i.value=!0)},{default:dt(()=>[bt(A(o.value),1)]),_:1})])]),t.phpinfo?(C(),R("tr",AN,[y("td",null,A(E(O)("serverinfo","PHP Info:")),1),y("td",null,[y("a",{class:"info",target:"_blank",rel:"noopener noreferrer",href:t.phpinfoUrl},A(E(O)("serverinfo","Show phpinfo")),9,kN)])])):st("",!0)])])]),t.fpm!==!1?(C(),R(yt,{key:0},[q(Ge,{icon:uN,title:E(O)("serverinfo","FPM worker pool")},null,8,["title"]),y("div",TN,[y("table",null,[y("tbody",null,[y("tr",null,[y("td",null,A(E(O)("serverinfo","Pool name:")),1),y("td",DN,A(t.fpm.pool),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Pool type:")),1),y("td",ON,A(t.fpm["process-manager"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Start time:")),1),y("td",$N,A(t.fpm["start-time"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Accepted connections:")),1),y("td",RN,A(t.fpm["accepted-conn"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Total processes:")),1),y("td",BN,A(t.fpm["total-processes"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Active processes:")),1),y("td",PN,A(t.fpm["active-processes"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Idle processes:")),1),y("td",NN,A(t.fpm["idle-processes"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Listen queue:")),1),y("td",LN,A(t.fpm["listen-queue"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Slow requests:")),1),y("td",FN,A(t.fpm["slow-requests"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Max listen queue:")),1),y("td",VN,A(t.fpm["max-listen-queue"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Max active processes:")),1),y("td",jN,A(t.fpm["max-active-processes"]),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Max children reached:")),1),y("td",UN,A(t.fpm["max-children-reached"]),1)])])])])],64)):st("",!0),i.value?(C(),ct(yN,{key:1,extensions:t.php.extensions,onClose:r[1]||(r[1]=a=>i.value=!1)},null,8,["extensions"])):st("",!0)],64))}}),zN=Pt(IN,[["__scopeId","data-v-13baec9e"]]),HN={name:"GaugeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},JN=["aria-hidden","aria-label"],WN=["fill","width","height"],GN={d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12C20,14.4 19,16.5 17.3,18C15.9,16.7 14,16 12,16C10,16 8.2,16.7 6.7,18C5,16.5 4,14.4 4,12A8,8 0 0,1 12,4M14,5.89C13.62,5.9 13.26,6.15 13.1,6.54L11.81,9.77L11.71,10C11,10.13 10.41,10.6 10.14,11.26C9.73,12.29 10.23,13.45 11.26,13.86C12.29,14.27 13.45,13.77 13.86,12.74C14.12,12.08 14,11.32 13.57,10.76L13.67,10.5L14.96,7.29L14.97,7.26C15.17,6.75 14.92,6.17 14.41,5.96C14.28,5.91 14.15,5.89 14,5.89M10,6A1,1 0 0,0 9,7A1,1 0 0,0 10,8A1,1 0 0,0 11,7A1,1 0 0,0 10,6M7,9A1,1 0 0,0 6,10A1,1 0 0,0 7,11A1,1 0 0,0 8,10A1,1 0 0,0 7,9M17,9A1,1 0 0,0 16,10A1,1 0 0,0 17,11A1,1 0 0,0 18,10A1,1 0 0,0 17,9Z"},KN={key:0};function qN(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon gauge-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",GN,[n.title?(C(),R("title",KN,A(n.title),1)):st("",!0)])],8,WN))],16,JN)}const XN=Pt(HN,[["render",qN]]),YN={key:0},ZN={key:1,class:"resource-usage"},QN=Et({__name:"ResourceOverviewSection",props:{cpuload:{type:[Array,Boolean]},cpunum:{},memTotal:{},memFree:{},swapTotal:{},swapFree:{}},setup(t){const e=t;function n(o,s,r){return r<=0||s<0?null:{label:o,detail:O("serverinfo","{used} of {total}",{used:Rn(s),total:Rn(r)}),percentage:Math.round(s/r*100)}}const i=rt(()=>{const o=e.memTotal,s=e.swapTotal;return[e.cpuload===!1||e.cpunum<=0?null:{label:O("serverinfo","CPU"),detail:(e.cpuload[0]/e.cpunum*100).toFixed(1)+" %",percentage:Math.min(100,Math.round(e.cpuload[0]/e.cpunum*100))},n(O("serverinfo","Memory"),e.memFree<0?-1:o-e.memFree,o),n(O("serverinfo","Swap"),e.swapFree<0?-1:s-e.swapFree,s)].filter(r=>r!==null)});return(o,s)=>(C(),R(yt,null,[q(Ge,{icon:XN,title:E(O)("serverinfo","Resource usage")},null,8,["title"]),i.value.length===0?(C(),R("p",YN,[y("em",null,A(E(O)("serverinfo","Resource usage not available")),1)])):(C(),R("div",ZN,[(C(!0),R(yt,null,Fe(i.value,r=>(C(),ct($y,Lt({key:r.label},{ref_for:!0},r),null,16))),128))]))],64))}}),MN=Pt(QN,[["__scopeId","data-v-15e6dfa6"]]),tL={name:"ShareVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},eL=["aria-hidden","aria-label"],nL=["fill","width","height"],iL={d:"M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z"},oL={key:0};function sL(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon share-variant-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",iL,[n.title?(C(),R("title",oL,A(n.title),1)):st("",!0)])],8,nL))],16,eL)}const rL=Pt(tL,[["render",sL]]),aL={class:"section network-infos"},lL={class:"row row--cards"},uL={class:"infobox"},cL={class:"interface-wrapper"},dL={class:"info"},hL={class:"info"},pL={class:"info"},fL={class:"info"},gL={class:"info"},mL={class:"info"},vL={class:"info"},yL=Et({__name:"SharesSection",props:{shares:{}},setup(t){return(e,n)=>(C(),R("div",aL,[q(Ge,{icon:rL,title:E(O)("serverinfo","Shares")},null,8,["title"]),y("div",lL,[y("div",null,[y("div",uL,[y("div",cL,[t.shares.num_shares_user>0?(C(),R(yt,{key:0},[bt(A(E(O)("serverinfo","Users:"))+" ",1),y("span",dL,A(t.shares.num_shares_user),1),n[0]||(n[0]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_shares_groups>0?(C(),R(yt,{key:1},[bt(A(E(O)("serverinfo","Groups:"))+" ",1),y("span",hL,A(t.shares.num_shares_groups),1),n[1]||(n[1]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_shares_link>0?(C(),R(yt,{key:2},[bt(A(E(O)("serverinfo","Links:"))+" ",1),y("span",pL,A(t.shares.num_shares_link),1),n[2]||(n[2]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_shares_mail>0?(C(),R(yt,{key:3},[bt(A(E(O)("serverinfo","Emails:"))+" ",1),y("span",fL,A(t.shares.num_shares_mail),1),n[3]||(n[3]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_fed_shares_sent>0?(C(),R(yt,{key:4},[bt(A(E(O)("serverinfo","Federated sent:"))+" ",1),y("span",gL,A(t.shares.num_fed_shares_sent),1),n[4]||(n[4]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_fed_shares_received>0?(C(),R(yt,{key:5},[bt(A(E(O)("serverinfo","Federated received:"))+" ",1),y("span",mL,A(t.shares.num_fed_shares_received),1),n[5]||(n[5]=y("br",null,null,-1))],64)):st("",!0),t.shares.num_shares_room>0?(C(),R(yt,{key:6},[bt(A(E(O)("serverinfo","Talk conversations:"))+" ",1),y("span",vL,A(t.shares.num_shares_room),1),n[6]||(n[6]=y("br",null,null,-1))],64)):st("",!0)])])])])]))}}),bL={class:"server-info-table"},_L={class:"info"},wL={class:"info"},xL={class:"info"},EL={class:"info"},CL=Et({__name:"SystemSection",props:{hostname:{},osname:{},cpu:{},servertime:{},uptime:{}},setup(t){return(e,n)=>(C(),R(yt,null,[q(Ge,{icon:m1,title:t.hostname},null,8,["title"]),y("div",bL,[y("table",null,[y("tbody",null,[y("tr",null,[y("td",null,A(E(O)("serverinfo","Operating System:")),1),y("td",_L,A(t.osname),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","CPU:")),1),y("td",wL,A(t.cpu.threads>0?E(O)("serverinfo","{name} ({threads} threads)",{name:t.cpu.name,threads:t.cpu.threads}):t.cpu.name),1)]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Server time:")),1),y("td",null,[y("span",xL,A(t.servertime),1)])]),y("tr",null,[y("td",null,A(E(O)("serverinfo","Uptime:")),1),y("td",null,[y("span",EL,A(t.uptime),1)])])])])])],64))}}),SL={name:"ThermometerIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},AL=["aria-hidden","aria-label"],kL=["fill","width","height"],TL={d:"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5V8H11V5A1 1 0 0 1 12 4Z"},DL={key:0};function OL(t,e,n,i,o,s){return C(),R("span",Lt(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon thermometer-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(C(),R("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[y("path",TL,[n.title?(C(),R("title",DL,A(n.title),1)):st("",!0)])],8,kL))],16,AL)}const $L=Pt(SL,[["render",OL]]),RL={class:"server-info-table"},BL={class:"info temp"},PL=Et({__name:"ThermalSection",props:{thermalzones:{}},setup(t){return(e,n)=>(C(),R(yt,null,[q(Ge,{icon:$L,title:E(O)("serverinfo","Temperature")},null,8,["title"]),y("div",RL,[y("table",null,[y("tbody",null,[(C(!0),R(yt,null,Fe(t.thermalzones,i=>(C(),R("tr",{key:i.zone},[y("td",null,A(i.type)+":",1),y("td",null,[y("span",BL,A(Math.round(i.temp)),1),n[0]||(n[0]=bt("°C",-1))])]))),128))])])])],64))}}),NL=Pt(PL,[["__scopeId","data-v-cb3096fd"]]),LL={class:"status-view"},FL={class:"section server-infos-two"},VL={class:"row"},jL={class:"section server-infos-two"},UL={class:"row"},IL={key:1,class:"section"},zL={class:"section php-opcache"},HL={class:"row"},JL={class:"section"},WL={class:"row"},GL={class:"section server-infos-two"},KL={class:"row"},qL={class:"section server-infos-two"},XL={class:"row"},YL={class:"section php-opcache"},ZL={class:"row"},QL={class:"section"},ML={class:"row"},tF=Et({__name:"StatusView",props:{staticData:{},staticError:{type:Boolean},liveData:{},tick:{}},setup(t){const e=t,n=rt(()=>{const i=e.liveData?.cpu.load;return Array.isArray(i)&&i.length>0?i:!1});return(i,o)=>(C(),R("div",LL,[t.staticData?(C(),R(yt,{key:0},[y("div",FL,[y("div",VL,[y("div",null,[q(CL,{hostname:t.staticData.hostname,osname:t.staticData.osname,cpu:t.staticData.cpu,servertime:t.liveData?.servertime??"",uptime:t.liveData?.uptime??""},null,8,["hostname","osname","cpu","servertime","uptime"])]),y("div",null,[t.liveData?(C(),ct(MN,{key:0,cpuload:n.value,cpunum:t.staticData.cpu.threads,memTotal:t.liveData.memory.total,memFree:t.liveData.memory.free,swapTotal:t.liveData.memory.swap_total,swapFree:t.liveData.memory.swap_free},null,8,["cpuload","cpunum","memTotal","memFree","swapTotal","swapFree"])):(C(),ct(Ye,{key:1}))])])]),y("div",jL,[y("div",UL,[y("div",null,[t.liveData?(C(),ct(S8,{key:0,cpuload:n.value,cpunum:t.staticData.cpu.threads,tick:t.tick},null,8,["cpuload","cpunum","tick"])):(C(),ct(Ye,{key:1}))]),y("div",null,[t.liveData?(C(),ct(yB,{key:0,memTotal:t.liveData.memory.total,memFree:t.liveData.memory.free,swapTotal:t.liveData.memory.swap_total,swapFree:t.liveData.memory.swap_free,tick:t.tick},null,8,["memTotal","memFree","swapTotal","swapFree","tick"])):(C(),ct(Ye,{key:1}))])])]),q(sB,{disks:t.staticData.diskinfo,freespace:t.staticData.freeSpace,storage:t.staticData.storage},null,8,["disks","freespace","storage"]),q(EP,{networkinfo:t.staticData.networkinfo,interfaces:t.staticData.networkinterfaces},null,8,["networkinfo","interfaces"]),q(d8,{activeUsers:t.staticData.activeUsers,numUsers:t.staticData.storage.num_users},null,8,["activeUsers","numUsers"]),t.staticData.shares.num_shares>0?(C(),ct(yL,{key:0,shares:t.staticData.shares},null,8,["shares"])):st("",!0),!t.liveData||t.liveData.thermalzones.length>0?(C(),R("div",IL,[t.liveData?(C(),ct(NL,{key:1,thermalzones:t.liveData.thermalzones},null,8,["thermalzones"])):(C(),ct(Ye,{key:0}))])):st("",!0),y("div",zL,[y("div",HL,[y("div",null,[q(zN,{php:t.staticData.php,fpm:t.staticData.fpm,phpinfo:t.staticData.phpinfo,phpinfoUrl:t.staticData.phpinfoUrl},null,8,["php","fpm","phpinfo","phpinfoUrl"])]),y("div",null,[q(nN,{opcache:t.staticData.opcache},null,8,["opcache"])])])]),y("div",JL,[y("div",WL,[y("div",null,[q(O8,{database:t.staticData.database},null,8,["database"])])])]),q(sP,{ocs:t.staticData.ocs},null,8,["ocs"])],64)):t.staticError?st("",!0):(C(),R(yt,{key:1},[y("div",GL,[y("div",KL,[y("div",null,[q(Ye)]),y("div",null,[q(Ye)])])]),y("div",qL,[y("div",XL,[y("div",null,[q(Ye)]),y("div",null,[q(Ye)])])]),q(Ye),q(Ye),y("div",YL,[y("div",ZL,[y("div",null,[q(Ye)]),y("div",null,[q(Ye)])])]),y("div",QL,[y("div",ML,[y("div",null,[q(Ye)])])])],64))]))}});function $g(t,e=2e3){const n=Rt(null),i=Rt(0),o=Rt(0),s=Rt(null),r=6e4;let a=null,l=!1,c=!1;async function u(){a=null,c=!0;try{const v=await Cn.get(Qi(t));n.value=v.data,i.value++,o.value=0,s.value=new Date}catch{o.value++}finally{c=!1,d()}}function d(){l||document.hidden||a!==null||(a=setTimeout(u,p()))}function p(){return o.value===0?e:Math.min(e*2**o.value,r)}function f(){document.hidden?a!==null&&(clearTimeout(a),a=null):c||u()}return document.addEventListener("visibilitychange",f),a=setTimeout(u,0),Dn(()=>{l=!0,document.removeEventListener("visibilitychange",f),a!==null&&(clearTimeout(a),a=null)}),{data:n,tick:i,failures:o,lastUpdated:s}}function eF(){const t=Rt(null),e=Rt(!0),n=Rt(!1);async function i(){e.value=!0,n.value=!1;try{const o=await Cn.get(Qi("/apps/serverinfo/data"));t.value=o.data}catch{n.value=!0}finally{e.value=!1}}return i(),{data:t,loading:e,error:n,reload:i}}const nF={class:"server-info-wrapper"},iF=Et({name:"ServerInfo",__name:"SettingsAdmin",setup(t){const e=["status","database","background-jobs"];function n(){const g=window.location.hash.replace(/^#/,"");return e.includes(g)?g:"status"}const i=Rt(n());ke(i,g=>{window.history.replaceState(null,"",`#${g}`)});function o(){i.value=n()}window.addEventListener("hashchange",o),Dn(()=>{window.removeEventListener("hashchange",o)});const{data:s,error:r,reload:a}=eF(),{data:l,tick:c,failures:u,lastUpdated:d}=$g("/apps/serverinfo/update"),{data:p,failures:f}=$g("/apps/serverinfo/periodic",6e4),v=rt(()=>u.value>=2||f.value>=2);return(g,w)=>(C(),R("div",nF,[E(r)?(C(),ct(E(Si),{key:0,type:"error",class:"server-info-notice"},{default:dt(()=>[y("p",null,A(E(O)("serverinfo","The server information could not be loaded.")),1),q(E(Se),{onClick:E(a)},{default:dt(()=>[bt(A(E(O)("serverinfo","Try again")),1)]),_:1},8,["onClick"])]),_:1})):v.value?(C(),ct(E(Si),{key:1,type:"warning",class:"server-info-notice"},{default:dt(()=>[E(d)?(C(),R(yt,{key:0},[bt(A(E(O)("serverinfo","These values stopped updating at {time}: the server is not responding.",{time:E(d).toLocaleTimeString()})),1)],64)):(C(),R(yt,{key:1},[bt(A(E(O)("serverinfo","The live values could not be loaded: the server is not responding.")),1)],64))]),_:1})):st("",!0),q(t2,{modelValue:i.value,"onUpdate:modelValue":w[0]||(w[0]=b=>i.value=b)},null,8,["modelValue"]),Sn(q(tF,{staticData:E(s),staticError:E(r),liveData:E(l),tick:E(c)},null,8,["staticData","staticError","liveData","tick"]),[[Mn,i.value==="status"]]),Sn(q(GR,{active:i.value==="database"},null,8,["active"]),[[Mn,i.value==="database"]]),Sn(q(wS,{periodicData:E(p)},null,8,["periodicData"]),[[Mn,i.value==="background-jobs"]])]))}}),oF=Pt(iF,[["__scopeId","data-v-4daaaea0"]]);Ow(oF).mount("#serverinfo-settings"); //# sourceMappingURL=serverinfo-main.mjs.map diff --git a/js/serverinfo-main.mjs.map b/js/serverinfo-main.mjs.map index a0e16247..00129ff1 100644 --- a/js/serverinfo-main.mjs.map +++ b/js/serverinfo-main.mjs.map @@ -1 +1 @@ -{"version":3,"file":"serverinfo-main.mjs","sources":["../node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../node_modules/@vue/shared/dist/shared.esm-bundler.js","../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../node_modules/@nextcloud/router/dist/index.mjs","../node_modules/dompurify/dist/purify.es.mjs","../node_modules/escape-html/index.js","../node_modules/@nextcloud/l10n/dist/chunks/translation-DoG5ZELJ.mjs","../node_modules/@nextcloud/l10n/dist/index.mjs","../node_modules/vue-router/dist/useApi-BPuI6ZR9.js","../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/legacy.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcFormBox.mjs","../node_modules/@nextcloud/vue/dist/chunks/_plugin-vue_export-helper.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcButton.mjs","../node_modules/@nextcloud/vue/dist/chunks/mdi.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconSvgWrapper.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcNoteCard.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBox.mjs","../node_modules/@nextcloud/vue/dist/chunks/createElementId.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormGroup.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcRadioGroup.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRadioGroup.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRadioGroupButton.mjs","../node_modules/vue-material-design-icons/Database.vue","../node_modules/vue-material-design-icons/Monitor.vue","../node_modules/vue-material-design-icons/Update.vue","../src/components/SettingsNavigation.vue","../node_modules/@nextcloud/l10n/dist/gettext.mjs","../node_modules/@nextcloud/vue/dist/chunks/_l10n.mjs","../node_modules/@nextcloud/vue/dist/composables/useFormatDateTime/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang.mjs","../node_modules/@vueuse/shared/dist/index.js","../node_modules/@vueuse/core/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/NcLoadingIcon.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang.mjs","../node_modules/tabbable/dist/index.esm.js","../node_modules/focus-trap/dist/focus-trap.esm.js","../node_modules/@nextcloud/vue/dist/chunks/focusTrap.mjs","../node_modules/@nextcloud/vue/dist/chunks/useTrapStackControl.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/floating-vue/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../node_modules/floating-vue/dist/floating-vue.mjs","../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/re.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/major.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/valid.js","../node_modules/@nextcloud/event-bus/dist/index.mjs","../node_modules/@nextcloud/browser-storage/dist/ScopedStorage.js","../node_modules/@nextcloud/browser-storage/dist/StorageBuilder.js","../node_modules/@nextcloud/browser-storage/dist/index.js","../node_modules/@nextcloud/auth/dist/index.mjs","../node_modules/@nextcloud/logger/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/logger.mjs","../node_modules/@nextcloud/vue/dist/chunks/rtl.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcPopover.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcActions.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActions.mjs","../node_modules/@nextcloud/vue/dist/chunks/platform.mjs","../node_modules/@nextcloud/vue/dist/composables/useHotKey/index.mjs","../node_modules/@nextcloud/vue/dist/functions/isDarkTheme/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsFullscreen/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsMobile/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcModal.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialog.mjs","../src/components/JobStatusIndicator.vue","../src/utils.ts","../src/components/JobRunDialog.vue","../node_modules/vue-material-design-icons/InformationOutline.vue","../src/components/JobRunsTable.vue","../src/components/SectionHeading.vue","../src/components/SlowJobsTable.vue","../src/components/StatTile.vue","../src/components/BackgroundJobsSection.vue","../src/components/SectionSkeleton.vue","../src/views/BackgroundJobsView.vue","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/sanitizeHeaderValue.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../node_modules/@nextcloud/axios/dist/client.js","../node_modules/@nextcloud/axios/dist/interceptors/csrf-token.js","../node_modules/@nextcloud/axios/dist/interceptors/maintenance-mode.js","../node_modules/@nextcloud/axios/dist/interceptors/not-logged-in.js","../node_modules/@nextcloud/axios/dist/index.js","../node_modules/vue-material-design-icons/Cog.vue","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/dist/chunks/helpers.dataset.js","../node_modules/chart.js/dist/chart.js","../node_modules/vue-chartjs/dist/index.js","../src/components/DatabaseLiveCharts.vue","../node_modules/vue-material-design-icons/CodeJson.vue","../src/components/DatabaseRuleCard.vue","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/@nextcloud/vue-select/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronDown.mjs","../node_modules/@nextcloud/vue/dist/chunks/Close.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcHighlight.vue_vue_type_script_lang.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEllipsisedOption.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputField.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelect.mjs","../src/components/DatabaseSettingsDialog.vue","../node_modules/vue-material-design-icons/Check.vue","../node_modules/vue-material-design-icons/ContentCopy.vue","../src/components/DatabaseSnippetDialog.vue","../src/views/DatabaseView.vue","../node_modules/vue-material-design-icons/AccountGroup.vue","../src/components/ActiveUsersSection.vue","../node_modules/vue-material-design-icons/Chip.vue","../src/components/CpuChartSection.vue","../src/components/DatabaseSection.vue","../node_modules/vue-material-design-icons/Harddisk.vue","../src/components/DiskSection.vue","../node_modules/vue-material-design-icons/Memory.vue","../src/components/MemoryChartSection.vue","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxItem.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxButton.mjs","../node_modules/@nextcloud/vue/dist/chunks/useCopy.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconToggleSwitch.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxSwitch.mjs","../node_modules/vue-material-design-icons/Connection.vue","../src/components/MonitoringSection.vue","../node_modules/vue-material-design-icons/Lan.vue","../src/components/NetworkSection.vue","../node_modules/vue-material-design-icons/Flash.vue","../node_modules/@nextcloud/vue/dist/chunks/NcProgressBar.mjs","../src/components/UsageMeterBar.vue","../src/components/OpcacheSection.vue","../node_modules/vue-material-design-icons/Cogs.vue","../node_modules/vue-material-design-icons/LanguagePhp.vue","../src/components/PhpExtensionsDialog.vue","../src/components/PhpSection.vue","../node_modules/vue-material-design-icons/Gauge.vue","../src/components/ResourceOverviewSection.vue","../node_modules/vue-material-design-icons/ShareVariant.vue","../src/components/SharesSection.vue","../src/components/SystemSection.vue","../node_modules/vue-material-design-icons/Thermometer.vue","../src/components/ThermalSection.vue","../src/views/StatusView.vue","../src/composables/useLiveData.ts","../src/composables/useStaticData.ts","../src/views/SettingsAdmin.vue","../src/main.ts"],"sourcesContent":["const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","/**\n* @vue/shared v3.5.42\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u000d\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^(?:-?>)+||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseCompareCollections(a, b) {\n if (a.size !== b.size) return false;\n const candidates = Array.from(b);\n const matched = new Uint8Array(candidates.length);\n for (const item of a) {\n let index = -1;\n for (let i = 0; i < candidates.length; i++) {\n if (!matched[i] && looseEqual(item, candidates[i])) {\n index = i;\n break;\n }\n }\n if (index < 0) return false;\n matched[index] = 1;\n }\n return true;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n aValidType = isMap(a);\n bValidType = isMap(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareCollections(a, b) : false;\n }\n aValidType = isSet(a);\n bValidType = isSet(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareCollections(a, b) : false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.42\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n const scopes = this.scopes.slice();\n for (i = 0, l = scopes.length; i < l; i++) {\n scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n const scopes = this.scopes.slice();\n for (i = 0, l = scopes.length; i < l; i++) {\n scopes[i].resume();\n }\n }\n const effects = this.effects.slice();\n for (i = 0, l = effects.length; i < l; i++) {\n effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n const scopes = this.scopes.slice();\n for (i = 0, l = scopes.length; i < l; i++) {\n scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver) && result) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return extend(\n // inheriting all iterator properties\n Object.create(innerIterator),\n {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n }\n }\n );\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return target.size;\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n const target = toRaw(this);\n const proto = getProto(target);\n const rawValue = toRaw(value);\n const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value;\n const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue);\n if (!hadKey) {\n target.add(valueToAdd);\n trigger(target, \"add\", valueToAdd, valueToAdd);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction reactive(target) {\n if (/* @__PURE__ */ isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n if (target[\"__v_skip\"] || !Object.isExtensible(target)) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = targetTypeMap(toRawType(target));\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReactive(value) {\n if (/* @__PURE__ */ isReadonly(value)) {\n return /* @__PURE__ */ isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? /* @__PURE__ */ toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;\n\n// @__NO_SIDE_EFFECTS__\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction ref(value) {\n return createRef(value, false);\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (/* @__PURE__ */ isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, key, _defaultValue) {\n this._object = _object;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n this._key = isSymbol(key) ? key : String(key);\n this._raw = toRaw(_object);\n let shallow = true;\n let obj = _object;\n if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) {\n do {\n shallow = !isProxy(obj) || isShallow(obj);\n } while (shallow && (obj = obj[\"__v_raw\"]));\n }\n this._shallow = shallow;\n }\n get value() {\n let val = this._object[this._key];\n if (this._shallow) {\n val = unref(val);\n }\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {\n const nestedRef = this._object[this._key];\n if (/* @__PURE__ */ isRef(nestedRef)) {\n nestedRef.value = newVal;\n return;\n }\n }\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(this._raw, this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRef(source, key, defaultValue) {\n if (/* @__PURE__ */ isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return /* @__PURE__ */ ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n return new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n const res = _cb(...args);\n watchHandle();\n return res;\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (immediateFirstRun || deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Map();\n if ((seen.get(value) || 0) >= depth) {\n return value;\n }\n seen.set(value, depth);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.42\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n for (let i = 0; i < cb.length; i++) {\n pendingPostFlushCbs.push(cb[i]);\n }\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n for (let i = 0; i < deduped.length; i++) {\n activePostFlushCbs.push(deduped[i]);\n }\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst setHmrUpdating = (v) => {\n try {\n return isHmrUpdating;\n } finally {\n isHmrUpdating = v;\n }\n};\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n const prevStackSize = blockStack.length;\n let res;\n try {\n res = fn(...args);\n } finally {\n for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst pendingMounts = /* @__PURE__ */ new WeakMap();\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment, parentNode }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n const mount = (vnode, container2, anchor2) => {\n if (vnode.shapeFlag & 16) {\n mountChildren(\n vnode.children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = (vnode = n2) => {\n const disabled2 = isTeleportDisabled(vnode.props);\n const target = vnode.target = resolveTarget(vnode.props, querySelector);\n const targetAnchor = prepareAnchor(target, vnode, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled2) {\n mount(vnode, target, targetAnchor);\n updateCssVars(vnode, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled2) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n };\n const queuePendingMount = (vnode) => {\n const mountJob = () => {\n if (pendingMounts.get(vnode) !== mountJob) return;\n pendingMounts.delete(vnode);\n if (isTeleportDisabled(vnode.props)) {\n const mountContainer = parentNode(vnode.el) || container;\n mount(vnode, mountContainer, vnode.anchor);\n updateCssVars(vnode, true);\n }\n mountToTarget(vnode);\n };\n pendingMounts.set(vnode, mountJob);\n queuePostRenderEffect(mountJob, parentSuspense);\n };\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {\n queuePendingMount(n2);\n return;\n }\n if (disabled) {\n mount(n2, container, mainAnchor);\n updateCssVars(n2, true);\n }\n mountToTarget();\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const pendingMount = pendingMounts.get(n1);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(n1);\n queuePendingMount(n2);\n return;\n }\n n2.targetStart = n1.targetStart;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = resolveTarget(n2.props, querySelector);\n if (nextTarget) {\n n2.target = nextTarget;\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n const disabled = isTeleportDisabled(props);\n const shouldRemove = doRemove || !disabled;\n const pendingMount = pendingMounts.get(vnode);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(vnode);\n }\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (!pendingMount && (disabled || target) && shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n function hydrateAnchor(target2, targetNode) {\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n }\n function hydrateDisabledTeleport(node2, vnode2) {\n vnode2.anchor = hydrateChildren(\n nextSibling(node2),\n vnode2,\n parentNode(node2),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n const disabled = isTeleportDisabled(vnode.props);\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n hydrateDisabledTeleport(node, vnode);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(\n target,\n vnode,\n createText,\n insert,\n // if target is the same as the main view, insert anchors before current node\n // to avoid hydrating mismatch\n parentNode(node) === target ? node : null\n );\n }\n } else {\n vnode.anchor = nextSibling(node);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n } else if (disabled) {\n if (vnode.shapeFlag & 16) {\n hydrateDisabledTeleport(node, vnode);\n vnode.targetStart = node;\n vnode.targetAnchor = nextSibling(node);\n }\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert, anchor = null) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target, anchor);\n insert(targetAnchor, target, anchor);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = /* @__PURE__ */ Symbol(\"_leaveCb\");\nconst enterCbKey = /* @__PURE__ */ Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n const child = children && children.length ? findNonCommentChild(children) : (\n // Keep explicit default-slot conditionals on the same transition path\n // as regular v-if branches, which render a comment placeholder.\n instance.subTree ? createCommentVNode() : void 0\n );\n if (!child) {\n return;\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n if (!isHmrUpdating && leavingVNodesCache[key] === vnode) return;\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n const done = el[enterCbKey].bind(null, false);\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n const done = el[leaveCbKey].bind(null, false);\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n const subTree = vnode.component.subTree;\n setTransitionHooks(\n isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,\n hooks\n );\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.component.subTree) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Static);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const {\n type,\n dynamicProps,\n props,\n patchFlag,\n shapeFlag,\n dirs,\n transition\n } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n const hasDynamicProps = !!dynamicProps;\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || hasDynamicProps || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n const cls = content.getAttribute(\"class\");\n if (cls) content.$cls = cls;\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && !isMismatchAllowed(el, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n logMismatchError();\n }\n while (next) {\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n const { textContent } = el;\n if (textContent !== clientText && // innerHTML normalize \\r\\n or \\r into a single \\n in the DOM\n textContent !== clientText.replace(/\\r\\n|\\r/g, \"\\n\")) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${textContent}\n - expected on client: ${clientText}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || hasDynamicProps || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n const namespace = el.namespaceURI.includes(\"svg\") ? \"svg\" : el.namespaceURI.includes(\"MathML\") ? \"mathml\" : void 0;\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {\n if (isUnchangedResourceProp(el, key, props[key])) {\n continue;\n }\n patchProp(el, key, null, props[key], namespace, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasCheckedMismatch = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!hasCheckedMismatch) {\n hasCheckedMismatch = true;\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n logMismatchError();\n }\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isNodeMismatchAllowed(node, vnode)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nconst resourceProps = /* @__PURE__ */ new Set([\"src\", \"srcset\", \"href\", \"poster\"]);\nfunction isUnchangedResourceProp(el, key, clientValue) {\n if (!resourceProps.has(key)) {\n return false;\n }\n return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (key === \"hidden\") {\n actual = normalizeHiddenValue(el.getAttribute(key));\n expected = normalizeHiddenValue(clientValue);\n } else if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction normalizeHiddenValue(value) {\n if (!isRenderableAttrValue(value)) {\n return false;\n }\n if (isString(value)) {\n return value.toLowerCase() === \"until-found\" ? \"until-found\" : \"\";\n }\n return includeBooleanAttr(value) ? \"\" : false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n return isMismatchAllowedByAttr(\n el && el.getAttribute(allowMismatchAttr),\n allowedType\n );\n}\nfunction isMismatchAllowedByAttr(allowedAttr, allowedType) {\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return list.includes(MismatchTypeString[allowedType]);\n }\n}\nfunction isNodeMismatchAllowed(node, vnode) {\n return isMismatchAllowed(node.parentElement, 1 /* CHILDREN */) || isMismatchAllowedByNode(node) || isMismatchAllowedByVNode(vnode);\n}\nfunction isMismatchAllowedByNode(node) {\n return node.nodeType === 1 && isMismatchAllowedByAttr(\n node.getAttribute(allowMismatchAttr),\n 1 /* CHILDREN */\n );\n}\nfunction isMismatchAllowedByVNode({ props }) {\n const allowedAttr = props && props[allowMismatchAttr];\n return typeof allowedAttr === \"string\" && isMismatchAllowedByAttr(allowedAttr, 1 /* CHILDREN */);\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n const wasConnected = el.isConnected;\n let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n if (!el.parentNode || wasConnected && !el.isConnected) return;\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n let timeoutTimer;\n let delayTimer;\n onUnmounted(() => {\n if (timeoutTimer != null) clearTimeout(timeoutTimer);\n if (delayTimer != null) clearTimeout(delayTimer);\n });\n if (delay) {\n delayTimer = setTimeout(() => {\n if (instance.isUnmounted) return;\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n timeoutTimer = setTimeout(() => {\n if (instance.isUnmounted) return;\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n if (instance.isUnmounted) return;\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n if (instance.isUnmounted) {\n pendingRequest = null;\n return;\n }\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createInnerComp(\n loadingComponent,\n instance\n );\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n instance2.__keepAliveStorageContainer = storageContainer;\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type\n );\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n const vnode = getInnerChild(instance.subTree);\n if (vnode.component) {\n cache.set(pendingCacheKey, vnode);\n }\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props, fallback, noSlotted, branchKey) {\n if (props == null) props = {};\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;\n const hasProps = Object.keys(slotProps).length > 0;\n if (name !== \"default\") slotProps.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", slotProps, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n const prevStackSize = blockStack.length;\n openBlock();\n let rendered;\n try {\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || branchKey || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n } catch (err) {\n for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();\n throw err;\n } finally {\n if (slot && slot._c) {\n slot._d = true;\n }\n }\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst resolveDevRootEl = (vnode) => {\n let found = false;\n while (true) {\n if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {\n const root = filterSingleRoot(vnode.children);\n if (!root) {\n return;\n }\n vnode = root;\n found = true;\n continue;\n }\n const component = vnode.component;\n if (component && component.subTree) {\n vnode = component.subTree;\n continue;\n }\n const suspense = vnode.suspense;\n if (suspense && suspense.activeBranch) {\n vnode = suspense.activeBranch;\n continue;\n }\n return found ? vnode.el : void 0;\n }\n};\nconst getDevRootFragmentEl = (i) => {\n const el = i.subTree && resolveDevRootEl(i.subTree);\n return el === void 0 ? i.vnode.el : el;\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => !!(process.env.NODE_ENV !== \"production\") ? getDevRootFragmentEl(i) : i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate ","\n\n","\n\n","\n\n\n\n\n\n","import { a as getLanguage, e as getPlural, t as translate, d as translatePlural } from \"./chunks/translation-DoG5ZELJ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass GettextWrapper {\n bundle;\n constructor(pluralFunction) {\n this.bundle = {\n pluralFunction,\n translations: {}\n };\n }\n /**\n * Append new translations to the wrapper.\n *\n * This is useful if translations should be added on demand,\n * e.g. depending on component usage.\n *\n * @param bundle - The new translation bundle to append\n */\n addTranslations(bundle) {\n const dict = Object.values(bundle.translations[\"\"] ?? {}).map(({ msgid, msgid_plural: msgidPlural, msgstr }) => {\n if (msgidPlural !== void 0) {\n return [`_${msgid}_::_${msgidPlural}_`, msgstr];\n }\n return [msgid, msgstr[0]];\n });\n this.bundle.translations = {\n ...this.bundle.translations,\n ...Object.fromEntries(dict)\n };\n }\n /**\n * Get translated string (singular form), optionally with placeholders\n *\n * @param original original string to translate\n * @param placeholders map of placeholder key to value\n */\n gettext(original, placeholders = {}) {\n return translate(\"\", original, placeholders, void 0, { bundle: this.bundle });\n }\n /**\n * Get translated string with plural forms\n *\n * @param singular Singular text form\n * @param plural Plural text form to be used if `count` requires it\n * @param count The number to insert into the text\n * @param placeholders optional map of placeholder key to value\n */\n ngettext(singular, plural, count, placeholders = {}) {\n return translatePlural(\"\", singular, plural, count, placeholders, { bundle: this.bundle });\n }\n}\nclass GettextBuilder {\n debug = false;\n language = \"en\";\n translations = {};\n setLanguage(language) {\n this.language = language;\n return this;\n }\n /**\n * Try to detect locale from context with `en` as fallback value\n * This only works within a Nextcloud page context.\n *\n * @deprecated use `detectLanguage` instead.\n */\n detectLocale() {\n return this.detectLanguage();\n }\n /**\n * Try to detect locale from context with `en` as fallback value.\n * This only works within a Nextcloud page context.\n */\n detectLanguage() {\n return this.setLanguage(getLanguage().replace(\"-\", \"_\"));\n }\n /**\n * Register a new translation bundle for a specified language.\n *\n * Please note that existing translations for that language will be overwritten.\n *\n * @param language - Language this is the translation for\n * @param data - The translation bundle\n */\n addTranslation(language, data) {\n this.translations[language] = data;\n return this;\n }\n enableDebugMode() {\n this.debug = true;\n return this;\n }\n build() {\n if (this.debug) {\n console.debug(`Creating gettext instance for language ${this.language}`);\n }\n const wrapper = new GettextWrapper((n) => getPlural(n, this.language));\n if (this.language in this.translations) {\n wrapper.addTranslations(this.translations[this.language]);\n }\n return wrapper;\n }\n}\nfunction getGettextBuilder() {\n return new GettextBuilder();\n}\nexport {\n getGettextBuilder\n};\n//# sourceMappingURL=gettext.mjs.map\n","import { getLanguage } from \"@nextcloud/l10n\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\n/*!\n * SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst gettext = getGettextBuilder().detectLanguage().build();\nconst n = (...args) => gettext.ngettext(...args);\nconst t = (...args) => gettext.gettext(...args);\nfunction register(...chunks) {\n for (const chunk of chunks) {\n if (chunk.registered) {\n continue;\n }\n for (const { l: language, t: translations } of chunk) {\n if (language !== getLanguage() || !translations) {\n continue;\n }\n const decompressed = Object.fromEntries(Object.entries(translations).map(([id, value]) => [\n id,\n {\n msgid: id,\n msgid_plural: value.p,\n msgstr: value.v\n }\n ]));\n gettext.addTranslations({\n translations: {\n \"\": decompressed\n }\n });\n }\n chunk.registered = true;\n }\n}\nconst t0 = [{ \"l\": \"ar\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (غير Ł…Ų±Ų¦ŁŠ)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (Ł…Ł‚ŁŠŲÆ)\"] }, \"Select a tag\": { \"v\": [\"Ų§Ų®ŲŖŲ± ŁˆŲ³Ł…\"] } } }, { \"l\": \"ast\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxóse)\"] }, \"Select a tag\": { \"v\": [\"Seleicionar una etiqueta\"] } } }, { \"l\": \"br\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (diwelus)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (bevennet)\"] }, \"Select a tag\": { \"v\": [\"Choaz ur c'hlav\"] } } }, { \"l\": \"ca\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringit)\"] }, \"Select a tag\": { \"v\": [\"Seleccioneu una etiqueta\"] } } }, { \"l\": \"cs\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditelnĆ©)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omezenĆ©)\"] }, \"Select a tag\": { \"v\": [\"Vybrat Å”tĆ­tek\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditelnĆ©)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omezenĆ©)\"] }, \"Select a tag\": { \"v\": [\"Vybrat Å”tĆ­tek\"] } } }, { \"l\": \"da\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (usynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (begrƦnset)\"] }, \"Select a tag\": { \"v\": [\"VƦlg et mƦrke\"] } } }, { \"l\": \"de\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (unsichtbar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschrƤnkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswƤhlen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (unsichtbar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschrƤnkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswƤhlen\"] } } }, { \"l\": \"el\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (Ī±ĻŒĻĪ±Ļ„Īæ)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (Ļ€ĪµĻĪ¹ĪæĻĪ¹ĻƒĪ¼Ī­Ī½Īæ)\"] }, \"Select a tag\": { \"v\": [\"Επιλογή ετικέτας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Select a tag\"] } } }, { \"l\": \"eo\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (kaŝita)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limigita)\"] }, \"Select a tag\": { \"v\": [\"Elektu etikedon\"] } } }, { \"l\": \"es\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione una etiqueta\"] } } }, { \"l\": \"es-AR\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Elija una etiqueta\"] } } }, { \"l\": \"es-EC\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"es-MX\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"et-EE\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nƤhtamatu)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (piiratud)\"] }, \"Select a tag\": { \"v\": [\"Vali silt\"] } } }, { \"l\": \"eu\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ikusezina)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (mugatua)\"] }, \"Select a tag\": { \"v\": [\"Hautatu etiketa bat\"] } } }, { \"l\": \"fa\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} Ł…Ų®ŁŪŒ\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} Ł…Ų­ŲÆŁˆŲÆ ؓده\"] }, \"Select a tag\": { \"v\": [\"انتخاب یک برچسب\"] } } }, { \"l\": \"fi\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nƤkymƤtƶn)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (rajoitettu)\"] }, \"Select a tag\": { \"v\": [\"Valitse tunniste\"] } } }, { \"l\": \"fr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restreint)\"] }, \"Select a tag\": { \"v\": [\"SĆ©lectionnez une balise\"] } } }, { \"l\": \"ga\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (dofheicthe)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (srianta)\"] }, \"Select a tag\": { \"v\": [\"Roghnaigh clib\"] } } }, { \"l\": \"gl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisĆ­bel)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione unha etiqueta\"] } } }, { \"l\": \"he\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (נהתר)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (מוגבל)\"] }, \"Select a tag\": { \"v\": [\"בחירת ×Ŗ×’×™×Ŗ\"] } } }, { \"l\": \"hr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nevidljivo)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ograničeno)\"] }, \"Select a tag\": { \"v\": [\"Odaberi oznaku\"] } } }, { \"l\": \"hu\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (lĆ”thatatlan)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (korlĆ”tozott)\"] }, \"Select a tag\": { \"v\": [\"VĆ”lasszon cĆ­mkĆ©t\"] } } }, { \"l\": \"id\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (tidak terlihat)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (dibatasi)\"] }, \"Select a tag\": { \"v\": [\"Pilih tag\"] } } }, { \"l\": \"is\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ósýnilegt)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (takmarkaư)\"] }, \"Select a tag\": { \"v\": [\"Veldu merki\"] } } }, { \"l\": \"it\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisibile)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limitato)\"] }, \"Select a tag\": { \"v\": [\"Seleziona un'etichetta\"] } } }, { \"l\": \"ja\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (äøåÆč¦–)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"ć‚æć‚°ć‚’éøęŠž\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (äøåÆč¦–)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"ć‚æć‚°ć‚’éøęŠž\"] } } }, { \"l\": \"ko\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag}(ģˆØź¹€)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag}(ģ œķ•œ)\"] }, \"Select a tag\": { \"v\": [\"태그 ģ„ ķƒ\"] } } }, { \"l\": \"lo\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ąŗšą»ą»ˆąŗŖąŗ°ą»ąŗ”ąŗ‡)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ąŗˆąŗ³ąŗąŗ±ąŗ”)\"] }, \"Select a tag\": { \"v\": [\"ເຄືອກແທັກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nematoma)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (apribota)\"] }, \"Select a tag\": { \"v\": [\"Pasirinkti žymą\"] } } }, { \"l\": \"lv\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neredzams)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ierobežots)\"] }, \"Select a tag\": { \"v\": [\"Izvēlēties birku\"] } } }, { \"l\": \"mk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невиГливо)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø ознака\"] } } }, { \"l\": \"mn\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ŅÆŠ» харагГах)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (Ń…ŃŠ·Š³Š°Š°Ń€Š»Š°Š³Š“Š¼Š°Š»)\"] }, \"Select a tag\": { \"v\": [\"Шошго сонгох\"] } } }, { \"l\": \"my\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (į€€į€½į€šį€ŗį€į€¾į€€į€ŗį€‘į€¬į€ø)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (į€€į€”į€ŗį€·į€žį€į€ŗ)\"] }, \"Select a tag\": { \"v\": [\"tag į€›į€½į€±į€øį€į€»į€šį€ŗį€›į€”į€ŗ\"] } } }, { \"l\": \"nb\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (usynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (beskyttet)\"] }, \"Select a tag\": { \"v\": [\"Velg en merkelapp\"] } } }, { \"l\": \"nl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (onzichtbaar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (beperkt)\"] }, \"Select a tag\": { \"v\": [\"Selecteer een label\"] } } }, { \"l\": \"oc\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limit)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"pl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (niewidoczna)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ograniczona)\"] }, \"Select a tag\": { \"v\": [\"Wybierz etykietę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisĆ­vel)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecione uma etiqueta\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisĆ­vel)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecionar uma etiqueta\"] } } }, { \"l\": \"ro\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invizibil)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricționat)\"] }, \"Select a tag\": { \"v\": [\"Selectați o etichetă\"] } } }, { \"l\": \"ru\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невиГимое)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограниченное)\"] }, \"Select a tag\": { \"v\": [\"Выберите Š¼ŠµŃ‚ŠŗŃƒ\"] } } }, { \"l\": \"sk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditeľný)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (obmedzený)\"] }, \"Select a tag\": { \"v\": [\"VybraÅ„ Å”tĆ­tok\"] } } }, { \"l\": \"sl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nevidno)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omejeno)\"] }, \"Select a tag\": { \"v\": [\"Izbor oznake\"] } } }, { \"l\": \"sr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невиГљиво)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€ŠøŃ‚Šµ ознаку\"] } } }, { \"l\": \"sv\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (osynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (begrƤnsad)\"] }, \"Select a tag\": { \"v\": [\"VƤlj en tagg\"] } } }, { \"l\": \"tr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (gƶrünmez)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (kısıtlanmış)\"] }, \"Select a tag\": { \"v\": [\"Bir etiket seƧin\"] } } }, { \"l\": \"uk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невиГимий)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (обмежений)\"] }, \"Select a tag\": { \"v\": [\"Š’ŠøŠ±ŠµŃ€Ń–Ń‚ŃŒ ŠæŠ¾Š·Š½Š°Ń‡ŠŗŃƒ\"] } } }, { \"l\": \"uz\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ko'rinmas)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (cheklangan)\"] }, \"Select a tag\": { \"v\": [\"Teg tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} ļ¼ˆéšč—ļ¼‰\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} ļ¼ˆå—é™ļ¼‰\"] }, \"Select a tag\": { \"v\": [\"选择一个标签\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (éš±č—)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag}ļ¼ˆéš±č—ļ¼‰\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag}ļ¼ˆå—é™ļ¼‰\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }];\nconst t1 = [{ \"l\": \"ar\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Ł„ŁˆŁ† ŲØŲ§Ł„Ł‚ŁŠŁ…Ų© الست عؓرية {hex}\"] }, \"Back\": { \"v\": [\"عودة\"] }, \"Choose\": { \"v\": [\"Ų„Ų®ŲŖŁŽŲ±\"] }, \"Color picker\": { \"v\": [\"لاقط Ų§Ł„Ų£Ł„ŁˆŲ§Ł†\"] }, \"More options\": { \"v\": [\"خيارات أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con un valor HEX {hex}\"] }, \"Back\": { \"v\": [\"AtrĆ”s\"] }, \"Choose\": { \"v\": [\"Escoyer\"] }, \"Color picker\": { \"v\": [\"Selector de colores\"] }, \"More options\": { \"v\": [\"MĆ”s opciones\"] } } }, { \"l\": \"br\", \"t\": { \"Choose\": { \"v\": [\"Dibab\"] } } }, { \"l\": \"ca\", \"t\": { \"Choose\": { \"v\": [\"Tria\"] } } }, { \"l\": \"cs\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Barva vyjĆ”dřenĆ” HEX hodnotou {hex}\"] }, \"Back\": { \"v\": [\"Zpět\"] }, \"Choose\": { \"v\": [\"Zvolit\"] }, \"Color picker\": { \"v\": [\"Výběr barev\"] }, \"More options\": { \"v\": [\"DalŔí volby\"] }, \"No color\": { \"v\": [\"ŽÔdnĆ” barva\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Barva vyjĆ”dřenĆ” HEX hodnotou {hex}\"] }, \"Back\": { \"v\": [\"Zpět\"] }, \"Choose\": { \"v\": [\"Zvolit\"] }, \"Color picker\": { \"v\": [\"Výběr barev\"] }, \"More options\": { \"v\": [\"DalŔí volby\"] } } }, { \"l\": \"da\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En farve med en HEX-vƦrdi {hex}\"] }, \"Back\": { \"v\": [\"Tilbage\"] }, \"Choose\": { \"v\": [\"VƦlg\"] }, \"Color picker\": { \"v\": [\"FarvevƦlger\"] }, \"More options\": { \"v\": [\"Flere muligheder\"] }, \"No color\": { \"v\": [\"Ingen farve\"] } } }, { \"l\": \"de\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Eine Farbe mit einem HEX-Wert {hex}\"] }, \"Back\": { \"v\": [\"Zurück\"] }, \"Choose\": { \"v\": [\"AuswƤhlen\"] }, \"Color picker\": { \"v\": [\"Farbauswahl\"] }, \"More options\": { \"v\": [\"Weitere Optionen\"] }, \"No color\": { \"v\": [\"Keine Farbe\"] } } }, { \"l\": \"de-DE\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Eine Farbe mit einem HEX-Wert {hex}\"] }, \"Back\": { \"v\": [\"Zurück\"] }, \"Choose\": { \"v\": [\"AuswƤhlen\"] }, \"Color picker\": { \"v\": [\"Farbauswahl\"] }, \"More options\": { \"v\": [\"Mehr Optionen\"] }, \"No color\": { \"v\": [\"Keine Farbe\"] } } }, { \"l\": \"el\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Ένα Ļ‡ĻĻŽĪ¼Ī± με τιμή HEX {hex}\"] }, \"Back\": { \"v\": [\"Ī•Ļ€Ī¹ĻƒĻ„ĻĪæĻ†Ī®\"] }, \"Choose\": { \"v\": [\"Επιλογή\"] }, \"Color picker\": { \"v\": [\"Επιλογέας Ļ‡ĻĻŽĪ¼Ī±Ļ„ĪæĻ‚\"] }, \"More options\": { \"v\": [\"Ī ĪµĻĪ¹ĻƒĻƒĻŒĻ„ĪµĻĪµĻ‚ επιλογές\"] }, \"No color\": { \"v\": [\"Χωρίς Ļ‡ĻĻŽĪ¼Ī±\"] } } }, { \"l\": \"en-GB\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"A colour with a HEX value {hex}\"] }, \"Back\": { \"v\": [\"Back\"] }, \"Choose\": { \"v\": [\"Choose\"] }, \"Color picker\": { \"v\": [\"Colour picker\"] }, \"More options\": { \"v\": [\"More options\"] }, \"No color\": { \"v\": [\"No colour\"] } } }, { \"l\": \"eo\", \"t\": { \"Choose\": { \"v\": [\"Elektu\"] } } }, { \"l\": \"es\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con un valor HEX {hex}\"] }, \"Back\": { \"v\": [\"AtrĆ”s\"] }, \"Choose\": { \"v\": [\"Escoger\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"MĆ”s opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con valor HEX {hex}\"] }, \"Back\": { \"v\": [\"AtrĆ”s\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"MĆ”s opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back\": { \"v\": [\"AtrĆ”s\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"More options\": { \"v\": [\"MĆ”s opciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con valor HEX {hex}\"] }, \"Back\": { \"v\": [\"AtrĆ”s\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"MĆ”s opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"VƤrv kuueteistkümnendarvuna {hex}\"] }, \"Back\": { \"v\": [\"Tagasi\"] }, \"Choose\": { \"v\": [\"Tee valik\"] }, \"Color picker\": { \"v\": [\"VƤrvivalija\"] }, \"More options\": { \"v\": [\"Rohkem valikuid\"] }, \"No color\": { \"v\": [\"VƤrv puudub\"] } } }, { \"l\": \"eu\", \"t\": { \"Back\": { \"v\": [\"Atzera\"] }, \"Choose\": { \"v\": [\"Aukeratu\"] }, \"More options\": { \"v\": [\"Aukera gehiago\"] } } }, { \"l\": \"fa\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Ų±Ł†ŚÆŪŒ ŲØŲ§ مقدار Ł…ŲØŁ†Ų§ŪŒ هؓت {hex}\"] }, \"Back\": { \"v\": [\"بازگؓت\"] }, \"Choose\": { \"v\": [\"انتخاب Ś©Ł†ŪŒŲÆ\"] }, \"Color picker\": { \"v\": [\"Ų§Ł†ŲŖŲ®Ų§ŲØā€ŒŚÆŲ± رنگ\"] }, \"More options\": { \"v\": [\"ŚÆŲ²ŪŒŁ†Ł‡ā€ŒŁ‡Ų§ŪŒ بیؓتر\"] } } }, { \"l\": \"fi\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"VƤri heksa-arvolla {hex}\"] }, \"Back\": { \"v\": [\"Takaisin\"] }, \"Choose\": { \"v\": [\"Valitse\"] }, \"Color picker\": { \"v\": [\"VƤrivalitsin\"] }, \"More options\": { \"v\": [\"LisƤƤ vaihtoehtoja\"] } } }, { \"l\": \"fr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Une couleur de valeur HEX {hex}\"] }, \"Back\": { \"v\": [\"Retour\"] }, \"Choose\": { \"v\": [\"Choisir\"] }, \"Color picker\": { \"v\": [\"SĆ©lecteur de couleurs\"] }, \"More options\": { \"v\": [\"Plus d'options\"] }, \"No color\": { \"v\": [\"Sans couleur\"] } } }, { \"l\": \"ga\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Dath le luach HEX {hex}\"] }, \"Back\": { \"v\": [\"Ar ais\"] }, \"Choose\": { \"v\": [\"Roghnaigh\"] }, \"Color picker\": { \"v\": [\"Roghnóir dathanna\"] }, \"More options\": { \"v\": [\"Tuilleadh roghanna\"] }, \"No color\": { \"v\": [\"Gan dath\"] } } }, { \"l\": \"gl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Unha cor cun valor HEX {hex}\"] }, \"Back\": { \"v\": [\"AtrĆ”s\"] }, \"Choose\": { \"v\": [\"Escoller\"] }, \"Color picker\": { \"v\": [\"Selector de cores\"] }, \"More options\": { \"v\": [\"MĆ”is opcións\"] }, \"No color\": { \"v\": [\"Sen cor\"] } } }, { \"l\": \"he\", \"t\": { \"Back\": { \"v\": [\"חזרה\"] }, \"Choose\": { \"v\": [\"בחירה\"] }, \"More options\": { \"v\": [\"אפשרויות נוהפות\"] } } }, { \"l\": \"hr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Boja s HEX vrijednoŔću {hex}\"] }, \"Back\": { \"v\": [\"Natrag\"] }, \"Choose\": { \"v\": [\"Odaberi\"] }, \"Color picker\": { \"v\": [\"Odabir boje\"] }, \"More options\": { \"v\": [\"ViÅ”e mogućnosti\"] }, \"No color\": { \"v\": [\"Bez boje\"] } } }, { \"l\": \"hu\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"SzĆ­n ezzel a HEX Ć©rtĆ©kkel: {hex}\"] }, \"Back\": { \"v\": [\"Vissza\"] }, \"Choose\": { \"v\": [\"VĆ”lassszon\"] }, \"Color picker\": { \"v\": [\"SzĆ­nvĆ”lasztó\"] }, \"More options\": { \"v\": [\"TovĆ”bbi lehetősĆ©gek\"] }, \"No color\": { \"v\": [\"Nincs szĆ­n\"] } } }, { \"l\": \"id\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Warna dengan nilai HEX {hex}\"] }, \"Back\": { \"v\": [\"Kembali\"] }, \"Choose\": { \"v\": [\"Pilih\"] }, \"Color picker\": { \"v\": [\"Pemilih warna\"] }, \"More options\": { \"v\": [\"Opsi lainnya\"] }, \"No color\": { \"v\": [\"Tanpa warna\"] } } }, { \"l\": \"is\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Litur meư HEX-gildi {hex}\"] }, \"Back\": { \"v\": [\"Til baka\"] }, \"Choose\": { \"v\": [\"Velja\"] }, \"Color picker\": { \"v\": [\"Litaplokkari\"] }, \"More options\": { \"v\": [\"Fleiri valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un colore con un valore HEX {hex}\"] }, \"Back\": { \"v\": [\"Indietro\"] }, \"Choose\": { \"v\": [\"Scegli\"] }, \"More options\": { \"v\": [\"Altre opzioni\"] } } }, { \"l\": \"ja\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\" HEX値 {hex} ć‚’ęŒć¤č‰²\"] }, \"Back\": { \"v\": [\"ęˆ»ć‚‹\"] }, \"Choose\": { \"v\": [\"éøęŠž\"] }, \"Color picker\": { \"v\": [\"ć‚«ćƒ©ćƒ¼ćƒ”ćƒƒć‚«ćƒ¼\"] }, \"More options\": { \"v\": [\"ä»–ć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³\"] }, \"No color\": { \"v\": [\"色なし\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\" HEX値 {hex} ć‚’ęŒć¤č‰²\"] }, \"Back\": { \"v\": [\"ęˆ»ć‚‹\"] }, \"Choose\": { \"v\": [\"éøęŠž\"] }, \"Color picker\": { \"v\": [\"ć‚«ćƒ©ćƒ¼ćƒ”ćƒƒć‚«ćƒ¼\"] }, \"More options\": { \"v\": [\"ä»–ć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³\"] } } }, { \"l\": \"ko\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX ź°’ģ“ {hex}ģø ģƒ‰ģƒ\"] }, \"Back\": { \"v\": [\"ė’¤ė”œ\"] }, \"Choose\": { \"v\": [\"ģ„ ķƒ\"] }, \"Color picker\": { \"v\": [\"ģƒ‰ģƒ ģ„ ķƒźø°\"] }, \"More options\": { \"v\": [\"ģ˜µģ…˜ ė” 볓기\"] }, \"No color\": { \"v\": [\"ģƒ‰ ģ—†ģŒ\"] } } }, { \"l\": \"lo\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"ąŗŖąŗµąŗ—ąŗµą»ˆąŗ”ąŗµąŗ„ą»ˆąŗ² HEX {hex}\"] }, \"Back\": { \"v\": [\"ąŗąŗ±ąŗšąŗ„ąŗ·ąŗ™\"] }, \"Choose\": { \"v\": [\"ເຄືອກ\"] }, \"Color picker\": { \"v\": [\"ໂຕເຄືອກສີ\"] }, \"More options\": { \"v\": [\"ąŗ•ąŗ»ąŗ§ą»€ąŗ„ąŗ·ąŗ­ąŗą»€ąŗžąŗµą»ˆąŗ”ą»€ąŗ•ąŗµąŗ”\"] }, \"No color\": { \"v\": [\"ąŗšą»ą»ˆąŗ”ąŗµąŗŖąŗµ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Spalva, kurios HEX reikÅ”mė yra {hex}\"] }, \"Back\": { \"v\": [\"Atgal\"] }, \"Choose\": { \"v\": [\"Pasirinkti\"] }, \"Color picker\": { \"v\": [\"Spalvos parinkiklis\"] }, \"More options\": { \"v\": [\"Daugiau parinkčių\"] }, \"No color\": { \"v\": [\"Be spalvos\"] } } }, { \"l\": \"lv\", \"t\": { \"Choose\": { \"v\": [\"Izvēlēties\"] } } }, { \"l\": \"mk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Š‘Š¾Ń˜Š° со HEX вреГност {hex}\"] }, \"Back\": { \"v\": [\"ŠŠ°Š·Š°Š“\"] }, \"Choose\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø\"] }, \"Color picker\": { \"v\": [\"Š˜Š·Š±Š¾Ń€ на боја\"] }, \"More options\": { \"v\": [\"Повеќе опции\"] }, \"No color\": { \"v\": [\"Без боја\"] } } }, { \"l\": \"mn\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"{hex} HEX ŃƒŃ‚Š³Š°Ń‚Š°Š¹ өнгө\"] }, \"Back\": { \"v\": [\"Š‘ŃƒŃ†Š°Ń…\"] }, \"Choose\": { \"v\": [\"Донгох\"] }, \"Color picker\": { \"v\": [\"Өнгө сонгогч\"] }, \"More options\": { \"v\": [\"ŠŃŠ¼ŃŠ»Ń‚ ŃŠ¾Š½Š³Š¾Š»Ń‚ŃƒŃƒŠ“\"] }, \"No color\": { \"v\": [\"Өнгөгүй\"] } } }, { \"l\": \"my\", \"t\": { \"Choose\": { \"v\": [\"į€›į€½į€±į€øį€į€»į€šį€ŗį€›į€”į€ŗ\"] } } }, { \"l\": \"nb\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En farge med en HEX-verdi {hex}\"] }, \"Back\": { \"v\": [\"Tilbake\"] }, \"Choose\": { \"v\": [\"Velg\"] }, \"Color picker\": { \"v\": [\"Fargevelger\"] }, \"More options\": { \"v\": [\"Flere alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Een kleur met een HEX-waarde {hex}\"] }, \"Back\": { \"v\": [\"Terug\"] }, \"Choose\": { \"v\": [\"Kiezen\"] }, \"Color picker\": { \"v\": [\"Kleurkiezer\"] }, \"More options\": { \"v\": [\"Meer opties\"] }, \"No color\": { \"v\": [\"Geen kleur\"] } } }, { \"l\": \"oc\", \"t\": { \"Choose\": { \"v\": [\"Causir\"] } } }, { \"l\": \"pl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Kolor o wartości HEX {hex}\"] }, \"Back\": { \"v\": [\"Wstecz\"] }, \"Choose\": { \"v\": [\"Wybierz\"] }, \"Color picker\": { \"v\": [\"Wybierz kolor\"] }, \"More options\": { \"v\": [\"Więcej opcji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Uma cor com valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Voltar\"] }, \"Choose\": { \"v\": [\"Escolher\"] }, \"Color picker\": { \"v\": [\"Seletor de cores\"] }, \"More options\": { \"v\": [\"Mais opƧƵes\"] }, \"No color\": { \"v\": [\"Sem cor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Uma cor com o valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Anterior\"] }, \"Choose\": { \"v\": [\"Escolher\"] }, \"Color picker\": { \"v\": [\"seletor de cores\"] }, \"More options\": { \"v\": [\"Mais opƧƵes\"] } } }, { \"l\": \"ro\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"O culoare Ć®n HEX value {hex}\"] }, \"Back\": { \"v\": [\"Ǝnapoi\"] }, \"Choose\": { \"v\": [\"Alegeți\"] }, \"More options\": { \"v\": [\"Mai multe opțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Цвет в HEX {hex}\"] }, \"Back\": { \"v\": [\"ŠŠ°Š·Š°Š“\"] }, \"Choose\": { \"v\": [\"Выберите\"] }, \"Color picker\": { \"v\": [\"Выбор цвета\"] }, \"More options\": { \"v\": [\"Š‘Š¾Š»ŃŒŃˆŠµ опций\"] }, \"No color\": { \"v\": [\"Без цвета\"] } } }, { \"l\": \"sk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Farba s hodnotou HEX {hex}\"] }, \"Back\": { \"v\": [\"Späń\"] }, \"Choose\": { \"v\": [\"VybraÅ„\"] }, \"Color picker\": { \"v\": [\"Výber farby\"] }, \"More options\": { \"v\": [\"Viac možnostĆ­\"] } } }, { \"l\": \"sl\", \"t\": { \"Choose\": { \"v\": [\"Izbor\"] } } }, { \"l\": \"sr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Š‘Š¾Ń˜Š° са HEX вреГности {hex}\"] }, \"Back\": { \"v\": [\"ŠŠ°Š·Š°Š“\"] }, \"Choose\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€ŠøŃ‚Šµ\"] }, \"Color picker\": { \"v\": [\"Бирач боје\"] }, \"More options\": { \"v\": [\"Још Š¾ŠæŃ†ŠøŃ˜Š°\"] }, \"No color\": { \"v\": [\"Без боје\"] } } }, { \"l\": \"sv\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En fƤrg med HEX-vƤrdet {hex}\"] }, \"Back\": { \"v\": [\"Tillbaka\"] }, \"Choose\": { \"v\": [\"VƤlj\"] }, \"Color picker\": { \"v\": [\"FƤrgvƤljare\"] }, \"More options\": { \"v\": [\"Fler alternativ\"] }, \"No color\": { \"v\": [\"Ingen fƤrg\"] } } }, { \"l\": \"tr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"{hex} onaltılık değeri ile bir renk \"] }, \"Back\": { \"v\": [\"Geri\"] }, \"Choose\": { \"v\": [\"SeƧin\"] }, \"Color picker\": { \"v\": [\"Renk seƧici\"] }, \"More options\": { \"v\": [\"Diğer seƧenekler\"] }, \"No color\": { \"v\": [\"Renk yok\"] } } }, { \"l\": \"uk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"ŠšŠ¾Š»Ń–Ń€ у форматі HEX {hex}\"] }, \"Back\": { \"v\": [\"ŠŠ°Š·Š°Š“\"] }, \"Choose\": { \"v\": [\"Š’ŠøŠ±ŠµŃ€Ń–Ń‚ŃŒ\"] }, \"Color picker\": { \"v\": [\"Вибір ŠŗŠ¾Š»ŃŒŠ¾Ń€Ńƒ\"] }, \"More options\": { \"v\": [\"Š‘Ń–Š»ŃŒŃˆŠµ об'єктів\"] } } }, { \"l\": \"uz\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX qiymatiga ega rang {hex}\"] }, \"Back\": { \"v\": [\"Orqaga\"] }, \"Choose\": { \"v\": [\"Tanlang\"] }, \"Color picker\": { \"v\": [\"Rang tanlagich\"] }, \"More options\": { \"v\": [\"Boshqa variantlar\"] }, \"No color\": { \"v\": [\"Rangsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"仄16čæ›åˆ¶ {hex} č”Øē¤ŗēš„é¢œč‰²äøŗ\"] }, \"Back\": { \"v\": [\"čæ”å›ž\"] }, \"Choose\": { \"v\": [\"选ꋩ\"] }, \"Color picker\": { \"v\": [\"é¢œč‰²ę‹¾å–å™Ø\"] }, \"More options\": { \"v\": [\"ę›“å¤šé€‰é”¹\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"å…·ęœ‰ HEX 值 {hex}ēš„é”č‰² \"] }, \"Back\": { \"v\": [\"čæ”å›ž\"] }, \"Choose\": { \"v\": [\"選擇\"] }, \"Color picker\": { \"v\": [\"é”č‰²éøę“‡å™Ø\"] }, \"More options\": { \"v\": [\"ę›“å¤šéøé …\"] }, \"No color\": { \"v\": [\"ē„”é”č‰²\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX 值為 {hex} ēš„é”č‰²\"] }, \"Back\": { \"v\": [\"čæ”å›ž\"] }, \"Choose\": { \"v\": [\"選擇\"] }, \"Color picker\": { \"v\": [\"č‰²å½©ęŒ‘éøå™Ø\"] }, \"More options\": { \"v\": [\"ę›“å¤šéøé …\"] }, \"No color\": { \"v\": [\"ę²’ęœ‰é”č‰²\"] } } }];\nconst t2 = [{ \"l\": \"ar\", \"t\": { \"a few seconds ago\": { \"v\": [\"منذ Ų¹ŲÆŲ© Ų«ŁˆŲ§Ł†Ł\"] }, \"sec. ago\": { \"v\": [\"Ų«Ų§Ł†ŁŠŲ© Ł…Ų¶ŲŖ\"] }, \"seconds ago\": { \"v\": [\"Ų«ŁˆŲ§Ł†Ł Ł…Ų¶ŲŖ\"] } } }, { \"l\": \"ast\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai unos segundos\"] }, \"sec. ago\": { \"v\": [\"hai segs\"] }, \"seconds ago\": { \"v\": [\"hai segundos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"Invalid date\": { \"v\": [\"NeplatnĆ© datum\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtĆ­m\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtĆ­m\"] } } }, { \"l\": \"da\", \"t\": { \"a few seconds ago\": { \"v\": [\"et par sekunder siden\"] }, \"Invalid date\": { \"v\": [\"Ugyldig dato\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"de\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"Invalid date\": { \"v\": [\"Ungültiges Datum\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"de-DE\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"Invalid date\": { \"v\": [\"Ungültiges Datum\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"el\", \"t\": { \"a few seconds ago\": { \"v\": [\"πριν λίγα Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī±\"] }, \"sec. ago\": { \"v\": [\"Γευτ. πριν\"] }, \"seconds ago\": { \"v\": [\"Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī± πριν\"] } } }, { \"l\": \"en-GB\", \"t\": { \"a few seconds ago\": { \"v\": [\"a few seconds ago\"] }, \"sec. ago\": { \"v\": [\"sec. ago\"] }, \"seconds ago\": { \"v\": [\"seconds ago\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos pocos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"segundos atrĆ”s\"] } } }, { \"l\": \"es-AR\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrĆ”s\"] }, \"seconds ago\": { \"v\": [\"segundos atrĆ”s\"] } } }, { \"l\": \"es-EC\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"Segundos atrĆ”s\"] } } }, { \"l\": \"es-MX\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrĆ”s\"] }, \"seconds ago\": { \"v\": [\"segundos atrĆ”s\"] } } }, { \"l\": \"et-EE\", \"t\": { \"a few seconds ago\": { \"v\": [\"mƵni sekund tagasi\"] }, \"Invalid date\": { \"v\": [\"Vigane kuupƤev\"] }, \"sec. ago\": { \"v\": [\"sek. tagasi\"] }, \"seconds ago\": { \"v\": [\"sekundit tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"a few seconds ago\": { \"v\": [\"duela segundo batzuk\"] }, \"sec. ago\": { \"v\": [\"duela seg.\"] }, \"seconds ago\": { \"v\": [\"duela segundo\"] } } }, { \"l\": \"fa\", \"t\": { \"a few seconds ago\": { \"v\": [\"چند Ų«Ų§Ł†ŪŒŁ‡ پیؓ\"] }, \"sec. ago\": { \"v\": [\"چند Ų«Ų§Ł†ŪŒŁ‡ پیؓ\"] }, \"seconds ago\": { \"v\": [\"چند Ų«Ų§Ł†ŪŒŁ‡ پیؓ\"] } } }, { \"l\": \"fi\", \"t\": { \"a few seconds ago\": { \"v\": [\"muutamia sekunteja sitten\"] }, \"sec. ago\": { \"v\": [\"sek. sitten\"] }, \"seconds ago\": { \"v\": [\"sekunteja sitten\"] } } }, { \"l\": \"fr\", \"t\": { \"a few seconds ago\": { \"v\": [\"il y a quelques instants\"] }, \"Invalid date\": { \"v\": [\"Date non valide\"] }, \"sec. ago\": { \"v\": [\"il y a qq. sec.\"] }, \"seconds ago\": { \"v\": [\"il y a quelques secondes\"] } } }, { \"l\": \"ga\", \"t\": { \"a few seconds ago\": { \"v\": [\"cĆŗpla soicind ó shin\"] }, \"sec. ago\": { \"v\": [\"soic. ó shin\"] }, \"seconds ago\": { \"v\": [\"soicind ó shin\"] } } }, { \"l\": \"gl\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai uns segundos\"] }, \"sec. ago\": { \"v\": [\"segs. atrĆ”s\"] }, \"seconds ago\": { \"v\": [\"segundos atrĆ”s\"] } } }, { \"l\": \"he\", \"t\": { \"a few seconds ago\": { \"v\": [\"לפני ×ž×”×¤×Ø שניות\"] }, \"sec. ago\": { \"v\": [\"לפני ×ž×”×¤×Ø שניות\"] }, \"seconds ago\": { \"v\": [\"לפני מה׳ שניות\"] } } }, { \"l\": \"hr\", \"t\": { \"a few seconds ago\": { \"v\": [\"prije nekoliko sekundi\"] }, \"sec. ago\": { \"v\": [\"prije nek. sek.\"] }, \"seconds ago\": { \"v\": [\"prije nek. sek.\"] } } }, { \"l\": \"hu\", \"t\": { \"a few seconds ago\": { \"v\": [\"nĆ©hĆ”ny mĆ”sodperce\"] }, \"sec. ago\": { \"v\": [\"mĆ”sodperce\"] }, \"seconds ago\": { \"v\": [\"mĆ”sodperce\"] } } }, { \"l\": \"id\", \"t\": { \"a few seconds ago\": { \"v\": [\"beberapa detik yang lalu\"] }, \"sec. ago\": { \"v\": [\"dtk. yang lalu\"] }, \"seconds ago\": { \"v\": [\"beberapa detik lalu\"] } } }, { \"l\": \"is\", \"t\": { \"a few seconds ago\": { \"v\": [\"fyrir ƶrfĆ”um sekĆŗndum sƭưan\"] }, \"sec. ago\": { \"v\": [\"sek. sƭưan\"] }, \"seconds ago\": { \"v\": [\"sekĆŗndum sƭưan\"] } } }, { \"l\": \"it\", \"t\": { \"a few seconds ago\": { \"v\": [\"pochi secondi fa\"] }, \"sec. ago\": { \"v\": [\"sec. fa\"] }, \"seconds ago\": { \"v\": [\"secondi fa\"] } } }, { \"l\": \"ja\", \"t\": { \"a few seconds ago\": { \"v\": [\"ę•°ē§’å‰\"] }, \"sec. ago\": { \"v\": [\"ē§’å‰\"] }, \"seconds ago\": { \"v\": [\"ę•°ē§’å‰\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"a few seconds ago\": { \"v\": [\"ę•°ē§’å‰\"] }, \"sec. ago\": { \"v\": [\"ē§’å‰\"] }, \"seconds ago\": { \"v\": [\"ę•°ē§’å‰\"] } } }, { \"l\": \"ko\", \"t\": { \"a few seconds ago\": { \"v\": [\"방금 ģ „\"] }, \"sec. ago\": { \"v\": [\"ėŖ‡ 쓈 ģ „\"] }, \"seconds ago\": { \"v\": [\"쓈 ģ „\"] } } }, { \"l\": \"lo\", \"t\": { \"a few seconds ago\": { \"v\": [\"ąŗŖąŗ­ąŗ‡ąŗŖąŗ²ąŗ”ąŗ§ąŗ“ąŗ™ąŗ²ąŗ—ąŗµąŗą»ˆąŗ­ąŗ™\"] }, \"sec. ago\": { \"v\": [\"ąŗ§ąŗ“. ąŗą»ˆąŗ­ąŗ™\"] }, \"seconds ago\": { \"v\": [\"ąŗ§ąŗ“ąŗ™ąŗ²ąŗ—ąŗµąŗą»ˆąŗ­ąŗ™\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"a few seconds ago\": { \"v\": [\"prieÅ” keletą sekundžių\"] }, \"sec. ago\": { \"v\": [\"prieÅ” sek.\"] }, \"seconds ago\": { \"v\": [\"prieÅ” sekundes\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"a few seconds ago\": { \"v\": [\"преГ неколку секунГи\"] }, \"sec. ago\": { \"v\": [\"секунГа\"] }, \"seconds ago\": { \"v\": [\"секунГи\"] } } }, { \"l\": \"mn\", \"t\": { \"a few seconds ago\": { \"v\": [\"Ń…ŃŠ“Ń…ŃŠ½ ŃŠµŠŗŃƒŠ½Š“Ń‹Š½ өмнө\"] }, \"sec. ago\": { \"v\": [\"сек. өмнө\"] }, \"seconds ago\": { \"v\": [\"ŃŠµŠŗŃƒŠ½Š“Ń‹Š½ өмнө\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"a few seconds ago\": { \"v\": [\"noen fĆ„ sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"nl\", \"t\": { \"a few seconds ago\": { \"v\": [\"enkele seconden geleden\"] }, \"sec. ago\": { \"v\": [\"sec. geleden\"] }, \"seconds ago\": { \"v\": [\"seconden geleden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"a few seconds ago\": { \"v\": [\"kilka sekund temu\"] }, \"sec. ago\": { \"v\": [\"sek. temu\"] }, \"seconds ago\": { \"v\": [\"sekund temu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"a few seconds ago\": { \"v\": [\"hĆ” alguns segundos\"] }, \"Invalid date\": { \"v\": [\"Data invĆ”lida\"] }, \"sec. ago\": { \"v\": [\"seg. atrĆ”s\"] }, \"seconds ago\": { \"v\": [\"segundos atrĆ”s\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"a few seconds ago\": { \"v\": [\"hĆ” alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrĆ”s\"] }, \"seconds ago\": { \"v\": [\"segundos atrĆ”s\"] } } }, { \"l\": \"ro\", \"t\": { \"a few seconds ago\": { \"v\": [\"acum cĆ¢teva secunde\"] }, \"sec. ago\": { \"v\": [\"sec. Ć®n urmă\"] }, \"seconds ago\": { \"v\": [\"secunde Ć®n urmă\"] } } }, { \"l\": \"ru\", \"t\": { \"a few seconds ago\": { \"v\": [\"несколько секунГ назаГ\"] }, \"sec. ago\": { \"v\": [\"сек. назаГ\"] }, \"seconds ago\": { \"v\": [\"секунГ назаГ\"] } } }, { \"l\": \"sk\", \"t\": { \"a few seconds ago\": { \"v\": [\"pred chvíľou\"] }, \"sec. ago\": { \"v\": [\"pred pĆ”r sekundami\"] }, \"seconds ago\": { \"v\": [\"pred sekundami\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"a few seconds ago\": { \"v\": [\"пре неколико секунГи\"] }, \"sec. ago\": { \"v\": [\"сек. Ń€Š°Š½ŠøŃ˜Šµ\"] }, \"seconds ago\": { \"v\": [\"секунГи Ń€Š°Š½ŠøŃ˜Šµ\"] } } }, { \"l\": \"sv\", \"t\": { \"a few seconds ago\": { \"v\": [\"fƶr nĆ„gra sekunder sedan\"] }, \"Invalid date\": { \"v\": [\"Ogiltigt datum\"] }, \"sec. ago\": { \"v\": [\"sek. sedan\"] }, \"seconds ago\": { \"v\": [\"sekunder sedan\"] } } }, { \"l\": \"tr\", \"t\": { \"a few seconds ago\": { \"v\": [\"birkaƧ saniye ƶnce\"] }, \"Invalid date\": { \"v\": [\"Tarih geƧersiz\"] }, \"sec. ago\": { \"v\": [\"sn. ƶnce\"] }, \"seconds ago\": { \"v\": [\"saniye ƶnce\"] } } }, { \"l\": \"uk\", \"t\": { \"a few seconds ago\": { \"v\": [\"Š“ŠµŠŗŃ–Š»ŃŒŠŗŠ° секунГ Ń‚Š¾Š¼Ńƒ\"] }, \"sec. ago\": { \"v\": [\"с Ń‚Š¾Š¼Ńƒ\"] }, \"seconds ago\": { \"v\": [\"с Ń‚Š¾Š¼Ńƒ\"] } } }, { \"l\": \"uz\", \"t\": { \"a few seconds ago\": { \"v\": [\"bir necha soniya oldin\"] }, \"sec. ago\": { \"v\": [\"sek. oldin\"] }, \"seconds ago\": { \"v\": [\"soniyalar oldin\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"a few seconds ago\": { \"v\": [\"å‡ ē§’å‰\"] }, \"sec. ago\": { \"v\": [\"å‡ ē§’å‰\"] }, \"seconds ago\": { \"v\": [\"å‡ ē§’å‰\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"a few seconds ago\": { \"v\": [\"å¹¾ē§’å‰\"] }, \"sec. ago\": { \"v\": [\"ē§’å‰\"] }, \"seconds ago\": { \"v\": [\"ē§’å‰\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"a few seconds ago\": { \"v\": [\"å¹¾ē§’å‰\"] }, \"sec. ago\": { \"v\": [\"ē§’å‰\"] }, \"seconds ago\": { \"v\": [\"ē§’å‰\"] } } }];\nconst t3 = [{ \"l\": \"ar\", \"t\": { \"Acapulco\": { \"v\": [\"ŲØŲ§Ų²Ł„Ų§Ų¦ŁŠ Ł…Ų·ŁŁŠ\"] }, \"Blue Violet\": { \"v\": [\"ŲØŁ†ŁŲ³Ų¬ŁŠ Ł…Ų“Ų¹Ų“Ų¹\"] }, \"Boston Blue\": { \"v\": [\"Ų³Ł…Ų§ŁˆŁŠ Ł…Ų·ŁŁŠ\"] }, \"Deluge\": { \"v\": [\"ŲØŁ†ŁŲ³Ų¬ŁŠ Ł…Ų·ŁŁŠ\"] }, \"Feldspar\": { \"v\": [\"وردي صخري\"] }, \"Gold\": { \"v\": [\"Ų°Ł‡ŲØŁŠ\"] }, \"Mariner\": { \"v\": [\"أزرق بحري\"] }, \"Nextcloud blue\": { \"v\": [\"أزرق Ł†ŁƒŲ³ŲŖ ŁƒŁ„Ų§ŁˆŲÆ\"] }, \"Olivine\": { \"v\": [\"زيتي\"] }, \"Purple\": { \"v\": [\"ŲØŁ†ŁŲ³Ų¬ŁŠ\"] }, \"Rosy brown\": { \"v\": [\"ŲØŁŁ†Ł‘ŁŁŠ Ų²Ł‡Ų±ŁŠ\"] }, \"Whiskey\": { \"v\": [\"Ł†ŲØŁŠŲ°ŁŠ\"] } } }, { \"l\": \"ast\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulcu\"] }, \"Blue Violet\": { \"v\": [\"Viola azulao\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oru\"] }, \"Mariner\": { \"v\": [\"Marineru\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"MorĆ”u\"] }, \"Rosy brown\": { \"v\": [\"Marrón arrosao\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"ČernĆ”\"] }, \"Blue Violet\": { \"v\": [\"ModrofialovĆ”\"] }, \"Boston Blue\": { \"v\": [\"BostonskĆ” modrĆ”\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"ŽivicovĆ”\"] }, \"Gold\": { \"v\": [\"ZlatĆ”\"] }, \"Mariner\": { \"v\": [\"NĆ”mořnickĆ”\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrĆ”\"] }, \"Olivine\": { \"v\": [\"OlivĆ­novĆ”\"] }, \"Purple\": { \"v\": [\"FialovĆ”\"] }, \"Rosy brown\": { \"v\": [\"RůžovohnědĆ”\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"BĆ­lĆ”\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Blue Violet\": { \"v\": [\"ModrofialovĆ”\"] }, \"Boston Blue\": { \"v\": [\"BostonskĆ” modrĆ”\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"ŽivicovĆ”\"] }, \"Gold\": { \"v\": [\"ZlatĆ”\"] }, \"Mariner\": { \"v\": [\"NĆ”mořnickĆ”\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrĆ”\"] }, \"Olivine\": { \"v\": [\"OlivĆ­novĆ”\"] }, \"Purple\": { \"v\": [\"FialovĆ”\"] }, \"Rosy brown\": { \"v\": [\"RůžovohnědĆ”\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"da\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Sort\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Hvid\"] } } }, { \"l\": \"de\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"el\", \"t\": { \"Acapulco\": { \"v\": [\"Ī‘ĪŗĪ±Ļ€ĪæĻĪ»ĪŗĪæ\"] }, \"Black\": { \"v\": [\"ĪœĪ±ĻĻĪæ\"] }, \"Blue Violet\": { \"v\": [\"ĪœĻ€Ī»Īµ Βιολέτ\"] }, \"Boston Blue\": { \"v\": [\"ĪœĻ€Ī»Īµ Ī’ĪæĻƒĻ„ĻŽĪ½Ī·Ļ‚\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Ī§ĻĻ…ĻƒĻŒ\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"ĪœĻ€Ī»Īµ Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"ĪœĻ‰Ī²\"] }, \"Rosy brown\": { \"v\": [\"Δοζ καφέ\"] }, \"Whiskey\": { \"v\": [\"ĪŸĻ…ĪÆĻƒĪŗĪ¹\"] }, \"White\": { \"v\": [\"Ī›ĪµĻ…ĪŗĻŒ\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Black\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Purple\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"White\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"PĆŗrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosĆ”ceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"PĆŗrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosĆ”ceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"PĆŗrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosĆ”ceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco meresinine\"] }, \"Black\": { \"v\": [\"Must\"] }, \"Blue Violet\": { \"v\": [\"Sinakasvioletne\"] }, \"Boston Blue\": { \"v\": [\"Bostoni rohekassinine\"] }, \"Deluge\": { \"v\": [\"Tulvavee lilla\"] }, \"Feldspar\": { \"v\": [\"PƵlevkivipruun\"] }, \"Gold\": { \"v\": [\"Kuldne\"] }, \"Mariner\": { \"v\": [\"Meresinine\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudi sinine\"] }, \"Olivine\": { \"v\": [\"Oliiviroheline\"] }, \"Purple\": { \"v\": [\"Purpurpunane\"] }, \"Rosy brown\": { \"v\": [\"Roosikarva pruun\"] }, \"Whiskey\": { \"v\": [\"Viskikarva kollakaspruun\"] }, \"White\": { \"v\": [\"Valge\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Acapulco\": { \"v\": [\"Ų¢Ś©Ų§Ł¾ŁˆŁ„Ś©Łˆ\"] }, \"Blue Violet\": { \"v\": [\"بنفؓ آبی\"] }, \"Boston Blue\": { \"v\": [\"آبی ŲØŁˆŲ³ŲŖŁˆŁ†ŪŒ\"] }, \"Deluge\": { \"v\": [\"Ų³ŪŒŁ„\"] }, \"Feldspar\": { \"v\": [\"فلدسپات\"] }, \"Gold\": { \"v\": [\"طلا\"] }, \"Mariner\": { \"v\": [\"Ł…Ų§Ų±ŪŒŁ†Ų±\"] }, \"Nextcloud blue\": { \"v\": [\"نکس Ś©Ł„ŁˆŲÆ آبی\"] }, \"Olivine\": { \"v\": [\"Ų§Ł„ŪŒŁˆŪŒŁ†\"] }, \"Purple\": { \"v\": [\"بنفؓ\"] }, \"Rosy brown\": { \"v\": [\"Ł‚Ł‡ŁˆŁ‡ā€ŒŲ§ŪŒ Ų±Ų²\"] }, \"Whiskey\": { \"v\": [\"ویسکی\"] } } }, { \"l\": \"fi\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Sinivioletti\"] }, \"Boston Blue\": { \"v\": [\"Bostoninsininen\"] }, \"Deluge\": { \"v\": [\"Tulva\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Kulta\"] }, \"Mariner\": { \"v\": [\"Merenkulkija\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudin sininen\"] }, \"Olivine\": { \"v\": [\"Oliviini\"] }, \"Purple\": { \"v\": [\"Purppura\"] }, \"Rosy brown\": { \"v\": [\"Ruusunruskea\"] }, \"Whiskey\": { \"v\": [\"Viski\"] } } }, { \"l\": \"fr\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Noir\"] }, \"Blue Violet\": { \"v\": [\"Bleu violet\"] }, \"Boston Blue\": { \"v\": [\"Bleu de Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"DorĆ©\"] }, \"Mariner\": { \"v\": [\"Marin\"] }, \"Nextcloud blue\": { \"v\": [\"Bleu Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Violet\"] }, \"Rosy brown\": { \"v\": [\"Brun rosĆ©\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Blanc\"] } } }, { \"l\": \"ga\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Dubh\"] }, \"Blue Violet\": { \"v\": [\"Gorm Violet\"] }, \"Boston Blue\": { \"v\": [\"BostĆŗn Gorm\"] }, \"Deluge\": { \"v\": [\"DĆ­le\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Ɠir\"] }, \"Mariner\": { \"v\": [\"MairnĆ©alach\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud gorm\"] }, \"Olivine\": { \"v\": [\"OlaivĆ­n\"] }, \"Purple\": { \"v\": [\"Corcra\"] }, \"Rosy brown\": { \"v\": [\"Rosach donn\"] }, \"Whiskey\": { \"v\": [\"Fuisce\"] }, \"White\": { \"v\": [\"BĆ”n\"] } } }, { \"l\": \"gl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Negro\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Dioivo\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marino\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"PĆŗrpura\"] }, \"Rosy brown\": { \"v\": [\"Pardo rosado\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Crna\"] }, \"Blue Violet\": { \"v\": [\"Plavoljubičasta\"] }, \"Boston Blue\": { \"v\": [\"Bostonsko plava\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Zlatna\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud plava\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Ljubičasta\"] }, \"Rosy brown\": { \"v\": [\"Ružičastosmeđa\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Bijela\"] } } }, { \"l\": \"hu\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Fekete\"] }, \"Blue Violet\": { \"v\": [\"KĆ©k ibolya\"] }, \"Boston Blue\": { \"v\": [\"Boston kĆ©k\"] }, \"Deluge\": { \"v\": [\"ƖzƶnvĆ­z\"] }, \"Feldspar\": { \"v\": [\"FƶldpĆ”t\"] }, \"Gold\": { \"v\": [\"Arany\"] }, \"Mariner\": { \"v\": [\"TengerĆ©sz\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud kĆ©k\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"RózsĆ”s barna\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"FehĆ©r\"] } } }, { \"l\": \"id\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Hitam\"] }, \"Blue Violet\": { \"v\": [\"Ungu kebiruan\"] }, \"Boston Blue\": { \"v\": [\"Biru Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Emas\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Biru Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Ungu\"] }, \"Rosy brown\": { \"v\": [\"Cokelat kemerahan\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Putih\"] } } }, { \"l\": \"is\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"BlĆ”klukka\"] }, \"Boston Blue\": { \"v\": [\"BostonblĆ”tt\"] }, \"Deluge\": { \"v\": [\"FjólublĆ”tt\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"SjóarablĆ”tt\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blĆ”tt\"] }, \"Olivine\": { \"v\": [\"ƓlivĆ­n\"] }, \"Purple\": { \"v\": [\"PurpurablĆ”tt\"] }, \"Rosy brown\": { \"v\": [\"RósabrĆŗnt\"] }, \"Whiskey\": { \"v\": [\"Viský\"] } } }, { \"l\": \"it\", \"t\": { \"Gold\": { \"v\": [\"Oro\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Purple\": { \"v\": [\"Viola\"] } } }, { \"l\": \"ja\", \"t\": { \"Acapulco\": { \"v\": [\"ć‚¢ć‚«ćƒ—ćƒ«ć‚³\"] }, \"Black\": { \"v\": [\"黒\"] }, \"Blue Violet\": { \"v\": [\"ćƒ–ćƒ«ćƒ¼ćƒć‚¤ć‚Ŗćƒ¬ćƒƒćƒˆ\"] }, \"Boston Blue\": { \"v\": [\"ćƒœć‚¹ćƒˆćƒ³ćƒ–ćƒ«ćƒ¼\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"é•·ēŸ³\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"čˆ¹ä¹—ć‚Š\"] }, \"Nextcloud blue\": { \"v\": [\"ćƒć‚Æć‚¹ćƒˆć‚Æćƒ©ć‚¦ćƒ‰ćƒ»ćƒ–ćƒ«ćƒ¼\"] }, \"Olivine\": { \"v\": [\"ć‚«ćƒ³ćƒ©ćƒ³ēŸ³\"] }, \"Purple\": { \"v\": [\"瓫色\"] }, \"Rosy brown\": { \"v\": [\"ćƒćƒ©č‰²\"] }, \"Whiskey\": { \"v\": [\"ć‚¦ć‚¤ć‚¹ć‚­ćƒ¼\"] }, \"White\": { \"v\": [\"白\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Acapulco\": { \"v\": [\"ć‚¢ć‚«ćƒ—ćƒ«ć‚³\"] }, \"Blue Violet\": { \"v\": [\"ćƒ–ćƒ«ćƒ¼ćƒć‚¤ć‚Ŗćƒ¬ćƒƒćƒˆ\"] }, \"Boston Blue\": { \"v\": [\"ćƒœć‚¹ćƒˆćƒ³ćƒ–ćƒ«ćƒ¼\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"é•·ēŸ³\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"čˆ¹ä¹—ć‚Š\"] }, \"Nextcloud blue\": { \"v\": [\"ćƒć‚Æć‚¹ćƒˆć‚Æćƒ©ć‚¦ćƒ‰ćƒ»ćƒ–ćƒ«ćƒ¼\"] }, \"Olivine\": { \"v\": [\"ć‚«ćƒ³ćƒ©ćƒ³ēŸ³\"] }, \"Purple\": { \"v\": [\"瓫色\"] }, \"Rosy brown\": { \"v\": [\"ćƒćƒ©č‰²\"] }, \"Whiskey\": { \"v\": [\"ć‚¦ć‚¤ć‚¹ć‚­ćƒ¼\"] } } }, { \"l\": \"ko\", \"t\": { \"Acapulco\": { \"v\": [\"아칓풀코\"] }, \"Black\": { \"v\": [\"검정\"] }, \"Blue Violet\": { \"v\": [\"푸넸 ė³“ė¼\"] }, \"Boston Blue\": { \"v\": [\"ė³“ģŠ¤ķ„“ 블루\"] }, \"Deluge\": { \"v\": [\"ķ­ģš°\"] }, \"Feldspar\": { \"v\": [\"ģž„ģ„\"] }, \"Gold\": { \"v\": [\"금\"] }, \"Mariner\": { \"v\": [\"ė±ƒģ‚¬ėžŒ\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud ķŒŒėž‘\"] }, \"Olivine\": { \"v\": [\"ź°ėžŒģ„\"] }, \"Purple\": { \"v\": [\"ė³“ė¼\"] }, \"Rosy brown\": { \"v\": [\"ė”œģ§€ ėøŒė¼ģš“\"] }, \"Whiskey\": { \"v\": [\"ģœ„ģŠ¤ķ‚¤\"] }, \"White\": { \"v\": [\"ķ•˜ģ–‘\"] } } }, { \"l\": \"lo\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"ສີດຳ\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"ສີຄຳ\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"ąŗŖąŗµąŗŸą»‰ąŗ² Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"ąŗŖąŗµąŗ”ą»ˆąŗ§ąŗ‡\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"ສີຂາວ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Acapulco\": { \"v\": ['\"Acapulco\"'] }, \"Black\": { \"v\": [\"Juoda\"] }, \"Blue Violet\": { \"v\": [\"Mėlyna-violetinė\"] }, \"Boston Blue\": { \"v\": ['\"Boston Blue\"'] }, \"Deluge\": { \"v\": ['\"Deluge\"'] }, \"Feldspar\": { \"v\": ['\"Feldspar\"'] }, \"Gold\": { \"v\": [\"Auksas\"] }, \"Mariner\": { \"v\": ['\"Mariner\"'] }, \"Nextcloud blue\": { \"v\": ['\"Nextcloud\" mėlyna'] }, \"Olivine\": { \"v\": ['\"Olivine\"'] }, \"Purple\": { \"v\": [\"Violetinė\"] }, \"Rosy brown\": { \"v\": [\"Rožiniai rudas\"] }, \"Whiskey\": { \"v\": ['\"Whiskey\"'] }, \"White\": { \"v\": [\"Balta\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Дино Виолетова\"] }, \"Boston Blue\": { \"v\": [\"Бостон Дина\"] }, \"Deluge\": { \"v\": [\"Š”ŠµŠ»ŃƒŃŸ\"] }, \"Feldspar\": { \"v\": [\"ФелГспар\"] }, \"Gold\": { \"v\": [\"Златна\"] }, \"Mariner\": { \"v\": [\"ŠœŠ°Ń€ŠøŠ½ŠµŃ€\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud сина\"] }, \"Olivine\": { \"v\": [\"ŠžŠ»ŠøŠ²ŠøŠ½\"] }, \"Purple\": { \"v\": [\"Виолетова\"] }, \"Rosy brown\": { \"v\": [\"Розево-кафеава\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бела\"] } } }, { \"l\": \"mn\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Black\": { \"v\": [\"Єар\"] }, \"Blue Violet\": { \"v\": [\"Š¦ŃŠ½Ń…ŃŃ€ ŃŠ³Š°Š°Š½\"] }, \"Boston Blue\": { \"v\": [\"Бостон Ń†ŃŠ½Ń…ŃŃ€\"] }, \"Deluge\": { \"v\": [\"Š”ŠµŠ»ŃŽŠ¶\"] }, \"Feldspar\": { \"v\": [\"Š¤ŠµŠ»ŃŒŠ“ŃŠæŠ°Ń€\"] }, \"Gold\": { \"v\": [\"Алтан\"] }, \"Mariner\": { \"v\": [\"ŠœŠ°Ń€ŠøŠ½ŠµŃ€\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Ń†ŃŠ½Ń…ŃŃ€\"] }, \"Olivine\": { \"v\": [\"ŠžŠ»ŠøŠ²ŠøŠ½\"] }, \"Purple\": { \"v\": [\"ŠŠøŠ» ŃŠ³Š°Š°Š½\"] }, \"Rosy brown\": { \"v\": [\"Ягаан бор\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Цагаан\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"BlĆ„ fiolett\"] }, \"Boston Blue\": { \"v\": [\"Boston blĆ„\"] }, \"Deluge\": { \"v\": [\"Syndflod\"] }, \"Feldspar\": { \"v\": [\"Feltspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blĆ„\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"RosenrĆød brun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"nl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Zwart\"] }, \"Blue Violet\": { \"v\": [\"Blauw Paars\"] }, \"Boston Blue\": { \"v\": [\"Boston Blauw\"] }, \"Deluge\": { \"v\": [\"Overlopen\"] }, \"Feldspar\": { \"v\": [\"Veldspaat\"] }, \"Gold\": { \"v\": [\"Goud\"] }, \"Mariner\": { \"v\": [\"Marineblauw\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blauw\"] }, \"Olivine\": { \"v\": [\"Olivijn\"] }, \"Purple\": { \"v\": [\"Paars\"] }, \"Rosy brown\": { \"v\": [\"Rozig bruin\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Wit\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Niebieski fiolet\"] }, \"Boston Blue\": { \"v\": [\"Błękit Bostonu\"] }, \"Deluge\": { \"v\": [\"Potop\"] }, \"Feldspar\": { \"v\": [\"Skaleń\"] }, \"Gold\": { \"v\": [\"Złote\"] }, \"Mariner\": { \"v\": [\"Marynarz\"] }, \"Nextcloud blue\": { \"v\": [\"Niebieskie Nextcloud\"] }, \"Olivine\": { \"v\": [\"Oliwin\"] }, \"Purple\": { \"v\": [\"Fioletowy\"] }, \"Rosy brown\": { \"v\": [\"Różowy brąz\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Preto\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marinheiro\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Roxo\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"UĆ­sque\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"PĆŗrpura\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"ro\", \"t\": { \"Gold\": { \"v\": [\"Aur\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud albastru\"] }, \"Purple\": { \"v\": [\"Purpuriu\"] } } }, { \"l\": \"ru\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Black\": { \"v\": [\"Черный\"] }, \"Blue Violet\": { \"v\": [\"Диний фиолет\"] }, \"Boston Blue\": { \"v\": [\"Диний Бостон\"] }, \"Deluge\": { \"v\": [\"ŠŸŠµŃ€Š»Š°Š¼ŃƒŃ‚Ń€Š¾Š²Š¾-фиолетовый\"] }, \"Feldspar\": { \"v\": [\"ŠŠ½Ń‚ŠøŃ‡Š½Š°Ń Š»Š°Ń‚ŃƒŠ½ŃŒ\"] }, \"Gold\": { \"v\": [\"Золотой\"] }, \"Mariner\": { \"v\": [\"ŠœŠ¾Ń€ŃŠŗŠ¾Š¹\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud голубой\"] }, \"Olivine\": { \"v\": [\" ŠžŠ»ŠøŠ²ŠŗŠ¾Š²Ń‹Š¹\"] }, \"Purple\": { \"v\": [\"Фиолетовый\"] }, \"Rosy brown\": { \"v\": [\"Розово-коричневый\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Белый\"] } } }, { \"l\": \"sk\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Modro fialovĆ”\"] }, \"Boston Blue\": { \"v\": [\"BostonskĆ” modrĆ”\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živec\"] }, \"Gold\": { \"v\": [\"ZlatĆ”\"] }, \"Mariner\": { \"v\": [\"NĆ”mornĆ­k\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrĆ”\"] }, \"Olivine\": { \"v\": [\"OlivovĆ”\"] }, \"Purple\": { \"v\": [\"FialovĆ”\"] }, \"Rosy brown\": { \"v\": [\"Ružovo hnedĆ”\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Плаво Ń™ŃƒŠ±ŠøŃ‡Š°ŃŃ‚Š°\"] }, \"Boston Blue\": { \"v\": [\"Бостон плава\"] }, \"Deluge\": { \"v\": [\"Поплава\"] }, \"Feldspar\": { \"v\": [\"ФелГспар\"] }, \"Gold\": { \"v\": [\"Злато\"] }, \"Mariner\": { \"v\": [\"ŠœŠ¾Ń€Š½Š°Ń€\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud плава\"] }, \"Olivine\": { \"v\": [\"ŠœŠ°ŃŠ»ŠøŠ½Š°ŃŃ‚Š°\"] }, \"Purple\": { \"v\": [\"ŠŸŃƒŃ€ŠæŃƒŃ€Š½Š°\"] }, \"Rosy brown\": { \"v\": [\"Роси браон\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бело\"] } } }, { \"l\": \"sv\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Svart\"] }, \"Blue Violet\": { \"v\": [\"BlĆ„violett\"] }, \"Boston Blue\": { \"v\": [\"BostonblĆ„\"] }, \"Deluge\": { \"v\": [\"Djuplila\"] }, \"Feldspar\": { \"v\": [\"FƤltspat\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"MarinblĆ„\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blĆ„\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosabrun\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Vit\"] } } }, { \"l\": \"tr\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Siyah\"] }, \"Blue Violet\": { \"v\": [\"Mavi mor\"] }, \"Boston Blue\": { \"v\": [\"Boston mavisi\"] }, \"Deluge\": { \"v\": [\"Sel\"] }, \"Feldspar\": { \"v\": [\"Feldispat\"] }, \"Gold\": { \"v\": [\"Altın\"] }, \"Mariner\": { \"v\": [\"Denizci\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud mavi\"] }, \"Olivine\": { \"v\": [\"Zeytinlik\"] }, \"Purple\": { \"v\": [\"Mor\"] }, \"Rosy brown\": { \"v\": [\"Kırmızımsı kahverengi\"] }, \"Whiskey\": { \"v\": [\"Viski\"] }, \"White\": { \"v\": [\"Beyaz\"] } } }, { \"l\": \"uk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Blue Violet\": { \"v\": [\"Блакитна фіалка\"] }, \"Boston Blue\": { \"v\": [\"Š‘Š¾ŃŃ‚Š¾Š½ŃŃŒŠŗŠøŠ¹ синій\"] }, \"Deluge\": { \"v\": [\"Злива\"] }, \"Feldspar\": { \"v\": [\"ŠŸŠ¾Š»ŃŒŠ¾Š²Ń– ŃˆŠæŠ°Ń‚Šø\"] }, \"Gold\": { \"v\": [\"Золотий\"] }, \"Mariner\": { \"v\": [\"ŠœŠ¾Ń€ŃŃŒŠŗŠøŠ¹\"] }, \"Nextcloud blue\": { \"v\": [\"Блакитний Nextcloud\"] }, \"Olivine\": { \"v\": [\"ŠžŠ»ŠøŠ²Š°\"] }, \"Purple\": { \"v\": [\"Фіолетовий\"] }, \"Rosy brown\": { \"v\": [\"Темно-рожевий\"] }, \"Whiskey\": { \"v\": [\"Кола\"] } } }, { \"l\": \"uz\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Qora\"] }, \"Blue Violet\": { \"v\": [\"Moviy binafsha\"] }, \"Boston Blue\": { \"v\": [\"Boston ko'k\"] }, \"Deluge\": { \"v\": [\"To'fon\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oltin\"] }, \"Mariner\": { \"v\": [\"Dengizchi\"] }, \"Nextcloud blue\": { \"v\": [\"Ko'k NextcloudĀ \"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Binafsha\"] }, \"Rosy brown\": { \"v\": [\"Qizil jigarrang\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Oq\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"ē“¦ē½—å…°ē‰¹č“\"] }, \"Boston Blue\": { \"v\": [\"ę³¢å£«é”æč“\"] }, \"Deluge\": { \"v\": [\"擪氓色\"] }, \"Feldspar\": { \"v\": [\"é•æēŸ³\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"갓ꉋ\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 蓝\"] }, \"Olivine\": { \"v\": [\"ę©„ę¦„ēŸ³č‰²\"] }, \"Purple\": { \"v\": [\"瓫色\"] }, \"Rosy brown\": { \"v\": [\"ēŽ«ē‘°ę£•č‰²\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Acapulco\": { \"v\": [\"é˜æå”ę™®ēˆ¾ē§‘\"] }, \"Black\": { \"v\": [\"黑色\"] }, \"Blue Violet\": { \"v\": [\"č—ē“«č‰²\"] }, \"Boston Blue\": { \"v\": [\"ę³¢å£«é “č—\"] }, \"Deluge\": { \"v\": [\"大擪氓\"] }, \"Feldspar\": { \"v\": [\"é•·ēŸ³\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"ęµ·č»č—\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud č—č‰²\"] }, \"Olivine\": { \"v\": [\"ę©„ę¬–ēŸ³č‰²\"] }, \"Purple\": { \"v\": [\"瓫色\"] }, \"Rosy brown\": { \"v\": [\"ēŽ«ē‘°ę£•č‰²\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] }, \"White\": { \"v\": [\"白色\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"黑色\"] }, \"Blue Violet\": { \"v\": [\"č—ē“«č‰²\"] }, \"Boston Blue\": { \"v\": [\"ę³¢å£«é “č—\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"é•·ēŸ³\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"ęµ·č»č—\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud č—č‰²\"] }, \"Olivine\": { \"v\": [\"ę©„ę¬–ēŸ³č‰²\"] }, \"Purple\": { \"v\": [\"瓫色\"] }, \"Rosy brown\": { \"v\": [\"ēŽ«ē‘°ę£•č‰²\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] }, \"White\": { \"v\": [\"白色\"] } } }];\nconst t4 = [{ \"l\": \"ar\", \"t\": { \"Actions\": { \"v\": [\"Ų„Ų¬Ų±Ų§Ų”Ų§ŲŖ\"] } } }, { \"l\": \"ast\", \"t\": { \"Actions\": { \"v\": [\"Aiciones\"] } } }, { \"l\": \"br\", \"t\": { \"Actions\": { \"v\": [\"Oberioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"cs\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"da\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"de\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"el\", \"t\": { \"Actions\": { \"v\": [\"Ενέργειες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"eo\", \"t\": { \"Actions\": { \"v\": [\"Agoj\"] } } }, { \"l\": \"es\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Actions\": { \"v\": [\"Tegevus\"] } } }, { \"l\": \"eu\", \"t\": { \"Actions\": { \"v\": [\"Ekintzak\"] } } }, { \"l\": \"fa\", \"t\": { \"Actions\": { \"v\": [\"Ś©Ł†Ų“ā€ŒŁ‡Ų§\"] } } }, { \"l\": \"fi\", \"t\": { \"Actions\": { \"v\": [\"Toiminnot\"] } } }, { \"l\": \"fr\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"ga\", \"t\": { \"Actions\": { \"v\": [\"GnĆ­omhartha\"] } } }, { \"l\": \"gl\", \"t\": { \"Actions\": { \"v\": [\"Accións\"] } } }, { \"l\": \"he\", \"t\": { \"Actions\": { \"v\": [\"×¤×¢×•×œ×•×Ŗ\"] } } }, { \"l\": \"hr\", \"t\": { \"Actions\": { \"v\": [\"Radnje\"] } } }, { \"l\": \"hu\", \"t\": { \"Actions\": { \"v\": [\"Műveletek\"] } } }, { \"l\": \"id\", \"t\": { \"Actions\": { \"v\": [\"Tindakan\"] } } }, { \"l\": \"is\", \"t\": { \"Actions\": { \"v\": [\"Aưgerưir\"] } } }, { \"l\": \"it\", \"t\": { \"Actions\": { \"v\": [\"Azioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Actions\": { \"v\": [\"ę“ä½œ\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Actions\": { \"v\": [\"ę“ä½œ\"] } } }, { \"l\": \"ko\", \"t\": { \"Actions\": { \"v\": [\"ė™ģž‘\"] } } }, { \"l\": \"lo\", \"t\": { \"Actions\": { \"v\": [\"ການກະທຳ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Actions\": { \"v\": [\"Veiksmai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Actions\": { \"v\": [\"Акции\"] } } }, { \"l\": \"mn\", \"t\": { \"Actions\": { \"v\": [\"ҮйлГлүүГ\"] } } }, { \"l\": \"my\", \"t\": { \"Actions\": { \"v\": [\"į€œį€Æį€•į€ŗį€†į€±į€¬į€„į€ŗį€į€»į€€į€ŗį€™į€»į€¬į€ø\"] } } }, { \"l\": \"nb\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Actions\": { \"v\": [\"Acties\"] } } }, { \"l\": \"oc\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"pl\", \"t\": { \"Actions\": { \"v\": [\"Działania\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Actions\": { \"v\": [\"AƧƵes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Actions\": { \"v\": [\"AƧƵes\"] } } }, { \"l\": \"ro\", \"t\": { \"Actions\": { \"v\": [\"Acțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"Actions\": { \"v\": [\"Š”ŠµŠ¹ŃŃ‚Š²ŠøŃ \"] } } }, { \"l\": \"sk\", \"t\": { \"Actions\": { \"v\": [\"Akcie\"] } } }, { \"l\": \"sl\", \"t\": { \"Actions\": { \"v\": [\"Dejanja\"] } } }, { \"l\": \"sr\", \"t\": { \"Actions\": { \"v\": [\"РаГње\"] } } }, { \"l\": \"sv\", \"t\": { \"Actions\": { \"v\": [\"ƅtgƤrder\"] } } }, { \"l\": \"tr\", \"t\": { \"Actions\": { \"v\": [\"İşlemler\"] } } }, { \"l\": \"uk\", \"t\": { \"Actions\": { \"v\": [\"Дії\"] } } }, { \"l\": \"uz\", \"t\": { \"Actions\": { \"v\": [\"Harakatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Actions\": { \"v\": [\"蔌为\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }];\nconst t5 = [{ \"l\": \"ar\", \"t\": { \"Activities\": { \"v\": [\"سجل الأنؓطة\"] }, \"Animals & Nature\": { \"v\": [\"Ų§Ł„Ų­ŁŠŁˆŲ§Ł†Ų§ŲŖ ŁˆŲ§Ł„Ų·ŲØŁŠŲ¹Ų©\"] }, \"Custom\": { \"v\": [\"Ł…ŁŲ®ŲµŁ‘ŁŽŲµ\"] }, \"Dark skin tone\": { \"v\": [\"أسمر Ų§Ł„ŲØŁŲ“Ų±Ų©\"] }, \"Emoji picker\": { \"v\": [\"لاقط Ų§Ł„Ų„ŁŠŁ…ŁˆŲ¬ŁŠ\"] }, \"Flags\": { \"v\": [\"الأعلام\"] }, \"Food & Drink\": { \"v\": [\"الطعام ŁˆŲ§Ł„Ų“Ų±Ų§ŲØ\"] }, \"Frequently used\": { \"v\": [\"Ų“Ų§Ų¦Ų¹Ų© الاستعمال\"] }, \"Light skin tone\": { \"v\": [\"فاتح Ų§Ł„ŲØŁŲ“Ų±Ų©\"] }, \"Medium dark skin tone\": { \"v\": [\"ŲØŲ“Ų±Ų© Ł…ŲŖŁˆŲ³Ų·Ų© الاسمرار\"] }, \"Medium light skin tone\": { \"v\": [\"ŲØŲ“Ų±Ų© Ł…ŲŖŁˆŲ³Ų·Ų© Ų§Ł„ŲØŁŠŲ§Ų¶\"] }, \"Medium skin tone\": { \"v\": [\"ŲØŲ“Ų±Ų© وسطية Ų§Ł„Ł„ŁˆŁ†\"] }, \"Neutral skin color\": { \"v\": [\"Ł„ŁˆŁ† ŲØŁŲ“Ų±Ų© طبيعي\"] }, \"Objects\": { \"v\": [\"أؓياؔ\"] }, \"People & Body\": { \"v\": [\"Ų£Ų“Ų®Ų§Ųµ و Ų£Ų¬Ų³Ų§Ł…\"] }, \"Pick an emoji\": { \"v\": [\"Ų„Ų®ŲŖŁŽŲ± رمز Ų„ŁŠŁ…ŁˆŲ¬ŁŠ emoji\"] }, \"Search emoji\": { \"v\": [\"البحث عن Ų„ŁŠŁ…ŁˆŲ¬ŁŠ emoji\"] }, \"Search results\": { \"v\": [\"نتائج البحث\"] }, \"Selected\": { \"v\": [\"محدّدة\"] }, \"Skin tone\": { \"v\": [\"Ł„ŁˆŁ† Ų§Ł„ŲØŁŲ“Ų±Ų©\"] }, \"Smileys & Emotion\": { \"v\": [\"ŁˆŲ¬ŁˆŁ‡ŁŒ ضاحكة و Ł…Ų“Ų§Ų¹Ų±\"] }, \"Symbols\": { \"v\": [\"Ų±Ł…ŁˆŲ²\"] }, \"Travel & Places\": { \"v\": [\"سفر و Ų£Ł…Ų§ŁƒŁ†\"] } } }, { \"l\": \"ast\", \"t\": { \"Activities\": { \"v\": [\"Actividaes\"] }, \"Animals & Nature\": { \"v\": [\"Animales y natura\"] }, \"Custom\": { \"v\": [\"Personalizar\"] }, \"Dark skin tone\": { \"v\": [\"Tonu d'aspeutu escuru\"] }, \"Emoji picker\": { \"v\": [\"Selector de fustaxes\"] }, \"Flags\": { \"v\": [\"Banderes\"] }, \"Food & Drink\": { \"v\": [\"Cómida y bĆ©bora\"] }, \"Frequently used\": { \"v\": [\"D'usu frecuente\"] }, \"Light skin tone\": { \"v\": [\"Tonu d'aspeutu claru\"] }, \"Medium dark skin tone\": { \"v\": [\"Tonu d'aspeutu medio escuru\"] }, \"Medium light skin tone\": { \"v\": [\"Tonu d'aspeutu medio claru\"] }, \"Medium skin tone\": { \"v\": [\"Tonu d'aspeutu mediu\"] }, \"Neutral skin color\": { \"v\": [\"Color d'aspeutu neutral\"] }, \"Objects\": { \"v\": [\"Oxetos\"] }, \"People & Body\": { \"v\": [\"Persones y cuerpu\"] }, \"Pick an emoji\": { \"v\": [\"Escueyi un fustaxe\"] }, \"Search emoji\": { \"v\": [\"Buscar nos fustaxes\"] }, \"Search results\": { \"v\": [\"Resultaos de la busca\"] }, \"Selected\": { \"v\": [\"Na seleición\"] }, \"Skin tone\": { \"v\": [\"Tonu d'aspeutu\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrises y emociones\"] }, \"Symbols\": { \"v\": [\"SĆ­mbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes y llugares\"] } } }, { \"l\": \"br\", \"t\": { \"Activities\": { \"v\": [\"Oberiantizoù\"] }, \"Animals & Nature\": { \"v\": [\"Loened & Natur\"] }, \"Custom\": { \"v\": [\"PersonelaƱ\"] }, \"Flags\": { \"v\": [\"Bannieloù\"] }, \"Food & Drink\": { \"v\": [\"Boued & Evajoù\"] }, \"Frequently used\": { \"v\": [\"Implijet alies\"] }, \"Objects\": { \"v\": [\"Traoù\"] }, \"People & Body\": { \"v\": [\"Tud & Korf\"] }, \"Pick an emoji\": { \"v\": [\"Choaz un emoji\"] }, \"Search results\": { \"v\": [\"Disoc'hoù an enklask\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyioù & Fromoù\"] }, \"Symbols\": { \"v\": [\"Arouezioù\"] }, \"Travel & Places\": { \"v\": [\"Beaj & Lec'hioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Activities\": { \"v\": [\"Activitats\"] }, \"Animals & Nature\": { \"v\": [\"Animals i natura\"] }, \"Custom\": { \"v\": [\"Personalitzat\"] }, \"Flags\": { \"v\": [\"Marques\"] }, \"Food & Drink\": { \"v\": [\"Menjar i begudes\"] }, \"Frequently used\": { \"v\": [\"Utilitzats recentment\"] }, \"Objects\": { \"v\": [\"Objectes\"] }, \"People & Body\": { \"v\": [\"Persones i cos\"] }, \"Pick an emoji\": { \"v\": [\"Trieu un emoji\"] }, \"Search results\": { \"v\": [\"Resultats de cerca\"] }, \"Smileys & Emotion\": { \"v\": [\"Cares i emocions\"] }, \"Symbols\": { \"v\": [\"SĆ­mbols\"] }, \"Travel & Places\": { \"v\": [\"Viatges i llocs\"] } } }, { \"l\": \"cs\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"ZvĆ­Å™ata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určenĆ©\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"JĆ­dlo a pitĆ­\"] }, \"Frequently used\": { \"v\": [\"Často používanĆ©\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"StřednĆ­ tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"NeutrĆ”lnĆ­ tělovĆ” barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"LidĆ© a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledĆ”nĆ­\"] }, \"Selected\": { \"v\": [\"VybrĆ”no\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"CestovĆ”nĆ­ a mĆ­sta\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"ZvĆ­Å™ata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určenĆ©\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"JĆ­dlo a pitĆ­\"] }, \"Frequently used\": { \"v\": [\"Často používanĆ©\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"StřednĆ­ tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"NeutřÔlnĆ­ tělovĆ” barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"LidĆ© a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledĆ”nĆ­\"] }, \"Selected\": { \"v\": [\"VybrĆ”no\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"CestovĆ”nĆ­ a mĆ­sta\"] } } }, { \"l\": \"da\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr & Natur\"] }, \"Custom\": { \"v\": [\"Brugerdefineret\"] }, \"Dark skin tone\": { \"v\": [\"MĆørk skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji vƦlger\"] }, \"Flags\": { \"v\": [\"Flag\"] }, \"Food & Drink\": { \"v\": [\"Mad & Drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brugt\"] }, \"Light skin tone\": { \"v\": [\"Lys skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mĆørk skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium lys skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin color\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker & Menneskekroppen\"] }, \"Pick an emoji\": { \"v\": [\"VƦlg en emoji\"] }, \"Search emoji\": { \"v\": [\"SĆøg emoji\"] }, \"Search results\": { \"v\": [\"SĆøgeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Rejser & RejsemĆ„l\"] } } }, { \"l\": \"de\", \"t\": { \"Activities\": { \"v\": [\"AktivitƤten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"HƤufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Kƶrper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswƤhlen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"AusgewƤhlt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Activities\": { \"v\": [\"AktivitƤten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"HƤufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Kƶrper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswƤhlen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"AusgewƤhlt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"el\", \"t\": { \"Activities\": { \"v\": [\"Ī”ĻĪ±ĻƒĻ„Ī·ĻĪ¹ĻŒĻ„Ī·Ļ„ĪµĻ‚\"] }, \"Animals & Nature\": { \"v\": [\"Ī–ĻŽĪ± & Ī¦ĻĻƒĪ·\"] }, \"Custom\": { \"v\": [\"Προσαρμογή\"] }, \"Dark skin tone\": { \"v\": [\"Ī£ĪŗĪæĻĻĪæ θέμα\"] }, \"Emoji picker\": { \"v\": [\"Επιλογέας emoji\"] }, \"Flags\": { \"v\": [\"Σημαίες\"] }, \"Food & Drink\": { \"v\": [\"Ī¦Ī±Ī³Ī·Ļ„ĻŒ & Ī ĪæĻ„ĻŒ\"] }, \"Frequently used\": { \"v\": [\"Συχνά Ļ‡ĻĪ·ĻƒĪ¹Ī¼ĪæĻ€ĪæĪ¹ĪæĻĪ¼ĪµĪ½Īæ\"] }, \"Light skin tone\": { \"v\": [\"Ī‘Ī½ĪæĪ¹Ļ‡Ļ„ĻŒ θέμα\"] }, \"Medium dark skin tone\": { \"v\": [\"ĪœĪ­Ļ„ĻĪ¹Īæ ĻƒĪŗĪæĻĻĪæ θέμα\"] }, \"Medium light skin tone\": { \"v\": [\"ĪœĪ­Ļ„ĻĪ¹Īæ Ī±Ī½ĪæĪ¹Ļ‡Ļ„ĻŒ θέμα\"] }, \"Medium skin tone\": { \"v\": [\"ĪœĪ­Ļ„ĻĪ¹ĪæĻ‚ Ļ„ĻŒĪ½ĪæĻ‚ θέματος\"] }, \"Neutral skin color\": { \"v\": [\"ĪŸĻ…Ī“Ī­Ļ„ĪµĻĪæ Ļ‡ĻĻŽĪ¼Ī± θέματος\"] }, \"Objects\": { \"v\": [\"Αντικείμενα\"] }, \"People & Body\": { \"v\": [\"Άνθρωποι & Ī£ĻŽĪ¼Ī±\"] }, \"Pick an emoji\": { \"v\": [\"Επιλέξτε ένα emoji\"] }, \"Search emoji\": { \"v\": [\"Ī‘Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· emoji\"] }, \"Search results\": { \"v\": [\"Ī‘Ļ€ĪæĻ„ĪµĪ»Ī­ĻƒĪ¼Ī±Ļ„Ī± Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ·Ļ‚\"] }, \"Selected\": { \"v\": [\"Επιλεγμένο\"] }, \"Skin tone\": { \"v\": [\"Ī¤ĻŒĪ½ĪæĻ‚ Γέρματος\"] }, \"Smileys & Emotion\": { \"v\": [\"Ī¦Ī±Ļ„ĻƒĪæĻĪ»ĪµĻ‚ & Ī£Ļ…Ī½Ī±ĪÆĻƒĪøĪ·Ī¼Ī±\"] }, \"Symbols\": { \"v\": [\"Ī£ĻĪ¼Ī²ĪæĪ»Ī±\"] }, \"Travel & Places\": { \"v\": [\"ΤαξίΓια & Ī¤ĪæĻ€ĪæĪøĪµĻƒĪÆĪµĻ‚\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Activities\": { \"v\": [\"Activities\"] }, \"Animals & Nature\": { \"v\": [\"Animals & Nature\"] }, \"Custom\": { \"v\": [\"Custom\"] }, \"Dark skin tone\": { \"v\": [\"Dark skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji picker\"] }, \"Flags\": { \"v\": [\"Flags\"] }, \"Food & Drink\": { \"v\": [\"Food & Drink\"] }, \"Frequently used\": { \"v\": [\"Frequently used\"] }, \"Light skin tone\": { \"v\": [\"Light skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium dark skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium light skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin colour\"] }, \"Objects\": { \"v\": [\"Objects\"] }, \"People & Body\": { \"v\": [\"People & Body\"] }, \"Pick an emoji\": { \"v\": [\"Pick an emoji\"] }, \"Search emoji\": { \"v\": [\"Search emoji\"] }, \"Search results\": { \"v\": [\"Search results\"] }, \"Selected\": { \"v\": [\"Selected\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symbols\"] }, \"Travel & Places\": { \"v\": [\"Travel & Places\"] } } }, { \"l\": \"eo\", \"t\": { \"Activities\": { \"v\": [\"Aktiveco\"] }, \"Animals & Nature\": { \"v\": [\"Bestoj & Naturo\"] }, \"Custom\": { \"v\": [\"Propra\"] }, \"Flags\": { \"v\": [\"Flagoj\"] }, \"Food & Drink\": { \"v\": [\"Manĝaĵo & Trinkaĵo\"] }, \"Frequently used\": { \"v\": [\"Ofte uzataj\"] }, \"Objects\": { \"v\": [\"Objektoj\"] }, \"People & Body\": { \"v\": [\"Homoj & Korpo\"] }, \"Pick an emoji\": { \"v\": [\"Elekti emoĝion \"] }, \"Search results\": { \"v\": [\"Serĉrezultoj\"] }, \"Smileys & Emotion\": { \"v\": [\"Ridoj kaj Emocioj\"] }, \"Symbols\": { \"v\": [\"Signoj\"] }, \"Travel & Places\": { \"v\": [\"Vojaĵoj & Lokoj\"] } } }, { \"l\": \"es\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel obscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elegir un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la bĆŗsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys y emoticonos\"] }, \"Symbols\": { \"v\": [\"SĆ­mbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usados frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elija un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la bĆŗsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"SĆ­mbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Frecuentemente utilizado\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de bĆŗsqueda\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"SĆ­mbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usado frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y cuerpos\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la bĆŗsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"SĆ­mbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Activities\": { \"v\": [\"Tegevused\"] }, \"Animals & Nature\": { \"v\": [\"Loomad ja loodus\"] }, \"Custom\": { \"v\": [\"Kohanda\"] }, \"Dark skin tone\": { \"v\": [\"Kesta tume toon\"] }, \"Emoji picker\": { \"v\": [\"Emojide valija\"] }, \"Flags\": { \"v\": [\"Lipud\"] }, \"Food & Drink\": { \"v\": [\"Sƶƶk ja jook\"] }, \"Frequently used\": { \"v\": [\"Sageli kasutatud\"] }, \"Light skin tone\": { \"v\": [\"Kesta hele toon\"] }, \"Medium dark skin tone\": { \"v\": [\"Kesta keskmiselt tume toon\"] }, \"Medium light skin tone\": { \"v\": [\"Kesta keskmiselt hele toon\"] }, \"Medium skin tone\": { \"v\": [\"Kesta keskmine toon\"] }, \"Neutral skin color\": { \"v\": [\"Kesta neutraalne toon\"] }, \"Objects\": { \"v\": [\"Objektid\"] }, \"People & Body\": { \"v\": [\"Inimesed ja keha\"] }, \"Pick an emoji\": { \"v\": [\"Vali emoji\"] }, \"Search emoji\": { \"v\": [\"Otsi emojit\"] }, \"Search results\": { \"v\": [\"Otsi tulemustest\"] }, \"Selected\": { \"v\": [\"Valitud\"] }, \"Skin tone\": { \"v\": [\"Kesta toon\"] }, \"Smileys & Emotion\": { \"v\": [\"Smailid ja emotsioonid\"] }, \"Symbols\": { \"v\": [\"Sümbolid\"] }, \"Travel & Places\": { \"v\": [\"Reisimine ja kohad\"] } } }, { \"l\": \"eu\", \"t\": { \"Activities\": { \"v\": [\"Jarduerak\"] }, \"Animals & Nature\": { \"v\": [\"Animaliak eta Natura\"] }, \"Custom\": { \"v\": [\"Pertsonalizatua\"] }, \"Flags\": { \"v\": [\"Banderak\"] }, \"Food & Drink\": { \"v\": [\"Janaria eta edariak\"] }, \"Frequently used\": { \"v\": [\"Askotan erabilia\"] }, \"Objects\": { \"v\": [\"Objektuak\"] }, \"People & Body\": { \"v\": [\"Jendea eta gorputza\"] }, \"Pick an emoji\": { \"v\": [\"Hautatu emoji bat\"] }, \"Search emoji\": { \"v\": [\"Bilatu emojiak\"] }, \"Search results\": { \"v\": [\"Bilaketa emaitzak\"] }, \"Selected\": { \"v\": [\"Hautatuta\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyak eta emozioa\"] }, \"Symbols\": { \"v\": [\"Sinboloak\"] }, \"Travel & Places\": { \"v\": [\"Bidaiak eta lekuak\"] } } }, { \"l\": \"fa\", \"t\": { \"Activities\": { \"v\": [\"ŁŲ¹Ų§Ł„ŪŒŲŖā€ŒŁ‡Ų§\"] }, \"Animals & Nature\": { \"v\": [\"Ų­ŪŒŁˆŲ§Ł†Ų§ŲŖ و طبیعت\"] }, \"Custom\": { \"v\": [\"سفارؓی\"] }, \"Dark skin tone\": { \"v\": [\"رنگ Ł¾ŁˆŲ³ŲŖŁ‡ ŲŖŪŒŲ±Ł‡\"] }, \"Emoji picker\": { \"v\": [\"Ų§Ł†ŲŖŲ®Ų§ŲØā€ŒŚÆŲ± ؓکلک\"] }, \"Flags\": { \"v\": [\"Ł¾Ų±Ś†Ł…ā€ŒŁ‡Ų§\"] }, \"Food & Drink\": { \"v\": [\"ŲŗŲ°Ų§ و Ł†ŁˆŲ“ŪŒŲÆŁ†ŪŒ\"] }, \"Frequently used\": { \"v\": [\"پرکاربرد\"] }, \"Light skin tone\": { \"v\": [\"رنگ Ł¾ŁˆŲ³ŲŖŁ‡ Ų±ŁˆŲ“Ł†\"] }, \"Medium dark skin tone\": { \"v\": [\"رنگ Ł¾ŁˆŲ³ŲŖŁ‡ ŲŖŪŒŲ±Ł‡ Ł…ŲŖŁˆŲ³Ų·\"] }, \"Medium light skin tone\": { \"v\": [\"رنگ Ł¾ŁˆŲ³ŲŖŁ‡ Ų±ŁˆŲ“Ł† Ł…ŲŖŁˆŲ³Ų·\"] }, \"Medium skin tone\": { \"v\": [\"رنگ Ł¾ŁˆŲ³ŲŖŁ‡ Ł…ŲŖŁˆŲ³Ų·\"] }, \"Neutral skin color\": { \"v\": [\"رنگ Ł¾ŁˆŲ³ŲŖŁ‡ Ų®Ł†Ų«ŪŒ\"] }, \"Objects\": { \"v\": [\"اؓیاؔ\"] }, \"People & Body\": { \"v\": [\"Ł…Ų±ŲÆŁ… و بدن\"] }, \"Pick an emoji\": { \"v\": [\"انتخاب ؓکلک\"] }, \"Search emoji\": { \"v\": [\"جستجوی ؓکلک\"] }, \"Search results\": { \"v\": [\"Ł†ŲŖŲ§ŪŒŲ¬ جستجو\"] }, \"Selected\": { \"v\": [\"انتخاب ؓده\"] }, \"Skin tone\": { \"v\": [\"رنگ Ł¾ŁˆŲ³ŲŖŁ‡\"] }, \"Smileys & Emotion\": { \"v\": [\"Ų“Ś©Ł„Ś©ā€ŒŁ‡Ų§ و Ų§Ų­Ų³Ų§Ų³Ų§ŲŖ\"] }, \"Symbols\": { \"v\": [\"نمادها\"] }, \"Travel & Places\": { \"v\": [\"سفر و Ł…Ś©Ų§Ł†ā€ŒŁ‡Ų§\"] } } }, { \"l\": \"fi\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteetit\"] }, \"Animals & Nature\": { \"v\": [\"ElƤimet & luonto\"] }, \"Custom\": { \"v\": [\"Mukautettu\"] }, \"Dark skin tone\": { \"v\": [\"Tumma ihonvƤri\"] }, \"Emoji picker\": { \"v\": [\"Emojivalitsin\"] }, \"Flags\": { \"v\": [\"Liput\"] }, \"Food & Drink\": { \"v\": [\"Ruoka & juoma\"] }, \"Frequently used\": { \"v\": [\"Usein kƤytetyt\"] }, \"Light skin tone\": { \"v\": [\"Vaalea ihonvƤri\"] }, \"Medium dark skin tone\": { \"v\": [\"Keskitumma ihonvƤri\"] }, \"Medium light skin tone\": { \"v\": [\"Keskivaalea ihonvƤri\"] }, \"Medium skin tone\": { \"v\": [\"KeskimƤƤrƤinen ihonvƤri\"] }, \"Neutral skin color\": { \"v\": [\"Neutraali ihonvƤri\"] }, \"Objects\": { \"v\": [\"Esineet & asiat\"] }, \"People & Body\": { \"v\": [\"Ihmiset & keho\"] }, \"Pick an emoji\": { \"v\": [\"Valitse emoji\"] }, \"Search emoji\": { \"v\": [\"Etsi emojia\"] }, \"Search results\": { \"v\": [\"Hakutulokset\"] }, \"Selected\": { \"v\": [\"Valittu\"] }, \"Skin tone\": { \"v\": [\"IhonvƤri\"] }, \"Smileys & Emotion\": { \"v\": [\"Hymiƶt & tunteet\"] }, \"Symbols\": { \"v\": [\"Symbolit\"] }, \"Travel & Places\": { \"v\": [\"Matkustus & kohteet\"] } } }, { \"l\": \"fr\", \"t\": { \"Activities\": { \"v\": [\"ActivitĆ©s\"] }, \"Animals & Nature\": { \"v\": [\"Animaux & Nature\"] }, \"Custom\": { \"v\": [\"PersonnalisĆ©\"] }, \"Dark skin tone\": { \"v\": [\"Teint de peau foncĆ©\"] }, \"Emoji picker\": { \"v\": [\"SĆ©lecteur d'Ć©mojis\"] }, \"Flags\": { \"v\": [\"Drapeaux\"] }, \"Food & Drink\": { \"v\": [\"Nourriture & Boissons\"] }, \"Frequently used\": { \"v\": [\"UtilisĆ©s frĆ©quemment\"] }, \"Light skin tone\": { \"v\": [\"Teint de peau clair\"] }, \"Medium dark skin tone\": { \"v\": [\"Teint de peau moyennement foncĆ©\"] }, \"Medium light skin tone\": { \"v\": [\"Teint de peau moyennement clair\"] }, \"Medium skin tone\": { \"v\": [\"Teint de peau moyen\"] }, \"Neutral skin color\": { \"v\": [\"Teint de peau neutre\"] }, \"Objects\": { \"v\": [\"Objets\"] }, \"People & Body\": { \"v\": [\"Personnes & Corps\"] }, \"Pick an emoji\": { \"v\": [\"Choisissez un Ć©moji\"] }, \"Search emoji\": { \"v\": [\"Rechercher un emoji\"] }, \"Search results\": { \"v\": [\"RĆ©sultats de recherche\"] }, \"Selected\": { \"v\": [\"sĆ©lectionnĆ©\"] }, \"Skin tone\": { \"v\": [\"Teint de peau\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Ɖmotions\"] }, \"Symbols\": { \"v\": [\"Symboles\"] }, \"Travel & Places\": { \"v\": [\"Voyage & Lieux\"] } } }, { \"l\": \"ga\", \"t\": { \"Activities\": { \"v\": [\"GnĆ­omhaĆ­ochtaĆ­\"] }, \"Animals & Nature\": { \"v\": [\"Ainmhithe & DĆŗlra\"] }, \"Custom\": { \"v\": [\"Saincheaptha\"] }, \"Dark skin tone\": { \"v\": [\"Ton craiceann dorcha\"] }, \"Emoji picker\": { \"v\": [\"Roghnóir Emoji\"] }, \"Flags\": { \"v\": [\"Bratacha\"] }, \"Food & Drink\": { \"v\": [\"Bia & Deoch\"] }, \"Frequently used\": { \"v\": [\"ÚsĆ”idtear go minic\"] }, \"Light skin tone\": { \"v\": [\"Ton craiceann Ć©adrom\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton craiceann meĆ”nach dorcha\"] }, \"Medium light skin tone\": { \"v\": [\"Ton craiceann meĆ”nach Ć©adrom\"] }, \"Medium skin tone\": { \"v\": [\"Ton craiceann meĆ”nach\"] }, \"Neutral skin color\": { \"v\": [\"Dath craiceann neodrach\"] }, \"Objects\": { \"v\": [\"RĆ©ada\"] }, \"People & Body\": { \"v\": [\"Daoine & Corp\"] }, \"Pick an emoji\": { \"v\": [\"Roghnaigh emoji\"] }, \"Search emoji\": { \"v\": [\"Cuardaigh emoji\"] }, \"Search results\": { \"v\": [\"TorthaĆ­ cuardaigh\"] }, \"Selected\": { \"v\": [\"Roghnaithe\"] }, \"Skin tone\": { \"v\": [\"Ton craicinn\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & MothĆŗchĆ”n\"] }, \"Symbols\": { \"v\": [\"SiombailĆ­\"] }, \"Travel & Places\": { \"v\": [\"Taisteal & Ɓiteanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Ton de pel escuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de Ā«emojisĀ»\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Ton de pel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton de pel medio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Ton de pel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Ton de pel medio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pel neutra\"] }, \"Objects\": { \"v\": [\"Obxectos\"] }, \"People & Body\": { \"v\": [\"Persoas e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolla un Ā«emojiĀ»\"] }, \"Search emoji\": { \"v\": [\"Buscar Ā«emojiĀ»\"] }, \"Search results\": { \"v\": [\"Resultados da busca\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Ton de pel\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e emocións\"] }, \"Symbols\": { \"v\": [\"SĆ­mbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes e lugares\"] } } }, { \"l\": \"he\", \"t\": { \"Activities\": { \"v\": [\"×¤×¢×™×œ×•×™×•×Ŗ\"] }, \"Animals & Nature\": { \"v\": [\"חיות וטבע\"] }, \"Custom\": { \"v\": [\"×‘×”×Ŗ××ž×” אישית\"] }, \"Flags\": { \"v\": [\"דגלים\"] }, \"Food & Drink\": { \"v\": [\"מזון ×•×ž×©×§××•×Ŗ\"] }, \"Frequently used\": { \"v\": [\"בשימוש תדיר\"] }, \"Objects\": { \"v\": [\"חפצים\"] }, \"People & Body\": { \"v\": [\"אנשים וגוף\"] }, \"Pick an emoji\": { \"v\": [\"נא ×œ×‘×—×•×Ø אמוג׳י\"] }, \"Search emoji\": { \"v\": [\"חיפוש אמוג׳י\"] }, \"Search results\": { \"v\": [\"תוצאות חיפוש\"] }, \"Smileys & Emotion\": { \"v\": [\"חייכנים ×•×Ø×’×©×•× ×™×\"] }, \"Symbols\": { \"v\": [\"המלים\"] }, \"Travel & Places\": { \"v\": [\"טיולים ×•×ž×§×•×ž×•×Ŗ\"] } } }, { \"l\": \"hr\", \"t\": { \"Activities\": { \"v\": [\"Aktivnosti\"] }, \"Animals & Nature\": { \"v\": [\"Životinje i priroda\"] }, \"Custom\": { \"v\": [\"Prlagođeno\"] }, \"Dark skin tone\": { \"v\": [\"Tamna nijansa\"] }, \"Emoji picker\": { \"v\": [\"Odabir emojija\"] }, \"Flags\": { \"v\": [\"Zastavice\"] }, \"Food & Drink\": { \"v\": [\"Hrana i piće\"] }, \"Frequently used\": { \"v\": [\"Često koriÅ”teno\"] }, \"Light skin tone\": { \"v\": [\"Svjetla nijansa\"] }, \"Medium dark skin tone\": { \"v\": [\"Srednje tamna nijansa\"] }, \"Medium light skin tone\": { \"v\": [\"Srednje svjetla nijansa\"] }, \"Medium skin tone\": { \"v\": [\"Srednja nijansa\"] }, \"Neutral skin color\": { \"v\": [\"Neutralna nijansa\"] }, \"Objects\": { \"v\": [\"Objekti\"] }, \"People & Body\": { \"v\": [\"Ljudi i tijelo\"] }, \"Pick an emoji\": { \"v\": [\"Odaberi emoji\"] }, \"Search emoji\": { \"v\": [\"Traži emoji\"] }, \"Search results\": { \"v\": [\"Rezultati pretraživanja\"] }, \"Selected\": { \"v\": [\"Odabrano\"] }, \"Skin tone\": { \"v\": [\"Nijansa\"] }, \"Smileys & Emotion\": { \"v\": [\"Smajlići i emocije\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Putovanja i mjesta\"] } } }, { \"l\": \"hu\", \"t\": { \"Activities\": { \"v\": [\"TevĆ©kenysĆ©gek\"] }, \"Animals & Nature\": { \"v\": [\"Ɓllatok Ć©s termĆ©szet\"] }, \"Custom\": { \"v\": [\"EgyĆ©ni\"] }, \"Dark skin tone\": { \"v\": [\"SƶtĆ©t bőrtónus\"] }, \"Emoji picker\": { \"v\": [\"EmodzsivĆ”lasztó\"] }, \"Flags\": { \"v\": [\"ZĆ”szlók\"] }, \"Food & Drink\": { \"v\": [\"Ɖtel Ć©s ital\"] }, \"Frequently used\": { \"v\": [\"Gyakran hasznĆ”lt\"] }, \"Light skin tone\": { \"v\": [\"VilĆ”gos bőrtónus\"] }, \"Medium dark skin tone\": { \"v\": [\"Kƶzepesen sƶtĆ©t bőrtónus\"] }, \"Medium light skin tone\": { \"v\": [\"Kƶzepesen vilĆ”gos bőrtónus\"] }, \"Medium skin tone\": { \"v\": [\"Kƶzepes bőrtónus\"] }, \"Neutral skin color\": { \"v\": [\"Semleges bőrszĆ­n\"] }, \"Objects\": { \"v\": [\"TĆ”rgyak\"] }, \"People & Body\": { \"v\": [\"Emberek Ć©s test\"] }, \"Pick an emoji\": { \"v\": [\"VĆ”lasszon egy emodzsit\"] }, \"Search emoji\": { \"v\": [\"Emodzsi keresĆ©se\"] }, \"Search results\": { \"v\": [\"TalĆ”latok\"] }, \"Selected\": { \"v\": [\"Kijelƶlve\"] }, \"Skin tone\": { \"v\": [\"Bőrtónus\"] }, \"Smileys & Emotion\": { \"v\": [\"Mosolyok Ć©s Ć©rzelmek\"] }, \"Symbols\": { \"v\": [\"Szimbólumok\"] }, \"Travel & Places\": { \"v\": [\"UtazĆ”s Ć©s helyek\"] } } }, { \"l\": \"id\", \"t\": { \"Activities\": { \"v\": [\"Aktivitas\"] }, \"Animals & Nature\": { \"v\": [\"Satwa dan Alam\"] }, \"Custom\": { \"v\": [\"Khusus\"] }, \"Dark skin tone\": { \"v\": [\"Warna kulit gelap\"] }, \"Emoji picker\": { \"v\": [\"Pemilih emoji\"] }, \"Flags\": { \"v\": [\"Tanda\"] }, \"Food & Drink\": { \"v\": [\"Makanan dan Minuman\"] }, \"Frequently used\": { \"v\": [\"Sering digunakan\"] }, \"Light skin tone\": { \"v\": [\"Warna kulit terang\"] }, \"Medium dark skin tone\": { \"v\": [\"Warna kulit sedang gelap\"] }, \"Medium light skin tone\": { \"v\": [\"Warna kulit sedang terang\"] }, \"Medium skin tone\": { \"v\": [\"Warna kulit sedang\"] }, \"Neutral skin color\": { \"v\": [\"Warna kulit netral\"] }, \"Objects\": { \"v\": [\"Objek\"] }, \"People & Body\": { \"v\": [\"Orang & Badan\"] }, \"Pick an emoji\": { \"v\": [\"Pilih emoji\"] }, \"Search emoji\": { \"v\": [\"Cari emoji\"] }, \"Search results\": { \"v\": [\"Hasil pencarian\"] }, \"Selected\": { \"v\": [\"Dipilih\"] }, \"Skin tone\": { \"v\": [\"Warna kulit\"] }, \"Smileys & Emotion\": { \"v\": [\"Senyuman & Perasaan\"] }, \"Symbols\": { \"v\": [\"Simbol\"] }, \"Travel & Places\": { \"v\": [\"Perjalanan & Tempat\"] } } }, { \"l\": \"is\", \"t\": { \"Activities\": { \"v\": [\"Aưgerưir\"] }, \"Animals & Nature\": { \"v\": [\"Dýr og nĆ”ttĆŗra\"] }, \"Custom\": { \"v\": [\"SĆ©rsniưiư\"] }, \"Dark skin tone\": { \"v\": [\"Dƶkkur húðlitur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-tĆ”knmyndaval\"] }, \"Flags\": { \"v\": [\"Flƶgg\"] }, \"Food & Drink\": { \"v\": [\"Matur og drykkur\"] }, \"Frequently used\": { \"v\": [\"Oftast notaư\"] }, \"Light skin tone\": { \"v\": [\"Ljós húðlitur\"] }, \"Medium dark skin tone\": { \"v\": [\"Meưaldƶkkur húðlitur\"] }, \"Medium light skin tone\": { \"v\": [\"Meưalljós húðlitur\"] }, \"Medium skin tone\": { \"v\": [\"Meưaltónn húðar\"] }, \"Neutral skin color\": { \"v\": [\"Hlutlaus húðlitur\"] }, \"Objects\": { \"v\": [\"Hlutir\"] }, \"People & Body\": { \"v\": [\"Fólk og lĆ­kami\"] }, \"Pick an emoji\": { \"v\": [\"Veldu tjĆ”ningartĆ”kn\"] }, \"Search emoji\": { \"v\": [\"Leita aư tjĆ”ningartĆ”kni\"] }, \"Search results\": { \"v\": [\"Leitarniưurstƶưur\"] }, \"Selected\": { \"v\": [\"Valiư\"] }, \"Skin tone\": { \"v\": [\"Húðlitur\"] }, \"Smileys & Emotion\": { \"v\": [\"Broskallar og tilfinningar\"] }, \"Symbols\": { \"v\": [\"TĆ”kn\"] }, \"Travel & Places\": { \"v\": [\"Staưir og ferưalƶg\"] } } }, { \"l\": \"it\", \"t\": { \"Activities\": { \"v\": [\"AttivitĆ \"] }, \"Animals & Nature\": { \"v\": [\"Animali e natura\"] }, \"Custom\": { \"v\": [\"Personalizzato\"] }, \"Flags\": { \"v\": [\"Bandiere\"] }, \"Food & Drink\": { \"v\": [\"Cibo e bevande\"] }, \"Frequently used\": { \"v\": [\"Usati di frequente\"] }, \"Objects\": { \"v\": [\"Oggetti\"] }, \"People & Body\": { \"v\": [\"Persone e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Scegli un emoji\"] }, \"Search emoji\": { \"v\": [\"Ricerca emoji\"] }, \"Search results\": { \"v\": [\"Risultati di ricerca\"] }, \"Selected\": { \"v\": [\"Selezionato\"] }, \"Smileys & Emotion\": { \"v\": [\"Faccine ed emozioni\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Viaggi e luoghi\"] } } }, { \"l\": \"ja\", \"t\": { \"Activities\": { \"v\": [\"ć‚¢ć‚Æćƒ†ć‚£ćƒ“ćƒ†ć‚£\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"ć‚«ć‚¹ć‚æćƒ \"] }, \"Dark skin tone\": { \"v\": [\"ęš—ć„č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Emoji picker\": { \"v\": [\"ēµµę–‡å­—ćƒ”ćƒƒć‚«ćƒ¼\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"é£Ÿć¹ē‰©ćØé£²ćæē‰©\"] }, \"Frequently used\": { \"v\": [\"ć‚ˆćä½æć†ć‚‚ć®\"] }, \"Light skin tone\": { \"v\": [\"ę˜Žć‚‹ć„č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Medium dark skin tone\": { \"v\": [\"ć‚„ć‚„ęš—ć„č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Medium light skin tone\": { \"v\": [\"ć‚„ć‚„ę˜Žć‚‹ć„č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Medium skin tone\": { \"v\": [\"äø­é–“ć®č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Neutral skin color\": { \"v\": [\"ćƒ‹ćƒ„ćƒ¼ćƒˆćƒ©ćƒ«ćŖč‚Œć®č‰²\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"ę§˜ć€…ćŖäŗŗćØä½“ć®éƒØä½\"] }, \"Pick an emoji\": { \"v\": [\"ēµµę–‡å­—ć‚’éøęŠž\"] }, \"Search emoji\": { \"v\": [\"ēµµę–‡å­—ć‚’ę¤œē“¢\"] }, \"Search results\": { \"v\": [\"ę¤œē“¢ēµęžœ\"] }, \"Selected\": { \"v\": [\"éøęŠžęøˆćæ\"] }, \"Skin tone\": { \"v\": [\"č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Smileys & Emotion\": { \"v\": [\"ę„Ÿęƒ…č”Øē¾\"] }, \"Symbols\": { \"v\": [\"čØ˜å·\"] }, \"Travel & Places\": { \"v\": [\"ę—…č”ŒćØå “ę‰€\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Activities\": { \"v\": [\"ć‚¢ć‚Æćƒ†ć‚£ćƒ“ćƒ†ć‚£\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"ć‚«ć‚¹ć‚æćƒ \"] }, \"Dark skin tone\": { \"v\": [\"ęš—ć„č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Emoji picker\": { \"v\": [\"ēµµę–‡å­—ćƒ”ćƒƒć‚«ćƒ¼\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"é£Ÿć¹ē‰©ćØé£²ćæē‰©\"] }, \"Frequently used\": { \"v\": [\"ć‚ˆćä½æć†ć‚‚ć®\"] }, \"Light skin tone\": { \"v\": [\"ę˜Žć‚‹ć„č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Medium dark skin tone\": { \"v\": [\"ć‚„ć‚„ęš—ć„č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Medium light skin tone\": { \"v\": [\"ć‚„ć‚„ę˜Žć‚‹ć„č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Medium skin tone\": { \"v\": [\"äø­é–“ć®č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Neutral skin color\": { \"v\": [\"ćƒ‹ćƒ„ćƒ¼ćƒˆćƒ©ćƒ«ćŖč‚Œć®č‰²\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"ę§˜ć€…ćŖäŗŗćØä½“ć®éƒØä½\"] }, \"Pick an emoji\": { \"v\": [\"ēµµę–‡å­—ć‚’éøęŠž\"] }, \"Search emoji\": { \"v\": [\"ēµµę–‡å­—ć‚’ę¤œē“¢\"] }, \"Search results\": { \"v\": [\"ę¤œē“¢ēµęžœ\"] }, \"Selected\": { \"v\": [\"éøęŠžęøˆćæ\"] }, \"Skin tone\": { \"v\": [\"č‚Œć®ćƒˆćƒ¼ćƒ³\"] }, \"Smileys & Emotion\": { \"v\": [\"ę„Ÿęƒ…č”Øē¾\"] }, \"Symbols\": { \"v\": [\"čØ˜å·\"] }, \"Travel & Places\": { \"v\": [\"ę—…č”ŒćØå “ę‰€\"] } } }, { \"l\": \"ko\", \"t\": { \"Activities\": { \"v\": [\"ķ™œė™\"] }, \"Animals & Nature\": { \"v\": [\"ė™ė¬¼ & ģžģ—°\"] }, \"Custom\": { \"v\": [\"ė§žģ¶¤ 설정\"] }, \"Dark skin tone\": { \"v\": [\"ģ–“ė‘ģš“ 피부 톤\"] }, \"Emoji picker\": { \"v\": [\"ģ“ėŖØģ§€ ģ„ ķƒźø°\"] }, \"Flags\": { \"v\": [\"깃발\"] }, \"Food & Drink\": { \"v\": [\"ģŒģ‹ & ģŒė£Œ\"] }, \"Frequently used\": { \"v\": [\"ģžģ£¼ ģ“°ģž„\"] }, \"Light skin tone\": { \"v\": [\"ė°ģ€ 피부 톤\"] }, \"Medium dark skin tone\": { \"v\": [\"약간 ģ–“ė‘ģš“ 피부 톤\"] }, \"Medium light skin tone\": { \"v\": [\"약간 ė°ģ€ 피부 톤\"] }, \"Medium skin tone\": { \"v\": [\"중간 피부 톤\"] }, \"Neutral skin color\": { \"v\": [\"중성적 피부 톤\"] }, \"Objects\": { \"v\": [\"물첓\"] }, \"People & Body\": { \"v\": [\"ģ‚¬ėžŒ & 신첓\"] }, \"Pick an emoji\": { \"v\": [\"ģ“ėŖØģ§€ ģ„ ķƒ\"] }, \"Search emoji\": { \"v\": [\"ģ“ėŖØģ§€ ź²€ģƒ‰\"] }, \"Search results\": { \"v\": [\"ź²€ģƒ‰ ź²°ź³¼\"] }, \"Selected\": { \"v\": [\"ģ„ ķƒėØ\"] }, \"Skin tone\": { \"v\": [\"피부 톤\"] }, \"Smileys & Emotion\": { \"v\": [\"ģŠ¤ė§ˆģ¼ė¦¬ & ģ“ėŖØķ‹°ģ½˜\"] }, \"Symbols\": { \"v\": [\"기호\"] }, \"Travel & Places\": { \"v\": [\"여행 & ģž„ģ†Œ\"] } } }, { \"l\": \"lo\", \"t\": { \"Activities\": { \"v\": [\"ąŗąŗ“ąŗ”ąŗˆąŗ°ąŗąŗ³\"] }, \"Animals & Nature\": { \"v\": [\"ສັດ ແຄະ ąŗ—ąŗ³ąŗ”ąŗ°ąŗŠąŗ²ąŗ”\"] }, \"Custom\": { \"v\": [\"ກຳນົດເອງ\"] }, \"Dark skin tone\": { \"v\": [\"ą»‚ąŗ•ąŗ™ąŗŖąŗµąŗœąŗ“ąŗ§ą»€ąŗ‚ąŗ±ą»‰ąŗ”\"] }, \"Emoji picker\": { \"v\": [\"ą»‚ąŗ•ą»€ąŗ„ąŗ·ąŗ­ąŗąŗ­ąŗµą»‚ąŗ”ąŗˆąŗ“\"] }, \"Flags\": { \"v\": [\"ąŗ—ąŗøąŗ‡\"] }, \"Food & Drink\": { \"v\": [\"ອາຫານ ແຄະ ą»€ąŗ„ąŗ·ą»ˆąŗ­ąŗ‡ąŗ”ąŗ·ą»ˆąŗ”\"] }, \"Frequently used\": { \"v\": [\"ą»ƒąŗŠą»‰ąŗ‡ąŗ²ąŗ™ą»€ąŗ„ąŗ·ą»‰ąŗ­ąŗą»†\"] }, \"Light skin tone\": { \"v\": [\"ą»‚ąŗ•ąŗ™ąŗŖąŗµąŗœąŗ“ąŗ§ąŗ­ą»ˆąŗ­ąŗ™\"] }, \"Medium dark skin tone\": { \"v\": [\"ą»‚ąŗ•ąŗ™ąŗŖąŗµąŗœąŗ“ąŗ§ą»€ąŗ‚ąŗ±ą»‰ąŗ”ąŗ›ąŗ²ąŗ™ąŗąŗ²ąŗ‡\"] }, \"Medium light skin tone\": { \"v\": [\"ą»‚ąŗ•ąŗ™ąŗŖąŗµąŗœąŗ“ąŗ§ąŗ­ą»ˆąŗ­ąŗ™ąŗ›ąŗ²ąŗ™ąŗąŗ²ąŗ‡\"] }, \"Medium skin tone\": { \"v\": [\"ą»‚ąŗ•ąŗ™ąŗŖąŗµąŗœąŗ“ąŗ§ąŗ›ąŗ²ąŗ™ąŗąŗ²ąŗ‡\"] }, \"Neutral skin color\": { \"v\": [\"ąŗŖąŗµąŗœąŗ“ąŗ§ą»€ąŗ›ąŗ±ąŗ™ąŗąŗ²ąŗ‡\"] }, \"Objects\": { \"v\": [\"ວັດຖຸ\"] }, \"People & Body\": { \"v\": [\"ຄົນ ແຄະ ąŗ®ą»ˆąŗ²ąŗ‡ąŗąŗ²ąŗ\"] }, \"Pick an emoji\": { \"v\": [\"ą»€ąŗ„ąŗ·ąŗ­ąŗąŗ­ąŗµą»‚ąŗ”ąŗˆąŗ“\"] }, \"Search emoji\": { \"v\": [\"ąŗ„ąŗ»ą»‰ąŗ™ąŗ«ąŗ²ąŗ­ąŗµą»‚ąŗ”ąŗˆąŗ“\"] }, \"Search results\": { \"v\": [\"ąŗœąŗ»ąŗ™ąŗąŗ²ąŗ™ąŗ„ąŗ»ą»‰ąŗ™ąŗ«ąŗ²\"] }, \"Selected\": { \"v\": [\"ເຄືອກແຄ້ວ\"] }, \"Skin tone\": { \"v\": [\"ą»‚ąŗ•ąŗ™ąŗŖąŗµąŗœąŗ“ąŗ§\"] }, \"Smileys & Emotion\": { \"v\": [\"ą»œą»‰ąŗ²ąŗąŗ“ą»‰ąŗ” ແຄະ ອາຄົດ\"] }, \"Symbols\": { \"v\": [\"ąŗŖąŗ±ąŗ™ąŗąŗ²ąŗ„ąŗ±ąŗ\"] }, \"Travel & Places\": { \"v\": [\"ການເດີນທາງ ແຄະ ąŗŖąŗ°ąŗ–ąŗ²ąŗ™ąŗ—ąŗµą»ˆ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Activities\": { \"v\": [\"Veiklos\"] }, \"Animals & Nature\": { \"v\": [\"GyvÅ«nai ir gamta\"] }, \"Custom\": { \"v\": [\"Tinkinti\"] }, \"Dark skin tone\": { \"v\": [\"Tamsios odos atspalvis\"] }, \"Emoji picker\": { \"v\": [\"Emociukų parinkiklis\"] }, \"Flags\": { \"v\": [\"Vėliavos\"] }, \"Food & Drink\": { \"v\": [\"Maistas ir gėrimai\"] }, \"Frequently used\": { \"v\": [\"Dažniausiai naudoti\"] }, \"Light skin tone\": { \"v\": [\"Å viesus odos tonas\"] }, \"Medium dark skin tone\": { \"v\": [\"Vidutinio tamsumo odos tonas\"] }, \"Medium light skin tone\": { \"v\": [\"Vidutinio Å”viesumo odos tonas\"] }, \"Medium skin tone\": { \"v\": [\"Vidutinis odos tonas\"] }, \"Neutral skin color\": { \"v\": [\"Neutrali odos spalva\"] }, \"Objects\": { \"v\": [\"Objektai\"] }, \"People & Body\": { \"v\": [\"Žmonės ir kÅ«nas\"] }, \"Pick an emoji\": { \"v\": [\"Pasirinkti emociuką\"] }, \"Search emoji\": { \"v\": [\"IeÅ”koti emociukų\"] }, \"Search results\": { \"v\": [\"PaieÅ”kos rezultatai\"] }, \"Selected\": { \"v\": [\"Pasirinkta\"] }, \"Skin tone\": { \"v\": [\"Odos tonas\"] }, \"Smileys & Emotion\": { \"v\": [\"Å ypsenos ir emocijos\"] }, \"Symbols\": { \"v\": [\"Simboliai\"] }, \"Travel & Places\": { \"v\": [\"Kelionės ir vietos\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животни & ŠŸŃ€ŠøŃ€Š¾Š“Š°\"] }, \"Custom\": { \"v\": [\"ŠŸŃ€ŠøŠ»Š°Š³Š¾Š“ŠµŠ½Šø\"] }, \"Dark skin tone\": { \"v\": [\"Темна боја на кожа\"] }, \"Emoji picker\": { \"v\": [\"Š˜Š·Š±Š¾Ń€ на emoji\"] }, \"Flags\": { \"v\": [\"Š—Š½Š°Š¼ŠøŃšŠ°\"] }, \"Food & Drink\": { \"v\": [\"Єрана & ŠŸŠøŃ˜Š°Š»Š¾Ń†Šø\"] }, \"Frequently used\": { \"v\": [\"ŠŠ°Ń˜Ń‡ŠµŃŃ‚Š¾ користени\"] }, \"Light skin tone\": { \"v\": [\"Дветла кожа\"] }, \"Medium dark skin tone\": { \"v\": [\"ДреГно темна кожа\"] }, \"Medium light skin tone\": { \"v\": [\"ДреГно светла кожа\"] }, \"Medium skin tone\": { \"v\": [\"ДреГна кожа\"] }, \"Neutral skin color\": { \"v\": [\"ŠŠµŃƒŃ‚Ń€Š°Š»Š½Š° боја на кожа\"] }, \"Objects\": { \"v\": [\"ŠžŠ±Ń˜ŠµŠŗŃ‚Šø\"] }, \"People & Body\": { \"v\": [\"Š›ŃƒŃ“Šµ & Тело\"] }, \"Pick an emoji\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø емотикон\"] }, \"Search emoji\": { \"v\": [\"Š‘Š°Ń€Š°Ń˜ emoji\"] }, \"Search results\": { \"v\": [\"Š ŠµŠ·ŃƒŠ»Ń‚Š°Ń‚Šø оГ Š±Š°Ń€ŃƒŠ²Š°ŃšŠµŃ‚Š¾\"] }, \"Selected\": { \"v\": [\"Š˜Š·Š±Ń€Š°Š½Š¾\"] }, \"Skin tone\": { \"v\": [\"Š‘Š¾Ń˜Š° на кожа\"] }, \"Smileys & Emotion\": { \"v\": [\"Š”Š¼ŠµŃˆŠŗŠ¾Š²Ń†Šø & Емотикони\"] }, \"Symbols\": { \"v\": [\"Димболи\"] }, \"Travel & Places\": { \"v\": [\"ŠŸŠ°Ń‚ŃƒŠ²Š°ŃšŠ° & ŠœŠµŃŃ‚Š°\"] } } }, { \"l\": \"mn\", \"t\": { \"Activities\": { \"v\": [\"Үйл ажиллагаа\"] }, \"Animals & Nature\": { \"v\": [\"ŠŠ¼ŃŒŃ‚Š°Š½ & Š‘Š°Š¹Š³Š°Š»ŃŒ\"] }, \"Custom\": { \"v\": [\"Тусгай\"] }, \"Dark skin tone\": { \"v\": [\"Бараан Š°Ń€ŃŒŃŠ½Ń‹ өнгө\"] }, \"Emoji picker\": { \"v\": [\"Эможи сонгогч\"] }, \"Flags\": { \"v\": [\"ТугнууГ\"] }, \"Food & Drink\": { \"v\": [\"Єоол & УнГаа\"] }, \"Frequently used\": { \"v\": [\"Байнга Ń…ŃŃ€ŃŠ³Š»ŃŠ“ŃŠ³\"] }, \"Light skin tone\": { \"v\": [\"Цайвар Š°Ń€ŃŒŃŠ½Ń‹ өнгө\"] }, \"Medium dark skin tone\": { \"v\": [\"Š”ŃƒŠ½Š“ бараан Š°Ń€ŃŒŃŠ½Ń‹ өнгө\"] }, \"Medium light skin tone\": { \"v\": [\"Š”ŃƒŠ½Š“ цайвар Š°Ń€ŃŒŃŠ½Ń‹ өнгө\"] }, \"Medium skin tone\": { \"v\": [\"Š”ŃƒŠ½Š“ Š°Ń€ŃŒŃŠ½Ń‹ өнгө\"] }, \"Neutral skin color\": { \"v\": [\"Даарал Š°Ń€ŃŒŃŠ½Ń‹ өнгө\"] }, \"Objects\": { \"v\": [\"ŠžŠ±ŃŠŠµŠŗŃ‚ŃƒŃƒŠ“\"] }, \"People & Body\": { \"v\": [\"Єүмүүс & Бие\"] }, \"Pick an emoji\": { \"v\": [\"Эможи сонгох\"] }, \"Search emoji\": { \"v\": [\"Эможи хайх\"] }, \"Search results\": { \"v\": [\"Єайлтын ŅÆŃ€ Гүн\"] }, \"Selected\": { \"v\": [\"Донгосон\"] }, \"Skin tone\": { \"v\": [\"ŠŃ€ŃŒŃŠ½Ń‹ өнгө\"] }, \"Smileys & Emotion\": { \"v\": [\"Š˜Š½ŃŃŠ¼ŃŃŠ³Š»ŃŠ» & Š”ŃŃ‚Š³ŃŠ» хөГлөл\"] }, \"Symbols\": { \"v\": [\"Š¢ŃŠ¼Š“ŃŠ³Ń‚ŅÆŅÆŠ“\"] }, \"Travel & Places\": { \"v\": [\"ŠŃŠ»Š°Š» & Š“Š°Š·Ń€ŃƒŃƒŠ“\"] } } }, { \"l\": \"my\", \"t\": { \"Activities\": { \"v\": [\"į€•į€¼į€Æį€œį€Æį€•į€ŗį€†į€±į€¬į€„į€ŗį€į€¬į€™į€»į€¬į€ø\"] }, \"Animals & Nature\": { \"v\": [\"တိရစ္ဆာန်များနှင့် į€žį€˜į€¬į€\"] }, \"Custom\": { \"v\": [\"į€”į€œį€­į€Æį€€į€»į€į€»į€­į€”į€ŗį€Šį€¾į€­į€™į€¾į€Æ\"] }, \"Flags\": { \"v\": [\"į€”į€œį€¶į€™į€»į€¬į€ø\"] }, \"Food & Drink\": { \"v\": [\"į€”į€…į€¬į€øį€”į€žį€±į€¬į€€į€ŗ\"] }, \"Frequently used\": { \"v\": [\"į€™į€€į€¼į€¬į€į€į€”į€žį€Æį€¶į€øį€•į€¼į€Æį€žį€±į€¬\"] }, \"Objects\": { \"v\": [\"į€”į€›į€¬į€į€į€¹į€‘į€Æį€™į€»į€¬į€ø\"] }, \"People & Body\": { \"v\": [\"į€œį€°į€•į€Æį€‚į€¹į€‚į€­į€Æį€œį€ŗį€™į€»į€¬į€øį€”į€¾į€„į€ŗį€· į€į€”į€¹į€“į€¬į€€į€­į€Æį€šį€ŗ\"] }, \"Pick an emoji\": { \"v\": [\"နီမိုဂျီရွေးရန်\"] }, \"Search results\": { \"v\": [\"ရှာဖွေမှု į€›į€œį€’į€ŗį€™į€»į€¬į€ø\"] }, \"Smileys & Emotion\": { \"v\": [\"į€…į€™į€­į€Æį€„į€ŗį€œį€®į€™į€»į€¬į€øį€”į€¾į€„į€ŗį€· နီမိုရှင်း\"] }, \"Symbols\": { \"v\": [\"į€žį€„į€ŗį€¹į€€į€±į€į€™į€»į€¬į€ø\"] }, \"Travel & Places\": { \"v\": [\"į€į€›į€®į€øį€žį€½į€¬į€øį€œį€¬į€į€¼į€„į€ŗį€øį€”į€¾į€„į€ŗį€· နေရာများ\"] } } }, { \"l\": \"nb\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr og natur\"] }, \"Custom\": { \"v\": [\"Tilpasset\"] }, \"Dark skin tone\": { \"v\": [\"MĆørk hudtone\"] }, \"Emoji picker\": { \"v\": [\"Emoji-velger\"] }, \"Flags\": { \"v\": [\"Flagg\"] }, \"Food & Drink\": { \"v\": [\"Mat og drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brukt\"] }, \"Light skin tone\": { \"v\": [\"Lys hudtone\"] }, \"Medium dark skin tone\": { \"v\": [\"Middels mĆørk hudtone\"] }, \"Medium light skin tone\": { \"v\": [\"Middels lys hudtone\"] }, \"Medium skin tone\": { \"v\": [\"Middels hudtone\"] }, \"Neutral skin color\": { \"v\": [\"NĆøytral hudfarge\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker og kropp\"] }, \"Pick an emoji\": { \"v\": [\"Velg en emoji\"] }, \"Search emoji\": { \"v\": [\"SĆøk emoji\"] }, \"Search results\": { \"v\": [\"SĆøkeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Hudtone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smilefjes og fĆølelser\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Reise og steder\"] } } }, { \"l\": \"nl\", \"t\": { \"Activities\": { \"v\": [\"Activiteiten\"] }, \"Animals & Nature\": { \"v\": [\"Dieren & Natuur\"] }, \"Custom\": { \"v\": [\"Aangepast\"] }, \"Dark skin tone\": { \"v\": [\"Donkere huidskleur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-kiezer\"] }, \"Flags\": { \"v\": [\"Vlaggen\"] }, \"Food & Drink\": { \"v\": [\"Eten & Drinken\"] }, \"Frequently used\": { \"v\": [\"Vaak gebruikt\"] }, \"Light skin tone\": { \"v\": [\"Lichte huidskleur\"] }, \"Medium dark skin tone\": { \"v\": [\"Gemiddeld donkere huidskleur\"] }, \"Medium light skin tone\": { \"v\": [\"Gemiddeld lichte huidskleur\"] }, \"Medium skin tone\": { \"v\": [\"Gemiddelde huidskleur\"] }, \"Neutral skin color\": { \"v\": [\"Neutrale huidskleur\"] }, \"Objects\": { \"v\": [\"Objecten\"] }, \"People & Body\": { \"v\": [\"Mensen & Lichaam\"] }, \"Pick an emoji\": { \"v\": [\"Kies een emoji\"] }, \"Search emoji\": { \"v\": [\"Emoji zoeken\"] }, \"Search results\": { \"v\": [\"Zoekresultaten\"] }, \"Selected\": { \"v\": [\"Geselecteerd\"] }, \"Skin tone\": { \"v\": [\"Huidskleur\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotie\"] }, \"Symbols\": { \"v\": [\"Symbolen\"] }, \"Travel & Places\": { \"v\": [\"Reizen & Plaatsen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Activities\": { \"v\": [\"Aktywność\"] }, \"Animals & Nature\": { \"v\": [\"Zwierzęta i natura\"] }, \"Custom\": { \"v\": [\"Zwyczajne\"] }, \"Dark skin tone\": { \"v\": [\"Ciemna tonacja\"] }, \"Emoji picker\": { \"v\": [\"Wybierz Emoji\"] }, \"Flags\": { \"v\": [\"Flagi\"] }, \"Food & Drink\": { \"v\": [\"Jedzenie i picie\"] }, \"Frequently used\": { \"v\": [\"Często używane\"] }, \"Light skin tone\": { \"v\": [\"Jasny odcień skóry\"] }, \"Medium dark skin tone\": { \"v\": [\"Średnio ciemny odcień skóry\"] }, \"Medium light skin tone\": { \"v\": [\"Średnio jasny odcień skóry\"] }, \"Medium skin tone\": { \"v\": [\"Średni odcień skóry\"] }, \"Neutral skin color\": { \"v\": [\"Neutralny kolor skróry\"] }, \"Objects\": { \"v\": [\"Obiekty\"] }, \"People & Body\": { \"v\": [\"Ludzie i ciało\"] }, \"Pick an emoji\": { \"v\": [\"Wybierz emoji\"] }, \"Search emoji\": { \"v\": [\"Szukaj emoji\"] }, \"Search results\": { \"v\": [\"Wyniki wyszukiwania\"] }, \"Selected\": { \"v\": [\"Wybrane\"] }, \"Skin tone\": { \"v\": [\"Kolor skóry\"] }, \"Smileys & Emotion\": { \"v\": [\"BuÅŗki i emotikony\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Podróże i miejsca\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais & Natureza\"] }, \"Custom\": { \"v\": [\"Personalizados\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"Seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida & Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais usados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele meio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele meio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele mĆ©dio\"] }, \"Neutral skin color\": { \"v\": [\"Tom de pele neutro\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas & Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & EmoƧƵes\"] }, \"Symbols\": { \"v\": [\"SĆ­mbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagem & Lugares\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e Natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais utilizados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele escuro mĆ©dio\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele claro mĆ©dio\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele mĆ©dio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pele neutra\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas e Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e EmoƧƵes\"] }, \"Symbols\": { \"v\": [\"SĆ­mbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagens e Lugares\"] } } }, { \"l\": \"ro\", \"t\": { \"Activities\": { \"v\": [\"Activități\"] }, \"Animals & Nature\": { \"v\": [\"Animale și natură\"] }, \"Custom\": { \"v\": [\"Personalizat\"] }, \"Flags\": { \"v\": [\"Marcaje\"] }, \"Food & Drink\": { \"v\": [\"Alimente și băuturi\"] }, \"Frequently used\": { \"v\": [\"Utilizate frecvent\"] }, \"Objects\": { \"v\": [\"Obiecte\"] }, \"People & Body\": { \"v\": [\"Oameni și corp\"] }, \"Pick an emoji\": { \"v\": [\"Alege un emoji\"] }, \"Search emoji\": { \"v\": [\"Căutare emoji\"] }, \"Search results\": { \"v\": [\"Rezultatele căutării\"] }, \"Selected\": { \"v\": [\"Selectat\"] }, \"Smileys & Emotion\": { \"v\": [\"ZĆ¢mbete și emoții\"] }, \"Symbols\": { \"v\": [\"Simboluri\"] }, \"Travel & Places\": { \"v\": [\"Călătorii și locuri\"] } } }, { \"l\": \"ru\", \"t\": { \"Activities\": { \"v\": [\"Š”Š¾Š±Ń‹Ń‚ŠøŃ\"] }, \"Animals & Nature\": { \"v\": [\"Животные Šø прироГа \"] }, \"Custom\": { \"v\": [\"ŠŸŠ¾Š»ŃŒŠ·Š¾Š²Š°Ń‚ŠµŠ»ŃŒŃŠŗŠ¾Šµ\"] }, \"Dark skin tone\": { \"v\": [\"Темный оттенок\"] }, \"Emoji picker\": { \"v\": [\"ŠŸŠ¾Š“Š±Š¾Ń€Ń‰ŠøŠŗ ŃŠ¼Š¾Š“Š·Šø\"] }, \"Flags\": { \"v\": [\"Флаги\"] }, \"Food & Drink\": { \"v\": [\"ЕГа, напиток\"] }, \"Frequently used\": { \"v\": [\"Часто ŠøŃŠæŠ¾Š»ŃŒŠ·ŃƒŠµŠ¼Ń‹Š¹\"] }, \"Light skin tone\": { \"v\": [\"Дветлый оттенок\"] }, \"Medium dark skin tone\": { \"v\": [\"ДреГний темный оттенок\"] }, \"Medium light skin tone\": { \"v\": [\"ДреГний светлый оттенок\"] }, \"Medium skin tone\": { \"v\": [\"ДреГний оттенок\"] }, \"Neutral skin color\": { \"v\": [\"ŠŠµŠ¹Ń‚Ń€Š°Š»ŃŒŠ½Ń‹Š¹ оттенок\"] }, \"Objects\": { \"v\": [\"ŠžŠ±ŃŠŠµŠŗŃ‚Ń‹\"] }, \"People & Body\": { \"v\": [\"Š›ŃŽŠ“Šø Šø тело\"] }, \"Pick an emoji\": { \"v\": [\"Выберите ŃŠ¼Š¾Š“Š·Šø\"] }, \"Search emoji\": { \"v\": [\"Поиск ŃŠ¼Š¾Š“Š·Šø\"] }, \"Search results\": { \"v\": [\"Š ŠµŠ·ŃƒŠ»ŃŒŃ‚Š°Ń‚Ń‹ поиска\"] }, \"Selected\": { \"v\": [\"Выбрано\"] }, \"Skin tone\": { \"v\": [\"ŠžŃ‚Ń‚ŠµŠ½Š¾Šŗ скина\"] }, \"Smileys & Emotion\": { \"v\": [\"Дмайлики Šø ŃŠ¼Š¾Ń†ŠøŠø\"] }, \"Symbols\": { \"v\": [\"Димволы\"] }, \"Travel & Places\": { \"v\": [\"ŠŸŃƒŃ‚ŠµŃˆŠµŃŃ‚Š²ŠøŃ Šø места\"] } } }, { \"l\": \"sk\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"ZvieratĆ” a prĆ­roda\"] }, \"Custom\": { \"v\": [\"VlastnĆ©\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý vzhľad\"] }, \"Emoji picker\": { \"v\": [\"Výber emodži\"] }, \"Flags\": { \"v\": [\"Vlajky\"] }, \"Food & Drink\": { \"v\": [\"Jedlo a nĆ”poje\"] }, \"Frequently used\": { \"v\": [\"Často používanĆ©\"] }, \"Light skin tone\": { \"v\": [\"Svetlý vzhľad\"] }, \"Medium dark skin tone\": { \"v\": [\"Stredne tmavý vzhľad\"] }, \"Medium light skin tone\": { \"v\": [\"Stredne svetlý vzhľad\"] }, \"Medium skin tone\": { \"v\": [\"Stredný vzhľad\"] }, \"Neutral skin color\": { \"v\": [\"NeutrĆ”lny vzhľad\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Ľudia a telo\"] }, \"Pick an emoji\": { \"v\": [\"VybraÅ„ emodži\"] }, \"Search emoji\": { \"v\": [\"VyhľadaÅ„ emoji\"] }, \"Search results\": { \"v\": [\"Výsledky vyhľadĆ”vania\"] }, \"Selected\": { \"v\": [\"Vybraný\"] }, \"Skin tone\": { \"v\": [\"Vzhľad\"] }, \"Smileys & Emotion\": { \"v\": [\"SmajlĆ­ky a emócie\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestovanie a miesta\"] } } }, { \"l\": \"sl\", \"t\": { \"Activities\": { \"v\": [\"Dejavnosti\"] }, \"Animals & Nature\": { \"v\": [\"Živali in Narava\"] }, \"Custom\": { \"v\": [\"Po meri\"] }, \"Flags\": { \"v\": [\"Zastavice\"] }, \"Food & Drink\": { \"v\": [\"Hrana in Pijača\"] }, \"Frequently used\": { \"v\": [\"Pogostost uporabe\"] }, \"Objects\": { \"v\": [\"Predmeti\"] }, \"People & Body\": { \"v\": [\"Ljudje in Telo\"] }, \"Pick an emoji\": { \"v\": [\"Izbor izrazne ikone\"] }, \"Search results\": { \"v\": [\"Zadetki iskanja\"] }, \"Smileys & Emotion\": { \"v\": [\"Izrazne ikone\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Potovanja in Kraji\"] } } }, { \"l\": \"sr\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Š–ŠøŠ²Š¾Ń‚ŠøŃšŠµ Šø прироГа\"] }, \"Custom\": { \"v\": [\"ŠŸŃ€Š¾ŠøŠ·Š²Š¾Ń™Š½Š¾\"] }, \"Dark skin tone\": { \"v\": [\"Тамни тен коже\"] }, \"Emoji picker\": { \"v\": [\"Бирач ŠµŠ¼Š¾Ń’ŠøŃ˜Š°\"] }, \"Flags\": { \"v\": [\"Заставе\"] }, \"Food & Drink\": { \"v\": [\"Єрана Šø пиће\"] }, \"Frequently used\": { \"v\": [\"Често ŠŗŠ¾Ń€ŠøŃˆŃ›ŠµŠ½Š¾\"] }, \"Light skin tone\": { \"v\": [\"Дветли тен коже\"] }, \"Medium dark skin tone\": { \"v\": [\"Š”Ń€ŠµŠ“ŃšŠµ тамни тен коже\"] }, \"Medium light skin tone\": { \"v\": [\"Š”Ń€ŠµŠ“ŃšŠµ светли тен коже\"] }, \"Medium skin tone\": { \"v\": [\"Š”Ń€ŠµŠ“ŃšŠø тен коже\"] }, \"Neutral skin color\": { \"v\": [\"ŠŠµŃƒŃ‚Ń€Š°Š»Š½Š° боја коже\"] }, \"Objects\": { \"v\": [\"ŠŸŃ€ŠµŠ“Š¼ŠµŃ‚Šø\"] }, \"People & Body\": { \"v\": [\"Š‰ŃƒŠ“Šø Šø тело\"] }, \"Pick an emoji\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€ŠøŃ‚Šµ емођи\"] }, \"Search emoji\": { \"v\": [\"ŠŸŃ€ŠµŃ‚Ń€Š°Š¶Šø емођи\"] }, \"Search results\": { \"v\": [\"Š ŠµŠ·ŃƒŠ»Ń‚Š°Ń‚Šø претраге\"] }, \"Selected\": { \"v\": [\"Š˜Š·Š°Š±Ń€Š°Š½Š¾\"] }, \"Skin tone\": { \"v\": [\"Тен коже\"] }, \"Smileys & Emotion\": { \"v\": [\"Дмајлији Šø ŠµŠ¼Š¾Ń†ŠøŃ˜Šµ\"] }, \"Symbols\": { \"v\": [\"Димболи\"] }, \"Travel & Places\": { \"v\": [\"ŠŸŃƒŃ‚Š¾Š²Š°ŃšŠµ Šø места\"] } } }, { \"l\": \"sv\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Djur och natur\"] }, \"Custom\": { \"v\": [\"Anpassad\"] }, \"Dark skin tone\": { \"v\": [\"Mƶrk hudton\"] }, \"Emoji picker\": { \"v\": [\"EmojivƤljare\"] }, \"Flags\": { \"v\": [\"Flaggor\"] }, \"Food & Drink\": { \"v\": [\"Mat och dryck\"] }, \"Frequently used\": { \"v\": [\"AnvƤnds ofta\"] }, \"Light skin tone\": { \"v\": [\"Ljus hudton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mellanmƶrk hudton\"] }, \"Medium light skin tone\": { \"v\": [\"Mellanljus hudton\"] }, \"Medium skin tone\": { \"v\": [\"Medium hudton\"] }, \"Neutral skin color\": { \"v\": [\"Neutral hudfƤrg\"] }, \"Objects\": { \"v\": [\"Objekt\"] }, \"People & Body\": { \"v\": [\"MƤnniskor och kropp\"] }, \"Pick an emoji\": { \"v\": [\"VƤlj en emoji\"] }, \"Search emoji\": { \"v\": [\"Sƶk efter emoji\"] }, \"Search results\": { \"v\": [\"Sƶkresultat\"] }, \"Selected\": { \"v\": [\"Vald\"] }, \"Skin tone\": { \"v\": [\"Hudton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys och kƤnslor\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Resor och platser\"] } } }, { \"l\": \"tr\", \"t\": { \"Activities\": { \"v\": [\"Etkinlikler\"] }, \"Animals & Nature\": { \"v\": [\"Hayvanlar ve doğa\"] }, \"Custom\": { \"v\": [\"Ɩzel\"] }, \"Dark skin tone\": { \"v\": [\"Koyu deri rengi\"] }, \"Emoji picker\": { \"v\": [\"Emoji seƧici\"] }, \"Flags\": { \"v\": [\"Bayraklar\"] }, \"Food & Drink\": { \"v\": [\"Yeme ve iƧme\"] }, \"Frequently used\": { \"v\": [\"Sık kullanılanlar\"] }, \"Light skin tone\": { \"v\": [\"AƧık deri rengi\"] }, \"Medium dark skin tone\": { \"v\": [\"Orta koyu deri rengi\"] }, \"Medium light skin tone\": { \"v\": [\"Orta aƧık deri rengi\"] }, \"Medium skin tone\": { \"v\": [\"Orta deri rengi\"] }, \"Neutral skin color\": { \"v\": [\"Nƶtr deri rengi\"] }, \"Objects\": { \"v\": [\"Nesneler\"] }, \"People & Body\": { \"v\": [\"İnsanlar ve beden\"] }, \"Pick an emoji\": { \"v\": [\"Bir emoji seƧin\"] }, \"Search emoji\": { \"v\": [\"Emoji ara\"] }, \"Search results\": { \"v\": [\"Arama sonuƧları\"] }, \"Selected\": { \"v\": [\"SeƧilmiş\"] }, \"Skin tone\": { \"v\": [\"Deri rengi\"] }, \"Smileys & Emotion\": { \"v\": [\"İfadeler ve duygular\"] }, \"Symbols\": { \"v\": [\"Simgeler\"] }, \"Travel & Places\": { \"v\": [\"Gezi ve yerler\"] } } }, { \"l\": \"uk\", \"t\": { \"Activities\": { \"v\": [\"Š”Ń–ŃŠ»ŃŒŠ½Ń–ŃŃ‚ŃŒ\"] }, \"Animals & Nature\": { \"v\": [\"Тварини та прироГа\"] }, \"Custom\": { \"v\": [\"Власне\"] }, \"Dark skin tone\": { \"v\": [\"Š”Š¼Š°Š³Š»ŃŠ²ŠøŠ¹\"] }, \"Emoji picker\": { \"v\": [\"Вибір емоційки\"] }, \"Flags\": { \"v\": [\"ŠŸŃ€Š°ŠæŠ¾Ń€Šø\"] }, \"Food & Drink\": { \"v\": [\"Їжа та напої\"] }, \"Frequently used\": { \"v\": [\"ŠŠ°Š¹Ń‡Š°ŃŃ‚Ń–ŃˆŃ–\"] }, \"Light skin tone\": { \"v\": [\"Двітла ŃˆŠŗŃ–Ń€Š°\"] }, \"Medium dark skin tone\": { \"v\": [\"Какао\"] }, \"Medium light skin tone\": { \"v\": [\"Лате\"] }, \"Medium skin tone\": { \"v\": [\"ДереГній колір ŃˆŠŗŃ–Ń€Šø\"] }, \"Neutral skin color\": { \"v\": [\"ŠŠµŠ¹Ń‚Ń€Š°Š»ŃŒŠ½ŠøŠ¹ колір ŃˆŠŗŃ–Ń€Šø\"] }, \"Objects\": { \"v\": [\"ŠžŠ±'єкти\"] }, \"People & Body\": { \"v\": [\"Š›ŃŽŠ“Šø та жести\"] }, \"Pick an emoji\": { \"v\": [\"Š’ŠøŠ±ŠµŃ€Ń–Ń‚ŃŒ ŠµŠ¼Š¾Ń†Ń–Š¹ŠŗŃƒ\"] }, \"Search emoji\": { \"v\": [\"ŠØŃƒŠŗŠ°Ń‚Šø емоційки\"] }, \"Search results\": { \"v\": [\"Š ŠµŠ·ŃƒŠ»ŃŒŃ‚Š°Ń‚Šø пошуку\"] }, \"Selected\": { \"v\": [\"Вибрано\"] }, \"Skin tone\": { \"v\": [\"ŠšŠ¾Š»Ń–Ń€ ŃˆŠŗŃ–Ń€Šø\"] }, \"Smileys & Emotion\": { \"v\": [\"Дмайли та емоції\"] }, \"Symbols\": { \"v\": [\"Димволи\"] }, \"Travel & Places\": { \"v\": [\"ŠŸŠ¾Ń—Š·Š“ŠŗŠø та Š¼Ń–ŃŃ†Ń\"] } } }, { \"l\": \"uz\", \"t\": { \"Activities\": { \"v\": [\"Faolliklar\"] }, \"Animals & Nature\": { \"v\": [\"Hayvonlar va Tabiat\"] }, \"Custom\": { \"v\": [\"Moslashtirilgan\"] }, \"Dark skin tone\": { \"v\": [\"Qora rangdagi qoplama\"] }, \"Emoji picker\": { \"v\": [\"Emoji tanlagich\"] }, \"Flags\": { \"v\": [\"Bayroqlar\"] }, \"Food & Drink\": { \"v\": [\"Oziq-ovqat va ichimliklar\"] }, \"Frequently used\": { \"v\": [\"Tez-tez ishlatiladi\"] }, \"Light skin tone\": { \"v\": [\"Yorug` rangdagi qoplama\"] }, \"Medium dark skin tone\": { \"v\": [\"O`rtacha qorong`u rangdagi qoplama\"] }, \"Medium light skin tone\": { \"v\": [\"O`rtacha yorug`lik rangdagi qoplama\"] }, \"Medium skin tone\": { \"v\": [\"O`rtacha rangdagi qoplama\"] }, \"Neutral skin color\": { \"v\": [\"Neytral rang\"] }, \"Objects\": { \"v\": [\"Obyekt\"] }, \"People & Body\": { \"v\": [\"Odamlar va Tana\"] }, \"Pick an emoji\": { \"v\": [\"Emojini tanlang\"] }, \"Search emoji\": { \"v\": [\"Emoji qidirish\"] }, \"Search results\": { \"v\": [\"Qidiruv natijalari\"] }, \"Selected\": { \"v\": [\"Tanlangan\"] }, \"Skin tone\": { \"v\": [\"Odatiy rangdagi qoplama\"] }, \"Smileys & Emotion\": { \"v\": [\"Smayllar va Hissiyotlar\"] }, \"Symbols\": { \"v\": [\"Belgilar\"] }, \"Travel & Places\": { \"v\": [\"Sayohat va Joylar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Activities\": { \"v\": [\"擻动\"] }, \"Animals & Nature\": { \"v\": [\"åŠØē‰© & 自然\"] }, \"Custom\": { \"v\": [\"č‡Ŗå®šä¹‰\"] }, \"Dark skin tone\": { \"v\": [\"ę·±č‰²ēš®č‚¤\"] }, \"Emoji picker\": { \"v\": [\"č”Øęƒ…ę‹¾å–å™Ø\"] }, \"Flags\": { \"v\": [\"ę——åøœ\"] }, \"Food & Drink\": { \"v\": [\"é£Ÿē‰© & 鄮品\"] }, \"Frequently used\": { \"v\": [\"ē»åøøä½æē”Ø\"] }, \"Light skin tone\": { \"v\": [\"ęµ…č‰²ēš®č‚¤\"] }, \"Medium dark skin tone\": { \"v\": [\"äø­ē­‰ę·±č‰²ēš®č‚¤\"] }, \"Medium light skin tone\": { \"v\": [\"äø­ē­‰ęµ…č‰²ēš®č‚¤\"] }, \"Medium skin tone\": { \"v\": [\"äø­ē­‰ēš®č‚¤\"] }, \"Neutral skin color\": { \"v\": [\"äø­ę€§ēš®č‚¤é¢œč‰²\"] }, \"Objects\": { \"v\": [\"物体\"] }, \"People & Body\": { \"v\": [\"äŗŗ & 身体\"] }, \"Pick an emoji\": { \"v\": [\"é€‰ę‹©äø€äøŖč”Øęƒ…\"] }, \"Search emoji\": { \"v\": [\"ęœē“¢č”Øęƒ…\"] }, \"Search results\": { \"v\": [\"ęœē“¢ē»“ęžœ\"] }, \"Selected\": { \"v\": [\"选ꋩ\"] }, \"Skin tone\": { \"v\": [\"ēš®č‚¤\"] }, \"Smileys & Emotion\": { \"v\": [\"笑脸 & ꃅꄟ\"] }, \"Symbols\": { \"v\": [\"ē¬¦å·\"] }, \"Travel & Places\": { \"v\": [\"ę—…ęøø & åœ°ē‚¹\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Activities\": { \"v\": [\"擻動\"] }, \"Animals & Nature\": { \"v\": [\"å‹•ē‰©čˆ‡č‡Ŗē„¶\"] }, \"Custom\": { \"v\": [\"č‡Ŗå®šē¾©\"] }, \"Dark skin tone\": { \"v\": [\"ę·±č†šč‰²\"] }, \"Emoji picker\": { \"v\": [\"č”Øęƒ…ē¬¦č™Ÿéøę“‡å™Ø\"] }, \"Flags\": { \"v\": [\"ę——å¹Ÿ\"] }, \"Food & Drink\": { \"v\": [\"é£Ÿē‰©čˆ‡é£²ę–™\"] }, \"Frequently used\": { \"v\": [\"經常使用\"] }, \"Light skin tone\": { \"v\": [\"ę·ŗč†šč‰²\"] }, \"Medium dark skin tone\": { \"v\": [\"äø­ē­‰ę·±č†šč‰²\"] }, \"Medium light skin tone\": { \"v\": [\"äø­ē­‰ę·ŗč†šč‰²\"] }, \"Medium skin tone\": { \"v\": [\"äø­ē­‰č†šč‰²\"] }, \"Neutral skin color\": { \"v\": [\"äø­ę€§č‰²č†šč‰²\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"éøę“‡č”Øęƒ…ē¬¦č™Ÿ\"] }, \"Search emoji\": { \"v\": [\"ęœå°‹č”Øęƒ…ē¬¦č™Ÿ\"] }, \"Search results\": { \"v\": [\"ęœå°‹ēµęžœ\"] }, \"Selected\": { \"v\": [\"已選\"] }, \"Skin tone\": { \"v\": [\"č†šč‰²\"] }, \"Smileys & Emotion\": { \"v\": [\"č”Øęƒ…\"] }, \"Symbols\": { \"v\": [\"ęØ™čŖŒ\"] }, \"Travel & Places\": { \"v\": [\"ę—…éŠčˆ‡ę™Æé»ž\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Activities\": { \"v\": [\"擻動\"] }, \"Animals & Nature\": { \"v\": [\"å‹•ē‰©čˆ‡č‡Ŗē„¶\"] }, \"Custom\": { \"v\": [\"č‡Ŗå®šē¾©\"] }, \"Dark skin tone\": { \"v\": [\"ę·±č†šč‰²\"] }, \"Emoji picker\": { \"v\": [\"č”Øęƒ…ē¬¦č™ŸęŒ‘éøå™Ø\"] }, \"Flags\": { \"v\": [\"ę——å¹Ÿ\"] }, \"Food & Drink\": { \"v\": [\"é£Ÿē‰©čˆ‡é£²ę–™\"] }, \"Frequently used\": { \"v\": [\"ęœ€čæ‘ä½æē”Ø\"] }, \"Light skin tone\": { \"v\": [\"ę·ŗč†šč‰²\"] }, \"Medium dark skin tone\": { \"v\": [\"äø­ē­‰ę·±č†šč‰²\"] }, \"Medium light skin tone\": { \"v\": [\"äø­ē­‰ę·ŗč†šč‰²\"] }, \"Medium skin tone\": { \"v\": [\"äø­ē­‰č†šč‰²\"] }, \"Neutral skin color\": { \"v\": [\"äø­ę€§č†šč‰²\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"éøę“‡č”Øęƒ…ē¬¦č™Ÿ\"] }, \"Search emoji\": { \"v\": [\"ęœå°‹č”Øęƒ…ē¬¦č™Ÿ\"] }, \"Search results\": { \"v\": [\"ęœå°‹ēµęžœ\"] }, \"Selected\": { \"v\": [\"å·²éøå–\"] }, \"Skin tone\": { \"v\": [\"č†šč‰²\"] }, \"Smileys & Emotion\": { \"v\": [\"č”Øęƒ…\"] }, \"Symbols\": { \"v\": [\"ęØ™čŖŒ\"] }, \"Travel & Places\": { \"v\": [\"ę—…éŠčˆ‡ę™Æé»ž\"] } } }];\nconst t6 = [{ \"l\": \"ar\", \"t\": { \"Add to a project\": { \"v\": [\"أضف ؄لى Ł…Ų“Ų±ŁˆŲ¹\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ų±ŲØŲ· عناصر ŲØŁ…Ų“Ų±ŁˆŲ¹ Ł„ŲŖŲ³Ł‡ŁŠŁ„ Ų§Ł„Ų¹Ų«ŁˆŲ± Ų¹Ł„ŁŠŁ‡Ų§\"] }, \"Failed to add the item to the project\": { \"v\": [\"ŲŖŲ¹Ų°Ų± Ų±ŲØŲ· عنصر ŲØŁ…Ų“Ų±ŁˆŲ¹\"] }, \"Failed to create a project\": { \"v\": [\"ŲŖŲ¹Ų°Ų± ؄نؓاؔ Ł…Ų“Ų±ŁˆŲ¹\"] }, \"Failed to rename the project\": { \"v\": [\"تعذّر تغيير اسم Ų§Ł„Ł…Ų“Ų±ŁˆŲ¹\"] }, \"Type to search for existing projects\": { \"v\": [\"Ų£ŁƒŲŖŁŲØ للبحث في Ų§Ł„Ł…Ų“Ų§Ų±ŁŠŲ¹ Ų§Ł„Ł…ŁˆŲ¬ŁˆŲÆŲ©\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Add to a project\": { \"v\": [\"Přidat do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Připojte položky k projektu, čƭmž budou snĆ”ze dohledatelnĆ©\"] }, \"Failed to add the item to the project\": { \"v\": [\"Položku se nepodařilo přidat do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Projekt se nepodařilo vytvořit\"] }, \"Failed to rename the project\": { \"v\": [\"Projekt se nepodařilo přejmenovat\"] }, \"Type to search for existing projects\": { \"v\": [\"PsanĆ­m vyhledĆ”vejte existujĆ­cĆ­ projekty\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Add to a project\": { \"v\": [\"TilfĆøj til et projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Forbind elementer til et projekt for at gĆøre dem nemmere at finde\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kunne ikke fĆøje elementet til projektet\"] }, \"Failed to create a project\": { \"v\": [\"Kunne ikke oprette et projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Projektet kunne ikke omdĆøbes\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for at sĆøge efter eksisterende projekter\"] } } }, { \"l\": \"de\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinde Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinden Sie Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Add to a project\": { \"v\": [\"Προσθήκη σε ένα έργο\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ī£Ļ…Ī½Ī“Ī­ĻƒĻ„Īµ αντικείμενα σε ένα έργο για να τα Ī²ĻĪÆĻƒĪŗĪµĻ„Īµ πιο ĪµĻĪŗĪæĪ»Ī±\"] }, \"Failed to add the item to the project\": { \"v\": [\"Αποτυχία Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ·Ļ‚ του αντικειμένου ĻƒĻ„Īæ έργο\"] }, \"Failed to create a project\": { \"v\": [\"Αποτυχία Γημιουργίας έργου\"] }, \"Failed to rename the project\": { \"v\": [\"Αποτυχία Ī¼ĪµĻ„ĪæĪ½ĪæĪ¼Ī±ĻƒĪÆĪ±Ļ‚ του έργου\"] }, \"Type to search for existing projects\": { \"v\": [\"Ī Ī»Ī·ĪŗĻ„ĻĪæĪ»ĪæĪ³Ī®ĻƒĻ„Īµ για Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ļ…Ļ€Ī±ĻĻ‡ĻŒĪ½Ļ„Ļ‰Ī½ έργων\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Add to a project\": { \"v\": [\"Add to a project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connect items to a project to make them easier to find\"] }, \"Failed to add the item to the project\": { \"v\": [\"Failed to add the item to the project\"] }, \"Failed to create a project\": { \"v\": [\"Failed to create a project\"] }, \"Failed to rename the project\": { \"v\": [\"Failed to rename the project\"] }, \"Type to search for existing projects\": { \"v\": [\"Type to search for existing projects\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte items a un proyecto para hacerlos mĆ”s fĆ”ciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear un proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte elementos a un proyecto para hacerlos mĆ”s fĆ”ciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear el proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Add to a project\": { \"v\": [\"Lisa projekti\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Selleks, et objekte oleks lihtsam leida, seo nad projektiga\"] }, \"Failed to add the item to the project\": { \"v\": [\"Objekti lisamine projekti ei Ƶnnestunud\"] }, \"Failed to create a project\": { \"v\": [\"Projekti loomine ei Ƶnnestunud\"] }, \"Failed to rename the project\": { \"v\": [\"Projekti nime muutmine ei Ƶnnestunud\"] }, \"Type to search for existing projects\": { \"v\": [\"Olemasolevate projektide otsimiseks kirjuta\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Add to a project\": { \"v\": [\"Ų§ŁŲ²ŁˆŲÆŁ† به Ł¾Ų±ŁˆŚ˜Ł‡\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"برای پیدا کردن Ų±Ų§Ų­ŲŖā€ŒŲŖŲ±ŲŒ Ł…ŁˆŲ§Ų±ŲÆŪŒ Ų±Ų§ به Ł¾Ų±ŁˆŚ˜Ł‡ متصل Ś©Ł†ŪŒŲÆ\"] }, \"Failed to add the item to the project\": { \"v\": [\"Ł…ŁˆŲ§Ų±ŲÆ به Ł¾Ų±ŁˆŚ˜Ł‡ اضافه نؓد\"] }, \"Failed to create a project\": { \"v\": [\"ایجاد Ł¾Ų±ŁˆŚ˜Ł‡ نامؤفق بود\"] }, \"Failed to rename the project\": { \"v\": [\"تغییر نام Ł¾Ų±ŁˆŚ˜Ł‡ انجام نؓد\"] }, \"Type to search for existing projects\": { \"v\": [\"برای جستجوی Ł¾Ų±ŁˆŚ˜Ł‡ā€ŒŁ‡Ų§ŪŒ Ł…ŁˆŲ¬ŁˆŲÆ تایپ Ś©Ł†ŪŒŲÆ\"] } } }, { \"l\": \"fi\", \"t\": { \"Add to a project\": { \"v\": [\"LisƤƤ projektiin\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"YhdistƤ kohteet projektiin, jotta ne olisivat helpompia lƶytƤƤ\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kohteiden lisƤƤminen projektiin epƤonnistui\"] }, \"Failed to create a project\": { \"v\": [\"Projektin luominen epƤonnistui\"] }, \"Failed to rename the project\": { \"v\": [\"Projektin nimeƤminen epƤonnistui\"] }, \"Type to search for existing projects\": { \"v\": [\"Kirjoita etsiƤksesi olemassaolevia projekteja\"] } } }, { \"l\": \"fr\", \"t\": { \"Add to a project\": { \"v\": [\"Ajouter Ć  un projet\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connectez des Ć©lĆ©ments Ć  un projet pour les retrouver plus facilement\"] }, \"Failed to add the item to the project\": { \"v\": [\"Impossible d'ajouter l'Ć©lĆ©ment au projet\"] }, \"Failed to create a project\": { \"v\": [\"Impossible de crĆ©er un projet\"] }, \"Failed to rename the project\": { \"v\": [\"Impossible de renommer le projet\"] }, \"Type to search for existing projects\": { \"v\": [\"Tapez pour rechercher des projets existants\"] } } }, { \"l\": \"ga\", \"t\": { \"Add to a project\": { \"v\": [\"Cuir le tionscadal\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ceangail mĆ­reanna le tionscadal chun iad a dhĆ©anamh nĆ­os Ć©asca iad a aimsiĆŗ\"] }, \"Failed to add the item to the project\": { \"v\": [\"Theip ar an mĆ­r a chur leis an tionscadal\"] }, \"Failed to create a project\": { \"v\": [\"Theip ar thionscadal a chruthĆŗ\"] }, \"Failed to rename the project\": { \"v\": [\"Theip ar an tionscadal a athainmniĆŗ\"] }, \"Type to search for existing projects\": { \"v\": [\"ClóscrĆ­obh chun tionscadail atĆ” ann cheana a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Add to a project\": { \"v\": [\"Engadir a un proxecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar elementos a un proxecto para facelos mĆ”is doados de atopar\"] }, \"Failed to add the item to the project\": { \"v\": [\"Produciuse un fallo ao engadir o elemento ao proxecto\"] }, \"Failed to create a project\": { \"v\": [\"Produciuse un fallo ao crear un proxecto\"] }, \"Failed to rename the project\": { \"v\": [\"Produciuse un fallo ao cambiarlle o nome ao proxecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proxectos existentes\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Add to a project\": { \"v\": [\"Dodaj u projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Povežite stavke s projektom kako biste ih lakÅ”e pronaÅ”li\"] }, \"Failed to add the item to the project\": { \"v\": [\"Neuspjelo dodavanje stavke u projekt\"] }, \"Failed to create a project\": { \"v\": [\"Neuspjelo stvaranje projekta\"] }, \"Failed to rename the project\": { \"v\": [\"Neuspjelo preimenovanje projekta\"] }, \"Type to search for existing projects\": { \"v\": [\"UpiÅ”ite za pretraživanje postojećih projekata\"] } } }, { \"l\": \"hu\", \"t\": { \"Add to a project\": { \"v\": [\"HozzĆ”adĆ”s egy projekthez\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Kapcsoljon elemeket egy projekthez, hogy kƶnnyebben megtalĆ”lhatók legyenek\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nem sikerült az elem projekthez adĆ”sa\"] }, \"Failed to create a project\": { \"v\": [\"Nem sikerült a projekt lĆ©trehozĆ”sa\"] }, \"Failed to rename the project\": { \"v\": [\"Nem sikerült a projekt Ć”tnevezĆ©se\"] }, \"Type to search for existing projects\": { \"v\": [\"GĆ©peljen a meglĆ©vő projektek keresĆ©sĆ©hez\"] } } }, { \"l\": \"id\", \"t\": { \"Add to a project\": { \"v\": [\"Tambahkan ke proyek\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Hubungkan item ke proyek agar lebih mudah ditemukan\"] }, \"Failed to add the item to the project\": { \"v\": [\"Gagal menambahkan item ke proyek\"] }, \"Failed to create a project\": { \"v\": [\"Gagal membuat proyek\"] }, \"Failed to rename the project\": { \"v\": [\"Gagal mengganti nama proyek\"] }, \"Type to search for existing projects\": { \"v\": [\"Ketik untuk mencari proyek yang sudah ada\"] } } }, { \"l\": \"is\", \"t\": { \"Add to a project\": { \"v\": [\"BƦta viư verkefni\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Tengdu atriưi viư verkefni til aư gera einfaldara aư finna þau\"] }, \"Failed to add the item to the project\": { \"v\": [\"Mistókst aư bƦta atriưinu Ć­ verkefniư\"] }, \"Failed to create a project\": { \"v\": [\"Mistókst aư ĆŗtbĆŗa verkefni\"] }, \"Failed to rename the project\": { \"v\": [\"Mistókst aư endurnefna verkefniư\"] }, \"Type to search for existing projects\": { \"v\": [\"Skrifaưu hĆ©r til aư leita aư fyrirliggjandi verkefnum\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Add to a project\": { \"v\": [\"ćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆć«čæ½åŠ ć™ć‚‹\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"é …ē›®ć‚’ćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆć«ęŽ„ē¶šć—ć¦ę¤œē“¢ć—ć‚„ć™ćć™ć‚‹\"] }, \"Failed to add the item to the project\": { \"v\": [\"ćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆćøć®ć‚¢ć‚¤ćƒ†ćƒ ć®čæ½åŠ ć«å¤±ę•—ć—ć¾ć—ćŸ\"] }, \"Failed to create a project\": { \"v\": [\"ćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆć®ä½œęˆć«å¤±ę•—ć—ć¾ć—ćŸ\"] }, \"Failed to rename the project\": { \"v\": [\"ćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆć®åå‰å¤‰ę›“ć«å¤±ę•—ć—ć¾ć—ćŸ\"] }, \"Type to search for existing projects\": { \"v\": [\"ę—¢å­˜ć®ćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆć‚’ę¤œē“¢ć™ć‚‹ćŸć‚ć«å…„åŠ›ć—ć¾ć™\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Add to a project\": { \"v\": [\"ķ”„ė”œģ ķŠøģ— 추가\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ķ•­ėŖ©ģ„ ė” ģ‰½ź²Œ ģ°¾ģ„ 수 ģžˆė„ė” ķ”„ė”œģ ķŠøģ— ģ—°ź²°ķ•˜ģ„øģš”.\"] }, \"Failed to add the item to the project\": { \"v\": [\"ķ•­ėŖ©ģ„ ķ”„ė”œģ ķŠøģ— ģ¶”ź°€ķ•˜ėŠ” ė° ģ‹¤ķŒØķ•Ø\"] }, \"Failed to create a project\": { \"v\": [\"ķ”„ė”œģ ķŠøė„¼ ė§Œė“œėŠ” ė° ģ‹¤ķŒØķ•Ø\"] }, \"Failed to rename the project\": { \"v\": [\"ķ”„ė”œģ ķŠøģ˜ ģ“ė¦„ģ„ ė°”ź¾øėŠ” ė° ģ‹¤ķŒØķ•Ø\"] }, \"Type to search for existing projects\": { \"v\": [\"ģž…ė „ķ•˜ģ—¬ ķ”„ė”œģ ķŠøė„¼ ź²€ģƒ‰\"] } } }, { \"l\": \"lo\", \"t\": { \"Add to a project\": { \"v\": [\"ą»€ąŗžąŗµą»ˆąŗ”ą»ƒąŗŖą»ˆą»‚ąŗ„ąŗ‡ąŗąŗ²ąŗ™\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ą»€ąŗŠąŗ·ą»ˆąŗ­ąŗ”ąŗ•ą»ą»ˆąŗ„ąŗ²ąŗąŗąŗ²ąŗ™ąŗ•ą»ˆąŗ²ąŗ‡ą»†ą»ƒąŗŖą»ˆą»‚ąŗ„ąŗ‡ąŗąŗ²ąŗ™ ą»€ąŗžąŗ·ą»ˆąŗ­ą»€ąŗ®ąŗ±ąŗ”ą»ƒąŗ«ą»‰ąŗŠąŗ­ąŗąŗ«ąŗ²ąŗ‡ą»ˆąŗ²ąŗąŗ‚ąŗ¶ą»‰ąŗ™\"] }, \"Failed to add the item to the project\": { \"v\": [\"ąŗšą»ą»ˆąŗŖąŗ²ąŗ”ąŗ²ąŗ”ą»€ąŗžąŗµą»ˆąŗ”ąŗ„ąŗ²ąŗąŗąŗ²ąŗ™ą»ƒąŗŖą»ˆą»‚ąŗ„ąŗ‡ąŗąŗ²ąŗ™ą»„ąŗ”ą»‰\"] }, \"Failed to create a project\": { \"v\": [\"ąŗšą»ą»ˆąŗŖąŗ²ąŗ”ąŗ²ąŗ”ąŗŖą»‰ąŗ²ąŗ‡ą»‚ąŗ„ąŗ‡ąŗąŗ²ąŗ™ą»„ąŗ”ą»‰\"] }, \"Failed to rename the project\": { \"v\": [\"ąŗšą»ą»ˆąŗŖąŗ²ąŗ”ąŗ²ąŗ”ąŗ›ą»ˆąŗ½ąŗ™ąŗŠąŗ·ą»ˆą»‚ąŗ„ąŗ‡ąŗąŗ²ąŗ™ą»„ąŗ”ą»‰\"] }, \"Type to search for existing projects\": { \"v\": [\"ąŗžąŗ“ąŗ”ą»€ąŗžąŗ·ą»ˆąŗ­ąŗ„ąŗ»ą»‰ąŗ™ąŗ«ąŗ²ą»‚ąŗ„ąŗ‡ąŗąŗ²ąŗ™ąŗ—ąŗµą»ˆąŗ”ąŗµąŗ¢ąŗ¹ą»ˆ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Add to a project\": { \"v\": [\"Pridėti prie projekto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Priskirkite elementus prie projekto, kad juos bÅ«tų lengviau rasti\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nepavyko pridėti elemento prie projekto\"] }, \"Failed to create a project\": { \"v\": [\"Nepavyko sukurti projekto\"] }, \"Failed to rename the project\": { \"v\": [\"Nepavyko pervadinti projekto\"] }, \"Type to search for existing projects\": { \"v\": [\"Ä®veskite tekstą, kad surastumėte esamus projektus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Add to a project\": { \"v\": [\"Š”Š¾Š“Š°Ń˜ во проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ŠŸŠ¾Š²Ń€Š·ŠµŃ‚Šµ ги елементите со проект за Га биГе полесно Га се Š½Š°Ń˜Š“ат\"] }, \"Failed to add the item to the project\": { \"v\": [\"ŠŠµŃƒŃŠæŠµŃˆŠ½Š¾ ГоГавање на елементот во проектот\"] }, \"Failed to create a project\": { \"v\": [\"ŠŠµŃƒŃŠæŠµŃˆŠ½Š¾ ŠŗŃ€ŠµŠøŃ€Š°ŃšŠµ на проект\"] }, \"Failed to rename the project\": { \"v\": [\"ŠŠµŃƒŃŠæŠµŃˆŠ½Š¾ ŠæŃ€ŠµŠøŠ¼ŠµŠ½ŃƒŠ²Š°ŃšŠµ на проектот\"] }, \"Type to search for existing projects\": { \"v\": [\"Пишувај за ŠæŃ€ŠµŠ±Š°Ń€ŃƒŠ²Š°ŃšŠµ постоечки проекти\"] } } }, { \"l\": \"mn\", \"t\": { \"Add to a project\": { \"v\": [\"ТөсөлГ Š½ŃŠ¼ŃŃ…\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Š„ŃŠ»Š±Š°Ń€ олохын Ń‚ŃƒŠ»Š“ зүйлсийг Ń‚Ó©ŃÓ©Š»Ń‚ŃŠ¹ холбоно уу\"] }, \"Failed to add the item to the project\": { \"v\": [\"Зүйлийг төсөлГ Š½ŃŠ¼Š¶ чаГсангүй\"] }, \"Failed to create a project\": { \"v\": [\"Төсөл ŅÆŅÆŃŠ³ŃŠ¶ чаГсангүй\"] }, \"Failed to rename the project\": { \"v\": [\"Төслийн Š½ŃŃ€ŠøŠ¹Š³ солиж чаГсангүй\"] }, \"Type to search for existing projects\": { \"v\": [\"ŠžŠ“Š¾Š¾ байгаа төслүүГийг хайхын Ń‚ŃƒŠ»Š“ Š±ŠøŃ‡Š½Ń ŅÆŅÆ\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Add to a project\": { \"v\": [\"Legge til i et prosjekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Koble elementer til et prosjekt for Ć„ gjĆøre det enklere Ć„ finne dem\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kan ikke legge til elementet i prosjektet\"] }, \"Failed to create a project\": { \"v\": [\"Kan ikke opprette et prosjekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunne ikke gi prosjektet nytt navn\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for Ć„ sĆøke for eksisterende prosjekter\"] } } }, { \"l\": \"nl\", \"t\": { \"Add to a project\": { \"v\": [\"Toevoegen aan een project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Items aan een project koppelen om ze eenvoudiger te vinden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Toevoegen van item aan project mislukt\"] }, \"Failed to create a project\": { \"v\": [\"Project aanmaken mislukt\"] }, \"Failed to rename the project\": { \"v\": [\"Project hernoemen mislukt\"] }, \"Type to search for existing projects\": { \"v\": [\"Typ om te zoeken naar bestaande projecten\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Add to a project\": { \"v\": [\"Dodaj do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Połącz elementy z projektem, aby ułatwić ich znalezienie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nie udało się dodać elementu do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nie udało się utworzyć projektu\"] }, \"Failed to rename the project\": { \"v\": [\"Nie udało się zmienić nazwy projektu\"] }, \"Type to search for existing projects\": { \"v\": [\"Wpisz, aby wyszukać istniejące projekty\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar itens a um projeto para encontrĆ”-los mais facilmente\"] }, \"Failed to add the item to the project\": { \"v\": [\"Falha ao adicionar itens ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Falha ao criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Falha ao renomear o projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para pesquisar projetos existentes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ligar itens a um projeto para serem mais facilmente encontrados\"] }, \"Failed to add the item to the project\": { \"v\": [\"NĆ£o foi possĆ­vel adicionar item ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"NĆ£o foi possĆ­vel criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"NĆ£o foi possĆ­vel alterar o nome do projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para procurar projetos existentes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Add to a project\": { \"v\": [\"Š”Š¾Š±Š°Š²ŠøŃ‚ŃŒ в проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ŠŸŠ¾Š“ŠŗŠ»ŃŽŃ‡Š°Š¹Ń‚Šµ ŃŠ»ŠµŠ¼ŠµŠ½Ń‚Ń‹ Šŗ ŠæŃ€Š¾ŠµŠŗŃ‚Ńƒ, чтобы ŠøŃ… было легче найти\"] }, \"Failed to add the item to the project\": { \"v\": [\"ŠŠµ уГалось Š“Š¾Š±Š°Š²ŠøŃ‚ŃŒ ŃŠ»ŠµŠ¼ŠµŠ½Ń‚ в проект\"] }, \"Failed to create a project\": { \"v\": [\"ŠŠµ уГалось ŃŠ¾Š·Š“Š°Ń‚ŃŒ проект\"] }, \"Failed to rename the project\": { \"v\": [\"ŠŠµ уГалось ŠæŠµŃ€ŠµŠøŠ¼ŠµŠ½Š¾Š²Š°Ń‚ŃŒ проект\"] }, \"Type to search for existing projects\": { \"v\": [\"ВвеГите Š“Š»Ń поиска ŃŃƒŃ‰ŠµŃŃ‚Š²ŃƒŃŽŃ‰ŠøŃ… проектов\"] } } }, { \"l\": \"sk\", \"t\": { \"Add to a project\": { \"v\": [\"PridaÅ„ do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"PridaÅ„ položky do projektu pre jednoduchÅ”ie vyhľadĆ”vanie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nepodarilo sa pridaÅ„ položku do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nepodarilo sa vytvoriÅ„ projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Nepodarilo sa premenovaÅ„ projekt\"] }, \"Type to search for existing projects\": { \"v\": [\"Začnite pĆ­saÅ„ pre vyhľadĆ”vanie v existujĆŗcich projektoch\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Add to a project\": { \"v\": [\"Š”Š¾Š“Š°Ń˜ у ŠæŃ€Š¾Ń˜ŠµŠŗŠ°Ń‚\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Повезује ставке у ŠæŃ€Š¾Ń˜ŠµŠŗŠ°Ń‚ како би се лакше ŠæŃ€Š¾Š½Š°ŃˆŠ»Šµ\"] }, \"Failed to add the item to the project\": { \"v\": [\"ŠŠøŃ˜Šµ успело ГоГавање ставке у ŠæŃ€Š¾Ń˜ŠµŠŗŠ°Ń‚\"] }, \"Failed to create a project\": { \"v\": [\"ŠŠøŃ˜Šµ успело ŠŗŃ€ŠµŠøŃ€Š°ŃšŠµ ŠæŃ€Š¾Ń˜ŠµŠŗŃ‚Š°\"] }, \"Failed to rename the project\": { \"v\": [\"ŠŠøŃ˜Šµ успела промена имена ŠæŃ€Š¾Ń˜ŠµŠŗŃ‚а\"] }, \"Type to search for existing projects\": { \"v\": [\"ŠšŃƒŃ†Š°Ń˜Ń‚Šµ Га претражите ŠæŠ¾ŃŃ‚Š¾Ń˜ŠµŃ›Šµ ŠæŃ€Š¾Ń˜ŠµŠŗŃ‚Šµ\"] } } }, { \"l\": \"sv\", \"t\": { \"Add to a project\": { \"v\": [\"LƤgg till i ett projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Koppla objekt till ett projekt sĆ„ blir de lƤttare att hitta\"] }, \"Failed to add the item to the project\": { \"v\": [\"Det gick inte att lƤgga till objektet i projektet\"] }, \"Failed to create a project\": { \"v\": [\"Det gick inte att skapa ett projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Det gick inte att byta namn pĆ„ projektet\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv fƶr att sƶka efter befintliga projekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Add to a project\": { \"v\": [\"Bir projeye ekle\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ɩgeleri daha kolay bulmak iƧin bir proje ile ilişkilendirin\"] }, \"Failed to add the item to the project\": { \"v\": [\"Ɩge projeye eklenemedi\"] }, \"Failed to create a project\": { \"v\": [\"Bir proje oluşturulamadı\"] }, \"Failed to rename the project\": { \"v\": [\"Proje yeniden adlandırılamadı\"] }, \"Type to search for existing projects\": { \"v\": [\"Var olan projeleri aramak iƧin yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Add to a project\": { \"v\": [\"ДоГати Го ŠæŃ€Š¾Ń”ŠŗŃ‚Ńƒ\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ŠŸŃ€ŠøŃ”Š“Š½Š°Š¹Ń‚Šµ Ń€ŠµŃŃƒŃ€ŃŠø Го ŠæŃ€Š¾Ń”ŠŗŃ‚Ńƒ Š“Š»Ń швиГшого пошуку\"] }, \"Failed to add the item to the project\": { \"v\": [\"ŠŠµ Š²Š“Š°Š»Š¾ŃŃ приєГнати Ń€ŠµŃŃƒŃ€Ń Го ŠæŃ€Š¾Ń”ŠŗŃ‚Ńƒ\"] }, \"Failed to create a project\": { \"v\": [\"ŠŠµ Š²Š“Š°Š»Š¾ŃŃ створити проєкт\"] }, \"Failed to rename the project\": { \"v\": [\"ŠŠµ Š²Š“Š°Š»Š¾ŃŃ ŠæŠµŃ€ŠµŠ¹Š¼ŠµŠ½ŃƒŠ²Š°Ń‚Šø проєкт\"] }, \"Type to search for existing projects\": { \"v\": [\"ŠŸŠ¾Ń‡Š½Ń–Ń‚ŃŒ ввоГити, щоб знайти проєкт\"] } } }, { \"l\": \"uz\", \"t\": { \"Add to a project\": { \"v\": [\"Loyihaga qo'shish\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Elementlarni topishni osonlashtirish uchun ularni loyihaga ulang\"] }, \"Failed to add the item to the project\": { \"v\": [\"Ob'ektni loyihaga qo'shib bo'lmadi\"] }, \"Failed to create a project\": { \"v\": [\"Loyiha yaratib boā€˜lmadi\"] }, \"Failed to rename the project\": { \"v\": [\"Loyiha nomini oā€˜zgartirib boā€˜lmadi\"] }, \"Type to search for existing projects\": { \"v\": [\"Mavjud loyihalarni qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Add to a project\": { \"v\": [\"ę·»åŠ č‡³äø€äøŖé”¹ē›®\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"å°†ę”ē›®čæžęŽ„č‡³äø€äøŖé”¹ē›®ä»„ę˜“äŗŽęŸ„ę‰¾\"] }, \"Failed to add the item to the project\": { \"v\": [\"ę·»åŠ ę”ē›®č‡³é”¹ē›®å¤±č“„\"] }, \"Failed to create a project\": { \"v\": [\"åˆ›å»ŗé”¹ē›®å¤±č“„\"] }, \"Failed to rename the project\": { \"v\": [\"é‡å‘½åé”¹ē›®å¤±č“„\"] }, \"Type to search for existing projects\": { \"v\": [\"č¾“å…„ä»„ęœē“¢ēŽ°å­˜é”¹ē›®\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Add to a project\": { \"v\": [\"ę·»åŠ åˆ°ę–¹ę”ˆäø­\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"å°‡é …ē›®é€£ęŽ„åˆ°ę–¹ę”ˆäø­ļ¼Œä»„ä¾æę›“å®¹ę˜“ę‰¾åˆ°ć€‚\"] }, \"Failed to add the item to the project\": { \"v\": [\"ē„”ę³•å°‡é …ē›®ę·»åŠ åˆ°ę–¹ę”ˆäø­\"] }, \"Failed to create a project\": { \"v\": [\"ē„”ę³•å‰µå»ŗę–¹ę”ˆ\"] }, \"Failed to rename the project\": { \"v\": [\"ē„”ę³•é‡å‘½åę–¹ę”ˆ\"] }, \"Type to search for existing projects\": { \"v\": [\"č¼øå…„ä»„ęœē“¢ē¾ęœ‰ę–¹ę”ˆ\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Add to a project\": { \"v\": [\"ę–°å¢žč‡³å°ˆę”ˆäø­\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"å°‡é …ē›®é€£ēµč‡³å°ˆę”ˆäø­ä»„ę–¹ä¾æå°‹ę‰¾\"] }, \"Failed to add the item to the project\": { \"v\": [\"ę–°å¢žé …ē›®č‡³å°ˆę”ˆå¤±ę•—\"] }, \"Failed to create a project\": { \"v\": [\"å»ŗē«‹å°ˆę”ˆå¤±ę•—\"] }, \"Failed to rename the project\": { \"v\": [\"é‡ę–°å‘½åå°ˆę”ˆå¤±ę•—\"] }, \"Type to search for existing projects\": { \"v\": [\"č¼øå…„ä»„ęœå°‹ę—¢ęœ‰å°ˆę”ˆ\"] } } }];\nconst t7 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"MezernĆ­k\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Slet\"] }, \"Enter\": { \"v\": [\"Indtast\"] }, \"Escape\": { \"v\": [\"Afbrud\"] }, \"Shift\": { \"v\": [\"Skift\"] }, \"Space\": { \"v\": [\"Mellemrum\"] }, \"Tab\": { \"v\": [\"Faneblad\"] } } }, { \"l\": \"de\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Strg\"] }, \"Delete\": { \"v\": [\"Entf\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Umschalt\"] }, \"Space\": { \"v\": [\"Leertaste\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Strg\"] }, \"Delete\": { \"v\": [\"Entf\"] }, \"Enter\": { \"v\": [\"Eingabe\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Umschalt\"] }, \"Space\": { \"v\": [\"Leertaste\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"el\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Kustutusklahv\"] }, \"Enter\": { \"v\": [\"Sisestusklahv\"] }, \"Escape\": { \"v\": [\"Esc-klahv\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Tühikuklahv\"] }, \"Tab\": { \"v\": [\"Tabulaator\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Suppr\"] }, \"Enter\": { \"v\": [\"EntrĆ©e\"] }, \"Escape\": { \"v\": [\"Echap\"] }, \"Shift\": { \"v\": [\"Maj\"] }, \"Space\": { \"v\": [\"Espace\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"ga\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Scrios\"] }, \"Enter\": { \"v\": [\"IontrĆ”il\"] }, \"Escape\": { \"v\": [\"ƉalĆŗ\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"SpĆ”s\"] }, \"Tab\": { \"v\": [\"TĆ”b\"] } } }, { \"l\": \"gl\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Eliminar\"] }, \"Enter\": { \"v\": [\"Intro\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"MaiĆŗs.\"] }, \"Space\": { \"v\": [\"Espazo\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"ObriÅ”i\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"hu\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"TƶrlĆ©s\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Szókƶz\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"id\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Hapus\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Spasi\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"lo\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"ຄຶບ\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"IÅ”trinti\"] }, \"Enter\": { \"v\": [\"Ä®vesti\"] }, \"Escape\": { \"v\": [\"IÅ”eiti\"] }, \"Shift\": { \"v\": ['\"Shift\"'] }, \"Space\": { \"v\": ['\"Space\"'] }, \"Tab\": { \"v\": ['\"Tab\"'] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Š˜Š·Š±Ń€ŠøŃˆŠø\"] }, \"Enter\": { \"v\": [\"Ентер\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"ŠŸŃ€Š°Š·Š½Š¾ место\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"mn\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Устгах\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Excluir\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Barra de espaƧo\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"ŠŸŃ€Š¾Š±ŠµŠ»\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"ŠžŠ±Ń€ŠøŃˆŠø\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"sv\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Mellanslag\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"tr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"O'chirish\"] }, \"Enter\": { \"v\": [\"Kirish\"] }, \"Escape\": { \"v\": [\"Orqaga\"] }, \"Shift\": { \"v\": [\"Yuqorigi\"] }, \"Space\": { \"v\": [\"Bo'shliq\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"ē©ŗē™½éµ\"] }, \"Tab\": { \"v\": [\"Tab鍵\"] } } }];\nconst t8 = [{ \"l\": \"ar\", \"t\": { \"Any link\": { \"v\": [\"Ų£ŁŠŁ‘ŁŽ Ų±Ų§ŲØŲ·\"] } } }, { \"l\": \"ast\", \"t\": { \"Any link\": { \"v\": [\"Cualesquier enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Any link\": { \"v\": [\"Ethvert link\"] } } }, { \"l\": \"de\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"el\", \"t\": { \"Any link\": { \"v\": [\"ĪŸĻ€ĪæĪ¹ĪæĻƒĪ“Ī®Ļ€ĪæĻ„Īµ ĻƒĻĪ½Ī“ĪµĻƒĪ¼ĪæĻ‚\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Any link\": { \"v\": [\"Any link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Any link\": { \"v\": [\"Mistahes link\"] } } }, { \"l\": \"eu\", \"t\": { \"Any link\": { \"v\": [\"Edozein esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Any link\": { \"v\": [\"هر Ł¾ŪŒŁˆŁ†ŲÆŪŒ\"] } } }, { \"l\": \"fi\", \"t\": { \"Any link\": { \"v\": [\"MikƤ tahansa linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Any link\": { \"v\": [\"N'importe quel lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Any link\": { \"v\": [\"Aon nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Any link\": { \"v\": [\"Calquera ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Any link\": { \"v\": [\"קישור כלשהו\"] } } }, { \"l\": \"hr\", \"t\": { \"Any link\": { \"v\": [\"Bilo koja poveznica\"] } } }, { \"l\": \"hu\", \"t\": { \"Any link\": { \"v\": [\"BĆ”rmely hivatkozĆ”s\"] } } }, { \"l\": \"id\", \"t\": { \"Any link\": { \"v\": [\"Semua tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Any link\": { \"v\": [\"Einhver tengill\"] } } }, { \"l\": \"it\", \"t\": { \"Any link\": { \"v\": [\"Qualsiasi link\"] } } }, { \"l\": \"ja\", \"t\": { \"Any link\": { \"v\": [\"ä»»ę„ć®ćƒŖćƒ³ć‚Æ\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Any link\": { \"v\": [\"ä»»ę„ć®ćƒŖćƒ³ć‚Æ\"] } } }, { \"l\": \"ko\", \"t\": { \"Any link\": { \"v\": [\"아묓 링크\"] } } }, { \"l\": \"lo\", \"t\": { \"Any link\": { \"v\": [\"ąŗ„ąŗ“ąŗ‡ą»ƒąŗ”ąŗą»ą»„ąŗ”ą»‰\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Any link\": { \"v\": [\"Bet kuri nuoroda\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Any link\": { \"v\": [\"Декој линк\"] } } }, { \"l\": \"mn\", \"t\": { \"Any link\": { \"v\": [\"Аливаа холбоос\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Any link\": { \"v\": [\"Enhver lenke\"] } } }, { \"l\": \"nl\", \"t\": { \"Any link\": { \"v\": [\"Elke link\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Any link\": { \"v\": [\"Dowolny link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Any link\": { \"v\": [\"Qualquer link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Any link\": { \"v\": [\"Qualquer hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Any link\": { \"v\": [\"Orice link\"] } } }, { \"l\": \"ru\", \"t\": { \"Any link\": { \"v\": [\"Š›ŃŽŠ±Š°Ń ссылка\"] } } }, { \"l\": \"sk\", \"t\": { \"Any link\": { \"v\": [\"Akýkoľvek odkaz\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Any link\": { \"v\": [\"Било који линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Any link\": { \"v\": [\"Valfri lƤnk\"] } } }, { \"l\": \"tr\", \"t\": { \"Any link\": { \"v\": [\"Herhangi bir bağlantı\"] } } }, { \"l\": \"uk\", \"t\": { \"Any link\": { \"v\": [\"Š‘ŃƒŠ“ŃŒ-ŃŠŗŠµ ŠæŠ¾ŃŠøŠ»Š°Š½Š½Ń\"] } } }, { \"l\": \"uz\", \"t\": { \"Any link\": { \"v\": [\"Har qanday havola\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Any link\": { \"v\": [\"ä»»ä½•é“¾ęŽ„\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }];\nconst t9 = [{ \"l\": \"ar\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Ų£ŁŠŁ‘ Ł…Ų§ŲÆŲ© ŲŖŁ…ŲŖ Ł…Ų“Ų§Ų±ŁƒŲŖŁ‡Ų§ Ł…Ų¹ نفس Ų§Ł„Ł…Ų¬Ł…ŁˆŲ¹Ų© من الأؓخاص Ų³ŁŠŲŖŁ… عرضها هنا\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Ų®Ų·Ų£ في Ų§Ł„Ų­ŲµŁˆŁ„ على Ų§Ł„Ł…ŁˆŲ§Ų±ŲÆ Ų°Ų§ŲŖ الصلة. ŁŠŲ±Ų¬Ł‰ الاتصال بمؓرف النظام Ų¹Ł†ŲÆŁƒ Ų„Ų°Ų§ ŁƒŲ§Ł† Ł„ŲÆŁŠŁƒ Ų£ŁŠŁ‘ أسئلة.\"] }, \"Related resources\": { \"v\": [\"Ł…ŲµŲ§ŲÆŲ± Ų°Ų§ŲŖ صلة\"] } } }, { \"l\": \"ast\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"EquĆ­ va apaecer tolo que compartas col mesmu grupu de persones\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Hebo un error al consiguir los recursos rellacionaos. Ponte en contautu col alministrador del sistema si tienes dalguna entruga.\"] }, \"Related resources\": { \"v\": [\"Recursos rellacionao\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualsevol cosa compartida amb el mateix grup de persones es mostrarĆ  aquĆ­\"] }, \"Related resources\": { \"v\": [\"Recursos relacionats\"] } } }, { \"l\": \"cs\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdĆ­lenĆ©ho stejnĆ© skupině lidĆ­ se zobrazĆ­ zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při zĆ­skĆ”vĆ”nĆ­ souvisejĆ­cĆ­ch prostředkÅÆ. Pokud mĆ”te jakĆ©koli dotazy, obraÅ„te se na sprĆ”vce vĆ”mi využívanĆ©ho systĆ©mu.\"] }, \"Related resources\": { \"v\": [\"SouvisejĆ­cĆ­ prostředky\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdĆ­lenĆ©ho stejnĆ© skupině lidĆ­ se zobrazĆ­ zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při zĆ­skĆ”vĆ”nĆ­ souvisejĆ­cĆ­ch prostředkÅÆ. Pokud mĆ”te jakĆ©koli dotazy, obraÅ„te se na sprĆ”vce vĆ”mi využívanĆ©ho systĆ©mu.\"] }, \"Related resources\": { \"v\": [\"SouvisejĆ­cĆ­ prostředky\"] } } }, { \"l\": \"da\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt der deles med samme gruppe af personer vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fejl ved hentning af relaterede ressourcer. Kontakt venligst din systemadministrator, hvis du har spĆørgsmĆ„l.\"] }, \"Related resources\": { \"v\": [\"Relaterede emner\"] } } }, { \"l\": \"de\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wende dich bitte an deinen Systemadministrator.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wenden Sie sich bitte an Ihre Systemadministration.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"el\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"ĪŸĻ„Ī¹Ī“Ī®Ļ€ĪæĻ„Īµ μοιράζεται με την ίΓια ομάΓα Ī±Ļ„ĻŒĪ¼Ļ‰Ī½ θα εμφανίζεται ĪµĪ“ĻŽ\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Σφάλμα Ī»Ī®ĻˆĪ·Ļ‚ ĻƒĻ‡ĪµĻ„Ī¹ĪŗĻŽĪ½ Ļ€ĻŒĻĻ‰Ī½. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĻ€Ī¹ĪŗĪæĪ¹Ī½Ļ‰Ī½Ī®ĻƒĻ„Īµ με τον Ī“Ī¹Ī±Ļ‡ĪµĪ¹ĻĪ¹ĻƒĻ„Ī® του ĻƒĻ…ĻƒĻ„Ī®Ī¼Ī±Ļ„ĻŒĻ‚ ĻƒĪ±Ļ‚ εάν έχετε ĪæĻ€ĪæĪ¹ĪµĻƒĪ“Ī®Ļ€ĪæĻ„Īµ ĪµĻĻ‰Ļ„Ī®ĻƒĪµĪ¹Ļ‚.\"] }, \"Related resources\": { \"v\": [\"Σχετικοί Ļ€ĻŒĻĪæĪ¹\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Anything shared with the same group of people will show up here\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error getting related resources. Please contact your system administrator if you have any questions.\"] }, \"Related resources\": { \"v\": [\"Related resources\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa que estĆ© compartida con el mismo grupo de personas se mostrarĆ” aquĆ­\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerĆ” aquĆ­.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerĆ” aquĆ­.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacta a tu administrador del sistema si tienes alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo lo que se comparta con el mismo grupo de personas se mostrarĆ” aquĆ­\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor contacte al administrador si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Siin kuvatakse kƵik, mida jagatakse sama kasutajagrupiga\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Viga seotud ressursside saamisel. Küsimuste korral vƵtke ühendust oma süsteemi haldajaga.\"] }, \"Related resources\": { \"v\": [\"Seotud ressursid\"] } } }, { \"l\": \"eu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Pertsona-talde berarekin partekatutako edozer agertuko da hemen\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore bat gertatu da erlazionatutako baliabideak eskuratzean. Jarri harremanetan zure sistemaren administratzailearekin galderarik baduzu.\"] }, \"Related resources\": { \"v\": [\"Erlazionatutako baliabideak\"] } } }, { \"l\": \"fa\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"هر Ś†ŪŒŲ²ŪŒ که ŲØŲ§ ŚÆŲ±ŁˆŁ‡ Ł…Ų“Ų§ŲØŁ‡ŪŒ Ł‡Ł…ā€ŒŲ±Ų³Ų§Ł†ŪŒ ؓود ŲÆŲ± Ų§ŪŒŁ† قسمت Ł†Ł…Ų§ŪŒŲ“ Ł…ŪŒā€ŒŪŒŲ§ŲØŲÆ\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Ų®Ų·Ų§ ŲÆŲ± دریافت منابع Ł…Ų±ŲŖŲØŲ·. لطفاً ŲÆŲ± صورت داؓتن هر ŚÆŁˆŁ†Ł‡ Ų³Ų¤Ų§Ł„ ŲØŲ§ Ł…ŲÆŪŒŲ± Ų³ŪŒŲ³ŲŖŁ… خود ŲŖŁ…Ų§Ų³ بگیرید.\"] }, \"Related resources\": { \"v\": [\"منابع Ł…Ų±ŲŖŲØŲ·\"] } } }, { \"l\": \"fi\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Kaikki saman ryhmƤn kesken jaettu nƤkyy tƤssƤ\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Virhe resurssien haussa. Ota yhteyttƤ jƤrjestelmƤn yllƤpitƤjƤƤn, mikƤli sinulla on kysyttƤvƤƤ.\"] }, \"Related resources\": { \"v\": [\"LiittyvƤt resurssit\"] } } }, { \"l\": \"fr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tout ce qui est partagĆ© avec le mĆŖme groupe de personnes apparaĆ®tra ici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erreur lors de la rĆ©cupĆ©ration des ressources liĆ©es. Contactez votre administrateur systĆØme pour rĆ©pondre Ć  vos Ć©ventuelles questions.\"] }, \"Related resources\": { \"v\": [\"Ressources liĆ©es\"] } } }, { \"l\": \"ga\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"TaispeĆ”nfar aon rud a roinntear leis an ngrĆŗpa cĆ©anna daoine anseo\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"EarrĆ”id agus acmhainnĆ­ gaolmhara Ć” bhfĆ”il. DĆ©an teagmhĆ”il le riarthóir do chórais mĆ” tĆ” aon cheist agat.\"] }, \"Related resources\": { \"v\": [\"AcmhainnĆ­ gaolmhara\"] } } }, { \"l\": \"gl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo o que se comparta co mesmo grupo de persoas aparecerĆ” aquĆ­\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Produciuse un erro ao obter os recursos relacionados. Póñase en contacto coa administración do seu sistema se ten algunha dĆŗbida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"he\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"כל מה ×©×ž×©×•×Ŗ×£ עם אותה קבוצת האנשים יופיע כאן\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"שגיאה ×‘×§×‘×œ×Ŗ המשאבים ×”×§×©×•×Ø×™×. נא ×œ×™×¦×•×Ø קשר עם ×”× ×”×œ×Ŗ ×”×ž×¢×Ø×›×Ŗ אם יש לך ×©××œ×•×Ŗ.\"] }, \"Related resources\": { \"v\": [\"משאבים ×§×©×•×Ø×™×\"] } } }, { \"l\": \"hr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Sve Å”to je podijeljeno s istom grupom ljudi prikazat će se ovdje\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"PogreÅ”ka pri dohvaćanju povezanih resursa. Ako imate pitanja, obratite se svom administratoru sustava.\"] }, \"Related resources\": { \"v\": [\"Povezani resursi\"] } } }, { \"l\": \"hu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Minden, amit ugyanazzal a csoporttal oszt meg, itt fog megjelenni\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Hiba a kapcsolódó erőforrĆ”sok lekĆ©rĆ©se sorĆ”n. Ha kĆ©rdĆ©se van, vegye fel a kapcsolatot a rendszergazdĆ”val.\"] }, \"Related resources\": { \"v\": [\"Kapcsolódó erőforrĆ”sok\"] } } }, { \"l\": \"id\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Apa pun yang dibagikan dengan grup orang yang sama akan muncul di sini\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Kesalahan saat mengambil sumber daya terkait. Hubungi administrator sistem Anda jika ada pertanyaan.\"] }, \"Related resources\": { \"v\": [\"Sumber daya terkait\"] } } }, { \"l\": \"is\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Allt sem deilt er meư sama hópi fólks mun birtast hĆ©r\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Villa viư aư sƦkja tengd tilfƶng. Hafưu samband viư kerfisstjórann þinn ef þú ert meư einhverjar spurningar.\"] }, \"Related resources\": { \"v\": [\"Tengd tilfƶng\"] } } }, { \"l\": \"it\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutto ciò che ĆØ stato condiviso con lo stesso gruppo di persone viene visualizzato qui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore nell'ottenere le risorse correlate. Per qualsiasi domanda, contattare l'amministratore di sistema.\"] }, \"Related resources\": { \"v\": [\"Risorse correlate\"] } } }, { \"l\": \"ja\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"åŒć˜ć‚°ćƒ«ćƒ¼ćƒ—ć§å…±ęœ‰ć—ć¦ć„ć‚‹ć‚‚ć®ćÆć€å…Øć¦ć“ć“ć«č”Øē¤ŗć•ć‚Œć¾ć™\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"é–¢é€£ćƒŖć‚½ćƒ¼ć‚¹ć®å–å¾—ć‚Øćƒ©ćƒ¼ć€‚ć”äøę˜ŽćŖē‚¹ćŒć”ć–ć„ć¾ć—ćŸć‚‰ć€ć‚·ć‚¹ćƒ†ćƒ ē®”ē†č€…ć«ćŠå•ć„åˆć‚ć›ćć ć•ć„ć€‚\"] }, \"Related resources\": { \"v\": [\"é–¢é€£ćƒŖć‚½ćƒ¼ć‚¹\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"åŒć˜ć‚°ćƒ«ćƒ¼ćƒ—ć§å…±ęœ‰ć—ć¦ć„ć‚‹ć‚‚ć®ćÆć€å…Øć¦ć“ć“ć«č”Øē¤ŗć•ć‚Œć¾ć™\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"é–¢é€£ćƒŖć‚½ćƒ¼ć‚¹ć®å–å¾—ć‚Øćƒ©ćƒ¼ć€‚ć”äøę˜ŽćŖē‚¹ćŒć”ć–ć„ć¾ć—ćŸć‚‰ć€ć‚·ć‚¹ćƒ†ćƒ ē®”ē†č€…ć«ćŠå•ć„åˆć‚ć›ćć ć•ć„ć€‚\"] }, \"Related resources\": { \"v\": [\"é–¢é€£ćƒŖć‚½ćƒ¼ć‚¹\"] } } }, { \"l\": \"ko\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"ź°™ģ€ ź·øė£¹ģ˜ ģ‚¬ģš©ģžģ™€ 공유된 ėŖØė“  ź²ƒė“¤ģ“ ģ“ź³³ģ— ė‚˜ķƒ€ė‚©ė‹ˆė‹¤.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"꓀련 ė¦¬ģ†ŒģŠ¤ė„¼ ź°€ģ øģ˜¤ėŠ” 중 ģ˜¤ė„˜ź°€ ė°œģƒķ–ˆģŠµė‹ˆė‹¤. ź¶źøˆķ•œ ź²ƒģ“ ģžˆėŠ” 경우 ģ‹œģŠ¤ķ…œ ź“€ė¦¬ģžģ—ź²Œ ģ—°ė½ķ•“ ģ£¼ģ„øģš”.\"] }, \"Related resources\": { \"v\": [\"꓀련 ė¦¬ģ†ŒģŠ¤\"] } } }, { \"l\": \"lo\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"ąŗ—ąŗøąŗąŗ¢ą»ˆąŗ²ąŗ‡ąŗ—ąŗµą»ˆą»ąŗšą»ˆąŗ‡ąŗ›ąŗ±ąŗ™ąŗąŗ±ąŗšąŗąŗøą»ˆąŗ”ąŗ„ąŗ»ąŗ™ąŗ”ąŗ½ąŗ§ąŗąŗ±ąŗ™ąŗˆąŗ°ąŗŖąŗ°ą»ąŗ”ąŗ‡ąŗ¢ąŗ¹ą»ˆąŗšą»ˆąŗ­ąŗ™ąŗ™ąŗµą»‰\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"ą»€ąŗąŗµąŗ”ąŗ‚ą»ą»‰ąŗœąŗ“ąŗ”ąŗžąŗ²ąŗ”ą»ƒąŗ™ąŗąŗ²ąŗ™ą»€ąŗ­ąŗµą»‰ąŗ™ąŗ‚ą»ą»‰ąŗ”ąŗ¹ąŗ™ąŗŠąŗ±ąŗšąŗžąŗ°ąŗąŗ²ąŗąŗ­ąŗ™ąŗ—ąŗµą»ˆąŗą»ˆąŗ½ąŗ§ąŗ‚ą»‰ąŗ­ąŗ‡. ąŗąŗ°ąŗ„ąŗøąŗ™ąŗ²ąŗ•ąŗ“ąŗ”ąŗ•ą»ą»ˆąŗœąŗ¹ą»‰ą»€ąŗšąŗ“ą»ˆąŗ‡ą»ąŗąŗ‡ąŗ„ąŗ°ąŗšąŗ»ąŗšąŗ‚ąŗ­ąŗ‡ąŗ—ą»ˆąŗ²ąŗ™ ąŗ–ą»‰ąŗ²ąŗ—ą»ˆąŗ²ąŗ™ąŗ”ąŗµąŗ„ąŗ³ąŗ–ąŗ²ąŗ”.\"] }, \"Related resources\": { \"v\": [\"ąŗŠąŗ±ąŗšąŗžąŗ°ąŗąŗ²ąŗąŗ­ąŗ™ąŗ—ąŗµą»ˆąŗą»ˆąŗ½ąŗ§ąŗ‚ą»‰ąŗ­ąŗ‡\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Čia bus rodomi visi ÄÆraÅ”ai, kuriais pasidalinta su ta pačia žmonių grupe\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Kilo klaida gaunant susijusius iÅ”teklius. Jei turite klausimų, kreipkitės ÄÆ sistemos administratorių.\"] }, \"Related resources\": { \"v\": [\"Susiję iÅ”tekliai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Дè ŃˆŃ‚Š¾ е споГелено со истата Š³Ń€ŃƒŠæŠ° Š»ŃƒŃ“Šµ ќе се појави овГе\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Š“Ń€ŠµŃˆŠŗŠ° при Гобивање поврзани Ń€ŠµŃŃƒŃ€ŃŠø. Ве молиме ŠŗŠ¾Š½Ń‚Š°ŠŗŃ‚ŠøŃ€Š°Ń˜Ń‚Šµ го Š²Š°ŃˆŠøŠ¾Ń‚ систем аГминистратор ако имате ŠæŃ€Š°ŃˆŠ°ŃšŠ°.\"] }, \"Related resources\": { \"v\": [\"ŠŸŠ¾Š²Ń€Š·Š°Š½Šø Ń€ŠµŃŃƒŃ€ŃŠø\"] } } }, { \"l\": \"mn\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Ижил Š±ŅÆŠ»ŃŠ³ Ń…ŅÆŠ¼ŅÆŅÆŃŃ‚ŃŠ¹ Ń…ŃƒŠ²Š°Š°Š»Ń†ŃŠ°Š½ бүх зүйл ŃŠ½Š“ харагГана\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"ЄолбогГох нөөцүүГийг авахаГ алГаа гарлаа. ŠŃŃƒŃƒŠ»Ń‚ байвал системийн аГминистратортай холбогГоно уу.\"] }, \"Related resources\": { \"v\": [\"ЄолбогГох нөөцүүГ\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt som er delt med den samme gruppen vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Feil ved henting av relaterte ressurser. Kontakt systemansvarlig hvis du har spĆørsmĆ„l.\"] }, \"Related resources\": { \"v\": [\"Relaterte ressurser\"] } } }, { \"l\": \"nl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles dat gedeeld is met dezelfde groep mensen zal hier getoond worden\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fout bij het ophalen van gerelateerde bronnen. Neem contact op met uw systeembeheerder als u vragen heeft.\"] }, \"Related resources\": { \"v\": [\"Gerelateerde bronnen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutaj pojawi się wszystko, co zostało udostępnione tej samej grupie osób\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Błąd podczas pobierania powiązanych zasobów. Jeśli masz jakiekolwiek pytania, skontaktuj się z administratorem systemu.\"] }, \"Related resources\": { \"v\": [\"Powiązane zasoby\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerĆ” aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter recursos relacionados. Por favor, entre em contato com o administrador do sistema se tiver alguma dĆŗvida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa partilhada com o mesmo grupo de pessoas irĆ” aparecer aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter os recursos relacionados. Por favor, contacte o administrador do sistema se tiver quaisquer perguntas.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"ro\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tot ceea ce este partajat cu același grup de persoane va fi afișat aici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Eroare la preluarea resurselor adiționale. Vă rugăm să contactați administratorul pentru Ć®ntrebări.\"] }, \"Related resources\": { \"v\": [\"Resurse legate\"] } } }, { \"l\": \"ru\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Всё, чем поГелились с той же Š³Ń€ŃƒŠæŠæŠ¾Š¹ Š»ŃŽŠ“ŠµŠ¹, Š±ŃƒŠ“ŠµŃ‚ Š¾Ń‚Š¾Š±Ń€Š°Š¶Š°Ń‚ŃŒŃŃ зГесь\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"ŠžŃˆŠøŠ±ŠŗŠ° при ŠæŠ¾Š»ŃƒŃ‡ŠµŠ½ŠøŠø ŃŠ²ŃŠ·Š°Š½Š½Ń‹Ń… Ń€ŠµŃŃƒŃ€ŃŠ¾Š². Если у вас ŠµŃŃ‚ŃŒ какие-либо вопросы, Š¾Š±Ń€Š°Ń‚ŠøŃ‚ŠµŃŃŒ Šŗ ŃŠøŃŃ‚ŠµŠ¼Š½Š¾Š¼Ńƒ Š°Š“Š¼ŠøŠ½ŠøŃŃ‚Ń€Š°Ń‚Š¾Ń€Ńƒ.\"] }, \"Related resources\": { \"v\": [\"Š”Š²ŃŠ·Š°Š½Š½Ń‹Šµ Ń€ŠµŃŃƒŃ€ŃŃ‹\"] } } }, { \"l\": \"sk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tu sa zobrazĆ­ čokoľvek zdieľanĆ© s rovnakou skupinou ľudĆ­\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba pri zĆ­skavanĆ­ sĆŗvisiacich zdrojov. V prĆ­pade otĆ”zok kontaktujte prosĆ­m svojho systemovĆ©ho administrĆ”tora.\"] }, \"Related resources\": { \"v\": [\"SĆŗvisiace zdroje\"] } } }, { \"l\": \"sl\", \"t\": { \"Related resources\": { \"v\": [\"Povezani viri\"] } } }, { \"l\": \"sr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Две ŃˆŃ‚Š¾ се Гели са истом Š³Ń€ŃƒŠæŠ¾Š¼ Ń™ŃƒŠ“Šø ће се ŠæŠ¾Ń˜Š°Š²ŠøŃ‚Šø овГе\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Š“Ń€ŠµŃˆŠŗŠ° коГ ŠæŃ€ŠøŠ±Š°Š²Ń™Š°ŃšŠ° везаних Ń€ŠµŃŃƒŃ€ŃŠ°. Молимо вас Га се обратите Š°Š“Š¼ŠøŠ½ŠøŃŃ‚Ń€Š°Ń‚Š¾Ń€Ńƒ ако имате ŠæŠøŃ‚Š°ŃšŠ°.\"] }, \"Related resources\": { \"v\": [\"Повезани Ń€ŠµŃŃƒŃ€ŃŠø\"] } } }, { \"l\": \"sv\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Allt som delas med samma grupp av personer visas hƤr\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Det gick inte att hƤmta relaterade resurser. Kontakta systemadministratƶren om du har frĆ„gor.\"] }, \"Related resources\": { \"v\": [\"Relaterade resurser\"] } } }, { \"l\": \"tr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Aynı kişi grubu ile paylaşılan herşey burada gƶrüntülenir\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"İlgili kaynaklara ulaşılırken sorun Ƨıktı. Herhangi bir sorunuz varsa lütfen sistem yƶneticiniz ile gƶrüşün \"] }, \"Related resources\": { \"v\": [\"İlgili kaynaklar\"] } } }, { \"l\": \"uk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Š‘ŃƒŠ“ŃŒ-що Š“Š¾ŃŃ‚ŃƒŠæŠ½Šµ Š“Š»Ń цієї же Š³Ń€ŃƒŠæŠø Š»ŃŽŠ“ŠµŠ¹ буГе показано тут\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Помилка піГ час Š¾Ń‚Ń€ŠøŠ¼Š°Š½Š½Ń пов'ŃŠ·Š°Š½ŠøŃ… Ń€ŠµŃŃƒŃ€ŃŃ–Š². Š‘ŃƒŠ“ŃŒ ласка, ŃŠŗŠ¾Š½Ń‚Š°ŠŗŃ‚ŃƒŠ¹Ń‚Šµ Š· системним аГміністратором, ŃŠŗŃ‰Š¾ у вас виникли Š·Š°ŠæŠøŃ‚Š°Š½Š½Ń.\"] }, \"Related resources\": { \"v\": [\"Пов'ŃŠ·Š°Š½Ń– Ń€ŠµŃŃƒŃ€ŃŠø\"] } } }, { \"l\": \"uz\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Xuddi shu guruhdagi odamlarga ulashilgan hamma narsa shu yerda chiqadi\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Tegishli manbalarni olishda xatolik yuz berdi. Savollaringiz bo'lsa, tizim administratoriga murojaat qiling.\"] }, \"Related resources\": { \"v\": [\"Tegishli manbalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"äøŽåŒē»„ē”Øęˆ·åˆ†äŗ«ēš„ę‰€ęœ‰å†…å®¹éƒ½ä¼šę˜¾ē¤ŗäŗŽę­¤\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"čŽ·å–ē›øå…³čµ„ęŗå‡ŗēŽ°é”™čÆÆć€‚å¦‚ęžœä½ ęœ‰ä»»ä½•é—®é¢˜ļ¼ŒčÆ·č”ē³»ē³»ē»Ÿē®”ē†å‘˜ć€‚\"] }, \"Related resources\": { \"v\": [\"相关资源\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"čˆ‡åŒäø€ēµ„äŗŗå…±äŗ«ēš„ä»»ä½•å…§å®¹éƒ½ęœƒé”Æē¤ŗåœØę­¤č™•\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"å–å¾—ē›øé—œč³‡ęŗę™‚ē™¼ē”ŸéŒÆčŖ¤ć€‚å¦‚ęžœęœ‰ä»»ä½•å•é”Œļ¼Œč«‹čÆēµ”ē³»ēµ±ē®”ē†å“”ć€‚\"] }, \"Related resources\": { \"v\": [\"ē›øé—œč³‡ęŗ\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"čˆ‡ē›øåŒē¾¤ēµ„åˆ†äŗ«ēš„ę‰€ęœ‰å…§å®¹éƒ½ęœƒé”Æē¤ŗę–¼ę­¤\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"å–å¾—ē›øé—œč³‡ęŗę™‚ē™¼ē”ŸéŒÆčŖ¤ć€‚å¦‚ęžœęœ‰ä»»ä½•å•é”Œļ¼Œč«‹čÆēµ”ē³»ēµ±ē®”ē†å“”ć€‚\"] }, \"Related resources\": { \"v\": [\"ē›øé—œč³‡ęŗ\"] } } }];\nconst t10 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"assembling\": { \"v\": [\"sklĆ”dĆ”nĆ­ dohromady\"] }, \"Cancel uploads\": { \"v\": [\"ZruÅ”it nahrĆ”vĆ”nĆ­\"] }, \"Estimating …\": { \"v\": [\"OdhadovĆ”ní …\"] }, \"New\": { \"v\": [\"NovĆ©\"] }, \"paused\": { \"v\": [\"pozastaveno\"] }, \"Upload from device\": { \"v\": [\"NahrĆ”t ze zařízenĆ­\"] }, \"Upload progress\": { \"v\": [\"Postup prÅÆběhu nahrĆ”vĆ”nĆ­\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": {} }, { \"l\": \"de\", \"t\": { \"assembling\": { \"v\": [\"Zusammensetzen\"] }, \"Cancel uploads\": { \"v\": [\"Hochladen abbrechen\"] }, \"Estimating …\": { \"v\": [\"SchƤtze …\"] }, \"New\": { \"v\": [\"Neu\"] }, \"paused\": { \"v\": [\"Pausiert\"] }, \"Upload from device\": { \"v\": [\"Von GerƤt hochladen\"] }, \"Upload progress\": { \"v\": [\"Hochlade-Fortschritt\"] } } }, { \"l\": \"de-DE\", \"t\": { \"assembling\": { \"v\": [\"Zusammensetzen\"] }, \"Cancel uploads\": { \"v\": [\"Hochladen abbrechen\"] }, \"Estimating …\": { \"v\": [\"SchƤtze …\"] }, \"New\": { \"v\": [\"Neu\"] }, \"paused\": { \"v\": [\"Pausiert\"] }, \"Upload from device\": { \"v\": [\"Von GerƤt hochladen\"] }, \"Upload progress\": { \"v\": [\"Hochlade-Fortschritt\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": {} }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"assembling\": { \"v\": [\"koostan üleslaaditud sisu üheks failiks\"] }, \"Cancel uploads\": { \"v\": [\"Katkesta üleslaadimised\"] }, \"Estimating …\": { \"v\": [\"Hindan…\"] }, \"New\": { \"v\": [\"Uus\"] }, \"paused\": { \"v\": [\"peatatud\"] }, \"Upload from device\": { \"v\": [\"Laadi seadmest üles\"] }, \"Upload progress\": { \"v\": [\"Üleslaadimise edenemine\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"assembling\": { \"v\": [\"en cours d'assemblage\"] }, \"Cancel uploads\": { \"v\": [\"Annuler les tĆ©lĆ©versements\"] }, \"Estimating …\": { \"v\": [\"Estimation en cours…\"] }, \"New\": { \"v\": [\"Nouveau\"] }, \"paused\": { \"v\": [\"suspendu\"] }, \"Upload from device\": { \"v\": [\"TĆ©lĆ©verser depuis l'appareil\"] }, \"Upload progress\": { \"v\": [\"Progression du tĆ©lĆ©versement\"] } } }, { \"l\": \"ga\", \"t\": {} }, { \"l\": \"gl\", \"t\": {} }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": {} }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": {} }, { \"l\": \"lo\", \"t\": {} }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": {} }, { \"l\": \"mn\", \"t\": {} }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": {} }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"assembling\": { \"v\": [\"montando\"] }, \"Cancel uploads\": { \"v\": [\"Cancelar uploads\"] }, \"Estimating …\": { \"v\": [\"Calculando …\"] }, \"New\": { \"v\": [\"Novo\"] }, \"paused\": { \"v\": [\"em pausa\"] }, \"Upload from device\": { \"v\": [\"Enviar do dispositivo\"] }, \"Upload progress\": { \"v\": [\"Progresso do upload\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": {} }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": { \"assembling\": { \"v\": [\"sammanstƤller\"] }, \"Cancel uploads\": { \"v\": [\"Avbryt uppladdningar\"] }, \"Estimating …\": { \"v\": [\"BerƤknar …\"] }, \"New\": { \"v\": [\"Ny\"] }, \"paused\": { \"v\": [\"pausad\"] }, \"Upload from device\": { \"v\": [\"Ladda upp frĆ„n enhet\"] }, \"Upload progress\": { \"v\": [\"Uppladdningsfƶrlopp\"] } } }, { \"l\": \"tr\", \"t\": { \"assembling\": { \"v\": [\"birleştiriliyor\"] }, \"Cancel uploads\": { \"v\": [\"Yüklemeleri iptal et\"] }, \"Estimating …\": { \"v\": [\"Ɩngƶrülüyor…\"] }, \"New\": { \"v\": [\"Yeni\"] }, \"paused\": { \"v\": [\"duraklatıldı\"] }, \"Upload from device\": { \"v\": [\"Aygıttan yükle\"] }, \"Upload progress\": { \"v\": [\"Yükleme ilerlemesi\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": {} }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": {} }, { \"l\": \"zh-TW\", \"t\": {} }];\nconst t11 = [{ \"l\": \"ar\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"صورة الملف Ų§Ł„Ų“Ų®ŲµŁŠ Ų§Ł„Ų±Ł…Ų²ŁŠŲ© لــ {displayName} \"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"صورة الملف Ų§Ł„Ų“Ų®ŲµŁŠ Ų§Ł„Ų±Ł…Ų²ŁŠŲ© لــ {displayName}، {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de: {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de: {displayName}, {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"cs\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"ZĆ”stupný obrĆ”zek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"ZĆ”stupný obrĆ”zek uživatele {displayName}, {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"ZĆ”stupný obrĆ”zek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"ZĆ”stupný obrĆ”zek uživatele {displayName}, {status}\"] } } }, { \"l\": \"da\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar af {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar af {displayName}, {status}\"] } } }, { \"l\": \"de\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"el\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Άβαταρ του {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Άβαταρ του {displayName}, {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar of {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar of {displayName}, {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Tunnuspilt: {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Tunnuspilt: {displayName}, {status}\"] } } }, { \"l\": \"eu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}-(e)n irudia\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} -(e)n irudia, {status}\"] } } }, { \"l\": \"fa\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"آواتار {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"آواتار {displayName} ، {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}n avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}n avatar, {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"he\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"×Ŗ×ž×•× ×” ייצוגית של {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"×Ŗ×ž×•× ×” ייצוגית של {displayName}, {status}\"] } } }, { \"l\": \"hr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar od {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar od {displayName}, {status}\"] } } }, { \"l\": \"hu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} profilkĆ©pe\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} profilkĆ©pe, {status}\"] } } }, { \"l\": \"id\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"is\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Auưkennismynd fyrir {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Auưkennismynd fyrir {displayName}, {status}\"] } } }, { \"l\": \"it\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar di {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar di {displayName}, {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} ć®ć‚¢ćƒć‚æćƒ¼\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} ć®ć‚¢ćƒć‚æćƒ¼\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} ć®ć‚¢ćƒć‚æćƒ¼\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} ć®ć‚¢ćƒć‚æćƒ¼\"] } } }, { \"l\": \"ko\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}ė‹˜ģ˜ ģ•„ė°”ķƒ€\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status}ė‹˜ģ˜ ģ•„ė°”ķƒ€\"] } } }, { \"l\": \"lo\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"ąŗ®ąŗ¹ąŗšą»ąŗ—ąŗ™ąŗ•ąŗ»ąŗ§ąŗ‚ąŗ­ąŗ‡ {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"ąŗ®ąŗ¹ąŗšą»ąŗ—ąŗ™ąŗ•ąŗ»ąŗ§ąŗ‚ąŗ­ąŗ‡ {displayName}, {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} avataras\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} avataras, {status}\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар на {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар на {displayName}, {status}\"] } } }, { \"l\": \"mn\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}-ийн аватар\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}-ийн аватар, {status}\"] } } }, { \"l\": \"my\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} į į€€į€­į€Æį€šį€ŗį€•į€½į€¬į€ø\"] } } }, { \"l\": \"nb\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avataren til {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}'s avatar, {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar van {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar van {displayName}, {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Awatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Awatar {displayName}, {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatarul lui {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatarul lui {displayName}, {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Š¤Š¾Ń‚Š¾Š³Ń€Š°Ń„ŠøŃ {displayName}, {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"sl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Podoba {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Prikazna slika {displayName}, {status}\"] } } }, { \"l\": \"sr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар за {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar za {displayName}, {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar fƶr {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar fƶr {displayName}, {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} avatarı\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} avatarı\"] } } }, { \"l\": \"uk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар {displayName}, {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\" {displayName}Avatari\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} Avatari\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}ēš„å¤“åƒ\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}ēš„å¤“åƒļ¼Œ{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} ēš„é ­åƒ\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} ēš„é ­åƒļ¼Œ{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} ēš„å¤§é ­ē…§\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} ēš„å¤§é ­ē…§\"] } } }];\nconst t12 = [{ \"l\": \"ar\", \"t\": { \"away\": { \"v\": [\"غير Ł…ŁˆŲ¬ŁˆŲÆ\"] }, \"busy\": { \"v\": [\"Ł…Ų“ŲŗŁˆŁ„\"] }, \"do not disturb\": { \"v\": [\"ŁŠŁŲ±Ų¬Ł‰ Ų¹ŲÆŁ… ال؄زعاج\"] }, \"invisible\": { \"v\": [\"غير Ł…Ų±Ų¦ŁŠ\"] }, \"offline\": { \"v\": [\"غير متصل\"] }, \"online\": { \"v\": [\"متصل\"] } } }, { \"l\": \"ast\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupĆ”u\"] }, \"do not disturb\": { \"v\": [\"nun molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectĆ”u\"] }, \"online\": { \"v\": [\"en llinia\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprĆ”dněn/a\"] }, \"do not disturb\": { \"v\": [\"neruÅ”it\"] }, \"invisible\": { \"v\": [\"neviditelnĆ©\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprĆ”dněn(a)\"] }, \"do not disturb\": { \"v\": [\"neruÅ”it\"] }, \"invisible\": { \"v\": [\"neviditelnĆ©\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"da\", \"t\": { \"away\": { \"v\": [\"vƦk\"] }, \"busy\": { \"v\": [\"optaget\"] }, \"do not disturb\": { \"v\": [\"forstyr ikke\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"de\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"BeschƤftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stƶren\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"de-DE\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"BeschƤftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stƶren\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"el\", \"t\": { \"away\": { \"v\": [\"μακριά\"] }, \"busy\": { \"v\": [\"Ī±Ļ€Ī±ĻƒĻ‡ĪæĪ»Ī·Ī¼Ī­Ī½ĪæĻ‚\"] }, \"do not disturb\": { \"v\": [\"μην ενοχλείτε\"] }, \"invisible\": { \"v\": [\"Ī±ĻŒĻĪ±Ļ„Īæ\"] }, \"offline\": { \"v\": [\"ĪµĪŗĻ„ĻŒĻ‚ ĻƒĻĪ½Ī“ĪµĻƒĪ·Ļ‚\"] }, \"online\": { \"v\": [\"ĻƒĻ…Ī½Ī“ĪµĪ“ĪµĪ¼Ī­Ī½ĪæĻ‚\"] } } }, { \"l\": \"en-GB\", \"t\": { \"away\": { \"v\": [\"away\"] }, \"busy\": { \"v\": [\"busy\"] }, \"do not disturb\": { \"v\": [\"do not disturb\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de lĆ­nea\"] }, \"online\": { \"v\": [\"en lĆ­nea\"] } } }, { \"l\": \"es-AR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"en lĆ­nea\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de lĆ­nea\"] }, \"online\": { \"v\": [\"en lĆ­nea\"] } } }, { \"l\": \"et-EE\", \"t\": { \"away\": { \"v\": [\"eemal\"] }, \"busy\": { \"v\": [\"hƵivatud\"] }, \"do not disturb\": { \"v\": [\"Ƥra sega\"] }, \"invisible\": { \"v\": [\"nƤhtamatu\"] }, \"offline\": { \"v\": [\"pole vƵrgus\"] }, \"online\": { \"v\": [\"vƵrgus\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"away\": { \"v\": [\"دور Ų§Ų² دستگاه\"] }, \"busy\": { \"v\": [\"Ł…Ų“ŲŗŁˆŁ„\"] }, \"do not disturb\": { \"v\": [\"Ł…Ų²Ų§Ų­Ł… Ł†Ų“ŁˆŪŒŲÆ\"] }, \"invisible\": { \"v\": [\"Ł…Ų®ŁŪŒ\"] }, \"offline\": { \"v\": [\"ŲØŲ±ŁˆŁ†ā€ŒŲ®Ų·\"] }, \"online\": { \"v\": [\"ŲØŲ±Ų®Ų·\"] } } }, { \"l\": \"fi\", \"t\": { \"away\": { \"v\": [\"poissa\"] }, \"busy\": { \"v\": [\"varattu\"] }, \"do not disturb\": { \"v\": [\"ƤlƤ hƤiritse\"] }, \"invisible\": { \"v\": [\"nƤkymƤtƶn\"] }, \"offline\": { \"v\": [\"ei linjalla\"] }, \"online\": { \"v\": [\"linjalla\"] } } }, { \"l\": \"fr\", \"t\": { \"away\": { \"v\": [\"absent\"] }, \"busy\": { \"v\": [\"occupĆ©\"] }, \"do not disturb\": { \"v\": [\"ne pas dĆ©ranger\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"hors ligne\"] }, \"online\": { \"v\": [\"en ligne\"] } } }, { \"l\": \"ga\", \"t\": { \"away\": { \"v\": [\"ar shiĆŗl\"] }, \"busy\": { \"v\": [\"gnóthach\"] }, \"do not disturb\": { \"v\": [\"nĆ” cur as\"] }, \"invisible\": { \"v\": [\"dofheicthe\"] }, \"offline\": { \"v\": [\"as lĆ­ne\"] }, \"online\": { \"v\": [\"ar lĆ­ne\"] } } }, { \"l\": \"gl\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"non molestar\"] }, \"invisible\": { \"v\": [\"invisĆ­bel\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"conectado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"away\": { \"v\": [\"odsutan\"] }, \"busy\": { \"v\": [\"zauzet\"] }, \"do not disturb\": { \"v\": [\"ne smetaj\"] }, \"invisible\": { \"v\": [\"nevidljiv\"] }, \"offline\": { \"v\": [\"izvan mreže\"] }, \"online\": { \"v\": [\"na mreži\"] } } }, { \"l\": \"hu\", \"t\": { \"away\": { \"v\": [\"tĆ”vol\"] }, \"busy\": { \"v\": [\"foglalt\"] }, \"do not disturb\": { \"v\": [\"ne zavarjanak\"] }, \"invisible\": { \"v\": [\"lĆ”thatatlan\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"id\", \"t\": { \"away\": { \"v\": [\"tidak tersedia\"] }, \"busy\": { \"v\": [\"sibuk\"] }, \"do not disturb\": { \"v\": [\"jangan ganggu\"] }, \"invisible\": { \"v\": [\"tidak terlihat\"] }, \"offline\": { \"v\": [\"luring\"] }, \"online\": { \"v\": [\"daring\"] } } }, { \"l\": \"is\", \"t\": { \"away\": { \"v\": [\"Ć­ burtu\"] }, \"busy\": { \"v\": [\"upptekin/n\"] }, \"do not disturb\": { \"v\": [\"ekki ónƔưa\"] }, \"invisible\": { \"v\": [\"ósýnilegt\"] }, \"offline\": { \"v\": [\"ónettengt\"] }, \"online\": { \"v\": [\"nettengt\"] } } }, { \"l\": \"it\", \"t\": { \"away\": { \"v\": [\"via\"] }, \"do not disturb\": { \"v\": [\"non disturbare\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"away\": { \"v\": [\"é›¢ć‚Œć‚‹\"] }, \"busy\": { \"v\": [\"ćƒ“ć‚øćƒ¼\"] }, \"do not disturb\": { \"v\": [\"é‚Ŗé­”ć‚’ć—ćŖć„ć§ćć ć•ć„\"] }, \"invisible\": { \"v\": [\"äøåÆč¦–\"] }, \"offline\": { \"v\": [\"ć‚Ŗćƒ•ćƒ©ć‚¤ćƒ³\"] }, \"online\": { \"v\": [\"ć‚Ŗćƒ³ćƒ©ć‚¤ćƒ³\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"away\": { \"v\": [\"é›¢ć‚Œć‚‹\"] }, \"busy\": { \"v\": [\"ćƒ“ć‚øćƒ¼\"] }, \"do not disturb\": { \"v\": [\"é‚Ŗé­”ć‚’ć—ćŖć„ć§ćć ć•ć„\"] }, \"invisible\": { \"v\": [\"äøåÆč¦–\"] }, \"offline\": { \"v\": [\"ć‚Ŗćƒ•ćƒ©ć‚¤ćƒ³\"] }, \"online\": { \"v\": [\"ć‚Ŗćƒ³ćƒ©ć‚¤ćƒ³\"] } } }, { \"l\": \"ko\", \"t\": { \"away\": { \"v\": [\"ģžė¦¬ 비움\"] }, \"busy\": { \"v\": [\"바쁨\"] }, \"do not disturb\": { \"v\": [\"ė°©ķ•“ źøˆģ§€\"] }, \"invisible\": { \"v\": [\"ė³“ģ“ģ§€ ģ•ŠģŒ\"] }, \"offline\": { \"v\": [\"ģ˜¤ķ”„ė¼ģø\"] }, \"online\": { \"v\": [\"ģ˜Øė¼ģø\"] } } }, { \"l\": \"lo\", \"t\": { \"away\": { \"v\": [\"ąŗšą»ą»ˆąŗ¢ąŗ¹ą»ˆ\"] }, \"busy\": { \"v\": [\"ąŗšą»ą»ˆąŗ§ą»ˆąŗ²ąŗ‡\"] }, \"do not disturb\": { \"v\": [\"ąŗ«ą»‰ąŗ²ąŗ”ąŗ„ąŗ»ąŗšąŗąŗ§ąŗ™\"] }, \"invisible\": { \"v\": [\"ąŗšą»ą»ˆąŗŖąŗ°ą»ąŗ”ąŗ‡\"] }, \"offline\": { \"v\": [\"ąŗ­ąŗ­ąŗšą»„ąŗ„ąŗ™ą»Œ\"] }, \"online\": { \"v\": [\"ąŗ­ąŗ­ąŗ™ą»„ąŗ„ąŗ™ą»Œ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"away\": { \"v\": [\"pasiÅ”alinęs\"] }, \"busy\": { \"v\": [\"užsiėmęs\"] }, \"do not disturb\": { \"v\": [\"netrukdyti\"] }, \"invisible\": { \"v\": [\"nematomas\"] }, \"offline\": { \"v\": [\"neprisijungęs\"] }, \"online\": { \"v\": [\"prisijungęs\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"away\": { \"v\": [\"оГГалечен\"] }, \"busy\": { \"v\": [\"зафатен\"] }, \"do not disturb\": { \"v\": [\"не Š²Š¾Š·Š½ŠµŠ¼ŠøŃ€ŃƒŠ²Š°Ń˜\"] }, \"invisible\": { \"v\": [\"невиГливо\"] }, \"offline\": { \"v\": [\"Š¾Ń„Š»Š°Ń˜Š½\"] }, \"online\": { \"v\": [\"онлајн\"] } } }, { \"l\": \"mn\", \"t\": { \"away\": { \"v\": [\"хол байна\"] }, \"busy\": { \"v\": [\"завгүй\"] }, \"do not disturb\": { \"v\": [\"бүү сааГ бол\"] }, \"invisible\": { \"v\": [\"ŅÆŠ» харагГах\"] }, \"offline\": { \"v\": [\"офлайн\"] }, \"online\": { \"v\": [\"онлайн\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"away\": { \"v\": [\"borte\"] }, \"busy\": { \"v\": [\"opptatt\"] }, \"do not disturb\": { \"v\": [\"ikke forstyrr\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"frakoblet\"] }, \"online\": { \"v\": [\"tilkoblet\"] } } }, { \"l\": \"nl\", \"t\": { \"away\": { \"v\": [\"weg\"] }, \"busy\": { \"v\": [\"bezig\"] }, \"do not disturb\": { \"v\": [\"niet storen\"] }, \"invisible\": { \"v\": [\"Onzichtbaar\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"away\": { \"v\": [\"stąd\"] }, \"busy\": { \"v\": [\"zajęty\"] }, \"do not disturb\": { \"v\": [\"nie przeszkadzać\"] }, \"invisible\": { \"v\": [\"niewidzialny\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"nĆ£o perturbe\"] }, \"invisible\": { \"v\": [\"invisĆ­vel\"] }, \"offline\": { \"v\": [\"off-line\"] }, \"online\": { \"v\": [\"on-line\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"away\": { \"v\": [\"longe\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"nĆ£o incomodar\"] }, \"invisible\": { \"v\": [\"invisĆ­vel\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ro\", \"t\": { \"away\": { \"v\": [\"plecat\"] }, \"do not disturb\": { \"v\": [\"nu deranjați\"] }, \"offline\": { \"v\": [\"deconectat\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ru\", \"t\": { \"away\": { \"v\": [\"Š¾Ń‚ŃŃƒŃ‚ŃŃ‚Š²ŠøŠµ\"] }, \"busy\": { \"v\": [\"Š·Š°Š½ŃŃ‚Ń‹Š¹\"] }, \"do not disturb\": { \"v\": [\"не Š±ŠµŃŠæŠ¾ŠŗŠ¾ŠøŃ‚ŃŒ\"] }, \"invisible\": { \"v\": [\"невиГимый\"] }, \"offline\": { \"v\": [\"офлайн\"] }, \"online\": { \"v\": [\"онлайн\"] } } }, { \"l\": \"sk\", \"t\": { \"away\": { \"v\": [\"neprĆ­tomný\"] }, \"busy\": { \"v\": [\"zaneprĆ”zdnený\"] }, \"do not disturb\": { \"v\": [\"neruÅ”iÅ„\"] }, \"invisible\": { \"v\": [\"neviditeľný\"] }, \"offline\": { \"v\": [\"Odpojený - offline\"] }, \"online\": { \"v\": [\"Pripojený - online\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"away\": { \"v\": [\"Š¾Š“ŃŃƒŃ‚Š°Š½\"] }, \"busy\": { \"v\": [\"Š·Š°ŃƒŠ·ŠµŃ‚\"] }, \"do not disturb\": { \"v\": [\"не ŃƒŠ·Š½ŠµŠ¼ŠøŃ€Š°Š²Š°Ń˜\"] }, \"invisible\": { \"v\": [\"невиГљиво\"] }, \"offline\": { \"v\": [\"ван мреже\"] }, \"online\": { \"v\": [\"на мрежи\"] } } }, { \"l\": \"sv\", \"t\": { \"away\": { \"v\": [\"borta\"] }, \"busy\": { \"v\": [\"upptagen\"] }, \"do not disturb\": { \"v\": [\"stƶr ej\"] }, \"invisible\": { \"v\": [\"osynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"tr\", \"t\": { \"away\": { \"v\": [\"Uzakta\"] }, \"busy\": { \"v\": [\"Meşgul\"] }, \"do not disturb\": { \"v\": [\"Rahatsız etmeyin\"] }, \"invisible\": { \"v\": [\"gƶrünmez\"] }, \"offline\": { \"v\": [\"Ƈevrim dışı\"] }, \"online\": { \"v\": [\"Ƈevrim iƧi\"] } } }, { \"l\": \"uk\", \"t\": { \"away\": { \"v\": [\"Š²Ń–Š“ŃŃƒŃ‚Š½Ń–Š¹\"] }, \"busy\": { \"v\": [\"Š·Š°Š¹Š½ŃŃ‚Š¾\"] }, \"do not disturb\": { \"v\": [\"не Ń‚ŃƒŃ€Š±ŃƒŠ²Š°Ń‚Šø\"] }, \"invisible\": { \"v\": [\"ŠŠµŠ²ŠøŠ“ŠøŠ¼ŠøŠ¹\"] }, \"offline\": { \"v\": [\"не в мережі\"] }, \"online\": { \"v\": [\"в мережі\"] } } }, { \"l\": \"uz\", \"t\": { \"away\": { \"v\": [\"uzoqda\"] }, \"busy\": { \"v\": [\"band\"] }, \"do not disturb\": { \"v\": [\"bezovta qilmang\"] }, \"invisible\": { \"v\": [\"ko'rinmas\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"away\": { \"v\": [\"离开\"] }, \"busy\": { \"v\": [\"繁忙\"] }, \"do not disturb\": { \"v\": [\"请勿打扰\"] }, \"invisible\": { \"v\": [\"éšč—ēš„\"] }, \"offline\": { \"v\": [\"离线\"] }, \"online\": { \"v\": [\"在线\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"åæ™ē¢Œ\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"éšč—ēš„\"] }, \"offline\": { \"v\": [\"é›¢ē·š\"] }, \"online\": { \"v\": [\"在線\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"åæ™ē¢Œ\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"äøåÆč¦‹\"] }, \"offline\": { \"v\": [\"é›¢ē·š\"] }, \"online\": { \"v\": [\"線上\"] } } }];\nconst t13 = [{ \"l\": \"ar\", \"t\": { \"Back to provider selection\": { \"v\": [\"عودة ؄لى اختيار Ų§Ł„Ł…Ų²ŁˆŁ‘ŲÆ\"] }, \"Close Smart Picker\": { \"v\": [\"؄غلاق المحدد Ų§Ł„Ų°ŁƒŁŠ\"] }, \"Smart Picker\": { \"v\": [\"اللاقط Ų§Ł„Ų°ŁƒŁŠ smart picker\"] } } }, { \"l\": \"ast\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la seleición de fornidores\"] }, \"Close Smart Picker\": { \"v\": [\"Zarrar la seleición intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentnĆ­ výběr\"] }, \"Smart Picker\": { \"v\": [\"InteligentnĆ­ výběr\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentnĆ­ výběr\"] }, \"Smart Picker\": { \"v\": [\"InteligentnĆ­ výběr\"] } } }, { \"l\": \"da\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbage til udbydervalg\"] }, \"Close Smart Picker\": { \"v\": [\"Luk Smart VƦlger\"] }, \"Smart Picker\": { \"v\": [\"Smart VƦlger\"] } } }, { \"l\": \"de\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"el\", \"t\": { \"Back to provider selection\": { \"v\": [\"Ī•Ļ€Ī¹ĻƒĻ„ĻĪæĻ†Ī® ĻƒĻ„Ī·Ī½ επιλογή Ļ€Ī±ĻĻŒĻ‡ĪæĻ…\"] }, \"Close Smart Picker\": { \"v\": [\"Κλείσιμο ĪˆĪ¾Ļ…Ļ€Ī½Ī·Ļ‚ Επιλογής\"] }, \"Smart Picker\": { \"v\": [\"ĪˆĪ¾Ļ…Ļ€Ī½Ī· Επιλογή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Back to provider selection\": { \"v\": [\"Back to provider selection\"] }, \"Close Smart Picker\": { \"v\": [\"Close Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tagasi teenusepakkuja valiku juurde\"] }, \"Close Smart Picker\": { \"v\": [\"Sulge nutivalija\"] }, \"Smart Picker\": { \"v\": [\"Nutivalija\"] } } }, { \"l\": \"eu\", \"t\": { \"Back to provider selection\": { \"v\": [\"Itzuli hornitzaileen hautapenera\"] }, \"Close Smart Picker\": { \"v\": [\"Itxi hautatzaile adimenduna\"] }, \"Smart Picker\": { \"v\": [\"Hautatzaile adimenduna\"] } } }, { \"l\": \"fa\", \"t\": { \"Back to provider selection\": { \"v\": [\"بازگؓت به انتخاب ارائه دهنده\"] }, \"Close Smart Picker\": { \"v\": [\"بستن Ų§Ł†ŲŖŲ®Ų§ŲØā€ŒŚÆŲ± Ł‡ŁˆŲ“Ł…Ł†ŲÆ\"] }, \"Smart Picker\": { \"v\": [\"انتخابگر Ł‡ŁˆŲ“Ł…Ł†ŲÆ\"] } } }, { \"l\": \"fi\", \"t\": { \"Back to provider selection\": { \"v\": [\"Takaisin toimittajavalintaan\"] }, \"Close Smart Picker\": { \"v\": [\"Sulje Ƥlykas valitsin\"] }, \"Smart Picker\": { \"v\": [\"ƄlykƤs valitsin\"] } } }, { \"l\": \"fr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Revenir Ć  la sĆ©lection du fournisseur\"] }, \"Close Smart Picker\": { \"v\": [\"Fermer le sĆ©lecteur intelligent\"] }, \"Smart Picker\": { \"v\": [\"SĆ©lecteur intelligent\"] } } }, { \"l\": \"ga\", \"t\": { \"Back to provider selection\": { \"v\": [\"Ar ais go roghnĆŗ solĆ”thróra\"] }, \"Close Smart Picker\": { \"v\": [\"DĆŗn PiocĆ”laĆ­ Cliste\"] }, \"Smart Picker\": { \"v\": [\"Roghnóir Cliste\"] } } }, { \"l\": \"gl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver Ć” selección do provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Pechar o Selector intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"he\", \"t\": { \"Back to provider selection\": { \"v\": [\"חזרה ×œ×‘×—×™×Ø×Ŗ הפק\"] }, \"Close Smart Picker\": { \"v\": [\"הגירת הבורר החכם\"] }, \"Smart Picker\": { \"v\": [\"בורר חכם\"] } } }, { \"l\": \"hr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Natrag na odabir pružatelja\"] }, \"Close Smart Picker\": { \"v\": [\"Zatvori pametni odabir\"] }, \"Smart Picker\": { \"v\": [\"Pametni odabir\"] } } }, { \"l\": \"hu\", \"t\": { \"Back to provider selection\": { \"v\": [\"Vissza a szolgĆ”ltatóvĆ”lasztĆ”shoz\"] }, \"Close Smart Picker\": { \"v\": [\"Okos vĆ”lasztó bezĆ”rĆ”sa\"] }, \"Smart Picker\": { \"v\": [\"Okos vĆ”lasztó\"] } } }, { \"l\": \"id\", \"t\": { \"Back to provider selection\": { \"v\": [\"Kembali ke pemilihan penyedia\"] }, \"Close Smart Picker\": { \"v\": [\"Tutup Pemilih Cerdas\"] }, \"Smart Picker\": { \"v\": [\"Pemilih Cerdas\"] } } }, { \"l\": \"is\", \"t\": { \"Back to provider selection\": { \"v\": [\"Til baka Ć­ val Ć” þjónustuveitu\"] }, \"Close Smart Picker\": { \"v\": [\"Loka snjall-veljara\"] }, \"Smart Picker\": { \"v\": [\"Snjall-veljari\"] } } }, { \"l\": \"it\", \"t\": { \"Back to provider selection\": { \"v\": [\"Torna alla selezione del provider\"] }, \"Close Smart Picker\": { \"v\": [\"Chiudere lo Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Picker intelligente\"] } } }, { \"l\": \"ja\", \"t\": { \"Back to provider selection\": { \"v\": [\"ćƒ—ćƒ­ćƒć‚¤ćƒ€ćƒ¼ć®éøęŠžć«ęˆ»ć‚‹\"] }, \"Close Smart Picker\": { \"v\": [\"ć‚¹ćƒžćƒ¼ćƒˆćƒ”ćƒƒć‚«ćƒ¼ć‚’é–‰ć˜ć‚‹\"] }, \"Smart Picker\": { \"v\": [\"ć‚¹ćƒžćƒ¼ćƒˆćƒ”ćƒƒć‚«ćƒ¼\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Back to provider selection\": { \"v\": [\"ćƒ—ćƒ­ćƒć‚¤ćƒ€ćƒ¼ć®éøęŠžć«ęˆ»ć‚‹\"] }, \"Close Smart Picker\": { \"v\": [\"ć‚¹ćƒžćƒ¼ćƒˆćƒ”ćƒƒć‚«ćƒ¼ć‚’é–‰ć˜ć‚‹\"] }, \"Smart Picker\": { \"v\": [\"ć‚¹ćƒžćƒ¼ćƒˆćƒ”ćƒƒć‚«ćƒ¼\"] } } }, { \"l\": \"ko\", \"t\": { \"Back to provider selection\": { \"v\": [\"ģ œź³µģž ģ„ ķƒģœ¼ė”œ ėŒģ•„ź°€źø°\"] }, \"Close Smart Picker\": { \"v\": [\"스마트 ģ„ ķƒźø° ė‹«źø°\"] }, \"Smart Picker\": { \"v\": [\"스마트 ģ„ ķƒźø°\"] } } }, { \"l\": \"lo\", \"t\": { \"Back to provider selection\": { \"v\": [\"ąŗąŗ±ąŗšą»„ąŗ›ąŗ—ąŗµą»ˆąŗąŗ²ąŗ™ą»€ąŗ„ąŗ·ąŗ­ąŗąŗœąŗ¹ą»‰ą»ƒąŗ«ą»‰ąŗšą»ąŗ„ąŗ“ąŗąŗ²ąŗ™\"] }, \"Close Smart Picker\": { \"v\": [\"ąŗ›ąŗ“ąŗ”ą»‚ąŗ•ą»€ąŗ„ąŗ·ąŗ­ąŗąŗ­ąŗ±ąŗ”ąŗŖąŗ°ąŗ„ąŗ“ąŗąŗ°\"] }, \"Smart Picker\": { \"v\": [\"ą»‚ąŗ•ą»€ąŗ„ąŗ·ąŗ­ąŗąŗ­ąŗ±ąŗ”ąŗŖąŗ°ąŗ„ąŗ“ąŗąŗ°\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Back to provider selection\": { \"v\": [\"Grįžti ÄÆ teikėjo pasirinkimą\"] }, \"Close Smart Picker\": { \"v\": [\"Uždaryti ā€žSmart Pickerā€œ\"] }, \"Smart Picker\": { \"v\": ['\"Smart Picker\"'] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Back to provider selection\": { \"v\": [\"ŠŠ°Š·Š°Š“ Го избор на ŠæŃ€Š¾Š²Š°Ń˜Š“ер\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметен избирач\"] }, \"Smart Picker\": { \"v\": [\"ŠŸŠ°Š¼ŠµŃ‚ŠµŠ½ избирач\"] } } }, { \"l\": \"mn\", \"t\": { \"Back to provider selection\": { \"v\": [\"Ņ®Š¹Š»Ń‡ŠøŠ»Š³ŃŃ ŅÆŠ·ŅÆŅÆŠ»ŃŠ³Ń‡ŠøŠ¹Š½ сонголт руу Š±ŃƒŃ†Š°Ń…\"] }, \"Close Smart Picker\": { \"v\": [\"Ухаалаг сонгогчийг хаах\"] }, \"Smart Picker\": { \"v\": [\"Ухаалаг сонгогч\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbake til leverandĆørvalg\"] }, \"Close Smart Picker\": { \"v\": [\"Lukk Smart Velger\"] }, \"Smart Picker\": { \"v\": [\"Smart Velger\"] } } }, { \"l\": \"nl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Terug naar provider selectie\"] }, \"Close Smart Picker\": { \"v\": [\"Slimme Kiezer sluiten\"] }, \"Smart Picker\": { \"v\": [\"Slimme Kiezer\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Powrót do wyboru dostawcy\"] }, \"Close Smart Picker\": { \"v\": [\"Zamknij inteligentny selektor\"] }, \"Smart Picker\": { \"v\": [\"Inteligentne wybieranie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar para seleção de provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Fechar Seletor Inteligente\"] }, \"Smart Picker\": { \"v\": [\"Seletor Inteligente\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar Ć  seleção de fornecedor\"] }, \"Close Smart Picker\": { \"v\": ['Fechar \"Smart Picker\"'] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ro\", \"t\": { \"Back to provider selection\": { \"v\": [\"Ǝnapoi la selecția providerului\"] }, \"Close Smart Picker\": { \"v\": [\"Ǝnchide Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ru\", \"t\": { \"Back to provider selection\": { \"v\": [\"Š’ŠµŃ€Š½ŃƒŃ‚ŃŒŃŃ Šŗ Š²Ń‹Š±Š¾Ń€Ńƒ провайГера\"] }, \"Close Smart Picker\": { \"v\": [\"Š—Š°ŠŗŃ€Ń‹Ń‚ŃŒ ŠøŠ½Ń‚ŠµŠ»Š»ŠµŠŗŃ‚ŃƒŠ°Š»ŃŒŠ½Ń‹Š¹ выбор\"] }, \"Smart Picker\": { \"v\": [\"Умный выбор\"] } } }, { \"l\": \"sk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Späń na výber poskytovateľa\"] }, \"Close Smart Picker\": { \"v\": [\"ZavrieÅ„ inteligentný výber\"] }, \"Smart Picker\": { \"v\": [\"Inteligentný výber\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Back to provider selection\": { \"v\": [\"ŠŠ°Š·Š°Š“ на избор ŠæŃ€ŃƒŠ¶Š°Š¾Ń†Š°\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметни бирач\"] }, \"Smart Picker\": { \"v\": [\"ŠŸŠ°Š¼ŠµŃ‚Š½Šø бирач\"] } } }, { \"l\": \"sv\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tillbaka till leverantƶrsvalet\"] }, \"Close Smart Picker\": { \"v\": [\"StƤng smartvƤljaren\"] }, \"Smart Picker\": { \"v\": [\"SmartvƤljare\"] } } }, { \"l\": \"tr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Hizmet sağlayıcı seƧimine dƶn\"] }, \"Close Smart Picker\": { \"v\": [\"Akıllı seƧimi kapat\"] }, \"Smart Picker\": { \"v\": [\"Akıllı seƧim\"] } } }, { \"l\": \"uk\", \"t\": { \"Back to provider selection\": { \"v\": [\"ŠŠ°Š·Š°Š“ Го Š²ŠøŠ±Š¾Ń€Ńƒ ŠæŠ¾ŃŃ‚Š°Ń‡Š°Š»ŃŒŠ½ŠøŠŗŠ°\"] }, \"Close Smart Picker\": { \"v\": [\"Закрити асистент Š²ŠøŠ±Š¾Ń€Ńƒ\"] }, \"Smart Picker\": { \"v\": [\"Асистент Š²ŠøŠ±Š¾Ń€Ńƒ\"] } } }, { \"l\": \"uz\", \"t\": { \"Back to provider selection\": { \"v\": [\"Provayder tanloviga qaytish\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker-ni yoping\"] }, \"Smart Picker\": { \"v\": [\"Aqlli tanlovchi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Back to provider selection\": { \"v\": [\"čæ”å›žč‡³ęä¾›č€…é€‰ę‹©åˆ—č”Ø\"] }, \"Close Smart Picker\": { \"v\": [\"å…³é—­ę™ŗčƒ½ę‹¾å–å™Ø\"] }, \"Smart Picker\": { \"v\": [\"ę™ŗčƒ½ę‹¾å–å™Ø\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Back to provider selection\": { \"v\": [\"å›žåˆ°ęä¾›č€…éøę“‡\"] }, \"Close Smart Picker\": { \"v\": [\"關閉 Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Back to provider selection\": { \"v\": [\"å›žåˆ°ęä¾›č€…éøę“‡\"] }, \"Close Smart Picker\": { \"v\": [\"é—œé–‰ę™ŗę…§åž‹ęŒ‘éøå™Ø\"] }, \"Smart Picker\": { \"v\": [\"ę™ŗę…§åž‹ęŒ‘éøå™Ø\"] } } }];\nconst t14 = [{ \"l\": \"ar\", \"t\": { \"Calendar icon\": { \"v\": [\"Ų£ŁŠŁ‚ŁˆŁ†Ų© Ų§Ł„ŲŖŁ‚ŁˆŁŠŁ…\"] }, \"Cancel\": { \"v\": [\"؄لغاؔ\"] }, \"Clear value\": { \"v\": [\"Ł…ŁŽŲ­Łˆ Ų§Ł„Ł‚ŁŠŁ…Ų©\"] }, \"Close time Picker\": { \"v\": [\"؄غلاق لاقط Ų§Ł„ŁˆŁ‚ŲŖ\"] }, \"Datepicker input\": { \"v\": [\"Ł…ŁŲÆŲ®ŁŽŁ„Ų§ŲŖ لاقط Ų§Ł„ŲŖŲ§Ų±ŁŠŲ®\"] }, \"Datepicker menu\": { \"v\": [\"قائمة لاقط Ų§Ł„ŲŖŲ§Ų±ŁŠŲ®\"] }, \"Decrement hours\": { \"v\": [\"؄نقاص الساعات\"] }, \"Decrement minutes\": { \"v\": [\"؄نقاص الدقائق\"] }, \"Decrement seconds\": { \"v\": [\"؄نقاص Ų§Ł„Ų«ŁˆŲ§Ł†ŁŠ\"] }, \"Increment hours\": { \"v\": [\"زيادة الساعات\"] }, \"Increment minutes\": { \"v\": [\"زيادة الدقائق\"] }, \"Increment seconds\": { \"v\": [\"زيادة Ų§Ł„Ų«ŁˆŲ§Ł†ŁŠ\"] }, \"Month picker\": { \"v\": [\"لاقط الؓهر\"] }, \"Month picker overlay\": { \"v\": [\"تراكب لاقط الؓهر\"] }, \"Next month\": { \"v\": [\"الؓهر القادم\"] }, \"Next year\": { \"v\": [\"السنة القادمة\"] }, \"Now\": { \"v\": [\"الآن\"] }, \"Open hours overlay\": { \"v\": [\"فتح تراكب الساعات \"] }, \"Open minutes overlay\": { \"v\": [\"فتح تراكب الدقائق\"] }, \"Open months overlay\": { \"v\": [\"فتح تراكب Ų§Ł„Ų“Ł‡ŁˆŲ±\"] }, \"Open seconds overlay\": { \"v\": [\"فتح تراكب Ų§Ł„Ų«ŁˆŲ§Ł†ŁŠ\"] }, \"Open time picker\": { \"v\": [\"فتح لاقط Ų§Ł„ŁˆŁ‚ŲŖ\"] }, \"Open years overlay\": { \"v\": [\"فتح تراكب Ų§Ł„Ų³Ł†ŁˆŲ§ŲŖ\"] }, \"Pick\": { \"v\": [\"؄لتقاط\"] }, \"Previous month\": { \"v\": [\"الؓهر Ų§Ł„Ł…Ų§Ų¶ŁŠ\"] }, \"Previous year\": { \"v\": [\"السنة Ų§Ł„Ł…Ų§Ų¶ŁŠŲ©\"] }, \"Select date\": { \"v\": [\"؄ختيار Ų§Ł„ŲŖŲ§Ų±ŁŠŲ®\"] }, \"Select date and time\": { \"v\": [\"؄ختيار Ų§Ł„ŲŖŲ§Ų±ŁŠŲ® ŁˆŲ§Ł„ŁˆŁ‚ŲŖ\"] }, \"Select month\": { \"v\": [\"؄ختيار الؓهر\"] }, \"Select time\": { \"v\": [\"؄ختيار Ų§Ł„ŁˆŁ‚ŲŖ\"] }, \"Select time range\": { \"v\": [\"؄ختيار المدى Ų§Ł„Ų²Ł…Ł†ŁŠ\"] }, \"Select week\": { \"v\": [\"؄ختيار Ų§Ł„Ų£Ų³ŲØŁˆŲ¹\"] }, \"Select year\": { \"v\": [\"؄ختيار السنة\"] }, \"Switch AM/PM mode\": { \"v\": [\"ŲŖŲØŲÆŁŠŁ„ وضعية ŲµŲØŲ§Ų­Ų§Ł‹/مساًؔ\"] }, \"Time picker\": { \"v\": [\"لاقط Ų§Ł„ŁˆŁ‚ŲŖ\"] }, \"Toggle overlay\": { \"v\": [\"ŲŖŲØŲÆŁŠŁ„ Ų§Ł„ŲŖŲ±Ų§ŁƒŲØ\"] }, \"W\": { \"v\": [\"Ų£\"] }, \"Year picker\": { \"v\": [\"لاقط السنة\"] }, \"Year picker overlay\": { \"v\": [\"تراكب لاقط السنة\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikona kalendÔře\"] }, \"Cancel\": { \"v\": [\"Storno\"] }, \"Clear value\": { \"v\": [\"Vyčistit hodnotu\"] }, \"Close time Picker\": { \"v\": [\"Zavřít výběr času\"] }, \"Datepicker input\": { \"v\": [\"Vstup výběru data\"] }, \"Datepicker menu\": { \"v\": [\"NabĆ­dka výběru data\"] }, \"Decrement hours\": { \"v\": [\"Snížit hodiny\"] }, \"Decrement minutes\": { \"v\": [\"Snížit minuty\"] }, \"Decrement seconds\": { \"v\": [\"Snížit sekundy\"] }, \"Increment hours\": { \"v\": [\"ZvýŔit hodiny\"] }, \"Increment minutes\": { \"v\": [\"ZvýŔit minuty\"] }, \"Increment seconds\": { \"v\": [\"ZvýŔit sekundy\"] }, \"Month picker\": { \"v\": [\"Výběr měsĆ­ce\"] }, \"Month picker overlay\": { \"v\": [\"PřekryvnĆ© okno výběru měsĆ­ce\"] }, \"Next month\": { \"v\": [\"PříŔtĆ­ měsĆ­c\"] }, \"Next year\": { \"v\": [\"PříŔtĆ­ rok\"] }, \"Now\": { \"v\": [\"NynĆ­\"] }, \"Open hours overlay\": { \"v\": [\"Otevřít překryvnĆ© okno hodin\"] }, \"Open minutes overlay\": { \"v\": [\"Otevřít překryvnĆ© okno minut\"] }, \"Open months overlay\": { \"v\": [\"Otevřít překryvnĆ© okno měsĆ­cÅÆ\"] }, \"Open seconds overlay\": { \"v\": [\"Otevřít překryvnĆ© okno sekund\"] }, \"Open time picker\": { \"v\": [\"Otevřít výběr času\"] }, \"Open years overlay\": { \"v\": [\"Otevřít překryvnĆ© okno roku\"] }, \"Pick\": { \"v\": [\"Vybrat\"] }, \"Previous month\": { \"v\": [\"PředchozĆ­ měsĆ­c\"] }, \"Previous year\": { \"v\": [\"PředchozĆ­ rok\"] }, \"Select date\": { \"v\": [\"Vybrat datum\"] }, \"Select date and time\": { \"v\": [\"Vybrat datum a čas\"] }, \"Select month\": { \"v\": [\"Vybrat měsĆ­c\"] }, \"Select time\": { \"v\": [\"Vybrat čas\"] }, \"Select time range\": { \"v\": [\"Vybrat časový rozsah\"] }, \"Select week\": { \"v\": [\"Vybrat týden\"] }, \"Select year\": { \"v\": [\"Vybrat rok\"] }, \"Switch AM/PM mode\": { \"v\": [\"Přepnout režim dopo/odpoledne\"] }, \"Time picker\": { \"v\": [\"Výběr času\"] }, \"Time zone\": { \"v\": [\"ČasovĆ© pĆ”smo\"] }, \"Toggle overlay\": { \"v\": [\"Vyp/zap. překryvnĆ© okno\"] }, \"W\": { \"v\": [\"T\"] }, \"Year picker\": { \"v\": [\"Výběr roku\"] }, \"Year picker overlay\": { \"v\": [\"PřekryvnĆ© okno výběru roku\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalenderikon\"] }, \"Cancel\": { \"v\": [\"AnnullĆ©r\"] }, \"Clear value\": { \"v\": [\"Klar vƦrdi\"] }, \"Close time Picker\": { \"v\": [\"NƦrtid Picker\"] }, \"Datepicker input\": { \"v\": [\"Datapicker input\"] }, \"Datepicker menu\": { \"v\": [\"Datapicker menu\"] }, \"Decrement hours\": { \"v\": [\"Formindsk timer\"] }, \"Decrement minutes\": { \"v\": [\"Formindsk minutter\"] }, \"Decrement seconds\": { \"v\": [\"Formindsk sekunder\"] }, \"Increment hours\": { \"v\": [\"ForĆøg timer\"] }, \"Increment minutes\": { \"v\": [\"ForĆøg minutter\"] }, \"Increment seconds\": { \"v\": [\"ForĆøg sekunder\"] }, \"Month picker\": { \"v\": [\"MĆ„nedsvƦlger\"] }, \"Month picker overlay\": { \"v\": [\"MĆ„neder vƦlger overlay\"] }, \"Next month\": { \"v\": [\"NƦste mĆ„ned\"] }, \"Next year\": { \"v\": [\"NƦste Ć„r\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"ƅbne timer overlay\"] }, \"Open minutes overlay\": { \"v\": [\"ƅbn minutter overlay\"] }, \"Open months overlay\": { \"v\": [\"ƅbne mĆ„neder overlay\"] }, \"Open seconds overlay\": { \"v\": [\"ƅbne sekunder overlay\"] }, \"Open time picker\": { \"v\": [\"ƅbent tidsvƦlger\"] }, \"Open years overlay\": { \"v\": [\"ƅbne Ć„r overlay\"] }, \"Pick\": { \"v\": [\"VƦlg\"] }, \"Previous month\": { \"v\": [\"Forrige mĆ„ned\"] }, \"Previous year\": { \"v\": [\"ForegĆ„ende Ć„r\"] }, \"Select date\": { \"v\": [\"VƦlg dato\"] }, \"Select date and time\": { \"v\": [\"VƦlg dato og tidspunkt\"] }, \"Select month\": { \"v\": [\"VƦlg mĆ„ned\"] }, \"Select time\": { \"v\": [\"VƦlg tid\"] }, \"Select time range\": { \"v\": [\"VƦlg tidsinterval\"] }, \"Select week\": { \"v\": [\"VƦlg uge\"] }, \"Select year\": { \"v\": [\"VƦlg Ć„r\"] }, \"Switch AM/PM mode\": { \"v\": [\"Skift AM/PM-tilstand\"] }, \"Time picker\": { \"v\": [\"TidsvƦlger\"] }, \"Time zone\": { \"v\": [\"Tidszone\"] }, \"Toggle overlay\": { \"v\": [\"SlĆ„ overlay til / fra\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"ƅr vƦlger\"] }, \"Year picker overlay\": { \"v\": [\"ƅr vƦlger overlay\"] } } }, { \"l\": \"de\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendersymbol\"] }, \"Cancel\": { \"v\": [\"Abbrechen\"] }, \"Clear value\": { \"v\": [\"Wert lƶschen\"] }, \"Close time Picker\": { \"v\": [\"Zeitauswahl schließen\"] }, \"Datepicker input\": { \"v\": [\"Eingabe Datumsauswahl\"] }, \"Datepicker menu\": { \"v\": [\"Menü Datumsauswahl\"] }, \"Decrement hours\": { \"v\": [\"Stunden verringern\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verringern\"] }, \"Decrement seconds\": { \"v\": [\"Sekunden verringern\"] }, \"Increment hours\": { \"v\": [\"Stunden hochzƤhlen\"] }, \"Increment minutes\": { \"v\": [\"Minuten hochzƤhlen\"] }, \"Increment seconds\": { \"v\": [\"Sekunden hochzƤhlen\"] }, \"Month picker\": { \"v\": [\"Monatsauswahl\"] }, \"Month picker overlay\": { \"v\": [\"Monatsauswahl-Overlay\"] }, \"Next month\": { \"v\": [\"NƤchster Monat\"] }, \"Next year\": { \"v\": [\"NƤchstes Jahr\"] }, \"Now\": { \"v\": [\"Jetzt\"] }, \"Open hours overlay\": { \"v\": [\"Stunden-Overlay ƶffnen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-Overlay ƶffnen\"] }, \"Open months overlay\": { \"v\": [\"Monate-Overlay ƶffnen\"] }, \"Open seconds overlay\": { \"v\": [\"Sekunden-Overlay ƶffnen\"] }, \"Open time picker\": { \"v\": [\"Zeitauswahl ƶffnen\"] }, \"Open years overlay\": { \"v\": [\"Jahre-Overlay ƶffnen\"] }, \"Pick\": { \"v\": [\"AuswƤhlen\"] }, \"Previous month\": { \"v\": [\"Vorheriger Monat\"] }, \"Previous year\": { \"v\": [\"Vorheriges Jahr\"] }, \"Select date\": { \"v\": [\"Datum auswƤhlen\"] }, \"Select date and time\": { \"v\": [\"Datum und Uhrzeit auswƤhlen\"] }, \"Select month\": { \"v\": [\"Monat auswƤhlen\"] }, \"Select time\": { \"v\": [\"Uhrzeit auswƤhlen\"] }, \"Select time range\": { \"v\": [\"Zeitspanne auswƤhlen\"] }, \"Select week\": { \"v\": [\"Woche auswƤhlen\"] }, \"Select year\": { \"v\": [\"Jahr auswƤhlen\"] }, \"Switch AM/PM mode\": { \"v\": [\"Zwischen AM/PM-Modus wechseln\"] }, \"Time picker\": { \"v\": [\"Zeitauswahl\"] }, \"Time zone\": { \"v\": [\"Zeitzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay umschalten\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jahresauswahl\"] }, \"Year picker overlay\": { \"v\": [\"Jahre-Overlay ƶffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendersymbol\"] }, \"Cancel\": { \"v\": [\"Abbrechen\"] }, \"Clear value\": { \"v\": [\"Wert lƶschen\"] }, \"Close time Picker\": { \"v\": [\"Zeitauswahl schließen\"] }, \"Datepicker input\": { \"v\": [\"Eingabe Datumsauswahl\"] }, \"Datepicker menu\": { \"v\": [\"Menü Datumsauswahl\"] }, \"Decrement hours\": { \"v\": [\"Stunden verringern\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verringern\"] }, \"Decrement seconds\": { \"v\": [\"Sekunden verringern\"] }, \"Increment hours\": { \"v\": [\"Stunden hochzƤhlen\"] }, \"Increment minutes\": { \"v\": [\"Minuten hochzƤhlen\"] }, \"Increment seconds\": { \"v\": [\"Sekunden hochzƤhlen\"] }, \"Month picker\": { \"v\": [\"Monatsauswahl\"] }, \"Month picker overlay\": { \"v\": [\"Monatsauswahl-Overlay\"] }, \"Next month\": { \"v\": [\"NƤchster Monat\"] }, \"Next year\": { \"v\": [\"NƤchstes Jahr\"] }, \"Now\": { \"v\": [\"Jetzt\"] }, \"Open hours overlay\": { \"v\": [\"Stunden-Overlay ƶffnen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-Overlay ƶffnen\"] }, \"Open months overlay\": { \"v\": [\"Monate-Overlay ƶffnen\"] }, \"Open seconds overlay\": { \"v\": [\"Sekunden-Overlay ƶffnen\"] }, \"Open time picker\": { \"v\": [\"Zeitauswahl ƶffnen\"] }, \"Open years overlay\": { \"v\": [\"Jahre-Overlay ƶffnen\"] }, \"Pick\": { \"v\": [\"AuswƤhlen\"] }, \"Previous month\": { \"v\": [\"Vorheriger Monat\"] }, \"Previous year\": { \"v\": [\"Vorheriges Jahr\"] }, \"Select date\": { \"v\": [\"Datum auswƤhlen\"] }, \"Select date and time\": { \"v\": [\"Datum und Uhrzeit auswƤhlen\"] }, \"Select month\": { \"v\": [\"Monat auswƤhlen\"] }, \"Select time\": { \"v\": [\"Uhrzeit auswƤhlen\"] }, \"Select time range\": { \"v\": [\"Zeitspanne auswƤhlen\"] }, \"Select week\": { \"v\": [\"Woche auswƤhlen\"] }, \"Select year\": { \"v\": [\"Jahr auswƤhlen\"] }, \"Switch AM/PM mode\": { \"v\": [\"Zwischen AM/PM-Modus wechseln\"] }, \"Time picker\": { \"v\": [\"Zeitauswahl\"] }, \"Time zone\": { \"v\": [\"Zeitzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay umschalten\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jahresauswahl\"] }, \"Year picker overlay\": { \"v\": [\"Jahre-Overlay ƶffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Calendar icon\": { \"v\": [\"ΕικονίΓιο ημερολογίου\"] }, \"Cancel\": { \"v\": [\"Ī‘ĪŗĻĻĻ‰ĻƒĪ·\"] }, \"Clear value\": { \"v\": [\"Ī•ĪŗĪŗĪ±ĪøĪ¬ĻĪ¹ĻƒĪ· αξίας\"] }, \"Close time Picker\": { \"v\": [\"Κλείσιμο επιλογέα ĻŽĻĪ±Ļ‚\"] }, \"Datepicker input\": { \"v\": [\"Ī•Ī¹ĻƒĪ±Ī³Ļ‰Ī³Ī® ημερομηνίας\"] }, \"Datepicker menu\": { \"v\": [\"ĪœĪµĪ½ĪæĻ επιλογής ημερομηνίας\"] }, \"Decrement hours\": { \"v\": [\"ĪœĪµĪÆĻ‰ĻƒĪ· Ļ‰ĻĻŽĪ½\"] }, \"Decrement minutes\": { \"v\": [\"ĪœĪµĪÆĻ‰ĻƒĪ· Ī»ĪµĻ€Ļ„ĻŽĪ½\"] }, \"Decrement seconds\": { \"v\": [\"ĪœĪµĪÆĻ‰ĻƒĪ· Γευτερολέπτων\"] }, \"Increment hours\": { \"v\": [\"Ī‘ĻĪ¾Ī·ĻƒĪ· Ļ‰ĻĻŽĪ½\"] }, \"Increment minutes\": { \"v\": [\"Ī‘ĻĪ¾Ī·ĻƒĪ· Ī»ĪµĻ€Ļ„ĻŽĪ½\"] }, \"Increment seconds\": { \"v\": [\"Ī‘ĻĪ¾Ī·ĻƒĪ· Γευτερολέπτων\"] }, \"Month picker\": { \"v\": [\"Επιλογή μήνα\"] }, \"Month picker overlay\": { \"v\": [\"Ī•Ļ€Ī¹ĪŗĪ¬Ī»Ļ…ĻˆĪ· επιλογής μήνα\"] }, \"Next month\": { \"v\": [\"Ī•Ļ€ĻŒĪ¼ĪµĪ½ĪæĻ‚ μήνας\"] }, \"Next year\": { \"v\": [\"Ī•Ļ€ĻŒĪ¼ĪµĪ½Īæ έτος\"] }, \"Now\": { \"v\": [\"Ī¤ĻŽĻĪ±\"] }, \"Open hours overlay\": { \"v\": [\"Άνοιγμα ĪµĻ€Ī¹ĪŗĪ¬Ī»Ļ…ĻˆĪ·Ļ‚ Ļ‰ĻĻŽĪ½\"] }, \"Open minutes overlay\": { \"v\": [\"Άνοιγμα ĪµĻ€Ī¹ĪŗĪ¬Ī»Ļ…ĻˆĪ·Ļ‚ Ī»ĪµĻ€Ļ„ĻŽĪ½\"] }, \"Open months overlay\": { \"v\": [\"Άνοιγμα ĪµĻ€Ī¹ĪŗĪ¬Ī»Ļ…ĻˆĪ·Ļ‚ Ī¼Ī·Ī½ĻŽĪ½\"] }, \"Open seconds overlay\": { \"v\": [\"Άνοιγμα ĪµĻ€Ī¹ĪŗĪ¬Ī»Ļ…ĻˆĪ·Ļ‚ Γευτερολέπτων\"] }, \"Open time picker\": { \"v\": [\"Άνοιγμα επιλογέα ĻŽĻĪ±Ļ‚\"] }, \"Open years overlay\": { \"v\": [\"Άνοιγμα ĪµĻ€Ī¹ĪŗĪ¬Ī»Ļ…ĻˆĪ·Ļ‚ ĪµĻ„ĻŽĪ½\"] }, \"Pick\": { \"v\": [\"Επιλογή\"] }, \"Previous month\": { \"v\": [\"Ī ĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½ĪæĻ‚ μήνας\"] }, \"Previous year\": { \"v\": [\"Ī ĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Īæ έτος\"] }, \"Select date\": { \"v\": [\"Επιλογή ημερομηνίας\"] }, \"Select date and time\": { \"v\": [\"Επιλογή ημερομηνίας και ĻŽĻĪ±Ļ‚\"] }, \"Select month\": { \"v\": [\"Επιλογή μήνα\"] }, \"Select time\": { \"v\": [\"Επιλογή ĻŽĻĪ±Ļ‚\"] }, \"Select time range\": { \"v\": [\"Επιλογή Ļ‡ĻĪæĪ½Ī¹ĪŗĪæĻ Ī“Ī¹Ī±ĻƒĻ„Ī®Ī¼Ī±Ļ„ĪæĻ‚\"] }, \"Select week\": { \"v\": [\"Επιλογή εβΓομάΓας\"] }, \"Select year\": { \"v\": [\"Επιλογή έτους\"] }, \"Switch AM/PM mode\": { \"v\": [\"Εναλλαγή λειτουργίας AM/PM\"] }, \"Time picker\": { \"v\": [\"Επιλογή ĻŽĻĪ±Ļ‚\"] }, \"Toggle overlay\": { \"v\": [\"Εναλλαγή ĪµĻ€Ī¹ĪŗĪ¬Ī»Ļ…ĻˆĪ·Ļ‚\"] }, \"W\": { \"v\": [\"Τε\"] }, \"Year picker\": { \"v\": [\"Επιλογέας έτους\"] }, \"Year picker overlay\": { \"v\": [\"Ī•Ļ€Ī¹ĪŗĪ¬Ī»Ļ…ĻˆĪ· επιλογέα έτους\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Calendar icon\": { \"v\": [\"Calendar icon\"] }, \"Cancel\": { \"v\": [\"Cancel\"] }, \"Clear value\": { \"v\": [\"Clear value\"] }, \"Close time Picker\": { \"v\": [\"Close time Picker\"] }, \"Datepicker input\": { \"v\": [\"Datepicker input\"] }, \"Datepicker menu\": { \"v\": [\"Datepicker menu\"] }, \"Decrement hours\": { \"v\": [\"Decrement hours\"] }, \"Decrement minutes\": { \"v\": [\"Decrement minutes\"] }, \"Decrement seconds\": { \"v\": [\"Decrement seconds\"] }, \"Increment hours\": { \"v\": [\"Increment hours\"] }, \"Increment minutes\": { \"v\": [\"Increment minutes\"] }, \"Increment seconds\": { \"v\": [\"Increment seconds\"] }, \"Month picker\": { \"v\": [\"Month picker\"] }, \"Month picker overlay\": { \"v\": [\"Month picker overlay\"] }, \"Next month\": { \"v\": [\"Next month\"] }, \"Next year\": { \"v\": [\"Next year\"] }, \"Now\": { \"v\": [\"Now\"] }, \"Open hours overlay\": { \"v\": [\"Open hours overlay\"] }, \"Open minutes overlay\": { \"v\": [\"Open minutes overlay\"] }, \"Open months overlay\": { \"v\": [\"Open months overlay\"] }, \"Open seconds overlay\": { \"v\": [\"Open seconds overlay\"] }, \"Open time picker\": { \"v\": [\"Open time picker\"] }, \"Open years overlay\": { \"v\": [\"Open years overlay\"] }, \"Pick\": { \"v\": [\"Pick\"] }, \"Previous month\": { \"v\": [\"Previous month\"] }, \"Previous year\": { \"v\": [\"Previous year\"] }, \"Select date\": { \"v\": [\"Select date\"] }, \"Select date and time\": { \"v\": [\"Select date and time\"] }, \"Select month\": { \"v\": [\"Select month\"] }, \"Select time\": { \"v\": [\"Select time\"] }, \"Select time range\": { \"v\": [\"Select time range\"] }, \"Select week\": { \"v\": [\"Select week\"] }, \"Select year\": { \"v\": [\"Select year\"] }, \"Switch AM/PM mode\": { \"v\": [\"Switch AM/PM mode\"] }, \"Time picker\": { \"v\": [\"Time picker\"] }, \"Time zone\": { \"v\": [\"Time zone\"] }, \"Toggle overlay\": { \"v\": [\"Toggle overlay\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Year picker\"] }, \"Year picker overlay\": { \"v\": [\"Year picker overlay\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendriikoon\"] }, \"Cancel\": { \"v\": [\"Katkesta\"] }, \"Clear value\": { \"v\": [\"Kustuta vƤƤrtus\"] }, \"Close time Picker\": { \"v\": [\"Sulge ajavalija\"] }, \"Datepicker input\": { \"v\": [\"KuupƤevavalija sisend\"] }, \"Datepicker menu\": { \"v\": [\"KuupƤevavalija menüü\"] }, \"Decrement hours\": { \"v\": [\"VƤhenda tunde\"] }, \"Decrement minutes\": { \"v\": [\"VƤhenda minuteid\"] }, \"Decrement seconds\": { \"v\": [\"VƤhenda sekundeid\"] }, \"Increment hours\": { \"v\": [\"Suurenda tunde\"] }, \"Increment minutes\": { \"v\": [\"Suurenda minuteid\"] }, \"Increment seconds\": { \"v\": [\"Suurenda sekundeid\"] }, \"Month picker\": { \"v\": [\"KuupƤevavalija\"] }, \"Month picker overlay\": { \"v\": [\"KuupƤevavalija ülekatteaken\"] }, \"Next month\": { \"v\": [\"JƤrgmine kuu\"] }, \"Next year\": { \"v\": [\"JƤrgmine aasta\"] }, \"Now\": { \"v\": [\"Praegu\"] }, \"Open hours overlay\": { \"v\": [\"Ava tundide vaade\"] }, \"Open minutes overlay\": { \"v\": [\"Ava minutite vaade\"] }, \"Open months overlay\": { \"v\": [\"Ava kuude vaade\"] }, \"Open seconds overlay\": { \"v\": [\"Ava sekundite vaade\"] }, \"Open time picker\": { \"v\": [\"Ava ajavalija\"] }, \"Open years overlay\": { \"v\": [\"Ava aastate vaade\"] }, \"Pick\": { \"v\": [\"Vali\"] }, \"Previous month\": { \"v\": [\"Eelmine kuu\"] }, \"Previous year\": { \"v\": [\"Eelmine aasta\"] }, \"Select date\": { \"v\": [\"Vali kuupƤev\"] }, \"Select date and time\": { \"v\": [\"Vali kuupƤev ja kellaaeg\"] }, \"Select month\": { \"v\": [\"Vali kuu\"] }, \"Select time\": { \"v\": [\"Vali aeg\"] }, \"Select time range\": { \"v\": [\"Vali ajavahemik\"] }, \"Select week\": { \"v\": [\"Vali nƤdal\"] }, \"Select year\": { \"v\": [\"Vali aasta\"] }, \"Switch AM/PM mode\": { \"v\": [\"Vaheta AM/PM kuvamist\"] }, \"Time picker\": { \"v\": [\"Ajavalija\"] }, \"Time zone\": { \"v\": [\"Ajavƶƶnd\"] }, \"Toggle overlay\": { \"v\": [\"Lülita ülekatteaken sisse/vƤlja\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Aastavalija\"] }, \"Year picker overlay\": { \"v\": [\"Aastavavalija ülekatteaken\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Calendar icon\": { \"v\": [\"IcĆ“ne de calendrier\"] }, \"Cancel\": { \"v\": [\"Annuler\"] }, \"Clear value\": { \"v\": [\"Effacer la valeur\"] }, \"Close time Picker\": { \"v\": [\"Fermer le sĆ©lecteur de temps\"] }, \"Datepicker input\": { \"v\": [\"EntrĆ©e du sĆ©lecteur de date\"] }, \"Datepicker menu\": { \"v\": [\"Menu du sĆ©lecteur de date\"] }, \"Decrement hours\": { \"v\": [\"Diminuer les heures\"] }, \"Decrement minutes\": { \"v\": [\"Diminuer les minutes\"] }, \"Decrement seconds\": { \"v\": [\"Diminuer les secondes\"] }, \"Increment hours\": { \"v\": [\"Augmenter les heures\"] }, \"Increment minutes\": { \"v\": [\"Augmenter les minutes\"] }, \"Increment seconds\": { \"v\": [\"Augmenter les secondes\"] }, \"Month picker\": { \"v\": [\"SĆ©lecteur de mois\"] }, \"Month picker overlay\": { \"v\": [\"Superposition du sĆ©lecteur de mois\"] }, \"Next month\": { \"v\": [\"Mois prochain\"] }, \"Next year\": { \"v\": [\"AnnĆ©e prochaine\"] }, \"Now\": { \"v\": [\"Maintenant\"] }, \"Open hours overlay\": { \"v\": [\"Superposition des heures d'ouverture\"] }, \"Open minutes overlay\": { \"v\": [\"Superposition des minutes d'ouverture\"] }, \"Open months overlay\": { \"v\": [\"Superposition des mois ouverts\"] }, \"Open seconds overlay\": { \"v\": [\"Superposition des secondes ouvertes\"] }, \"Open time picker\": { \"v\": [\"Ouvrir le sĆ©lecteur de temps\"] }, \"Open years overlay\": { \"v\": [\"Superposition des annĆ©es ouvertes\"] }, \"Pick\": { \"v\": [\"Choisir\"] }, \"Previous month\": { \"v\": [\"Mois prĆ©cĆ©dent\"] }, \"Previous year\": { \"v\": [\"AnnĆ©e prĆ©cĆ©dente\"] }, \"Select date\": { \"v\": [\"SĆ©lectionnez la date\"] }, \"Select date and time\": { \"v\": [\"SĆ©lectionnez la date et l'heure\"] }, \"Select month\": { \"v\": [\"SĆ©lectionnez le mois\"] }, \"Select time\": { \"v\": [\"SĆ©lectionnez l'heure\"] }, \"Select time range\": { \"v\": [\"SĆ©lectionnez la plage horaire\"] }, \"Select week\": { \"v\": [\"SĆ©lectionnez la semaine\"] }, \"Select year\": { \"v\": [\"SĆ©lectionnez l'annĆ©e\"] }, \"Switch AM/PM mode\": { \"v\": [\"Basculer le mode Matin/AprĆØs-midi\"] }, \"Time picker\": { \"v\": [\"SĆ©lecteur de temps\"] }, \"Time zone\": { \"v\": [\"Fuseau horaire\"] }, \"Toggle overlay\": { \"v\": [\"Basculer la superposition\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"SĆ©lecteur d'annĆ©e\"] }, \"Year picker overlay\": { \"v\": [\"Superposition du sĆ©lecteur d’annĆ©e\"] } } }, { \"l\": \"ga\", \"t\": { \"Calendar icon\": { \"v\": [\"DeilbhĆ­n fĆ©ilire\"] }, \"Cancel\": { \"v\": [\"Cealaigh\"] }, \"Clear value\": { \"v\": [\"Luach soilĆ©ir\"] }, \"Close time Picker\": { \"v\": [\"Roghnóir am dĆŗnta\"] }, \"Datepicker input\": { \"v\": [\"Ionchur datepicker\"] }, \"Datepicker menu\": { \"v\": [\"RoghchlĆ”r datepicker\"] }, \"Decrement hours\": { \"v\": [\"Laghdaigh uaireanta\"] }, \"Decrement minutes\": { \"v\": [\"Laghdaigh nóimĆ©id \"] }, \"Decrement seconds\": { \"v\": [\"Laghdaigh soicind\"] }, \"Increment hours\": { \"v\": [\"MĆ©adaigh uaireanta\"] }, \"Increment minutes\": { \"v\": [\"MĆ©adaigh nóimĆ©id\"] }, \"Increment seconds\": { \"v\": [\"MĆ©adaigh soicind\"] }, \"Month picker\": { \"v\": [\"Roghnóir mĆ­osa\"] }, \"Month picker overlay\": { \"v\": [\"Forleagan roghnóir mĆ­osa\"] }, \"Next month\": { \"v\": [\"An mhĆ­ seo chugainn\"] }, \"Next year\": { \"v\": [\"An bhliain seo chugainn\"] }, \"Now\": { \"v\": [\"Anois\"] }, \"Open hours overlay\": { \"v\": [\"Forleagan uaireanta oscailte\"] }, \"Open minutes overlay\": { \"v\": [\"Forleagan nóimĆ©ad oscailte\"] }, \"Open months overlay\": { \"v\": [\"Forleagan mĆ­onna oscailte\"] }, \"Open seconds overlay\": { \"v\": [\"Soicind oscailte forleagan\"] }, \"Open time picker\": { \"v\": [\"Roghnóir am oscailte\"] }, \"Open years overlay\": { \"v\": [\"Forleagan blianta oscailte\"] }, \"Pick\": { \"v\": [\"Pioc\"] }, \"Previous month\": { \"v\": [\"An mhĆ­ roimhe sin\"] }, \"Previous year\": { \"v\": [\"Bhliain roimhe sin\"] }, \"Select date\": { \"v\": [\"Roghnaigh dĆ”ta\"] }, \"Select date and time\": { \"v\": [\"Roghnaigh dĆ”ta agus am\"] }, \"Select month\": { \"v\": [\"Roghnaigh mĆ­\"] }, \"Select time\": { \"v\": [\"Roghnaigh am\"] }, \"Select time range\": { \"v\": [\"Roghnaigh raon ama\"] }, \"Select week\": { \"v\": [\"Roghnaigh seachtain\"] }, \"Select year\": { \"v\": [\"Roghnaigh bliain\"] }, \"Switch AM/PM mode\": { \"v\": [\"Athraigh mód AM/PM\"] }, \"Time picker\": { \"v\": [\"Roghnóir ama\"] }, \"Time zone\": { \"v\": [\"Crios ama\"] }, \"Toggle overlay\": { \"v\": [\"ScorĆ”naigh forleagan\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Roghnóir bliana\"] }, \"Year picker overlay\": { \"v\": [\"Forleagan roghnóir bliana\"] } } }, { \"l\": \"gl\", \"t\": { \"Calendar icon\": { \"v\": [\"Icona do calendario\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar o valor\"] }, \"Close time Picker\": { \"v\": [\"Pechar o Selector de hora\"] }, \"Datepicker input\": { \"v\": [\"Entrada do selector de datas\"] }, \"Datepicker menu\": { \"v\": [\"MenĆŗ do selector de datas\"] }, \"Decrement hours\": { \"v\": [\"DiminuĆ­r as horas\"] }, \"Decrement minutes\": { \"v\": [\"DiminuĆ­r os minutos\"] }, \"Decrement seconds\": { \"v\": [\"DiminuĆ­r os segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar as horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar os minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar os segundos\"] }, \"Month picker\": { \"v\": [\"Selector de mes\"] }, \"Month picker overlay\": { \"v\": [\"Superposición do selector de mes\"] }, \"Next month\": { \"v\": [\"Próximo mes\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir a superposición de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir a superposición de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir a superposición de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir a superposición de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir o selector de hora\"] }, \"Open years overlay\": { \"v\": [\"Abrir a superposición de anos\"] }, \"Pick\": { \"v\": [\"Escoller\"] }, \"Previous month\": { \"v\": [\"Mes pasado\"] }, \"Previous year\": { \"v\": [\"Ano pasado\"] }, \"Select date\": { \"v\": [\"Seleccione a data\"] }, \"Select date and time\": { \"v\": [\"Seleccione a data e a hora\"] }, \"Select month\": { \"v\": [\"Seleccione o mes\"] }, \"Select time\": { \"v\": [\"Seleccione a hora\"] }, \"Select time range\": { \"v\": [\" Seleccione o intervalo de tempo\"] }, \"Select week\": { \"v\": [\"Seleccione a semana\"] }, \"Select year\": { \"v\": [\"Seleccione o ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar o modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Selector de hora\"] }, \"Time zone\": { \"v\": [\"Fuso horario\"] }, \"Toggle overlay\": { \"v\": [\"Alternar a sobreposición\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Selector de ano\"] }, \"Year picker overlay\": { \"v\": [\"Superposición do selector de ano\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikona kalendara\"] }, \"Cancel\": { \"v\": [\"Otkaži\"] }, \"Clear value\": { \"v\": [\"Očisti vrijednost\"] }, \"Close time Picker\": { \"v\": [\"Zatvori odabir vremena\"] }, \"Datepicker input\": { \"v\": [\"Unos birača datuma\"] }, \"Datepicker menu\": { \"v\": [\"Izbornik birača datuma\"] }, \"Decrement hours\": { \"v\": [\"Smanji sate\"] }, \"Decrement minutes\": { \"v\": [\"Smanji minute\"] }, \"Decrement seconds\": { \"v\": [\"Smanji sekunde\"] }, \"Increment hours\": { \"v\": [\"Povećaj sate\"] }, \"Increment minutes\": { \"v\": [\"Povećaj minute\"] }, \"Increment seconds\": { \"v\": [\"Povećaj sekunde\"] }, \"Month picker\": { \"v\": [\"Odabir mjeseca\"] }, \"Month picker overlay\": { \"v\": [\"Sloj za odabir mjeseca\"] }, \"Next month\": { \"v\": [\"Sljedeći mjesec\"] }, \"Next year\": { \"v\": [\"Sljedeća godina\"] }, \"Now\": { \"v\": [\"Sada\"] }, \"Open hours overlay\": { \"v\": [\"Otvori sloj za odabir sati\"] }, \"Open minutes overlay\": { \"v\": [\"Otvori sloj za odabir minuta\"] }, \"Open months overlay\": { \"v\": [\"Otvori sloj za odabir mjeseci\"] }, \"Open seconds overlay\": { \"v\": [\"Otvori sloj za odabir sekundi\"] }, \"Open time picker\": { \"v\": [\"Otvori birač vremena\"] }, \"Open years overlay\": { \"v\": [\"Otvori sloj za odabir godina\"] }, \"Pick\": { \"v\": [\"Odaberi\"] }, \"Previous month\": { \"v\": [\"Prethodni mjesec\"] }, \"Previous year\": { \"v\": [\"Prethodna godina\"] }, \"Select date\": { \"v\": [\"Odaberi datum\"] }, \"Select date and time\": { \"v\": [\"Odaberi datum i vrijeme\"] }, \"Select month\": { \"v\": [\"Odaberi mjesec\"] }, \"Select time\": { \"v\": [\"Odaberi vrijeme\"] }, \"Select time range\": { \"v\": [\"Odaberi vremenski raspon\"] }, \"Select week\": { \"v\": [\"Odaberi tjedan\"] }, \"Select year\": { \"v\": [\"Odaberi godinu\"] }, \"Switch AM/PM mode\": { \"v\": [\"Prebaci AM/PM način\"] }, \"Time picker\": { \"v\": [\"Odabir vremena\"] }, \"Time zone\": { \"v\": [\"Vremenska zona\"] }, \"Toggle overlay\": { \"v\": [\"Uključi/isključi sloj\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Odabir godine\"] }, \"Year picker overlay\": { \"v\": [\"Sloj za odabir godine\"] } } }, { \"l\": \"hu\", \"t\": { \"Calendar icon\": { \"v\": [\"NaptĆ”rikon\"] }, \"Cancel\": { \"v\": [\"MĆ©gse\"] }, \"Clear value\": { \"v\": [\"ƉrtĆ©k tƶrlĆ©se\"] }, \"Close time Picker\": { \"v\": [\"IdővĆ”lasztó bezĆ”rĆ”sa\"] }, \"Datepicker input\": { \"v\": [\"DĆ”tumvĆ”lasztó bemenet\"] }, \"Datepicker menu\": { \"v\": [\"DĆ”tumvĆ”lasztó menü\"] }, \"Decrement hours\": { \"v\": [\"ƓrĆ”k csƶkkentĆ©se\"] }, \"Decrement minutes\": { \"v\": [\"Percek csƶkkentĆ©se\"] }, \"Decrement seconds\": { \"v\": [\"MĆ”sodpercek csƶkkentĆ©se\"] }, \"Increment hours\": { \"v\": [\"ƓrĆ”k nƶvelĆ©se\"] }, \"Increment minutes\": { \"v\": [\"Percek nƶvelĆ©se\"] }, \"Increment seconds\": { \"v\": [\"MĆ”sodpercek nƶvelĆ©se\"] }, \"Month picker\": { \"v\": [\"HónapvĆ”lasztó\"] }, \"Month picker overlay\": { \"v\": [\"HónapvĆ”lasztó Ć”tfedĆ©s\"] }, \"Next month\": { \"v\": [\"Kƶvetkező hónap\"] }, \"Next year\": { \"v\": [\"Kƶvetkező Ć©v\"] }, \"Now\": { \"v\": [\"Most\"] }, \"Open hours overlay\": { \"v\": [\"ƓrĆ”k Ć”tfedĆ©sĆ©nek megnyitĆ”sa\"] }, \"Open minutes overlay\": { \"v\": [\"Percek Ć”tfedĆ©sĆ©nek megnyitĆ”sa\"] }, \"Open months overlay\": { \"v\": [\"Hónapok Ć”tfedĆ©sĆ©nek megnyitĆ”sa\"] }, \"Open seconds overlay\": { \"v\": [\"MĆ”sodpercek Ć”tfedĆ©sĆ©nek megnyitĆ”sa\"] }, \"Open time picker\": { \"v\": [\"IdővĆ”lasztó megnyitĆ”sa\"] }, \"Open years overlay\": { \"v\": [\"Ɖvek Ć”tfedĆ©sĆ©nek megnyitĆ”sa\"] }, \"Pick\": { \"v\": [\"VĆ”lasszon\"] }, \"Previous month\": { \"v\": [\"Előző hónap\"] }, \"Previous year\": { \"v\": [\"Előző Ć©v\"] }, \"Select date\": { \"v\": [\"VĆ”lasszon dĆ”tumot\"] }, \"Select date and time\": { \"v\": [\"VĆ”lasszon dĆ”tumot Ć©s időt\"] }, \"Select month\": { \"v\": [\"VĆ”lasszon hónapot\"] }, \"Select time\": { \"v\": [\"VĆ”lasszon időt\"] }, \"Select time range\": { \"v\": [\"VĆ”lasszon időszakot\"] }, \"Select week\": { \"v\": [\"VĆ”lasszon hetet\"] }, \"Select year\": { \"v\": [\"VĆ”lasszon Ć©vet\"] }, \"Switch AM/PM mode\": { \"v\": [\"VĆ”ltĆ”s de./du. módra\"] }, \"Time picker\": { \"v\": [\"IdővĆ”lasztó\"] }, \"Time zone\": { \"v\": [\"Időzóna\"] }, \"Toggle overlay\": { \"v\": [\"ƁtfedĆ©s be/ki\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"ƉvvĆ”lasztó\"] }, \"Year picker overlay\": { \"v\": [\"ƉvvĆ”lasztó Ć”tfedĆ©s\"] } } }, { \"l\": \"id\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikon kalender\"] }, \"Cancel\": { \"v\": [\"Batal\"] }, \"Clear value\": { \"v\": [\"Hapus nilai\"] }, \"Close time Picker\": { \"v\": [\"Tutup pemilih waktu\"] }, \"Datepicker input\": { \"v\": [\"Input pemilih tanggal\"] }, \"Datepicker menu\": { \"v\": [\"Menu pemilih tanggal\"] }, \"Decrement hours\": { \"v\": [\"Kurangi jam\"] }, \"Decrement minutes\": { \"v\": [\"Kurangi menit\"] }, \"Decrement seconds\": { \"v\": [\"Kurangi detik\"] }, \"Increment hours\": { \"v\": [\"Tambah jam\"] }, \"Increment minutes\": { \"v\": [\"Tambah menit\"] }, \"Increment seconds\": { \"v\": [\"Tambah detik\"] }, \"Month picker\": { \"v\": [\"Pemilih bulan\"] }, \"Month picker overlay\": { \"v\": [\"Overlay pemilih bulan\"] }, \"Next month\": { \"v\": [\"Bulan berikutnya\"] }, \"Next year\": { \"v\": [\"Tahun berikutnya\"] }, \"Now\": { \"v\": [\"Sekarang\"] }, \"Open hours overlay\": { \"v\": [\"Buka overlay jam\"] }, \"Open minutes overlay\": { \"v\": [\"Buka overlay menit\"] }, \"Open months overlay\": { \"v\": [\"Buka overlay bulan\"] }, \"Open seconds overlay\": { \"v\": [\"Buka overlay detik\"] }, \"Open time picker\": { \"v\": [\"Buka pemilih waktu\"] }, \"Open years overlay\": { \"v\": [\"Buka overlay tahun\"] }, \"Pick\": { \"v\": [\"Pilih\"] }, \"Previous month\": { \"v\": [\"Bulan sebelumnya\"] }, \"Previous year\": { \"v\": [\"Tahun sebelumnya\"] }, \"Select date\": { \"v\": [\"Pilih tanggal\"] }, \"Select date and time\": { \"v\": [\"Pilih tanggal dan waktu\"] }, \"Select month\": { \"v\": [\"Pilih bulan\"] }, \"Select time\": { \"v\": [\"Pilih waktu\"] }, \"Select time range\": { \"v\": [\"Pilih rentang waktu\"] }, \"Select week\": { \"v\": [\"Pilih minggu\"] }, \"Select year\": { \"v\": [\"Pilih tahun\"] }, \"Switch AM/PM mode\": { \"v\": [\"Ganti mode AM/PM\"] }, \"Time picker\": { \"v\": [\"Pemilih waktu\"] }, \"Time zone\": { \"v\": [\"Zona waktu\"] }, \"Toggle overlay\": { \"v\": [\"Alihkan overlay\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Pemilih tahun\"] }, \"Year picker overlay\": { \"v\": [\"Overlay pemilih tahun\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Calendar icon\": { \"v\": [\"ć‚«ćƒ¬ćƒ³ćƒ€ćƒ¼ć®ć‚¢ć‚¤ć‚³ćƒ³\"] }, \"Cancel\": { \"v\": [\"ć‚­ćƒ£ćƒ³ć‚»ćƒ«\"] }, \"Clear value\": { \"v\": [\"å€¤ć‚’ć‚ÆćƒŖć‚¢\"] }, \"Close time Picker\": { \"v\": [\"ę™‚é–“ćƒ”ćƒƒć‚«ćƒ¼ć‚’é–‰ć˜ć‚‹\"] }, \"Datepicker input\": { \"v\": [\"ćƒ‡ćƒ¼ć‚æćƒ”ćƒƒć‚«ćƒ¼å…„åŠ›\"] }, \"Datepicker menu\": { \"v\": [\"ćƒ‡ćƒ¼ć‚æćƒ”ćƒƒć‚«ćƒ¼ćƒ”ćƒ‹ćƒ„ćƒ¼\"] }, \"Decrement hours\": { \"v\": [\"時間を減らす\"] }, \"Decrement minutes\": { \"v\": [\"åˆ†ć‚’ęø›ć‚‰ć™\"] }, \"Decrement seconds\": { \"v\": [\"秒を減らす\"] }, \"Increment hours\": { \"v\": [\"時間を増やす\"] }, \"Increment minutes\": { \"v\": [\"åˆ†ć‚’å¢—ć‚„ć™\"] }, \"Increment seconds\": { \"v\": [\"秒を増やす\"] }, \"Month picker\": { \"v\": [\"ęœˆćƒ”ćƒƒć‚«ćƒ¼\"] }, \"Month picker overlay\": { \"v\": [\"ęœˆćƒ”ćƒƒć‚«ćƒ¼ć‚Ŗćƒ¼ćƒćƒ¼ćƒ¬ć‚¤\"] }, \"Next month\": { \"v\": [\"欔月\"] }, \"Next year\": { \"v\": [\"欔幓\"] }, \"Now\": { \"v\": [\"ē¾åœØ\"] }, \"Open hours overlay\": { \"v\": [\"ę™‚é–“ć‚Ŗćƒ¼ćƒćƒ¼ćƒ¬ć‚¤ć‚’é–‹ć\"] }, \"Open minutes overlay\": { \"v\": [\"åˆ†ć‚Ŗćƒ¼ćƒćƒ¼ćƒ¬ć‚¤ć‚’é–‹ć\"] }, \"Open months overlay\": { \"v\": [\"ęœˆć‚Ŗćƒ¼ćƒćƒ¼ćƒ¬ć‚¤ć‚’é–‹ć\"] }, \"Open seconds overlay\": { \"v\": [\"ē§’ć‚Ŗćƒ¼ćƒćƒ¼ćƒ¬ć‚¤ć‚’é–‹ć\"] }, \"Open time picker\": { \"v\": [\"ę™‚é–“ćƒ”ćƒƒć‚«ćƒ¼ć‚’é–‹ć\"] }, \"Open years overlay\": { \"v\": [\"å¹“ć‚Ŗćƒ¼ćƒćƒ¼ćƒ¬ć‚¤ć‚’é–‹ć\"] }, \"Pick\": { \"v\": [\"éøęŠž\"] }, \"Previous month\": { \"v\": [\"å‰ęœˆ\"] }, \"Previous year\": { \"v\": [\"前幓\"] }, \"Select date\": { \"v\": [\"ę—„ä»˜ć‚’éøęŠž\"] }, \"Select date and time\": { \"v\": [\"ę—„ä»˜ćØę™‚åˆ»ć‚’éøęŠž\"] }, \"Select month\": { \"v\": [\"ęœˆć‚’éøęŠž\"] }, \"Select time\": { \"v\": [\"ę™‚åˆ»ć‚’éøęŠž\"] }, \"Select time range\": { \"v\": [\"ę™‚é–“ēÆ„å›²ć‚’éøęŠž\"] }, \"Select week\": { \"v\": [\"é€±ć‚’éøęŠž\"] }, \"Select year\": { \"v\": [\"å¹“ć‚’éøęŠž\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PMćƒ¢ćƒ¼ćƒ‰ć®åˆ‡ć‚Šę›æćˆ\"] }, \"Time picker\": { \"v\": [\"ę™‚åˆ»ćƒ”ćƒƒć‚«ćƒ¼\"] }, \"Time zone\": { \"v\": [\"ć‚æć‚¤ćƒ ć‚¾ćƒ¼ćƒ³\"] }, \"Toggle overlay\": { \"v\": [\"ć‚Ŗćƒ¼ćƒćƒ¼ćƒ¬ć‚¤ć®åˆ‡ć‚Šę›æćˆ\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"å¹“ćƒ”ćƒƒć‚«ćƒ¼\"] }, \"Year picker overlay\": { \"v\": [\"å¹“ćƒ”ćƒƒć‚«ćƒ¼ć‚Ŗćƒ¼ćƒćƒ¼ćƒ¬ć‚¤\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Calendar icon\": { \"v\": [\"ģŗ˜ė¦°ė” ģ•„ģ“ģ½˜\"] }, \"Cancel\": { \"v\": [\"ģ·Øģ†Œ\"] }, \"Clear value\": { \"v\": [\"ź°’ ģ§€ģš°źø°\"] }, \"Close time Picker\": { \"v\": [\"ģ‹œź°„ ģ„ ķƒźø° ė‹«źø°\"] }, \"Datepicker input\": { \"v\": [\"ė‚ ģ§œ ģ„ ķƒźø° ģž…ė „\"] }, \"Datepicker menu\": { \"v\": [\"ė‚ ģ§œ ģž…ė „źø° 메뉓\"] }, \"Decrement hours\": { \"v\": [\"ģ‹œ ź°ģ†Œ\"] }, \"Decrement minutes\": { \"v\": [\"ė¶„ ź°ģ†Œ\"] }, \"Decrement seconds\": { \"v\": [\"쓈 ź°ģ†Œ\"] }, \"Increment hours\": { \"v\": [\"ģ‹œ ģ¦ź°€\"] }, \"Increment minutes\": { \"v\": [\"ė¶„ ģ¦ź°€\"] }, \"Increment seconds\": { \"v\": [\"쓈 ģ¦ź°€\"] }, \"Month picker\": { \"v\": [\"ģ›” ģ„ ķƒźø°\"] }, \"Month picker overlay\": { \"v\": [\"ģ›” ģ„ ķƒźø° ģ˜¤ė²„ė ˆģ“\"] }, \"Next month\": { \"v\": [\"ė‹¤ģŒ 달\"] }, \"Next year\": { \"v\": [\"ė‹¤ģŒ ķ•“\"] }, \"Now\": { \"v\": [\"ķ˜„ģž¬\"] }, \"Open hours overlay\": { \"v\": [\"ģ‹œ ģ˜¤ė²„ė ˆģ“ ģ—“źø°\"] }, \"Open minutes overlay\": { \"v\": [\"ė¶„ ģ˜¤ė²„ė ˆģ“ ģ—“źø°\"] }, \"Open months overlay\": { \"v\": [\"ģ›” ģ˜¤ė²„ė ˆģ“ ģ—“źø°\"] }, \"Open seconds overlay\": { \"v\": [\"쓈 ģ˜¤ė²„ė ˆģ“ ģ—“źø°\"] }, \"Open time picker\": { \"v\": [\"ģ‹œź°„ ģ„ ķƒźø° ģ—“źø°\"] }, \"Open years overlay\": { \"v\": [\"ė…„ ģ˜¤ė²„ė ˆģ“ ģ—“źø°\"] }, \"Pick\": { \"v\": [\"ģ„ ķƒ\"] }, \"Previous month\": { \"v\": [\"ģ“ģ „ 달\"] }, \"Previous year\": { \"v\": [\"ģ“ģ „ ķ•“\"] }, \"Select date\": { \"v\": [\"ė‚ ģ§œ ģ„ ķƒ\"] }, \"Select date and time\": { \"v\": [\"ė‚ ģ§œģ™€ ģ‹œź°„ ģ„ ķƒ\"] }, \"Select month\": { \"v\": [\"ģ›” ģ„ ķƒ\"] }, \"Select time\": { \"v\": [\"ģ‹œź°„ ģ„ ķƒ\"] }, \"Select time range\": { \"v\": [\"ģ‹œź°„ 구간 ģ„ ķƒ\"] }, \"Select week\": { \"v\": [\"주 ģ„ ķƒ\"] }, \"Select year\": { \"v\": [\"ė…„ė„ ģ„ ķƒ\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM ėŖØė“œ ģ „ķ™˜\"] }, \"Time picker\": { \"v\": [\"ģ‹œź°„ ģ„ ķƒźø°\"] }, \"Time zone\": { \"v\": [\"ģ‹œź°„ėŒ€\"] }, \"Toggle overlay\": { \"v\": [\"ģ˜¤ė²„ė ˆģ“ 토글\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"ė…„ė„ ģ„ ķƒźø°\"] }, \"Year picker overlay\": { \"v\": [\"ė…„ė„ ģ„ ķƒźø° ģ˜¤ė²„ė ˆģ“\"] } } }, { \"l\": \"lo\", \"t\": { \"Calendar icon\": { \"v\": [\"ໄອຄອນປະຕຓທຓນ\"] }, \"Cancel\": { \"v\": [\"ąŗąŗ»ąŗą»€ąŗ„ąŗµąŗ\"] }, \"Clear value\": { \"v\": [\"ąŗ„ąŗ¶ąŗšąŗ„ą»ˆąŗ²\"] }, \"Close time Picker\": { \"v\": [\"ປຓດໂຕເຄືອກເວຄາ\"] }, \"Datepicker input\": { \"v\": [\"ąŗŠą»ˆąŗ­ąŗ‡ąŗ›ą»‰ąŗ­ąŗ™ąŗ§ąŗ±ąŗ™ąŗ—ąŗµ\"] }, \"Datepicker menu\": { \"v\": [\"ເດນູໂຕເຄືອກວັນທີ\"] }, \"Decrement hours\": { \"v\": [\"ąŗ«ąŗ¼ąŗøąŗ”ąŗŠąŗ»ą»ˆąŗ§ą»‚ąŗ”ąŗ‡\"] }, \"Decrement minutes\": { \"v\": [\"ຫຼຸດນາທີ\"] }, \"Decrement seconds\": { \"v\": [\"ຫຼຸດວຓນາທີ\"] }, \"Increment hours\": { \"v\": [\"ą»€ąŗžąŗµą»ˆąŗ”ąŗŠąŗ»ą»ˆąŗ§ą»‚ąŗ”ąŗ‡\"] }, \"Increment minutes\": { \"v\": [\"ą»€ąŗžąŗµą»ˆąŗ”ąŗ™ąŗ²ąŗ—ąŗµ\"] }, \"Increment seconds\": { \"v\": [\"ą»€ąŗžąŗµą»ˆąŗ”ąŗ§ąŗ“ąŗ™ąŗ²ąŗ—ąŗµ\"] }, \"Month picker\": { \"v\": [\"ໂຕເຄືອກເດືອນ\"] }, \"Month picker overlay\": { \"v\": [\"ą»œą»‰ąŗ²ąŗ•ą»ˆąŗ²ąŗ‡ą»‚ąŗ•ą»€ąŗ„ąŗ·ąŗ­ąŗą»€ąŗ”ąŗ·ąŗ­ąŗ™\"] }, \"Next month\": { \"v\": [\"ą»€ąŗ”ąŗ·ąŗ­ąŗ™ą»œą»‰ąŗ²\"] }, \"Next year\": { \"v\": [\"ąŗ›ąŗµą»œą»‰ąŗ²\"] }, \"Now\": { \"v\": [\"ຕອນນີ້\"] }, \"Open hours overlay\": { \"v\": [\"ą»€ąŗ›ąŗµąŗ”ą»œą»‰ąŗ²ąŗ•ą»ˆąŗ²ąŗ‡ą»€ąŗ„ąŗ·ąŗ­ąŗąŗŠąŗ»ą»ˆąŗ§ą»‚ąŗ”ąŗ‡\"] }, \"Open minutes overlay\": { \"v\": [\"ą»€ąŗ›ąŗµąŗ”ą»œą»‰ąŗ²ąŗ•ą»ˆąŗ²ąŗ‡ą»€ąŗ„ąŗ·ąŗ­ąŗąŗ™ąŗ²ąŗ—ąŗµ\"] }, \"Open months overlay\": { \"v\": [\"ą»€ąŗ›ąŗµąŗ”ą»œą»‰ąŗ²ąŗ•ą»ˆąŗ²ąŗ‡ą»€ąŗ„ąŗ·ąŗ­ąŗą»€ąŗ”ąŗ·ąŗ­ąŗ™\"] }, \"Open seconds overlay\": { \"v\": [\"ą»€ąŗ›ąŗµąŗ”ą»œą»‰ąŗ²ąŗ•ą»ˆąŗ²ąŗ‡ą»€ąŗ„ąŗ·ąŗ­ąŗąŗ§ąŗ“ąŗ™ąŗ²ąŗ—ąŗµ\"] }, \"Open time picker\": { \"v\": [\"ເປີດໂຕເຄືອກເວຄາ\"] }, \"Open years overlay\": { \"v\": [\"ą»€ąŗ›ąŗµąŗ”ą»œą»‰ąŗ²ąŗ•ą»ˆąŗ²ąŗ‡ą»€ąŗ„ąŗ·ąŗ­ąŗąŗ›ąŗµ\"] }, \"Pick\": { \"v\": [\"ເຄືອກ\"] }, \"Previous month\": { \"v\": [\"ą»€ąŗ”ąŗ·ąŗ­ąŗ™ąŗą»ˆąŗ­ąŗ™\"] }, \"Previous year\": { \"v\": [\"ąŗ›ąŗµąŗą»ˆąŗ­ąŗ™\"] }, \"Select date\": { \"v\": [\"ເຄືອກວັນທີ\"] }, \"Select date and time\": { \"v\": [\"ເຄືອກວັນທີ ແຄະ ເວຄາ\"] }, \"Select month\": { \"v\": [\"ເຄືອກເດືອນ\"] }, \"Select time\": { \"v\": [\"ເຄືອກເວຄາ\"] }, \"Select time range\": { \"v\": [\"ą»€ąŗ„ąŗ·ąŗ­ąŗąŗŠą»ˆąŗ§ąŗ‡ą»€ąŗ§ąŗ„ąŗ²\"] }, \"Select week\": { \"v\": [\"ເຄືອກອາທຓດ\"] }, \"Select year\": { \"v\": [\"ເຄືອກປີ\"] }, \"Switch AM/PM mode\": { \"v\": [\"ąŗŖąŗ°ąŗ«ąŗ¼ąŗ±ąŗšą»‚ą»ąŗ” AM/PM\"] }, \"Time picker\": { \"v\": [\"ໂຕເຄືອກເວຄາ\"] }, \"Time zone\": { \"v\": [\"ເຂດເວຄາ\"] }, \"Toggle overlay\": { \"v\": [\"ąŗŖąŗ°ąŗ«ąŗ¼ąŗ±ąŗšą»œą»‰ąŗ²ąŗ•ą»ˆąŗ²ąŗ‡\"] }, \"W\": { \"v\": [\"ąŗ­\"] }, \"Year picker\": { \"v\": [\"ໂຕເຄືອກປີ\"] }, \"Year picker overlay\": { \"v\": [\"ą»œą»‰ąŗ²ąŗ•ą»ˆąŗ²ąŗ‡ą»‚ąŗ•ą»€ąŗ„ąŗ·ąŗ­ąŗąŗ›ąŗµ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendoriaus piktograma\"] }, \"Cancel\": { \"v\": [\"Atsisakyti\"] }, \"Clear value\": { \"v\": [\"AiÅ”ki vertė\"] }, \"Close time Picker\": { \"v\": [\"Uždaryti laiko pasirinkimo langą\"] }, \"Datepicker input\": { \"v\": [\"Datos rinkiklio ÄÆvestis\"] }, \"Datepicker menu\": { \"v\": [\"Datos rinkiklio meniu\"] }, \"Decrement hours\": { \"v\": [\"Sumažinkite valandas\"] }, \"Decrement minutes\": { \"v\": [\"Sumažinkite minutes\"] }, \"Decrement seconds\": { \"v\": [\"Sumažinkite sekundes\"] }, \"Increment hours\": { \"v\": [\"Padidinkite valandas\"] }, \"Increment minutes\": { \"v\": [\"Padidinkite minutes\"] }, \"Increment seconds\": { \"v\": [\"Padidinkite sekundes\"] }, \"Month picker\": { \"v\": [\"Mėnesio pasirinkimas\"] }, \"Month picker overlay\": { \"v\": [\"Mėnesio parinkiklio langas\"] }, \"Next month\": { \"v\": [\"Kitą mėnesÄÆ\"] }, \"Next year\": { \"v\": [\"Kiti metai\"] }, \"Now\": { \"v\": [\"Dabar\"] }, \"Open hours overlay\": { \"v\": [\"Atidaryti valandų pasirinkimą\"] }, \"Open minutes overlay\": { \"v\": [\"Atidaryti minučių pasirinkimą\"] }, \"Open months overlay\": { \"v\": [\"Atidaryti mėnesių pasirinkimą\"] }, \"Open seconds overlay\": { \"v\": [\"Atidaryti sekundžių pasirinkimą\"] }, \"Open time picker\": { \"v\": [\"Atverti laiko pasirinkimo langą\"] }, \"Open years overlay\": { \"v\": [\"Atidaryti metų pasirinkimą\"] }, \"Pick\": { \"v\": [\"Pasirinkti\"] }, \"Previous month\": { \"v\": [\"Ankstesnis mėnesis\"] }, \"Previous year\": { \"v\": [\"Ankstesni metai\"] }, \"Select date\": { \"v\": [\"Pasirinkti datą\"] }, \"Select date and time\": { \"v\": [\"Pasirinkti datą ir laiką\"] }, \"Select month\": { \"v\": [\"Pasirinkti mėnesÄÆ\"] }, \"Select time\": { \"v\": [\"Pasirinkti laiką\"] }, \"Select time range\": { \"v\": [\"Pasirinkti laikotarpÄÆ\"] }, \"Select week\": { \"v\": [\"Pasirinkti savaitę\"] }, \"Select year\": { \"v\": [\"Pasirinkti metus\"] }, \"Switch AM/PM mode\": { \"v\": [\"Perjungti AM/PM režimą\"] }, \"Time picker\": { \"v\": [\"Laiko parinkiklis\"] }, \"Time zone\": { \"v\": [\"Laiko juosta\"] }, \"Toggle overlay\": { \"v\": [\"Perjungti pasirinkimo langą\"] }, \"W\": { \"v\": ['\"W\"'] }, \"Year picker\": { \"v\": [\"Metų parinkiklis\"] }, \"Year picker overlay\": { \"v\": [\"Metų pasirinkimo langas\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Calendar icon\": { \"v\": [\"Икона за каленГар\"] }, \"Cancel\": { \"v\": [\"ŠžŃ‚ŠŗŠ°Š¶Šø\"] }, \"Clear value\": { \"v\": [\"Š˜ŃŃ‡ŠøŃŃ‚Šø вреГност\"] }, \"Close time Picker\": { \"v\": [\"Затвори избирач на време\"] }, \"Datepicker input\": { \"v\": [\"Поле за избор на Š“Š°Ń‚ŃƒŠ¼\"] }, \"Datepicker menu\": { \"v\": [\"Мени за избор на Š“Š°Ń‚ŃƒŠ¼\"] }, \"Decrement hours\": { \"v\": [\"ŠŠ°Š¼Š°Š»Šø часови\"] }, \"Decrement minutes\": { \"v\": [\"ŠŠ°Š¼Š°Š»Šø Š¼ŠøŠ½ŃƒŃ‚Šø\"] }, \"Decrement seconds\": { \"v\": [\"ŠŠ°Š¼Š°Š»Šø секунГи\"] }, \"Increment hours\": { \"v\": [\"Зголеми часови\"] }, \"Increment minutes\": { \"v\": [\"Зголеми Š¼ŠøŠ½ŃƒŃ‚Šø\"] }, \"Increment seconds\": { \"v\": [\"Зголеми секунГи\"] }, \"Month picker\": { \"v\": [\"Š˜Š·Š±Š¾Ń€ на месец\"] }, \"Month picker overlay\": { \"v\": [\"ŠŠ°Š“Š¾Š»Š¶ŠµŠ½ избор на месец\"] }, \"Next month\": { \"v\": [\"ДлеГен месец\"] }, \"Next year\": { \"v\": [\"ДлеГна гоГина\"] }, \"Now\": { \"v\": [\"Дега\"] }, \"Open hours overlay\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø преклоп за часови\"] }, \"Open minutes overlay\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø преклоп за Š¼ŠøŠ½ŃƒŃ‚Šø\"] }, \"Open months overlay\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø преклоп за месеци\"] }, \"Open seconds overlay\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø преклоп за секунГи\"] }, \"Open time picker\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø избор на време\"] }, \"Open years overlay\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø преклоп за гоГини\"] }, \"Pick\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø\"] }, \"Previous month\": { \"v\": [\"ŠŸŃ€ŠµŠ“Ń…Š¾Š“ŠµŠ½ месец\"] }, \"Previous year\": { \"v\": [\"ŠŸŃ€ŠµŠ“Ń…Š¾Š“Š½Š° гоГина\"] }, \"Select date\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø Š“Š°Ń‚ŃƒŠ¼\"] }, \"Select date and time\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø Š“Š°Ń‚ŃƒŠ¼ Šø време\"] }, \"Select month\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø месец\"] }, \"Select time\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø време\"] }, \"Select time range\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø времески опсег\"] }, \"Select week\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø неГела\"] }, \"Select year\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø гоГина\"] }, \"Switch AM/PM mode\": { \"v\": [\"Дмени AM/PM режим\"] }, \"Time picker\": { \"v\": [\"Š˜Š·Š±ŠøŃ€Š°Ń‡ на време\"] }, \"Time zone\": { \"v\": [\"Временска зона\"] }, \"Toggle overlay\": { \"v\": [\"Š’ŠŗŠ»ŃƒŃ‡Šø/ŠøŃŠŗŠ»ŃƒŃ‡Šø преклоп\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Š˜Š·Š±Š¾Ń€ на гоГина\"] }, \"Year picker overlay\": { \"v\": [\"ŠŠ°Š“Š¾Š»Š¶ŠµŠ½ избор на гоГина\"] } } }, { \"l\": \"mn\", \"t\": { \"Calendar icon\": { \"v\": [\"ŠšŠ°Š»ŠµŠ½Š“Š°Ń€ŠøŠ¹Š½ Гүрс\"] }, \"Cancel\": { \"v\": [\"Š¦ŃƒŃ†Š»Š°Ń…\"] }, \"Clear value\": { \"v\": [\"Утгыг Ń†ŃŠ²ŃŃ€Š»ŃŃ…\"] }, \"Close time Picker\": { \"v\": [\"Цаг сонгогчийг хаах\"] }, \"Datepicker input\": { \"v\": [\"ŠžŠ³Š½Š¾Š¾ сонгогчийн оролт\"] }, \"Datepicker menu\": { \"v\": [\"ŠžŠ³Š½Š¾Š¾ сонгогчийн цэс\"] }, \"Decrement hours\": { \"v\": [\"Цагийг Š±ŃƒŃƒŃ€ŃƒŃƒŠ»Š°Ń…\"] }, \"Decrement minutes\": { \"v\": [\"ŠœŠøŠ½ŃƒŃ‚Ń‹Š³ Š±ŃƒŃƒŃ€ŃƒŃƒŠ»Š°Ń…\"] }, \"Decrement seconds\": { \"v\": [\"Š”ŠµŠŗŃƒŠ½Š“Ń‹Š³ Š±ŃƒŃƒŃ€ŃƒŃƒŠ»Š°Ń…\"] }, \"Increment hours\": { \"v\": [\"Цагийг Š½ŃŠ¼ŃŠ³Š“ŅÆŅÆŠ»ŃŃ…\"] }, \"Increment minutes\": { \"v\": [\"ŠœŠøŠ½ŃƒŃ‚Ń‹Š³ Š½ŃŠ¼ŃŠ³Š“ŅÆŅÆŠ»ŃŃ…\"] }, \"Increment seconds\": { \"v\": [\"Š”ŠµŠŗŃƒŠ½Š“Ń‹Š³ Š½ŃŠ¼ŃŠ³Š“ŅÆŅÆŠ»ŃŃ…\"] }, \"Month picker\": { \"v\": [\"Дар сонгогч\"] }, \"Month picker overlay\": { \"v\": [\"Дар сонгогчийн Гавхарга\"] }, \"Next month\": { \"v\": [\"Дараа сар\"] }, \"Next year\": { \"v\": [\"Дараа жил\"] }, \"Now\": { \"v\": [\"ŠžŠ“Š¾Š¾\"] }, \"Open hours overlay\": { \"v\": [\"Цагийн Гавхаргыг Š½ŃŃŃ…\"] }, \"Open minutes overlay\": { \"v\": [\"ŠœŠøŠ½ŃƒŃ‚Ń‹Š½ Гавхаргыг Š½ŃŃŃ…\"] }, \"Open months overlay\": { \"v\": [\"Дарын Гавхаргыг Š½ŃŃŃ…\"] }, \"Open seconds overlay\": { \"v\": [\"Š”ŠµŠŗŃƒŠ½Š“Ń‹Š½ Гавхаргыг Š½ŃŃŃ…\"] }, \"Open time picker\": { \"v\": [\"Цаг сонгогчийг Š½ŃŃŃ…\"] }, \"Open years overlay\": { \"v\": [\"Жилийн Гавхаргыг Š½ŃŃŃ…\"] }, \"Pick\": { \"v\": [\"Донгох\"] }, \"Previous month\": { \"v\": [\"Өмнөх сар\"] }, \"Previous year\": { \"v\": [\"Өмнөх жил\"] }, \"Select date\": { \"v\": [\"ŠžŠ³Š½Š¾Š¾ сонгох\"] }, \"Select date and time\": { \"v\": [\"ŠžŠ³Š½Š¾Š¾, цаг сонгох\"] }, \"Select month\": { \"v\": [\"Дар сонгох\"] }, \"Select time\": { \"v\": [\"Цаг сонгох\"] }, \"Select time range\": { \"v\": [\"Цагийн Ń…ŅÆŃ€ŃŃ сонгох\"] }, \"Select week\": { \"v\": [\"Долоо хоног сонгох\"] }, \"Select year\": { \"v\": [\"Š–ŠøŠ» сонгох\"] }, \"Switch AM/PM mode\": { \"v\": [\"ҮӨ/ҮЄ горимыг солих\"] }, \"Time picker\": { \"v\": [\"Цаг сонгогч\"] }, \"Time zone\": { \"v\": [\"Цагийн бүс\"] }, \"Toggle overlay\": { \"v\": [\"Давхаргыг ŃŃŠ»Š³ŃŃ…\"] }, \"W\": { \"v\": [\"Š”\"] }, \"Year picker\": { \"v\": [\"Š–ŠøŠ» сонгогч\"] }, \"Year picker overlay\": { \"v\": [\"Š–ŠøŠ» сонгогчийн Гавхарга\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalender-pictogram\"] }, \"Cancel\": { \"v\": [\"Annuleren\"] }, \"Clear value\": { \"v\": [\"Waarde wissen\"] }, \"Close time Picker\": { \"v\": [\"Tijdkiezer sluiten\"] }, \"Datepicker input\": { \"v\": [\"Datumkiezer invoer\"] }, \"Datepicker menu\": { \"v\": [\"Datumkiezer menu\"] }, \"Decrement hours\": { \"v\": [\"Uren verminderen\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verminderen\"] }, \"Decrement seconds\": { \"v\": [\"Seconden verminderen\"] }, \"Increment hours\": { \"v\": [\"Uren vermeerderen\"] }, \"Increment minutes\": { \"v\": [\"Minuten vermeerderen\"] }, \"Increment seconds\": { \"v\": [\"Seconden vermeerderen\"] }, \"Month picker\": { \"v\": [\"Maandkiezer\"] }, \"Month picker overlay\": { \"v\": [\"Maandkiezer-overlay\"] }, \"Next month\": { \"v\": [\"Volgende maand\"] }, \"Next year\": { \"v\": [\"Volgend jaar\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Uren-overlay openen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-overlay openen\"] }, \"Open months overlay\": { \"v\": [\"Maanden-overlay openen\"] }, \"Open seconds overlay\": { \"v\": [\"Seconden-overlay openen\"] }, \"Open time picker\": { \"v\": [\"Tijdkiezer openen\"] }, \"Open years overlay\": { \"v\": [\"Jaren-overlay openen\"] }, \"Pick\": { \"v\": [\"Kiezen\"] }, \"Previous month\": { \"v\": [\"Vorige maand\"] }, \"Previous year\": { \"v\": [\"Vorig jaar\"] }, \"Select date\": { \"v\": [\"Selecteer datum\"] }, \"Select date and time\": { \"v\": [\"Selecteer datum en tijd\"] }, \"Select month\": { \"v\": [\"Selecteer maand\"] }, \"Select time\": { \"v\": [\"Selecteer tijd\"] }, \"Select time range\": { \"v\": [\"Selecteer tijdsbereik\"] }, \"Select week\": { \"v\": [\"Selecteer week\"] }, \"Select year\": { \"v\": [\"Selecteer jaar\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM-modus wisselen\"] }, \"Time picker\": { \"v\": [\"Tijdkiezer\"] }, \"Time zone\": { \"v\": [\"Tijdzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay wisselen\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jaarkiezer\"] }, \"Year picker overlay\": { \"v\": [\"Jaarkiezer-overlay\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Calendar icon\": { \"v\": [\"ƍcone de calendĆ”rio\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar valor\"] }, \"Close time Picker\": { \"v\": [\"Fechar Seletor de tempo\"] }, \"Datepicker input\": { \"v\": [\"entrada do seletor de data\"] }, \"Datepicker menu\": { \"v\": [\"menu do seletor de data\"] }, \"Decrement hours\": { \"v\": [\"Diminuir horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuir minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuir segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar segundos\"] }, \"Month picker\": { \"v\": [\"Seletor de meses\"] }, \"Month picker overlay\": { \"v\": [\"Sobreposição do seletor de meses\"] }, \"Next month\": { \"v\": [\"Próximo mĆŖs\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir sobreposição de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir sobreposição de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir sobreposição de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir sobreposição de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir seletor de tempo\"] }, \"Open years overlay\": { \"v\": [\"Abrir sobreposição de anos\"] }, \"Pick\": { \"v\": [\"Escolher\"] }, \"Previous month\": { \"v\": [\"MĆŖs anterior\"] }, \"Previous year\": { \"v\": [\"Ano anterior\"] }, \"Select date\": { \"v\": [\"Selecione data\"] }, \"Select date and time\": { \"v\": [\"Selecione data e hora\"] }, \"Select month\": { \"v\": [\"Selecione mĆŖs\"] }, \"Select time\": { \"v\": [\"Selecione hora\"] }, \"Select time range\": { \"v\": [\"Selecione intervalo de tempo\"] }, \"Select week\": { \"v\": [\"Selecione semana\"] }, \"Select year\": { \"v\": [\"Selecione ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Seletor de tempo\"] }, \"Time zone\": { \"v\": [\"Fuso horĆ”rio\"] }, \"Toggle overlay\": { \"v\": [\"Alternar sobreposição\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Seletor de ano\"] }, \"Year picker overlay\": { \"v\": [\"Sobreposição do seletor de ano\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Calendar icon\": { \"v\": [\"ƍcone de calendĆ”rio\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar valor\"] }, \"Close time Picker\": { \"v\": [\"Fechar seletor de hora\"] }, \"Datepicker input\": { \"v\": [\"Campo do seletor de data\"] }, \"Datepicker menu\": { \"v\": [\"Menu do seletor de data\"] }, \"Decrement hours\": { \"v\": [\"Diminuir horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuir minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuir segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar segundos\"] }, \"Month picker\": { \"v\": [\"Seletor de mĆŖs\"] }, \"Month picker overlay\": { \"v\": [\"Janela do seletor de mĆŖs\"] }, \"Next month\": { \"v\": [\"Próximo mĆŖs\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir janela de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir janela de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir janela de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir janela de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir seletor de hora\"] }, \"Open years overlay\": { \"v\": [\"Abrir janela de anos\"] }, \"Pick\": { \"v\": [\"Selecionar\"] }, \"Previous month\": { \"v\": [\"MĆŖs anterior\"] }, \"Previous year\": { \"v\": [\"Ano anterior\"] }, \"Select date\": { \"v\": [\"Selecionar data\"] }, \"Select date and time\": { \"v\": [\"Selecionar data e hora\"] }, \"Select month\": { \"v\": [\"Selecionar mĆŖs\"] }, \"Select time\": { \"v\": [\"Selecionar hora\"] }, \"Select time range\": { \"v\": [\"Selecionar intervalo de horas\"] }, \"Select week\": { \"v\": [\"Selecionar semana\"] }, \"Select year\": { \"v\": [\"Selecionar ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Seletor de hora\"] }, \"Toggle overlay\": { \"v\": [\"Alternar sobreposição\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Seletor de ano\"] }, \"Year picker overlay\": { \"v\": [\"Janela do seletor de ano\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Calendar icon\": { \"v\": [\"Значок ŠŗŠ°Š»ŠµŠ½Š“Š°Ń€Ń\"] }, \"Cancel\": { \"v\": [\"ŠžŃ‚Š¼ŠµŠ½Š°\"] }, \"Clear value\": { \"v\": [\"ŠžŃ‡ŠøŃŃ‚ŠøŃ‚ŃŒ значение\"] }, \"Close time Picker\": { \"v\": [\"Š—Š°ŠŗŃ€Ń‹Ń‚ŃŒ выбор времени\"] }, \"Datepicker input\": { \"v\": [\"Поле выбора Гаты\"] }, \"Datepicker menu\": { \"v\": [\"ŠœŠµŠ½ŃŽ выбора Гаты\"] }, \"Decrement hours\": { \"v\": [\"Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ количество часов\"] }, \"Decrement minutes\": { \"v\": [\"Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ количество Š¼ŠøŠ½ŃƒŃ‚\"] }, \"Decrement seconds\": { \"v\": [\"Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ количество секунГ\"] }, \"Increment hours\": { \"v\": [\"Š£Š²ŠµŠ»ŠøŃ‡ŠøŃ‚ŃŒ количество часов\"] }, \"Increment minutes\": { \"v\": [\"Š£Š²ŠµŠ»ŠøŃ‡ŠøŃ‚ŃŒ количество Š¼ŠøŠ½ŃƒŃ‚\"] }, \"Increment seconds\": { \"v\": [\"Š£Š²ŠµŠ»ŠøŃ‡ŠøŃ‚ŃŒ количество секунГ\"] }, \"Month picker\": { \"v\": [\"Выбор Š¼ŠµŃŃŃ†Š°\"] }, \"Month picker overlay\": { \"v\": [\"ŠžŠŗŠ½Š¾ выбора Š¼ŠµŃŃŃ†Š°\"] }, \"Next month\": { \"v\": [\"Š”Š»ŠµŠ“ŃƒŃŽŃ‰ŠøŠ¹ Š¼ŠµŃŃŃ†\"] }, \"Next year\": { \"v\": [\"Š”Š»ŠµŠ“ŃƒŃŽŃ‰ŠøŠ¹ гоГ\"] }, \"Now\": { \"v\": [\"Дейчас\"] }, \"Open hours overlay\": { \"v\": [\"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ окно выбора часов\"] }, \"Open minutes overlay\": { \"v\": [\"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ окно выбора Š¼ŠøŠ½ŃƒŃ‚\"] }, \"Open months overlay\": { \"v\": [\"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ окно выбора Š¼ŠµŃŃŃ†Š°\"] }, \"Open seconds overlay\": { \"v\": [\"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ окно выбора секунГ\"] }, \"Open time picker\": { \"v\": [\"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ среГство выбора времени\"] }, \"Open years overlay\": { \"v\": [\"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ окно выбора гоГа\"] }, \"Pick\": { \"v\": [\"Выбор\"] }, \"Previous month\": { \"v\": [\"ŠŸŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠøŠ¹ Š¼ŠµŃŃŃ†\"] }, \"Previous year\": { \"v\": [\"ŠŸŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠøŠ¹ гоГ\"] }, \"Select date\": { \"v\": [\"Š’Ń‹Š±Ń€Š°Ń‚ŃŒ Š“Š°Ń‚Ńƒ\"] }, \"Select date and time\": { \"v\": [\"Š’Ń‹Š±Ń€Š°Ń‚ŃŒ Š“Š°Ń‚Ńƒ Šø Š²Ń€ŠµŠ¼Ń\"] }, \"Select month\": { \"v\": [\"Š’Ń‹Š±Ń€Š°Ń‚ŃŒ Š¼ŠµŃŃŃ†\"] }, \"Select time\": { \"v\": [\"Š’Ń‹Š±Ń€Š°Ń‚ŃŒ Š²Ń€ŠµŠ¼Ń\"] }, \"Select time range\": { \"v\": [\"Š’Ń‹Š±Ń€Š°Ń‚ŃŒ временной Гиапазон\"] }, \"Select week\": { \"v\": [\"Š’Ń‹Š±Ń€Š°Ń‚ŃŒ Š½ŠµŠ“ŠµŠ»ŃŽ\"] }, \"Select year\": { \"v\": [\"Š’Ń‹Š±Ń€Š°Ń‚ŃŒ гоГ\"] }, \"Switch AM/PM mode\": { \"v\": [\"ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ режима AM/PM\"] }, \"Time picker\": { \"v\": [\"Выбор времени\"] }, \"Time zone\": { \"v\": [\"Часовой ŠæŠ¾ŃŃ\"] }, \"Toggle overlay\": { \"v\": [\"ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ панель\"] }, \"W\": { \"v\": [\"Š\"] }, \"Year picker\": { \"v\": [\"Выбор гоГа\"] }, \"Year picker overlay\": { \"v\": [\"ŠžŠŗŠ½Š¾ выбора гоГа\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Calendar icon\": { \"v\": [\"Икона каленГара\"] }, \"Cancel\": { \"v\": [\"ŠžŃ‚ŠŗŠ°Š¶Šø\"] }, \"Clear value\": { \"v\": [\"ŠžŠ±Ń€ŠøŃˆŠø вреГност\"] }, \"Close time Picker\": { \"v\": [\"Затвори бирач времена\"] }, \"Datepicker input\": { \"v\": [\"Улаз бирача Š“Š°Ń‚ŃƒŠ¼Š°\"] }, \"Datepicker menu\": { \"v\": [\"Мени бирача Š“Š°Ń‚ŃƒŠ¼Š°\"] }, \"Decrement hours\": { \"v\": [\"Умањи сате\"] }, \"Decrement minutes\": { \"v\": [\"Умањи Š¼ŠøŠ½ŃƒŃ‚Šµ\"] }, \"Decrement seconds\": { \"v\": [\"Умањи секунГе\"] }, \"Increment hours\": { \"v\": [\"Š£Š²ŠµŃ›Š°Ń˜ сате\"] }, \"Increment minutes\": { \"v\": [\"Š£Š²ŠµŃ›Š°Ń˜ Š¼ŠøŠ½ŃƒŃ‚Šµ\"] }, \"Increment seconds\": { \"v\": [\"Š£Š²ŠµŃ›Š°Ń˜ секунГе\"] }, \"Month picker\": { \"v\": [\"Бирач месеца\"] }, \"Month picker overlay\": { \"v\": [\"Маска бирача месеца\"] }, \"Next month\": { \"v\": [\"ŠŠ°Ń€ŠµŠ“Š½Šø месец\"] }, \"Next year\": { \"v\": [\"ŠŠ°Ń€ŠµŠ“Š½Š° гоГина\"] }, \"Now\": { \"v\": [\"ДаГа\"] }, \"Open hours overlay\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø маску сати\"] }, \"Open minutes overlay\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø маску Š¼ŠøŠ½ŃƒŃ‚Š°\"] }, \"Open months overlay\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø маску месеци\"] }, \"Open seconds overlay\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø маску секунГи\"] }, \"Open time picker\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø бирач времена\"] }, \"Open years overlay\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø маску гоГина\"] }, \"Pick\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€Šø\"] }, \"Previous month\": { \"v\": [\"ŠŸŃ€ŠµŃ‚Ń…Š¾Š“Š½Šø месец\"] }, \"Previous year\": { \"v\": [\"ŠŸŃ€ŠµŃ‚Ń…Š¾Š“Š½Š° гоГина\"] }, \"Select date\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€ŠøŃ‚Šµ Š“Š°Ń‚ŃƒŠ¼\"] }, \"Select date and time\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€ŠøŃ‚Šµ Š“Š°Ń‚ŃƒŠ¼ Šø време\"] }, \"Select month\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€ŠøŃ‚Šµ месец\"] }, \"Select time\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€ŠøŃ‚Šµ време\"] }, \"Select time range\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€ŠøŃ‚Šµ опсег времена\"] }, \"Select week\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€ŠøŃ‚Šµ Š½ŠµŠ“ŠµŃ™Ńƒ\"] }, \"Select year\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€ŠøŃ‚Šµ гоГину\"] }, \"Switch AM/PM mode\": { \"v\": [\"Укљ./Š˜ŃŠŗŃ™. AM/PM режим\"] }, \"Time picker\": { \"v\": [\"Бирач времена\"] }, \"Toggle overlay\": { \"v\": [\"Укљ./Š˜ŃŠŗŃ™. маску\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Бирач гоГине\"] }, \"Year picker overlay\": { \"v\": [\"Маска бирача гоГине\"] } } }, { \"l\": \"sv\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalenderikon\"] }, \"Cancel\": { \"v\": [\"Avbryt\"] }, \"Clear value\": { \"v\": [\"Rensa vƤrdet\"] }, \"Close time Picker\": { \"v\": [\"StƤng tidsvƤljaren\"] }, \"Datepicker input\": { \"v\": [\"InmatningsfƤlt fƶr datumvƤljare\"] }, \"Datepicker menu\": { \"v\": [\"Meny fƶr datumvƤljare\"] }, \"Decrement hours\": { \"v\": [\"Minska timmar\"] }, \"Decrement minutes\": { \"v\": [\"Minska minuter\"] }, \"Decrement seconds\": { \"v\": [\"Minska sekunder\"] }, \"Increment hours\": { \"v\": [\"Ɩka timmar\"] }, \"Increment minutes\": { \"v\": [\"Ɩka minuter\"] }, \"Increment seconds\": { \"v\": [\"Ɩka sekunder\"] }, \"Month picker\": { \"v\": [\"MĆ„nadsvƤljare\"] }, \"Month picker overlay\": { \"v\": [\"Panel fƶr mĆ„nadsvƤljare\"] }, \"Next month\": { \"v\": [\"NƤsta mĆ„nad\"] }, \"Next year\": { \"v\": [\"NƤsta Ć„r\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Ɩppna panelen fƶr timmar\"] }, \"Open minutes overlay\": { \"v\": [\"Ɩppna panelen fƶr minuter\"] }, \"Open months overlay\": { \"v\": [\"Ɩppna panelen fƶr mĆ„nader\"] }, \"Open seconds overlay\": { \"v\": [\"Ɩppna panelen fƶr sekunder\"] }, \"Open time picker\": { \"v\": [\"Ɩppna tidsvƤljaren\"] }, \"Open years overlay\": { \"v\": [\"Ɩppna panelen fƶr Ć„r\"] }, \"Pick\": { \"v\": [\"VƤlj\"] }, \"Previous month\": { \"v\": [\"FƶregĆ„ende mĆ„nad\"] }, \"Previous year\": { \"v\": [\"FƶregĆ„ende Ć„r\"] }, \"Select date\": { \"v\": [\"VƤlj datum\"] }, \"Select date and time\": { \"v\": [\"VƤlj datum och tid\"] }, \"Select month\": { \"v\": [\"VƤlj mĆ„nad\"] }, \"Select time\": { \"v\": [\"VƤlj tid\"] }, \"Select time range\": { \"v\": [\"VƤlj tidsintervall\"] }, \"Select week\": { \"v\": [\"VƤlj vecka\"] }, \"Select year\": { \"v\": [\"VƤlj Ć„r\"] }, \"Switch AM/PM mode\": { \"v\": [\"VƤxla AM/PM-lƤge\"] }, \"Time picker\": { \"v\": [\"TidsvƤljare\"] }, \"Time zone\": { \"v\": [\"Tidszon\"] }, \"Toggle overlay\": { \"v\": [\"Visa eller dƶlj panelen\"] }, \"W\": { \"v\": [\"V\"] }, \"Year picker\": { \"v\": [\"ƅrsvƤljare\"] }, \"Year picker overlay\": { \"v\": [\"Panel fƶr Ć„rsvƤljare\"] } } }, { \"l\": \"tr\", \"t\": { \"Calendar icon\": { \"v\": [\"Takvim simgesi\"] }, \"Cancel\": { \"v\": [\"İptal\"] }, \"Clear value\": { \"v\": [\"Değeri temizle\"] }, \"Close time Picker\": { \"v\": [\"Zaman seƧiciyi kapat\"] }, \"Datepicker input\": { \"v\": [\"Tarih seƧici girişi\"] }, \"Datepicker menu\": { \"v\": [\"Tarih seƧici menüsü\"] }, \"Decrement hours\": { \"v\": [\"Azalma saati\"] }, \"Decrement minutes\": { \"v\": [\"Azalma dakikası\"] }, \"Decrement seconds\": { \"v\": [\"Azalma saniyesi\"] }, \"Increment hours\": { \"v\": [\"Artma saati\"] }, \"Increment minutes\": { \"v\": [\"Artma dakikası\"] }, \"Increment seconds\": { \"v\": [\"Artma saniyesi\"] }, \"Month picker\": { \"v\": [\"Ay seƧici\"] }, \"Month picker overlay\": { \"v\": [\"Ay seƧici kaplaması\"] }, \"Next month\": { \"v\": [\"Sonraki ay\"] }, \"Next year\": { \"v\": [\"Sonraki yıl\"] }, \"Now\": { \"v\": [\"Şimdi\"] }, \"Open hours overlay\": { \"v\": [\"AƧık saatler kaplaması\"] }, \"Open minutes overlay\": { \"v\": [\"Dakika kaplamasını aƧ\"] }, \"Open months overlay\": { \"v\": [\"Ay kaplamasını aƧ\"] }, \"Open seconds overlay\": { \"v\": [\"Saniye kaplamasını aƧ\"] }, \"Open time picker\": { \"v\": [\"Saat seƧiciyi aƧ\"] }, \"Open years overlay\": { \"v\": [\"Yıl kaplamasını aƧ\"] }, \"Pick\": { \"v\": [\"SeƧin\"] }, \"Previous month\": { \"v\": [\"Ɩnceki ay\"] }, \"Previous year\": { \"v\": [\"Ɩnceki yıl\"] }, \"Select date\": { \"v\": [\"Tarih seƧin\"] }, \"Select date and time\": { \"v\": [\"Tarih ve saat seƧin\"] }, \"Select month\": { \"v\": [\"Ay seƧin\"] }, \"Select time\": { \"v\": [\"Saat seƧin\"] }, \"Select time range\": { \"v\": [\"Saat aralığı seƧin\"] }, \"Select week\": { \"v\": [\"Hafta seƧin\"] }, \"Select year\": { \"v\": [\"Yıl seƧin\"] }, \"Switch AM/PM mode\": { \"v\": [\"ƖƖ/ƖS kipine geƧ\"] }, \"Time picker\": { \"v\": [\"Saat seƧici\"] }, \"Time zone\": { \"v\": [\"Saat dilimi\"] }, \"Toggle overlay\": { \"v\": [\"Kaplamayı aƧ/kapat\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Yıl seƧici\"] }, \"Year picker overlay\": { \"v\": [\"Yıl seƧici kaplaması\"] } } }, { \"l\": \"uk\", \"t\": { \"Calendar icon\": { \"v\": [\"Значок ŠŗŠ°Š»ŠµŠ½Š“Š°Ń€Ń\"] }, \"Cancel\": { \"v\": [\"Š”ŠŗŠ°ŃŃƒŠ²Š°Ń‚Šø\"] }, \"Clear value\": { \"v\": [\"ŠžŃ‡ŠøŃŃ‚ŠøŃ‚Šø Š·Š½Š°Ń‡ŠµŠ½Š½Ń\"] }, \"Close time Picker\": { \"v\": [\"Закрити вибір Ń‡Š°ŃŃƒ\"] }, \"Datepicker input\": { \"v\": [\"Вибір Гати\"] }, \"Datepicker menu\": { \"v\": [\"ŠœŠµŠ½ŃŽ Š²ŠøŠ±Š¾Ń€Ńƒ Гати\"] }, \"Decrement hours\": { \"v\": [\"Š—Š¼ŠµŠ½ŃˆŠµŠ½Š½Ń гоГин\"] }, \"Decrement minutes\": { \"v\": [\"Š—Š¼ŠµŠ½ŃˆŠµŠ½Š½Ń хвилин\"] }, \"Decrement seconds\": { \"v\": [\"Š—Š¼ŠµŠ½ŃˆŠµŠ½Š½Ń секунГ\"] }, \"Increment hours\": { \"v\": [\"Š—Š±Ń–Š»ŃŒŃˆŠµŠ½Š½Ń гоГин\"] }, \"Increment minutes\": { \"v\": [\"Š—Š±Ń–Š»ŃŒŃˆŠµŠ½Š½Ń хвилин\"] }, \"Increment seconds\": { \"v\": [\"Š—Š±Ń–Š»ŃŒŃˆŠµŠ½Š½Ń секунГ\"] }, \"Month picker\": { \"v\": [\"Вибір Š¼Ń–ŃŃŃ†Ń\"] }, \"Month picker overlay\": { \"v\": [\"ŠŠ°ŠæŠøŃ Š²ŠøŠ±Š¾Ń€Ńƒ Š¼Ń–ŃŃŃ†Ń\"] }, \"Next month\": { \"v\": [\"ŠŠ°ŃŃ‚ŃƒŠæŠ½ŠøŠ¹ Š¼Ń–ŃŃŃ†ŃŒ\"] }, \"Next year\": { \"v\": [\"ŠŠ°ŃŃ‚ŃƒŠæŠ½ŠøŠ¹ рік\"] }, \"Now\": { \"v\": [\"Зараз\"] }, \"Open hours overlay\": { \"v\": [\"ВіГкрити напис гоГин\"] }, \"Open minutes overlay\": { \"v\": [\"ВіГкрити напис хвилин\"] }, \"Open months overlay\": { \"v\": [\"ВіГкрити напис Š¼Ń–ŃŃŃ†Ń–Š²\"] }, \"Open seconds overlay\": { \"v\": [\"ВіГкрити напис секунГ\"] }, \"Open time picker\": { \"v\": [\"ВіГкрити вибір Ń‡Š°ŃŃƒ\"] }, \"Open years overlay\": { \"v\": [\"ВіГкрити напис років\"] }, \"Pick\": { \"v\": [\"Вибрати\"] }, \"Previous month\": { \"v\": [\"ŠŸŠ¾ŠæŠµŃ€ŠµŠ“Š½Ń–Š¹ Š¼Ń–ŃŃŃ†ŃŒ\"] }, \"Previous year\": { \"v\": [\"ŠŸŠ¾ŠæŠµŃ€ŠµŠ“Š½Ń–Š¹ рік\"] }, \"Select date\": { \"v\": [\"Вибрати Š“Š°Ń‚Ńƒ\"] }, \"Select date and time\": { \"v\": [\"Вибрати Š“Š°Ń‚Ńƒ та час\"] }, \"Select month\": { \"v\": [\"Вибрати Š¼Ń–ŃŃŃ†ŃŒ\"] }, \"Select time\": { \"v\": [\"Вибрати час\"] }, \"Select time range\": { \"v\": [\"Вибрати проміжок Ń‡Š°ŃŃƒ\"] }, \"Select week\": { \"v\": [\"Вибрати Ń‚ŠøŠ¶Š“ŠµŠ½ŃŒ\"] }, \"Select year\": { \"v\": [\"Вибрати рік\"] }, \"Switch AM/PM mode\": { \"v\": [\"ŠŸŠµŃ€ŠµŠ¼ŠŗŠ½ŃƒŃ‚Šø показ по ŠæŠ¾Š»ŃƒŠ“Š½Ń–/Го ŠæŠ¾Š»ŃƒŠ“Š½Ń\"] }, \"Time picker\": { \"v\": [\"Вибір Ń‡Š°ŃŃƒ\"] }, \"Toggle overlay\": { \"v\": [\"ŠŸŠµŃ€ŠµŠ¼ŠŗŠ½ŃƒŃ‚Šø напис\"] }, \"W\": { \"v\": [\"Тиж.\"] }, \"Year picker\": { \"v\": [\"Вибір Ń€Š¾ŠŗŃƒ\"] }, \"Year picker overlay\": { \"v\": [\"ŠŠ°ŠæŠøŃ Š²ŠøŠ±Š¾Ń€Ńƒ Ń€Š¾ŠŗŃƒ\"] } } }, { \"l\": \"uz\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendar belgisi\"] }, \"Cancel\": { \"v\": [\"Bekor qilish\"] }, \"Clear value\": { \"v\": [\"Qiymatni tozalash\"] }, \"Close time Picker\": { \"v\": [\"Vaqtni tanlash vositasini yopish\"] }, \"Datepicker input\": { \"v\": [\"Sana tanlash vositasi kiritish\"] }, \"Datepicker menu\": { \"v\": [\"Sana tanlash menyusi\"] }, \"Decrement hours\": { \"v\": [\"Ish vaqtini qisqartirish\"] }, \"Decrement minutes\": { \"v\": [\"Daqiqalarni kamaytirish\"] }, \"Decrement seconds\": { \"v\": [\"Soniyalarni kamaytirish\"] }, \"Increment hours\": { \"v\": [\"Ish soatlarini oshirish\"] }, \"Increment minutes\": { \"v\": [\"Daqiqalarni oshiring\"] }, \"Increment seconds\": { \"v\": [\"Soniyalarni ko'paytirish\"] }, \"Month picker\": { \"v\": [\"Oyni tanlovchi\"] }, \"Month picker overlay\": { \"v\": [\"Oyni tanlash vositasi qoplamasi\"] }, \"Next month\": { \"v\": [\"Keyingi oy\"] }, \"Next year\": { \"v\": [\"Keyingi yil\"] }, \"Now\": { \"v\": [\"Hozir\"] }, \"Open hours overlay\": { \"v\": [\"Ochiq ish soatlari\"] }, \"Open minutes overlay\": { \"v\": [\"Ochiq daqiqalar qoplamasi\"] }, \"Open months overlay\": { \"v\": [\"Ochiq oylik qoplama\"] }, \"Open seconds overlay\": { \"v\": [\"Ochiq soniyalar qoplamasi\"] }, \"Open time picker\": { \"v\": [\"Vaqt tanlagichni ochish\"] }, \"Open years overlay\": { \"v\": [\"Yillar qoplamasini ochish\"] }, \"Pick\": { \"v\": [\"Tanlash\"] }, \"Previous month\": { \"v\": [\"Oldingi oy\"] }, \"Previous year\": { \"v\": [\"O'tgan yil\"] }, \"Select date\": { \"v\": [\"Sana tanlang\"] }, \"Select date and time\": { \"v\": [\"Sana va vaqtni tanlang\"] }, \"Select month\": { \"v\": [\"Oyni tanlang\"] }, \"Select time\": { \"v\": [\"Oyni tanlang\"] }, \"Select time range\": { \"v\": [\"Vaqt oralig'ini tanlang\"] }, \"Select week\": { \"v\": [\"Haftani tanlang\"] }, \"Select year\": { \"v\": [\"Yilni tanlang\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM rejimini almashtiring\"] }, \"Time picker\": { \"v\": [\"Vaqtni tanlovchi\"] }, \"Time zone\": { \"v\": [\"Vaqt mintaqasi\"] }, \"Toggle overlay\": { \"v\": [\"Qoplamani almashtirish\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Yilni tanlovchi\"] }, \"Year picker overlay\": { \"v\": [\"Yilni tanlash vositasi\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Calendar icon\": { \"v\": [\"č”Œäŗ‹ę›†åœ–ē¤ŗ\"] }, \"Cancel\": { \"v\": [\"å–ę¶ˆ\"] }, \"Clear value\": { \"v\": [\"清除值\"] }, \"Close time Picker\": { \"v\": [\"é—œé–‰ę™‚é–“ęŒ‘éøå™Ø\"] }, \"Datepicker input\": { \"v\": [\"ę—„ęœŸęŒ‘éøå™Øč¼øå…„\"] }, \"Datepicker menu\": { \"v\": [\"ę—„ęœŸęŒ‘éøå™Øéøå–®\"] }, \"Decrement hours\": { \"v\": [\"å°ę™‚éžęø›\"] }, \"Decrement minutes\": { \"v\": [\"åˆ†é˜éžęø›\"] }, \"Decrement seconds\": { \"v\": [\"ē§’éžęø›\"] }, \"Increment hours\": { \"v\": [\"å°ę™‚éžå¢ž\"] }, \"Increment minutes\": { \"v\": [\"分鐘遞增\"] }, \"Increment seconds\": { \"v\": [\"ē§’éžå¢ž\"] }, \"Month picker\": { \"v\": [\"ęœˆęŒ‘éøå™Ø\"] }, \"Month picker overlay\": { \"v\": [\"ęœˆęŒ‘éøå™Øč¦†č“‹å±¤\"] }, \"Next month\": { \"v\": [\"äø‹å€‹ęœˆ\"] }, \"Next year\": { \"v\": [\"ę˜Žå¹“\"] }, \"Now\": { \"v\": [\"ē¾åœØ\"] }, \"Open hours overlay\": { \"v\": [\"é–‹å•Ÿå°ę™‚č¦†č“‹å±¤\"] }, \"Open minutes overlay\": { \"v\": [\"é–‹å•Ÿåˆ†é˜č¦†č“‹å±¤\"] }, \"Open months overlay\": { \"v\": [\"é–‹å•Ÿęœˆč¦†č“‹å±¤\"] }, \"Open seconds overlay\": { \"v\": [\"é–‹å•Ÿē§’č¦†č“‹å±¤\"] }, \"Open time picker\": { \"v\": [\"é–‹å•Ÿę™‚é–“ęŒ‘éøå™Ø\"] }, \"Open years overlay\": { \"v\": [\"é–‹å•Ÿå¹“č¦†č“‹å±¤\"] }, \"Pick\": { \"v\": [\"ęŒ‘éø\"] }, \"Previous month\": { \"v\": [\"äøŠå€‹ęœˆ\"] }, \"Previous year\": { \"v\": [\"去幓\"] }, \"Select date\": { \"v\": [\"éøå–ę—„ęœŸ\"] }, \"Select date and time\": { \"v\": [\"éøå–ę—„ęœŸčˆ‡ę™‚é–“\"] }, \"Select month\": { \"v\": [\"éøå–ęœˆ\"] }, \"Select time\": { \"v\": [\"éøå–ę™‚é–“\"] }, \"Select time range\": { \"v\": [\"éøå–ę™‚é–“ēÆ„åœ\"] }, \"Select week\": { \"v\": [\"éøå–é€±\"] }, \"Select year\": { \"v\": [\"éøå–å¹“\"] }, \"Switch AM/PM mode\": { \"v\": [\"åˆ‡ę›äøŠåˆ/äø‹åˆęØ”å¼\"] }, \"Time picker\": { \"v\": [\"ę™‚é–“ęŒ‘éøå™Ø\"] }, \"Time zone\": { \"v\": [\"ę™‚å€\"] }, \"Toggle overlay\": { \"v\": [\"åˆ‡ę›č¦†č“‹å±¤\"] }, \"W\": { \"v\": [\"週\"] }, \"Year picker\": { \"v\": [\"å¹“ęŒ‘éøå™Ø\"] }, \"Year picker overlay\": { \"v\": [\"å¹“ęŒ‘éøå™Øč¦†č“‹å±¤\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Calendar icon\": { \"v\": [\"č”Œäŗ‹ę›†åœ–ē¤ŗ\"] }, \"Cancel\": { \"v\": [\"å–ę¶ˆ\"] }, \"Clear value\": { \"v\": [\"清除值\"] }, \"Close time Picker\": { \"v\": [\"é—œé–‰ę™‚é–“ęŒ‘éøå™Ø\"] }, \"Datepicker input\": { \"v\": [\"ę—„ęœŸęŒ‘éøå™Øč¼øå…„\"] }, \"Datepicker menu\": { \"v\": [\"ę—„ęœŸęŒ‘éøå™Øéøå–®\"] }, \"Decrement hours\": { \"v\": [\"å°ę™‚éžęø›\"] }, \"Decrement minutes\": { \"v\": [\"åˆ†é˜éžęø›\"] }, \"Decrement seconds\": { \"v\": [\"ē§’éžęø›\"] }, \"Increment hours\": { \"v\": [\"å°ę™‚éžå¢ž\"] }, \"Increment minutes\": { \"v\": [\"分鐘遞增\"] }, \"Increment seconds\": { \"v\": [\"ē§’éžå¢ž\"] }, \"Month picker\": { \"v\": [\"ęœˆęŒ‘éøå™Ø\"] }, \"Month picker overlay\": { \"v\": [\"ęœˆęŒ‘éøå™Øč¦†č“‹å±¤\"] }, \"Next month\": { \"v\": [\"äø‹å€‹ęœˆ\"] }, \"Next year\": { \"v\": [\"ę˜Žå¹“\"] }, \"Now\": { \"v\": [\"ē¾åœØ\"] }, \"Open hours overlay\": { \"v\": [\"é–‹å•Ÿå°ę™‚č¦†č“‹å±¤\"] }, \"Open minutes overlay\": { \"v\": [\"é–‹å•Ÿåˆ†é˜č¦†č“‹å±¤\"] }, \"Open months overlay\": { \"v\": [\"é–‹å•Ÿęœˆč¦†č“‹å±¤\"] }, \"Open seconds overlay\": { \"v\": [\"é–‹å•Ÿē§’č¦†č“‹å±¤\"] }, \"Open time picker\": { \"v\": [\"é–‹å•Ÿę™‚é–“ęŒ‘éøå™Ø\"] }, \"Open years overlay\": { \"v\": [\"é–‹å•Ÿå¹“č¦†č“‹å±¤\"] }, \"Pick\": { \"v\": [\"ęŒ‘éø\"] }, \"Previous month\": { \"v\": [\"äøŠå€‹ęœˆ\"] }, \"Previous year\": { \"v\": [\"去幓\"] }, \"Select date\": { \"v\": [\"éøå–ę—„ęœŸ\"] }, \"Select date and time\": { \"v\": [\"éøå–ę—„ęœŸčˆ‡ę™‚é–“\"] }, \"Select month\": { \"v\": [\"éøå–ęœˆ\"] }, \"Select time\": { \"v\": [\"éøå–ę™‚é–“\"] }, \"Select time range\": { \"v\": [\"éøå–ę™‚é–“ēÆ„åœ\"] }, \"Select week\": { \"v\": [\"éøå–é€±\"] }, \"Select year\": { \"v\": [\"éøå–å¹“\"] }, \"Switch AM/PM mode\": { \"v\": [\"åˆ‡ę›äøŠåˆ/äø‹åˆęØ”å¼\"] }, \"Time picker\": { \"v\": [\"ę™‚é–“ęŒ‘éøå™Ø\"] }, \"Time zone\": { \"v\": [\"ę™‚å€\"] }, \"Toggle overlay\": { \"v\": [\"åˆ‡ę›č¦†č“‹å±¤\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"å¹“ęŒ‘éøå™Ø\"] }, \"Year picker overlay\": { \"v\": [\"å¹“ęŒ‘éøå™Øč¦†č“‹å±¤\"] } } }];\nconst t15 = [{ \"l\": \"ar\", \"t\": { \"Cancel changes\": { \"v\": [\"؄لغاؔ Ų§Ł„ŲŖŲŗŁŠŁŠŲ±Ų§ŲŖ\"] }, \"Confirm changes\": { \"v\": [\"تأكيد Ų§Ł„ŲŖŲŗŁŠŁŠŲ±Ų§ŲŖ\"] } } }, { \"l\": \"ast\", \"t\": { \"Cancel changes\": { \"v\": [\"Encaboxar los cambeos\"] }, \"Confirm changes\": { \"v\": [\"Confirmar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Cancel changes\": { \"v\": [\"CancelĀ·la els canvis\"] }, \"Confirm changes\": { \"v\": [\"Confirmeu els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Cancel changes\": { \"v\": [\"ZruÅ”it změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Cancel changes\": { \"v\": [\"ZruÅ”it změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuller Ʀndringer\"] }, \"Confirm changes\": { \"v\": [\"BekrƦft Ʀndringer\"] } } }, { \"l\": \"de\", \"t\": { \"Cancel changes\": { \"v\": [\"Ƅnderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Ƅnderungen bestƤtigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Cancel changes\": { \"v\": [\"Ƅnderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Ƅnderungen bestƤtigen\"] } } }, { \"l\": \"el\", \"t\": { \"Cancel changes\": { \"v\": [\"Ī‘ĪŗĻĻĻ‰ĻƒĪ· Ī±Ī»Ī»Ī±Ī³ĻŽĪ½\"] }, \"Confirm changes\": { \"v\": [\"Ī•Ļ€Ī¹Ī²ĪµĪ²Ī±ĪÆĻ‰ĻƒĪ· Ī±Ī»Ī»Ī±Ī³ĻŽĪ½\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel changes\"] }, \"Confirm changes\": { \"v\": [\"Confirm changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Cancel changes\": { \"v\": [\"Tühista muudatused\"] }, \"Confirm changes\": { \"v\": [\"Kinnita muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Cancel changes\": { \"v\": [\"Ezeztatu aldaketak\"] }, \"Confirm changes\": { \"v\": [\"Baieztatu aldaketak\"] } } }, { \"l\": \"fa\", \"t\": { \"Cancel changes\": { \"v\": [\"Ł„ŲŗŁˆ تغییرات\"] }, \"Confirm changes\": { \"v\": [\"تایید تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Cancel changes\": { \"v\": [\"Peruuta muutokset\"] }, \"Confirm changes\": { \"v\": [\"Vahvista muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuler les modifications\"] }, \"Confirm changes\": { \"v\": [\"Confirmer les modifications\"] } } }, { \"l\": \"ga\", \"t\": { \"Cancel changes\": { \"v\": [\"Cealaigh athruithe\"] }, \"Confirm changes\": { \"v\": [\"Deimhnigh na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar os cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirma os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Cancel changes\": { \"v\": [\"ביטול שינויים\"] }, \"Confirm changes\": { \"v\": [\"אישור השינויים\"] } } }, { \"l\": \"hr\", \"t\": { \"Cancel changes\": { \"v\": [\"Otkaži promjene\"] }, \"Confirm changes\": { \"v\": [\"Potvrdi promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Cancel changes\": { \"v\": [\"VĆ”ltoztatĆ”sok elvetĆ©se\"] }, \"Confirm changes\": { \"v\": [\"VĆ”ltoztatĆ”sok megerősĆ­tĆ©se\"] } } }, { \"l\": \"id\", \"t\": { \"Cancel changes\": { \"v\": [\"Batalkan perubahan\"] }, \"Confirm changes\": { \"v\": [\"Konfirmasikan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Cancel changes\": { \"v\": [\"HƦtta viư breytingar\"] }, \"Confirm changes\": { \"v\": [\"Staưfesta breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Cancel changes\": { \"v\": [\"Annulla modifiche\"] }, \"Confirm changes\": { \"v\": [\"Conferma modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Cancel changes\": { \"v\": [\"å¤‰ę›“ć‚’ć‚­ćƒ£ćƒ³ć‚»ćƒ«\"] }, \"Confirm changes\": { \"v\": [\"å¤‰ę›“ć‚’ę‰æčŖ\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Cancel changes\": { \"v\": [\"å¤‰ę›“ć‚’ć‚­ćƒ£ćƒ³ć‚»ćƒ«\"] }, \"Confirm changes\": { \"v\": [\"å¤‰ę›“ć‚’ę‰æčŖ\"] } } }, { \"l\": \"ko\", \"t\": { \"Cancel changes\": { \"v\": [\"변경 ģ·Øģ†Œ\"] }, \"Confirm changes\": { \"v\": [\"변경 사항 ķ™•ģø\"] } } }, { \"l\": \"lo\", \"t\": { \"Cancel changes\": { \"v\": [\"ąŗąŗ»ąŗą»€ąŗ„ąŗµąŗąŗąŗ²ąŗ™ąŗ›ą»ˆąŗ½ąŗ™ą»ąŗ›ąŗ‡\"] }, \"Confirm changes\": { \"v\": [\"ąŗ¢ąŗ·ąŗ™ąŗ¢ąŗ±ąŗ™ąŗąŗ²ąŗ™ąŗ›ą»ˆąŗ½ąŗ™ą»ąŗ›ąŗ‡\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Cancel changes\": { \"v\": [\"Atsisakyti pakeitimų\"] }, \"Confirm changes\": { \"v\": [\"Patvirtinti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Cancel changes\": { \"v\": [\"ŠžŃ‚ŠŗŠ°Š¶Šø ги промените\"] }, \"Confirm changes\": { \"v\": [\"ŠŸŠ¾Ń‚Š²Ń€Š“Šø ги промените\"] } } }, { \"l\": \"mn\", \"t\": { \"Cancel changes\": { \"v\": [\"Өөрчлөлтийг Ń†ŃƒŃ†Š»Š°Ń…\"] }, \"Confirm changes\": { \"v\": [\"Өөрчлөлтийг Š±Š°Ń‚Š°Š»Š³Š°Š°Š¶ŃƒŃƒŠ»Š°Ń…\"] } } }, { \"l\": \"my\", \"t\": { \"Cancel changes\": { \"v\": [\"į€•į€¼į€±į€¬į€„į€ŗį€øį€œį€²į€™į€¾į€Æį€™į€»į€¬į€ø į€•į€šį€ŗį€–į€»į€€į€ŗį€›į€”į€ŗ\"] }, \"Confirm changes\": { \"v\": [\"į€•į€¼į€±į€¬į€„į€ŗį€øį€œį€²į€™į€¾į€Æį€™į€»į€¬į€ø į€”į€į€Šį€ŗį€•į€¼į€Æį€›į€”į€ŗ\"] } } }, { \"l\": \"nb\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt endringer\"] }, \"Confirm changes\": { \"v\": [\"Bekreft endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Cancel changes\": { \"v\": [\"Wijzigingen annuleren\"] }, \"Confirm changes\": { \"v\": [\"Wijzigingen bevestigen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Cancel changes\": { \"v\": [\"Anuluj zmiany\"] }, \"Confirm changes\": { \"v\": [\"PotwierdÅŗ zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alteraƧƵes\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alteraƧƵes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alteraƧƵes\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alteraƧƵes\"] } } }, { \"l\": \"ro\", \"t\": { \"Cancel changes\": { \"v\": [\"Anulează modificările\"] }, \"Confirm changes\": { \"v\": [\"Confirmați modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Cancel changes\": { \"v\": [\"ŠžŃ‚Š¼ŠµŠ½ŠøŃ‚ŃŒ ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ\"] }, \"Confirm changes\": { \"v\": [\"ŠŸŠ¾Š“Ń‚Š²ŠµŃ€Š“ŠøŃ‚ŃŒ ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ\"] } } }, { \"l\": \"sk\", \"t\": { \"Cancel changes\": { \"v\": [\"ZruÅ”iÅ„ zmeny\"] }, \"Confirm changes\": { \"v\": [\"PotvrdiÅ„ zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Cancel changes\": { \"v\": [\"Prekliči spremembe\"] }, \"Confirm changes\": { \"v\": [\"Potrdi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Cancel changes\": { \"v\": [\"ŠžŃ‚ŠŗŠ°Š¶Šø измене\"] }, \"Confirm changes\": { \"v\": [\"ŠŸŠ¾Ń‚Š²Ń€Š“ŠøŃ‚Šµ измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt Ƥndringar\"] }, \"Confirm changes\": { \"v\": [\"BekrƤfta Ƥndringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Cancel changes\": { \"v\": [\"Değişiklikleri iptal et\"] }, \"Confirm changes\": { \"v\": [\"Değişiklikleri onayla\"] } } }, { \"l\": \"uk\", \"t\": { \"Cancel changes\": { \"v\": [\"Š”ŠŗŠ°ŃŃƒŠ²Š°Ń‚Šø зміни\"] }, \"Confirm changes\": { \"v\": [\"ŠŸŃ–Š“Ń‚Š²ŠµŃ€Š“ŠøŃ‚Šø зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Cancel changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] }, \"Confirm changes\": { \"v\": [\"O'zgarishlarni tasdiqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Cancel changes\": { \"v\": [\"å–ę¶ˆę›“ę”¹\"] }, \"Confirm changes\": { \"v\": [\"甮认曓改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Cancel changes\": { \"v\": [\"å–ę¶ˆę›“ę”¹\"] }, \"Confirm changes\": { \"v\": [\"ē¢ŗčŖę›“ę”¹\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Cancel changes\": { \"v\": [\"å–ę¶ˆč®Šę›“\"] }, \"Confirm changes\": { \"v\": [\"ē¢ŗčŖč®Šę›“\"] } } }];\nconst t16 = [{ \"l\": \"ar\", \"t\": { \"Change name\": { \"v\": [\"تغيير الاسم\"] }, \"Close sidebar\": { \"v\": [\"قفل Ų§Ł„Ų“Ų±ŁŠŲ· Ų§Ł„Ų¬Ų§Ł†ŲØŁŠ\"] }, \"Favorite\": { \"v\": [\"المفضلة\"] }, \"Open sidebar\": { \"v\": [\"Ų„ŁŲŖŁŽŲ­ Ų§Ł„Ų“Ų±ŁŠŲ· Ų§Ł„Ų¬Ų§Ł†ŲØŁŠ\"] } } }, { \"l\": \"ast\", \"t\": { \"Change name\": { \"v\": [\"Camudar el nome\"] }, \"Close sidebar\": { \"v\": [\"Zarrar la barra llateral\"] }, \"Favorite\": { \"v\": [\"Favoritu\"] }, \"Open sidebar\": { \"v\": [\"Abrir la barra llateral\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close sidebar\": { \"v\": [\"Tancar la barra lateral\"] }, \"Favorite\": { \"v\": [\"Preferit\"] } } }, { \"l\": \"cs\", \"t\": { \"Change name\": { \"v\": [\"Změnit nĆ”zev\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postrannĆ­ panel\"] }, \"Favorite\": { \"v\": [\"OblĆ­benĆ©\"] }, \"Open sidebar\": { \"v\": [\"Otevřít postrannĆ­ panel\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Change name\": { \"v\": [\"Změnit nĆ”zev\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postrannĆ­ panel\"] }, \"Favorite\": { \"v\": [\"OblĆ­benĆ©\"] } } }, { \"l\": \"da\", \"t\": { \"Change name\": { \"v\": [\"Ɔndre navn\"] }, \"Close sidebar\": { \"v\": [\"Luk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"ƅbn sidepanel\"] } } }, { \"l\": \"de\", \"t\": { \"Change name\": { \"v\": [\"Namen Ƥndern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste ƶffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Change name\": { \"v\": [\"Namen Ƥndern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste ƶffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Change name\": { \"v\": [\"Αλλαγή ĪæĪ½ĻŒĪ¼Ī±Ļ„ĪæĻ‚\"] }, \"Close sidebar\": { \"v\": [\"Κλείσιμο πλευρικής μπάρας\"] }, \"Favorite\": { \"v\": [\"Αγαπημένα\"] }, \"Open sidebar\": { \"v\": [\"Άνοιγμα πλευρικής μπάρας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Change name\": { \"v\": [\"Change name\"] }, \"Close sidebar\": { \"v\": [\"Close sidebar\"] }, \"Favorite\": { \"v\": [\"Favourite\"] }, \"Open sidebar\": { \"v\": [\"Open sidebar\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Change name\": { \"v\": [\"Muuda nime\"] }, \"Close sidebar\": { \"v\": [\"Sulge külgriba\"] }, \"Favorite\": { \"v\": [\"Lemmik\"] }, \"Open sidebar\": { \"v\": [\"Ava külgriba\"] } } }, { \"l\": \"eu\", \"t\": { \"Change name\": { \"v\": [\"Aldatu izena\"] }, \"Close sidebar\": { \"v\": [\"Itxi albo-barra\"] }, \"Favorite\": { \"v\": [\"Gogokoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Change name\": { \"v\": [\"تغییر نام\"] }, \"Close sidebar\": { \"v\": [\"بستن Ł†ŁˆŲ§Ų± Ś©Ł†Ų§Ų±ŪŒ\"] }, \"Favorite\": { \"v\": [\"Ł…ŁˆŲ±ŲÆ علاقه\"] }, \"Open sidebar\": { \"v\": [\"ŲØŲ§Ų² کردن Ł†ŁˆŲ§Ų± کنار\"] } } }, { \"l\": \"fi\", \"t\": { \"Change name\": { \"v\": [\"Vaihda nimi\"] }, \"Close sidebar\": { \"v\": [\"Sulje sivupalkki\"] }, \"Favorite\": { \"v\": [\"Suosikki\"] }, \"Open sidebar\": { \"v\": [\"Avaa sivupalkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Change name\": { \"v\": [\"Modifier le nom\"] }, \"Close sidebar\": { \"v\": [\"Fermer la barre latĆ©rale\"] }, \"Favorite\": { \"v\": [\"Favori\"] }, \"Open sidebar\": { \"v\": [\"Ouvrir la barre latĆ©rale\"] } } }, { \"l\": \"ga\", \"t\": { \"Change name\": { \"v\": [\"AthrĆŗ ainm\"] }, \"Close sidebar\": { \"v\": [\"DĆŗn barra taoibh\"] }, \"Favorite\": { \"v\": [\"is fearr leat\"] }, \"Open sidebar\": { \"v\": [\"Oscail barra taoibh\"] } } }, { \"l\": \"gl\", \"t\": { \"Change name\": { \"v\": [\"Cambiar o nome\"] }, \"Close sidebar\": { \"v\": [\"Pechar a barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir a barra lateral\"] } } }, { \"l\": \"he\", \"t\": { \"Change name\": { \"v\": [\"×”×—×œ×¤×Ŗ שם\"] }, \"Close sidebar\": { \"v\": [\"הגירת ×”×Ø×’×œ הצד\"] }, \"Favorite\": { \"v\": [\"למועדפים\"] } } }, { \"l\": \"hr\", \"t\": { \"Change name\": { \"v\": [\"Promjeni naziv\"] }, \"Close sidebar\": { \"v\": [\"Zatvori bočnu traku\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Otvori bočnu traku\"] } } }, { \"l\": \"hu\", \"t\": { \"Change name\": { \"v\": [\"NĆ©v módosĆ­tĆ”sa\"] }, \"Close sidebar\": { \"v\": [\"OldalsĆ”v bezĆ”rĆ”sa\"] }, \"Favorite\": { \"v\": [\"Kedvenc\"] }, \"Open sidebar\": { \"v\": [\"OldalsĆ”v megnyitĆ”sa\"] } } }, { \"l\": \"id\", \"t\": { \"Change name\": { \"v\": [\"Ubah nama\"] }, \"Close sidebar\": { \"v\": [\"Tutup bilah sisi\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Buka bilah sisi\"] } } }, { \"l\": \"is\", \"t\": { \"Change name\": { \"v\": [\"Breyta nafni\"] }, \"Close sidebar\": { \"v\": [\"Loka hliưarstiku\"] }, \"Favorite\": { \"v\": [\"EftirlƦti\"] }, \"Open sidebar\": { \"v\": [\"Opna hliưarspjald\"] } } }, { \"l\": \"it\", \"t\": { \"Change name\": { \"v\": [\"Cambia nome\"] }, \"Close sidebar\": { \"v\": [\"Chiudi la barra laterale\"] }, \"Favorite\": { \"v\": [\"Preferito\"] } } }, { \"l\": \"ja\", \"t\": { \"Change name\": { \"v\": [\"åå‰ć®å¤‰ę›“\"] }, \"Close sidebar\": { \"v\": [\"ć‚µć‚¤ćƒ‰ćƒćƒ¼ć‚’é–‰ć˜ć‚‹\"] }, \"Favorite\": { \"v\": [\"ćŠę°—ć«å…„ć‚Š\"] }, \"Open sidebar\": { \"v\": [\"ć‚µć‚¤ćƒ‰ćƒćƒ¼ć‚’é–‹ć\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Change name\": { \"v\": [\"åå‰ć®å¤‰ę›“\"] }, \"Close sidebar\": { \"v\": [\"ć‚µć‚¤ćƒ‰ćƒćƒ¼ć‚’é–‰ć˜ć‚‹\"] }, \"Favorite\": { \"v\": [\"ćŠę°—ć«å…„ć‚Š\"] }, \"Open sidebar\": { \"v\": [\"ć‚µć‚¤ćƒ‰ćƒćƒ¼ć‚’é–‹ć\"] } } }, { \"l\": \"ko\", \"t\": { \"Change name\": { \"v\": [\"ģ“ė¦„ 변경\"] }, \"Close sidebar\": { \"v\": [\"ģ‚¬ģ“ė“œė°” ė‹«źø°\"] }, \"Favorite\": { \"v\": [\"즐겨찾기\"] }, \"Open sidebar\": { \"v\": [\"ģ‚¬ģ“ė“œė°” ģ—“źø°\"] } } }, { \"l\": \"lo\", \"t\": { \"Change name\": { \"v\": [\"ąŗ›ą»ˆąŗ½ąŗ™ąŗŠąŗ·ą»ˆ\"] }, \"Close sidebar\": { \"v\": [\"ąŗ›ąŗ“ąŗ”ą»ąŗ–ąŗšąŗ”ą»‰ąŗ²ąŗ™ąŗ‚ą»‰ąŗ²ąŗ‡\"] }, \"Favorite\": { \"v\": [\"ąŗ„ąŗ²ąŗąŗąŗ²ąŗ™ąŗ—ąŗµą»ˆąŗ”ąŗ±ąŗ\"] }, \"Open sidebar\": { \"v\": [\"ą»€ąŗ›ąŗµąŗ”ą»ąŗ–ąŗšąŗ”ą»‰ąŗ²ąŗ™ąŗ‚ą»‰ąŗ²ąŗ‡\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Change name\": { \"v\": [\"Pakeisti vardą\"] }, \"Close sidebar\": { \"v\": [\"Užverti Å”oninę juostą\"] }, \"Favorite\": { \"v\": [\"Mėgstamiausias\"] }, \"Open sidebar\": { \"v\": [\"Atverti Å”oninę juostą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Change name\": { \"v\": [\"ŠŸŃ€Š¾Š¼ŠµŠ½Šø име\"] }, \"Close sidebar\": { \"v\": [\"Затвори странична лента\"] }, \"Favorite\": { \"v\": [\"Фаворити\"] }, \"Open sidebar\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø странична лента\"] } } }, { \"l\": \"mn\", \"t\": { \"Change name\": { \"v\": [\"ŠŃŃ€ солих\"] }, \"Close sidebar\": { \"v\": [\"Єажуугийн самбарыг хаах\"] }, \"Favorite\": { \"v\": [\"Š”ŃƒŃ€Ń‚Š°Š¹\"] }, \"Open sidebar\": { \"v\": [\"Єажуугийн самбарыг Š½ŃŃŃ…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Change name\": { \"v\": [\"Endre navn\"] }, \"Close sidebar\": { \"v\": [\"Lukk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favoritt\"] }, \"Open sidebar\": { \"v\": [\"ƅpne sidefelt\"] } } }, { \"l\": \"nl\", \"t\": { \"Change name\": { \"v\": [\"Naam wijzigen\"] }, \"Close sidebar\": { \"v\": [\"Zijbalk sluiten\"] }, \"Favorite\": { \"v\": [\"Favoriet\"] }, \"Open sidebar\": { \"v\": [\"Zijbalk openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Change name\": { \"v\": [\"Zmień nazwę\"] }, \"Close sidebar\": { \"v\": [\"Zamknij pasek boczny\"] }, \"Favorite\": { \"v\": [\"Ulubiony\"] }, \"Open sidebar\": { \"v\": [\"Otwórz pasek boczny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Change name\": { \"v\": [\"Mudar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Change name\": { \"v\": [\"Alterar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"ro\", \"t\": { \"Change name\": { \"v\": [\"Modifică numele\"] }, \"Close sidebar\": { \"v\": [\"Ǝnchide bara laterală\"] }, \"Favorite\": { \"v\": [\"Favorit\"] } } }, { \"l\": \"ru\", \"t\": { \"Change name\": { \"v\": [\"Š˜Š·Š¼ŠµŠ½ŠøŃ‚ŃŒ ŠøŠ¼Ń\"] }, \"Close sidebar\": { \"v\": [\"Š—Š°ŠŗŃ€Ń‹Ń‚ŃŒ сайГбар\"] }, \"Favorite\": { \"v\": [\"Š˜Š·Š±Ń€Š°Š½Š½Š¾Šµ\"] }, \"Open sidebar\": { \"v\": [\"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š±Š¾ŠŗŠ¾Š²ŃƒŃŽ панель\"] } } }, { \"l\": \"sk\", \"t\": { \"Change name\": { \"v\": [\"ZmeniÅ„ nĆ”zov\"] }, \"Close sidebar\": { \"v\": [\"ZavrieÅ„ bočný panel\"] }, \"Favorite\": { \"v\": [\"ObľúbenĆ©\"] }, \"Open sidebar\": { \"v\": [\"OtvoriÅ„ bočný panel\"] } } }, { \"l\": \"sl\", \"t\": { \"Close sidebar\": { \"v\": [\"Zapri stransko vrstico\"] }, \"Favorite\": { \"v\": [\"Priljubljeno\"] } } }, { \"l\": \"sr\", \"t\": { \"Change name\": { \"v\": [\"Измени назив\"] }, \"Close sidebar\": { \"v\": [\"Затвори Š±Š¾Ń‡Š½Ńƒ Ń‚Ń€Š°ŠŗŃƒ\"] }, \"Favorite\": { \"v\": [\"ŠžŠ¼ŠøŃ™ŠµŠ½Šø\"] }, \"Open sidebar\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø Š±Š¾Ń‡Š½Ńƒ Ń‚Ń€Š°ŠŗŃƒ\"] } } }, { \"l\": \"sv\", \"t\": { \"Change name\": { \"v\": [\"Ƅndra namn\"] }, \"Close sidebar\": { \"v\": [\"StƤng sidofƤltet\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Ɩppna sidofƤltet\"] } } }, { \"l\": \"tr\", \"t\": { \"Change name\": { \"v\": [\"Adı değiştir\"] }, \"Close sidebar\": { \"v\": [\"Yan Ƨubuğu kapat\"] }, \"Favorite\": { \"v\": [\"Sık kullanılanlara ekle\"] }, \"Open sidebar\": { \"v\": [\"Yan Ƨubuğu aƧ\"] } } }, { \"l\": \"uk\", \"t\": { \"Change name\": { \"v\": [\"Змінити назву\"] }, \"Close sidebar\": { \"v\": [\"Закрити Š±Ń–Ń‡Š½Ńƒ панель\"] }, \"Favorite\": { \"v\": [\"Із Š·Ń–Ń€Š¾Ń‡ŠŗŠ¾ŃŽ\"] }, \"Open sidebar\": { \"v\": [\"Бокове Š¼ŠµŠ½ŃŽ\"] } } }, { \"l\": \"uz\", \"t\": { \"Change name\": { \"v\": [\"Ismni o'zgartirish\"] }, \"Close sidebar\": { \"v\": [\"Yon panelni yoping\"] }, \"Favorite\": { \"v\": [\"Tanlangan\"] }, \"Open sidebar\": { \"v\": [\"Yon panelni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Change name\": { \"v\": [\"äæ®ę”¹åē§°\"] }, \"Close sidebar\": { \"v\": [\"å…³é—­ä¾§č¾¹ę \"] }, \"Favorite\": { \"v\": [\"å–œēˆ±\"] }, \"Open sidebar\": { \"v\": [\"ę‰“å¼€ä¾§č¾¹ę \"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Change name\": { \"v\": [\"ę›“ę”¹åēØ±\"] }, \"Close sidebar\": { \"v\": [\"é—œé–‰å“é‚Šę¬„\"] }, \"Favorite\": { \"v\": [\"å–œę„›\"] }, \"Open sidebar\": { \"v\": [\"ę‰“é–‹å“é‚Šę¬„\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Change name\": { \"v\": [\"č®Šę›“åēØ±\"] }, \"Close sidebar\": { \"v\": [\"é—œé–‰å“é‚Šę¬„\"] }, \"Favorite\": { \"v\": [\"꜀ꄛ\"] }, \"Open sidebar\": { \"v\": [\"é–‹å•Ÿå“é‚Šę¬„\"] } } }];\nconst t17 = [{ \"l\": \"ar\", \"t\": { \"Clear search\": { \"v\": [\"Ł…Ų­Łˆ البحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear search\": { \"v\": [\"Borrar la busca\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledĆ”vĆ”nĆ­\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledĆ”vĆ”nĆ­\"] } } }, { \"l\": \"da\", \"t\": { \"Clear search\": { \"v\": [\"Ryd sĆøgning\"] } } }, { \"l\": \"de\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"el\", \"t\": { \"Clear search\": { \"v\": [\"Ī•ĪŗĪŗĪ±ĪøĪ¬ĻĪ¹ĻƒĪ· Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ·Ļ‚\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear search\": { \"v\": [\"Clear search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar bĆŗsqueda\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar bĆŗsqueda\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar bĆŗsqueda\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar bĆŗsqueda\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear search\": { \"v\": [\"Tühjenda otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear search\": { \"v\": [\"Garbitu bilaketa\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear search\": { \"v\": [\"پاک کردن جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear search\": { \"v\": [\"TyhjennƤ haku\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear search\": { \"v\": [\"Effacer la recherche\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear search\": { \"v\": [\"Glan cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear search\": { \"v\": [\"Limpar a busca\"] } } }, { \"l\": \"he\", \"t\": { \"Clear search\": { \"v\": [\"פינוי חיפוש\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear search\": { \"v\": [\"Očisti pretraživanje\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear search\": { \"v\": [\"KeresĆ©s tƶrlĆ©se\"] } } }, { \"l\": \"id\", \"t\": { \"Clear search\": { \"v\": [\"Bersihkan pencarian\"] } } }, { \"l\": \"is\", \"t\": { \"Clear search\": { \"v\": [\"Hreinsa leit\"] } } }, { \"l\": \"it\", \"t\": { \"Clear search\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear search\": { \"v\": [\"ę¤œē“¢ć‚’ć‚ÆćƒŖć‚¢\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear search\": { \"v\": [\"ę¤œē“¢ć‚’ć‚ÆćƒŖć‚¢\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear search\": { \"v\": [\"ź²€ģƒ‰ ģ§€ģš°źø°\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear search\": { \"v\": [\"ąŗ„ąŗ¶ąŗšąŗąŗ²ąŗ™ąŗ„ąŗ»ą»‰ąŗ™ąŗ«ąŗ²\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear search\": { \"v\": [\"IÅ”valyti paieÅ”ką\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear search\": { \"v\": [\"Š˜ŃŃ‡ŠøŃŃ‚Šø ŠæŃ€ŠµŠ±Š°Ń€ŃƒŠ²Š°ŃšŠµ\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear search\": { \"v\": [\"Єайлтыг Ń†ŃŠ²ŃŃ€Š»ŃŃ…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear search\": { \"v\": [\"TĆøm sĆøk\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear search\": { \"v\": [\"Zoekopdracht wissen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear search\": { \"v\": [\"Wyczyść wyszukiwanie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear search\": { \"v\": [\"Șterge căutarea\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear search\": { \"v\": [\"ŠžŃ‡ŠøŃŃ‚ŠøŃ‚ŃŒ поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear search\": { \"v\": [\"VymazaÅ„ vyhľadĆ”vanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Clear search\": { \"v\": [\"ŠžŠ±Ń€ŠøŃˆŠø ŠæŃ€ŠµŃ‚Ń€Š°Š³Ńƒ\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear search\": { \"v\": [\"Rensa sƶkningen\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear search\": { \"v\": [\"Aramayı temizle\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear search\": { \"v\": [\"ŠžŃ‡ŠøŃŃ‚ŠøŃ‚Šø пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear search\": { \"v\": [\"Qidiruvni tozalash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear search\": { \"v\": [\"ęø…é™¤ęœē“¢\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear search\": { \"v\": [\"ęø…é™¤ęœē“¢\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear search\": { \"v\": [\"ęø…é™¤ęœå°‹\"] } } }];\nconst t18 = [{ \"l\": \"ar\", \"t\": { \"Clear selected\": { \"v\": [\"Ł…Ų­Łˆ المحدّد\"] }, \"Deselect {option}\": { \"v\": [\"؄لغاؔ تحديد {option}\"] }, \"No results\": { \"v\": [\"Ł„ŁŠŲ³ Ł‡Ł†Ų§Łƒ أية Ł†ŲŖŁŠŲ¬Ų©\"] }, \"Options\": { \"v\": [\"خيارات\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear selected\": { \"v\": [\"Borrar lo seleicionao\"] }, \"Deselect {option}\": { \"v\": [\"Deseleicionar Ā«{option}Ā»\"] }, \"No results\": { \"v\": [\"Nun hai nengĆŗn resultĆ”u\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"br\", \"t\": { \"No results\": { \"v\": [\"Disoc'h ebet\"] } } }, { \"l\": \"ca\", \"t\": { \"No results\": { \"v\": [\"Sense resultats\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybranĆ©\"] }, \"Deselect {option}\": { \"v\": [\"ZruÅ”it výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybranĆ©\"] }, \"Deselect {option}\": { \"v\": [\"ZruÅ”it výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"da\", \"t\": { \"Clear selected\": { \"v\": [\"Ryd valgt\"] }, \"Deselect {option}\": { \"v\": [\"FravƦlg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwƤhlen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwƤhlen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"el\", \"t\": { \"Clear selected\": { \"v\": [\"Ī•ĪŗĪŗĪ±ĪøĪ¬ĻĪ¹ĻƒĪ· επιλογής\"] }, \"Deselect {option}\": { \"v\": [\"Αποεπιλογή {option}\"] }, \"No results\": { \"v\": [\"Κανένα Ī±Ļ€ĪæĻ„Ī­Ī»ĪµĻƒĪ¼Ī±\"] }, \"Options\": { \"v\": [\"Επιλογές\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear selected\": { \"v\": [\"Clear selected\"] }, \"Deselect {option}\": { \"v\": [\"Deselect {option}\"] }, \"No results\": { \"v\": [\"No results\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"eo\", \"t\": { \"No results\": { \"v\": [\"La rezulto forestas\"] } } }, { \"l\": \"es\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\" NingĆŗn resultado\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No results\": { \"v\": [\"Sin resultados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear selected\": { \"v\": [\"Tühjenda valik\"] }, \"Deselect {option}\": { \"v\": [\"Eemalda {option} valik\"] }, \"No results\": { \"v\": [\"Tulemusi pole\"] }, \"Options\": { \"v\": [\"Valikud\"] } } }, { \"l\": \"eu\", \"t\": { \"No results\": { \"v\": [\"Emaitzarik ez\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear selected\": { \"v\": [\"پاک کردن Ł…ŁˆŲ±ŲÆ انتخاب ؓده\"] }, \"Deselect {option}\": { \"v\": [\"Ł„ŲŗŁˆ انتخاب {option}\"] }, \"No results\": { \"v\": [\"ŲØŲÆŁˆŁ† Ł‡ŪŒŚ† Ł†ŲŖŪŒŲ¬Ł‡ā€ŒŲ§ŪŒ\"] }, \"Options\": { \"v\": [\"ŚÆŲ²ŪŒŁ†Ł‡ā€ŒŁ‡Ų§\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear selected\": { \"v\": [\"TyhjennƤ valitut\"] }, \"Deselect {option}\": { \"v\": [\"Poista valinta {option}\"] }, \"No results\": { \"v\": [\"Ei tuloksia\"] }, \"Options\": { \"v\": [\"Valinnat\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear selected\": { \"v\": [\"Vider la sĆ©lection\"] }, \"Deselect {option}\": { \"v\": [\"DĆ©sĆ©lectionner {option}\"] }, \"No results\": { \"v\": [\"Aucun rĆ©sultat\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear selected\": { \"v\": [\"Glan roghnaithe\"] }, \"Deselect {option}\": { \"v\": [\"DĆ­roghnaigh {option}\"] }, \"No results\": { \"v\": [\"Gan torthaĆ­\"] }, \"Options\": { \"v\": [\"Roghanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar o seleccionado\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sen resultados\"] }, \"Options\": { \"v\": [\"Opcións\"] } } }, { \"l\": \"he\", \"t\": { \"No results\": { \"v\": [\"אין תוצאות\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear selected\": { \"v\": [\"Očisti odabir\"] }, \"Deselect {option}\": { \"v\": [\"Odznači {option}\"] }, \"No results\": { \"v\": [\"Nema rezultata\"] }, \"Options\": { \"v\": [\"Mogućnosti\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear selected\": { \"v\": [\"KijelƶlĆ©s tƶrlĆ©se\"] }, \"Deselect {option}\": { \"v\": [\"{option} kijelƶlĆ©sĆ©nek megszüntetĆ©se\"] }, \"No results\": { \"v\": [\"Nincs talĆ”lat\"] }, \"Options\": { \"v\": [\"BeĆ”llĆ­tĆ”sok\"] } } }, { \"l\": \"id\", \"t\": { \"Clear selected\": { \"v\": [\"Hapus terpilih\"] }, \"Deselect {option}\": { \"v\": [\"Batalkan pemilihan {option}\"] }, \"No results\": { \"v\": [\"Tidak ada hasil\"] }, \"Options\": { \"v\": [\"Opsi\"] } } }, { \"l\": \"is\", \"t\": { \"Clear selected\": { \"v\": [\"Hreinsa valiư\"] }, \"Deselect {option}\": { \"v\": [\"Afvelja {option}\"] }, \"No results\": { \"v\": [\"Engar niưurstƶưur\"] }, \"Options\": { \"v\": [\"Valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"Clear selected\": { \"v\": [\"Cancella selezionati\"] }, \"Deselect {option}\": { \"v\": [\"Deselezionare {option}\"] }, \"No results\": { \"v\": [\"Nessun risultato\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear selected\": { \"v\": [\"éøęŠžć‚’č§£é™¤\"] }, \"Deselect {option}\": { \"v\": [\"{option} ć®éøęŠžć‚’č§£é™¤\"] }, \"No results\": { \"v\": [\"ēµęžœē„”ć—\"] }, \"Options\": { \"v\": [\"ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear selected\": { \"v\": [\"éøęŠžć‚’č§£é™¤\"] }, \"Deselect {option}\": { \"v\": [\"{option} ć®éøęŠžć‚’č§£é™¤\"] }, \"No results\": { \"v\": [\"ēµęžœē„”ć—\"] }, \"Options\": { \"v\": [\"ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear selected\": { \"v\": [\"ģ„ ķƒ ķ•­ėŖ© ģ§€ģš°źø°\"] }, \"Deselect {option}\": { \"v\": [\"{option} ģ„ ķƒ ķ•“ģ œ\"] }, \"No results\": { \"v\": [\"ź²°ź³¼ ģ—†ģŒ\"] }, \"Options\": { \"v\": [\"ģ˜µģ…˜\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear selected\": { \"v\": [\"ąŗ„ąŗ¶ąŗšąŗŖąŗ“ą»ˆąŗ‡ąŗ—ąŗµą»ˆą»€ąŗ„ąŗ·ąŗ­ąŗ\"] }, \"Deselect {option}\": { \"v\": [\"ąŗąŗ»ąŗą»€ąŗ„ąŗµąŗąŗąŗ²ąŗ™ą»€ąŗ„ąŗ·ąŗ­ąŗ {option}\"] }, \"No results\": { \"v\": [\"ąŗšą»ą»ˆąŗ”ąŗµąŗœąŗ»ąŗ™ąŗ„ąŗ±ąŗš\"] }, \"Options\": { \"v\": [\"ຕົວເຄືອກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear selected\": { \"v\": [\"IÅ”valyti pasirinkimą\"] }, \"Deselect {option}\": { \"v\": [\"Panaikinkite {option} pasirinkimą\"] }, \"No results\": { \"v\": [\"Nėra rezultatų\"] }, \"Options\": { \"v\": [\"Parinktys\"] } } }, { \"l\": \"lv\", \"t\": { \"No results\": { \"v\": [\"Nav rezultātu\"] } } }, { \"l\": \"mk\", \"t\": { \"Clear selected\": { \"v\": [\"Š˜ŃŃ‡ŠøŃŃ‚Šø означени\"] }, \"Deselect {option}\": { \"v\": [\"ŠžŃ‚ŠŗŠ°Š¶Šø избор на {option}\"] }, \"No results\": { \"v\": [\"ŠŠµŠ¼Š° Ń€ŠµŠ·ŃƒŠ»Ń‚Š°Ń‚Šø\"] }, \"Options\": { \"v\": [\"ŠžŠæŃ†ŠøŠø\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear selected\": { \"v\": [\"Донголтыг Ń†ŃŠ²ŃŃ€Š»ŃŃ…\"] }, \"Deselect {option}\": { \"v\": [\"{option}-г сонголтоос хасах\"] }, \"No results\": { \"v\": [\"Үр Гүн алга\"] }, \"Options\": { \"v\": [\"Тохиргоо\"] } } }, { \"l\": \"my\", \"t\": { \"No results\": { \"v\": [\"į€›į€œį€’į€ŗį€™į€›į€¾į€­į€•į€«\"] } } }, { \"l\": \"nb\", \"t\": { \"Clear selected\": { \"v\": [\"TĆøm merket\"] }, \"Deselect {option}\": { \"v\": [\"Opphev valg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear selected\": { \"v\": [\"Selectie wissen\"] }, \"Deselect {option}\": { \"v\": [\"Selectie {option} opheffen\"] }, \"No results\": { \"v\": [\"Geen resultaten\"] }, \"Options\": { \"v\": [\"Opties\"] } } }, { \"l\": \"oc\", \"t\": { \"No results\": { \"v\": [\"Cap de resultat\"] } } }, { \"l\": \"pl\", \"t\": { \"Clear selected\": { \"v\": [\"Wyczyść wybrane\"] }, \"Deselect {option}\": { \"v\": [\"Odznacz {option}\"] }, \"No results\": { \"v\": [\"Brak wyników\"] }, \"Options\": { \"v\": [\"Opcje\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar selecionado\"] }, \"Deselect {option}\": { \"v\": [\"Desselecionar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"OpƧƵes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear selected\": { \"v\": [\"Limpeza selecionada\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"OpƧƵes\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear selected\": { \"v\": [\"Șterge selecția\"] }, \"Deselect {option}\": { \"v\": [\"Deselctează {option}\"] }, \"No results\": { \"v\": [\"Nu există rezultate\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear selected\": { \"v\": [\"ŠžŃ‡ŠøŃŃ‚ŠøŃ‚ŃŒ выбранный\"] }, \"Deselect {option}\": { \"v\": [\"ŠžŃ‚Š¼ŠµŠ½ŠøŃ‚ŃŒ выбор {option}\"] }, \"No results\": { \"v\": [\"Š ŠµŠ·ŃƒŠ»ŃŒŃ‚Š°Ń‚Ń‹ Š¾Ń‚ŃŃƒŃŃ‚Š²ŃƒŃŽŃ‚\"] }, \"Options\": { \"v\": [\"Варианты\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear selected\": { \"v\": [\"VymazaÅ„ vybratĆ©\"] }, \"Deselect {option}\": { \"v\": [\"ZruÅ”iÅ„ výber {option}\"] }, \"No results\": { \"v\": [\"Žiadne výsledky\"] }, \"Options\": { \"v\": [\"možnosti\"] } } }, { \"l\": \"sl\", \"t\": { \"No results\": { \"v\": [\"Ni zadetkov\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear selected\": { \"v\": [\"ŠžŠ±Ń€ŠøŃˆŠø изабрано\"] }, \"Deselect {option}\": { \"v\": [\"Уклони избор {option}\"] }, \"No results\": { \"v\": [\"ŠŠµŠ¼Š° Ń€ŠµŠ·ŃƒŠ»Ń‚Š°Ń‚Š°\"] }, \"Options\": { \"v\": [\"ŠžŠæŃ†ŠøŃ˜Šµ\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear selected\": { \"v\": [\"Rensa valda\"] }, \"Deselect {option}\": { \"v\": [\"Avmarkera {option}\"] }, \"No results\": { \"v\": [\"Inga resultat\"] }, \"Options\": { \"v\": [\"Alternativ\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear selected\": { \"v\": [\"SeƧilmişleri temizle\"] }, \"Deselect {option}\": { \"v\": [\"{option} bırak\"] }, \"No results\": { \"v\": [\"Herhangi bir sonuƧ bulunamadı\"] }, \"Options\": { \"v\": [\"SeƧenekler\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear selected\": { \"v\": [\"ŠžŃ‡ŠøŃŃ‚ŠøŃ‚Šø вибране\"] }, \"Deselect {option}\": { \"v\": [\"Š—Š½ŃŃ‚Šø вибір {option}\"] }, \"No results\": { \"v\": [\"Š’Ń–Š“ŃŃƒŃ‚Š½Ń– Ń€ŠµŠ·ŃƒŠ»ŃŒŃ‚Š°Ń‚Šø\"] }, \"Options\": { \"v\": [\"ŠŸŠ°Ń€Š°Š¼ŠµŃ‚Ń€Šø\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear selected\": { \"v\": [\"Tanlanganni tozalash\"] }, \"Deselect {option}\": { \"v\": [\"{option}tanlovni bekor qiling\"] }, \"No results\": { \"v\": [\"Natija yoŹ»q\"] }, \"Options\": { \"v\": [\"Variantlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear selected\": { \"v\": [\"清除所选\"] }, \"Deselect {option}\": { \"v\": [\"å–ę¶ˆé€‰ę‹© {option}\"] }, \"No results\": { \"v\": [\"ę— ē»“ęžœ\"] }, \"Options\": { \"v\": [\"选锹\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear selected\": { \"v\": [\"清除所選項目\"] }, \"Deselect {option}\": { \"v\": [\"å–ę¶ˆéøę“‡ {option}\"] }, \"No results\": { \"v\": [\"ē„”ēµęžœ\"] }, \"Options\": { \"v\": [\"選項\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear selected\": { \"v\": [\"ęø…é™¤éøå®šé …ē›®\"] }, \"Deselect {option}\": { \"v\": [\"å–ę¶ˆéøå– {option}\"] }, \"No results\": { \"v\": [\"ē„”ēµęžœ\"] }, \"Options\": { \"v\": [\"選項\"] } } }];\nconst t19 = [{ \"l\": \"ar\", \"t\": { \"Clear text\": { \"v\": [\"Ł…Ų­Łˆ النص\"] }, \"Save changes\": { \"v\": [\"حفظ Ų§Ł„ŲŖŲŗŁŠŁŠŲ±Ų§ŲŖ\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear text\": { \"v\": [\"Borrar el testu\"] }, \"Save changes\": { \"v\": [\"Guardar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Clear text\": { \"v\": [\"Netejar text\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear text\": { \"v\": [\"Čitelný text\"] }, \"Save changes\": { \"v\": [\"Uložit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear text\": { \"v\": [\"Čitelný text\"] }, \"Save changes\": { \"v\": [\"Uložit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Clear text\": { \"v\": [\"Ryd tekst\"] }, \"Save changes\": { \"v\": [\"Gem Ʀndringer\"] } } }, { \"l\": \"de\", \"t\": { \"Clear text\": { \"v\": [\"Klartext\"] }, \"Save changes\": { \"v\": [\"Ƅnderungen speichern\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear text\": { \"v\": [\"Klartext\"] }, \"Save changes\": { \"v\": [\"Ƅnderungen speichern\"] } } }, { \"l\": \"el\", \"t\": { \"Clear text\": { \"v\": [\"Ī•ĪŗĪŗĪ±ĪøĪ¬ĻĪ¹ĻƒĪ· κειμένου\"] }, \"Save changes\": { \"v\": [\"Ī‘Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ· Ī±Ī»Ī»Ī±Ī³ĻŽĪ½\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear text\": { \"v\": [\"Clear text\"] }, \"Save changes\": { \"v\": [\"Save changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear text\": { \"v\": [\"Kustuta tekst\"] }, \"Save changes\": { \"v\": [\"Salvesta muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear text\": { \"v\": [\"Garbitu testua\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear text\": { \"v\": [\"پاک کردن متن\"] }, \"Save changes\": { \"v\": [\"Ų°Ų®ŪŒŲ±Ł‡Ł” تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear text\": { \"v\": [\"TyhjennƤ teksti\"] }, \"Save changes\": { \"v\": [\"Tallenna muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear text\": { \"v\": [\"Effacer le texte\"] }, \"Save changes\": { \"v\": [\"Sauvegarder les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear text\": { \"v\": [\"Glan tĆ©acs\"] }, \"Save changes\": { \"v\": [\"SabhĆ”il na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear text\": { \"v\": [\"Limpar o texto\"] }, \"Save changes\": { \"v\": [\"Gardar os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Clear text\": { \"v\": [\"פינוי טקהט\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear text\": { \"v\": [\"Očisti tekst\"] }, \"Save changes\": { \"v\": [\"Spremi promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear text\": { \"v\": [\"Szƶveg tƶrlĆ©se\"] }, \"Save changes\": { \"v\": [\"VĆ”ltoztatĆ”sok mentĆ©se\"] } } }, { \"l\": \"id\", \"t\": { \"Clear text\": { \"v\": [\"Bersihkan teks\"] }, \"Save changes\": { \"v\": [\"Simpan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Clear text\": { \"v\": [\"Hreinsa texta\"] }, \"Save changes\": { \"v\": [\"Vista breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Clear text\": { \"v\": [\"Cancella il testo\"] }, \"Save changes\": { \"v\": [\"Salva le modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear text\": { \"v\": [\"ćƒ†ć‚­ć‚¹ćƒˆć‚’ć‚ÆćƒŖć‚¢\"] }, \"Save changes\": { \"v\": [\"å¤‰ę›“ć‚’äæå­˜\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear text\": { \"v\": [\"ćƒ†ć‚­ć‚¹ćƒˆć‚’ć‚ÆćƒŖć‚¢\"] }, \"Save changes\": { \"v\": [\"å¤‰ę›“ć‚’äæå­˜\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear text\": { \"v\": [\"ķ…ģŠ¤ķŠø ģ§€ģš°źø°\"] }, \"Save changes\": { \"v\": [\"변경 사항 ģ €ģž„\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear text\": { \"v\": [\"ąŗ„ąŗ¶ąŗšąŗ‚ą»ą»‰ąŗ„ąŗ§ąŗ²ąŗ”\"] }, \"Save changes\": { \"v\": [\"ąŗšąŗ±ąŗ™ąŗ—ąŗ¶ąŗąŗąŗ²ąŗ™ąŗ›ą»ˆąŗ½ąŗ™ą»ąŗ›ąŗ‡\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear text\": { \"v\": [\"IÅ”valyti tekstą\"] }, \"Save changes\": { \"v\": [\"Ä®raÅ”yti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear text\": { \"v\": [\"Š˜ŃŃ‡ŠøŃŃ‚Šø текст\"] }, \"Save changes\": { \"v\": [\"Š—Š°Ń‡ŃƒŠ²Š°Ń˜ промени\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear text\": { \"v\": [\"Текстийг Ń†ŃŠ²ŃŃ€Š»ŃŃ…\"] }, \"Save changes\": { \"v\": [\"Өөрчлөлтийг хаГгалах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear text\": { \"v\": [\"Fjern tekst\"] }, \"Save changes\": { \"v\": [\"Lagre endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear text\": { \"v\": [\"Tekst wissen\"] }, \"Save changes\": { \"v\": [\"Wijzigingen opslaan\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear text\": { \"v\": [\"Wyczyść tekst\"] }, \"Save changes\": { \"v\": [\"Zapisz zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear text\": { \"v\": [\"Limpar texto\"] }, \"Save changes\": { \"v\": [\"Salvar alteraƧƵes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear text\": { \"v\": [\"Limpar texto\"] }, \"Save changes\": { \"v\": [\"Gravar alteraƧƵes\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear text\": { \"v\": [\"Șterge textul\"] }, \"Save changes\": { \"v\": [\"Salvează modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear text\": { \"v\": [\"ŠžŃ‡ŠøŃŃ‚ŠøŃ‚ŃŒ текст\"] }, \"Save changes\": { \"v\": [\"Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear text\": { \"v\": [\"VamazaÅ„ text\"] }, \"Save changes\": { \"v\": [\"UložiÅ„ zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Clear text\": { \"v\": [\"Počisti besedilo\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear text\": { \"v\": [\"ŠžŠ±Ń€ŠøŃˆŠø текст\"] }, \"Save changes\": { \"v\": [\"Š”Š°Ń‡ŃƒŠ²Š°Ń˜ измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear text\": { \"v\": [\"Rensa text\"] }, \"Save changes\": { \"v\": [\"Spara Ƥndringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear text\": { \"v\": [\"Metni temizle\"] }, \"Save changes\": { \"v\": [\"Değişiklikleri kaydet\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear text\": { \"v\": [\"ŠžŃ‡ŠøŃŃ‚ŠøŃ‚Šø текст\"] }, \"Save changes\": { \"v\": [\"Зберегти зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear text\": { \"v\": [\"Matnni tozalash\"] }, \"Save changes\": { \"v\": [\"O'zgarishlarni saqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear text\": { \"v\": [\"ęø…é™¤ę–‡ęœ¬\"] }, \"Save changes\": { \"v\": [\"äæå­˜äæ®ę”¹\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear text\": { \"v\": [\"ęø…é™¤ę–‡ęœ¬\"] }, \"Save changes\": { \"v\": [\"äæå­˜ę›“ę”¹\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear text\": { \"v\": [\"清除文字\"] }, \"Save changes\": { \"v\": [\"å„²å­˜č®Šę›“\"] } } }];\nconst t20 = [{ \"l\": \"ar\", \"t\": { \"Close\": { \"v\": [\"؄غلاق\"] } } }, { \"l\": \"ast\", \"t\": { \"Close\": { \"v\": [\"Zarrar\"] } } }, { \"l\": \"br\", \"t\": { \"Close\": { \"v\": [\"SerriƱ\"] } } }, { \"l\": \"ca\", \"t\": { \"Close\": { \"v\": [\"Tanca\"] } } }, { \"l\": \"cs\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"da\", \"t\": { \"Close\": { \"v\": [\"Luk\"] } } }, { \"l\": \"de\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"el\", \"t\": { \"Close\": { \"v\": [\"Κλείσιμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close\": { \"v\": [\"Close\"] } } }, { \"l\": \"eo\", \"t\": { \"Close\": { \"v\": [\"Fermu\"] } } }, { \"l\": \"es\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close\": { \"v\": [\"Sulge\"] } } }, { \"l\": \"eu\", \"t\": { \"Close\": { \"v\": [\"Itxi\"] } } }, { \"l\": \"fa\", \"t\": { \"Close\": { \"v\": [\"بستن\"] } } }, { \"l\": \"fi\", \"t\": { \"Close\": { \"v\": [\"Sulje\"] } } }, { \"l\": \"fr\", \"t\": { \"Close\": { \"v\": [\"Fermer\"] } } }, { \"l\": \"ga\", \"t\": { \"Close\": { \"v\": [\"DĆŗn\"] } } }, { \"l\": \"gl\", \"t\": { \"Close\": { \"v\": [\"Pechar\"] } } }, { \"l\": \"he\", \"t\": { \"Close\": { \"v\": [\"הגירה\"] } } }, { \"l\": \"hr\", \"t\": { \"Close\": { \"v\": [\"Zatvori\"] } } }, { \"l\": \"hu\", \"t\": { \"Close\": { \"v\": [\"BezĆ”rĆ”s\"] } } }, { \"l\": \"id\", \"t\": { \"Close\": { \"v\": [\"Tutup\"] } } }, { \"l\": \"is\", \"t\": { \"Close\": { \"v\": [\"Loka\"] } } }, { \"l\": \"it\", \"t\": { \"Close\": { \"v\": [\"Chiudi\"] } } }, { \"l\": \"ja\", \"t\": { \"Close\": { \"v\": [\"閉恘悋\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close\": { \"v\": [\"閉恘悋\"] } } }, { \"l\": \"ko\", \"t\": { \"Close\": { \"v\": [\"ė‹«źø°\"] } } }, { \"l\": \"lo\", \"t\": { \"Close\": { \"v\": [\"ປຓດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Close\": { \"v\": [\"Užverti\"] } } }, { \"l\": \"lv\", \"t\": { \"Close\": { \"v\": [\"Aizvērt\"] } } }, { \"l\": \"mk\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"mn\", \"t\": { \"Close\": { \"v\": [\"Єаах\"] } } }, { \"l\": \"my\", \"t\": { \"Close\": { \"v\": [\"ပိတ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Close\": { \"v\": [\"Lukk\"] } } }, { \"l\": \"nl\", \"t\": { \"Close\": { \"v\": [\"Sluiten\"] } } }, { \"l\": \"oc\", \"t\": { \"Close\": { \"v\": [\"Tampar\"] } } }, { \"l\": \"pl\", \"t\": { \"Close\": { \"v\": [\"Zamknij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"ro\", \"t\": { \"Close\": { \"v\": [\"Ǝnchideți\"] } } }, { \"l\": \"ru\", \"t\": { \"Close\": { \"v\": [\"Š—Š°ŠŗŃ€Ń‹Ń‚ŃŒ\"] } } }, { \"l\": \"sk\", \"t\": { \"Close\": { \"v\": [\"ZavrieÅ„\"] } } }, { \"l\": \"sl\", \"t\": { \"Close\": { \"v\": [\"Zapri\"] } } }, { \"l\": \"sr\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"sv\", \"t\": { \"Close\": { \"v\": [\"StƤng\"] } } }, { \"l\": \"tr\", \"t\": { \"Close\": { \"v\": [\"Kapat\"] } } }, { \"l\": \"uk\", \"t\": { \"Close\": { \"v\": [\"Закрити\"] } } }, { \"l\": \"uz\", \"t\": { \"Close\": { \"v\": [\"Yopish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close\": { \"v\": [\"关闭\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }];\nconst t21 = [{ \"l\": \"ar\", \"t\": { \"Close navigation\": { \"v\": [\"؄غلاق التصفح\"] }, \"Open navigation\": { \"v\": [\"فتح Ų§Ł„ŲŖŁ†Ł‚Ł‘ŁŁ„\"] } } }, { \"l\": \"ast\", \"t\": { \"Close navigation\": { \"v\": [\"Zarrar la navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir la navegación\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close navigation\": { \"v\": [\"Tanca la navegació\"] }, \"Open navigation\": { \"v\": [\"Obre la navegació\"] } } }, { \"l\": \"cs\", \"t\": { \"Close navigation\": { \"v\": [\"Zavřít navigaci\"] }, \"Open navigation\": { \"v\": [\"Otevřít navigaci\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close navigation\": { \"v\": [\"Zavřít navigaci\"] }, \"Open navigation\": { \"v\": [\"Otevřít navigaci\"] } } }, { \"l\": \"da\", \"t\": { \"Close navigation\": { \"v\": [\"Luk navigation\"] }, \"Open navigation\": { \"v\": [\"ƅben navigation\"] } } }, { \"l\": \"de\", \"t\": { \"Close navigation\": { \"v\": [\"Navigation schließen\"] }, \"Open navigation\": { \"v\": [\"Navigation ƶffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close navigation\": { \"v\": [\"Navigation schließen\"] }, \"Open navigation\": { \"v\": [\"Navigation ƶffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Close navigation\": { \"v\": [\"Κλείσιμο Ļ€Ī»ĪæĪ®Ī³Ī·ĻƒĪ·Ļ‚\"] }, \"Open navigation\": { \"v\": [\"Άνοιγμα Ļ€Ī»ĪæĪ®Ī³Ī·ĻƒĪ·Ļ‚\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close navigation\": { \"v\": [\"Close navigation\"] }, \"Open navigation\": { \"v\": [\"Open navigation\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close navigation\": { \"v\": [\"Sulge navigatsioon\"] }, \"Open navigation\": { \"v\": [\"Ava liikumisvaade\"] } } }, { \"l\": \"eu\", \"t\": { \"Close navigation\": { \"v\": [\"Itxi nabigazioa\"] }, \"Open navigation\": { \"v\": [\"Ireki nabigazioa\"] } } }, { \"l\": \"fa\", \"t\": { \"Close navigation\": { \"v\": [\"بستن ŲØŲ®Ų“ Ł†Ų§ŁˆŲØŲ±ŪŒ\"] }, \"Open navigation\": { \"v\": [\"ŲØŲ§Ų² کردن ŲØŲ®Ų“ Ł†Ų§ŁˆŲØŲ±ŪŒ\"] } } }, { \"l\": \"fi\", \"t\": { \"Close navigation\": { \"v\": [\"Sulje navigaatio\"] } } }, { \"l\": \"fr\", \"t\": { \"Close navigation\": { \"v\": [\"Fermer la navigation\"] }, \"Open navigation\": { \"v\": [\"Ouvrir la navigation\"] } } }, { \"l\": \"ga\", \"t\": { \"Close navigation\": { \"v\": [\"DĆŗn nascleanĆŗint\"] }, \"Open navigation\": { \"v\": [\"Oscail nascleanĆŗint\"] } } }, { \"l\": \"gl\", \"t\": { \"Close navigation\": { \"v\": [\"Pechar a navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir a navegación\"] } } }, { \"l\": \"he\", \"t\": { \"Close navigation\": { \"v\": [\"הגירת הניווט\"] }, \"Open navigation\": { \"v\": [\"פתיחת ניווט\"] } } }, { \"l\": \"hr\", \"t\": { \"Close navigation\": { \"v\": [\"Zatvori navigaciju\"] }, \"Open navigation\": { \"v\": [\"Otvori navigaciju\"] } } }, { \"l\": \"hu\", \"t\": { \"Close navigation\": { \"v\": [\"NavigĆ”ció bezĆ”rĆ”sa\"] }, \"Open navigation\": { \"v\": [\"NavigĆ”ció megnyitĆ”sa\"] } } }, { \"l\": \"id\", \"t\": { \"Close navigation\": { \"v\": [\"Tutup navigasi\"] }, \"Open navigation\": { \"v\": [\"Buka navigasi\"] } } }, { \"l\": \"is\", \"t\": { \"Close navigation\": { \"v\": [\"Loka leiưsagnarsleưa\"] } } }, { \"l\": \"it\", \"t\": { \"Close navigation\": { \"v\": [\"Chiudi la navigazione\"] }, \"Open navigation\": { \"v\": [\"Apri la navigazione\"] } } }, { \"l\": \"ja\", \"t\": { \"Close navigation\": { \"v\": [\"ćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³ć‚’é–‰ć˜ć‚‹\"] }, \"Open navigation\": { \"v\": [\"ćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³ć‚’é–‹ć\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close navigation\": { \"v\": [\"ćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³ć‚’é–‰ć˜ć‚‹\"] }, \"Open navigation\": { \"v\": [\"ćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³ć‚’é–‹ć\"] } } }, { \"l\": \"ko\", \"t\": { \"Close navigation\": { \"v\": [\"ķƒģƒ‰ ė‹«źø°\"] }, \"Open navigation\": { \"v\": [\"ķƒģƒ‰ ģ—“źø°\"] } } }, { \"l\": \"lo\", \"t\": { \"Close navigation\": { \"v\": [\"ປຓດການນຳທາງ\"] }, \"Open navigation\": { \"v\": [\"ເປີດການນຳທາງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Close navigation\": { \"v\": [\"Užverti narÅ”ymą\"] }, \"Open navigation\": { \"v\": [\"Atverti narÅ”ymą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Close navigation\": { \"v\": [\"Затвори Š½Š°Š²ŠøŠ³Š°Ń†ŠøŃ˜Š°\"] }, \"Open navigation\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø Š½Š°Š²ŠøŠ³Š°Ń†ŠøŃ˜Š°\"] } } }, { \"l\": \"mn\", \"t\": { \"Close navigation\": { \"v\": [\"ŠŠ°Š²ŠøŠ³Š°Ń†ŠøŠ¹Š³ хаах\"] }, \"Open navigation\": { \"v\": [\"ŠŠ°Š²ŠøŠ³Š°Ń†ŠøŠ¹Š³ Š½ŃŃŃ…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Close navigation\": { \"v\": [\"Lukk navigasjon\"] }, \"Open navigation\": { \"v\": [\"ƅpne navigasjon\"] } } }, { \"l\": \"nl\", \"t\": { \"Close navigation\": { \"v\": [\"Navigatie sluiten\"] }, \"Open navigation\": { \"v\": [\"Navigatie openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Close navigation\": { \"v\": [\"Zamknij nawigację\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close navigation\": { \"v\": [\"Fechar navegação\"] }, \"Open navigation\": { \"v\": [\"Abrir navegação\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close navigation\": { \"v\": [\"Fechar navegação\"] }, \"Open navigation\": { \"v\": [\"Abrir navegação\"] } } }, { \"l\": \"ro\", \"t\": { \"Close navigation\": { \"v\": [\"Ǝnchideți navigarea\"] }, \"Open navigation\": { \"v\": [\"Deschideți navigația\"] } } }, { \"l\": \"ru\", \"t\": { \"Close navigation\": { \"v\": [\"Š—Š°ŠŗŃ€Ń‹Ń‚ŃŒ Š½Š°Š²ŠøŠ³Š°Ń†ŠøŃŽ\"] }, \"Open navigation\": { \"v\": [\"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š½Š°Š²ŠøŠ³Š°Ń†ŠøŃŽ\"] } } }, { \"l\": \"sk\", \"t\": { \"Close navigation\": { \"v\": [\"ZavrieÅ„ navigĆ”ciu\"] } } }, { \"l\": \"sl\", \"t\": { \"Close navigation\": { \"v\": [\"Zapri krmarjenje\"] }, \"Open navigation\": { \"v\": [\"Odpri krmarjenje\"] } } }, { \"l\": \"sr\", \"t\": { \"Close navigation\": { \"v\": [\"Затвори Š½Š°Š²ŠøŠ³Š°Ń†ŠøŃ˜Ńƒ\"] }, \"Open navigation\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø Š½Š°Š²ŠøŠ³Š°Ń†ŠøŃ˜Ńƒ\"] } } }, { \"l\": \"sv\", \"t\": { \"Close navigation\": { \"v\": [\"StƤng navigeringen\"] }, \"Open navigation\": { \"v\": [\"Ɩppna navigeringen\"] } } }, { \"l\": \"tr\", \"t\": { \"Close navigation\": { \"v\": [\"Gezinmeyi kapat\"] }, \"Open navigation\": { \"v\": [\"Gezinmeyi aƧ\"] } } }, { \"l\": \"uk\", \"t\": { \"Close navigation\": { \"v\": [\"Закрити Š½Š°Š²Ń–Š³Š°Ń†Ń–ŃŽ\"] }, \"Open navigation\": { \"v\": [\"ŠŸŠµŃ€ŠµŠ¹Ń‚Šø Го навігації\"] } } }, { \"l\": \"uz\", \"t\": { \"Close navigation\": { \"v\": [\"Navigatsiyani yopish\"] }, \"Open navigation\": { \"v\": [\"Navigatsiyani oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close navigation\": { \"v\": [\"å…³é—­åÆ¼čˆŖ\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close navigation\": { \"v\": [\"é—œé–‰å°ŽčˆŖ\"] }, \"Open navigation\": { \"v\": [\"é–‹å•Ÿå°ŽčˆŖ\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close navigation\": { \"v\": [\"é—œé–‰å°ŽčˆŖ\"] }, \"Open navigation\": { \"v\": [\"é–‹å•Ÿå°ŽčˆŖ\"] } } }];\nconst t22 = [{ \"l\": \"ar\", \"t\": { \"Collapse menu\": { \"v\": [\"طي القائمة\"] }, \"Open menu\": { \"v\": [\"Ų„ŁŲŖŁŽŲ­ القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Collapse menu\": { \"v\": [\"Recoyer el menĆŗ\"] }, \"Open menu\": { \"v\": [\"Abrir le menĆŗ\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabĆ­dku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabĆ­dku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabĆ­dku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabĆ­dku\"] } } }, { \"l\": \"da\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul menuen\"] }, \"Open menu\": { \"v\": [\"ƅben menu\"] } } }, { \"l\": \"de\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü ƶffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü ƶffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Collapse menu\": { \"v\": [\"Ī£ĻĪ¼Ļ€Ļ„Ļ…Ī¾Ī· Ī¼ĪµĪ½ĪæĻ\"] }, \"Open menu\": { \"v\": [\"Άνοιγμα Ī¼ĪµĪ½ĪæĻ\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Collapse menu\": { \"v\": [\"Collapse menu\"] }, \"Open menu\": { \"v\": [\"Open menu\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menĆŗ\"] }, \"Open menu\": { \"v\": [\"Abrir menĆŗ\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menĆŗ\"] }, \"Open menu\": { \"v\": [\"Abrir menĆŗ\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menĆŗ\"] }, \"Open menu\": { \"v\": [\"Abrir menĆŗ\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menĆŗ\"] }, \"Open menu\": { \"v\": [\"Abrir menĆŗ\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Collapse menu\": { \"v\": [\"Ahenda menüü\"] }, \"Open menu\": { \"v\": [\"Ava menüü\"] } } }, { \"l\": \"eu\", \"t\": { \"Collapse menu\": { \"v\": [\"Tolestu menua\"] }, \"Open menu\": { \"v\": [\"Ireki menua\"] } } }, { \"l\": \"fa\", \"t\": { \"Collapse menu\": { \"v\": [\"بستن فهرست\"] }, \"Open menu\": { \"v\": [\"ŲØŲ§Ų² کردن فهرست\"] } } }, { \"l\": \"fi\", \"t\": { \"Collapse menu\": { \"v\": [\"Supista valikko\"] }, \"Open menu\": { \"v\": [\"Avaa valikko\"] } } }, { \"l\": \"fr\", \"t\": { \"Collapse menu\": { \"v\": [\"RĆ©duire le menu\"] }, \"Open menu\": { \"v\": [\"Ouvrir le menu\"] } } }, { \"l\": \"ga\", \"t\": { \"Collapse menu\": { \"v\": [\"RoghchlĆ”r Laghdaigh\"] }, \"Open menu\": { \"v\": [\"RoghchlĆ”r a oscailt\"] } } }, { \"l\": \"gl\", \"t\": { \"Collapse menu\": { \"v\": [\"Contraer o menĆŗ\"] }, \"Open menu\": { \"v\": [\"Abrir o menĆŗ\"] } } }, { \"l\": \"he\", \"t\": { \"Collapse menu\": { \"v\": [\"צמצום ×”×Ŗ×¤×Ø×™×˜\"] }, \"Open menu\": { \"v\": [\"פתיחת ×Ŗ×¤×Ø×™×˜\"] } } }, { \"l\": \"hr\", \"t\": { \"Collapse menu\": { \"v\": [\"Sakrij izbornik\"] }, \"Open menu\": { \"v\": [\"Otvori izbornik\"] } } }, { \"l\": \"hu\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü ƶsszecsukĆ”sa\"] }, \"Open menu\": { \"v\": [\"Menü megnyitĆ”sa\"] } } }, { \"l\": \"id\", \"t\": { \"Collapse menu\": { \"v\": [\"Ciutkan menu\"] }, \"Open menu\": { \"v\": [\"Buka menu\"] } } }, { \"l\": \"is\", \"t\": { \"Collapse menu\": { \"v\": [\"Fella valmynd saman\"] }, \"Open menu\": { \"v\": [\"Opna valmynd\"] } } }, { \"l\": \"it\", \"t\": { \"Collapse menu\": { \"v\": [\"Chiudi Menu\"] }, \"Open menu\": { \"v\": [\"Apri il menu\"] } } }, { \"l\": \"ja\", \"t\": { \"Collapse menu\": { \"v\": [\"ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ęŠ˜ć‚ŠćŸćŸćæ\"] }, \"Open menu\": { \"v\": [\"ćƒ”ćƒ‹ćƒ„ćƒ¼ć‚’é–‹ć\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Collapse menu\": { \"v\": [\"ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ęŠ˜ć‚ŠćŸćŸćæ\"] }, \"Open menu\": { \"v\": [\"ćƒ”ćƒ‹ćƒ„ćƒ¼ć‚’é–‹ć\"] } } }, { \"l\": \"ko\", \"t\": { \"Collapse menu\": { \"v\": [\"메뉓 ģ ‘źø°\"] }, \"Open menu\": { \"v\": [\"메뉓 ģ—“źø°\"] } } }, { \"l\": \"lo\", \"t\": { \"Collapse menu\": { \"v\": [\"ąŗ«ąŗą»ą»‰ą»€ąŗ”ąŗ™ąŗ¹\"] }, \"Open menu\": { \"v\": [\"ເປີດເດນູ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Collapse menu\": { \"v\": [\"Suskleisti meniu\"] }, \"Open menu\": { \"v\": [\"Atverti meniu\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Collapse menu\": { \"v\": [\"Š”ŠŗŃ€ŠøŃ˜ мени\"] }, \"Open menu\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø мени\"] } } }, { \"l\": \"mn\", \"t\": { \"Collapse menu\": { \"v\": [\"Š¦ŃŃŠøŠ¹Š³ Ń…ŃƒŃ€Š°Š°Ń…\"] }, \"Open menu\": { \"v\": [\"Š¦ŃŃŠøŠ¹Š³ Š½ŃŃŃ…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul meny\"] }, \"Open menu\": { \"v\": [\"ƅpne meny\"] } } }, { \"l\": \"nl\", \"t\": { \"Collapse menu\": { \"v\": [\"Menu inklappen\"] }, \"Open menu\": { \"v\": [\"Menu openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Collapse menu\": { \"v\": [\"Zwiń menu\"] }, \"Open menu\": { \"v\": [\"Otwórz menu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Collapse menu\": { \"v\": [\"Recolher menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"ro\", \"t\": { \"Collapse menu\": { \"v\": [\"RestrĆ¢nge meniul\"] }, \"Open menu\": { \"v\": [\"Deschide meniul\"] } } }, { \"l\": \"ru\", \"t\": { \"Collapse menu\": { \"v\": [\"Š”Š²ŠµŃ€Š½ŃƒŃ‚ŃŒ Š¼ŠµŠ½ŃŽ\"] }, \"Open menu\": { \"v\": [\"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ\"] } } }, { \"l\": \"sk\", \"t\": { \"Collapse menu\": { \"v\": [\"ZbaliÅ„ menu\"] }, \"Open menu\": { \"v\": [\"OtvoriÅ„ menu\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Collapse menu\": { \"v\": [\"Дажми мени\"] }, \"Open menu\": { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø мени\"] } } }, { \"l\": \"sv\", \"t\": { \"Collapse menu\": { \"v\": [\"FƤll ihop menyn\"] }, \"Open menu\": { \"v\": [\"Ɩppna menyn\"] } } }, { \"l\": \"tr\", \"t\": { \"Collapse menu\": { \"v\": [\"Menüyü daralt\"] }, \"Open menu\": { \"v\": [\"Menüyü aƧ\"] } } }, { \"l\": \"uk\", \"t\": { \"Collapse menu\": { \"v\": [\"Š—Š³Š¾Ń€Š½ŃƒŃ‚Šø Š¼ŠµŠ½ŃŽ\"] }, \"Open menu\": { \"v\": [\"ВіГкрити Š¼ŠµŠ½ŃŽ\"] } } }, { \"l\": \"uz\", \"t\": { \"Collapse menu\": { \"v\": [\"Menyuni yigā€˜ish\"] }, \"Open menu\": { \"v\": [\"Menyuni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Collapse menu\": { \"v\": [\"ę”¶čµ·čœå•\"] }, \"Open menu\": { \"v\": [\"ę‰“å¼€čœå•\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Collapse menu\": { \"v\": [\"ęŠ˜ē–Šéøå–®\"] }, \"Open menu\": { \"v\": [\"é–‹å•Ÿéøå–®\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Collapse menu\": { \"v\": [\"ęŠ˜ē–Šéøå–®\"] }, \"Open menu\": { \"v\": [\"é–‹å•Ÿéøå–®\"] } } }];\nconst t23 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Copied\": { \"v\": [\"ZkopĆ­rovĆ”no\"] }, \"Copy to clipboard\": { \"v\": [\"ZkopĆ­rovat do schrĆ”nky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Copied\": { \"v\": [\"Kopieret\"] }, \"Copy to clipboard\": { \"v\": [\"KopiĆ©r til udklipsholderen\"] } } }, { \"l\": \"de\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Copied\": { \"v\": [\"Copied\"] }, \"Copy to clipboard\": { \"v\": [\"Copy to clipboard\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Copied\": { \"v\": [\"Kopeeritud\"] }, \"Copy to clipboard\": { \"v\": [\"Kopeeri lƵikelauale\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Copied\": { \"v\": [\"CopiĆ©\"] }, \"Copy to clipboard\": { \"v\": [\"Copier dans le presse-papiers\"] } } }, { \"l\": \"ga\", \"t\": { \"Copied\": { \"v\": [\"CóipeĆ”ilte\"] }, \"Copy to clipboard\": { \"v\": [\"CóipeĆ”il chuig an ghearrthaisce\"] } } }, { \"l\": \"gl\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar ao portapapeis\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Copied\": { \"v\": [\"Kopirano\"] }, \"Copy to clipboard\": { \"v\": [\"Kopiraj u međuspremnik\"] } } }, { \"l\": \"hu\", \"t\": { \"Copied\": { \"v\": [\"MĆ”solva\"] }, \"Copy to clipboard\": { \"v\": [\"VĆ”gólapra mĆ”solĆ”s\"] } } }, { \"l\": \"id\", \"t\": { \"Copied\": { \"v\": [\"Disalin\"] }, \"Copy to clipboard\": { \"v\": [\"Salin ke clipboard\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Copied\": { \"v\": [\"ć‚³ćƒ”ćƒ¼ć•ć‚Œć¾ć—ćŸ\"] }, \"Copy to clipboard\": { \"v\": [\"ć‚ÆćƒŖćƒƒćƒ—ćƒœćƒ¼ćƒ‰ć«ć‚³ćƒ”ćƒ¼\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Copied\": { \"v\": [\"복사됨\"] }, \"Copy to clipboard\": { \"v\": [\"ķ“ė¦½ė³“ė“œė”œ 복사\"] } } }, { \"l\": \"lo\", \"t\": { \"Copied\": { \"v\": [\"ສຳເນົາແຄ້ວ\"] }, \"Copy to clipboard\": { \"v\": [\"ąŗŖąŗ³ą»€ąŗ™ąŗ»ąŗ²ą»ƒąŗŖą»ˆąŗ„ąŗ„ąŗ“ąŗšąŗšąŗ­ąŗ”\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Copied\": { \"v\": [\"Nukopijuota\"] }, \"Copy to clipboard\": { \"v\": [\"Kopijuoti ÄÆ iÅ”karpinę\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Copied\": { \"v\": [\"ŠšŠ¾ŠæŠøŃ€Š°Š½Š¾\"] }, \"Copy to clipboard\": { \"v\": [\"ŠšŠ¾ŠæŠøŃ€Š°Ń˜ во клипбоарГ\"] } } }, { \"l\": \"mn\", \"t\": { \"Copied\": { \"v\": [\"ЄуулагГлаа\"] }, \"Copy to clipboard\": { \"v\": [\"Данах ой руу Ń…ŃƒŃƒŠ»Š°Ń…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Copied\": { \"v\": [\"Gekopieerd\"] }, \"Copy to clipboard\": { \"v\": [\"Kopieer naar klembord\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar para a Ć”rea de transferĆŖncia\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Copied\": { \"v\": [\"Дкопировано\"] }, \"Copy to clipboard\": { \"v\": [\"Š”ŠŗŠ¾ŠæŠøŃ€Š¾Š²Š°Ń‚ŃŒ в Š±ŃƒŃ„ер\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": { \"Copied\": { \"v\": [\"Kopierat\"] }, \"Copy to clipboard\": { \"v\": [\"Kopiera till urklipp\"] } } }, { \"l\": \"tr\", \"t\": { \"Copied\": { \"v\": [\"Kopyalandı\"] }, \"Copy to clipboard\": { \"v\": [\"Panoya kopyalandı\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Copied\": { \"v\": [\"Nusxalandi\"] }, \"Copy to clipboard\": { \"v\": [\"Buferga nusxalash\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Copied\": { \"v\": [\"已被複製\"] }, \"Copy to clipboard\": { \"v\": [\"č¤‡č£½åˆ°å‰Ŗč²¼ē°æ\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Copied\": { \"v\": [\"已被複製\"] }, \"Copy to clipboard\": { \"v\": [\"č¤‡č£½åˆ°å‰Ŗč²¼ē°æ\"] } } }];\nconst t24 = [{ \"l\": \"ar\", \"t\": { \"Edit item\": { \"v\": [\"ŲŖŲ¹ŲÆŁŠŁ„ عنصر\"] } } }, { \"l\": \"ast\", \"t\": { \"Edit item\": { \"v\": [\"Editar l'elementu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Edit item\": { \"v\": [\"Edita l'element\"] } } }, { \"l\": \"cs\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"da\", \"t\": { \"Edit item\": { \"v\": [\"Rediger emne\"] } } }, { \"l\": \"de\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"el\", \"t\": { \"Edit item\": { \"v\": [\"Ī•Ļ€ĪµĪ¾ĪµĻĪ³Ī±ĻƒĪÆĪ± αντικειμένου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Edit item\": { \"v\": [\"Muuda objekti\"] } } }, { \"l\": \"eu\", \"t\": { \"Edit item\": { \"v\": [\"Editatu elementua\"] } } }, { \"l\": \"fa\", \"t\": { \"Edit item\": { \"v\": [\"ویرایؓ Ł…ŁˆŲ±ŲÆ\"] } } }, { \"l\": \"fi\", \"t\": { \"Edit item\": { \"v\": [\"Muokkaa kohdetta\"] } } }, { \"l\": \"fr\", \"t\": { \"Edit item\": { \"v\": [\"Ɖditer l'Ć©lĆ©ment\"] } } }, { \"l\": \"ga\", \"t\": { \"Edit item\": { \"v\": [\"Cuir mĆ­r in eagar\"] } } }, { \"l\": \"gl\", \"t\": { \"Edit item\": { \"v\": [\"Editar o elemento\"] } } }, { \"l\": \"he\", \"t\": { \"Edit item\": { \"v\": [\"עריכת ×¤×Ø×™×˜\"] } } }, { \"l\": \"hr\", \"t\": { \"Edit item\": { \"v\": [\"Uredi stavku\"] } } }, { \"l\": \"hu\", \"t\": { \"Edit item\": { \"v\": [\"Elem szerkesztĆ©se\"] } } }, { \"l\": \"id\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"is\", \"t\": { \"Edit item\": { \"v\": [\"Breyta atriưi\"] } } }, { \"l\": \"it\", \"t\": { \"Edit item\": { \"v\": [\"Modifica l'elemento\"] } } }, { \"l\": \"ja\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ko\", \"t\": { \"Edit item\": { \"v\": [\"ķ•­ėŖ© ģˆ˜ģ •\"] } } }, { \"l\": \"lo\", \"t\": { \"Edit item\": { \"v\": [\"ą»ąŗą»‰ą»„ąŗ‚ąŗ„ąŗ²ąŗąŗąŗ²ąŗ™\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Edit item\": { \"v\": [\"Taisyti elementą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Edit item\": { \"v\": [\"УреГи\"] } } }, { \"l\": \"mn\", \"t\": { \"Edit item\": { \"v\": [\"Зүйлийг засварлах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Edit item\": { \"v\": [\"Rediger\"] } } }, { \"l\": \"nl\", \"t\": { \"Edit item\": { \"v\": [\"Item bewerken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Edit item\": { \"v\": [\"Edytuj element\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"ro\", \"t\": { \"Edit item\": { \"v\": [\"Editați elementul\"] } } }, { \"l\": \"ru\", \"t\": { \"Edit item\": { \"v\": [\"Š˜Š·Š¼ŠµŠ½ŠøŃ‚ŃŒ ŃŠ»ŠµŠ¼ŠµŠ½Ń‚\"] } } }, { \"l\": \"sk\", \"t\": { \"Edit item\": { \"v\": [\"UpraviÅ„ položku\"] } } }, { \"l\": \"sl\", \"t\": { \"Edit item\": { \"v\": [\"Uredi predmet\"] } } }, { \"l\": \"sr\", \"t\": { \"Edit item\": { \"v\": [\"УреГи ŃŃ‚Š°Š²ŠŗŃƒ\"] } } }, { \"l\": \"sv\", \"t\": { \"Edit item\": { \"v\": [\"Redigera objektet\"] } } }, { \"l\": \"tr\", \"t\": { \"Edit item\": { \"v\": [\"Ɩgeyi düzenle\"] } } }, { \"l\": \"uk\", \"t\": { \"Edit item\": { \"v\": [\"Š ŠµŠ“Š°Š³ŃƒŠ²Š°Ń‚Šø елемент\"] } } }, { \"l\": \"uz\", \"t\": { \"Edit item\": { \"v\": [\"Elementni tahrirlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Edit item\": { \"v\": [\"编辑锹目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }];\nconst t25 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Edit profile\": { \"v\": [\"Upravit profil\"] }, \"Loading actions\": { \"v\": [\"NačƭtĆ”nĆ­ akcĆ­\"] }, \"Loading profile\": { \"v\": [\"NačƭtĆ”nĆ­ profilu\"] }, \"Local time: {time}\": { \"v\": [\"MĆ­stnĆ­ čas: {time}\"] }, \"Profile of {user}\": { \"v\": [\"Profil uživatele {user}\"] }, \"Send message\": { \"v\": [\"Odeslat zprĆ”vu\"] }, \"Start call\": { \"v\": [\"ZahĆ”jit hovor\"] }, \"View profile\": { \"v\": [\"Zobrazit profil\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Edit profile\": { \"v\": [\"RedigĆ©r profil\"] }, \"Loading actions\": { \"v\": [\"IndlƦser handlinger\"] }, \"Loading profile\": { \"v\": [\"IndlƦser profil\"] }, \"Local time: {time}\": { \"v\": [\"Lokal tid: {time}\"] }, \"Profile of {user}\": { \"v\": [\"Profil for {user}\"] } } }, { \"l\": \"de\", \"t\": { \"Edit profile\": { \"v\": [\"Profil bearbeiten\"] }, \"Loading actions\": { \"v\": [\"Aktionen werden geladen\"] }, \"Loading profile\": { \"v\": [\"Profil wird geladen\"] }, \"Local time: {time}\": { \"v\": [\"Ortszeit: {time}\"] }, \"Profile of {user}\": { \"v\": [\"Profil von {user}\"] }, \"Send message\": { \"v\": [\"Nachricht senden\"] }, \"Start call\": { \"v\": [\"Anruf starten\"] }, \"View profile\": { \"v\": [\"Profil anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Edit profile\": { \"v\": [\"Profil bearbeiten\"] }, \"Loading actions\": { \"v\": [\"Aktionen werden geladen\"] }, \"Loading profile\": { \"v\": [\"Profil wird geladen\"] }, \"Local time: {time}\": { \"v\": [\"Ortszeit: {time}\"] }, \"Profile of {user}\": { \"v\": [\"Profil von {user}\"] }, \"Send message\": { \"v\": [\"Nachricht senden\"] }, \"Start call\": { \"v\": [\"Anruf starten\"] }, \"View profile\": { \"v\": [\"Profil anzeigen\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": {} }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Edit profile\": { \"v\": [\"Muuda profiili\"] }, \"Loading actions\": { \"v\": [\"Laadin tegevusi\"] }, \"Loading profile\": { \"v\": [\"Laadin profiili\"] }, \"Local time: {time}\": { \"v\": [\"Kohalik aeg: {time}\"] }, \"Profile of {user}\": { \"v\": [\"Kasutaja profiil: {user}\"] }, \"Send message\": { \"v\": [\"Saada sƵnum\"] }, \"Start call\": { \"v\": [\"Helista\"] }, \"View profile\": { \"v\": [\"Vaata profiili\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Edit profile\": { \"v\": [\"Ɖditer le profil\"] }, \"Loading actions\": { \"v\": [\"Chargement des actions\"] }, \"Loading profile\": { \"v\": [\"Chargement du profil\"] }, \"Local time: {time}\": { \"v\": [\"Heure localeĀ : {time}\"] }, \"Profile of {user}\": { \"v\": [\"Profil de {user}\"] }, \"Send message\": { \"v\": [\"Envoyer un message\"] }, \"Start call\": { \"v\": [\"Lancer un appel\"] }, \"View profile\": { \"v\": [\"Voir le profil\"] } } }, { \"l\": \"ga\", \"t\": {} }, { \"l\": \"gl\", \"t\": {} }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": {} }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": {} }, { \"l\": \"lo\", \"t\": {} }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": {} }, { \"l\": \"mn\", \"t\": {} }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": {} }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Edit profile\": { \"v\": [\"Editar perfil\"] }, \"Loading actions\": { \"v\": [\"Carregando aƧƵes\"] }, \"Loading profile\": { \"v\": [\"Carregando perfil\"] }, \"Local time: {time}\": { \"v\": [\"Hora local: {time}\"] }, \"Profile of {user}\": { \"v\": [\"Perfil de {user}\"] }, \"Send message\": { \"v\": [\"Enviar mensagem\"] }, \"Start call\": { \"v\": [\"Iniciar chamada\"] }, \"View profile\": { \"v\": [\"Ver perfil\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": {} }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": { \"Edit profile\": { \"v\": [\"Redigera profil\"] }, \"Loading actions\": { \"v\": [\"LƤser in Ć„tgƤrder\"] }, \"Loading profile\": { \"v\": [\"LƤser in profil\"] }, \"Local time: {time}\": { \"v\": [\"Lokal tid: {time}\"] }, \"Profile of {user}\": { \"v\": [\"Profil fƶr {user}\"] }, \"Send message\": { \"v\": [\"Skicka meddelande\"] }, \"Start call\": { \"v\": [\"Starta samtal\"] }, \"View profile\": { \"v\": [\"Visa profil\"] } } }, { \"l\": \"tr\", \"t\": { \"Edit profile\": { \"v\": [\"Profili düzenle\"] }, \"Loading actions\": { \"v\": [\"İşlemler yükleniyor\"] }, \"Loading profile\": { \"v\": [\"Profil yükleniyor\"] }, \"Local time: {time}\": { \"v\": [\"Yerel zaman: {time}\"] }, \"Profile of {user}\": { \"v\": [\"{user} profili\"] }, \"Send message\": { \"v\": [\"İleti gƶnder\"] }, \"Start call\": { \"v\": [\"Ƈağrı başlat\"] }, \"View profile\": { \"v\": [\"Profili gƶrüntüle\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": {} }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": {} }, { \"l\": \"zh-TW\", \"t\": {} }];\nconst t26 = [{ \"l\": \"ar\", \"t\": { \"Enable interactive view\": { \"v\": [\"ŲŖŁ…ŁƒŁŠŁ† Ų§Ł„Ł…Ł†ŲøŁˆŲ± Ų§Ł„ŲŖŁŲ§Ų¹Ł„ŁŠ\"] } } }, { \"l\": \"ast\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activar la vista interactiva\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enable interactive view\": { \"v\": [\"Zapnout interaktivnĆ­ zobrazenĆ­\"] }, \"Widget height\": { \"v\": [\"VýŔka ovlĆ”dacĆ­ho prvku\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktiver interaktiv visning\"] }, \"Widget height\": { \"v\": [\"KontrolhĆøjde\"] } } }, { \"l\": \"de\", \"t\": { \"Enable interactive view\": { \"v\": [\"Die interaktive Ansicht aktivieren\"] }, \"Widget height\": { \"v\": [\"Widget-Hƶhe\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enable interactive view\": { \"v\": [\"Die interaktive Ansicht aktivieren\"] }, \"Widget height\": { \"v\": [\"Widget-Hƶhe\"] } } }, { \"l\": \"el\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ī•Ī½ĪµĻĪ³ĪæĻ€ĪæĪÆĪ·ĻƒĪ· Ī“Ī¹Ī±Ī“ĻĪ±ĻƒĻ„Ī¹ĪŗĪ®Ļ‚ προβολής\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enable interactive view\": { \"v\": [\"Enable interactive view\"] }, \"Widget height\": { \"v\": [\"Widget height\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enable interactive view\": { \"v\": [\"Lülita interaktiivne vaade sisse\"] }, \"Widget height\": { \"v\": [\"Vidina kƵrgus\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Enable interactive view\": { \"v\": [\"ŁŲ¹Ų§Ł„ā€ŒŲ³Ų§Ų²ŪŒ Ł†Ł…Ų§ŪŒ ŲŖŲ¹Ų§Ł…Ł„ŪŒ\"] } } }, { \"l\": \"fi\", \"t\": { \"Enable interactive view\": { \"v\": [\"NƤytƤ vuorovaikutteinen nƤkymƤ\"] } } }, { \"l\": \"fr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activer la vue interactive\"] }, \"Widget height\": { \"v\": [\"Hauteur du widget\"] } } }, { \"l\": \"ga\", \"t\": { \"Enable interactive view\": { \"v\": [\"Cumasaigh amharc idirghnĆ­omhach\"] }, \"Widget height\": { \"v\": [\"Airde an ghiuirlĆ©id\"] } } }, { \"l\": \"gl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activar a vista interactiva\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Omogući interaktivni prikaz\"] } } }, { \"l\": \"hu\", \"t\": { \"Enable interactive view\": { \"v\": [\"InteraktĆ­v nĆ©zet engedĆ©lyezĆ©se\"] } } }, { \"l\": \"id\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktifkan tampilan interaktif\"] } } }, { \"l\": \"is\", \"t\": { \"Enable interactive view\": { \"v\": [\"Virkja gagnvirka sýn\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Enable interactive view\": { \"v\": [\"ć‚¤ćƒ³ć‚æćƒ©ć‚Æćƒ†ć‚£ćƒ–ćƒ»ćƒ“ćƒ„ćƒ¼ć‚’ęœ‰åŠ¹ć«ć™ć‚‹\"] }, \"Widget height\": { \"v\": [\"ć‚¦ć‚£ć‚øć‚§ćƒƒćƒˆć®é«˜ć•\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enable interactive view\": { \"v\": [\"ć‚¤ćƒ³ć‚æćƒ©ć‚Æćƒ†ć‚£ćƒ–ćƒ»ćƒ“ćƒ„ćƒ¼ć‚’ęœ‰åŠ¹ć«ć™ć‚‹\"] } } }, { \"l\": \"ko\", \"t\": { \"Enable interactive view\": { \"v\": [\"ėŒ€ķ™”ķ˜• 볓기 ķ™œģ„±ķ™”\"] } } }, { \"l\": \"lo\", \"t\": { \"Enable interactive view\": { \"v\": [\"ą»€ąŗ›ąŗµąŗ”ą»ƒąŗŠą»‰ąŗ‡ąŗ²ąŗ™ąŗ”ąŗøąŗ”ąŗ”ąŗ­ąŗ‡ą»‚ąŗ•ą»‰ąŗ•ąŗ­ąŗš\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ä®galinti interaktyvų vaizdą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enable interactive view\": { \"v\": [\"ŠžŠ²Š¾Š·Š¼Š¾Š¶Šø интерактивен приказ\"] } } }, { \"l\": \"mn\", \"t\": { \"Enable interactive view\": { \"v\": [\"Š˜Š½Ń‚ŠµŃ€Š°ŠŗŃ‚ŠøŠ² харагГацыг ŠøŠ“ŃŠ²Ń…Š¶ŅÆŅÆŠ»ŃŃ…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktiver interaktiv visning\"] } } }, { \"l\": \"nl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interactieve weergave inschakelen\"] }, \"Widget height\": { \"v\": [\"Hoogte van widget\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Włącz widok interaktywny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ativar visualização interativa\"] }, \"Widget height\": { \"v\": [\"Altura do widget\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ativar vista interativa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Enable interactive view\": { \"v\": [\"Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ интерактивный просмотр\"] }, \"Widget height\": { \"v\": [\"Высота виГжета\"] } } }, { \"l\": \"sk\", \"t\": { \"Enable interactive view\": { \"v\": [\"PovoliÅ„ interaktĆ­vny pohľad\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Š£ŠŗŃ™ŃƒŃ‡Šø интерактивни приказ\"] } } }, { \"l\": \"sv\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktivera interaktiv vy\"] }, \"Widget height\": { \"v\": [\"Widgethƶjd\"] } } }, { \"l\": \"tr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Etkileşimli gƶrünümü aƧ\"] }, \"Widget height\": { \"v\": [\"AraƧ takımı yüksekliği\"] } } }, { \"l\": \"uk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Š£Š²Ń–Š¼ŠŗŠ½ŃƒŃ‚Šø інтерактивний ŠæŠµŃ€ŠµŠ³Š»ŃŠ“\"] } } }, { \"l\": \"uz\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interaktiv ko'rinishni yoqing\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enable interactive view\": { \"v\": [\"启用交互视窗\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enable interactive view\": { \"v\": [\"å•Ÿē”Øäŗ’å‹•č¦–åœ–\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enable interactive view\": { \"v\": [\"å•Ÿē”Øäŗ’å‹•ęŖ¢č¦–\"] } } }];\nconst t27 = [{ \"l\": \"ar\", \"t\": { \"Enter link\": { \"v\": [\"أدخِل الرابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Enter link\": { \"v\": [\"Introducir l'enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Enter link\": { \"v\": [\"Indtast link\"] } } }, { \"l\": \"de\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"el\", \"t\": { \"Enter link\": { \"v\": [\"Ī•Ī¹ĻƒĪ¬Ī³ĪµĻ„Īµ ĻƒĻĪ½Ī“ĪµĻƒĪ¼Īæ\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enter link\": { \"v\": [\"Enter link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enter link\": { \"v\": [\"Ingrese enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enter link\": { \"v\": [\"Sisesta link\"] } } }, { \"l\": \"eu\", \"t\": { \"Enter link\": { \"v\": [\"Sartu esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Enter link\": { \"v\": [\"Ł„ŪŒŁ†Ś© Ų±Ų§ وارد Ś©Ł†ŪŒŲÆ\"] } } }, { \"l\": \"fi\", \"t\": { \"Enter link\": { \"v\": [\"Kirjoita linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Enter link\": { \"v\": [\"Saisissez le lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Enter link\": { \"v\": [\"Cuir isteach nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Enter link\": { \"v\": [\"Introducir a ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Enter link\": { \"v\": [\"מילוי קישור\"] } } }, { \"l\": \"hr\", \"t\": { \"Enter link\": { \"v\": [\"Unesi poveznicu\"] } } }, { \"l\": \"hu\", \"t\": { \"Enter link\": { \"v\": [\"Adja meg a hivatkozĆ”st\"] } } }, { \"l\": \"id\", \"t\": { \"Enter link\": { \"v\": [\"Masukkan tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Enter link\": { \"v\": [\"Settu inn tengil\"] } } }, { \"l\": \"it\", \"t\": { \"Enter link\": { \"v\": [\"Inserire il link\"] } } }, { \"l\": \"ja\", \"t\": { \"Enter link\": { \"v\": [\"ćƒŖćƒ³ć‚Æć‚’å…„åŠ›ć™ć‚‹\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enter link\": { \"v\": [\"ćƒŖćƒ³ć‚Æć‚’å…„åŠ›ć™ć‚‹\"] } } }, { \"l\": \"ko\", \"t\": { \"Enter link\": { \"v\": [\"링크 ģž…ė „\"] } } }, { \"l\": \"lo\", \"t\": { \"Enter link\": { \"v\": [\"ປ້ອນຄຓງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Enter link\": { \"v\": [\"Ä®vesti nuorodą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enter link\": { \"v\": [\"Внеси линк\"] } } }, { \"l\": \"mn\", \"t\": { \"Enter link\": { \"v\": [\"Єолбоос Š¾Ń€ŃƒŃƒŠ»Š°Ń…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enter link\": { \"v\": [\"Skriv inn lenken\"] } } }, { \"l\": \"nl\", \"t\": { \"Enter link\": { \"v\": [\"Link invoeren\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enter link\": { \"v\": [\"WprowadÅŗ link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enter link\": { \"v\": [\"Insira o link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enter link\": { \"v\": [\"Inserir hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Enter link\": { \"v\": [\"Introduceți link-ul\"] } } }, { \"l\": \"ru\", \"t\": { \"Enter link\": { \"v\": [\"ВвеГите ŃŃŃ‹Š»ŠŗŃƒ\"] } } }, { \"l\": \"sk\", \"t\": { \"Enter link\": { \"v\": [\"VložiÅ„ link\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enter link\": { \"v\": [\"Унесите линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Enter link\": { \"v\": [\"Ange en lƤnk\"] } } }, { \"l\": \"tr\", \"t\": { \"Enter link\": { \"v\": [\"Bağlantıyı yazın\"] } } }, { \"l\": \"uk\", \"t\": { \"Enter link\": { \"v\": [\"Зазначте ŠæŠ¾ŃŠøŠ»Š°Š½Š½Ń\"] } } }, { \"l\": \"uz\", \"t\": { \"Enter link\": { \"v\": [\"Havolani kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enter link\": { \"v\": [\"č¾“å…„é“¾ęŽ„\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enter link\": { \"v\": [\"輸兄連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enter link\": { \"v\": [\"輸兄連結\"] } } }];\nconst t28 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"External documentation\": { \"v\": [\"ExternĆ­ dokumentace\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"External documentation\": { \"v\": [\"Ekstern dokumentation\"] } } }, { \"l\": \"de\", \"t\": { \"External documentation\": { \"v\": [\"Externe Dokumentation\"] } } }, { \"l\": \"de-DE\", \"t\": { \"External documentation\": { \"v\": [\"Externe Dokumentation\"] } } }, { \"l\": \"el\", \"t\": { \"External documentation\": { \"v\": [\"Εξωτερική Ļ„ĪµĪŗĪ¼Ī·ĻĪÆĻ‰ĻƒĪ·\"] } } }, { \"l\": \"en-GB\", \"t\": { \"External documentation\": { \"v\": [\"External documentation\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"External documentation\": { \"v\": [\"Dokumentatsioon vƤlises allikas\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"External documentation\": { \"v\": [\"Documentation externe\"] } } }, { \"l\": \"ga\", \"t\": { \"External documentation\": { \"v\": [\"DoicimĆ©adĆŗ seachtrach\"] } } }, { \"l\": \"gl\", \"t\": { \"External documentation\": { \"v\": [\"Documentación externa\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"External documentation\": { \"v\": [\"Vanjska dokumentacija\"] } } }, { \"l\": \"hu\", \"t\": { \"External documentation\": { \"v\": [\"Külső dokumentĆ”ció\"] } } }, { \"l\": \"id\", \"t\": { \"External documentation\": { \"v\": [\"Dokumentasi eksternal\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"External documentation\": { \"v\": [\"å¤–éƒØćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆ\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"External documentation\": { \"v\": [\"외부 ė¬øģ„œ\"] } } }, { \"l\": \"lo\", \"t\": { \"External documentation\": { \"v\": [\"ą»€ąŗ­ąŗąŗ°ąŗŖąŗ²ąŗ™ąŗžąŗ²ąŗąŗ™ąŗ­ąŗ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"External documentation\": { \"v\": [\"IÅ”orinė dokumentacija\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"External documentation\": { \"v\": [\"ŠŠ°Š“Š²Š¾Ń€ŠµŃˆŠ½Š° Š“Š¾ŠŗŃƒŠ¼ŠµŠ½Ń‚Š°Ń†ŠøŃ˜Š°\"] } } }, { \"l\": \"mn\", \"t\": { \"External documentation\": { \"v\": [\"ГаГааГ баримт бичиг\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"External documentation\": { \"v\": [\"Externe documentatie\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"External documentation\": { \"v\": [\"Documentação externa\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"External documentation\": { \"v\": [\"Š’Š½ŠµŃˆŠ½ŃŃ Š“Š¾ŠŗŃƒŠ¼ŠµŠ½Ń‚Š°Ń†ŠøŃ\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"External documentation\": { \"v\": [\"Дпољна Š“Š¾ŠŗŃƒŠ¼ŠµŠ½Ń‚Š°Ń†ŠøŃ˜Š°\"] } } }, { \"l\": \"sv\", \"t\": { \"External documentation\": { \"v\": [\"Extern dokumentation\"] } } }, { \"l\": \"tr\", \"t\": { \"External documentation\": { \"v\": [\"Dış belgeler\"] } } }, { \"l\": \"uk\", \"t\": { \"External documentation\": { \"v\": [\"Š—Š¾Š²Š½Ń–ŃˆŠ½Ń Š“Š¾ŠŗŃƒŠ¼ŠµŠ½Ń‚Š°Ń†Ń–Ń\"] } } }, { \"l\": \"uz\", \"t\": { \"External documentation\": { \"v\": [\"Tashqi hujjatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"External documentation\": { \"v\": [\"å¤–éƒØę–‡ä»¶\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"External documentation\": { \"v\": [\"å¤–éƒØę–‡ä»¶\"] } } }];\nconst t29 = [{ \"l\": \"ar\", \"t\": { \"Go back to the list\": { \"v\": [\"عودة ؄لى القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la llista\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Go back to the list\": { \"v\": [\"Torna a la llista\"] } } }, { \"l\": \"cs\", \"t\": { \"Go back to the list\": { \"v\": [\"JĆ­t zpět na seznam\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Go back to the list\": { \"v\": [\"JĆ­t zpět na seznam\"] } } }, { \"l\": \"da\", \"t\": { \"Go back to the list\": { \"v\": [\"Tilbage til listen\"] } } }, { \"l\": \"de\", \"t\": { \"Go back to the list\": { \"v\": [\"Zurück zur Liste\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Go back to the list\": { \"v\": [\"Zurück zur Liste\"] } } }, { \"l\": \"el\", \"t\": { \"Go back to the list\": { \"v\": [\"Ī•Ļ€Ī¹ĻƒĻ„ĻĪæĻ†Ī® ĻƒĻ„Ī·Ī½ αρχική Ī»ĪÆĻƒĻ„Ī±\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Go back to the list\": { \"v\": [\"Go back to the list\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Go back to the list\": { \"v\": [\"Regresar a la lista\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Go back to the list\": { \"v\": [\"Tagasi nimekirja juurde\"] } } }, { \"l\": \"eu\", \"t\": { \"Go back to the list\": { \"v\": [\"Bueltatu zerrendara\"] } } }, { \"l\": \"fa\", \"t\": { \"Go back to the list\": { \"v\": [\"برگؓت به Ł„ŪŒŲ³ŲŖ\"] } } }, { \"l\": \"fi\", \"t\": { \"Go back to the list\": { \"v\": [\"Takaisin listaan\"] } } }, { \"l\": \"fr\", \"t\": { \"Go back to the list\": { \"v\": [\"Retourner Ć  la liste\"] } } }, { \"l\": \"ga\", \"t\": { \"Go back to the list\": { \"v\": [\"TĆ©igh ar ais go dtĆ­ an liosta\"] } } }, { \"l\": \"gl\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver Ć” lista\"] } } }, { \"l\": \"he\", \"t\": { \"Go back to the list\": { \"v\": [\"חזרה ×œ×Ø×©×™×ž×”\"] } } }, { \"l\": \"hr\", \"t\": { \"Go back to the list\": { \"v\": [\"Vrati se na popis\"] } } }, { \"l\": \"hu\", \"t\": { \"Go back to the list\": { \"v\": [\"UgrĆ”s vissza a listĆ”hoz\"] } } }, { \"l\": \"id\", \"t\": { \"Go back to the list\": { \"v\": [\"Kembali ke daftar\"] } } }, { \"l\": \"is\", \"t\": { \"Go back to the list\": { \"v\": [\"Fara til baka Ć­ listann\"] } } }, { \"l\": \"it\", \"t\": { \"Go back to the list\": { \"v\": [\"Torna all'elenco\"] } } }, { \"l\": \"ja\", \"t\": { \"Go back to the list\": { \"v\": [\"ćƒŖć‚¹ćƒˆć«ęˆ»ć‚‹\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Go back to the list\": { \"v\": [\"ćƒŖć‚¹ćƒˆć«ęˆ»ć‚‹\"] } } }, { \"l\": \"ko\", \"t\": { \"Go back to the list\": { \"v\": [\"ėŖ©ė”ģœ¼ė”œ ėŒģ•„ź°€źø°\"] } } }, { \"l\": \"lo\", \"t\": { \"Go back to the list\": { \"v\": [\"ąŗąŗ±ąŗšą»„ąŗ›ąŗ—ąŗµą»ˆąŗ„ąŗ²ąŗąŗąŗ²ąŗ™\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Go back to the list\": { \"v\": [\"Grįžti ÄÆ sąraŔą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Go back to the list\": { \"v\": [\"Врати се на листата\"] } } }, { \"l\": \"mn\", \"t\": { \"Go back to the list\": { \"v\": [\"Жагсаалт руу Š±ŃƒŃ†Š°Ń…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Go back to the list\": { \"v\": [\"GĆ„ tilbake til listen\"] } } }, { \"l\": \"nl\", \"t\": { \"Go back to the list\": { \"v\": [\"Ga terug naar de lijst\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Go back to the list\": { \"v\": [\"Powrót do listy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Go back to the list\": { \"v\": [\"Voltar para a lista\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Go back to the list\": { \"v\": [\"Voltar para a lista\"] } } }, { \"l\": \"ro\", \"t\": { \"Go back to the list\": { \"v\": [\"Ǝntoarceți-vă la listă\"] } } }, { \"l\": \"ru\", \"t\": { \"Go back to the list\": { \"v\": [\"Š’ŠµŃ€Š½ŃƒŃ‚ŃŒŃŃ Šŗ списку\"] } } }, { \"l\": \"sk\", \"t\": { \"Go back to the list\": { \"v\": [\"Späń na zoznam\"] } } }, { \"l\": \"sl\", \"t\": { \"Go back to the list\": { \"v\": [\"Vrni se na seznam\"] } } }, { \"l\": \"sr\", \"t\": { \"Go back to the list\": { \"v\": [\"ŠŠ°Š·Š°Š“ на Š»ŠøŃŃ‚Ńƒ\"] } } }, { \"l\": \"sv\", \"t\": { \"Go back to the list\": { \"v\": [\"GĆ„ tillbaka till listan\"] } } }, { \"l\": \"tr\", \"t\": { \"Go back to the list\": { \"v\": [\"Listeye dƶn\"] } } }, { \"l\": \"uk\", \"t\": { \"Go back to the list\": { \"v\": [\"ŠŸŠ¾Š²ŠµŃ€Š½ŃƒŃ‚ŠøŃŃ Го списку\"] } } }, { \"l\": \"uz\", \"t\": { \"Go back to the list\": { \"v\": [\"Ro'yxatga qayting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Go back to the list\": { \"v\": [\"čæ”å›žč‡³åˆ—č”Ø\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Go back to the list\": { \"v\": [\"čæ”å›žęø…å–®\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Go back to the list\": { \"v\": [\"å›žåˆ°ęø…å–®\"] } } }];\nconst t30 = [{ \"l\": \"ar\", \"t\": { \"Hide details\": { \"v\": [\"أخفِ Ų§Ł„ŲŖŁŲ§ŲµŁŠŁ„\"] }, \"Rename project\": { \"v\": [\"تغيير اسم Ų§Ł„Ł…Ų“Ų±ŁˆŲ¹\"] }, \"Show details\": { \"v\": [\"أظهِر Ų§Ł„ŲŖŁŲ§ŲµŁŠŁ„\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Hide details\": { \"v\": [\"Skrýt podrobnosti\"] }, \"Rename project\": { \"v\": [\"Přejmenovat projekt\"] }, \"Show details\": { \"v\": [\"Zobrazit podrobnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"OmdĆøb projekt\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"de\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide details\": { \"v\": [\"Ī‘Ļ€ĻŒĪŗĻĻ…ĻˆĪ· Ī»ĪµĻ€Ļ„ĪæĪ¼ĪµĻĪµĪ¹ĻŽĪ½\"] }, \"Rename project\": { \"v\": [\"ĪœĪµĻ„ĪæĪ½ĪæĪ¼Ī±ĻƒĪÆĪ± έργου\"] }, \"Show details\": { \"v\": [\"Ī•Ī¼Ļ†Ī¬Ī½Ī¹ĻƒĪ· Ī»ĪµĻ€Ļ„ĪæĪ¼ĪµĻĪµĪ¹ĻŽĪ½\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide details\": { \"v\": [\"Hide details\"] }, \"Rename project\": { \"v\": [\"Rename project\"] }, \"Show details\": { \"v\": [\"Show details\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide details\": { \"v\": [\"Peida üksikasjad\"] }, \"Rename project\": { \"v\": [\"Muuda projekti nime\"] }, \"Show details\": { \"v\": [\"NƤita üksikasju\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Hide details\": { \"v\": [\"پنهان کردن جزئیات\"] }, \"Rename project\": { \"v\": [\"تغییر نام Ł¾Ų±ŁˆŚ˜Ł‡\"] }, \"Show details\": { \"v\": [\"Ł†Ł…Ų§ŪŒŲ“ جزئیات\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide details\": { \"v\": [\"Piilota yksityiskohdat\"] }, \"Rename project\": { \"v\": [\"NimeƤ projekti\"] }, \"Show details\": { \"v\": [\"NƤytƤ yksityiskohdat\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide details\": { \"v\": [\"Masquer les dĆ©tails\"] }, \"Rename project\": { \"v\": [\"Renommer le projet\"] }, \"Show details\": { \"v\": [\"Afficher les dĆ©tails\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide details\": { \"v\": [\"Folaigh sonraĆ­\"] }, \"Rename project\": { \"v\": [\"Athainmnigh an tionscadal\"] }, \"Show details\": { \"v\": [\"TaispeĆ”in sonraĆ­\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide details\": { \"v\": [\"Agochar os detalles\"] }, \"Rename project\": { \"v\": [\"Cambiar o nome do proxecto\"] }, \"Show details\": { \"v\": [\"Amosar os detalles\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Hide details\": { \"v\": [\"Sakrij detalje\"] }, \"Rename project\": { \"v\": [\"Preimenuj projekt\"] }, \"Show details\": { \"v\": [\"Prikaži detalje\"] } } }, { \"l\": \"hu\", \"t\": { \"Hide details\": { \"v\": [\"RĆ©szletek elrejtĆ©se\"] }, \"Rename project\": { \"v\": [\"Projekt Ć”tnevezĆ©se\"] }, \"Show details\": { \"v\": [\"RĆ©szletek megjelenĆ­tĆ©se\"] } } }, { \"l\": \"id\", \"t\": { \"Hide details\": { \"v\": [\"Sembunyikan detail\"] }, \"Rename project\": { \"v\": [\"Ganti nama proyek\"] }, \"Show details\": { \"v\": [\"Tampilkan detail\"] } } }, { \"l\": \"is\", \"t\": { \"Hide details\": { \"v\": [\"Fela nĆ”nari upplýsingar\"] }, \"Rename project\": { \"v\": [\"Endurnefna verkefni\"] }, \"Show details\": { \"v\": [\"Birta nĆ”nari upplýsingar\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Hide details\": { \"v\": [\"č©³ē“°ć‚’éžč”Øē¤ŗ\"] }, \"Rename project\": { \"v\": [\"ćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆåć‚’å¤‰ę›“\"] }, \"Show details\": { \"v\": [\"詳瓰の蔨示\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Hide details\": { \"v\": [\"세부 사항 숨기기\"] }, \"Rename project\": { \"v\": [\"ķ”„ė”œģ ķŠø ģ“ė¦„ 변경\"] }, \"Show details\": { \"v\": [\"세부 사항 볓기\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide details\": { \"v\": [\"ą»€ąŗŠąŗ·ą»ˆąŗ­ąŗ‡ąŗ„ąŗ²ąŗąŗ„ąŗ°ąŗ­ąŗ½ąŗ”\"] }, \"Rename project\": { \"v\": [\"ąŗ›ą»ˆąŗ½ąŗ™ąŗŠąŗ·ą»ˆą»‚ąŗ„ąŗ‡ąŗąŗ²ąŗ™\"] }, \"Show details\": { \"v\": [\"ąŗŖąŗ°ą»ąŗ”ąŗ‡ąŗ„ąŗ²ąŗąŗ„ąŗ°ąŗ­ąŗ½ąŗ”\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Hide details\": { \"v\": [\"Slėpti detales\"] }, \"Rename project\": { \"v\": [\"Pervadinti projektą\"] }, \"Show details\": { \"v\": [\"Rodyti detales\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide details\": { \"v\": [\"Š”Š¾ŠŗŃ€ŠøŃ˜ Гетали\"] }, \"Rename project\": { \"v\": [\"ŠŸŃ€ŠµŠøŠ¼ŠµŠ½ŃƒŠ²Š°Ń˜ проект\"] }, \"Show details\": { \"v\": [\"ŠŸŃ€ŠøŠŗŠ°Š¶Šø Гетали\"] } } }, { \"l\": \"mn\", \"t\": { \"Hide details\": { \"v\": [\"Š”ŃŠ»Š³ŃŃ€ŃŠ½Š³ŅÆŠ¹Š³ Š½ŃƒŃƒŃ…\"] }, \"Rename project\": { \"v\": [\"Төслийн Š½ŃŃ€ солих\"] }, \"Show details\": { \"v\": [\"Š”ŃŠ»Š³ŃŃ€ŃŠ½Š³ŅÆŠ¹Š³ Ń…Š°Ń€ŃƒŃƒŠ»Š°Ń…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Gi prosjekt nytt navn\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide details\": { \"v\": [\"Details verbergen\"] }, \"Rename project\": { \"v\": [\"Project hernoemen\"] }, \"Show details\": { \"v\": [\"Details weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide details\": { \"v\": [\"Ukryj szczegóły\"] }, \"Rename project\": { \"v\": [\"Zmień nazwę projektu\"] }, \"Show details\": { \"v\": [\"Pokaż szczegóły\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Renomear projeto\"] }, \"Show details\": { \"v\": [\"Mostrar detalhes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Alterar nome do projeto\"] }, \"Show details\": { \"v\": [\"Ver detalhes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Hide details\": { \"v\": [\"Š”ŠŗŃ€Ń‹Ń‚ŃŒ поГробности\"] }, \"Rename project\": { \"v\": [\"ŠŸŠµŃ€ŠµŠøŠ¼ŠµŠ½Š¾Š²Š°Ń‚ŃŒ проект\"] }, \"Show details\": { \"v\": [\"ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚ŃŒ Гетали\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide details\": { \"v\": [\"SkryÅ„ detaily\"] }, \"Rename project\": { \"v\": [\"PremenovaÅ„ projekt\"] }, \"Show details\": { \"v\": [\"ZobraziÅ„ detaily\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Hide details\": { \"v\": [\"Š”Š°ŠŗŃ€ŠøŃ˜ Гетаље\"] }, \"Rename project\": { \"v\": [\"ŠŸŃ€Š¾Š¼ŠµŠ½Šø име ŠæŃ€Š¾Ń˜ŠµŠŗŃ‚а\"] }, \"Show details\": { \"v\": [\"ŠŸŃ€ŠøŠŗŠ°Š¶Šø Гетаље\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide details\": { \"v\": [\"Dƶlj detaljer\"] }, \"Rename project\": { \"v\": [\"Byt namn pĆ„ projektet\"] }, \"Show details\": { \"v\": [\"Visa detaljer\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide details\": { \"v\": [\"Ayrıntıları gizle\"] }, \"Rename project\": { \"v\": [\"Projeyi yeniden adlandır\"] }, \"Show details\": { \"v\": [\"Ayrıntıları gƶrüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide details\": { \"v\": [\"Дховати Геталі\"] }, \"Rename project\": { \"v\": [\"ŠŸŠµŃ€ŠµŠ¹Š¼ŠµŠ½ŃƒŠ²Š°Ń‚Šø проєкт\"] }, \"Show details\": { \"v\": [\"ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚Šø Геталі\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide details\": { \"v\": [\"Tafsilotlarni yashirish\"] }, \"Rename project\": { \"v\": [\"Loyiha nomini o'zgartirish\"] }, \"Show details\": { \"v\": [\"Tafsilotlarni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide details\": { \"v\": [\"éšč—ē»†čŠ‚\"] }, \"Rename project\": { \"v\": [\"é‡å‘½åé”¹ē›®\"] }, \"Show details\": { \"v\": [\"ę˜¾ē¤ŗē»†čŠ‚\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide details\": { \"v\": [\"éš±č—č©³ęƒ…\"] }, \"Rename project\": { \"v\": [\"é‡å‘½åę–¹ę”ˆ\"] }, \"Show details\": { \"v\": [\"é”Æē¤ŗč©³ęƒ…\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide details\": { \"v\": [\"éš±č—č©³ē“°č³‡ę–™\"] }, \"Rename project\": { \"v\": [\"é‡ę–°å‘½åå°ˆę”ˆ\"] }, \"Show details\": { \"v\": [\"é”Æē¤ŗč©³ē“°č³‡čØŠ\"] } } }];\nconst t31 = [{ \"l\": \"ar\", \"t\": { \"Hide password\": { \"v\": [\"؄خفاؔ ŁƒŁ„Ł…Ų© Ų§Ł„Ł…Ų±ŁˆŲ±\"] }, \"Password is secure\": { \"v\": [\"ŁƒŁ„Ł…Ų© Ų§Ł„Ł…Ų±ŁˆŲ± آمنة\"] }, \"Show password\": { \"v\": [\"أظهِر ŁƒŁ„Ł…Ų© Ų§Ł„Ł…Ų±ŁˆŲ±\"] } } }, { \"l\": \"ast\", \"t\": { \"Hide password\": { \"v\": [\"Anubrir la contraseƱa\"] }, \"Password is secure\": { \"v\": [\"La contraseƱa ye segura\"] }, \"Show password\": { \"v\": [\"Amosar la contraseƱa\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Hide password\": { \"v\": [\"Amagar contrasenya\"] }, \"Password is secure\": { \"v\": [\"Contrasenya segura
\"] }, \"Show password\": { \"v\": [\"Mostrar contrasenya\"] } } }, { \"l\": \"cs\", \"t\": { \"Hide password\": { \"v\": [\"Skrýt heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečnĆ©\"] }, \"Show password\": { \"v\": [\"Zobrazit heslo\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Hide password\": { \"v\": [\"Skrýt heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečnĆ©\"] }, \"Show password\": { \"v\": [\"Zobrazit heslo\"] } } }, { \"l\": \"da\", \"t\": { \"Hide password\": { \"v\": [\"Skjul kodeord\"] }, \"Password is secure\": { \"v\": [\"Kodeordet er sikkert\"] }, \"Show password\": { \"v\": [\"Vis kodeord\"] } } }, { \"l\": \"de\", \"t\": { \"Hide password\": { \"v\": [\"Passwort verbergen\"] }, \"Password is secure\": { \"v\": [\"Passwort ist sicher\"] }, \"Show password\": { \"v\": [\"Passwort anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide password\": { \"v\": [\"Passwort verbergen\"] }, \"Password is secure\": { \"v\": [\"Passwort ist sicher\"] }, \"Show password\": { \"v\": [\"Passwort anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide password\": { \"v\": [\"Ī‘Ļ€ĻŒĪŗĻĻ…ĻˆĪ· ĻƒĻ…Ī½ĪøĪ·Ī¼Ī±Ļ„Ī¹ĪŗĪæĻ\"] }, \"Password is secure\": { \"v\": [\"Το ĻƒĻ…Ī½ĪøĪ·Ī¼Ī±Ļ„Ī¹ĪŗĻŒ είναι Ī±ĻƒĻ†Ī±Ī»Ī­Ļ‚\"] }, \"Show password\": { \"v\": [\"Ī•Ī¼Ļ†Ī¬Ī½Ī¹ĻƒĪ· ĪŗĻ‰Ī“Ī¹ĪŗĪæĻ Ļ€ĻĻŒĻƒĪ²Ī±ĻƒĪ·Ļ‚\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide password\": { \"v\": [\"Hide password\"] }, \"Password is secure\": { \"v\": [\"Password is secure\"] }, \"Show password\": { \"v\": [\"Show password\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseƱa\"] }, \"Password is secure\": { \"v\": [\"La contraseƱa es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseƱa\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseƱa\"] }, \"Password is secure\": { \"v\": [\"La contraseƱa es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseƱa\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseƱa\"] }, \"Password is secure\": { \"v\": [\"La contraseƱa es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseƱa\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseƱa\"] }, \"Password is secure\": { \"v\": [\"La contraseƱa es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseƱa\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide password\": { \"v\": [\"Peida salasƵna\"] }, \"Password is secure\": { \"v\": [\"SalasƵna on turvaline\"] }, \"Show password\": { \"v\": [\"NƤita salasƵna\"] } } }, { \"l\": \"eu\", \"t\": { \"Hide password\": { \"v\": [\"Ezkutatu pasahitza\"] }, \"Password is secure\": { \"v\": [\"Pasahitza segurua da\"] }, \"Show password\": { \"v\": [\"Erakutsi pasahitza\"] } } }, { \"l\": \"fa\", \"t\": { \"Hide password\": { \"v\": [\"پنهان کردن رمز عبور\"] }, \"Password is secure\": { \"v\": [\"ŚÆŲ°Ų±ŁˆŲ§Ś˜Ł‡ امن Ų§Ų³ŲŖ\"] }, \"Show password\": { \"v\": [\"Ł†Ł…Ų§ŪŒŲ“ ŚÆŲ°Ų±ŁˆŲ§Ś˜Ł‡\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide password\": { \"v\": [\"Piilota salasana\"] }, \"Password is secure\": { \"v\": [\"Salasana on turvallinen\"] }, \"Show password\": { \"v\": [\"NƤytƤ salasana\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide password\": { \"v\": [\"Cacher le mot de passe\"] }, \"Password is secure\": { \"v\": [\"Le mot de passe est sĆ©curisĆ©\"] }, \"Show password\": { \"v\": [\"Afficher le mot de passe\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide password\": { \"v\": [\"Folaigh pasfhocal\"] }, \"Password is secure\": { \"v\": [\"TĆ” pasfhocal slĆ”n\"] }, \"Show password\": { \"v\": [\"TaispeĆ”in pasfhocal\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide password\": { \"v\": [\"Agochar o contrasinal\"] }, \"Password is secure\": { \"v\": [\"O contrasinal Ć© seguro\"] }, \"Show password\": { \"v\": [\"Amosar o contrasinal\"] } } }, { \"l\": \"he\", \"t\": { \"Hide password\": { \"v\": [\"ההתרת היהמה\"] }, \"Password is secure\": { \"v\": [\"ההיהמה ×ž××•×‘×˜×—×Ŗ\"] }, \"Show password\": { \"v\": [\"הצגת היהמה\"] } } }, { \"l\": \"hr\", \"t\": { \"Hide password\": { \"v\": [\"Sakrij lozinku\"] }, \"Password is secure\": { \"v\": [\"Lozinka je zaÅ”tićena\"] }, \"Show password\": { \"v\": [\"Prikaži lozinku\"] } } }, { \"l\": \"hu\", \"t\": { \"Hide password\": { \"v\": [\"Jelszó elrejtĆ©se\"] }, \"Password is secure\": { \"v\": [\"A jelszó biztonsĆ”gos\"] }, \"Show password\": { \"v\": [\"Jelszó megjelenĆ­tĆ©se\"] } } }, { \"l\": \"id\", \"t\": { \"Hide password\": { \"v\": [\"Sembunyikan sandi\"] }, \"Password is secure\": { \"v\": [\"Kata sandi sudah aman\"] }, \"Show password\": { \"v\": [\"Tampilkan sandi\"] } } }, { \"l\": \"is\", \"t\": { \"Hide password\": { \"v\": [\"Fela lykilorư\"] }, \"Password is secure\": { \"v\": [\"Lykilorưiư er ƶruggt\"] }, \"Show password\": { \"v\": [\"Birta lykilorư\"] } } }, { \"l\": \"it\", \"t\": { \"Hide password\": { \"v\": [\"Nascondi la password\"] }, \"Password is secure\": { \"v\": [\"La password ĆØ sicura\"] }, \"Show password\": { \"v\": [\"Mostra la password\"] } } }, { \"l\": \"ja\", \"t\": { \"Hide password\": { \"v\": [\"ćƒ‘ć‚¹ćƒÆćƒ¼ćƒ‰ć‚’éžč”Øē¤ŗ\"] }, \"Password is secure\": { \"v\": [\"ćƒ‘ć‚¹ćƒÆćƒ¼ćƒ‰ćÆäæč­·ć•ć‚Œć¦ć„ć¾ć™\"] }, \"Show password\": { \"v\": [\"ćƒ‘ć‚¹ćƒÆćƒ¼ćƒ‰ć‚’č”Øē¤ŗ\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Hide password\": { \"v\": [\"ćƒ‘ć‚¹ćƒÆćƒ¼ćƒ‰ć‚’éžč”Øē¤ŗ\"] }, \"Password is secure\": { \"v\": [\"ćƒ‘ć‚¹ćƒÆćƒ¼ćƒ‰ćÆäæč­·ć•ć‚Œć¦ć„ć¾ć™\"] }, \"Show password\": { \"v\": [\"ćƒ‘ć‚¹ćƒÆćƒ¼ćƒ‰ć‚’č”Øē¤ŗ\"] } } }, { \"l\": \"ko\", \"t\": { \"Hide password\": { \"v\": [\"ģ•”ķ˜ø 숨기기\"] }, \"Password is secure\": { \"v\": [\"ģ•”ķ˜øź°€ ģ•ˆģ „ķ•©ė‹ˆė‹¤.\"] }, \"Show password\": { \"v\": [\"ģ•”ķ˜ø ķ‘œģ‹œ\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide password\": { \"v\": [\"ą»€ąŗŠąŗ·ą»ˆąŗ­ąŗ‡ąŗ„ąŗ°ąŗ«ąŗ±ąŗ”ąŗœą»ˆąŗ²ąŗ™\"] }, \"Password is secure\": { \"v\": [\"ąŗ„ąŗ°ąŗ«ąŗ±ąŗ”ąŗœą»ˆąŗ²ąŗ™ąŗ›ąŗ­ąŗ”ą»„ąŗž\"] }, \"Show password\": { \"v\": [\"ąŗŖąŗ°ą»ąŗ”ąŗ‡ąŗ„ąŗ°ąŗ«ąŗ±ąŗ”ąŗœą»ˆąŗ²ąŗ™\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Hide password\": { \"v\": [\"Slėpti slaptažodÄÆ\"] }, \"Password is secure\": { \"v\": [\"Slaptažodis yra saugus\"] }, \"Show password\": { \"v\": [\"Rodyti slaptažodÄÆ\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide password\": { \"v\": [\"Š”Š¾ŠŗŃ€ŠøŃ˜ лозинка\"] }, \"Password is secure\": { \"v\": [\"Лозинката е безбеГна\"] }, \"Show password\": { \"v\": [\"ŠŸŃ€ŠøŠŗŠ°Š¶Šø лозинка\"] } } }, { \"l\": \"mn\", \"t\": { \"Hide password\": { \"v\": [\"ŠŃƒŃƒŃ† үгийг Š½ŃƒŃƒŃ…\"] }, \"Password is secure\": { \"v\": [\"ŠŃƒŃƒŃ† үг найГвартай байна\"] }, \"Show password\": { \"v\": [\"ŠŃƒŃƒŃ† үгийг Ń…Š°Ń€ŃƒŃƒŠ»Š°Ń…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide password\": { \"v\": [\"Skjul passord\"] }, \"Password is secure\": { \"v\": [\"Passordet er sikkert\"] }, \"Show password\": { \"v\": [\"Vis passord\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide password\": { \"v\": [\"Wachtwoord verbergen\"] }, \"Password is secure\": { \"v\": [\"Wachtwoord is veilig\"] }, \"Show password\": { \"v\": [\"Wachtwoord weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide password\": { \"v\": [\"Ukryj hasło\"] }, \"Password is secure\": { \"v\": [\"Hasło jest bezpieczne\"] }, \"Show password\": { \"v\": [\"Pokaż hasło\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar senha\"] }, \"Password is secure\": { \"v\": [\"A senha Ć© segura\"] }, \"Show password\": { \"v\": [\"Mostrar senha\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar palavra-passe\"] }, \"Password is secure\": { \"v\": [\"A palavra-passe Ć© segura\"] }, \"Show password\": { \"v\": [\"Mostrar palavra-passe\"] } } }, { \"l\": \"ro\", \"t\": { \"Hide password\": { \"v\": [\"Ascunde parola\"] }, \"Password is secure\": { \"v\": [\"Parola este sigură\"] }, \"Show password\": { \"v\": [\"Arată parola\"] } } }, { \"l\": \"ru\", \"t\": { \"Hide password\": { \"v\": [\"Š”ŠŗŃ€Ń‹Ń‚ŃŒ ŠæŠ°Ń€Š¾Š»ŃŒ\"] }, \"Password is secure\": { \"v\": [\"ŠŸŠ°Ń€Š¾Š»ŃŒ наГежный\"] }, \"Show password\": { \"v\": [\"ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚ŃŒ ŠæŠ°Ń€Š¾Š»ŃŒ\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide password\": { \"v\": [\"SkryÅ„ heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečnĆ©\"] }, \"Show password\": { \"v\": [\"ZobraziÅ„ heslo\"] } } }, { \"l\": \"sl\", \"t\": { \"Hide password\": { \"v\": [\"Skrij geslo\"] }, \"Password is secure\": { \"v\": [\"Geslo je varno\"] }, \"Show password\": { \"v\": [\"Pokaži geslo\"] } } }, { \"l\": \"sr\", \"t\": { \"Hide password\": { \"v\": [\"Š”Š°ŠŗŃ€ŠøŃ˜ лозинку\"] }, \"Password is secure\": { \"v\": [\"Лозинка је безбеГна\"] }, \"Show password\": { \"v\": [\"ŠŸŃ€ŠøŠŗŠ°Š¶Šø лозинку\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide password\": { \"v\": [\"Dƶlj lƶsenordet\"] }, \"Password is secure\": { \"v\": [\"Lƶsenordet Ƥr sƤkert\"] }, \"Show password\": { \"v\": [\"Visa lƶsenordet\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide password\": { \"v\": [\"Parolayı gizle\"] }, \"Password is secure\": { \"v\": [\"Parola güvenli\"] }, \"Show password\": { \"v\": [\"Parolayı gƶrüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide password\": { \"v\": [\"ŠŸŃ€ŠøŃ…Š¾Š²Š°Ń‚Šø ŠæŠ°Ń€Š¾Š»ŃŒ\"] }, \"Password is secure\": { \"v\": [\"ŠŸŠ°Ń€Š¾Š»ŃŒ безпечний\"] }, \"Show password\": { \"v\": [\"ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚Šø ŠæŠ°Ń€Š¾Š»ŃŒ\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide password\": { \"v\": [\"Parolni yashirish\"] }, \"Password is secure\": { \"v\": [\"Parol xavfsiz\"] }, \"Show password\": { \"v\": [\"Parolni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide password\": { \"v\": [\"éšč—åÆ†ē \"] }, \"Password is secure\": { \"v\": [\"密码安全\"] }, \"Show password\": { \"v\": [\"ę˜¾ē¤ŗåÆ†ē \"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide password\": { \"v\": [\"éš±č—åÆ†ē¢¼\"] }, \"Password is secure\": { \"v\": [\"åÆ†ē¢¼ę˜Æå®‰å…Øēš„\"] }, \"Show password\": { \"v\": [\"锯示密碼\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide password\": { \"v\": [\"éš±č—åÆ†ē¢¼\"] }, \"Password is secure\": { \"v\": [\"密碼安全\"] }, \"Show password\": { \"v\": [\"锯示密碼\"] } } }];\nconst t32 = [{ \"l\": \"ar\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ł…Ų³Ų§Ų¹ŲÆŲ© في التنقل باستعمال Ł„ŁˆŲ­Ų© Ų§Ł„Ł…ŁŲ§ŲŖŁŠŲ­\"] }, \"Skip to app navigation\": { \"v\": [\"ŲŖŲ¬Ų§ŁˆŁŽŲ² ؄لى التنقل في Ų§Ł„ŲŖŲ·ŲØŁŠŁ‚\"] }, \"Skip to main content\": { \"v\": [\"ŲŖŲ¬Ų§ŁˆŁŽŲ² ؄لى Ų§Ł„Ł…Ų­ŲŖŁˆŁ‰ Ų§Ł„Ų±Ų¦ŁŠŲ³ŁŠ\"] } } }, { \"l\": \"ast\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de la navegación pente'l teclĆ”u\"] }, \"Skip to app navigation\": { \"v\": [\"Dir a la navegación d'aplicaciones\"] }, \"Skip to main content\": { \"v\": [\"Dir al contenĆ­u principal\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"NĆ”pověda pro pohyb pomocĆ­ klĆ”vesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Přeskočit na navigaci aplikace\"] }, \"Skip to main content\": { \"v\": [\"Přeskočit na hlavnĆ­ obsah\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"NĆ”pověda pro pohyb pomocĆ­ klĆ”vesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Přeskočit na navigaci aplikace\"] }, \"Skip to main content\": { \"v\": [\"Přeskočit na hlavnĆ­ obsah\"] } } }, { \"l\": \"da\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"HjƦlp til tastaturnavigation\"] }, \"Skip to app navigation\": { \"v\": [\"Spring til app navigation\"] }, \"Skip to main content\": { \"v\": [\"Spring til hovedindhold\"] } } }, { \"l\": \"de\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Tastatur-Navigationshilfe\"] }, \"Skip to app navigation\": { \"v\": [\"Zur App-Navigation springen\"] }, \"Skip to main content\": { \"v\": [\"Zum Hauptinhalt springen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Tastatur-Navigationshilfe\"] }, \"Skip to app navigation\": { \"v\": [\"Zur App-Navigation springen\"] }, \"Skip to main content\": { \"v\": [\"Zum Hauptinhalt springen\"] } } }, { \"l\": \"el\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Βοήθεια Ļ€Ī»ĪæĪ®Ī³Ī·ĻƒĪ·Ļ‚ με Ļ€Ī»Ī·ĪŗĻ„ĻĪæĪ»ĻŒĪ³Ī¹Īæ\"] }, \"Skip to app navigation\": { \"v\": [\"ĪœĪµĻ„Ī¬Ī²Ī±ĻƒĪ· ĻƒĻ„Ī·Ī½ Ļ€Ī»ĪæĪ®Ī³Ī·ĻƒĪ· της εφαρμογής\"] }, \"Skip to main content\": { \"v\": [\"ĪœĪµĻ„Ī¬Ī²Ī±ĻƒĪ· ĻƒĻ„Īæ ĪŗĻĻĪ¹Īæ Ļ€ĪµĻĪ¹ĪµĻ‡ĻŒĪ¼ĪµĪ½Īæ\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Keyboard navigation help\"] }, \"Skip to app navigation\": { \"v\": [\"Skip to app navigation\"] }, \"Skip to main content\": { \"v\": [\"Skip to main content\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de apps\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de app\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de app\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klahvistiku kasutuse abiteave\"] }, \"Skip to app navigation\": { \"v\": [\"Suundu rakenduses liikumise valikute juurde\"] }, \"Skip to main content\": { \"v\": [\"Suundu pƵhisisu juurde\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ų±Ų§Ł‡Ł†Ł…Ų§ŪŒ Ł†Ų§ŁˆŲØŲ±ŪŒ صفحه Ś©Ł„ŪŒŲÆ\"] }, \"Skip to app navigation\": { \"v\": [\"رفتن به Ł¾ŪŒŁ…Ų§ŪŒŲ“ برنامه\"] }, \"Skip to main content\": { \"v\": [\"رفتن به Ł…Ų­ŲŖŁˆŲ§ŪŒ Ų§ŲµŁ„ŪŒ\"] } } }, { \"l\": \"fi\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"NƤppƤimistƶnavigoinnin ohje\"] }, \"Skip to app navigation\": { \"v\": [\"Siirry sovelluksen navigaatioon\"] }, \"Skip to main content\": { \"v\": [\"Siirry pƤƤsisƤltƶƶn\"] } } }, { \"l\": \"fr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Aide Ć  la navigation du clavier\"] }, \"Skip to app navigation\": { \"v\": [\"Passer Ć  l'app navigation\"] }, \"Skip to main content\": { \"v\": [\"Passer au contenu principal\"] } } }, { \"l\": \"ga\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Cabhair le nascleanĆŗint mĆ©archlĆ”ir\"] }, \"Skip to app navigation\": { \"v\": [\"TĆ©igh ar aghaidh chuig nascleanĆŗint aip\"] }, \"Skip to main content\": { \"v\": [\"TĆ©igh ar aghaidh chuig an bprĆ­omhĆ”bhar\"] } } }, { \"l\": \"gl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Axuda Ć” navegación co teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Ir Ć” navegación da aplicación\"] }, \"Skip to main content\": { \"v\": [\"Ir ao contido principal\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoć za navigaciju tipkovnicom\"] }, \"Skip to app navigation\": { \"v\": [\"Preskoči na navigaciju aplikacije\"] }, \"Skip to main content\": { \"v\": [\"Preskoči na glavni sadržaj\"] } } }, { \"l\": \"hu\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Billentyűzetes navigĆ”ció sĆŗgója\"] }, \"Skip to app navigation\": { \"v\": [\"UgrĆ”s az alkalmazĆ”snavigĆ”cióhoz\"] }, \"Skip to main content\": { \"v\": [\"UgrĆ”s a fő tartalomhoz\"] } } }, { \"l\": \"id\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Bantuan navigasi keyboard\"] }, \"Skip to app navigation\": { \"v\": [\"Lewati ke navigasi aplikasi\"] }, \"Skip to main content\": { \"v\": [\"Lewati ke konten utama\"] } } }, { \"l\": \"is\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Aưstoư viư rƶtun Ć” lyklaborưi\"] }, \"Skip to app navigation\": { \"v\": [\"Sleppa og fara Ć­ flakk innan forrits\"] }, \"Skip to main content\": { \"v\": [\"Sleppa og fara Ć­ meginefni\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"ć‚­ćƒ¼ćƒœćƒ¼ćƒ‰ćƒ»ćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ćƒ˜ćƒ«ćƒ—\"] }, \"Skip to app navigation\": { \"v\": [\"ć‚¢ćƒ—ćƒŖć®ćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³ćøē§»å‹•\"] }, \"Skip to main content\": { \"v\": [\"ćƒ”ć‚¤ćƒ³ć‚³ćƒ³ćƒ†ćƒ³ćƒ„ćøē§»å‹•\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"ć‚­ćƒ¼ćƒœćƒ¼ćƒ‰ćƒ»ćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ćƒ˜ćƒ«ćƒ—\"] }, \"Skip to app navigation\": { \"v\": [\"ć‚¢ćƒ—ćƒŖć®ćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³ćøē§»å‹•\"] }, \"Skip to main content\": { \"v\": [\"ćƒ”ć‚¤ćƒ³ć‚³ćƒ³ćƒ†ćƒ³ćƒ„ćøē§»å‹•\"] } } }, { \"l\": \"ko\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"ķ‚¤ė³“ė“œ ķƒģƒ‰ ė„ģ›€ė§\"] }, \"Skip to app navigation\": { \"v\": [\"앱 ķƒģƒ‰ģœ¼ė”œ ź±“ė„ˆė›°źø°\"] }, \"Skip to main content\": { \"v\": [\"ė³ø ė‚“ģš©ģœ¼ė”œ ź±“ė„ˆė›°źø°\"] } } }, { \"l\": \"lo\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"ąŗąŗ²ąŗ™ąŗŠą»ˆąŗ§ąŗą»€ąŗ«ąŗ¼ąŗ·ąŗ­ąŗąŗ²ąŗ™ąŗ™ąŗ³ąŗ—ąŗ²ąŗ‡ąŗ”ą»‰ąŗ§ąŗąŗ„ąŗµąŗšąŗ­ąŗ”\"] }, \"Skip to app navigation\": { \"v\": [\"ąŗ‚ą»‰ąŗ²ąŗ”ą»„ąŗ›ąŗ—ąŗµą»ˆąŗąŗ²ąŗ™ąŗ™ąŗ³ąŗ—ąŗ²ąŗ‡ąŗ‚ąŗ­ąŗ‡ą»ąŗ­ąŗ±ąŗš\"] }, \"Skip to main content\": { \"v\": [\"ąŗ‚ą»‰ąŗ²ąŗ”ą»„ąŗ›ąŗ—ąŗµą»ˆą»€ąŗ™ąŗ·ą»‰ąŗ­ąŗ«ąŗ²ąŗ«ąŗ¼ąŗ±ąŗ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"KlaviatÅ«ros navigacijos pagalba\"] }, \"Skip to app navigation\": { \"v\": [\"Pereiti prie programėlės narÅ”ymo\"] }, \"Skip to main content\": { \"v\": [\"Pereiti prie pagrindinio turinio\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"ŠŠ°Š²ŠøŠ³Š°Ń†ŠøŃ˜Š° со Ń‚Š°ŃŃ‚Š°Ń‚ŃƒŃ€Š°\"] }, \"Skip to app navigation\": { \"v\": [\"ŠŸŃ€ŠµŃŠŗŠ¾ŠŗŠ½Šø на Š½Š°Š²ŠøŠ³Š°Ń†ŠøŃ˜Š° на Š°ŠæŠ»ŠøŠŗŠ°Ń†ŠøŃ˜Š°Ń‚а\"] }, \"Skip to main content\": { \"v\": [\"ŠŸŃ€ŠµŃŠŗŠ¾ŠŗŠ½Šø на главна соГржина\"] } } }, { \"l\": \"mn\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Гарын навигацийн Ń‚ŃƒŃŠ»Š°Š¼Š¶\"] }, \"Skip to app navigation\": { \"v\": [\"Аппын навигаци руу алгасах\"] }, \"Skip to main content\": { \"v\": [\"Ņ®Š½Š“ŃŃŠ½ агуулга руу алгасах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjelp for tastaturnavigering\"] }, \"Skip to app navigation\": { \"v\": [\"Hopp til appnavigering\"] }, \"Skip to main content\": { \"v\": [\"Hopp til hovedinnhold\"] } } }, { \"l\": \"nl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hulp voor toetsenbordnavigatie\"] }, \"Skip to app navigation\": { \"v\": [\"Doorgaan naar app-navigatie\"] }, \"Skip to main content\": { \"v\": [\"Naar hoofdinhoud gaan\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoc w nawigacji za pomocą klawiatury\"] }, \"Skip to app navigation\": { \"v\": [\"Przewiń do nawigacji\"] }, \"Skip to main content\": { \"v\": [\"Przewiń do głównych treści\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ajuda para navegação pelo teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Ir para navegação de aplicativo\"] }, \"Skip to main content\": { \"v\": [\"Ir para conteĆŗdo principal\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ajuda Ć  navegação no teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar para navegação da app\"] }, \"Skip to main content\": { \"v\": [\"Saltar para conteĆŗdo principal\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Дправка по навигации с ŠæŠ¾Š¼Š¾Ń‰ŃŒŃŽ ŠŗŠ»Š°Š²ŠøŠ°Ń‚ŃƒŃ€Ń‹\"] }, \"Skip to app navigation\": { \"v\": [\"ŠŸŠµŃ€ŠµŠ¹Ń‚Šø Šŗ навигации по ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃŽ\"] }, \"Skip to main content\": { \"v\": [\"ŠŸŠµŃ€ŠµŠ¹Ń‚Šø Šŗ основному ŃŠ¾Š“ŠµŃ€Š¶Š°Š½ŠøŃŽ\"] } } }, { \"l\": \"sk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoc pri navigĆ”cii pomocou klĆ”vesnice\"] }, \"Skip to app navigation\": { \"v\": [\"PreskočiÅ„ na navigĆ”ciu v aplikĆ”cii\"] }, \"Skip to main content\": { \"v\": [\"PreskočiÅ„ na hlavný obsah\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"ŠŸŠ¾Š¼Š¾Ń› за Š½Š°Š²ŠøŠ³Š°Ń†ŠøŃ˜Ńƒ Ń‚Š°ŃŃ‚Š°Ń‚ŃƒŃ€Š¾Š¼\"] }, \"Skip to app navigation\": { \"v\": [\"ŠŸŃ€ŠµŃŠŗŠ¾Ń‡Šø на Š½Š°Š²ŠøŠ³Š°Ń†ŠøŃ˜Ńƒ Š°ŠæŠ»ŠøŠŗŠ°Ń†ŠøŃ˜Š¾Š¼\"] }, \"Skip to main content\": { \"v\": [\"ŠŸŃ€ŠµŃŠŗŠ¾Ń‡Šø на главни ŃŠ°Š“Ń€Š¶Š°Ń˜\"] } } }, { \"l\": \"sv\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"HjƤlp fƶr tangentbordsnavigering\"] }, \"Skip to app navigation\": { \"v\": [\"Hoppa till appnavigeringen\"] }, \"Skip to main content\": { \"v\": [\"Hoppa till huvudinnehĆ„ll\"] } } }, { \"l\": \"tr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klavye ile gezinme yardımı\"] }, \"Skip to app navigation\": { \"v\": [\"Uygulama gezinmesine git\"] }, \"Skip to main content\": { \"v\": [\"Ana iƧeriğe git\"] } } }, { \"l\": \"uk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Допомога Š· Š½Š°Š²Ń–Š³Š°Ń†Ń–Ń”ŃŽ ŠŗŠ»Š°Š²Ń–ŃˆŠ°Š¼Šø\"] }, \"Skip to app navigation\": { \"v\": [\"ŠŸŃ€Š¾ŠæŃƒŃŃ‚ŠøŃ‚Šø Š½Š°Š²Ń–Š³Š°Ń†Ń–ŃŽ по Š·Š°ŃŃ‚Š¾ŃŃƒŠ½ŠŗŠ°Ń…\"] }, \"Skip to main content\": { \"v\": [\"ŠŸŠµŃ€ŠµŠ¹Ń‚Šø Š¾Š“Ń€Š°Š·Ńƒ Го головного Š²Š¼Ń–ŃŃ‚Ńƒ\"] } } }, { \"l\": \"uz\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klaviatura navigatsiyasi yordami\"] }, \"Skip to app navigation\": { \"v\": [\"Ilova navigatsiyasiga oŹ»tish\"] }, \"Skip to main content\": { \"v\": [\"Asosiy tarkibga o'tish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"é”®ē›˜åÆ¼čˆŖę åø®åŠ©\"] }, \"Skip to app navigation\": { \"v\": [\"č·³č½¬č‡³åŗ”ē”ØēØ‹åŗåÆ¼čˆŖé”µ\"] }, \"Skip to main content\": { \"v\": [\"跳转至主要内容\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"éµē›¤å°ŽčˆŖå¹«åŠ©\"] }, \"Skip to app navigation\": { \"v\": [\"č·³č‡³ę‡‰ē”ØēØ‹å¼å°ŽčˆŖ\"] }, \"Skip to main content\": { \"v\": [\"跳至主要內容\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"éµē›¤å°ŽčˆŖčŖŖę˜Ž\"] }, \"Skip to app navigation\": { \"v\": [\"ē•„éŽę‡‰ē”ØēØ‹å¼å°Žč¦½\"] }, \"Skip to main content\": { \"v\": [\"跳至主要內容\"] } } }];\nconst t33 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"KlĆ”vesovĆ© zkratky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturgenveje\"] } } }, { \"l\": \"de\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturkürzel\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturkürzel\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Keyboard shortcuts\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klahvistiku kiirklahvid\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Raccourcis clavier\"] } } }, { \"l\": \"ga\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"AicearraĆ­ mĆ©archlĆ”ir\"] } } }, { \"l\": \"gl\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Atallos de teclado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tipkovnički prečaci\"] } } }, { \"l\": \"hu\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Gyorsbillentyűk\"] } } }, { \"l\": \"id\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Shortcut keyboard\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"ć‚­ćƒ¼ćƒœćƒ¼ćƒ‰ć‚·ćƒ§ćƒ¼ćƒˆć‚«ćƒƒćƒˆ\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"ķ‚¤ė³“ė“œ ė°”ė”œź°€źø°\"] } } }, { \"l\": \"lo\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"ąŗ—ąŗ²ąŗ‡ąŗ„ąŗ±ąŗ”ąŗ„ąŗµąŗšąŗ­ąŗ”\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Spartieji klaviÅ”ai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"ŠšŃ€Š°Ń‚ŠµŠ½ŠŗŠø со Ń‚Š°ŃŃ‚Š°Ń‚ŃƒŃ€Š°\"] } } }, { \"l\": \"mn\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Гарын товчлол\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Toetsenbord sneltoetsen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Atalhos de teclado\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"ŠšŠ¾Š¼Š±ŠøŠ½Š°Ń†ŠøŠø клавиш\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Kortkommandon\"] } } }, { \"l\": \"tr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klavye kısayolları\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klaviatura yorliqlari\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"éµē›¤åæ«é€Ÿéµ\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"éµē›¤åæ«é€Ÿéµ\"] } } }];\nconst t34 = [{ \"l\": \"ar\", \"t\": { 'Load more \"{options}\"': { \"v\": ['ŲŖŲ­Ł…ŁŠŁ„ Ų§Ł„Ł…Ų²ŁŠŲÆ من \"{options}\" '] }, \"Raw link {options}\": { \"v\": [\" الرابط الخام raw link Ł€ {options}\"] }, \"Start typing to search\": { \"v\": [\"Ų„ŲØŲÆŲ„ كتابة مفردات البحث\"] } } }, { \"l\": \"ast\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar mĆ”s Ā«{options}Ā»\"] }, \"Raw link {options}\": { \"v\": [\"Enllaz en bruto {optiones}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir pa buscar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načƭst dalŔí ā€ž{options}ā€œ\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"VyhledĆ”vejte psanĆ­m\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načƭst dalŔí ā€ž{options}ā€œ\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"VyhledĆ”vejte psanĆ­m\"] } } }, { \"l\": \"da\", \"t\": { 'Load more \"{options}\"': { \"v\": ['IndlƦs flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"RĆ„ link {options}\"] }, \"Start typing to search\": { \"v\": [\"Begynd at skrive for at sĆøge\"] } } }, { \"l\": \"de\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"el\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Ī¦ĻŒĻĻ„Ļ‰ĻƒĪ· Ļ€ĪµĻĪ¹ĻƒĻƒĻŒĻ„ĪµĻĻ‰Ī½ \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ī‘ĪŗĪ±Ļ„Ī­ĻĪ³Ī±ĻƒĻ„ĪæĻ‚ ĻƒĻĪ½Ī“ĪµĻƒĪ¼ĪæĻ‚ {options}\"] }, \"Start typing to search\": { \"v\": [\"ĪžĪµĪŗĪ¹Ī½Ī®ĻƒĻ„Īµ να πληκτρολογείτε για Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ·\"] } } }, { \"l\": \"en-GB\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Load more \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start typing to search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar mĆ”s \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar mĆ”s \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir para buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar mĆ”s \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Laadi veel ā€ž{options}ā€œ\"] }, \"Raw link {options}\": { \"v\": [\"Tƶƶtlemata link: {options}\"] }, \"Start typing to search\": { \"v\": [\"Otsimiseks kirjuta midagi\"] } } }, { \"l\": \"eu\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Kargatu \"{options}\" gehiago'] }, \"Raw link {options}\": { \"v\": [\"Formaturik gabeko esteka {aukerak}\"] }, \"Start typing to search\": { \"v\": [\"Hasi idazten bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { 'Load more \"{options}\"': { \"v\": ['بارگذاری بیؓتر \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ł¾ŪŒŁˆŁ†ŲÆ Ų®Ų§Ł… {options}\"] }, \"Start typing to search\": { \"v\": [\"برای جستجو تایپ Ś©Ł†ŪŒŲÆ\"] } } }, { \"l\": \"fi\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Lataa lisƤƤ \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raaka linkki {options}\"] }, \"Start typing to search\": { \"v\": [\"Aloita kirjoittaminen hakeaksesi\"] } } }, { \"l\": \"fr\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Charger d'avantage \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\"Lien brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Commencez Ć  Ć©crire pour rechercher\"] } } }, { \"l\": \"ga\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Luchtaigh tuilleadh \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Nasc amh {roghanna}\"] }, \"Start typing to search\": { \"v\": [\"Tosaigh ag clóscrĆ­obh chun cuardach a dhĆ©anamh\"] } } }, { \"l\": \"gl\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar mĆ”is Ā«{options}Ā»\"] }, \"Raw link {options}\": { \"v\": [\"Ligazón sen procesar {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a escribir para buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Raw link {options}\": { \"v\": [\"קישור גולמי {options}\"] }, \"Start typing to search\": { \"v\": [\"×”×Ŗ×—×œ×Ŗ הקלדה ×ž×—×¤×©×Ŗ\"] } } }, { \"l\": \"hr\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Učitaj joÅ” ā€ž{options}ā€\"] }, \"Raw link {options}\": { \"v\": [\"Izravna poveznica {options}\"] }, \"Start typing to search\": { \"v\": [\"Počnite tipkati za pretraživanje\"] } } }, { \"l\": \"hu\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"TovĆ”bbi ā€ž{options}ā€ betƶltĆ©se\"] }, \"Raw link {options}\": { \"v\": [\"Nyers hivatkozĆ”s: {options}\"] }, \"Start typing to search\": { \"v\": [\"Kezdjen gĆ©pelni a keresĆ©shez\"] } } }, { \"l\": \"id\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Muat \"{options}\" lainnya'] }, \"Raw link {options}\": { \"v\": [\"Tautan mentah {options}\"] }, \"Start typing to search\": { \"v\": [\"Ketik untuk mulai mencari\"] } } }, { \"l\": \"is\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Hlaưa inn fleiri \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"HrĆ”r tengill {options}\"] }, \"Start typing to search\": { \"v\": [\"Byrjaưu aư skrifa til aư leita\"] } } }, { \"l\": \"it\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carica più \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Iniziare a digitare per effettuare la ricerca\"] } } }, { \"l\": \"ja\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"ęœŖåŠ å·„ć®ćƒŖćƒ³ć‚Æ {options}\"] }, \"Start typing to search\": { \"v\": [\"å…„åŠ›ć‚’é–‹å§‹ć—ć¦ę¤œē“¢ć—ć¾ć™\"] } } }, { \"l\": \"ja-JP\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"ęœŖåŠ å·„ć®ćƒŖćƒ³ć‚Æ {options}\"] }, \"Start typing to search\": { \"v\": [\"å…„åŠ›ć‚’é–‹å§‹ć—ć¦ę¤œē“¢ć—ć¾ć™\"] } } }, { \"l\": \"ko\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" ė” 불러오기'] }, \"Raw link {options}\": { \"v\": [\"{options} 원본 링크\"] }, \"Start typing to search\": { \"v\": [\"ģž…ė „ķ•˜ģ—¬ ź²€ģƒ‰\"] } } }, { \"l\": \"lo\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"ໂຫຼດ ā€œ{options}ā€ ą»€ąŗžąŗµą»ˆąŗ”ą»€ąŗ•ąŗµąŗ”\"] }, \"Raw link {options}\": { \"v\": [\"ąŗ„ąŗ“ąŗ‡ąŗ”ąŗ“ąŗš {options}\"] }, \"Start typing to search\": { \"v\": [\"ą»€ąŗ„ąŗµą»ˆąŗ”ąŗžąŗ“ąŗ”ą»€ąŗžąŗ·ą»ˆąŗ­ąŗ„ąŗ»ą»‰ąŗ™ąŗ«ąŗ²\"] } } }, { \"l\": \"lt-LT\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Ä®kelti daugiau \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Neapdorota nuoroda {options}\"] }, \"Start typing to search\": { \"v\": [\"RaÅ”ykite norėdami atlikti paieÅ”ką\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Š’Ń‡ŠøŃ‚Š°Ń˜ повеќе \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Š”ŃƒŃ€Š¾Š² линк {options}\"] }, \"Start typing to search\": { \"v\": [\"ŠŸŠ¾Ń‡Š½Šø Га пишуваш за ŠæŃ€ŠµŠ±Š°Ń€ŃƒŠ²Š°ŃšŠµ\"] } } }, { \"l\": \"mn\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Илүү ихийг ачаалах \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Түүхий холбоос {options}\"] }, \"Start typing to search\": { \"v\": [\"Єайхын Ń‚ŃƒŠ»Š“ бичиж ŃŃ…Š»ŃŠ½Ń ŅÆŅÆ\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Last inn flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"RĆ„ lenke {options}\"] }, \"Start typing to search\": { \"v\": [\"Start Ć„ skrive for Ć„ sĆøke\"] } } }, { \"l\": \"nl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Meer \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Ruwe link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start met typen om te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Załaduj więcej \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Surowy odnośnik {options}\"] }, \"Start typing to search\": { \"v\": [\"Zacznij pisać, aby wyszukać\"] } } }, { \"l\": \"pt-BR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link bruto {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link inicial {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Ǝncarcă mai multe \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Tastați pentru căutare\"] } } }, { \"l\": \"ru\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Š—Š°Š³Ń€ŃƒŠ·ŠøŃ‚ŃŒ больше \"{options}\"\"'] }, \"Raw link {options}\": { \"v\": [\"ŠŠµŠ¾Š±Ń€Š°Š±Š¾Ń‚Š°Š½Š½Š°Ń ссылка {options}\"] }, \"Start typing to search\": { \"v\": [\"ŠŠ°Ń‡Š½ŠøŃ‚Šµ Š²Š²Š¾Š“ŠøŃ‚ŃŒ текст Š“Š»Ń поиска\"] } } }, { \"l\": \"sk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['NačƭtaÅ„ viac \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Začnite pĆ­saÅ„ pre vyhľadĆ”vanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Š£Ń‡ŠøŃ‚Š°Ń˜ још ā€ž{options}ā€\"] }, \"Raw link {options}\": { \"v\": [\"Дирови линк {options}\"] }, \"Start typing to search\": { \"v\": [\"ŠŸŠ¾ŠŗŃ€ŠµŠ½ŠøŃ‚Šµ ŠæŃ€ŠµŃ‚Ń€Š°Š³Ńƒ ŠŗŃƒŃ†Š°ŃšŠµŠ¼\"] } } }, { \"l\": \"sv\", \"t\": { 'Load more \"{options}\"': { \"v\": ['LƤs in fler \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Oformaterad lƤnk {options}\"] }, \"Start typing to search\": { \"v\": [\"Bƶrja skriva fƶr att sƶka\"] } } }, { \"l\": \"tr\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Diğer \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ham bağlantı {options}\"] }, \"Start typing to search\": { \"v\": [\"Aramak iƧin yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Завантажити Š±Ń–Š»ŃŒŃˆŠµ \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"ŠŸŃ€ŃŠ¼Šµ ŠæŠ¾ŃŠøŠ»Š°Š½Š½Ń {options}\"] }, \"Start typing to search\": { \"v\": [\"ŠŸŠ¾Ń‡Š½Ń–Ń‚ŃŒ ввоГити Š“Š»Ń пошуку\"] } } }, { \"l\": \"uz\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Ko'proq yuklash \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\" {options}satr havolasi\"] }, \"Start typing to search\": { \"v\": [\"Qidirish uchun yozishni boshlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"åŠ č½½ę›“å¤š ā€œ{options}ā€\"] }, \"Raw link {options}\": { \"v\": [\"åŽŸå§‹é“¾ęŽ„ {options}\"] }, \"Start typing to search\": { \"v\": [\"å¼€å§‹č¾“å…„ä»„čæ›č”Œęœē“¢\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Load more \"{options}\"': { \"v\": ['č¼‰å…„ę›“å¤š \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"åŽŸå§‹é€£ēµ {options}\"] }, \"Start typing to search\": { \"v\": [\"é–‹å§‹č¼øå…„ä»„é€²č”Œęœå°‹\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"č¼‰å…„ę›“å¤šć€Œ{options}怍\"] }, \"Raw link {options}\": { \"v\": [\"åŽŸå§‹é€£ēµ {options}\"] }, \"Start typing to search\": { \"v\": [\"é–‹å§‹č¼øå…„ä»„é€²č”Œęœå°‹\"] } } }];\nconst t35 = [{ \"l\": \"ar\", \"t\": { \"Loading …\": { \"v\": [\"Ų§Ł„ŲŖŲ­Ł…ŁŠŁ„ Ų¬Ų§Ų±Ł ...\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Loading …\": { \"v\": [\"NačƭtĆ”ní …\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Loading …\": { \"v\": [\"IndlƦser ...\"] } } }, { \"l\": \"de\", \"t\": { \"Loading …\": { \"v\": [\"Wird geladen …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Loading …\": { \"v\": [\"Wird geladen …\"] } } }, { \"l\": \"el\", \"t\": { \"Loading …\": { \"v\": [\"Ī¦ĻŒĻĻ„Ļ‰ĻƒĪ·  …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Loading …\": { \"v\": [\"Loading …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Loading …\": { \"v\": [\"Laadin…\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Loading …\": { \"v\": [\"ŲÆŲ± Ų­Ų§Ł„ بارگذاری ...\"] } } }, { \"l\": \"fi\", \"t\": { \"Loading …\": { \"v\": [\"Ladataan ...\"] } } }, { \"l\": \"fr\", \"t\": { \"Loading …\": { \"v\": [\"Chargement...\"] } } }, { \"l\": \"ga\", \"t\": { \"Loading …\": { \"v\": [\"Ag lódĆ”il …\"] } } }, { \"l\": \"gl\", \"t\": { \"Loading …\": { \"v\": [\"Cargando…\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Loading …\": { \"v\": [\"Učitavanje …\"] } } }, { \"l\": \"hu\", \"t\": { \"Loading …\": { \"v\": [\"BetƶltĆ©s…\"] } } }, { \"l\": \"id\", \"t\": { \"Loading …\": { \"v\": [\"Memuat …\"] } } }, { \"l\": \"is\", \"t\": { \"Loading …\": { \"v\": [\"Hleư inn …\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Loading …\": { \"v\": [\"読み込み中 …\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Loading …\": { \"v\": [\"ė”œė”© 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Loading …\": { \"v\": [\"ກຳຄັງໂຫຼດ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Loading …\": { \"v\": [\"Ä®keliama …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Loading …\": { \"v\": [\"Š’Ń‡ŠøŃ‚ŃƒŠ²Š°ŃšŠµĀ ā€¦\"] } } }, { \"l\": \"mn\", \"t\": { \"Loading …\": { \"v\": [\"Ачаалж байна …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Loading …\": { \"v\": [\"Laster inn...\"] } } }, { \"l\": \"nl\", \"t\": { \"Loading …\": { \"v\": [\"Laden …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Loading …\": { \"v\": [\"Wczytywanie…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Loading …\": { \"v\": [\"Carregando …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Loading …\": { \"v\": [\"A carregar...\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Loading …\": { \"v\": [\"Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°Ā ā€¦\"] } } }, { \"l\": \"sk\", \"t\": { \"Loading …\": { \"v\": [\"NahrĆ”vam ...\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Loading …\": { \"v\": [\"Учитава се…\"] } } }, { \"l\": \"sv\", \"t\": { \"Loading …\": { \"v\": [\"LƤser in …\"] } } }, { \"l\": \"tr\", \"t\": { \"Loading …\": { \"v\": [\"Yükleniyor…\"] } } }, { \"l\": \"uk\", \"t\": { \"Loading …\": { \"v\": [\"Š—Š°Š²Š°Š½Ń‚Š°Š¶ŠµŠ½Š½ŃĀ ā€¦\"] } } }, { \"l\": \"uz\", \"t\": { \"Loading …\": { \"v\": [\"Yuklanmoqda...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Loading …\": { \"v\": [\"加载中...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Loading …\": { \"v\": [\"åŠ č¼‰äø­Ā ā€¦\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Loading …\": { \"v\": [\"載兄中......\"] } } }];\nconst t36 = [{ \"l\": \"ar\", \"t\": { \"No link provider found\": { \"v\": [\"لا يوجد Ų£ŁŠŁ‘ Ł…Ų²ŁˆŲÆ روابط link provider\"] }, \"Write a message …\": { \"v\": [\"أكتب رسالة ...\"] } } }, { \"l\": \"ast\", \"t\": { \"No link provider found\": { \"v\": [\"Nun s'atopó nengĆŗn fornidor d'enllaces\"] }, \"Write a message …\": { \"v\": [\"Escribi un mensaxe…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Dosaženo limitu počtu %n znaku zprĆ”vy\", \"Dosaženo limitu počtu %n znakÅÆ zprĆ”vy\", \"Dosaženo limitu počtu %n znakÅÆ zprĆ”vy\", \"Dosaženo limitu počtu %n znakÅÆ zprĆ”vy\"] }, \"No link provider found\": { \"v\": [\"Nenalezen žÔdný poskytovatel odkazÅÆ\"] }, \"Write a message …\": { \"v\": [\"NapiÅ”te zprĆ”vu …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No link provider found\": { \"v\": [\"Nenalezen žÔdný poskytovatel odkazÅÆ\"] }, \"Write a message …\": { \"v\": [\"Napsat zprĆ”vu…\"] } } }, { \"l\": \"da\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"BeskedgrƦnsen pĆ„ %n tegn er nĆ„et\", \"BeskedgrƦnsen pĆ„ %n tegn er nĆ„et\"] }, \"No link provider found\": { \"v\": [\"Ingen linkudbyder fundet\"] }, \"Write a message …\": { \"v\": [\"Skriv en besked ...\"] } } }, { \"l\": \"de\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"el\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"ĪˆĻ†Ļ„Ī±ĻƒĪµ το όριο Ī¼Ī·Ī½ĻĪ¼Ī±Ļ„ĪæĻ‚ των %n χαρακτήρων\", \"ĪˆĻ†Ļ„Ī±ĻƒĪµ το όριο Ī¼Ī·Ī½ĻĪ¼Ī±Ļ„ĪæĻ‚ των %n χαρακτήρων\"] }, \"No link provider found\": { \"v\": [\"Δεν βρέθηκε πάροχος ĻƒĻ…Ī½Ī“Ī­ĻƒĪ¼ĪæĻ…\"] }, \"Write a message …\": { \"v\": [\"Ī“ĻĪ¬ĻˆĻ„Īµ ένα μήνυμα …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Message limit of %n character reached\", \"Message limit of %n characters reached\"] }, \"No link provider found\": { \"v\": [\"No link provider found\"] }, \"Write a message …\": { \"v\": [\"Write a message …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningĆŗn proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningĆŗn proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningĆŗn proveedor de enlaces\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningĆŗn proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"SƵnumi piirarv %n tƤhemƤrk on kƤes\", \"SƵnumi piirarv %n tƤhemƤrki on kƤes\"] }, \"No link provider found\": { \"v\": [\"Lingi pakkujat ei leitud\"] }, \"Write a message …\": { \"v\": [\"Koosta sƵnum…\"] } } }, { \"l\": \"eu\", \"t\": { \"No link provider found\": { \"v\": [\"Ez da aurkitu esteka-hornitzailerik\"] }, \"Write a message …\": { \"v\": [\"Idatzi mezu bat…\"] } } }, { \"l\": \"fa\", \"t\": { \"No link provider found\": { \"v\": [\"Ł‡ŪŒŚ† Ų§Ų±Ų§Ų¦Ł‡ā€ŒŲÆŁ‡Ł†ŲÆŁ‡ Ł¾ŪŒŁˆŁ†ŲÆŪŒ یافت نؓد\"] }, \"Write a message …\": { \"v\": [\"یک Ł¾ŪŒŲ§Ł… ŲØŁ†ŁˆŪŒŲ³ŪŒŲÆ ...\"] } } }, { \"l\": \"fi\", \"t\": { \"No link provider found\": { \"v\": [\"Linkin tarjoajia ei lƶydetty\"] }, \"Write a message …\": { \"v\": [\"Kirjoita viesti…\"] } } }, { \"l\": \"fr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de messages de %n caractĆØre atteinte\", \"Limite de messages de %n caractĆØres atteinte\", \"Limite de messages de %n caractĆØres atteinte\"] }, \"No link provider found\": { \"v\": [\"Aucun fournisseur de lien trouvĆ©\"] }, \"Write a message …\": { \"v\": [\"Ɖcrire un message…\"] } } }, { \"l\": \"ga\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\"] }, \"No link provider found\": { \"v\": [\"NĆ­or aimsĆ­odh aon solĆ”thraĆ­ naisc\"] }, \"Write a message …\": { \"v\": [\"ScrĆ­obh teachtaireacht …\"] } } }, { \"l\": \"gl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Acadouse o lĆ­mite de %n caracter por mensaxe\", \"Acadouse o lĆ­mite de %n caracteres por mensaxe\"] }, \"No link provider found\": { \"v\": [\"Non se atopou ningĆŗn provedor de ligazóns\"] }, \"Write a message …\": { \"v\": [\"Escribir unha mensaxe…\"] } } }, { \"l\": \"he\", \"t\": { \"No link provider found\": { \"v\": [\"לא נמצא הפק ×§×™×©×•×Ø×™×\"] } } }, { \"l\": \"hr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Dosegnuto je ograničenje poruke od %n znaka\", \"Dosegnuto je ograničenje poruke od %n znaka\", \"Dosegnuto je ograničenje poruke od %n znakova\"] }, \"No link provider found\": { \"v\": [\"Nije pronađen nijedan pružatelj poveznica\"] }, \"Write a message …\": { \"v\": [\"NapiÅ”i poruku …\"] } } }, { \"l\": \"hu\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"%n karakteres üzenetkorlĆ”t elĆ©rve\", \"%n karakteres üzenetkorlĆ”t elĆ©rve\"] }, \"No link provider found\": { \"v\": [\"Nem talĆ”lható hivatkozĆ”sszolgĆ”ltató\"] }, \"Write a message …\": { \"v\": [\"ƍrjon egy üzenetet…\"] } } }, { \"l\": \"id\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Batas pesan %n karakter telah tercapai\"] }, \"No link provider found\": { \"v\": [\"Tidak ada penyedia tautan yang ditemukan\"] }, \"Write a message …\": { \"v\": [\"Tulis pesan …\"] } } }, { \"l\": \"is\", \"t\": { \"No link provider found\": { \"v\": [\"Engin tenglaveita fannst\"] }, \"Write a message …\": { \"v\": [\"Skrifaưu skilaboð …\"] } } }, { \"l\": \"it\", \"t\": { \"No link provider found\": { \"v\": [\"Nessun fornitore di link trovato\"] }, \"Write a message …\": { \"v\": [\"Scrivi un messaggio ...\"] } } }, { \"l\": \"ja\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"ćƒ”ćƒƒć‚»ćƒ¼ć‚øć®%nę–‡å­—ć®åˆ¶é™ć«é”ć—ć¾ć—ćŸ\"] }, \"No link provider found\": { \"v\": [\"ćƒŖćƒ³ć‚Æćƒ—ćƒ­ćƒć‚¤ćƒ€ćƒ¼ćŒč¦‹ć¤ć‹ć‚Šć¾ć›ć‚“\"] }, \"Write a message …\": { \"v\": [\"ćƒ”ćƒƒć‚»ćƒ¼ć‚øć‚’ę›øć ...\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No link provider found\": { \"v\": [\"ćƒŖćƒ³ć‚Æćƒ—ćƒ­ćƒć‚¤ćƒ€ćƒ¼ćŒč¦‹ć¤ć‹ć‚Šć¾ć›ć‚“\"] }, \"Write a message …\": { \"v\": [\"ćƒ”ćƒƒć‚»ćƒ¼ć‚øć‚’ę›øć ...\"] } } }, { \"l\": \"ko\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"ė©”ģ‹œģ§€ ģ œķ•œ %nģžģ— ė„ė‹¬\"] }, \"No link provider found\": { \"v\": [\"링크 ģ œź³µģž ģ—†ģŒ\"] }, \"Write a message …\": { \"v\": [\"ė©”ģ‹œģ§€ ģ“°ėŠ” 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"ąŗ®ąŗ­ąŗ”ąŗ‚ąŗµąŗ”ąŗˆąŗ³ąŗąŗ±ąŗ”ąŗ‚ą»ą»‰ąŗ„ąŗ§ąŗ²ąŗ” %n ໂຕອັກສອນແຄ້ວ\"] }, \"No link provider found\": { \"v\": [\"ąŗšą»ą»ˆąŗžąŗ»ąŗšąŗœąŗ¹ą»‰ą»ƒąŗ«ą»‰ąŗšą»ąŗ„ąŗ“ąŗąŗ²ąŗ™ąŗ„ąŗ“ąŗ‡\"] }, \"Write a message …\": { \"v\": [\"ąŗ‚ąŗ½ąŗ™ąŗ‚ą»ą»‰ąŗ„ąŗ§ąŗ²ąŗ”ā€¦\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Pasiektas %n praneÅ”imo simbolio skaičiaus limitas\", \"Pasiektas %n praneÅ”imų simbolių skaičiaus limitas\", \"Pasiektas %n praneÅ”imo simbolių skaičių limitas\", \"Pasiektas %n praneÅ”imo simbolių skaičių limitas\"] }, \"No link provider found\": { \"v\": [\"Nerasta nuorodų teikėjo\"] }, \"Write a message …\": { \"v\": [\"RaÅ”yti žinutę  …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнат е лимит оГ %n карактер\", \"Достигнат е лимит оГ %n карактери за порака\"] }, \"No link provider found\": { \"v\": [\"ŠŠµ е ŠæŃ€Š¾Š½Š°Ń˜Š“ен Гавател на линк\"] }, \"Write a message …\": { \"v\": [\"ŠŠ°ŠæŠøŃˆŠø порака …\"] } } }, { \"l\": \"mn\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"%n Ń‚ŃŠ¼Š“ŃŠ³Ń‚ŠøŠ¹Š½ Š·ŃƒŃ€Š²Š°ŃŃ‹Š½ Ń…ŃŠ·Š³Š°Š°Ń€Ń‚ Ń…ŅÆŃ€Š»ŃŃ\", \"%n Ń‚ŃŠ¼Š“ŃŠ³Ń‚ŠøŠ¹Š½ Š·ŃƒŃ€Š²Š°ŃŃ‹Š½ Ń…ŃŠ·Š³Š°Š°Ń€Ń‚ Ń…ŅÆŃ€Š»ŃŃ\"] }, \"No link provider found\": { \"v\": [\"Єолбоосын ŅÆŠ¹Š»Ń‡ŠøŠ»Š³ŃŃ ŅÆŠ·ŅÆŅÆŠ»ŃŠ³Ń‡ олГсонгүй\"] }, \"Write a message …\": { \"v\": [\"Š—ŃƒŃ€Š²Š°Ń бичих …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"No link provider found\": { \"v\": [\"Finner ingen lenkeleverandĆør\"] }, \"Write a message …\": { \"v\": [\"Skriv en melding...\"] } } }, { \"l\": \"nl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Berichtlimiet van %n teken bereikt\", \"Berichtlimiet van %n tekens bereikt\"] }, \"No link provider found\": { \"v\": [\"Geen link provider gevonden\"] }, \"Write a message …\": { \"v\": [\"Schrijf een bericht …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No link provider found\": { \"v\": [\"Nie znaleziono dostawcy linków\"] }, \"Write a message …\": { \"v\": [\"Napisz wiadomość…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n caractere atingido\", \"Limite de mensagem de %n de caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum provedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n carĆ”cter atingido\", \"Limite de mensagem de %n caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum fornecedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem...\"] } } }, { \"l\": \"ro\", \"t\": { \"No link provider found\": { \"v\": [\"Nu s-a găsit un provider pentru linkuri\"] }, \"Write a message …\": { \"v\": [\"Scrieți un mesaj ...\"] } } }, { \"l\": \"ru\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Š”Š¾ŃŃ‚ŠøŠ³Š½ŃƒŃ‚ лимит в %n символ\", \"Š”Š¾ŃŃ‚ŠøŠ³Š½ŃƒŃ‚ лимит в %n символа\", \"Š”Š¾ŃŃ‚ŠøŠ³Š½ŃƒŃ‚ лимит в %n символов\", \"Š”Š¾ŃŃ‚ŠøŠ³Š½ŃƒŃ‚ лимит в %n символов\"] }, \"No link provider found\": { \"v\": [\"ŠŸŠ¾ŃŃ‚Š°Š²Ń‰ŠøŠŗ ссылок не найГен\"] }, \"Write a message …\": { \"v\": [\"ŠŠ°ŠæŠøŃˆŠøŃ‚Šµ сообщение …\"] } } }, { \"l\": \"sk\", \"t\": { \"No link provider found\": { \"v\": [\"Žiaden odkaz poskytovateľa nebol nĆ”jdený\"] }, \"Write a message …\": { \"v\": [\"NapĆ­Å”te sprĆ”vu…\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Š”Š¾ŃŃ‚ŠøŠ³Š½ŃƒŃ‚Š¾ је Š¾Š³Ń€Š°Š½ŠøŃ‡ŠµŃšŠµ величине ŠæŠ¾Ń€ŃƒŠŗŠµ оГ %n карактер\", \"Š”Š¾ŃŃ‚ŠøŠ³Š½ŃƒŃ‚Š¾ је Š¾Š³Ń€Š°Š½ŠøŃ‡ŠµŃšŠµ величине ŠæŠ¾Ń€ŃƒŠŗŠµ оГ %n карактера\", \"Š”Š¾ŃŃ‚ŠøŠ³Š½ŃƒŃ‚Š¾ је Š¾Š³Ń€Š°Š½ŠøŃ‡ŠµŃšŠµ величине ŠæŠ¾Ń€ŃƒŠŗŠµ оГ %n карактера\"] }, \"No link provider found\": { \"v\": [\"ŠŠøŃ˜Šµ пронађен нијеГан ŠæŃ€ŃƒŠ¶Š°Š»Š°Ń† линка\"] }, \"Write a message …\": { \"v\": [\"ŠŠ°ŠæŠøŃˆŠøŃ‚Šµ ŠæŠ¾Ń€ŃƒŠŗŃƒā€¦\"] } } }, { \"l\": \"sv\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Meddelandets grƤns pĆ„ %n tecken har nĆ„tts\", \"Meddelandets grƤns pĆ„ %n tecken har nĆ„tts\"] }, \"No link provider found\": { \"v\": [\"Ingen lƤnkleverantƶr hittades\"] }, \"Write a message …\": { \"v\": [\"Skriv ett meddelande …\"] } } }, { \"l\": \"tr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"İleti iƧin %n karakter sayısı sınırına ulaşıldı\", \"İleti iƧin %n karakter sayısı sınırına ulaşıldı\"] }, \"No link provider found\": { \"v\": [\"Bağlantı hizmeti sağlayıcısı bulunamadı\"] }, \"Write a message …\": { \"v\": [\"Bir ileti yazın…\"] } } }, { \"l\": \"uk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Š”Š¾ŃŃŠ³Š½ŃƒŃ‚Š¾ Š¾Š±Š¼ŠµŠ¶ŠµŠ½Š½Ń на Говжину ŠæŠ¾Š²Ń–Š“Š¾Š¼Š»ŠµŠ½Š½Ń у %n символ.\", \"Š”Š¾ŃŃŠ³Š½ŃƒŃ‚Š¾ Š¾Š±Š¼ŠµŠ¶ŠµŠ½Š½Ń на Говжину ŠæŠ¾Š²Ń–Š“Š¾Š¼Š»ŠµŠ½Š½Ń у %n символи.\", \"Š”Š¾ŃŃŠ³Š½ŃƒŃ‚Š¾ Š¾Š±Š¼ŠµŠ¶ŠµŠ½Š½Ń на Говжину ŠæŠ¾Š²Ń–Š“Š¾Š¼Š»ŠµŠ½Š½Ń у%n символів.\", \"Š”Š¾ŃŃŠ³Š½ŃƒŃ‚Š¾ Š¾Š±Š¼ŠµŠ¶ŠµŠ½Š½Ń на Говжину ŠæŠ¾Š²Ń–Š“Š¾Š¼Š»ŠµŠ½Š½Ń у %n символів.\"] }, \"No link provider found\": { \"v\": [\"ŠŠµ навеГено ŠæŠ¾ŃŠøŠ»Š°Š½Š½Ń\"] }, \"Write a message …\": { \"v\": [\"Дтворити ŠæŠ¾Š²Ń–Š“Š¾Š¼Š»ŠµŠ½Š½ŃĀ ā€¦\"] } } }, { \"l\": \"uz\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\" %n ta belgidan iborat xabar chegarasiga yetdi\"] }, \"No link provider found\": { \"v\": [\"Hech qanday havola provayderi topilmadi\"] }, \"Write a message …\": { \"v\": [\"Xabar yozish...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No link provider found\": { \"v\": [\"ęœŖę‰¾åˆ°ä»»ä½•é“¾ęŽ„ęä¾›č€…\"] }, \"Write a message …\": { \"v\": [\"编写俔息 ...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"å·²é”åˆ°čØŠęÆęœ€å¤š %n 字元限制\"] }, \"No link provider found\": { \"v\": [\"ę‰¾äøåˆ°é€£ēµęä¾›č€…\"] }, \"Write a message …\": { \"v\": [\"ē·ØåÆ«čØŠęÆĀ ā€¦\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"å·²é”åˆ°čØŠęÆęœ€å¤š %n 字元限制\"] }, \"No link provider found\": { \"v\": [\"ę‰¾äøåˆ°é€£ēµęä¾›č€…\"] }, \"Write a message …\": { \"v\": [\"ē·ØåÆ«čØŠęÆā€¦ā€¦\"] } } }];\nconst t37 = [{ \"l\": \"ar\", \"t\": { \"More items …\": { \"v\": [\"عناصر أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"More items …\": { \"v\": [\"MĆ”s elementos…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"More items …\": { \"v\": [\"MĆ©s artĆ­cles...\"] } } }, { \"l\": \"cs\", \"t\": { \"More items …\": { \"v\": [\"DalŔí položky …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"More items …\": { \"v\": [\"DalŔí položky…\"] } } }, { \"l\": \"da\", \"t\": { \"More items …\": { \"v\": [\"Flere elementer ...\"] } } }, { \"l\": \"de\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"el\", \"t\": { \"More items …\": { \"v\": [\"Ī ĪµĻĪ¹ĻƒĻƒĻŒĻ„ĪµĻĪ± ĻƒĻ„ĪæĪ¹Ļ‡ĪµĪÆĪ±Ā ā€¦\"] } } }, { \"l\": \"en-GB\", \"t\": { \"More items …\": { \"v\": [\"More items …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"More items …\": { \"v\": [\"MĆ”s Ć­tems ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"More items …\": { \"v\": [\"MĆ”s elementos...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"More items …\": { \"v\": [\"MĆ”s elementos...\"] } } }, { \"l\": \"es-MX\", \"t\": { \"More items …\": { \"v\": [\"MĆ”s Elementos ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"More items …\": { \"v\": [\"Vaata veel…\"] } } }, { \"l\": \"eu\", \"t\": { \"More items …\": { \"v\": [\"Elementu gehiago …\"] } } }, { \"l\": \"fa\", \"t\": { \"More items …\": { \"v\": [\"Ł…ŁˆŲ§Ų±ŲÆ بیؓتر ...\"] } } }, { \"l\": \"fi\", \"t\": { \"More items …\": { \"v\": [\"LisƤƤ kohteita…\"] } } }, { \"l\": \"fr\", \"t\": { \"More items …\": { \"v\": [\"Plus d'Ć©lĆ©ments...\"] } } }, { \"l\": \"ga\", \"t\": { \"More items …\": { \"v\": [\"Tuilleadh mĆ­reanna …\"] } } }, { \"l\": \"gl\", \"t\": { \"More items …\": { \"v\": [\"MĆ”is elementos…\"] } } }, { \"l\": \"he\", \"t\": { \"More items …\": { \"v\": [\"×¤×Ø×™×˜×™× × ×•×”×¤×™×ā€¦\"] } } }, { \"l\": \"hr\", \"t\": { \"More items …\": { \"v\": [\"JoÅ” stavki …\"] } } }, { \"l\": \"hu\", \"t\": { \"More items …\": { \"v\": [\"TovĆ”bbi elemek…\"] } } }, { \"l\": \"id\", \"t\": { \"More items …\": { \"v\": [\"Item lainnya …\"] } } }, { \"l\": \"is\", \"t\": { \"More items …\": { \"v\": [\"Fleiri atriưi …\"] } } }, { \"l\": \"it\", \"t\": { \"More items …\": { \"v\": [\"Più elementi ...\"] } } }, { \"l\": \"ja\", \"t\": { \"More items …\": { \"v\": [\"ä»–ć®ć‚¢ć‚¤ćƒ†ćƒ ć€€ā€¦\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"More items …\": { \"v\": [\"ä»–ć®ć‚¢ć‚¤ćƒ†ćƒ \"] } } }, { \"l\": \"ko\", \"t\": { \"More items …\": { \"v\": [\"ė” ė§Žģ€ ģ•„ģ“ķ…œ ...\"] } } }, { \"l\": \"lo\", \"t\": { \"More items …\": { \"v\": [\"ąŗ„ąŗ²ąŗąŗąŗ²ąŗ™ą»€ąŗžąŗµą»ˆąŗ”ą»€ąŗ•ąŗµąŗ”ā€¦\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"More items …\": { \"v\": [\"Daugiau elementų …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"More items …\": { \"v\": [\"Повеќе елементи …\"] } } }, { \"l\": \"mn\", \"t\": { \"More items …\": { \"v\": [\"Илүү олон зүйлс …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"More items …\": { \"v\": [\"Flere gjenstander...\"] } } }, { \"l\": \"nl\", \"t\": { \"More items …\": { \"v\": [\"Meer items …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"More items …\": { \"v\": [\"Więcej pozycji…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"More items …\": { \"v\": [\"Mais itens …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"More items …\": { \"v\": [\"Mais itens…\"] } } }, { \"l\": \"ro\", \"t\": { \"More items …\": { \"v\": [\"Mai multe articole ...\"] } } }, { \"l\": \"ru\", \"t\": { \"More items …\": { \"v\": [\"Š‘Š¾Š»ŃŒŃˆŠµ ŃŠ»ŠµŠ¼ŠµŠ½Ń‚Š¾Š²Ā ā€¦\"] } } }, { \"l\": \"sk\", \"t\": { \"More items …\": { \"v\": [\"Viac položiek...\"] } } }, { \"l\": \"sl\", \"t\": { \"More items …\": { \"v\": [\"Več predmetov ...\"] } } }, { \"l\": \"sr\", \"t\": { \"More items …\": { \"v\": [\"Још ставки...\"] } } }, { \"l\": \"sv\", \"t\": { \"More items …\": { \"v\": [\"Fler objekt …\"] } } }, { \"l\": \"tr\", \"t\": { \"More items …\": { \"v\": [\"Diğer ƶgeler…\"] } } }, { \"l\": \"uk\", \"t\": { \"More items …\": { \"v\": [\"Š‘Ń–Š»ŃŒŃˆŠµĀ ā€¦\"] } } }, { \"l\": \"uz\", \"t\": { \"More items …\": { \"v\": [\"Yana elementlar...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"More items …\": { \"v\": [\"ę›“å¤šé”¹ē›®ā€¦\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"More items …\": { \"v\": [\"ę›“å¤šé …ē›®Ā ā€¦\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"More items …\": { \"v\": [\"ę›“å¤šé …ē›®ā€¦ā€¦\"] } } }];\nconst t38 = [{ \"l\": \"ar\", \"t\": { \"Next\": { \"v\": [\"Ų§Ł„ŲŖŲ§Ł„ŁŠ\"] }, \"Pause slideshow\": { \"v\": [\"ŲŖŲ¬Ł…ŁŠŲÆ Ų¹Ų±Ų¶ الؓرائح\"] }, \"Previous\": { \"v\": [\"السابق\"] }, \"Start slideshow\": { \"v\": [\"Ų„ŲØŲÆŲ„ العرض\"] } } }, { \"l\": \"ast\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Posar la presentación de diapositives\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Aniciar la presentación de diapositives\"] } } }, { \"l\": \"br\", \"t\": { \"Next\": { \"v\": [\"Da heul\"] }, \"Pause slideshow\": { \"v\": [\"Arsav an diaporama\"] }, \"Previous\": { \"v\": [\"A-raok\"] }, \"Start slideshow\": { \"v\": [\"KregiƱ an diaporama\"] } } }, { \"l\": \"ca\", \"t\": { \"Next\": { \"v\": [\"Següent\"] }, \"Pause slideshow\": { \"v\": [\"Atura la presentació\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Inicia la presentació\"] } } }, { \"l\": \"cs\", \"t\": { \"Next\": { \"v\": [\"NĆ”sledujĆ­cĆ­\"] }, \"Pause slideshow\": { \"v\": [\"Pozastavit prezentaci\"] }, \"Previous\": { \"v\": [\"PředchozĆ­\"] }, \"Start slideshow\": { \"v\": [\"Spustit prezentaci\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Next\": { \"v\": [\"NĆ”sledujĆ­cĆ­\"] }, \"Pause slideshow\": { \"v\": [\"Pozastavit prezentaci\"] }, \"Previous\": { \"v\": [\"PředchozĆ­\"] }, \"Start slideshow\": { \"v\": [\"Spustit prezentaci\"] } } }, { \"l\": \"da\", \"t\": { \"Next\": { \"v\": [\"Videre\"] }, \"Pause slideshow\": { \"v\": [\"Suspender fremvisning\"] }, \"Previous\": { \"v\": [\"Forrige\"] }, \"Start slideshow\": { \"v\": [\"Start fremvisning\"] } } }, { \"l\": \"de\", \"t\": { \"Next\": { \"v\": [\"Weiter\"] }, \"Pause slideshow\": { \"v\": [\"Diashow pausieren\"] }, \"Previous\": { \"v\": [\"Vorherige\"] }, \"Start slideshow\": { \"v\": [\"Diashow starten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Next\": { \"v\": [\"Weiter\"] }, \"Pause slideshow\": { \"v\": [\"Diashow pausieren\"] }, \"Previous\": { \"v\": [\"Vorherige\"] }, \"Start slideshow\": { \"v\": [\"Diashow starten\"] } } }, { \"l\": \"el\", \"t\": { \"Next\": { \"v\": [\"Ī•Ļ€ĻŒĪ¼ĪµĪ½Īæ\"] }, \"Pause slideshow\": { \"v\": [\"Ī Ī±ĻĻƒĪ· προβολής Ī“Ī¹Ī±Ļ†Ī±Ī½ĪµĪ¹ĻŽĪ½\"] }, \"Previous\": { \"v\": [\"Ī ĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Īæ\"] }, \"Start slideshow\": { \"v\": [\"Έναρξη προβολής Ī“Ī¹Ī±Ļ†Ī±Ī½ĪµĪ¹ĻŽĪ½\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Next\": { \"v\": [\"Next\"] }, \"Pause slideshow\": { \"v\": [\"Pause slideshow\"] }, \"Previous\": { \"v\": [\"Previous\"] }, \"Start slideshow\": { \"v\": [\"Start slideshow\"] } } }, { \"l\": \"eo\", \"t\": { \"Next\": { \"v\": [\"Sekva\"] }, \"Pause slideshow\": { \"v\": [\"Payzi bildprezenton\"] }, \"Previous\": { \"v\": [\"AntaÅ­a\"] }, \"Start slideshow\": { \"v\": [\"Komenci bildprezenton\"] } } }, { \"l\": \"es\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar la presentación \"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar la presentación\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar la presentación \"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar la presentación\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar presentación de diapositivas\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar presentación de diapositivas\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar presentación de diapositivas\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar presentación de diapositivas\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Next\": { \"v\": [\"Edasi\"] }, \"Pause slideshow\": { \"v\": [\"Slaidiesitluse paus\"] }, \"Previous\": { \"v\": [\"Eelmine\"] }, \"Start slideshow\": { \"v\": [\"Alusta slaidiesitust\"] } } }, { \"l\": \"eu\", \"t\": { \"Next\": { \"v\": [\"Hurrengoa\"] }, \"Pause slideshow\": { \"v\": [\"Pausatu diaporama\"] }, \"Previous\": { \"v\": [\"Aurrekoa\"] }, \"Start slideshow\": { \"v\": [\"Hasi diaporama\"] } } }, { \"l\": \"fa\", \"t\": { \"Next\": { \"v\": [\"بعدی\"] }, \"Pause slideshow\": { \"v\": [\"ŲŖŁˆŁ‚Ł Ł†Ł…Ų§ŪŒŲ“ Ų§Ų³Ł„Ų§ŪŒŲÆ\"] }, \"Previous\": { \"v\": [\"Ł‚ŲØŁ„ŪŒ\"] }, \"Start slideshow\": { \"v\": [\"ؓروع Ł†Ł…Ų§ŪŒŲ“ Ų§Ų³Ł„Ų§ŪŒŲÆ\"] } } }, { \"l\": \"fi\", \"t\": { \"Next\": { \"v\": [\"Seuraava\"] }, \"Pause slideshow\": { \"v\": [\"KeskeytƤ diaesitys\"] }, \"Previous\": { \"v\": [\"Edellinen\"] }, \"Start slideshow\": { \"v\": [\"Aloita diaesitys\"] } } }, { \"l\": \"fr\", \"t\": { \"Next\": { \"v\": [\"Suivant\"] }, \"Pause slideshow\": { \"v\": [\"Mettre le diaporama en pause\"] }, \"Previous\": { \"v\": [\"PrĆ©cĆ©dent\"] }, \"Start slideshow\": { \"v\": [\"DĆ©marrer le diaporama\"] } } }, { \"l\": \"ga\", \"t\": { \"Next\": { \"v\": [\"Ar aghaidh\"] }, \"Pause slideshow\": { \"v\": [\"Cuir taispeĆ”ntas sleamhnĆ”n ar sos\"] }, \"Previous\": { \"v\": [\"Roimhe Seo\"] }, \"Start slideshow\": { \"v\": [\"Tosaigh taispeĆ”ntas sleamhnĆ”n\"] } } }, { \"l\": \"gl\", \"t\": { \"Next\": { \"v\": [\"Seguinte\"] }, \"Pause slideshow\": { \"v\": [\"Pausar o diaporama\"] }, \"Previous\": { \"v\": [\"Anterir\"] }, \"Start slideshow\": { \"v\": [\"Iniciar o diaporama\"] } } }, { \"l\": \"he\", \"t\": { \"Next\": { \"v\": [\"הבא\"] }, \"Pause slideshow\": { \"v\": [\"השהיית ×ž×¦×’×Ŗ\"] }, \"Previous\": { \"v\": [\"הקודם\"] }, \"Start slideshow\": { \"v\": [\"×”×Ŗ×—×œ×Ŗ ×”×ž×¦×’×Ŗ\"] } } }, { \"l\": \"hr\", \"t\": { \"Next\": { \"v\": [\"Sljedeće\"] }, \"Pause slideshow\": { \"v\": [\"Pauziraj dijaprojekciju\"] }, \"Previous\": { \"v\": [\"Prethodno\"] }, \"Start slideshow\": { \"v\": [\"Pokreni dijaprojekciju\"] } } }, { \"l\": \"hu\", \"t\": { \"Next\": { \"v\": [\"Kƶvetkező\"] }, \"Pause slideshow\": { \"v\": [\"DiavetĆ­tĆ©s szüneteltetĆ©se\"] }, \"Previous\": { \"v\": [\"Előző\"] }, \"Start slideshow\": { \"v\": [\"DiavetĆ­tĆ©s indĆ­tĆ”sa\"] } } }, { \"l\": \"id\", \"t\": { \"Next\": { \"v\": [\"Selanjutnya\"] }, \"Pause slideshow\": { \"v\": [\"Jeda tayangan slide\"] }, \"Previous\": { \"v\": [\"Sebelumnya\"] }, \"Start slideshow\": { \"v\": [\"Mulai salindia\"] } } }, { \"l\": \"is\", \"t\": { \"Next\": { \"v\": [\"NƦsta\"] }, \"Pause slideshow\": { \"v\": [\"Gera hlĆ© Ć” skyggnusýningu\"] }, \"Previous\": { \"v\": [\"Fyrri\"] }, \"Start slideshow\": { \"v\": [\"Byrja skyggnusýningu\"] } } }, { \"l\": \"it\", \"t\": { \"Next\": { \"v\": [\"Successivo\"] }, \"Pause slideshow\": { \"v\": [\"Presentazione in pausa\"] }, \"Previous\": { \"v\": [\"Precedente\"] }, \"Start slideshow\": { \"v\": [\"Avvia presentazione\"] } } }, { \"l\": \"ja\", \"t\": { \"Next\": { \"v\": [\"ꬔ\"] }, \"Pause slideshow\": { \"v\": [\"ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’äø€ę™‚åœę­¢\"] }, \"Previous\": { \"v\": [\"前\"] }, \"Start slideshow\": { \"v\": [\"ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’é–‹å§‹\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Next\": { \"v\": [\"ꬔ\"] }, \"Pause slideshow\": { \"v\": [\"ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’äø€ę™‚åœę­¢\"] }, \"Previous\": { \"v\": [\"前\"] }, \"Start slideshow\": { \"v\": [\"ć‚¹ćƒ©ć‚¤ćƒ‰ć‚·ćƒ§ćƒ¼ć‚’é–‹å§‹\"] } } }, { \"l\": \"ko\", \"t\": { \"Next\": { \"v\": [\"ė‹¤ģŒ\"] }, \"Pause slideshow\": { \"v\": [\"ģŠ¬ė¼ģ“ė“œģ‡¼ ģ¼ģ‹œģ •ģ§€\"] }, \"Previous\": { \"v\": [\"ģ“ģ „\"] }, \"Start slideshow\": { \"v\": [\"ģŠ¬ė¼ģ“ė“œģ‡¼ ģ‹œģž‘\"] } } }, { \"l\": \"lo\", \"t\": { \"Next\": { \"v\": [\"ąŗ•ą»ą»ˆą»„ąŗ›\"] }, \"Pause slideshow\": { \"v\": [\"ąŗ¢ąŗøąŗ”ąŗŖąŗ°ą»„ąŗ„ą»‰ą»‚ąŗŠąŗŠąŗ»ą»ˆąŗ§ąŗ„ąŗ²ąŗ§\"] }, \"Previous\": { \"v\": [\"ąŗą»ˆąŗ­ąŗ™ą»œą»‰ąŗ²\"] }, \"Start slideshow\": { \"v\": [\"ą»€ąŗ„ąŗµą»ˆąŗ”ąŗŖąŗ°ą»„ąŗ„ą»‰ą»‚ąŗŠ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Next\": { \"v\": [\"Kitas\"] }, \"Pause slideshow\": { \"v\": [\"Pristabdyti skaidrių rodymą\"] }, \"Previous\": { \"v\": [\"Ankstesnis\"] }, \"Start slideshow\": { \"v\": [\"Pradėti skaidrių rodymą\"] } } }, { \"l\": \"lv\", \"t\": { \"Next\": { \"v\": [\"Nākamais\"] }, \"Pause slideshow\": { \"v\": [\"Pauzēt slaidrādi\"] }, \"Previous\": { \"v\": [\"IepriekŔējais\"] }, \"Start slideshow\": { \"v\": [\"Sākt slaidrādi\"] } } }, { \"l\": \"mk\", \"t\": { \"Next\": { \"v\": [\"ДлеГно\"] }, \"Pause slideshow\": { \"v\": [\"ŠŸŃƒŠ·ŠøŃ€Š°Ń˜ слајГшоу\"] }, \"Previous\": { \"v\": [\"ŠŸŃ€ŠµŠ“Ń…Š¾Š“Š½Š¾\"] }, \"Start slideshow\": { \"v\": [\"Š”Ń‚Š°Ń€Ń‚ŃƒŠ²Š°Ń˜ слајГшоу\"] } } }, { \"l\": \"mn\", \"t\": { \"Next\": { \"v\": [\"Дараах\"] }, \"Pause slideshow\": { \"v\": [\"ДлайГ шоуг түр зогсоох\"] }, \"Previous\": { \"v\": [\"Өмнөх\"] }, \"Start slideshow\": { \"v\": [\"ДлайГ шоуг ŃŃ…Š»ŅÆŅÆŠ»ŃŃ…\"] } } }, { \"l\": \"my\", \"t\": { \"Next\": { \"v\": [\"į€”į€±į€¬į€€į€ŗį€žį€­į€Æį€·į€†į€€į€ŗį€›į€”į€ŗ\"] }, \"Pause slideshow\": { \"v\": [\"į€…į€œį€­į€Æį€€į€ŗį€›į€¾į€­į€Æį€ø ခေတ္တရပ်ရန်\"] }, \"Previous\": { \"v\": [\"į€šį€į€„į€ŗ\"] }, \"Start slideshow\": { \"v\": [\"į€…į€œį€­į€Æį€€į€ŗį€›į€¾į€­į€Æį€øį€”į€¬į€ø စတင်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Next\": { \"v\": [\"Neste\"] }, \"Pause slideshow\": { \"v\": [\"Pause lysbildefremvisning\"] }, \"Previous\": { \"v\": [\"Forrige\"] }, \"Start slideshow\": { \"v\": [\"Start lysbildefremvisning\"] } } }, { \"l\": \"nl\", \"t\": { \"Next\": { \"v\": [\"Volgende\"] }, \"Pause slideshow\": { \"v\": [\"Diavoorstelling pauzeren\"] }, \"Previous\": { \"v\": [\"Vorige\"] }, \"Start slideshow\": { \"v\": [\"Diavoorstelling starten\"] } } }, { \"l\": \"oc\", \"t\": { \"Next\": { \"v\": [\"Seguent\"] }, \"Pause slideshow\": { \"v\": [\"Metre en pausa lo diaporama\"] }, \"Previous\": { \"v\": [\"Precedent\"] }, \"Start slideshow\": { \"v\": [\"LanƧar lo diaporama\"] } } }, { \"l\": \"pl\", \"t\": { \"Next\": { \"v\": [\"Następny\"] }, \"Pause slideshow\": { \"v\": [\"Wstrzymaj pokaz slajdów\"] }, \"Previous\": { \"v\": [\"Poprzedni\"] }, \"Start slideshow\": { \"v\": [\"Rozpocznij pokaz slajdów\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Next\": { \"v\": [\"Próximo\"] }, \"Pause slideshow\": { \"v\": [\"Pausar apresentação de slides\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar apresentação de slides\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Next\": { \"v\": [\"Seguinte\"] }, \"Pause slideshow\": { \"v\": [\"Pausar diaporama\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar diaporama\"] } } }, { \"l\": \"ro\", \"t\": { \"Next\": { \"v\": [\"Următorul\"] }, \"Pause slideshow\": { \"v\": [\"Pauză prezentare de diapozitive\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Ǝncepeți prezentarea de diapozitive\"] } } }, { \"l\": \"ru\", \"t\": { \"Next\": { \"v\": [\"Š”Š»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ\"] }, \"Pause slideshow\": { \"v\": [\"ŠŸŃ€ŠøŠ¾ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ показ слйГов\"] }, \"Previous\": { \"v\": [\"ŠŸŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠµ\"] }, \"Start slideshow\": { \"v\": [\"ŠŠ°Ń‡Š°Ń‚ŃŒ показ слайГов\"] } } }, { \"l\": \"sk\", \"t\": { \"Next\": { \"v\": [\"Ďalej\"] }, \"Pause slideshow\": { \"v\": [\"PozastaviÅ„ prezentĆ”ciu\"] }, \"Previous\": { \"v\": [\"PredchĆ”dzajĆŗce\"] }, \"Start slideshow\": { \"v\": [\"ZačaÅ„ prezentĆ”ciu\"] } } }, { \"l\": \"sl\", \"t\": { \"Next\": { \"v\": [\"Naslednji\"] }, \"Pause slideshow\": { \"v\": [\"Ustavi predstavitev\"] }, \"Previous\": { \"v\": [\"Predhodni\"] }, \"Start slideshow\": { \"v\": [\"Začni predstavitev\"] } } }, { \"l\": \"sr\", \"t\": { \"Next\": { \"v\": [\"ДлеГеће\"] }, \"Pause slideshow\": { \"v\": [\"ŠŸŠ°ŃƒŠ·ŠøŃ€Š°Ń˜ слајГ шоу\"] }, \"Previous\": { \"v\": [\"ŠŸŃ€ŠµŃ‚Ń…Š¾Š“Š½Š¾\"] }, \"Start slideshow\": { \"v\": [\"ŠŸŠ¾ŠŗŃ€ŠµŠ½Šø слајГ шоу\"] } } }, { \"l\": \"sv\", \"t\": { \"Next\": { \"v\": [\"NƤsta\"] }, \"Pause slideshow\": { \"v\": [\"Pausa bildspelet\"] }, \"Previous\": { \"v\": [\"FƶregĆ„ende\"] }, \"Start slideshow\": { \"v\": [\"Starta bildspelet\"] } } }, { \"l\": \"tr\", \"t\": { \"Next\": { \"v\": [\"Sonraki\"] }, \"Pause slideshow\": { \"v\": [\"Slayt sunumunu duraklat\"] }, \"Previous\": { \"v\": [\"Ɩnceki\"] }, \"Start slideshow\": { \"v\": [\"Slayt sunumunu başlat\"] } } }, { \"l\": \"uk\", \"t\": { \"Next\": { \"v\": [\"ВпереГ\"] }, \"Pause slideshow\": { \"v\": [\"Пауза у показі слайГів\"] }, \"Previous\": { \"v\": [\"ŠŠ°Š·Š°Š“\"] }, \"Start slideshow\": { \"v\": [\"ŠŸŠ¾Ń‡Š°Ń‚Šø показ слайГів\"] } } }, { \"l\": \"uz\", \"t\": { \"Next\": { \"v\": [\"Keyingi\"] }, \"Pause slideshow\": { \"v\": [\"Slayd-shouni to'xtatib turish\"] }, \"Previous\": { \"v\": [\"Oldingi\"] }, \"Start slideshow\": { \"v\": [\"Slayd-shouni boshlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Next\": { \"v\": [\"下一个\"] }, \"Pause slideshow\": { \"v\": [\"ęš‚åœå¹»ēÆē‰‡\"] }, \"Previous\": { \"v\": [\"äøŠäø€äøŖ\"] }, \"Start slideshow\": { \"v\": [\"开始幻灯片\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Next\": { \"v\": [\"下一個\"] }, \"Pause slideshow\": { \"v\": [\"ęš«åœå¹»ē‡ˆē‰‡\"] }, \"Previous\": { \"v\": [\"äøŠäø€å€‹\"] }, \"Start slideshow\": { \"v\": [\"é–‹å§‹å¹»ē‡ˆē‰‡\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Next\": { \"v\": [\"下一個\"] }, \"Pause slideshow\": { \"v\": [\"ęš«åœå¹»ē‡ˆē‰‡\"] }, \"Previous\": { \"v\": [\"äøŠäø€å€‹\"] }, \"Start slideshow\": { \"v\": [\"é–‹å§‹å¹»ē‡ˆē‰‡\"] } } }];\nconst t39 = [{ \"l\": \"ar\", \"t\": { \"No emoji found\": { \"v\": [\"لم ŁŠŲŖŁ… Ų§Ł„Ų¹Ų«ŁˆŲ± على أي Ų„ŁŠŁ…ŁˆŲ¬ŁŠ emoji\"] } } }, { \"l\": \"ast\", \"t\": { \"No emoji found\": { \"v\": [\"Nun s'atopó nengĆŗn fustaxe\"] } } }, { \"l\": \"br\", \"t\": { \"No emoji found\": { \"v\": [\"Emoji ebet kavet\"] } } }, { \"l\": \"ca\", \"t\": { \"No emoji found\": { \"v\": [\"No s'ha trobat cap emoji\"] } } }, { \"l\": \"cs\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žÔdnĆ© emoji\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žÔdnĆ© emoji\"] } } }, { \"l\": \"da\", \"t\": { \"No emoji found\": { \"v\": [\"Ingen emoji fundet\"] } } }, { \"l\": \"de\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"el\", \"t\": { \"No emoji found\": { \"v\": [\"Δεν βρέθηκε emoji\"] } } }, { \"l\": \"en-GB\", \"t\": { \"No emoji found\": { \"v\": [\"No emoji found\"] } } }, { \"l\": \"eo\", \"t\": { \"No emoji found\": { \"v\": [\"La emoĝio forestas\"] } } }, { \"l\": \"es\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningĆŗn emoji\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningĆŗn emoji\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningĆŗn emoji\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningĆŗn emoji\"] } } }, { \"l\": \"et-EE\", \"t\": { \"No emoji found\": { \"v\": [\"Emojit ei leitud\"] } } }, { \"l\": \"eu\", \"t\": { \"No emoji found\": { \"v\": [\"Ez da emojirik aurkitu\"] } } }, { \"l\": \"fa\", \"t\": { \"No emoji found\": { \"v\": [\"Ł‡ŪŒŚ† Ų“Ś©Ł„Ś©ŪŒ یافت نؓد\"] } } }, { \"l\": \"fi\", \"t\": { \"No emoji found\": { \"v\": [\"Emojia ei lƶytynyt\"] } } }, { \"l\": \"fr\", \"t\": { \"No emoji found\": { \"v\": [\"Pas d’émoji trouvĆ©\"] } } }, { \"l\": \"ga\", \"t\": { \"No emoji found\": { \"v\": [\"NĆ­or aimsĆ­odh emoji\"] } } }, { \"l\": \"gl\", \"t\": { \"No emoji found\": { \"v\": [\"Non se atopou ningĆŗn Ā«emojiĀ»\"] } } }, { \"l\": \"he\", \"t\": { \"No emoji found\": { \"v\": [\"לא נמצא אמוג׳י\"] } } }, { \"l\": \"hr\", \"t\": { \"No emoji found\": { \"v\": [\"Nije pronađen nijedan emoji\"] } } }, { \"l\": \"hu\", \"t\": { \"No emoji found\": { \"v\": [\"Nem talĆ”lható emodzsi\"] } } }, { \"l\": \"id\", \"t\": { \"No emoji found\": { \"v\": [\"Tidak ada emoji yang ditemukan\"] } } }, { \"l\": \"is\", \"t\": { \"No emoji found\": { \"v\": [\"Ekkert tjĆ”ningartĆ”kn fannst\"] } } }, { \"l\": \"it\", \"t\": { \"No emoji found\": { \"v\": [\"Nessun emoji trovato\"] } } }, { \"l\": \"ja\", \"t\": { \"No emoji found\": { \"v\": [\"ēµµę–‡å­—ćŒč¦‹ć¤ć‹ć‚Šć¾ć›ć‚“\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No emoji found\": { \"v\": [\"ēµµę–‡å­—ćŒč¦‹ć¤ć‹ć‚Šć¾ć›ć‚“\"] } } }, { \"l\": \"ko\", \"t\": { \"No emoji found\": { \"v\": [\"ģ“ėŖØģ§€ ģ—†ģŒ\"] } } }, { \"l\": \"lo\", \"t\": { \"No emoji found\": { \"v\": [\"ąŗšą»ą»ˆąŗžąŗ»ąŗšąŗ­ąŗµą»‚ąŗ”ąŗˆąŗ“\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"No emoji found\": { \"v\": [\"Nerasta emociukių\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"No emoji found\": { \"v\": [\"ŠŠµ се ŠæŃ€Š¾Š½Š°Ń˜Š“ени емотикони\"] } } }, { \"l\": \"mn\", \"t\": { \"No emoji found\": { \"v\": [\"Эможи олГсонгүй\"] } } }, { \"l\": \"my\", \"t\": { \"No emoji found\": { \"v\": [\"နီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"No emoji found\": { \"v\": [\"Fant ingen emoji\"] } } }, { \"l\": \"nl\", \"t\": { \"No emoji found\": { \"v\": [\"Geen emoji gevonden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No emoji found\": { \"v\": [\"Nie znaleziono emoji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"ro\", \"t\": { \"No emoji found\": { \"v\": [\"Nu s-a găsit niciun emoji\"] } } }, { \"l\": \"ru\", \"t\": { \"No emoji found\": { \"v\": [\"ЭмоГзи не найГено\"] } } }, { \"l\": \"sk\", \"t\": { \"No emoji found\": { \"v\": [\"NenaÅ”li sa žiadne emodži\"] } } }, { \"l\": \"sl\", \"t\": { \"No emoji found\": { \"v\": [\"Ni najdenih izraznih ikon\"] } } }, { \"l\": \"sr\", \"t\": { \"No emoji found\": { \"v\": [\"ŠŠøŃ˜Šµ пронађен нијеГан емођи\"] } } }, { \"l\": \"sv\", \"t\": { \"No emoji found\": { \"v\": [\"Ingen emoji hittades\"] } } }, { \"l\": \"tr\", \"t\": { \"No emoji found\": { \"v\": [\"Herhangi bir emoji bulunamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"No emoji found\": { \"v\": [\"Емоційки Š²Ń–Š“ŃŃƒŃ‚Š½Ń–\"] } } }, { \"l\": \"uz\", \"t\": { \"No emoji found\": { \"v\": [\"Hech qanday emoji topilmadi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No emoji found\": { \"v\": [\"č”Øęƒ…ęœŖę‰¾åˆ°\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"No emoji found\": { \"v\": [\"ęœŖę‰¾åˆ°č”Øęƒ…ē¬¦č™Ÿ\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"No emoji found\": { \"v\": [\"ęœŖę‰¾åˆ°č”Øęƒ…ē¬¦č™Ÿ\"] } } }];\nconst t40 = [{ \"l\": \"ar\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ų„ŁŲŖŁŽŲ­ الرابط ؄لى \"{resourceName}\"'] } } }, { \"l\": \"ast\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir l'enllaz a Ā«{resourceName}Ā»\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na ā€ž{resourceName}ā€œ\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na ā€ž{resourceName}ā€œ\"] } } }, { \"l\": \"da\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['ƅbn link til \"{resourceName}\"'] } } }, { \"l\": \"de\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" ƶffnen'] } } }, { \"l\": \"de-DE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" ƶffnen'] } } }, { \"l\": \"el\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Άνοιγμα ĻƒĻ…Ī½Ī“Ī­ĻƒĪ¼ĪæĻ… για \"{resourceName}\"'] } } }, { \"l\": \"en-GB\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Open link to \"{resourceName}\"'] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-AR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-EC\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-MX\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"et-EE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Ava link ā€ž{resourceName}ā€œ\"] } } }, { \"l\": \"eu\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ireki \"{resourceName}\" esteka'] } } }, { \"l\": \"fa\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"ŲØŲ§Ų² کردن Ł¾ŪŒŁˆŁ†ŲÆ به Ā«{resourceName}Ā»\"] } } }, { \"l\": \"fi\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Avaa linkki \"{resourceName}\"'] } } }, { \"l\": \"fr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ouvrir le lien vers \"{resourceName}\"'] } } }, { \"l\": \"ga\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Oscail nasc chuig \"{resourceName}\"'] } } }, { \"l\": \"gl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir a ligazón a Ā«{resourceName}Ā»\"] } } }, { \"l\": \"he\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"פתיחת קישור אל ā€ž{resourceName}ā€\"] } } }, { \"l\": \"hr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otvori poveznicu za \"{resourceName}\"'] } } }, { \"l\": \"hu\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"A(z) ā€ž{resourceName}ā€ hivatkozĆ”sĆ”nak megnyitĆ”sa\"] } } }, { \"l\": \"id\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Buka tautan ke \"{resourceName}\"'] } } }, { \"l\": \"is\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Opna tengil Ć­ \"{resourceName}\"'] } } }, { \"l\": \"it\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Apri il link a \"{resourceName}\"'] } } }, { \"l\": \"ja\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" ćøć®ćƒŖćƒ³ć‚Æć‚’é–‹ć'] } } }, { \"l\": \"ja-JP\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" ćøć®ćƒŖćƒ³ć‚Æć‚’é–‹ć'] } } }, { \"l\": \"ko\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\"ģ˜ 링크 ģ—“źø°'] } } }, { \"l\": \"lo\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"ą»€ąŗ›ąŗµąŗ”ąŗ„ąŗ“ąŗ‡ą»„ąŗ›ąŗ—ąŗµą»ˆ ā€œ{resourceName}ā€\"] } } }, { \"l\": \"lt-LT\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Atidaryti nuorodą ÄÆ ā€ž{resourceName}ā€œ\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['ŠžŃ‚Š²Š¾Ń€Šø линк Го \"{resourceName}\"'] } } }, { \"l\": \"mn\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" руу холбоос Š½ŃŃŃ…'] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['ƅpne lenken til \"{resourceName}\"'] } } }, { \"l\": \"nl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link naar \"{resourceName}\" openen'] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otwórz link do \"{resourceName}\"'] } } }, { \"l\": \"pt-BR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir o link para \"{resourceName}\"'] } } }, { \"l\": \"pt-PT\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir link para \"{resourceName}\"'] } } }, { \"l\": \"ro\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Deschide linkul la \"{resourceName}\"'] } } }, { \"l\": \"ru\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ ŃŃŃ‹Š»ŠŗŃƒ на \"{resourceName}\"'] } } }, { \"l\": \"sk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['OtvoriÅ„ link v \"{resourceName}\"'] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"ŠžŃ‚Š²Š¾Ń€Šø линк на ā€ž{resourceName}ā€\"] } } }, { \"l\": \"sv\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ɩppna lƤnken till \"{resourceName}\"'] } } }, { \"l\": \"tr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Bağlantıyı \"{resourceName}\" üzerine aƧ'] } } }, { \"l\": \"uk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['ВіГкрити ŠæŠ¾ŃŠøŠ»Š°Š½Š½Ń на \"{resourceName}\"'] } } }, { \"l\": \"uz\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [' \"{resourceName}\" ga havolani ochish'] } } }, { \"l\": \"zh-CN\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"打开 ā€œ{resourceName}ā€ ēš„é“¾ęŽ„\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"é–‹å•Ÿåˆ°ć€Œ{resourceName}ć€ēš„é€£ēµ\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"é–‹å•Ÿåˆ°ć€Œ{resourceName}ć€ēš„é€£ēµ\"] } } }];\nconst t42 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Please choose a date\": { \"v\": [\"Zvolte datum\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Please choose a date\": { \"v\": [\"VƦlg en dato\"] } } }, { \"l\": \"de\", \"t\": { \"Please choose a date\": { \"v\": [\"Bitte ein Datum wƤhlen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Please choose a date\": { \"v\": [\"Bitte ein Datum wƤhlen\"] } } }, { \"l\": \"el\", \"t\": { \"Please choose a date\": { \"v\": [\"Ī Ī±ĻĪ±ĪŗĪ±Ī»ĻŽ επιλέξτε μια ημερομηνία\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Please choose a date\": { \"v\": [\"Please choose a date\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Please choose a date\": { \"v\": [\"Palun vali kuupƤev\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Please choose a date\": { \"v\": [\"Veuillez choisir une date\"] } } }, { \"l\": \"ga\", \"t\": { \"Please choose a date\": { \"v\": [\"Roghnaigh dĆ”ta le do thoil\"] } } }, { \"l\": \"gl\", \"t\": { \"Please choose a date\": { \"v\": [\"Escolla unha data\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Please choose a date\": { \"v\": [\"Molimo odaberite datum\"] } } }, { \"l\": \"hu\", \"t\": { \"Please choose a date\": { \"v\": [\"VĆ”lasszon egy dĆ”tumot\"] } } }, { \"l\": \"id\", \"t\": { \"Please choose a date\": { \"v\": [\"Silakan pilih tanggal\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Please choose a date\": { \"v\": [\"ę—„ä»˜ć‚’éøęŠžć—ć¦ćć ć•ć„\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Please choose a date\": { \"v\": [\"ė‚ ģ§œė„¼ ģ„ ķƒķ•“ģ£¼ģ„øģš”\"] } } }, { \"l\": \"lo\", \"t\": { \"Please choose a date\": { \"v\": [\"ກະຄຸນາເຄືອກວັນທີ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Please choose a date\": { \"v\": [\"Pasirinkite datą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Please choose a date\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø Š“Š°Ń‚ŃƒŠ¼\"] } } }, { \"l\": \"mn\", \"t\": { \"Please choose a date\": { \"v\": [\"ŠžŠ³Š½Š¾Š¾ сонгоно уу\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Please choose a date\": { \"v\": [\"Kies een datum\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Please choose a date\": { \"v\": [\"Por favor, escolha uma data\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Please choose a date\": { \"v\": [\"Por favor, escolha uma data\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Please choose a date\": { \"v\": [\"Выберите Š“Š°Ń‚Ńƒ\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Please choose a date\": { \"v\": [\"Молимо вас Га изаберете Š“Š°Ń‚ŃƒŠ¼\"] } } }, { \"l\": \"sv\", \"t\": { \"Please choose a date\": { \"v\": [\"VƤlj ett datum\"] } } }, { \"l\": \"tr\", \"t\": { \"Please choose a date\": { \"v\": [\"Lütfen bir tarih seƧin\"] } } }, { \"l\": \"uk\", \"t\": { \"Please choose a date\": { \"v\": [\"Š’ŠøŠ±ŠµŃ€Ń–Ń‚ŃŒ Š“Š°Ń‚Ńƒ\"] } } }, { \"l\": \"uz\", \"t\": { \"Please choose a date\": { \"v\": [\"Iltimos, sanani tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Please choose a date\": { \"v\": [\"č«‹éøę“‡ę—„ęœŸ\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Please choose a date\": { \"v\": [\"č«‹éøę“‡ę—„ęœŸ\"] } } }];\nconst t43 = [{ \"l\": \"ar\", \"t\": { \"Provider icon\": { \"v\": [\"Ų£ŁŠŁ‚ŁˆŁ†Ų© Ų§Ł„Ł…Ų²ŁˆŁ‘ŲÆ\"] } } }, { \"l\": \"ast\", \"t\": { \"Provider icon\": { \"v\": [\"Iconu del fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Provider icon\": { \"v\": [\"Udbyder ikon\"] } } }, { \"l\": \"de\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"el\", \"t\": { \"Provider icon\": { \"v\": [\"ΕικονίΓιο Ļ€Ī±ĻĻŒĻ‡ĪæĻ…\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Provider icon\": { \"v\": [\"Provider icon\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Provider icon\": { \"v\": [\"ƍcono del proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Provider icon\": { \"v\": [\"ƍcono del proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Provider icon\": { \"v\": [\"ƍcono del proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Provider icon\": { \"v\": [\"ƍcono del proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Provider icon\": { \"v\": [\"Teenusepakkuja ikoon\"] } } }, { \"l\": \"eu\", \"t\": { \"Provider icon\": { \"v\": [\"Hornitzailearen ikonoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Provider icon\": { \"v\": [\"Ų¢ŪŒŚ©ŁˆŁ† ارائه دهنده\"] } } }, { \"l\": \"fi\", \"t\": { \"Provider icon\": { \"v\": [\"Palveluntarjoajan kuvake\"] } } }, { \"l\": \"fr\", \"t\": { \"Provider icon\": { \"v\": [\"IcĆ“ne du fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Provider icon\": { \"v\": [\"DeilbhĆ­n solĆ”thraĆ­\"] } } }, { \"l\": \"gl\", \"t\": { \"Provider icon\": { \"v\": [\"Icona do provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Provider icon\": { \"v\": [\"המל הפק\"] } } }, { \"l\": \"hr\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona pružatelja\"] } } }, { \"l\": \"hu\", \"t\": { \"Provider icon\": { \"v\": [\"SzolgĆ”ltató ikonja\"] } } }, { \"l\": \"id\", \"t\": { \"Provider icon\": { \"v\": [\"Ikon penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Provider icon\": { \"v\": [\"TĆ”knmynd þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Provider icon\": { \"v\": [\"Icona del provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Provider icon\": { \"v\": [\"ćƒ—ćƒ­ćƒć‚¤ćƒ€ćƒ¼ć®ć‚¢ć‚¤ć‚³ćƒ³\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Provider icon\": { \"v\": [\"ćƒ—ćƒ­ćƒć‚¤ćƒ€ćƒ¼ć®ć‚¢ć‚¤ć‚³ćƒ³\"] } } }, { \"l\": \"ko\", \"t\": { \"Provider icon\": { \"v\": [\"ģ œź³µģž ģ•„ģ“ģ½˜\"] } } }, { \"l\": \"lo\", \"t\": { \"Provider icon\": { \"v\": [\"ą»„ąŗ­ąŗ„ąŗ­ąŗ™ąŗœąŗ¹ą»‰ą»ƒąŗ«ą»‰ąŗšą»ąŗ„ąŗ“ąŗąŗ²ąŗ™\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Provider icon\": { \"v\": [\"Tiekėjo piktograma\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Provider icon\": { \"v\": [\"Икона на Гавател\"] } } }, { \"l\": \"mn\", \"t\": { \"Provider icon\": { \"v\": [\"Ņ®Š¹Š»Ń‡ŠøŠ»Š³ŃŃ ŅÆŠ·ŅÆŅÆŠ»ŃŠ³Ń‡ŠøŠ¹Š½ Гүрс\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Provider icon\": { \"v\": [\"LeverandĆørikon\"] } } }, { \"l\": \"nl\", \"t\": { \"Provider icon\": { \"v\": [\"Provider-pictogram\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Provider icon\": { \"v\": [\"Dostawca ikony\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Provider icon\": { \"v\": [\"ƍcone do provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Provider icon\": { \"v\": [\"ƍcone do fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Provider icon\": { \"v\": [\"Provider pentru icon\"] } } }, { \"l\": \"ru\", \"t\": { \"Provider icon\": { \"v\": [\"Значок поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Provider icon\": { \"v\": [\"Ikonka poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Provider icon\": { \"v\": [\"Икона ŠæŃ€ŃƒŠ¶Š°Š¾Ń†Š°\"] } } }, { \"l\": \"sv\", \"t\": { \"Provider icon\": { \"v\": [\"Leverantƶrsikon\"] } } }, { \"l\": \"tr\", \"t\": { \"Provider icon\": { \"v\": [\"Hizmet sağlayıcı simgesi\"] } } }, { \"l\": \"uk\", \"t\": { \"Provider icon\": { \"v\": [\"ŠŸŃ–ŠŗŃ‚Š¾Š³Ń€Š°Š¼Š° ŠæŠ¾ŃŃ‚Š°Ń‡Š°Š»ŃŒŠ½ŠøŠŗŠ°\"] } } }, { \"l\": \"uz\", \"t\": { \"Provider icon\": { \"v\": [\"Provayder belgisi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Provider icon\": { \"v\": [\"ęä¾›č€…å›¾ę ‡\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Provider icon\": { \"v\": [\"ęä¾›č€…åœ–ē¤ŗ\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Provider icon\": { \"v\": [\"ęä¾›č€…åœ–ē¤ŗ\"] } } }];\nconst t44 = [{ \"l\": \"ar\", \"t\": { \"Related team resources\": { \"v\": [\"Ł…ŁˆŲ§Ų±ŲÆ Ł„Ł„ŁŲ±ŁŠŁ‚ Ų°Ų§ŲŖ صلة\"] }, \"View team\": { \"v\": [\"Ų¹Ų±Ų¶ Ų§Ł„ŁŲ±ŁŠŁ‚\"] } } }, { \"l\": \"ast\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos rellacionaos colos equipos\"] }, \"View team\": { \"v\": [\"Ver l'equipu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Related team resources\": { \"v\": [\"SouvisejĆ­cĆ­ prostředky kolektivu\"] }, \"View team\": { \"v\": [\"Zobrazit kolektiv\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterede teamressourcer\"] }, \"View team\": { \"v\": [\"Se teamet\"] } } }, { \"l\": \"de\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Related team resources\": { \"v\": [\"Σχετικοί Ļ€ĻŒĻĪæĪ¹ ομάΓας\"] }, \"View team\": { \"v\": [\"Προβολή ομάΓας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Related team resources\": { \"v\": [\"Related team resources\"] }, \"View team\": { \"v\": [\"View team\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Related team resources\": { \"v\": [\"Tiimi seotud ressursid\"] }, \"View team\": { \"v\": [\"Vaata tiimi\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Related team resources\": { \"v\": [\"منابع ŲŖŪŒŁ…ŪŒ Ł…Ų±ŲŖŲØŲ·\"] }, \"View team\": { \"v\": [\"مؓاهده ŚÆŲ±ŁˆŁ‡\"] } } }, { \"l\": \"fi\", \"t\": { \"Related team resources\": { \"v\": [\"LiittyvƤt tiimiresurssit\"] }, \"View team\": { \"v\": [\"NƤytƤ tiimi\"] } } }, { \"l\": \"fr\", \"t\": { \"Related team resources\": { \"v\": [\"Ressources d'Ć©quipe associĆ©es\"] }, \"View team\": { \"v\": [\"Voir l'Ć©quipe\"] } } }, { \"l\": \"ga\", \"t\": { \"Related team resources\": { \"v\": [\"AcmhainnĆ­ foirne gaolmhara\"] }, \"View team\": { \"v\": [\"FĆ©ach ar an bhfoireann\"] } } }, { \"l\": \"gl\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver o equipo\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Related team resources\": { \"v\": [\"Povezani timski resursi\"] }, \"View team\": { \"v\": [\"Prikaži tim\"] } } }, { \"l\": \"hu\", \"t\": { \"Related team resources\": { \"v\": [\"Kapcsolódó csapaterőforrĆ”sok\"] }, \"View team\": { \"v\": [\"Csapat megtekintĆ©se\"] } } }, { \"l\": \"id\", \"t\": { \"Related team resources\": { \"v\": [\"Sumber daya team terkait\"] }, \"View team\": { \"v\": [\"Lihat team\"] } } }, { \"l\": \"is\", \"t\": { \"Related team resources\": { \"v\": [\"Tengd tilfƶng teymis\"] }, \"View team\": { \"v\": [\"Skoưa teymi\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Related team resources\": { \"v\": [\"ćƒćƒ¼ćƒ ć®é–¢é€£ćƒŖć‚½ćƒ¼ć‚¹\"] }, \"View team\": { \"v\": [\"ćƒćƒ¼ćƒ ć‚’č”Øē¤ŗ\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Related team resources\": { \"v\": [\"ćƒćƒ¼ćƒ ć®é–¢é€£ćƒŖć‚½ćƒ¼ć‚¹\"] }, \"View team\": { \"v\": [\"ćƒćƒ¼ćƒ ć‚’č”Øē¤ŗ\"] } } }, { \"l\": \"ko\", \"t\": { \"Related team resources\": { \"v\": [\"꓀련 ķŒ€ ė¦¬ģ†ŒģŠ¤\"] }, \"View team\": { \"v\": [\"ķŒ€ 볓기\"] } } }, { \"l\": \"lo\", \"t\": { \"Related team resources\": { \"v\": [\"ąŗŠąŗ±ąŗšąŗžąŗ°ąŗąŗ²ąŗąŗ­ąŗ™ąŗ‚ąŗ­ąŗ‡ąŗ—ąŗµąŗ”ąŗ—ąŗµą»ˆąŗą»ˆąŗ½ąŗ§ąŗ‚ą»‰ąŗ­ąŗ‡\"] }, \"View team\": { \"v\": [\"ą»€ąŗšąŗ“ą»ˆąŗ‡ąŗ—ąŗµąŗ”\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Related team resources\": { \"v\": [\"Susiję komandos iÅ”tekliai\"] }, \"View team\": { \"v\": [\"PeržiÅ«rėti komandą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Related team resources\": { \"v\": [\"ŠŸŠ¾Š²Ń€Š·Š°Š½Šø Ń€ŠµŃŃƒŃ€ŃŠø на тимот\"] }, \"View team\": { \"v\": [\"ŠŸŃ€ŠøŠŗŠ°Š¶Šø тим\"] } } }, { \"l\": \"mn\", \"t\": { \"Related team resources\": { \"v\": [\"Багийн холбогГох нөөцүүГ\"] }, \"View team\": { \"v\": [\"Багийг харах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterte lagressurser\"] }, \"View team\": { \"v\": [\"Se lag\"] } } }, { \"l\": \"nl\", \"t\": { \"Related team resources\": { \"v\": [\"Verwante teambronnen\"] }, \"View team\": { \"v\": [\"Team bekijken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Related team resources\": { \"v\": [\"Powiązane zasoby grupowe\"] }, \"View team\": { \"v\": [\"Zobacz grupę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipe relacionados\"] }, \"View team\": { \"v\": [\"Ver equipe\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos relacionados com a equipa\"] }, \"View team\": { \"v\": [\"Ver equipa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Related team resources\": { \"v\": [\"Š”Š²ŃŠ·Š°Š½Š½Ń‹Šµ команГные Ń€ŠµŃŃƒŃ€ŃŃ‹\"] }, \"View team\": { \"v\": [\"ŠŸŃ€Š¾ŃŠ¼Š¾Ń‚Ń€ команГы\"] } } }, { \"l\": \"sk\", \"t\": { \"Related team resources\": { \"v\": [\"SĆŗvisiace tĆ­movĆ© zdroje\"] }, \"View team\": { \"v\": [\"ZobraziÅ„ tĆ­m\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Related team resources\": { \"v\": [\"Повезани тимски Ń€ŠµŃŃƒŃ€ŃŠø\"] }, \"View team\": { \"v\": [\"ŠŸŃ€ŠøŠŗŠ°Š¶Šø тим\"] } } }, { \"l\": \"sv\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterade teamresurser\"] }, \"View team\": { \"v\": [\"Visa teamet\"] } } }, { \"l\": \"tr\", \"t\": { \"Related team resources\": { \"v\": [\"İlgili takım kaynakları\"] }, \"View team\": { \"v\": [\"Takımı gƶrüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Related team resources\": { \"v\": [\"Пов'ŃŠ·Š°Š½Ń– Ń€ŠµŃŃƒŃ€ŃŠø команГи\"] }, \"View team\": { \"v\": [\"ŠŸŠµŃ€ŠµŠ³Š»ŃŠ½ŃƒŃ‚Šø команГу\"] } } }, { \"l\": \"uz\", \"t\": { \"Related team resources\": { \"v\": [\"Tegishli jamoa resurslari\"] }, \"View team\": { \"v\": [\"Jamoani ko'rish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Related team resources\": { \"v\": [\"ē›øå…³å›¢é˜Ÿčµ„ęŗ\"] }, \"View team\": { \"v\": [\"ęŸ„ēœ‹å›¢é˜Ÿ\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Related team resources\": { \"v\": [\"ē›øé—œåœ˜éšŠč³‡ęŗ\"] }, \"View team\": { \"v\": [\"ęŸ„ēœ‹åœ˜éšŠ\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Related team resources\": { \"v\": [\"ē›øé—œåœ˜éšŠč³‡ęŗ\"] }, \"View team\": { \"v\": [\"ęŖ¢č¦–åœ˜éšŠ\"] } } }];\nconst t45 = [{ \"l\": \"ar\", \"t\": { \"Search\": { \"v\": [\"ŲØŲ­Ų«\"] } } }, { \"l\": \"ast\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"br\", \"t\": { \"Search\": { \"v\": [\"Klask\"] } } }, { \"l\": \"ca\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"cs\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"da\", \"t\": { \"Search\": { \"v\": [\"SĆøg\"] } } }, { \"l\": \"de\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"el\", \"t\": { \"Search\": { \"v\": [\"Ī‘Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ·\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search\": { \"v\": [\"Search\"] } } }, { \"l\": \"eo\", \"t\": { \"Search\": { \"v\": [\"Serĉi\"] } } }, { \"l\": \"es\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search\": { \"v\": [\"Otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Search\": { \"v\": [\"Bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Search\": { \"v\": [\"جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Search\": { \"v\": [\"Etsi\"] } } }, { \"l\": \"fr\", \"t\": { \"Search\": { \"v\": [\"Rechercher\"] } } }, { \"l\": \"ga\", \"t\": { \"Search\": { \"v\": [\"Cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Search\": { \"v\": [\"חיפוש\"] } } }, { \"l\": \"hr\", \"t\": { \"Search\": { \"v\": [\"Traži\"] } } }, { \"l\": \"hu\", \"t\": { \"Search\": { \"v\": [\"KeresĆ©s\"] } } }, { \"l\": \"id\", \"t\": { \"Search\": { \"v\": [\"Cari\"] } } }, { \"l\": \"is\", \"t\": { \"Search\": { \"v\": [\"Leita\"] } } }, { \"l\": \"it\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"ja\", \"t\": { \"Search\": { \"v\": [\"検瓢\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search\": { \"v\": [\"検瓢\"] } } }, { \"l\": \"ko\", \"t\": { \"Search\": { \"v\": [\"ź²€ģƒ‰\"] } } }, { \"l\": \"lo\", \"t\": { \"Search\": { \"v\": [\"ຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search\": { \"v\": [\"IeÅ”koti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search\": { \"v\": [\"Š‘Š°Ń€Š°Ń˜\"] } } }, { \"l\": \"mn\", \"t\": { \"Search\": { \"v\": [\"Єайх\"] } } }, { \"l\": \"my\", \"t\": { \"Search\": { \"v\": [\"ရှာဖွေရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Search\": { \"v\": [\"SĆøk\"] } } }, { \"l\": \"nl\", \"t\": { \"Search\": { \"v\": [\"Zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search\": { \"v\": [\"Szukaj\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { \"Search\": { \"v\": [\"Căutare\"] } } }, { \"l\": \"ru\", \"t\": { \"Search\": { \"v\": [\"Поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Search\": { \"v\": [\"HľadaÅ„\"] } } }, { \"l\": \"sl\", \"t\": { \"Search\": { \"v\": [\"Iskanje\"] } } }, { \"l\": \"sr\", \"t\": { \"Search\": { \"v\": [\"ŠŸŃ€ŠµŃ‚Ń€Š°Š¶Šø\"] } } }, { \"l\": \"sv\", \"t\": { \"Search\": { \"v\": [\"Sƶk\"] } } }, { \"l\": \"tr\", \"t\": { \"Search\": { \"v\": [\"Ara\"] } } }, { \"l\": \"uk\", \"t\": { \"Search\": { \"v\": [\"Пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Search\": { \"v\": [\"Qidiruv\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search\": { \"v\": [\"搜瓢\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Search\": { \"v\": [\"ęœå°‹\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search\": { \"v\": [\"ęœå°‹\"] } } }];\nconst t46 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Search …\": { \"v\": [\"Hledat …\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Search …\": { \"v\": [\"SĆøg ...\"] } } }, { \"l\": \"de\", \"t\": { \"Search …\": { \"v\": [\"Suche …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search …\": { \"v\": [\"Suche …\"] } } }, { \"l\": \"el\", \"t\": { \"Search …\": { \"v\": [\"Ī‘Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ·Ā ā€¦\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search …\": { \"v\": [\"Search …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Search …\": { \"v\": [\"Otsi…\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Search …\": { \"v\": [\"Rechercher…\"] } } }, { \"l\": \"ga\", \"t\": { \"Search …\": { \"v\": [\"Cuardaigh …\"] } } }, { \"l\": \"gl\", \"t\": { \"Search …\": { \"v\": [\"Buscar…\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Search …\": { \"v\": [\"Traži …\"] } } }, { \"l\": \"hu\", \"t\": { \"Search …\": { \"v\": [\"KeresĆ©s…\"] } } }, { \"l\": \"id\", \"t\": { \"Search …\": { \"v\": [\"Cari …\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Search …\": { \"v\": [\"ę¤œē“¢ā€¦\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Search …\": { \"v\": [\"ģ°¾ėŠ” 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Search …\": { \"v\": [\"ຄົ້ນຫາ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search …\": { \"v\": [\"IeÅ”koti …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search …\": { \"v\": [\"Š‘Š°Ń€Š°Ń˜ā€¦\"] } } }, { \"l\": \"mn\", \"t\": { \"Search …\": { \"v\": [\"Єайх …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Search …\": { \"v\": [\"Zoeken …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Search …\": { \"v\": [\"Pesquisar …\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Search …\": { \"v\": [\"ŠŸŠ¾ŠøŃŠŗĀ ā€¦\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Search …\": { \"v\": [\"ŠŸŃ€ŠµŃ‚Ń€Š°Š¶Šøā€¦\"] } } }, { \"l\": \"sv\", \"t\": { \"Search …\": { \"v\": [\"Sƶk …\"] } } }, { \"l\": \"tr\", \"t\": { \"Search …\": { \"v\": [\"Ara…\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Search …\": { \"v\": [\"Izlash...\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Search …\": { \"v\": [\"ęœå°‹Ā ā€¦\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search …\": { \"v\": [\"ęœå°‹......\"] } } }];\nconst t47 = [{ \"l\": \"ar\", \"t\": { \"Type to search time zone\": { \"v\": [\"Ų£ŁƒŲŖŁŲØ للبحث عن منطقة Ų²Ł…Ł†ŁŠŲ©\"] } } }, { \"l\": \"ast\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar fusos horarios\"] }, \"Type to search time zone\": { \"v\": [\"Escribi pa buscar un fusu horariu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Type to search time zone\": { \"v\": [\"Escriviu per cercar la zona horĆ ria\"] } } }, { \"l\": \"cs\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhledat časovĆ© pĆ”smo\"] }, \"Type to search time zone\": { \"v\": [\"PsanĆ­m vyhledejte časovou zónu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhledat časovĆ© pĆ”smo\"] }, \"Type to search time zone\": { \"v\": [\"PsanĆ­m vyhledejte časovou zónu\"] } } }, { \"l\": \"da\", \"t\": { \"Search for time zone\": { \"v\": [\"SĆøg efter tidszone\"] }, \"Type to search time zone\": { \"v\": [\"Indtast for at sĆøge efter tidszone\"] } } }, { \"l\": \"de\", \"t\": { \"Search for time zone\": { \"v\": [\"Nach Zeitzone suchen\"] }, \"Type to search time zone\": { \"v\": [\"Tippen, um eine Zeitzone zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search for time zone\": { \"v\": [\"Nach Zeitzone suchen\"] }, \"Type to search time zone\": { \"v\": [\"Tippen, um eine Zeitzone zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Type to search time zone\": { \"v\": [\"Ī Ī»Ī·ĪŗĻ„ĻĪæĪ»ĪæĪ³Ī®ĻƒĻ„Īµ για Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ī¶ĻŽĪ½Ī·Ļ‚ ĻŽĻĪ±Ļ‚\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search for time zone\": { \"v\": [\"Search for time zone\"] }, \"Type to search time zone\": { \"v\": [\"Type to search time zone\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar huso horario\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar un huso horario\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar zona horaria\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar la zona horaria\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Type to search time zone\": { \"v\": [\"Escribe para buscar la zona horaria\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar zona horaria\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar la zona horaria\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search for time zone\": { \"v\": [\"Otsi ajavƶƶndit\"] }, \"Type to search time zone\": { \"v\": [\"Ajavƶƶndi otsimiseks kirjuta midagi\"] } } }, { \"l\": \"eu\", \"t\": { \"Type to search time zone\": { \"v\": [\"Idatzi ordu-zona bat bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { \"Search for time zone\": { \"v\": [\"جستجو برای منطقهٔ Ų²Ł…Ų§Ł†ŪŒ\"] }, \"Type to search time zone\": { \"v\": [\"برای جستجوی منطقه Ų²Ł…Ų§Ł†ŪŒ تایپ Ś©Ł†ŪŒŲÆ\"] } } }, { \"l\": \"fi\", \"t\": { \"Search for time zone\": { \"v\": [\"Etsi aikavyƶhykettƤ\"] }, \"Type to search time zone\": { \"v\": [\"Kirjoita etsiƤksesi aikavyƶhykettƤ\"] } } }, { \"l\": \"fr\", \"t\": { \"Search for time zone\": { \"v\": [\"Rechercher le fuseau horaire\"] }, \"Type to search time zone\": { \"v\": [\"Saisissez les premiers lettres pour rechercher un fuseau horaire\"] } } }, { \"l\": \"ga\", \"t\": { \"Search for time zone\": { \"v\": [\"Cuardaigh crios ama\"] }, \"Type to search time zone\": { \"v\": [\"ClóscrĆ­obh chun crios ama a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar por fuso horario\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar o fuso horario\"] } } }, { \"l\": \"he\", \"t\": { \"Type to search time zone\": { \"v\": [\"יש להקליד כדי לחפש אזור זמן\"] } } }, { \"l\": \"hr\", \"t\": { \"Search for time zone\": { \"v\": [\"Pretraži vremensku zonu\"] }, \"Type to search time zone\": { \"v\": [\"UpiÅ”ite za pretraživanje vremenske zone\"] } } }, { \"l\": \"hu\", \"t\": { \"Search for time zone\": { \"v\": [\"Időzóna keresĆ©se\"] }, \"Type to search time zone\": { \"v\": [\"GĆ©peljen az időzóna keresĆ©sĆ©hez\"] } } }, { \"l\": \"id\", \"t\": { \"Search for time zone\": { \"v\": [\"Cari zona waktu\"] }, \"Type to search time zone\": { \"v\": [\"Ketik untuk mencari zona waktu\"] } } }, { \"l\": \"is\", \"t\": { \"Search for time zone\": { \"v\": [\"Leita aư tĆ­mabelti\"] }, \"Type to search time zone\": { \"v\": [\"Skrifaưu til aư leita aư tĆ­mabelti\"] } } }, { \"l\": \"it\", \"t\": { \"Search for time zone\": { \"v\": [\"Ricerca del fuso orario\"] }, \"Type to search time zone\": { \"v\": [\"Digita per cercare un fuso orario\"] } } }, { \"l\": \"ja\", \"t\": { \"Search for time zone\": { \"v\": [\"ć‚æć‚¤ćƒ ć‚¾ćƒ¼ćƒ³ć‚’ę¤œē“¢\"] }, \"Type to search time zone\": { \"v\": [\"ć‚æć‚¤ćƒ ć‚¾ćƒ¼ćƒ³ę¤œē“¢ć®ćŸć‚å…„åŠ›ć—ć¦ćć ć•ć„\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search for time zone\": { \"v\": [\"ć‚æć‚¤ćƒ ć‚¾ćƒ¼ćƒ³ć‚’ę¤œē“¢\"] }, \"Type to search time zone\": { \"v\": [\"ć‚æć‚¤ćƒ ć‚¾ćƒ¼ćƒ³ę¤œē“¢ć®ćŸć‚å…„åŠ›ć—ć¦ćć ć•ć„\"] } } }, { \"l\": \"ko\", \"t\": { \"Search for time zone\": { \"v\": [\"ģ‹œź°„ėŒ€ 찾기\"] }, \"Type to search time zone\": { \"v\": [\"ģž…ė „ķ•˜ģ—¬ ģ‹œź°„ėŒ€ė„¼ ź²€ģƒ‰\"] } } }, { \"l\": \"lo\", \"t\": { \"Search for time zone\": { \"v\": [\"ຄົ້ນຫາເຂດເວຄາ\"] }, \"Type to search time zone\": { \"v\": [\"ąŗžąŗ“ąŗ”ą»€ąŗžąŗ·ą»ˆąŗ­ąŗ„ąŗ»ą»‰ąŗ™ąŗ«ąŗ²ą»€ąŗ‚ąŗ”ą»€ąŗ§ąŗ„ąŗ²\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search for time zone\": { \"v\": [\"IeÅ”koti laiko juostų\"] }, \"Type to search time zone\": { \"v\": [\"Ä®veskite, kad surastumėte laiko juostą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search for time zone\": { \"v\": [\"Š‘Š°Ń€Š°Ń˜ временска зона\"] }, \"Type to search time zone\": { \"v\": [\"ŠŠ°ŠæŠøŃˆŠµŃ‚Šµ за Га пребарате временска зона\"] } } }, { \"l\": \"mn\", \"t\": { \"Search for time zone\": { \"v\": [\"Цагийн бүс хайх\"] }, \"Type to search time zone\": { \"v\": [\"Цагийн бүс хайхын Ń‚ŃƒŠ»Š“ Š±ŠøŃ‡Š½Ń ŅÆŅÆ\"] } } }, { \"l\": \"my\", \"t\": { \"Type to search time zone\": { \"v\": [\"į€’į€±į€žį€…į€¶į€į€±į€¬į€ŗį€į€»į€­į€”į€ŗį€™į€»į€¬į€ø ရှာဖွေရန် စာရိုက်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Search for time zone\": { \"v\": [\"SĆøk etter tidssone\"] }, \"Type to search time zone\": { \"v\": [\"Tast for Ć„ sĆøke etter tidssone\"] } } }, { \"l\": \"nl\", \"t\": { \"Search for time zone\": { \"v\": [\"Zoeken naar tijdzone\"] }, \"Type to search time zone\": { \"v\": [\"Typ om een tijdzone te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search for time zone\": { \"v\": [\"Szukaj strefy czasowej\"] }, \"Type to search time zone\": { \"v\": [\"Wpisz, aby wyszukać strefę czasową\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search for time zone\": { \"v\": [\"Pesquisar fuso horĆ”rio\"] }, \"Type to search time zone\": { \"v\": [\"Digite para pesquisar o fuso horĆ”rio \"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Type to search time zone\": { \"v\": [\"Digite para pesquisar o fuso horĆ”rio \"] } } }, { \"l\": \"ro\", \"t\": { \"Search for time zone\": { \"v\": [\"Căutare zonă de timp\"] }, \"Type to search time zone\": { \"v\": [\"Tastați pentru a căuta fusul orar\"] } } }, { \"l\": \"ru\", \"t\": { \"Search for time zone\": { \"v\": [\"Поиск часового ŠæŠ¾ŃŃŠ°\"] }, \"Type to search time zone\": { \"v\": [\"ВвеГите Š“Š»Ń поиска часового ŠæŠ¾ŃŃŠ°\"] } } }, { \"l\": \"sk\", \"t\": { \"Search for time zone\": { \"v\": [\"VyhľadaÅ„ časovĆ© pĆ”smo\"] }, \"Type to search time zone\": { \"v\": [\"ZačnĆ­te pĆ­saÅ„ pre vyhľadĆ”vanie časovej zóny\"] } } }, { \"l\": \"sl\", \"t\": { \"Type to search time zone\": { \"v\": [\"VpiÅ”ite niz za iskanje časovnega pasu\"] } } }, { \"l\": \"sr\", \"t\": { \"Type to search time zone\": { \"v\": [\"ŠšŃƒŃ†Š°Ń˜Ń‚Šµ Га претражите временске зоне\"] } } }, { \"l\": \"sv\", \"t\": { \"Search for time zone\": { \"v\": [\"Sƶk efter en tidszon\"] }, \"Type to search time zone\": { \"v\": [\"Skriv fƶr att sƶka efter en tidszon\"] } } }, { \"l\": \"tr\", \"t\": { \"Search for time zone\": { \"v\": [\"Saat dilimi ara\"] }, \"Type to search time zone\": { \"v\": [\"Saat dilimi aramak iƧin yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Type to search time zone\": { \"v\": [\"Š’Š²ŠµŠ“Ń–Ń‚ŃŒ Š“Š»Ń пошуку часовий ŠæŠ¾ŃŃ\"] } } }, { \"l\": \"uz\", \"t\": { \"Search for time zone\": { \"v\": [\"Vaqt mintaqasini qidirish\"] }, \"Type to search time zone\": { \"v\": [\"Vaqt mintaqasini qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search for time zone\": { \"v\": [\"ęœē“¢ę—¶åŒŗ\"] }, \"Type to search time zone\": { \"v\": [\"ę‰“å­—ä»„ęœē“¢ę—¶åŒŗ\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Search for time zone\": { \"v\": [\"ęœē“¢ę™‚å€\"] }, \"Type to search time zone\": { \"v\": [\"éµå…„ä»„ęœē“¢ę™‚å€\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search for time zone\": { \"v\": [\"ęœå°‹ę™‚å€\"] }, \"Type to search time zone\": { \"v\": [\"č¼øå…„ä»„ęœå°‹ę™‚å€\"] } } }];\nconst t48 = [{ \"l\": \"ar\", \"t\": { \"Select provider\": { \"v\": [\"Ų§Ų®ŲŖŲ± Ł…Ų²ŁˆŲÆ\"] } } }, { \"l\": \"ast\", \"t\": { \"Select provider\": { \"v\": [\"Seleicionar el fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Select provider\": { \"v\": [\"VƦlg udbyder\"] } } }, { \"l\": \"de\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswƤhlen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswƤhlen\"] } } }, { \"l\": \"el\", \"t\": { \"Select provider\": { \"v\": [\"Επιλογή Ļ€Ī±ĻĻŒĻ‡ĪæĻ…\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Select provider\": { \"v\": [\"Select provider\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Select provider\": { \"v\": [\"Elija proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Select provider\": { \"v\": [\"Vali teenuspakkuja\"] } } }, { \"l\": \"eu\", \"t\": { \"Select provider\": { \"v\": [\"Hautatu hornitzailea\"] } } }, { \"l\": \"fa\", \"t\": { \"Select provider\": { \"v\": [\"ارائه دهنده Ų±Ų§ انتخاب Ś©Ł†ŪŒŲÆ\"] } } }, { \"l\": \"fi\", \"t\": { \"Select provider\": { \"v\": [\"Valitse tarjoaja\"] } } }, { \"l\": \"fr\", \"t\": { \"Select provider\": { \"v\": [\"SĆ©lectionner un fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Select provider\": { \"v\": [\"Roghnaigh solĆ”thraĆ­\"] } } }, { \"l\": \"gl\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione o provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Select provider\": { \"v\": [\"בחירת הפק\"] } } }, { \"l\": \"hr\", \"t\": { \"Select provider\": { \"v\": [\"Odaberi pružatelja\"] } } }, { \"l\": \"hu\", \"t\": { \"Select provider\": { \"v\": [\"VĆ”lasszon szolgĆ”ltatót\"] } } }, { \"l\": \"id\", \"t\": { \"Select provider\": { \"v\": [\"Pilih penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Select provider\": { \"v\": [\"Veldu þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Select provider\": { \"v\": [\"Selezionare il provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Select provider\": { \"v\": [\"ćƒ—ćƒ­ćƒć‚¤ćƒ€ćƒ¼ć‚’éøęŠž\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Select provider\": { \"v\": [\"ćƒ—ćƒ­ćƒć‚¤ćƒ€ćƒ¼ć‚’éøęŠž\"] } } }, { \"l\": \"ko\", \"t\": { \"Select provider\": { \"v\": [\"ģ œź³µģž ģ„ ķƒ\"] } } }, { \"l\": \"lo\", \"t\": { \"Select provider\": { \"v\": [\"ą»€ąŗ„ąŗ·ąŗ­ąŗąŗœąŗ¹ą»‰ą»ƒąŗ«ą»‰ąŗšą»ąŗ„ąŗ“ąŗąŗ²ąŗ™\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Select provider\": { \"v\": [\"Pasirinkti tiekėją\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Select provider\": { \"v\": [\"Š˜Š·Š±ŠµŃ€Šø ŠæŃ€Š¾Š²Š°Ń˜Š“ŠµŃ€\"] } } }, { \"l\": \"mn\", \"t\": { \"Select provider\": { \"v\": [\"Ņ®Š¹Š»Ń‡ŠøŠ»Š³ŃŃ ŅÆŠ·ŅÆŅÆŠ»ŃŠ³Ń‡ сонгох\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Select provider\": { \"v\": [\"Velg leverandĆør\"] } } }, { \"l\": \"nl\", \"t\": { \"Select provider\": { \"v\": [\"Selecteer provider\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Select provider\": { \"v\": [\"Wybierz dostawcę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Select provider\": { \"v\": [\"Selecione provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Select provider\": { \"v\": [\"Selecionar fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Select provider\": { \"v\": [\"Selectați providerul\"] } } }, { \"l\": \"ru\", \"t\": { \"Select provider\": { \"v\": [\"Š’Ń‹Š±Ń€Š°Ń‚ŃŒ поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Select provider\": { \"v\": [\"VybraÅ„ poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Select provider\": { \"v\": [\"Š˜Š·Š°Š±ŠµŃ€ŠøŃ‚Šµ ŠæŃ€ŃƒŠ¶Š°Š¾Ń†Š°\"] } } }, { \"l\": \"sv\", \"t\": { \"Select provider\": { \"v\": [\"VƤlj leverantƶr\"] } } }, { \"l\": \"tr\", \"t\": { \"Select provider\": { \"v\": [\"Hizmet sağlayıcı seƧin\"] } } }, { \"l\": \"uk\", \"t\": { \"Select provider\": { \"v\": [\"Š’ŠøŠ±ŠµŃ€Ń–Ń‚ŃŒ ŠæŠ¾ŃŃ‚Š°Ń‡Š°Š»ŃŒŠ½ŠøŠŗŠ°\"] } } }, { \"l\": \"uz\", \"t\": { \"Select provider\": { \"v\": [\"Provayderni tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Select provider\": { \"v\": [\"é€‰ę‹©ęä¾›č€…\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Select provider\": { \"v\": [\"éøę“‡ęä¾›č€…\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Select provider\": { \"v\": [\"éøå–ęä¾›č€…\"] } } }];\nconst t49 = [{ \"l\": \"ar\", \"t\": { \"Settings\": { \"v\": [\"ال؄عدادات\"] } } }, { \"l\": \"ast\", \"t\": { \"Settings\": { \"v\": [\"Configuración\"] } } }, { \"l\": \"br\", \"t\": { \"Settings\": { \"v\": [\"Arventennoù\"] } } }, { \"l\": \"ca\", \"t\": { \"Settings\": { \"v\": [\"ParĆ metres\"] } } }, { \"l\": \"cs\", \"t\": { \"Settings\": { \"v\": [\"NastavenĆ­\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Settings\": { \"v\": [\"NastavenĆ­\"] } } }, { \"l\": \"da\", \"t\": { \"Settings\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Settings\": { \"v\": [\"Einstellungen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Settings\": { \"v\": [\"Einstellungen\"] } } }, { \"l\": \"el\", \"t\": { \"Settings\": { \"v\": [\"Ī”Ļ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Settings\": { \"v\": [\"Settings\"] } } }, { \"l\": \"eo\", \"t\": { \"Settings\": { \"v\": [\"Agordo\"] } } }, { \"l\": \"es\", \"t\": { \"Settings\": { \"v\": [\"Ajustes\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Settings\": { \"v\": [\"Configuraciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Settings\": { \"v\": [\"Configuraciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Settings\": { \"v\": [\"Configuración\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Settings\": { \"v\": [\"Seadistused\"] } } }, { \"l\": \"eu\", \"t\": { \"Settings\": { \"v\": [\"Ezarpenak\"] } } }, { \"l\": \"fa\", \"t\": { \"Settings\": { \"v\": [\"ŲŖŁ†ŲøŪŒŁ…Ų§ŲŖ\"] } } }, { \"l\": \"fi\", \"t\": { \"Settings\": { \"v\": [\"Asetukset\"] } } }, { \"l\": \"fr\", \"t\": { \"Settings\": { \"v\": [\"ParamĆØtres\"] } } }, { \"l\": \"ga\", \"t\": { \"Settings\": { \"v\": [\"Socruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Settings\": { \"v\": [\"Axustes\"] } } }, { \"l\": \"he\", \"t\": { \"Settings\": { \"v\": [\"הגדרות\"] } } }, { \"l\": \"hr\", \"t\": { \"Settings\": { \"v\": [\"Postavke\"] } } }, { \"l\": \"hu\", \"t\": { \"Settings\": { \"v\": [\"BeĆ”llĆ­tĆ”sok\"] } } }, { \"l\": \"id\", \"t\": { \"Settings\": { \"v\": [\"Pengaturan\"] } } }, { \"l\": \"is\", \"t\": { \"Settings\": { \"v\": [\"Stillingar\"] } } }, { \"l\": \"it\", \"t\": { \"Settings\": { \"v\": [\"Impostazioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"ko\", \"t\": { \"Settings\": { \"v\": [\"ģ„ ķƒ\"] } } }, { \"l\": \"lo\", \"t\": { \"Settings\": { \"v\": [\"ąŗąŗ²ąŗ™ąŗ•ąŗ±ą»‰ąŗ‡ąŗ„ą»ˆąŗ²\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Settings\": { \"v\": [\"Nustatymai\"] } } }, { \"l\": \"lv\", \"t\": { \"Settings\": { \"v\": [\"IestatÄ«jumi\"] } } }, { \"l\": \"mk\", \"t\": { \"Settings\": { \"v\": [\"ŠŸŠ°Ń€Š°Š¼ŠµŃ‚Ń€Šø\"] } } }, { \"l\": \"mn\", \"t\": { \"Settings\": { \"v\": [\"Тохиргоо\"] } } }, { \"l\": \"my\", \"t\": { \"Settings\": { \"v\": [\"į€į€»į€­į€”į€ŗį€Šį€¾į€­į€į€»į€€į€ŗį€™į€»į€¬į€ø\"] } } }, { \"l\": \"nb\", \"t\": { \"Settings\": { \"v\": [\"Innstillinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Settings\": { \"v\": [\"Instellingen\"] } } }, { \"l\": \"oc\", \"t\": { \"Settings\": { \"v\": [\"ParamĆØtres\"] } } }, { \"l\": \"pl\", \"t\": { \"Settings\": { \"v\": [\"Ustawienia\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Settings\": { \"v\": [\"ConfiguraƧƵes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Settings\": { \"v\": [\"DefiniƧƵes\"] } } }, { \"l\": \"ro\", \"t\": { \"Settings\": { \"v\": [\"Setări\"] } } }, { \"l\": \"ru\", \"t\": { \"Settings\": { \"v\": [\"ŠŸŠ°Ń€Š°Š¼ŠµŃ‚Ń€Ń‹\"] } } }, { \"l\": \"sk\", \"t\": { \"Settings\": { \"v\": [\"Nastavenia\"] } } }, { \"l\": \"sl\", \"t\": { \"Settings\": { \"v\": [\"Nastavitve\"] } } }, { \"l\": \"sr\", \"t\": { \"Settings\": { \"v\": [\"ŠŸŠ¾ŃŃ‚Š°Š²ŠŗŠµ\"] } } }, { \"l\": \"sv\", \"t\": { \"Settings\": { \"v\": [\"InstƤllningar\"] } } }, { \"l\": \"tr\", \"t\": { \"Settings\": { \"v\": [\"Ayarlar\"] } } }, { \"l\": \"uk\", \"t\": { \"Settings\": { \"v\": [\"ŠŠ°Š»Š°ŃˆŃ‚ŃƒŠ²Š°Š½Š½Ń\"] } } }, { \"l\": \"uz\", \"t\": { \"Settings\": { \"v\": [\"Sozlamalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Settings\": { \"v\": [\"设置\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }];\nconst t50 = [{ \"l\": \"ar\", \"t\": { \"Settings navigation\": { \"v\": [\"Ų„Ų¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„ŲŖŁ‘ŲµŁŁ‘ŁŲ­\"] } } }, { \"l\": \"ast\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación pela configuración\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegació d'opcions\"] } } }, { \"l\": \"cs\", \"t\": { \"Settings navigation\": { \"v\": [\"Pohyb po nastavenĆ­\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Settings navigation\": { \"v\": [\"Pohyb po nastavenĆ­\"] } } }, { \"l\": \"da\", \"t\": { \"Settings navigation\": { \"v\": [\"Naviger i indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Settings navigation\": { \"v\": [\"Einstellungen für die Navigation\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Settings navigation\": { \"v\": [\"Einstellungen für die Navigation\"] } } }, { \"l\": \"el\", \"t\": { \"Settings navigation\": { \"v\": [\"Πλοήγηση ĻĻ…ĪøĪ¼ĪÆĻƒĪµĻ‰Ī½\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Settings navigation\": { \"v\": [\"Settings navigation\"] } } }, { \"l\": \"eo\", \"t\": { \"Settings navigation\": { \"v\": [\"Agorda navigado\"] } } }, { \"l\": \"es\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de ajustes\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de configuraciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de configuraciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación por ajustes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Settings navigation\": { \"v\": [\"Liikumine seadistustes\"] } } }, { \"l\": \"eu\", \"t\": { \"Settings navigation\": { \"v\": [\"Nabigazio ezarpenak\"] } } }, { \"l\": \"fa\", \"t\": { \"Settings navigation\": { \"v\": [\"Ł†Ų§ŁˆŲØŲ±ŪŒ ŲŖŁ†ŲøŪŒŁ…Ų§ŲŖ\"] } } }, { \"l\": \"fi\", \"t\": { \"Settings navigation\": { \"v\": [\"Asetusten navigointi\"] } } }, { \"l\": \"fr\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigation dans les paramĆØtres\"] } } }, { \"l\": \"ga\", \"t\": { \"Settings navigation\": { \"v\": [\"NascleanĆŗint socruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación polos axustes\"] } } }, { \"l\": \"he\", \"t\": { \"Settings navigation\": { \"v\": [\"ניווט בהגדרות\"] } } }, { \"l\": \"hr\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigacija postavki\"] } } }, { \"l\": \"hu\", \"t\": { \"Settings navigation\": { \"v\": [\"NavigĆ”ció a beĆ”llĆ­tĆ”sokban\"] } } }, { \"l\": \"id\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigasi pengaturan\"] } } }, { \"l\": \"is\", \"t\": { \"Settings navigation\": { \"v\": [\"Flakk um stillingar\"] } } }, { \"l\": \"it\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigazione delle impostazioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Settings navigation\": { \"v\": [\"ćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³čØ­å®š\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Settings navigation\": { \"v\": [\"ćƒŠćƒ“ć‚²ćƒ¼ć‚·ćƒ§ćƒ³čØ­å®š\"] } } }, { \"l\": \"ko\", \"t\": { \"Settings navigation\": { \"v\": [\"ģ„øķŒ… ķƒģƒ‰\"] } } }, { \"l\": \"lo\", \"t\": { \"Settings navigation\": { \"v\": [\"ąŗąŗ²ąŗ™ąŗ™ąŗ³ąŗ—ąŗ²ąŗ‡ąŗąŗ²ąŗ™ąŗ•ąŗ±ą»‰ąŗ‡ąŗ„ą»ˆąŗ²\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Settings navigation\": { \"v\": [\"NarÅ”ymas nustatymuose\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Settings navigation\": { \"v\": [\"ŠŸŠ°Ń€Š°Š¼ŠµŃ‚Ń€Šø за Š½Š°Š²ŠøŠ³Š°Ń†ŠøŃ˜Š°\"] } } }, { \"l\": \"mn\", \"t\": { \"Settings navigation\": { \"v\": [\"Тохиргооны навигаци\"] } } }, { \"l\": \"my\", \"t\": { \"Settings navigation\": { \"v\": [\"į€į€»į€­į€”į€ŗį€Šį€¾į€­į€į€»į€€į€ŗį€”į€Šį€½į€¾į€”į€ŗį€ø\"] } } }, { \"l\": \"nb\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigasjonsinstillinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Settings navigation\": { \"v\": [\"Instellingen navigatie\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Settings navigation\": { \"v\": [\"Ustawienia nawigacji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegação de configuraƧƵes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegação de configuraƧƵes\"] } } }, { \"l\": \"ro\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigare setări\"] } } }, { \"l\": \"ru\", \"t\": { \"Settings navigation\": { \"v\": [\"ŠŠ°Š²ŠøŠ³Š°Ń†ŠøŃ по настройкам\"] } } }, { \"l\": \"sk\", \"t\": { \"Settings navigation\": { \"v\": [\"NavigĆ”cia v nastaveniach\"] } } }, { \"l\": \"sl\", \"t\": { \"Settings navigation\": { \"v\": [\"Krmarjenje nastavitev\"] } } }, { \"l\": \"sr\", \"t\": { \"Settings navigation\": { \"v\": [\"ŠšŃ€ŠµŃ‚Š°ŃšŠµ по поГешавањима\"] } } }, { \"l\": \"sv\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigering fƶr instƤllningar\"] } } }, { \"l\": \"tr\", \"t\": { \"Settings navigation\": { \"v\": [\"Gezinme ayarları\"] } } }, { \"l\": \"uk\", \"t\": { \"Settings navigation\": { \"v\": [\"ŠŠ°Š²Ń–Š³Š°Ń†Ń–Ń у Š½Š°Š»Š°ŃˆŃ‚ŃƒŠ²Š°Š½Š½ŃŃ…\"] } } }, { \"l\": \"uz\", \"t\": { \"Settings navigation\": { \"v\": [\"Sozlamalar navigatsiyasi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Settings navigation\": { \"v\": [\"设置向导\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Settings navigation\": { \"v\": [\"čØ­å®šå€¼å°Žč¦½\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Settings navigation\": { \"v\": [\"čØ­å®šå€¼å°Žč¦½\"] } } }];\nconst t51 = [{ \"l\": \"ar\", \"t\": { \"Submit\": { \"v\": [\"Ų„Ų±Ų³Ų§Ł„\"] } } }, { \"l\": \"ast\", \"t\": { \"Submit\": { \"v\": [\"Unviar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Submit\": { \"v\": [\"Envia\"] } } }, { \"l\": \"cs\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"da\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"de\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"el\", \"t\": { \"Submit\": { \"v\": [\"΄ποβολή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Submit\": { \"v\": [\"Submit\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Submit\": { \"v\": [\"Saada\"] } } }, { \"l\": \"eu\", \"t\": { \"Submit\": { \"v\": [\"Bidali\"] } } }, { \"l\": \"fa\", \"t\": { \"Submit\": { \"v\": [\"Ų§Ų±Ų³Ų§Ł„\"] } } }, { \"l\": \"fi\", \"t\": { \"Submit\": { \"v\": [\"LƤhetƤ\"] } } }, { \"l\": \"fr\", \"t\": { \"Submit\": { \"v\": [\"Valider\"] } } }, { \"l\": \"ga\", \"t\": { \"Submit\": { \"v\": [\"Cuir isteach\"] } } }, { \"l\": \"gl\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"he\", \"t\": { \"Submit\": { \"v\": [\"הגשה\"] } } }, { \"l\": \"hr\", \"t\": { \"Submit\": { \"v\": [\"PoÅ”alji\"] } } }, { \"l\": \"hu\", \"t\": { \"Submit\": { \"v\": [\"BeküldĆ©s\"] } } }, { \"l\": \"id\", \"t\": { \"Submit\": { \"v\": [\"Kirimkan\"] } } }, { \"l\": \"is\", \"t\": { \"Submit\": { \"v\": [\"Senda inn\"] } } }, { \"l\": \"it\", \"t\": { \"Submit\": { \"v\": [\"Invia\"] } } }, { \"l\": \"ja\", \"t\": { \"Submit\": { \"v\": [\"ęå‡ŗ\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Submit\": { \"v\": [\"ęå‡ŗ\"] } } }, { \"l\": \"ko\", \"t\": { \"Submit\": { \"v\": [\"제출\"] } } }, { \"l\": \"lo\", \"t\": { \"Submit\": { \"v\": [\"ąŗŖąŗ»ą»ˆąŗ‡\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Submit\": { \"v\": [\"Pateikti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Submit\": { \"v\": [\"Š˜ŃŠæŃ€Š°Ń‚Šø\"] } } }, { \"l\": \"mn\", \"t\": { \"Submit\": { \"v\": [\"Š˜Š»Š³ŃŃŃ…\"] } } }, { \"l\": \"my\", \"t\": { \"Submit\": { \"v\": [\"į€į€„į€ŗį€žį€½į€„į€ŗį€øį€›į€”į€ŗ\"] } } }, { \"l\": \"nb\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"nl\", \"t\": { \"Submit\": { \"v\": [\"Indienen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Submit\": { \"v\": [\"Wyślij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Submit\": { \"v\": [\"Submeter\"] } } }, { \"l\": \"ro\", \"t\": { \"Submit\": { \"v\": [\"Trimiteți\"] } } }, { \"l\": \"ru\", \"t\": { \"Submit\": { \"v\": [\"Š£Ń‚Š²ŠµŃ€Š“ŠøŃ‚ŃŒ\"] } } }, { \"l\": \"sk\", \"t\": { \"Submit\": { \"v\": [\"OdoslaÅ„\"] } } }, { \"l\": \"sl\", \"t\": { \"Submit\": { \"v\": [\"PoÅ”lji\"] } } }, { \"l\": \"sr\", \"t\": { \"Submit\": { \"v\": [\"ПоГнеси\"] } } }, { \"l\": \"sv\", \"t\": { \"Submit\": { \"v\": [\"Skicka\"] } } }, { \"l\": \"tr\", \"t\": { \"Submit\": { \"v\": [\"Gƶnder\"] } } }, { \"l\": \"uk\", \"t\": { \"Submit\": { \"v\": [\"ŠŠ°Š“Ń–ŃŠ»Š°Ń‚Šø\"] } } }, { \"l\": \"uz\", \"t\": { \"Submit\": { \"v\": [\"Yuborish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Submit\": { \"v\": [\"ęäŗ¤\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Submit\": { \"v\": [\"ęäŗ¤\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Submit\": { \"v\": [\"éžäŗ¤\"] } } }];\nconst t52 = [{ \"l\": \"ar\", \"t\": { \"Unable to search the group\": { \"v\": [\"تعذّر البحث في Ų§Ł„Ł…Ų¬Ł…ŁˆŲ¹Ų©\"] } } }, { \"l\": \"ast\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nun ye posible buscar el grupu\"] } } }, { \"l\": \"br\", \"t\": { \"Unable to search the group\": { \"v\": [\"Dibosupl eo klask ar strollad\"] } } }, { \"l\": \"ca\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es pot cercar el grup\"] } } }, { \"l\": \"cs\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"da\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan ikke sĆøge pĆ„ denne gruppe\"] } } }, { \"l\": \"de\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"el\", \"t\": { \"Unable to search the group\": { \"v\": [\"Δεν είναι Γυνατή Ī· Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· της ομάΓας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Unable to search the group\": { \"v\": [\"Unable to search the group\"] } } }, { \"l\": \"eo\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ne eblas serĉi en la grupo\"] } } }, { \"l\": \"es\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es posible buscar en el grupo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar el grupo\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar en el grupo\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Unable to search the group\": { \"v\": [\"No fue posible buscar en el grupo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Gruppi ei ole vƵimalik otsida\"] } } }, { \"l\": \"eu\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ezin izan da taldea bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Unable to search the group\": { \"v\": [\"امکان جستجوی ŚÆŲ±ŁˆŁ‡ وجود ندارد\"] } } }, { \"l\": \"fi\", \"t\": { \"Unable to search the group\": { \"v\": [\"RyhmƤƤ ei voi hakea\"] } } }, { \"l\": \"fr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossible de chercher le groupe\"] } } }, { \"l\": \"ga\", \"t\": { \"Unable to search the group\": { \"v\": [\"NĆ­ fĆ©idir an grĆŗpa a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Non foi posĆ­bel buscar o grupo\"] } } }, { \"l\": \"he\", \"t\": { \"Unable to search the group\": { \"v\": [\"לא × ×™×Ŗ×Ÿ לחפש בקבוצה\"] } } }, { \"l\": \"hr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nije moguće pretražiti grupu\"] } } }, { \"l\": \"hu\", \"t\": { \"Unable to search the group\": { \"v\": [\"A csoport nem kereshető\"] } } }, { \"l\": \"id\", \"t\": { \"Unable to search the group\": { \"v\": [\"Tidak dapat mencari dalam grup\"] } } }, { \"l\": \"is\", \"t\": { \"Unable to search the group\": { \"v\": [\"Get ekki leitaư Ć­ hópnum\"] } } }, { \"l\": \"it\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossibile cercare il gruppo\"] } } }, { \"l\": \"ja\", \"t\": { \"Unable to search the group\": { \"v\": [\"ć‚°ćƒ«ćƒ¼ćƒ—ć‚’ę¤œē“¢ć§ćć¾ć›ć‚“\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Unable to search the group\": { \"v\": [\"ć‚°ćƒ«ćƒ¼ćƒ—ć‚’ę¤œē“¢ć§ćć¾ć›ć‚“\"] } } }, { \"l\": \"ko\", \"t\": { \"Unable to search the group\": { \"v\": [\"ź·øė£¹ģ„ ź²€ģƒ‰ķ•  수 ģ—†ģŒ\"] } } }, { \"l\": \"lo\", \"t\": { \"Unable to search the group\": { \"v\": [\"ąŗšą»ą»ˆąŗŖąŗ²ąŗ”ąŗ²ąŗ”ąŗ„ąŗ»ą»‰ąŗ™ąŗ«ąŗ²ąŗąŗøą»ˆąŗ”ą»„ąŗ”ą»‰\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nepavyko atlikti paieÅ”ką grupėje\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Unable to search the group\": { \"v\": [\"ŠŠµŠ¼Š¾Š¶Šµ Га се ŠæŃ€Š¾Š½Š°Ń˜Š“е Š³Ń€ŃƒŠæŠ°Ń‚а\"] } } }, { \"l\": \"mn\", \"t\": { \"Unable to search the group\": { \"v\": [\"Бүлгийг хайж чаГсангүй\"] } } }, { \"l\": \"my\", \"t\": { \"Unable to search the group\": { \"v\": [\"နဖွဲ့နား į€›į€¾į€¬į€–į€½į€±į မရနိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunne ikke sĆøke i gruppen\"] } } }, { \"l\": \"nl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan niet zoeken in de groep\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nie można przeszukać grupy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Unable to search the group\": { \"v\": [\"NĆ£o foi possĆ­vel pesquisar o grupo\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Unable to search the group\": { \"v\": [\"NĆ£o Ć© possĆ­vel pesquisar o grupo\"] } } }, { \"l\": \"ro\", \"t\": { \"Unable to search the group\": { \"v\": [\"Imposibilitatea de a căuta Ć®n grup\"] } } }, { \"l\": \"ru\", \"t\": { \"Unable to search the group\": { \"v\": [\"ŠŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾ найти Š³Ń€ŃƒŠæŠæŃƒ\"] } } }, { \"l\": \"sk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Skupinu sa nepodarilo nĆ”jsÅ„\"] } } }, { \"l\": \"sl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ni mogoče iskati po skupini\"] } } }, { \"l\": \"sr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Š“Ń€ŃƒŠæŠ° не може Га се претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Unable to search the group\": { \"v\": [\"Det gick inte att sƶka i gruppen\"] } } }, { \"l\": \"tr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Grupta arama yapılamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"Unable to search the group\": { \"v\": [\"ŠŠµŠ¼Š¾Š¶Š»ŠøŠ²Š¾ ŃˆŃƒŠŗŠ°Ń‚Šø в Š³Ń€ŃƒŠæŃ–\"] } } }, { \"l\": \"uz\", \"t\": { \"Unable to search the group\": { \"v\": [\"Guruhni qidirish imkonsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Unable to search the group\": { \"v\": [\"ę— ę³•ęœē“¢åˆ†ē»„\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Unable to search the group\": { \"v\": [\"ē„”ę³•ęœå°‹ē¾¤ēµ„\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Unable to search the group\": { \"v\": [\"ē„”ę³•ęœå°‹ē¾¤ēµ„\"] } } }];\nconst t53 = [{ \"l\": \"ar\", \"t\": { \"Undo changes\": { \"v\": [\"ŲŖŲ±Ų§Ų¬ŁŽŲ¹ عن Ų§Ł„ŲŖŲŗŁŠŁŠŲ±Ų§ŲŖ\"] } } }, { \"l\": \"ast\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Undo changes\": { \"v\": [\"DesfĆ©s els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Undo changes\": { \"v\": [\"VzĆ­t změny zpět\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Undo changes\": { \"v\": [\"VzĆ­t změny zpět\"] } } }, { \"l\": \"da\", \"t\": { \"Undo changes\": { \"v\": [\"Fortryd Ʀndringer\"] } } }, { \"l\": \"de\", \"t\": { \"Undo changes\": { \"v\": [\"Ƅnderungen rückgƤngig machen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Undo changes\": { \"v\": [\"Ƅnderungen rückgƤngig machen\"] } } }, { \"l\": \"el\", \"t\": { \"Undo changes\": { \"v\": [\"Ī‘Ī½Ī±ĪÆĻĪµĻƒĪ· Ī‘Ī»Ī»Ī±Ī³ĻŽĪ½\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Undo changes\": { \"v\": [\"Undo changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Undo changes\": { \"v\": [\"Pƶƶra muudatused tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"Undo changes\": { \"v\": [\"Aldaketak desegin\"] } } }, { \"l\": \"fa\", \"t\": { \"Undo changes\": { \"v\": [\"Ł„ŲŗŁˆ تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Undo changes\": { \"v\": [\"Kumoa muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Undo changes\": { \"v\": [\"Annuler les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Undo changes\": { \"v\": [\"Cealaigh athruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Undo changes\": { \"v\": [\"ביטול שינויים\"] } } }, { \"l\": \"hr\", \"t\": { \"Undo changes\": { \"v\": [\"PoniÅ”ti promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Undo changes\": { \"v\": [\"VĆ”ltoztatĆ”sok visszavonĆ”sa\"] } } }, { \"l\": \"id\", \"t\": { \"Undo changes\": { \"v\": [\"Urungkan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Undo changes\": { \"v\": [\"Afturkalla breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Undo changes\": { \"v\": [\"Cancella i cambiamenti\"] } } }, { \"l\": \"ja\", \"t\": { \"Undo changes\": { \"v\": [\"å¤‰ę›“ć‚’å–ć‚Šę¶ˆć—\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Undo changes\": { \"v\": [\"å¤‰ę›“ć‚’å–ć‚Šę¶ˆć—\"] } } }, { \"l\": \"ko\", \"t\": { \"Undo changes\": { \"v\": [\"변경 ė˜ėŒė¦¬źø°\"] } } }, { \"l\": \"lo\", \"t\": { \"Undo changes\": { \"v\": [\"ąŗą»‰ąŗ­ąŗ™ąŗ„ąŗ·ąŗ™ąŗąŗ²ąŗ™ąŗ›ą»ˆąŗ½ąŗ™ą»ąŗ›ąŗ‡\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Undo changes\": { \"v\": [\"AtÅ”aukti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Undo changes\": { \"v\": [\"Врати ги промените\"] } } }, { \"l\": \"mn\", \"t\": { \"Undo changes\": { \"v\": [\"Өөрчлөлтийг Š±ŃƒŃ†Š°Š°Ń…\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Undo changes\": { \"v\": [\"Tilbakestill endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Undo changes\": { \"v\": [\"Wijzigingen ongedaan maken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Undo changes\": { \"v\": [\"Cofnij zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Undo changes\": { \"v\": [\"Desfazer modificaƧƵes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Undo changes\": { \"v\": [\"Anular alteraƧƵes\"] } } }, { \"l\": \"ro\", \"t\": { \"Undo changes\": { \"v\": [\"Anularea modificărilor\"] } } }, { \"l\": \"ru\", \"t\": { \"Undo changes\": { \"v\": [\"ŠžŃ‚Š¼ŠµŠ½ŠøŃ‚ŃŒ ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ\"] } } }, { \"l\": \"sk\", \"t\": { \"Undo changes\": { \"v\": [\"VrĆ”tiÅ„ zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Undo changes\": { \"v\": [\"Razveljavi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Undo changes\": { \"v\": [\"ŠŸŠ¾Š½ŠøŃˆŃ‚Šø измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Undo changes\": { \"v\": [\"ƅngra Ƥndringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Undo changes\": { \"v\": [\"Değişiklikleri geri al\"] } } }, { \"l\": \"uk\", \"t\": { \"Undo changes\": { \"v\": [\"Š”ŠŗŠ°ŃŃƒŠ²Š°Ń‚Šø зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Undo changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Undo changes\": { \"v\": [\"撤销曓改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Undo changes\": { \"v\": [\"å–ę¶ˆę›“ę”¹\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Undo changes\": { \"v\": [\"é‚„åŽŸč®Šę›“\"] } } }];\nconst t54 = [{ \"l\": \"ar\", \"t\": { \"User status: {status}\": { \"v\": [\"حالة المستخدِم: {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"User status: {status}\": { \"v\": [\"EstĆ”u del usuariu: {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav uživatele: {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav uživatele: {status}\"] } } }, { \"l\": \"da\", \"t\": { \"User status: {status}\": { \"v\": [\"Brugerstatus: {status}\"] } } }, { \"l\": \"de\", \"t\": { \"User status: {status}\": { \"v\": [\"Benutzerstatus: {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"User status: {status}\": { \"v\": [\"Benutzerstatus: {status}\"] } } }, { \"l\": \"el\", \"t\": { \"User status: {status}\": { \"v\": [\"ĪšĪ±Ļ„Ī¬ĻƒĻ„Ī±ĻƒĪ· Ļ‡ĻĪ®ĻƒĻ„Ī·: {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"User status: {status}\": { \"v\": [\"User status: {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"User status: {status}\": { \"v\": [\"Estatus del usuario: {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado del usuario: {status}\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado del usuario: {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"User status: {status}\": { \"v\": [\"Kasutaja olek: {status}\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"User status: {status}\": { \"v\": [\"وضعیت کاربر: {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"User status: {status}\": { \"v\": [\"KƤyttƤjƤn tila: {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"User status: {status}\": { \"v\": [\"Statut de l'utilisateur : {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"User status: {status}\": { \"v\": [\"StĆ”das ĆŗsĆ”ideora: {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado do usuario: {status}\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"User status: {status}\": { \"v\": [\"Status korisnika: {status}\"] } } }, { \"l\": \"hu\", \"t\": { \"User status: {status}\": { \"v\": [\"FelhasznĆ”ló Ć”llapota: {status}\"] } } }, { \"l\": \"id\", \"t\": { \"User status: {status}\": { \"v\": [\"Status pengguna: {status}\"] } } }, { \"l\": \"is\", \"t\": { \"User status: {status}\": { \"v\": [\"Staưa notanda: {status}\"] } } }, { \"l\": \"it\", \"t\": { \"User status: {status}\": { \"v\": [\"Stato dell'utente: {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"User status: {status}\": { \"v\": [\"ćƒ¦ćƒ¼ć‚¶ć®ć‚¹ćƒ†ćƒ¼ć‚æć‚¹: {status}\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"User status: {status}\": { \"v\": [\"ćƒ¦ćƒ¼ć‚¶ć®ć‚¹ćƒ†ćƒ¼ć‚æć‚¹: {status}\"] } } }, { \"l\": \"ko\", \"t\": { \"User status: {status}\": { \"v\": [\"ģ‚¬ģš©ģž 상태: {status}\"] } } }, { \"l\": \"lo\", \"t\": { \"User status: {status}\": { \"v\": [\"ąŗŖąŗ°ąŗ–ąŗ²ąŗ™ąŗ°ąŗœąŗ¹ą»‰ą»ƒąŗŠą»‰: {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"User status: {status}\": { \"v\": [\"Naudotojo bÅ«sena: {status}\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"User status: {status}\": { \"v\": [\"Š”Ń‚Š°Ń‚ŃƒŃ: {status}\"] } } }, { \"l\": \"mn\", \"t\": { \"User status: {status}\": { \"v\": [\"Š„ŃŃ€ŃŠ³Š»ŃŠ³Ń‡ŠøŠ¹Š½ төлөв: {status}\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"User status: {status}\": { \"v\": [\"Brukerstatus: {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"User status: {status}\": { \"v\": [\"Gebruikersstatus: {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"User status: {status}\": { \"v\": [\"Status użytkownika: {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"User status: {status}\": { \"v\": [\"Status do usuĆ”rio: {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado do utilizador: {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"User status: {status}\": { \"v\": [\"Status utilizator: {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"User status: {status}\": { \"v\": [\"Š”Ń‚Š°Ń‚ŃƒŃ ŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Ń‚ŠµŠ»Ń: {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav užívateľa: {status}\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"User status: {status}\": { \"v\": [\"Š”Ń‚Š°Ń‚ŃƒŃ корисника: {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"User status: {status}\": { \"v\": [\"AnvƤndarstatus: {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"User status: {status}\": { \"v\": [\"Kullanıcı durumu: {status}\"] } } }, { \"l\": \"uk\", \"t\": { \"User status: {status}\": { \"v\": [\"Š”Ń‚Š°Ń‚ŃƒŃ ŠŗŠ¾Ń€ŠøŃŃ‚ŃƒŠ²Š°Ń‡Š°: {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"User status: {status}\": { \"v\": [\"Foydalanuvchi holati: {status}\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"User status: {status}\": { \"v\": [\"ē”Øęˆ·ēŠ¶ę€ļ¼š{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"User status: {status}\": { \"v\": [\"ē”Øęˆ¶ē‹€ę…‹ļ¼š{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"User status: {status}\": { \"v\": [\"ä½æē”Øč€…ē‹€ę…‹ļ¼š{status}\"] } } }];\nexport {\n t27 as $,\n t20 as A,\n t49 as B,\n t46 as C,\n t38 as D,\n t10 as E,\n t28 as F,\n t4 as G,\n t29 as H,\n t32 as I,\n t50 as J,\n t36 as K,\n n as L,\n t30 as M,\n t6 as N,\n t22 as O,\n t24 as P,\n t21 as Q,\n t25 as R,\n t54 as S,\n t12 as T,\n t40 as U,\n t44 as V,\n t9 as W,\n t16 as X,\n t8 as Y,\n t48 as Z,\n t43 as _,\n t as a,\n t34 as a0,\n t13 as a1,\n t14 as a2,\n t53 as b,\n t19 as c,\n t2 as d,\n t23 as e,\n t35 as f,\n t18 as g,\n t47 as h,\n t52 as i,\n t0 as j,\n t15 as k,\n t51 as l,\n t26 as m,\n t11 as n,\n t31 as o,\n t7 as p,\n t33 as q,\n register as r,\n t45 as s,\n t3 as t,\n t39 as u,\n t17 as v,\n t5 as w,\n t1 as x,\n t42 as y,\n t37 as z\n};\n//# sourceMappingURL=_l10n.mjs.map\n","import { formatRelativeTime, getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { computed, toValue, ref, watchEffect, onUnmounted, readonly } from \"vue\";\nimport { r as register, d as t2, a as t } from \"../../chunks/_l10n.mjs\";\nregister(t2);\nconst FEW_SECONDS_AGO = {\n long: t(\"a few seconds ago\"),\n short: t(\"seconds ago\"),\n // FOR TRANSLATORS: Shorter version of 'a few seconds ago'\n narrow: t(\"sec. ago\")\n // FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'\n};\nfunction useFormatRelativeTime(timestamp = Date.now(), opts = {}) {\n let timeoutId;\n const date = computed(() => new Date(toValue(timestamp)));\n const options = computed(() => {\n const { language, relativeTime: relativeTime2, ignoreSeconds } = toValue(opts);\n return {\n ...language && { language },\n ...relativeTime2 && { relativeTime: relativeTime2 },\n ignoreSeconds: ignoreSeconds ? FEW_SECONDS_AGO[relativeTime2 || \"long\"] : false\n };\n });\n const relativeTime = ref(\"\");\n watchEffect(updateRelativeTime);\n function updateRelativeTime() {\n const timestamp2 = date.value.getTime();\n if (Number.isNaN(timestamp2)) {\n relativeTime.value = t(\"Invalid date\");\n return;\n } else {\n relativeTime.value = formatRelativeTime(date.value, options.value);\n }\n if (toValue(opts).update !== false) {\n const diff = Math.abs(Date.now() - timestamp2);\n const interval = diff > 12e4 || options.value.ignoreSeconds ? Math.min(diff / 60, 18e5) : 1e3;\n timeoutId = window.setTimeout(updateRelativeTime, interval);\n }\n }\n onUnmounted(() => timeoutId && window.clearTimeout(timeoutId));\n return readonly(relativeTime);\n}\nfunction useFormatTime(timestamp, opts) {\n const options = computed(() => ({\n locale: getCanonicalLocale(),\n format: { dateStyle: \"short\", timeStyle: \"medium\" },\n ...toValue(opts)\n }));\n const formatter = computed(() => new Intl.DateTimeFormat(options.value.locale, options.value.format));\n return computed(() => formatter.value.format(toValue(timestamp)));\n}\nexport {\n useFormatRelativeTime,\n useFormatTime\n};\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, computed, toRef, openBlock, createElementBlock, toDisplayString, unref } from \"vue\";\nimport { useFormatTime, useFormatRelativeTime } from \"../composables/useFormatDateTime/index.mjs\";\nconst _hoisted_1 = [\"data-timestamp\", \"title\", \"textContent\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTime\",\n props: {\n timestamp: {},\n format: { default: () => ({ timeStyle: \"medium\", dateStyle: \"short\" }) },\n relativeTime: { type: [Boolean, String], default: \"long\" },\n ignoreSeconds: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const timeOptions = computed(() => ({ format: props.format }));\n const relativeTimeOptions = computed(() => ({\n ignoreSeconds: props.ignoreSeconds,\n relativeTime: props.relativeTime || \"long\",\n update: props.relativeTime !== false\n }));\n const title = useFormatTime(toRef(() => props.timestamp), timeOptions);\n const relativeTime = useFormatRelativeTime(toRef(() => props.timestamp), relativeTimeOptions);\n const formattedTime = computed(() => props.relativeTime ? relativeTime.value : title.value);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n class: \"nc-datetime\",\n dir: \"auto\",\n \"data-timestamp\": __props.timestamp,\n title: unref(title),\n textContent: toDisplayString(formattedTime.value)\n }, null, 8, _hoisted_1);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcDateTime.vue_vue_type_script_setup_true_lang.mjs.map\n","import { computed, customRef, effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, isReactive, isRef, nextTick, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, provide, reactive, readonly, ref, shallowReadonly, shallowRef, toRef as toRef$1, toRefs as toRefs$1, toValue, unref, watch, watchEffect } from \"vue\";\n//#region computedEager/index.ts\n/**\n*\n* @deprecated This function will be removed in future version.\n*\n* Note: If you are using Vue 3.4+, you can straight use computed instead.\n* Because in Vue 3.4+, if computed new value does not change,\n* computed, effect, watch, watchEffect, render dependencies will not be triggered.\n* refer: https://github.com/vuejs/core/pull/5912\n*\n* @param fn effect function\n* @param options WatchOptionsBase\n* @returns readonly shallowRef\n*/\nfunction computedEager(fn, options) {\n\tvar _options$flush;\n\tconst result = shallowRef();\n\twatchEffect(() => {\n\t\tresult.value = fn();\n\t}, {\n\t\t...options,\n\t\tflush: (_options$flush = options === null || options === void 0 ? void 0 : options.flush) !== null && _options$flush !== void 0 ? _options$flush : \"sync\"\n\t});\n\treturn readonly(result);\n}\n/** @deprecated use `computedEager` instead */\nconst eagerComputed = computedEager;\n//#endregion\n//#region computedWithControl/index.ts\n/**\n* Explicitly define the deps of computed.\n*\n* @param source\n* @param fn\n*/\nfunction computedWithControl(source, fn, options = {}) {\n\tlet v = void 0;\n\tlet track;\n\tlet trigger;\n\tlet dirty = true;\n\tconst update = () => {\n\t\tdirty = true;\n\t\ttrigger();\n\t};\n\twatch(source, update, {\n\t\tflush: \"sync\",\n\t\t...options\n\t});\n\tconst get = typeof fn === \"function\" ? fn : fn.get;\n\tconst set = typeof fn === \"function\" ? void 0 : fn.set;\n\tconst result = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tif (dirty) {\n\t\t\t\t\tv = get(v);\n\t\t\t\t\tdirty = false;\n\t\t\t\t}\n\t\t\t\ttrack();\n\t\t\t\treturn v;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset === null || set === void 0 || set(v);\n\t\t\t}\n\t\t};\n\t});\n\tresult.trigger = update;\n\treturn result;\n}\n/** @deprecated use `computedWithControl` instead */\nconst controlledComputed = computedWithControl;\n//#endregion\n//#region createDisposableDirective/index.ts\n/**\n* Utility for authoring disposable directives. Reactive effects created within `mounted` directive hook will be tracked and automatically disposed when directive is unmounted.\n*\n* @see https://vueuse.org/createDisposableDirective\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createDisposableDirective(origin = {}) {\n\tfunction isFunc(fn) {\n\t\treturn typeof fn === \"function\";\n\t}\n\tconst normalisedOrigin = isFunc(origin) ? {\n\t\tmounted: origin,\n\t\tupdated: origin\n\t} : origin;\n\tconst { mounted, unmounted } = normalisedOrigin;\n\tif (!isFunc(mounted)) return origin;\n\tconst scopeWeakMap = /* @__PURE__ */ new WeakMap();\n\treturn {\n\t\t...normalisedOrigin,\n\t\tmounted(el, binding, vNode, prevNode) {\n\t\t\tvar _scopeWeakMap$get;\n\t\t\tconst scope = (_scopeWeakMap$get = scopeWeakMap.get(el)) !== null && _scopeWeakMap$get !== void 0 ? _scopeWeakMap$get : effectScope();\n\t\t\tscopeWeakMap.set(el, scope);\n\t\t\tscope.run(() => {\n\t\t\t\tmounted === null || mounted === void 0 || mounted(el, binding, vNode, prevNode);\n\t\t\t});\n\t\t},\n\t\tunmounted(el, binding, vNode, prevNode) {\n\t\t\tvar _scopeWeakMap$get2;\n\t\t\t(_scopeWeakMap$get2 = scopeWeakMap.get(el)) === null || _scopeWeakMap$get2 === void 0 || _scopeWeakMap$get2.stop();\n\t\t\tscopeWeakMap.delete(el);\n\t\t\tif (isFunc(unmounted)) unmounted(el, binding, vNode, prevNode);\n\t\t}\n\t};\n}\n//#endregion\n//#region tryOnScopeDispose/index.ts\n/**\n* Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing\n*\n* @param fn\n*/\nfunction tryOnScopeDispose(fn, failSilently) {\n\tif (getCurrentScope()) {\n\t\tonScopeDispose(fn, failSilently);\n\t\treturn true;\n\t}\n\treturn false;\n}\n//#endregion\n//#region createEventHook/index.ts\n/**\n* Utility for creating event hooks\n*\n* @see https://vueuse.org/createEventHook\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createEventHook() {\n\tconst fns = /* @__PURE__ */ new Set();\n\tconst off = (fn) => {\n\t\tfns.delete(fn);\n\t};\n\tconst clear = () => {\n\t\tfns.clear();\n\t};\n\tconst on = (fn) => {\n\t\tfns.add(fn);\n\t\tconst offFn = () => off(fn);\n\t\ttryOnScopeDispose(offFn);\n\t\treturn { off: offFn };\n\t};\n\tconst trigger = (...args) => {\n\t\treturn Promise.all(Array.from(fns).map((fn) => fn(...args)));\n\t};\n\treturn {\n\t\ton,\n\t\toff,\n\t\ttrigger,\n\t\tclear\n\t};\n}\n//#endregion\n//#region createGlobalState/index.ts\n/**\n* Keep states in the global scope to be reusable across Vue instances.\n*\n* @see https://vueuse.org/createGlobalState\n* @param stateFactory A factory function to create the state\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createGlobalState(stateFactory) {\n\tlet initialized = false;\n\tlet state;\n\tconst scope = effectScope(true);\n\treturn ((...args) => {\n\t\tif (!initialized) {\n\t\t\tstate = scope.run(() => stateFactory(...args));\n\t\t\tinitialized = true;\n\t\t}\n\t\treturn state;\n\t});\n}\n//#endregion\n//#region provideLocal/map.ts\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n//#endregion\n//#region injectLocal/index.ts\n/**\n* On the basis of `inject`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* injectLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*\n* @__NO_SIDE_EFFECTS__\n*/\nconst injectLocal = (...args) => {\n\tvar _getCurrentInstance;\n\tconst key = args[0];\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null && !hasInjectionContext()) throw new Error(\"injectLocal must be called in setup\");\n\tif (owner && localProvidedStateMap.has(owner) && key in localProvidedStateMap.get(owner)) return localProvidedStateMap.get(owner)[key];\n\treturn inject(...args);\n};\n//#endregion\n//#region provideLocal/index.ts\n/**\n* On the basis of `provide`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* provideLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*/\nfunction provideLocal(key, value) {\n\tvar _getCurrentInstance;\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null) throw new Error(\"provideLocal must be called in setup\");\n\tif (!localProvidedStateMap.has(owner)) localProvidedStateMap.set(owner, Object.create(null));\n\tconst localProvidedState = localProvidedStateMap.get(owner);\n\tlocalProvidedState[key] = value;\n\treturn provide(key, value);\n}\n//#endregion\n//#region createInjectionState/index.ts\nfunction createInjectionState(composable, options) {\n\tconst key = (options === null || options === void 0 ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n\tconst defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;\n\tconst useProvidingState = (...args) => {\n\t\tconst state = composable(...args);\n\t\tprovideLocal(key, state);\n\t\treturn state;\n\t};\n\tconst useInjectedState = () => injectLocal(key, defaultValue);\n\treturn [useProvidingState, useInjectedState];\n}\n//#endregion\n//#region createRef/index.ts\n/**\n* Returns a `deepRef` or `shallowRef` depending on the `deep` param.\n*\n* @example createRef(1) // ShallowRef\n* @example createRef(1, false) // ShallowRef\n* @example createRef(1, true) // Ref\n* @example createRef(\"string\") // ShallowRef\n* @example createRef<\"A\"|\"B\">(\"A\", true) // Ref<\"A\"|\"B\">\n*\n* @param value\n* @param deep\n* @returns the `deepRef` or `shallowRef`\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createRef(value, deep) {\n\tif (deep === true) return ref(value);\n\telse return shallowRef(value);\n}\n//#endregion\n//#region utils/is.ts\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n\tif (!condition) console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {};\nconst rand = (min, max) => {\n\tmin = Math.ceil(min);\n\tmax = Math.floor(max);\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.hasOwn(val, key);\nconst isIOS = /* #__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n\tvar _window, _window2, _window3;\n\treturn isClient && !!((_window = window) === null || _window === void 0 || (_window = _window.navigator) === null || _window === void 0 ? void 0 : _window.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.navigator) === null || _window2 === void 0 ? void 0 : _window2.maxTouchPoints) > 2 && /iPad|Macintosh/.test((_window3 = window) === null || _window3 === void 0 ? void 0 : _window3.navigator.userAgent));\n}\n//#endregion\n//#region toRef/index.ts\nfunction toRef(...args) {\n\tif (args.length !== 1) return toRef$1(...args);\n\tconst r = args[0];\n\treturn typeof r === \"function\" ? readonly(customRef(() => ({\n\t\tget: r,\n\t\tset: noop\n\t}))) : ref(r);\n}\n//#endregion\n//#region utils/filters.ts\nfunction createFilterWrapper(filter, fn) {\n\tfunction wrapper(...args) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tPromise.resolve(filter(() => fn.apply(this, args), {\n\t\t\t\tfn,\n\t\t\t\tthisArg: this,\n\t\t\t\targs\n\t\t\t})).then(resolve).catch(reject);\n\t\t});\n\t}\n\tif (\"cancel\" in filter) Object.assign(wrapper, {\n\t\tcancel: filter.cancel,\n\t\tflush: filter.flush,\n\t\tisPending: filter.isPending\n\t});\n\treturn wrapper;\n}\nconst bypassFilter = (invoke) => {\n\treturn invoke();\n};\n/**\n* Create an EventFilter that debounce the events\n*/\nfunction debounceFilter(ms, options = {}) {\n\tlet timer;\n\tlet maxTimer;\n\tlet lastRejector = noop;\n\tlet lastResolve = noop;\n\tconst _pending = shallowRef(false);\n\tconst _clearTimeout = (timer) => {\n\t\tclearTimeout(timer);\n\t\tlastRejector();\n\t\tlastRejector = noop;\n\t};\n\tlet lastInvoker;\n\tconst handler = (invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst maxDuration = toValue(options.maxWait);\n\t\tif (timer) _clearTimeout(timer);\n\t\tif (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\t_pending.value = false;\n\t\t\treturn Promise.resolve(invoke());\n\t\t}\n\t\t_pending.value = true;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlastRejector = options.rejectOnCancel ? reject : resolve;\n\t\t\tlastResolve = resolve;\n\t\t\tlastInvoker = invoke;\n\t\t\tif (maxDuration && !maxTimer) maxTimer = setTimeout(() => {\n\t\t\t\tif (timer) _clearTimeout(timer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\t_pending.value = false;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}, maxDuration);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tif (maxTimer) _clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\t_pending.value = false;\n\t\t\t\tresolve(invoke());\n\t\t\t}, duration);\n\t\t});\n\t};\n\treturn Object.assign(handler, {\n\t\tcancel: () => {\n\t\t\tif (timer) {\n\t\t\t\t_clearTimeout(timer);\n\t\t\t\ttimer = void 0;\n\t\t\t}\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\t_pending.value = false;\n\t\t\tlastResolve = noop;\n\t\t},\n\t\tflush: () => {\n\t\t\tif (_pending.value) {\n\t\t\t\tif (timer) {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\ttimer = void 0;\n\t\t\t\t}\n\t\t\t\tif (maxTimer) {\n\t\t\t\t\tclearTimeout(maxTimer);\n\t\t\t\t\tmaxTimer = void 0;\n\t\t\t\t}\n\t\t\t\t_pending.value = false;\n\t\t\t\tconst resolve = lastResolve;\n\t\t\t\tlastRejector = noop;\n\t\t\t\tlastResolve = noop;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}\n\t\t},\n\t\tisPending: shallowReadonly(_pending)\n\t});\n}\nfunction throttleFilter(...args) {\n\tlet lastExec = 0;\n\tlet timer;\n\tlet isLeading = true;\n\tlet lastRejector = noop;\n\tlet lastValue;\n\tlet ms;\n\tlet trailing;\n\tlet leading;\n\tlet rejectOnCancel;\n\tif (!isRef(args[0]) && typeof args[0] === \"object\") ({delay: ms, trailing = true, leading = true, rejectOnCancel = false} = args[0]);\n\telse [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n\tconst clear = () => {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t\tlastRejector();\n\t\t\tlastRejector = noop;\n\t\t}\n\t};\n\tconst filter = (_invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst elapsed = Date.now() - lastExec;\n\t\tconst invoke = () => {\n\t\t\treturn lastValue = _invoke();\n\t\t};\n\t\tclear();\n\t\tif (duration <= 0) {\n\t\t\tlastExec = Date.now();\n\t\t\treturn invoke();\n\t\t}\n\t\tif (elapsed > duration) {\n\t\t\tlastExec = Date.now();\n\t\t\tif (leading || !isLeading) invoke();\n\t\t} else if (trailing) lastValue = new Promise((resolve, reject) => {\n\t\t\tlastRejector = rejectOnCancel ? reject : resolve;\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tlastExec = Date.now();\n\t\t\t\tisLeading = true;\n\t\t\t\tresolve(invoke());\n\t\t\t\tclear();\n\t\t\t}, Math.max(0, duration - elapsed));\n\t\t});\n\t\tif (!leading && !timer) timer = setTimeout(() => isLeading = true, duration);\n\t\tisLeading = false;\n\t\treturn lastValue;\n\t};\n\treturn filter;\n}\n/**\n* EventFilter that gives extra controls to pause and resume the filter\n*\n* @param extendFilter Extra filter to apply when the PausableFilter is active, default to none\n* @param options Options to configure the filter\n*/\nfunction pausableFilter(extendFilter = bypassFilter, options = {}) {\n\tconst { initialState = \"active\" } = options;\n\tconst isActive = toRef(initialState === \"active\");\n\tfunction pause() {\n\t\tisActive.value = false;\n\t}\n\tfunction resume() {\n\t\tisActive.value = true;\n\t}\n\tconst eventFilter = (...args) => {\n\t\tif (isActive.value) extendFilter(...args);\n\t};\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume,\n\t\teventFilter\n\t};\n}\n//#endregion\n//#region utils/general.ts\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n\treturn new Promise((resolve, reject) => {\n\t\tif (throwOnTimeout) setTimeout(reject, ms, reason);\n\t\telse setTimeout(resolve, ms);\n\t});\n}\nfunction identity(arg) {\n\treturn arg;\n}\n/**\n* Create singleton promise function\n*\n* @example\n* ```\n* const promise = createSingletonPromise(async () => { ... })\n*\n* await promise()\n* await promise() // all of them will be bind to a single promise instance\n* await promise() // and be resolved together\n* ```\n*/\nfunction createSingletonPromise(fn) {\n\tlet _promise;\n\tfunction wrapper() {\n\t\tif (!_promise) _promise = fn();\n\t\treturn _promise;\n\t}\n\twrapper.reset = async () => {\n\t\tconst _prev = _promise;\n\t\t_promise = void 0;\n\t\tif (_prev) await _prev;\n\t};\n\treturn wrapper;\n}\nfunction invoke(fn) {\n\treturn fn();\n}\nfunction containsProp(obj, ...props) {\n\treturn props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n\tvar _target$match;\n\tif (typeof target === \"number\") return target + delta;\n\tconst value = ((_target$match = target.match(/^-?\\d+\\.?\\d*/)) === null || _target$match === void 0 ? void 0 : _target$match[0]) || \"\";\n\tconst unit = target.slice(value.length);\n\tconst result = Number.parseFloat(value) + delta;\n\tif (Number.isNaN(result)) return target;\n\treturn result + unit;\n}\n/**\n* Get a px value for SSR use, do not rely on this method outside of SSR as REM unit is assumed at 16px, which might not be the case on the client\n*/\nfunction pxValue(px) {\n\treturn px.endsWith(\"rem\") ? Number.parseFloat(px) * 16 : Number.parseFloat(px);\n}\n/**\n* Create a new subset object by giving keys\n*/\nfunction objectPick(obj, keys, omitUndefined = false) {\n\treturn keys.reduce((n, k) => {\n\t\tif (k in obj) {\n\t\t\tif (!omitUndefined || obj[k] !== void 0) n[k] = obj[k];\n\t\t}\n\t\treturn n;\n\t}, {});\n}\n/**\n* Create a new subset object by omit giving keys\n*/\nfunction objectOmit(obj, keys, omitUndefined = false) {\n\treturn Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n\t\treturn (!omitUndefined || value !== void 0) && !keys.includes(key);\n\t}));\n}\nfunction objectEntries(obj) {\n\treturn Object.entries(obj);\n}\nfunction toArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n//#endregion\n//#region utils/port.ts\nfunction cacheStringFunction(fn) {\n\tconst cache = Object.create(null);\n\treturn ((str) => {\n\t\treturn cache[str] || (cache[str] = fn(str));\n\t});\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n\treturn str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n//#endregion\n//#region utils/vue.ts\nfunction getLifeCycleTarget(target) {\n\treturn target || getCurrentInstance();\n}\n//#endregion\n//#region createSharedComposable/index.ts\n/**\n* Make a composable function usable with multiple Vue instances.\n*\n* @see https://vueuse.org/createSharedComposable\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createSharedComposable(composable) {\n\tif (!isClient) return composable;\n\tlet subscribers = 0;\n\tlet state;\n\tlet scope;\n\tconst dispose = () => {\n\t\tsubscribers -= 1;\n\t\tif (scope && subscribers <= 0) {\n\t\t\tscope.stop();\n\t\t\tstate = void 0;\n\t\t\tscope = void 0;\n\t\t}\n\t};\n\treturn ((...args) => {\n\t\tsubscribers += 1;\n\t\tif (!scope) {\n\t\t\tscope = effectScope(true);\n\t\t\tstate = scope.run(() => composable(...args));\n\t\t}\n\t\ttryOnScopeDispose(dispose);\n\t\treturn state;\n\t});\n}\n//#endregion\n//#region extendRef/index.ts\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n\tfor (const [key, value] of Object.entries(extend)) {\n\t\tif (key === \"value\") continue;\n\t\tif (isRef(value) && unwrap) Object.defineProperty(ref, key, {\n\t\t\tget() {\n\t\t\t\treturn value.value;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tvalue.value = v;\n\t\t\t},\n\t\t\tenumerable\n\t\t});\n\t\telse Object.defineProperty(ref, key, {\n\t\t\tvalue,\n\t\t\tenumerable\n\t\t});\n\t}\n\treturn ref;\n}\n//#endregion\n//#region get/index.ts\nfunction get(obj, key) {\n\tif (key == null) return unref(obj);\n\treturn unref(obj)[key];\n}\n//#endregion\n//#region isDefined/index.ts\nfunction isDefined(v) {\n\treturn unref(v) != null;\n}\n//#endregion\n//#region makeDestructurable/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction makeDestructurable(obj, arr) {\n\tif (typeof Symbol !== \"undefined\") {\n\t\tconst clone = { ...obj };\n\t\tObject.defineProperty(clone, Symbol.iterator, {\n\t\t\tenumerable: false,\n\t\t\tvalue() {\n\t\t\t\tlet index = 0;\n\t\t\t\treturn { next: () => ({\n\t\t\t\t\tvalue: arr[index++],\n\t\t\t\t\tdone: index > arr.length\n\t\t\t\t}) };\n\t\t\t}\n\t\t});\n\t\treturn clone;\n\t} else return Object.assign([...arr], obj);\n}\n//#endregion\n//#region reactify/index.ts\n/**\n* Converts plain function into a reactive function.\n* The converted function accepts refs as it's arguments\n* and returns a ComputedRef, with proper typing.\n*\n* @param fn - Source function\n* @param options - Options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactify(fn, options) {\n\tconst unrefFn = (options === null || options === void 0 ? void 0 : options.computedGetter) === false ? unref : toValue;\n\treturn function(...args) {\n\t\treturn computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n\t};\n}\n/** @deprecated use `reactify` instead */\nconst createReactiveFn = reactify;\n//#endregion\n//#region reactifyObject/index.ts\n/**\n* Apply `reactify` to an object\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n\tlet keys = [];\n\tlet options;\n\tif (Array.isArray(optionsOrKeys)) keys = optionsOrKeys;\n\telse {\n\t\toptions = optionsOrKeys;\n\t\tconst { includeOwnProperties = true } = optionsOrKeys;\n\t\tkeys.push(...Object.keys(obj));\n\t\tif (includeOwnProperties) keys.push(...Object.getOwnPropertyNames(obj));\n\t}\n\treturn Object.fromEntries(keys.map((key) => {\n\t\tconst value = obj[key];\n\t\treturn [key, typeof value === \"function\" ? reactify(value.bind(obj), options) : value];\n\t}));\n}\n//#endregion\n//#region toReactive/index.ts\n/**\n* Converts ref to reactive.\n*\n* @see https://vueuse.org/toReactive\n* @param objectRef A ref of object\n*/\nfunction toReactive(objectRef) {\n\tif (!isRef(objectRef)) return reactive(objectRef);\n\treturn reactive(new Proxy({}, {\n\t\tget(_, p, receiver) {\n\t\t\treturn unref(Reflect.get(objectRef.value, p, receiver));\n\t\t},\n\t\tset(_, p, value) {\n\t\t\tif (isRef(objectRef.value[p]) && !isRef(value)) objectRef.value[p].value = value;\n\t\t\telse objectRef.value[p] = value;\n\t\t\treturn true;\n\t\t},\n\t\tdeleteProperty(_, p) {\n\t\t\treturn Reflect.deleteProperty(objectRef.value, p);\n\t\t},\n\t\thas(_, p) {\n\t\t\treturn Reflect.has(objectRef.value, p);\n\t\t},\n\t\townKeys() {\n\t\t\treturn Object.keys(objectRef.value);\n\t\t},\n\t\tgetOwnPropertyDescriptor() {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t};\n\t\t}\n\t}));\n}\n//#endregion\n//#region reactiveComputed/index.ts\n/**\n* Computed reactive object.\n*/\nfunction reactiveComputed(fn) {\n\treturn toReactive(computed(fn));\n}\n//#endregion\n//#region reactiveOmit/index.ts\n/**\n* Reactively omit fields from a reactive object\n*\n* @see https://vueuse.org/reactiveOmit\n*/\nfunction reactiveOmit(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n//#endregion\n//#region reactivePick/index.ts\n/**\n* Reactively pick fields from a reactive object\n*\n* @see https://vueuse.org/reactivePick\n*/\nfunction reactivePick(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n//#endregion\n//#region refAutoReset/index.ts\n/**\n* Create a ref which will be reset to the default value after some time.\n*\n* @see https://vueuse.org/refAutoReset\n* @param defaultValue The value which will be set.\n* @param afterMs A zero-or-greater delay in milliseconds.\n*/\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n\treturn customRef((track, trigger) => {\n\t\tlet value = toValue(defaultValue);\n\t\tlet timer;\n\t\tconst resetAfter = () => setTimeout(() => {\n\t\t\tvalue = toValue(defaultValue);\n\t\t\ttrigger();\n\t\t}, toValue(afterMs));\n\t\ttryOnScopeDispose(() => {\n\t\t\tclearTimeout(timer);\n\t\t});\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = resetAfter();\n\t\t\t}\n\t\t};\n\t});\n}\n/** @deprecated use `refAutoReset` instead */\nconst autoResetRef = refAutoReset;\n//#endregion\n//#region useDebounceFn/index.ts\n/**\n* Debounce execution of a function.\n*\n* @see https://vueuse.org/useDebounceFn\n* @param fn A function to be executed after delay milliseconds debounced.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param options Options\n*\n* @return A new, debounced, function with isPending, cancel, and flush properties.\n*/\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n\treturn createFilterWrapper(debounceFilter(ms, options), fn);\n}\n//#endregion\n//#region refDebounced/index.ts\n/**\n* Debounce updates of a ref.\n*\n* @return A new debounced ref.\n*/\nfunction refDebounced(value, ms = 200, options = {}) {\n\tconst debounced = ref(toValue(value));\n\tconst updater = useDebounceFn(() => {\n\t\tdebounced.value = value.value;\n\t}, ms, options);\n\twatch(value, () => updater());\n\treturn shallowReadonly(debounced);\n}\n/** @deprecated use `refDebounced` instead */\nconst debouncedRef = refDebounced;\n/** @deprecated use `refDebounced` instead */\nconst useDebounce = refDebounced;\n//#endregion\n//#region refDefault/index.ts\n/**\n* Apply default value to a ref.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refDefault(source, defaultValue) {\n\treturn computed({\n\t\tget() {\n\t\t\tvar _source$value;\n\t\t\treturn (_source$value = source.value) !== null && _source$value !== void 0 ? _source$value : defaultValue;\n\t\t},\n\t\tset(value) {\n\t\t\tsource.value = value;\n\t\t}\n\t});\n}\n//#endregion\n//#region refManualReset/index.ts\n/**\n* Create a ref with manual reset functionality.\n*\n* @see https://vueuse.org/refManualReset\n* @param defaultValue The value which will be set.\n*/\nfunction refManualReset(defaultValue) {\n\tlet value = toValue(defaultValue);\n\tlet trigger;\n\tconst reset = () => {\n\t\tvalue = toValue(defaultValue);\n\t\ttrigger();\n\t};\n\tconst refValue = customRef((track, _trigger) => {\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t}\n\t\t};\n\t});\n\trefValue.reset = reset;\n\treturn refValue;\n}\n//#endregion\n//#region useThrottleFn/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n* to `callback` when the throttled-function is executed.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* (default value: 200)\n*\n* @param [trailing] if true, call fn again after the time is up (default value: false)\n*\n* @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)\n*\n* @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)\n*\n* @return A new, throttled, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n\treturn createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n//#endregion\n//#region refThrottled/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param value Ref value to be watched with throttle effect\n* @param delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param trailing if true, update the value again after the delay time is up\n* @param leading if true, update the value on the leading edge of the ms timeout\n*/\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n\tif (delay <= 0) return value;\n\tconst throttled = ref(toValue(value));\n\tconst updater = useThrottleFn(() => {\n\t\tthrottled.value = value.value;\n\t}, delay, trailing, leading);\n\twatch(value, () => updater());\n\treturn throttled;\n}\n/** @deprecated use `refThrottled` instead */\nconst throttledRef = refThrottled;\n/** @deprecated use `refThrottled` instead */\nconst useThrottle = refThrottled;\n//#endregion\n//#region refWithControl/index.ts\n/**\n* Fine-grained controls over ref and its reactivity.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refWithControl(initial, options = {}) {\n\tlet source = initial;\n\tlet track;\n\tlet trigger;\n\tconst ref = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\treturn get();\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset(v);\n\t\t\t}\n\t\t};\n\t});\n\tfunction get(tracking = true) {\n\t\tif (tracking) track();\n\t\treturn source;\n\t}\n\tfunction set(value, triggering = true) {\n\t\tvar _options$onBeforeChan, _options$onChanged;\n\t\tif (value === source) return;\n\t\tconst old = source;\n\t\tif (((_options$onBeforeChan = options.onBeforeChange) === null || _options$onBeforeChan === void 0 ? void 0 : _options$onBeforeChan.call(options, value, old)) === false) return;\n\t\tsource = value;\n\t\t(_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, value, old);\n\t\tif (triggering) trigger();\n\t}\n\t/**\n\t* Get the value without tracked in the reactivity system\n\t*/\n\tconst untrackedGet = () => get(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*/\n\tconst silentSet = (v) => set(v, false);\n\t/**\n\t* Get the value without tracked in the reactivity system.\n\t*\n\t* Alias for `untrackedGet()`\n\t*/\n\tconst peek = () => get(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*\n\t* Alias for `silentSet(v)`\n\t*/\n\tconst lay = (v) => set(v, false);\n\treturn extendRef(ref, {\n\t\tget,\n\t\tset,\n\t\tuntrackedGet,\n\t\tsilentSet,\n\t\tpeek,\n\t\tlay\n\t}, { enumerable: true });\n}\n/** @deprecated use `refWithControl` instead */\nconst controlledRef = refWithControl;\n//#endregion\n//#region set/index.ts\n/**\n* Shorthand for `ref.value = x`\n*/\nfunction set(...args) {\n\tif (args.length === 2) {\n\t\tconst [ref, value] = args;\n\t\tref.value = value;\n\t}\n\tif (args.length === 3) {\n\t\tconst [target, key, value] = args;\n\t\ttarget[key] = value;\n\t}\n}\n//#endregion\n//#region watchWithFilter/index.ts\nfunction watchWithFilter(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter, ...watchOptions } = options;\n\treturn watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n//#endregion\n//#region watchPausable/index.ts\n/** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */\nfunction watchPausable(source, cb, options = {}) {\n\tconst { eventFilter: filter, initialState = \"active\", ...watchOptions } = options;\n\tconst { eventFilter, pause, resume, isActive } = pausableFilter(filter, { initialState });\n\treturn {\n\t\tstop: watchWithFilter(source, cb, {\n\t\t\t...watchOptions,\n\t\t\teventFilter\n\t\t}),\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n/** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */\nconst pausableWatch = watchPausable;\n//#endregion\n//#region syncRef/index.ts\n/**\n* Two-way refs synchronization.\n* From the set theory perspective to restrict the option's type\n* Check in the following order:\n* 1. L = R\n* 2. L ∩ R ≠ āˆ…\n* 3. L āŠ† R\n* 4. L ∩ R = āˆ…\n*/\nfunction syncRef(left, right, ...[options]) {\n\tconst { flush = \"sync\", deep = false, immediate = true, direction = \"both\", transform = {} } = options || {};\n\tconst watchers = [];\n\tconst transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n\tconst transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n\tif (direction === \"both\" || direction === \"ltr\") watchers.push(watchPausable(left, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tright.value = transformLTR(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tif (direction === \"both\" || direction === \"rtl\") watchers.push(watchPausable(right, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tleft.value = transformRTL(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tconst stop = () => {\n\t\twatchers.forEach((w) => w.stop());\n\t};\n\treturn stop;\n}\n//#endregion\n//#region syncRefs/index.ts\n/**\n* Keep target ref(s) in sync with the source ref\n*\n* @param source source ref\n* @param targets\n*/\nfunction syncRefs(source, targets, options = {}) {\n\tconst { flush = \"sync\", deep = false, immediate = true } = options;\n\tconst targetsArray = toArray(targets);\n\treturn watch(source, (newValue) => targetsArray.forEach((target) => target.value = newValue), {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t});\n}\n//#endregion\n//#region toRefs/index.ts\n/**\n* Extended `toRefs` that also accepts refs of an object.\n*\n* @see https://vueuse.org/toRefs\n* @param objectRef A ref or normal object or array.\n* @param options Options\n*/\nfunction toRefs(objectRef, options = {}) {\n\tif (!isRef(objectRef)) return toRefs$1(objectRef);\n\tconst result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n\tfor (const key in objectRef.value) result[key] = customRef(() => ({\n\t\tget() {\n\t\t\treturn objectRef.value[key];\n\t\t},\n\t\tset(v) {\n\t\t\tvar _toValue;\n\t\t\tif ((_toValue = toValue(options.replaceRef)) !== null && _toValue !== void 0 ? _toValue : true) if (Array.isArray(objectRef.value)) {\n\t\t\t\tconst copy = [...objectRef.value];\n\t\t\t\tcopy[key] = v;\n\t\t\t\tobjectRef.value = copy;\n\t\t\t} else {\n\t\t\t\tconst newObject = {\n\t\t\t\t\t...objectRef.value,\n\t\t\t\t\t[key]: v\n\t\t\t\t};\n\t\t\t\tObject.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n\t\t\t\tobjectRef.value = newObject;\n\t\t\t}\n\t\t\telse objectRef.value[key] = v;\n\t\t}\n\t}));\n\treturn result;\n}\n//#endregion\n//#region tryOnBeforeMount/index.ts\n/**\n* Call onBeforeMount() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnBeforeMount(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onBeforeMount(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n//#endregion\n//#region tryOnBeforeUnmount/index.ts\n/**\n* Call onBeforeUnmount() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnBeforeUnmount(fn, target) {\n\tif (getLifeCycleTarget(target)) onBeforeUnmount(fn, target);\n}\n//#endregion\n//#region tryOnMounted/index.ts\n/**\n* Call onMounted() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnMounted(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onMounted(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n//#endregion\n//#region tryOnUnmounted/index.ts\n/**\n* Call onUnmounted() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnUnmounted(fn, target) {\n\tif (getLifeCycleTarget(target)) onUnmounted(fn, target);\n}\n//#endregion\n//#region until/index.ts\nfunction createUntil(r, isNot = false) {\n\tfunction toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch(r, (v) => {\n\t\t\t\tif (condition(v) !== isNot) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop === null || stop === void 0 ? void 0 : stop()));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBe(value, options) {\n\t\tif (!isRef(value)) return toMatch((v) => v === value, options);\n\t\tconst { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options !== null && options !== void 0 ? options : {};\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch([r, value], ([v1, v2]) => {\n\t\t\t\tif (isNot !== (v1 === v2)) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v1);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n\t\t\tstop === null || stop === void 0 || stop();\n\t\t\treturn toValue(r);\n\t\t}));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBeTruthy(options) {\n\t\treturn toMatch((v) => Boolean(v), options);\n\t}\n\tfunction toBeNull(options) {\n\t\treturn toBe(null, options);\n\t}\n\tfunction toBeUndefined(options) {\n\t\treturn toBe(void 0, options);\n\t}\n\tfunction toBeNaN(options) {\n\t\treturn toMatch(Number.isNaN, options);\n\t}\n\tfunction toContains(value, options) {\n\t\treturn toMatch((v) => {\n\t\t\tconst array = Array.from(v);\n\t\t\treturn array.includes(value) || array.includes(toValue(value));\n\t\t}, options);\n\t}\n\tfunction changed(options) {\n\t\treturn changedTimes(1, options);\n\t}\n\tfunction changedTimes(n = 1, options) {\n\t\tlet count = -1;\n\t\treturn toMatch(() => {\n\t\t\tcount += 1;\n\t\t\treturn count >= n;\n\t\t}, options);\n\t}\n\tif (Array.isArray(toValue(r))) return {\n\t\ttoMatch,\n\t\ttoContains,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n\telse return {\n\t\ttoMatch,\n\t\ttoBe,\n\t\ttoBeTruthy,\n\t\ttoBeNull,\n\t\ttoBeNaN,\n\t\ttoBeUndefined,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n}\nfunction until(r) {\n\treturn createUntil(r);\n}\n//#endregion\n//#region useArrayDifference/index.ts\nfunction defaultComparator(value, othVal) {\n\treturn value === othVal;\n}\n/**\n* Reactive get array difference of two array\n* @see https://vueuse.org/useArrayDifference\n* @returns - the difference of two array\n* @param args\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayDifference(...args) {\n\tvar _args$, _args$2;\n\tconst list = args[0];\n\tconst values = args[1];\n\tlet compareFn = (_args$ = args[2]) !== null && _args$ !== void 0 ? _args$ : defaultComparator;\n\tconst { symmetric = false } = (_args$2 = args[3]) !== null && _args$2 !== void 0 ? _args$2 : {};\n\tif (typeof compareFn === \"string\") {\n\t\tconst key = compareFn;\n\t\tcompareFn = (value, othVal) => value[key] === othVal[key];\n\t}\n\tconst diff1 = computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n\tif (symmetric) {\n\t\tconst diff2 = computed(() => toValue(values).filter((x) => toValue(list).findIndex((y) => compareFn(x, y)) === -1));\n\t\treturn computed(() => symmetric ? [...toValue(diff1), ...toValue(diff2)] : toValue(diff1));\n\t} else return diff1;\n}\n//#endregion\n//#region useArrayEvery/index.ts\n/**\n* Reactive `Array.every`\n*\n* @see https://vueuse.org/useArrayEvery\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for every element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayEvery(list, fn) {\n\treturn computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayFilter/index.ts\n/**\n* Reactive `Array.filter`\n*\n* @see https://vueuse.org/useArrayFilter\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a shallow copy of a portion of the given array, filtered down to just the elements from the given array that pass the test implemented by the provided function. If no elements pass the test, an empty array will be returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFilter(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n//#endregion\n//#region useArrayFind/index.ts\n/**\n* Reactive `Array.find`\n*\n* @see https://vueuse.org/useArrayFind\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the first element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFind(list, fn) {\n\treturn computed(() => toValue(toValue(list).find((element, index, array) => fn(toValue(element), index, array))));\n}\n//#endregion\n//#region useArrayFindIndex/index.ts\n/**\n* Reactive `Array.findIndex`\n*\n* @see https://vueuse.org/useArrayFindIndex\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the index of the first element in the array that passes the test. Otherwise, \"-1\".\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindIndex(list, fn) {\n\treturn computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayFindLast/index.ts\nfunction findLast(arr, cb) {\n\tlet index = arr.length;\n\twhile (index-- > 0) if (cb(arr[index], index, arr)) return arr[index];\n}\n/**\n* Reactive `Array.findLast`\n*\n* @see https://vueuse.org/useArrayFindLast\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the last element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindLast(list, fn) {\n\treturn computed(() => toValue(!Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))));\n}\n//#endregion\n//#region useArrayIncludes/index.ts\nfunction isArrayIncludesOptions(obj) {\n\treturn isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\n/**\n* Reactive `Array.includes`\n*\n* @see https://vueuse.org/useArrayIncludes\n*\n* @returns true if the `value` is found in the array. Otherwise, false.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayIncludes(...args) {\n\tvar _comparator;\n\tconst list = args[0];\n\tconst value = args[1];\n\tlet comparator = args[2];\n\tlet formIndex = 0;\n\tif (isArrayIncludesOptions(comparator)) {\n\t\tvar _comparator$fromIndex;\n\t\tformIndex = (_comparator$fromIndex = comparator.fromIndex) !== null && _comparator$fromIndex !== void 0 ? _comparator$fromIndex : 0;\n\t\tcomparator = comparator.comparator;\n\t}\n\tif (typeof comparator === \"string\") {\n\t\tconst key = comparator;\n\t\tcomparator = (element, value) => element[key] === toValue(value);\n\t}\n\tcomparator = (_comparator = comparator) !== null && _comparator !== void 0 ? _comparator : ((element, value) => element === toValue(value));\n\treturn computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(toValue(element), toValue(value), index, toValue(array))));\n}\n//#endregion\n//#region useArrayJoin/index.ts\n/**\n* Reactive `Array.join`\n*\n* @see https://vueuse.org/useArrayJoin\n* @param list - the array was called upon.\n* @param separator - a string to separate each pair of adjacent elements of the array. If omitted, the array elements are separated with a comma (\",\").\n*\n* @returns a string with all array elements joined. If arr.length is 0, the empty string is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayJoin(list, separator) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n//#endregion\n//#region useArrayMap/index.ts\n/**\n* Reactive `Array.map`\n*\n* @see https://vueuse.org/useArrayMap\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a new array with each element being the result of the callback function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayMap(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n//#endregion\n//#region useArrayReduce/index.ts\n/**\n* Reactive `Array.reduce`\n*\n* @see https://vueuse.org/useArrayReduce\n* @param list - the array was called upon.\n* @param reducer - a \"reducer\" function.\n* @param args\n*\n* @returns the value that results from running the \"reducer\" callback function to completion over the entire array.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayReduce(list, reducer, ...args) {\n\tconst reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n\treturn computed(() => {\n\t\tconst resolved = toValue(list);\n\t\treturn args.length ? resolved.reduce(reduceCallback, typeof args[0] === \"function\" ? toValue(args[0]()) : toValue(args[0])) : resolved.reduce(reduceCallback);\n\t});\n}\n//#endregion\n//#region useArraySome/index.ts\n/**\n* Reactive `Array.some`\n*\n* @see https://vueuse.org/useArraySome\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for any element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArraySome(list, fn) {\n\treturn computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayUnique/index.ts\nfunction uniq(array) {\n\treturn Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n\treturn array.reduce((acc, v) => {\n\t\tif (!acc.some((x) => fn(v, x, array))) acc.push(v);\n\t\treturn acc;\n\t}, []);\n}\n/**\n* reactive unique array\n* @see https://vueuse.org/useArrayUnique\n* @param list - the array was called upon.\n* @param compareFn\n* @returns A computed ref that returns a unique array of items.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayUnique(list, compareFn) {\n\treturn computed(() => {\n\t\tconst resolvedList = toValue(list).map((element) => toValue(element));\n\t\treturn compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n\t});\n}\n//#endregion\n//#region useCounter/index.ts\n/**\n* Basic counter with utility functions.\n*\n* @see https://vueuse.org/useCounter\n* @param [initialValue]\n* @param options\n*/\nfunction useCounter(initialValue = 0, options = {}) {\n\tlet _initialValue = unref(initialValue);\n\tconst count = shallowRef(initialValue);\n\tconst { max = Number.POSITIVE_INFINITY, min = Number.NEGATIVE_INFINITY } = options;\n\tconst inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n\tconst dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n\tconst get = () => count.value;\n\tconst set = (val) => count.value = Math.max(min, Math.min(max, val));\n\tconst reset = (val = _initialValue) => {\n\t\t_initialValue = val;\n\t\treturn set(val);\n\t};\n\treturn {\n\t\tcount: shallowReadonly(count),\n\t\tinc,\n\t\tdec,\n\t\tget,\n\t\tset,\n\t\treset\n\t};\n}\n//#endregion\n//#region useDateFormat/index.ts\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|z{1,4}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n\tlet m = hours < 12 ? \"AM\" : \"PM\";\n\tif (hasPeriod) m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n\treturn isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n\tconst suffixes = [\n\t\t\"th\",\n\t\t\"st\",\n\t\t\"nd\",\n\t\t\"rd\"\n\t];\n\tconst v = num % 100;\n\treturn num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n\tvar _options$customMeridi;\n\tconst years = date.getFullYear();\n\tconst month = date.getMonth();\n\tconst days = date.getDate();\n\tconst hours = date.getHours();\n\tconst minutes = date.getMinutes();\n\tconst seconds = date.getSeconds();\n\tconst milliseconds = date.getMilliseconds();\n\tconst day = date.getDay();\n\tconst meridiem = (_options$customMeridi = options.customMeridiem) !== null && _options$customMeridi !== void 0 ? _options$customMeridi : defaultMeridiem;\n\tconst stripTimeZone = (dateString) => {\n\t\tvar _dateString$split$;\n\t\treturn (_dateString$split$ = dateString.split(\" \")[1]) !== null && _dateString$split$ !== void 0 ? _dateString$split$ : \"\";\n\t};\n\tconst matches = {\n\t\tYo: () => formatOrdinal(years),\n\t\tYY: () => String(years).slice(-2),\n\t\tYYYY: () => years,\n\t\tM: () => month + 1,\n\t\tMo: () => formatOrdinal(month + 1),\n\t\tMM: () => `${month + 1}`.padStart(2, \"0\"),\n\t\tMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n\t\tMMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n\t\tD: () => String(days),\n\t\tDo: () => formatOrdinal(days),\n\t\tDD: () => `${days}`.padStart(2, \"0\"),\n\t\tH: () => String(hours),\n\t\tHo: () => formatOrdinal(hours),\n\t\tHH: () => `${hours}`.padStart(2, \"0\"),\n\t\th: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n\t\tho: () => formatOrdinal(hours % 12 || 12),\n\t\thh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n\t\tm: () => String(minutes),\n\t\tmo: () => formatOrdinal(minutes),\n\t\tmm: () => `${minutes}`.padStart(2, \"0\"),\n\t\ts: () => String(seconds),\n\t\tso: () => formatOrdinal(seconds),\n\t\tss: () => `${seconds}`.padStart(2, \"0\"),\n\t\tSSS: () => `${milliseconds}`.padStart(3, \"0\"),\n\t\td: () => day,\n\t\tdd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n\t\tddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n\t\tdddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n\t\tA: () => meridiem(hours, minutes),\n\t\tAA: () => meridiem(hours, minutes, false, true),\n\t\ta: () => meridiem(hours, minutes, true),\n\t\taa: () => meridiem(hours, minutes, true, true),\n\t\tz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"longOffset\" }))\n\t};\n\treturn formatStr.replace(REGEX_FORMAT, (match, $1) => {\n\t\tvar _ref, _matches$match;\n\t\treturn (_ref = $1 !== null && $1 !== void 0 ? $1 : (_matches$match = matches[match]) === null || _matches$match === void 0 ? void 0 : _matches$match.call(matches)) !== null && _ref !== void 0 ? _ref : match;\n\t});\n}\nfunction normalizeDate(date) {\n\tif (date === null) return /* @__PURE__ */ new Date(NaN);\n\tif (date === void 0) return /* @__PURE__ */ new Date();\n\tif (date instanceof Date) return new Date(date);\n\tif (typeof date === \"string\" && !/Z$/i.test(date)) {\n\t\tconst d = date.match(REGEX_PARSE);\n\t\tif (d) {\n\t\t\tconst m = d[2] - 1 || 0;\n\t\t\tconst ms = (d[7] || \"0\").substring(0, 3);\n\t\t\treturn new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n\t\t}\n\t}\n\treturn new Date(date);\n}\n/**\n* Get the formatted date according to the string of tokens passed in.\n*\n* @see https://vueuse.org/useDateFormat\n* @param date - The date to format, can either be a `Date` object, a timestamp, or a string\n* @param formatStr - The combination of tokens to format the date\n* @param options - UseDateFormatOptions\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n\treturn computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n//#endregion\n//#region useIntervalFn/index.ts\n/**\n* Wrapper for `setInterval` with controls\n*\n* @see https://vueuse.org/useIntervalFn\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tlet timer = null;\n\tconst isActive = shallowRef(false);\n\tfunction clean() {\n\t\tif (timer) {\n\t\t\tclearInterval(timer);\n\t\t\ttimer = null;\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tclean();\n\t}\n\tfunction resume() {\n\t\tconst intervalValue = toValue(interval);\n\t\tif (intervalValue <= 0) return;\n\t\tisActive.value = true;\n\t\tif (immediateCallback) cb();\n\t\tclean();\n\t\tif (isActive.value) timer = setInterval(cb, intervalValue);\n\t}\n\tif (immediate && isClient) resume();\n\tif (isRef(interval) || typeof interval === \"function\") tryOnScopeDispose(watch(interval, () => {\n\t\tif (isActive.value && isClient) resume();\n\t}));\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n//#endregion\n//#region useInterval/index.ts\nfunction useInterval(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, immediate = true, callback } = options;\n\tconst counter = shallowRef(0);\n\tconst update = () => counter.value += 1;\n\tconst reset = () => {\n\t\tcounter.value = 0;\n\t};\n\tconst controls = useIntervalFn(callback ? () => {\n\t\tupdate();\n\t\tcallback(counter.value);\n\t} : update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tcounter: shallowReadonly(counter),\n\t\treset,\n\t\t...controls\n\t};\n\telse return shallowReadonly(counter);\n}\n//#endregion\n//#region useLastChanged/index.ts\nfunction useLastChanged(source, options = {}) {\n\tvar _options$initialValue;\n\tconst ms = shallowRef((_options$initialValue = options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : null);\n\twatch(source, () => ms.value = timestamp(), options);\n\treturn shallowReadonly(ms);\n}\n//#endregion\n//#region useTimeoutFn/index.ts\n/**\n* Wrapper for `setTimeout` with controls.\n*\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useTimeoutFn(cb, interval, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tfunction clear() {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t}\n\tfunction stop() {\n\t\tisPending.value = false;\n\t\tclear();\n\t}\n\tfunction start(...args) {\n\t\tif (immediateCallback) cb();\n\t\tclear();\n\t\tisPending.value = true;\n\t\ttimer = setTimeout(() => {\n\t\t\tisPending.value = false;\n\t\t\ttimer = void 0;\n\t\t\tcb(...args);\n\t\t}, toValue(interval));\n\t}\n\tif (immediate) {\n\t\tisPending.value = true;\n\t\tif (isClient) start();\n\t}\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisPending: shallowReadonly(isPending),\n\t\tstart,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useTimeout/index.ts\nfunction useTimeout(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, callback } = options;\n\tconst controls = useTimeoutFn(callback !== null && callback !== void 0 ? callback : noop, interval, options);\n\tconst ready = computed(() => !controls.isPending.value);\n\tif (exposeControls) return {\n\t\tready,\n\t\t...controls\n\t};\n\telse return ready;\n}\n//#endregion\n//#region useToNumber/index.ts\n/**\n* Reactively convert a string ref to number.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToNumber(value, options = {}) {\n\tconst { method = \"parseFloat\", radix, nanToZero } = options;\n\treturn computed(() => {\n\t\tlet resolved = toValue(value);\n\t\tif (typeof method === \"function\") resolved = method(resolved);\n\t\telse if (typeof resolved === \"string\") resolved = Number[method](resolved, radix);\n\t\tif (nanToZero && Number.isNaN(resolved)) resolved = 0;\n\t\treturn resolved;\n\t});\n}\n//#endregion\n//#region useToString/index.ts\n/**\n* Reactively convert a ref to string.\n*\n* @see https://vueuse.org/useToString\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToString(value) {\n\treturn computed(() => `${toValue(value)}`);\n}\n//#endregion\n//#region useToggle/index.ts\n/**\n* A boolean ref with a toggler\n*\n* @see https://vueuse.org/useToggle\n* @param [initialValue]\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToggle(initialValue = false, options = {}) {\n\tconst { truthyValue = true, falsyValue = false } = options;\n\tconst valueIsRef = isRef(initialValue);\n\tconst _value = shallowRef(initialValue);\n\tfunction toggle(value) {\n\t\tif (arguments.length) {\n\t\t\t_value.value = value;\n\t\t\treturn _value.value;\n\t\t} else {\n\t\t\tconst truthy = toValue(truthyValue);\n\t\t\t_value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n\t\t\treturn _value.value;\n\t\t}\n\t}\n\tif (valueIsRef) return toggle;\n\telse return [_value, toggle];\n}\n//#endregion\n//#region watchArray/index.ts\n/**\n* Watch for an array with additions and removals.\n*\n* @see https://vueuse.org/watchArray\n*/\nfunction watchArray(source, cb, options) {\n\tlet oldList = (options === null || options === void 0 ? void 0 : options.immediate) ? [] : [...typeof source === \"function\" ? source() : Array.isArray(source) ? source : toValue(source)];\n\treturn watch(source, (newList, _, onCleanup) => {\n\t\tconst oldListRemains = Array.from({ length: oldList.length });\n\t\tconst added = [];\n\t\tfor (const obj of newList) {\n\t\t\tlet found = false;\n\t\t\tfor (let i = 0; i < oldList.length; i++) if (!oldListRemains[i] && obj === oldList[i]) {\n\t\t\t\toldListRemains[i] = true;\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!found) added.push(obj);\n\t\t}\n\t\tconst removed = oldList.filter((_, i) => !oldListRemains[i]);\n\t\tcb(newList, oldList, added, removed, onCleanup);\n\t\toldList = [...newList];\n\t}, options);\n}\n//#endregion\n//#region watchAtMost/index.ts\nfunction watchAtMost(source, cb, options) {\n\tconst { count, ...watchOptions } = options;\n\tconst current = shallowRef(0);\n\tconst { stop, resume, pause } = watchWithFilter(source, (...args) => {\n\t\tcurrent.value += 1;\n\t\tif (current.value >= toValue(count)) nextTick(() => stop());\n\t\tcb(...args);\n\t}, watchOptions);\n\treturn {\n\t\tcount: current,\n\t\tstop,\n\t\tresume,\n\t\tpause\n\t};\n}\n//#endregion\n//#region watchDebounced/index.ts\nfunction watchDebounced(source, cb, options = {}) {\n\tconst { debounce = 0, maxWait = void 0, ...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: debounceFilter(debounce, { maxWait })\n\t});\n}\n/** @deprecated use `watchDebounced` instead */\nconst debouncedWatch = watchDebounced;\n//#endregion\n//#region watchDeep/index.ts\n/**\n* Shorthand for watching value with {deep: true}\n*\n* @see https://vueuse.org/watchDeep\n*/\nfunction watchDeep(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tdeep: true\n\t});\n}\n//#endregion\n//#region watchIgnorable/index.ts\nfunction watchIgnorable(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter, ...watchOptions } = options;\n\tconst filteredCb = createFilterWrapper(eventFilter, cb);\n\tlet ignoreUpdates;\n\tlet ignorePrevAsyncUpdates;\n\tlet stop;\n\tif (watchOptions.flush === \"sync\") {\n\t\tlet ignore = false;\n\t\tignorePrevAsyncUpdates = () => {};\n\t\tignoreUpdates = (updater) => {\n\t\t\tignore = true;\n\t\t\tupdater();\n\t\t\tignore = false;\n\t\t};\n\t\tstop = watch(source, (...args) => {\n\t\t\tif (!ignore) filteredCb(...args);\n\t\t}, watchOptions);\n\t} else {\n\t\tconst disposables = [];\n\t\tlet ignoreCounter = 0;\n\t\tlet syncCounter = 0;\n\t\tignorePrevAsyncUpdates = () => {\n\t\t\tignoreCounter = syncCounter;\n\t\t};\n\t\tdisposables.push(watch(source, () => {\n\t\t\tsyncCounter++;\n\t\t}, {\n\t\t\t...watchOptions,\n\t\t\tflush: \"sync\"\n\t\t}));\n\t\tignoreUpdates = (updater) => {\n\t\t\tconst syncCounterPrev = syncCounter;\n\t\t\tupdater();\n\t\t\tignoreCounter += syncCounter - syncCounterPrev;\n\t\t};\n\t\tdisposables.push(watch(source, (...args) => {\n\t\t\tconst ignore = ignoreCounter > 0 && ignoreCounter === syncCounter;\n\t\t\tignoreCounter = 0;\n\t\t\tsyncCounter = 0;\n\t\t\tif (ignore) return;\n\t\t\tfilteredCb(...args);\n\t\t}, watchOptions));\n\t\tstop = () => {\n\t\t\tdisposables.forEach((fn) => fn());\n\t\t};\n\t}\n\treturn {\n\t\tstop,\n\t\tignoreUpdates,\n\t\tignorePrevAsyncUpdates\n\t};\n}\n/** @deprecated use `watchIgnorable` instead */\nconst ignorableWatch = watchIgnorable;\n//#endregion\n//#region watchImmediate/index.ts\n/**\n* Shorthand for watching value with {immediate: true}\n*\n* @see https://vueuse.org/watchImmediate\n*/\nfunction watchImmediate(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\timmediate: true\n\t});\n}\n//#endregion\n//#region watchOnce/index.ts\n/**\n* Shorthand for watching value with { once: true }\n*\n* @see https://vueuse.org/watchOnce\n*/\nfunction watchOnce(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tonce: true\n\t});\n}\n//#endregion\n//#region watchThrottled/index.ts\nfunction watchThrottled(source, cb, options = {}) {\n\tconst { throttle = 0, trailing = true, leading = true, ...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: throttleFilter(throttle, trailing, leading)\n\t});\n}\n/** @deprecated use `watchThrottled` instead */\nconst throttledWatch = watchThrottled;\n//#endregion\n//#region watchTriggerable/index.ts\nfunction watchTriggerable(source, cb, options = {}) {\n\tlet cleanupFn;\n\tfunction onEffect() {\n\t\tif (!cleanupFn) return;\n\t\tconst fn = cleanupFn;\n\t\tcleanupFn = void 0;\n\t\tfn();\n\t}\n\t/** Register the function `cleanupFn` */\n\tfunction onCleanup(callback) {\n\t\tcleanupFn = callback;\n\t}\n\tconst _cb = (value, oldValue) => {\n\t\tonEffect();\n\t\treturn cb(value, oldValue, onCleanup);\n\t};\n\tconst res = watchIgnorable(source, _cb, options);\n\tconst { ignoreUpdates } = res;\n\tconst trigger = () => {\n\t\tlet res;\n\t\tignoreUpdates(() => {\n\t\t\tres = _cb(getWatchSources(source), getOldValue(source));\n\t\t});\n\t\treturn res;\n\t};\n\treturn {\n\t\t...res,\n\t\ttrigger\n\t};\n}\nfunction getWatchSources(sources) {\n\tif (isReactive(sources)) return sources;\n\tif (Array.isArray(sources)) return sources.map((item) => toValue(item));\n\treturn toValue(sources);\n}\nfunction getOldValue(source) {\n\treturn Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n//#endregion\n//#region whenever/index.ts\nfunction whenever(source, cb, options) {\n\tconst stop = watch(source, (v, ov, onInvalidate) => {\n\t\tif (v) {\n\t\t\tif (options === null || options === void 0 ? void 0 : options.once) nextTick(() => stop());\n\t\t\tcb(v, ov, onInvalidate);\n\t\t}\n\t}, {\n\t\t...options,\n\t\tonce: false\n\t});\n\treturn stop;\n}\n//#endregion\nexport { assert, autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, controlledComputed, controlledRef, createDisposableDirective, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, createReactiveFn, createRef, createSharedComposable, createSingletonPromise, debounceFilter, debouncedRef, debouncedWatch, eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refManualReset, refThrottled, refWithControl, set, syncRef, syncRefs, throttleFilter, throttledRef, throttledWatch, timestamp, toArray, toReactive, toRef, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { bypassFilter, camelize, clamp, computedWithControl, containsProp, createEventHook, createFilterWrapper, createRef, createSingletonPromise, debounceFilter, hasOwn, identity, increaseWithUnit, injectLocal, isClient, isDef, isIOS, isObject, isWorker, makeDestructurable, noop, notNullish, objectEntries, objectOmit, objectPick, pausableFilter, promiseTimeout, provideLocal, pxValue, syncRef, throttleFilter, timestamp, toArray, toRef, toRefs, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useDebounceFn, useIntervalFn, useThrottleFn, useTimeoutFn, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchWithFilter, whenever } from \"@vueuse/shared\";\nimport { Fragment, TransitionGroup, computed, customRef, defineComponent, getCurrentInstance, h, hasInjectionContext, inject, isReadonly, isRef, markRaw, nextTick, onBeforeUpdate, onMounted, onUpdated, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toValue, unref, watch, watchEffect } from \"vue\";\nexport * from \"@vueuse/shared\";\n//#region computedAsync/index.ts\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n\tvar _globalThis$reportErr;\n\tlet options;\n\tif (isRef(optionsOrRef)) options = { evaluating: optionsOrRef };\n\telse options = optionsOrRef || {};\n\tconst { lazy = false, flush = \"sync\", evaluating = void 0, shallow = true, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop } = options;\n\tconst started = shallowRef(!lazy);\n\tconst current = shallow ? shallowRef(initialState) : ref(initialState);\n\tlet counter = 0;\n\twatchEffect(async (onInvalidate) => {\n\t\tif (!started.value) return;\n\t\tcounter++;\n\t\tconst counterAtBeginning = counter;\n\t\tlet hasFinished = false;\n\t\tif (evaluating) Promise.resolve().then(() => {\n\t\t\tevaluating.value = true;\n\t\t});\n\t\ttry {\n\t\t\tconst result = await evaluationCallback((cancelCallback) => {\n\t\t\t\tonInvalidate(() => {\n\t\t\t\t\tif (evaluating) evaluating.value = false;\n\t\t\t\t\tif (!hasFinished) cancelCallback();\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (counterAtBeginning === counter) current.value = result;\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (evaluating && counterAtBeginning === counter) evaluating.value = false;\n\t\t\thasFinished = true;\n\t\t}\n\t}, { flush });\n\tif (lazy) return computed(() => {\n\t\tstarted.value = true;\n\t\treturn current.value;\n\t});\n\telse return current;\n}\n/** @deprecated use `computedAsync` instead */\nconst asyncComputed = computedAsync;\n//#endregion\n//#region computedInject/index.ts\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n\tlet source = inject(key);\n\tif (defaultSource) source = inject(key, defaultSource);\n\tif (treatDefaultAsFactory) source = inject(key, defaultSource, treatDefaultAsFactory);\n\tif (typeof options === \"function\") return computed((oldValue) => options(source, oldValue));\n\telse return computed({\n\t\tget: (oldValue) => options.get(source, oldValue),\n\t\tset: options.set\n\t});\n}\n//#endregion\n//#region createReusableTemplate/index.ts\n/**\n* This function creates `define` and `reuse` components in pair,\n* It also allow to pass a generic to bind with type.\n*\n* @see https://vueuse.org/createReusableTemplate\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createReusableTemplate(options = {}) {\n\tconst { inheritAttrs = true, name = \"ReusableTemplate\" } = options;\n\tconst render = shallowRef();\n\tconst define = defineComponent({\n\t\tname: `${name}.define`,\n\t\tsetup(_, { slots }) {\n\t\t\treturn () => {\n\t\t\t\trender.value = slots.default;\n\t\t\t};\n\t\t}\n\t});\n\tconst reuse = defineComponent({\n\t\tinheritAttrs,\n\t\tname: `${name}.reuse`,\n\t\tprops: options.props,\n\t\tsetup(props, { attrs, slots }) {\n\t\t\treturn () => {\n\t\t\t\tvar _render$value;\n\t\t\t\tif (!render.value && true) throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n\t\t\t\tconst vnode = (_render$value = render.value) === null || _render$value === void 0 ? void 0 : _render$value.call(render, {\n\t\t\t\t\t...options.props == null ? keysToCamelKebabCase(attrs) : props,\n\t\t\t\t\t$slots: slots\n\t\t\t\t});\n\t\t\t\treturn inheritAttrs && (vnode === null || vnode === void 0 ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n\t\t\t};\n\t\t}\n\t});\n\treturn makeDestructurable({\n\t\tdefine,\n\t\treuse\n\t}, [define, reuse]);\n}\nfunction keysToCamelKebabCase(obj) {\n\tconst newObj = {};\n\tfor (const key in obj) newObj[camelize(key)] = obj[key];\n\treturn newObj;\n}\n//#endregion\n//#region createTemplatePromise/index.ts\n/**\n* Creates a template promise component.\n*\n* @see https://vueuse.org/createTemplatePromise\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createTemplatePromise(options = {}) {\n\tlet index = 0;\n\tconst instances = ref([]);\n\tfunction create(...args) {\n\t\tconst props = shallowReactive({\n\t\t\tkey: index++,\n\t\t\targs,\n\t\t\tpromise: void 0,\n\t\t\tresolve: () => {},\n\t\t\treject: () => {},\n\t\t\tisResolving: false,\n\t\t\toptions\n\t\t});\n\t\tinstances.value.push(props);\n\t\tprops.promise = new Promise((_resolve, _reject) => {\n\t\t\tprops.resolve = (v) => {\n\t\t\t\tprops.isResolving = true;\n\t\t\t\treturn _resolve(v);\n\t\t\t};\n\t\t\tprops.reject = _reject;\n\t\t}).finally(() => {\n\t\t\tprops.promise = void 0;\n\t\t\tconst index = instances.value.indexOf(props);\n\t\t\tif (index !== -1) instances.value.splice(index, 1);\n\t\t});\n\t\treturn props.promise;\n\t}\n\tfunction start(...args) {\n\t\tif (options.singleton && instances.value.length > 0) return instances.value[0].promise;\n\t\treturn create(...args);\n\t}\n\tconst component = defineComponent((_, { slots }) => {\n\t\tconst renderList = () => instances.value.map((props) => {\n\t\t\tvar _slots$default;\n\t\t\treturn h(Fragment, { key: props.key }, (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots, props));\n\t\t});\n\t\tif (options.transition) return () => h(TransitionGroup, options.transition, renderList);\n\t\treturn renderList;\n\t});\n\tcomponent.start = start;\n\treturn component;\n}\n//#endregion\n//#region createUnrefFn/index.ts\n/**\n* Make a plain function accepting ref and raw values as arguments.\n* Returns the same value the unconverted function returns, with proper typing.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createUnrefFn(fn) {\n\treturn function(...args) {\n\t\treturn fn.apply(this, args.map((i) => toValue(i)));\n\t};\n}\n//#endregion\n//#region _configurable.ts\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n//#endregion\n//#region unrefElement/index.ts\n/**\n* Get the dom element of a ref of element or Vue component instance\n*\n* @param elRef\n*/\nfunction unrefElement(elRef) {\n\tvar _$el;\n\tconst plain = toValue(elRef);\n\treturn (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;\n}\n//#endregion\n//#region useEventListener/index.ts\nfunction useEventListener(...args) {\n\tconst register = (el, event, listener, options) => {\n\t\tel.addEventListener(event, listener, options);\n\t\treturn () => el.removeEventListener(event, listener, options);\n\t};\n\tconst firstParamTargets = computed(() => {\n\t\tconst test = toArray(toValue(args[0])).filter((e) => e != null);\n\t\treturn test.every((e) => typeof e !== \"string\") ? test : void 0;\n\t});\n\treturn watchImmediate(() => {\n\t\tvar _firstParamTargets$va, _firstParamTargets$va2;\n\t\treturn [\n\t\t\t(_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),\n\t\t\ttoArray(toValue(firstParamTargets.value ? args[1] : args[0])),\n\t\t\ttoArray(unref(firstParamTargets.value ? args[2] : args[1])),\n\t\t\ttoValue(firstParamTargets.value ? args[3] : args[2])\n\t\t];\n\t}, ([raw_targets, raw_events, raw_listeners, raw_options], _, onCleanup) => {\n\t\tif (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;\n\t\tconst optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;\n\t\tconst cleanups = raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone))));\n\t\tonCleanup(() => {\n\t\t\tcleanups.forEach((fn) => fn());\n\t\t});\n\t}, { flush: \"post\" });\n}\n//#endregion\n//#region onClickOutside/index.ts\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n\tconst { window = defaultWindow, ignore = [], capture = true, detectIframe = false, controls = false } = options;\n\tif (!window) return controls ? {\n\t\tstop: noop,\n\t\tcancel: noop,\n\t\ttrigger: noop\n\t} : noop;\n\tif (isIOS && !_iOSWorkaround) {\n\t\t_iOSWorkaround = true;\n\t\tconst listenerOptions = { passive: true };\n\t\tArray.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop, listenerOptions));\n\t\twindow.document.documentElement.addEventListener(\"click\", noop, listenerOptions);\n\t}\n\tlet shouldListen = true;\n\tconst shouldIgnore = (event) => {\n\t\treturn toValue(ignore).some((target) => {\n\t\t\tif (typeof target === \"string\") return Array.from(window.document.querySelectorAll(target)).some((el) => el === event.target || event.composedPath().includes(el));\n\t\t\telse {\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\treturn el && (event.target === el || event.composedPath().includes(el));\n\t\t\t}\n\t\t});\n\t};\n\t/**\n\t* Determines if the given target has multiple root elements.\n\t* Referenced from: https://github.com/vuejs/test-utils/blob/ccb460be55f9f6be05ab708500a41ec8adf6f4bc/src/vue-wrapper.ts#L21\n\t*/\n\tfunction hasMultipleRoots(target) {\n\t\tconst vm = toValue(target);\n\t\treturn vm && vm.$.subTree.shapeFlag === 16;\n\t}\n\tfunction checkMultipleRoots(target, event) {\n\t\tconst vm = toValue(target);\n\t\tconst children = vm.$.subTree && vm.$.subTree.children;\n\t\tif (children == null || !Array.isArray(children)) return false;\n\t\treturn children.some((child) => child.el === event.target || event.composedPath().includes(child.el));\n\t}\n\tconst listener = (event) => {\n\t\tconst el = unrefElement(target);\n\t\tif (event.target == null) return;\n\t\tif (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return;\n\t\tif (!el || el === event.target || event.composedPath().includes(el)) return;\n\t\tif (\"detail\" in event && event.detail === 0) shouldListen = !shouldIgnore(event);\n\t\tif (!shouldListen) {\n\t\t\tshouldListen = true;\n\t\t\treturn;\n\t\t}\n\t\thandler(event);\n\t};\n\tlet isProcessingClick = false;\n\tconst cleanup = [\n\t\tuseEventListener(window, \"click\", (event) => {\n\t\t\tif (!isProcessingClick) {\n\t\t\t\tisProcessingClick = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisProcessingClick = false;\n\t\t\t\t}, 0);\n\t\t\t\tlistener(event);\n\t\t\t}\n\t\t}, {\n\t\t\tpassive: true,\n\t\t\tcapture\n\t\t}),\n\t\tuseEventListener(window, \"pointerdown\", (e) => {\n\t\t\tconst el = unrefElement(target);\n\t\t\tshouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n\t\t}, { passive: true }),\n\t\tdetectIframe && useEventListener(window, \"blur\", (event) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\tlet activeEl = window.document.activeElement;\n\t\t\t\twhile (activeEl === null || activeEl === void 0 ? void 0 : activeEl.shadowRoot) activeEl = activeEl.shadowRoot.activeElement;\n\t\t\t\tif ((activeEl === null || activeEl === void 0 ? void 0 : activeEl.tagName) === \"IFRAME\" && !(el === null || el === void 0 ? void 0 : el.contains(window.document.activeElement))) handler(event);\n\t\t\t}, 0);\n\t\t}, { passive: true })\n\t].filter(Boolean);\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\tif (controls) return {\n\t\tstop,\n\t\tcancel: () => {\n\t\t\tshouldListen = false;\n\t\t},\n\t\ttrigger: (event) => {\n\t\t\tshouldListen = true;\n\t\t\tlistener(event);\n\t\t\tshouldListen = false;\n\t\t}\n\t};\n\treturn stop;\n}\n//#endregion\n//#region useMounted/index.ts\n/**\n* Mounted state in ref.\n*\n* @see https://vueuse.org/useMounted\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMounted() {\n\tconst isMounted = shallowRef(false);\n\tconst instance = getCurrentInstance();\n\tif (instance) onMounted(() => {\n\t\tisMounted.value = true;\n\t}, instance);\n\treturn isMounted;\n}\n//#endregion\n//#region useSupported/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSupported(callback) {\n\tconst isMounted = useMounted();\n\treturn computed(() => {\n\t\tisMounted.value;\n\t\treturn Boolean(callback());\n\t});\n}\n//#endregion\n//#region useMutationObserver/index.ts\n/**\n* Watch for changes being made to the DOM tree.\n*\n* @see https://vueuse.org/useMutationObserver\n* @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN\n* @param target\n* @param callback\n* @param options\n*/\nfunction useMutationObserver(target, callback, options = {}) {\n\tconst { window = defaultWindow, ...mutationOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"MutationObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst items = toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t\treturn new Set(items);\n\t}), (newTargets) => {\n\t\tcleanup();\n\t\tif (isSupported.value && newTargets.size) {\n\t\t\tobserver = new MutationObserver(callback);\n\t\t\tnewTargets.forEach((el) => observer.observe(el, mutationOptions));\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst takeRecords = () => {\n\t\treturn observer === null || observer === void 0 ? void 0 : observer.takeRecords();\n\t};\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop,\n\t\ttakeRecords\n\t};\n}\n//#endregion\n//#region onElementRemoval/index.ts\n/**\n* Fires when the element or any element containing it is removed.\n*\n* @param target\n* @param callback\n* @param options\n*/\nfunction onElementRemoval(target, callback, options = {}) {\n\tconst { window = defaultWindow, document = window === null || window === void 0 ? void 0 : window.document, flush = \"sync\" } = options;\n\tif (!window || !document) return noop;\n\tlet stopFn;\n\tconst cleanupAndUpdate = (fn) => {\n\t\tstopFn === null || stopFn === void 0 || stopFn();\n\t\tstopFn = fn;\n\t};\n\tconst stopWatch = watchEffect(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (el) {\n\t\t\tconst { stop } = useMutationObserver(document, (mutationsList) => {\n\t\t\t\tif (mutationsList.map((mutation) => [...mutation.removedNodes]).flat().some((node) => node === el || node.contains(el))) callback(mutationsList);\n\t\t\t}, {\n\t\t\t\twindow,\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true\n\t\t\t});\n\t\t\tcleanupAndUpdate(stop);\n\t\t}\n\t}, { flush });\n\tconst stopHandle = () => {\n\t\tstopWatch();\n\t\tcleanupAndUpdate();\n\t};\n\ttryOnScopeDispose(stopHandle);\n\treturn stopHandle;\n}\n//#endregion\n//#region onKeyStroke/index.ts\nfunction createKeyPredicate(keyFilter) {\n\tif (typeof keyFilter === \"function\") return keyFilter;\n\telse if (typeof keyFilter === \"string\") return (event) => event.key === keyFilter;\n\telse if (Array.isArray(keyFilter)) return (event) => keyFilter.includes(event.key);\n\treturn () => true;\n}\nfunction onKeyStroke(...args) {\n\tlet key;\n\tlet handler;\n\tlet options = {};\n\tif (args.length === 3) {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t\toptions = args[2];\n\t} else if (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tkey = true;\n\t\thandler = args[0];\n\t\toptions = args[1];\n\t} else {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t}\n\telse {\n\t\tkey = true;\n\t\thandler = args[0];\n\t}\n\tconst { target = defaultWindow, eventName = \"keydown\", passive = false, dedupe = false } = options;\n\tconst predicate = createKeyPredicate(key);\n\tconst listener = (e) => {\n\t\tif (e.repeat && toValue(dedupe)) return;\n\t\tif (predicate(e)) handler(e);\n\t};\n\treturn useEventListener(target, eventName, listener, passive);\n}\n/**\n* Listen to the keydown event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyDown(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keydown\"\n\t});\n}\n/**\n* Listen to the keypress event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyPressed(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keypress\"\n\t});\n}\n/**\n* Listen to the keyup event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyUp(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keyup\"\n\t});\n}\n//#endregion\n//#region onLongPress/index.ts\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n\tvar _options$modifiers10, _options$modifiers11;\n\tconst elementRef = computed(() => unrefElement(target));\n\tlet timeout;\n\tlet posStart;\n\tlet startTimestamp;\n\tlet hasLongPressed = false;\n\tfunction clear() {\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = void 0;\n\t\t}\n\t\tposStart = void 0;\n\t\tstartTimestamp = void 0;\n\t\thasLongPressed = false;\n\t}\n\tfunction getDelay(ev) {\n\t\tconst delay = options === null || options === void 0 ? void 0 : options.delay;\n\t\tif (typeof delay === \"function\") return delay(ev);\n\t\treturn delay !== null && delay !== void 0 ? delay : DEFAULT_DELAY;\n\t}\n\tfunction onRelease(ev) {\n\t\tvar _options$modifiers, _options$modifiers2, _options$modifiers3;\n\t\tconst [_startTimestamp, _posStart, _hasLongPressed] = [\n\t\t\tstartTimestamp,\n\t\t\tposStart,\n\t\t\thasLongPressed\n\t\t];\n\t\tclear();\n\t\tif (!(options === null || options === void 0 ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp) return;\n\t\tif ((options === null || options === void 0 || (_options$modifiers = options.modifiers) === null || _options$modifiers === void 0 ? void 0 : _options$modifiers.self) && ev.target !== elementRef.value) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers2 = options.modifiers) === null || _options$modifiers2 === void 0 ? void 0 : _options$modifiers2.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers3 = options.modifiers) === null || _options$modifiers3 === void 0 ? void 0 : _options$modifiers3.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - _posStart.x;\n\t\tconst dy = ev.y - _posStart.y;\n\t\tconst distance = Math.sqrt(dx * dx + dy * dy);\n\t\toptions.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed, ev);\n\t}\n\tfunction onDown(ev) {\n\t\tvar _options$modifiers4, _options$modifiers5, _options$modifiers6;\n\t\tif ((options === null || options === void 0 || (_options$modifiers4 = options.modifiers) === null || _options$modifiers4 === void 0 ? void 0 : _options$modifiers4.self) && ev.target !== elementRef.value) return;\n\t\tclear();\n\t\tif (options === null || options === void 0 || (_options$modifiers5 = options.modifiers) === null || _options$modifiers5 === void 0 ? void 0 : _options$modifiers5.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers6 = options.modifiers) === null || _options$modifiers6 === void 0 ? void 0 : _options$modifiers6.stop) ev.stopPropagation();\n\t\tposStart = {\n\t\t\tx: ev.x,\n\t\t\ty: ev.y\n\t\t};\n\t\tstartTimestamp = ev.timeStamp;\n\t\ttimeout = setTimeout(() => {\n\t\t\thasLongPressed = true;\n\t\t\thandler(ev);\n\t\t}, getDelay(ev));\n\t}\n\tfunction onMove(ev) {\n\t\tvar _options$modifiers7, _options$modifiers8, _options$modifiers9, _options$distanceThre;\n\t\tif ((options === null || options === void 0 || (_options$modifiers7 = options.modifiers) === null || _options$modifiers7 === void 0 ? void 0 : _options$modifiers7.self) && ev.target !== elementRef.value) return;\n\t\tif (!posStart || (options === null || options === void 0 ? void 0 : options.distanceThreshold) === false) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers8 = options.modifiers) === null || _options$modifiers8 === void 0 ? void 0 : _options$modifiers8.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers9 = options.modifiers) === null || _options$modifiers9 === void 0 ? void 0 : _options$modifiers9.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - posStart.x;\n\t\tconst dy = ev.y - posStart.y;\n\t\tif (Math.sqrt(dx * dx + dy * dy) >= ((_options$distanceThre = options === null || options === void 0 ? void 0 : options.distanceThreshold) !== null && _options$distanceThre !== void 0 ? _options$distanceThre : DEFAULT_THRESHOLD)) clear();\n\t}\n\tconst listenerOptions = {\n\t\tcapture: options === null || options === void 0 || (_options$modifiers10 = options.modifiers) === null || _options$modifiers10 === void 0 ? void 0 : _options$modifiers10.capture,\n\t\tonce: options === null || options === void 0 || (_options$modifiers11 = options.modifiers) === null || _options$modifiers11 === void 0 ? void 0 : _options$modifiers11.once\n\t};\n\tconst cleanup = [\n\t\tuseEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n\t\tuseEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n\t\tuseEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n\t];\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\treturn stop;\n}\n//#endregion\n//#region onStartTyping/index.ts\nfunction isFocusedElementEditable() {\n\tconst { activeElement, body } = document;\n\tif (!activeElement) return false;\n\tif (activeElement === body) return false;\n\tswitch (activeElement.tagName) {\n\t\tcase \"INPUT\":\n\t\tcase \"TEXTAREA\": return true;\n\t}\n\treturn activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({ keyCode, metaKey, ctrlKey, altKey }) {\n\tif (metaKey || ctrlKey || altKey) return false;\n\tif (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105) return true;\n\tif (keyCode >= 65 && keyCode <= 90) return true;\n\treturn false;\n}\n/**\n* Fires when users start typing on non-editable elements.\n*\n* @see https://vueuse.org/onStartTyping\n* @param callback\n* @param options\n*/\nfunction onStartTyping(callback, options = {}) {\n\tconst { document = defaultDocument, isTypedCharValid: isTypedCharValidFn = isTypedCharValid, isFocusedElementEditable: isFocusedElementEditableFn = isFocusedElementEditable } = options;\n\tconst keydown = (event) => {\n\t\tif (!isFocusedElementEditableFn() && isTypedCharValidFn(event)) callback(event);\n\t};\n\tif (document) useEventListener(document, \"keydown\", keydown, { passive: true });\n}\n//#endregion\n//#region templateRef/index.ts\n/**\n* @deprecated Use Vue's built-in `useTemplateRef` instead.\n*\n* Shorthand for binding ref to template element.\n*\n* @see https://vueuse.org/templateRef\n* @param key\n* @param initialValue\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction templateRef(key, initialValue = null) {\n\tconst instance = getCurrentInstance();\n\tlet _trigger = () => {};\n\tconst element = customRef((track, trigger) => {\n\t\t_trigger = trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tvar _instance$proxy$$refs, _instance$proxy;\n\t\t\t\ttrack();\n\t\t\t\treturn (_instance$proxy$$refs = instance === null || instance === void 0 || (_instance$proxy = instance.proxy) === null || _instance$proxy === void 0 ? void 0 : _instance$proxy.$refs[key]) !== null && _instance$proxy$$refs !== void 0 ? _instance$proxy$$refs : initialValue;\n\t\t\t},\n\t\t\tset() {}\n\t\t};\n\t});\n\ttryOnMounted(_trigger);\n\tonUpdated(_trigger);\n\treturn element;\n}\n//#endregion\n//#region useActiveElement/index.ts\n/**\n* Reactive `document.activeElement`\n*\n* @see https://vueuse.org/useActiveElement\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useActiveElement(options = {}) {\n\tvar _options$document;\n\tconst { window = defaultWindow, deep = true, triggerOnRemoval = false } = options;\n\tconst document = (_options$document = options.document) !== null && _options$document !== void 0 ? _options$document : window === null || window === void 0 ? void 0 : window.document;\n\tconst getDeepActiveElement = () => {\n\t\tlet element = document === null || document === void 0 ? void 0 : document.activeElement;\n\t\tif (deep) {\n\t\t\tvar _element$shadowRoot;\n\t\t\twhile (element === null || element === void 0 ? void 0 : element.shadowRoot) element = element === null || element === void 0 || (_element$shadowRoot = element.shadowRoot) === null || _element$shadowRoot === void 0 ? void 0 : _element$shadowRoot.activeElement;\n\t\t}\n\t\treturn element;\n\t};\n\tconst activeElement = shallowRef();\n\tconst trigger = () => {\n\t\tactiveElement.value = getDeepActiveElement();\n\t};\n\tif (window) {\n\t\tconst listenerOptions = {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t};\n\t\tuseEventListener(window, \"blur\", (event) => {\n\t\t\tif (event.relatedTarget !== null) return;\n\t\t\ttrigger();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window, \"focus\", trigger, listenerOptions);\n\t}\n\tif (triggerOnRemoval) onElementRemoval(activeElement, trigger, { document });\n\ttrigger();\n\treturn activeElement;\n}\n//#endregion\n//#region useRafFn/index.ts\n/**\n* Call function on every `requestAnimationFrame`. With controls of pausing and resuming.\n*\n* @see https://vueuse.org/useRafFn\n* @param fn\n* @param options\n*/\nfunction useRafFn(fn, options = {}) {\n\tconst { immediate = true, fpsLimit = null, window = defaultWindow, once = false } = options;\n\tconst isActive = shallowRef(false);\n\tconst intervalLimit = computed(() => {\n\t\tconst limit = toValue(fpsLimit);\n\t\treturn limit ? 1e3 / limit : null;\n\t});\n\tlet previousFrameTimestamp = 0;\n\tlet rafId = null;\n\tfunction loop(timestamp) {\n\t\tif (!isActive.value || !window) return;\n\t\tif (!previousFrameTimestamp) previousFrameTimestamp = timestamp;\n\t\tconst delta = timestamp - previousFrameTimestamp;\n\t\tif (intervalLimit.value && delta < intervalLimit.value) {\n\t\t\trafId = window.requestAnimationFrame(loop);\n\t\t\treturn;\n\t\t}\n\t\tpreviousFrameTimestamp = timestamp;\n\t\tfn({\n\t\t\tdelta,\n\t\t\ttimestamp\n\t\t});\n\t\tif (once) {\n\t\t\tisActive.value = false;\n\t\t\trafId = null;\n\t\t\treturn;\n\t\t}\n\t\trafId = window.requestAnimationFrame(loop);\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value && window) {\n\t\t\tisActive.value = true;\n\t\t\tpreviousFrameTimestamp = 0;\n\t\t\trafId = window.requestAnimationFrame(loop);\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tif (rafId != null && window) {\n\t\t\twindow.cancelAnimationFrame(rafId);\n\t\t\trafId = null;\n\t\t}\n\t}\n\tif (immediate) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n//#endregion\n//#region useAnimate/index.ts\n/**\n* Reactive Web Animations API\n*\n* @see https://vueuse.org/useAnimate\n* @param target\n* @param keyframes\n* @param options\n*/\nfunction useAnimate(target, keyframes, options) {\n\tlet config;\n\tlet animateOptions;\n\tif (isObject(options)) {\n\t\tconfig = options;\n\t\tanimateOptions = objectOmit(options, [\n\t\t\t\"window\",\n\t\t\t\"immediate\",\n\t\t\t\"commitStyles\",\n\t\t\t\"persist\",\n\t\t\t\"onReady\",\n\t\t\t\"onError\"\n\t\t]);\n\t} else {\n\t\tconfig = { duration: options };\n\t\tanimateOptions = options;\n\t}\n\tconst { window = defaultWindow, immediate = true, commitStyles, persist, playbackRate: _playbackRate = 1, onReady, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = config;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n\tconst animate = shallowRef(void 0);\n\tconst store = shallowReactive({\n\t\tstartTime: null,\n\t\tcurrentTime: null,\n\t\ttimeline: null,\n\t\tplaybackRate: _playbackRate,\n\t\tpending: false,\n\t\tplayState: immediate ? \"idle\" : \"paused\",\n\t\treplaceState: \"active\"\n\t});\n\tconst pending = computed(() => store.pending);\n\tconst playState = computed(() => store.playState);\n\tconst replaceState = computed(() => store.replaceState);\n\tconst startTime = computed({\n\t\tget() {\n\t\t\treturn store.startTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.startTime = value;\n\t\t\tif (animate.value) animate.value.startTime = value;\n\t\t}\n\t});\n\tconst currentTime = computed({\n\t\tget() {\n\t\t\treturn store.currentTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.currentTime = value;\n\t\t\tif (animate.value) {\n\t\t\t\tanimate.value.currentTime = value;\n\t\t\t\tsyncResume();\n\t\t\t}\n\t\t}\n\t});\n\tconst timeline = computed({\n\t\tget() {\n\t\t\treturn store.timeline;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.timeline = value;\n\t\t\tif (animate.value) animate.value.timeline = value;\n\t\t}\n\t});\n\tconst playbackRate = computed({\n\t\tget() {\n\t\t\treturn store.playbackRate;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.playbackRate = value;\n\t\t\tif (animate.value) animate.value.playbackRate = value;\n\t\t}\n\t});\n\tconst play = () => {\n\t\tif (animate.value) try {\n\t\t\tanimate.value.play();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t\telse update();\n\t};\n\tconst pause = () => {\n\t\ttry {\n\t\t\tvar _animate$value;\n\t\t\t(_animate$value = animate.value) === null || _animate$value === void 0 || _animate$value.pause();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst reverse = () => {\n\t\tif (!animate.value) update();\n\t\ttry {\n\t\t\tvar _animate$value2;\n\t\t\t(_animate$value2 = animate.value) === null || _animate$value2 === void 0 || _animate$value2.reverse();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst finish = () => {\n\t\ttry {\n\t\t\tvar _animate$value3;\n\t\t\t(_animate$value3 = animate.value) === null || _animate$value3 === void 0 || _animate$value3.finish();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst cancel = () => {\n\t\ttry {\n\t\t\tvar _animate$value4;\n\t\t\t(_animate$value4 = animate.value) === null || _animate$value4 === void 0 || _animate$value4.cancel();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\twatch(() => unrefElement(target), (el) => {\n\t\tif (el) update(true);\n\t\telse animate.value = void 0;\n\t});\n\twatch(() => keyframes, (value) => {\n\t\tif (animate.value) {\n\t\t\tupdate();\n\t\t\tconst targetEl = unrefElement(target);\n\t\t\tif (targetEl) animate.value.effect = new KeyframeEffect(targetEl, toValue(value), animateOptions);\n\t\t}\n\t}, { deep: true });\n\ttryOnMounted(() => update(true), false);\n\ttryOnScopeDispose(cancel);\n\tfunction update(init) {\n\t\tconst el = unrefElement(target);\n\t\tif (!isSupported.value || !el) return;\n\t\tif (!animate.value) animate.value = el.animate(toValue(keyframes), animateOptions);\n\t\tif (persist) animate.value.persist();\n\t\tif (_playbackRate !== 1) animate.value.playbackRate = _playbackRate;\n\t\tif (init && !immediate) animate.value.pause();\n\t\telse syncResume();\n\t\tonReady === null || onReady === void 0 || onReady(animate.value);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(animate, [\n\t\t\"cancel\",\n\t\t\"finish\",\n\t\t\"remove\"\n\t], syncPause, listenerOptions);\n\tuseEventListener(animate, \"finish\", () => {\n\t\tvar _animate$value5;\n\t\tif (commitStyles) (_animate$value5 = animate.value) === null || _animate$value5 === void 0 || _animate$value5.commitStyles();\n\t}, listenerOptions);\n\tconst { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n\t\tif (!animate.value) return;\n\t\tstore.pending = animate.value.pending;\n\t\tstore.playState = animate.value.playState;\n\t\tstore.replaceState = animate.value.replaceState;\n\t\tstore.startTime = animate.value.startTime;\n\t\tstore.currentTime = animate.value.currentTime;\n\t\tstore.timeline = animate.value.timeline;\n\t\tstore.playbackRate = animate.value.playbackRate;\n\t}, { immediate: false });\n\tfunction syncResume() {\n\t\tif (isSupported.value) resumeRef();\n\t}\n\tfunction syncPause() {\n\t\tif (isSupported.value && window) window.requestAnimationFrame(pauseRef);\n\t}\n\treturn {\n\t\tisSupported,\n\t\tanimate,\n\t\tplay,\n\t\tpause,\n\t\treverse,\n\t\tfinish,\n\t\tcancel,\n\t\tpending,\n\t\tplayState,\n\t\treplaceState,\n\t\tstartTime,\n\t\tcurrentTime,\n\t\ttimeline,\n\t\tplaybackRate\n\t};\n}\n//#endregion\n//#region useAsyncQueue/index.ts\n/**\n* Asynchronous queue task controller.\n*\n* @see https://vueuse.org/useAsyncQueue\n* @param tasks\n* @param options\n*/\nfunction useAsyncQueue(tasks, options) {\n\tconst { interrupt = true, onError = noop, onFinished = noop, signal } = options || {};\n\tconst promiseState = {\n\t\taborted: \"aborted\",\n\t\tfulfilled: \"fulfilled\",\n\t\tpending: \"pending\",\n\t\trejected: \"rejected\"\n\t};\n\tconst result = reactive(Array.from(Array.from({ length: tasks.length }), () => ({\n\t\tstate: promiseState.pending,\n\t\tdata: null\n\t})));\n\tconst activeIndex = shallowRef(-1);\n\tif (!tasks || tasks.length === 0) {\n\t\tonFinished();\n\t\treturn {\n\t\t\tactiveIndex,\n\t\t\tresult\n\t\t};\n\t}\n\tfunction updateResult(state, res) {\n\t\tactiveIndex.value++;\n\t\tresult[activeIndex.value].data = res;\n\t\tresult[activeIndex.value].state = state;\n\t}\n\ttasks.reduce((prev, curr) => {\n\t\treturn prev.then((prevRes) => {\n\t\t\tvar _result$activeIndex$v;\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, /* @__PURE__ */ new Error(\"aborted\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (((_result$activeIndex$v = result[activeIndex.value]) === null || _result$activeIndex$v === void 0 ? void 0 : _result$activeIndex$v.state) === promiseState.rejected && interrupt) {\n\t\t\t\tonFinished();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst done = curr(prevRes).then((currentRes) => {\n\t\t\t\tupdateResult(promiseState.fulfilled, currentRes);\n\t\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\t\treturn currentRes;\n\t\t\t});\n\t\t\tif (!signal) return done;\n\t\t\treturn Promise.race([done, whenAborted(signal)]);\n\t\t}).catch((e) => {\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, e);\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\tupdateResult(promiseState.rejected, e);\n\t\t\tonError();\n\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\treturn e;\n\t\t});\n\t}, Promise.resolve());\n\treturn {\n\t\tactiveIndex,\n\t\tresult\n\t};\n}\nfunction whenAborted(signal) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst error = /* @__PURE__ */ new Error(\"aborted\");\n\t\tif (signal.aborted) reject(error);\n\t\telse signal.addEventListener(\"abort\", () => reject(error), { once: true });\n\t});\n}\n//#endregion\n//#region useAsyncState/index.ts\n/**\n* Reactive async state. Will not block your setup function and will trigger changes once\n* the promise is ready.\n*\n* @see https://vueuse.org/useAsyncState\n* @param promise The promise / async function to be resolved\n* @param initialState The initial state, used until the first evaluation finishes\n* @param options\n*/\nfunction useAsyncState(promise, initialState, options) {\n\tvar _globalThis$reportErr;\n\tconst { immediate = true, delay = 0, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop, onSuccess = noop, resetOnExecute = true, shallow = true, throwError } = options !== null && options !== void 0 ? options : {};\n\tconst state = shallow ? shallowRef(initialState) : ref(initialState);\n\tconst isReady = shallowRef(false);\n\tconst isLoading = shallowRef(false);\n\tconst error = shallowRef(void 0);\n\tlet executionsCount = 0;\n\tasync function execute(delay = 0, ...args) {\n\t\tconst executionId = executionsCount += 1;\n\t\tif (resetOnExecute) state.value = toValue(initialState);\n\t\terror.value = void 0;\n\t\tisReady.value = false;\n\t\tisLoading.value = true;\n\t\tif (delay > 0) await promiseTimeout(delay);\n\t\tconst _promise = typeof promise === \"function\" ? promise(...args) : promise;\n\t\ttry {\n\t\t\tconst data = await _promise;\n\t\t\tif (executionId === executionsCount) {\n\t\t\t\tstate.value = data;\n\t\t\t\tisReady.value = true;\n\t\t\t}\n\t\t\tonSuccess(data);\n\t\t\treturn data;\n\t\t} catch (e) {\n\t\t\tif (executionId === executionsCount) error.value = e;\n\t\t\tonError(e);\n\t\t\tif (throwError) throw e;\n\t\t} finally {\n\t\t\tif (executionId === executionsCount) isLoading.value = false;\n\t\t}\n\t}\n\tif (immediate) execute(delay);\n\tconst shell = {\n\t\tstate,\n\t\tisReady,\n\t\tisLoading,\n\t\terror,\n\t\texecute,\n\t\texecuteImmediate: (...args) => execute(0, ...args)\n\t};\n\tfunction waitUntilIsLoaded() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilIsLoaded().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\n//#endregion\n//#region useBase64/serialization.ts\nconst defaults = {\n\tarray: (v) => JSON.stringify(v),\n\tobject: (v) => JSON.stringify(v),\n\tset: (v) => JSON.stringify(Array.from(v)),\n\tmap: (v) => JSON.stringify(Object.fromEntries(v)),\n\tnull: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n\tif (!target) return defaults.null;\n\tif (target instanceof Map) return defaults.map;\n\telse if (target instanceof Set) return defaults.set;\n\telse if (Array.isArray(target)) return defaults.array;\n\telse return defaults.object;\n}\n//#endregion\n//#region useBase64/index.ts\nfunction useBase64(target, options) {\n\tconst base64 = shallowRef(\"\");\n\tconst promise = shallowRef();\n\tfunction execute() {\n\t\tif (!isClient) return;\n\t\tpromise.value = new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst _target = toValue(target);\n\t\t\t\tif (_target == null) resolve(\"\");\n\t\t\t\telse if (typeof _target === \"string\") resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n\t\t\t\telse if (_target instanceof Blob) resolve(blobToBase64(_target));\n\t\t\t\telse if (_target instanceof ArrayBuffer) resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n\t\t\t\telse if (_target instanceof HTMLCanvasElement) resolve(_target.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\telse if (_target instanceof HTMLImageElement) {\n\t\t\t\t\tconst img = _target.cloneNode(false);\n\t\t\t\t\timg.crossOrigin = \"Anonymous\";\n\t\t\t\t\timgLoaded(img).then(() => {\n\t\t\t\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\t\t\t\tconst ctx = canvas.getContext(\"2d\");\n\t\t\t\t\t\tcanvas.width = img.width;\n\t\t\t\t\t\tcanvas.height = img.height;\n\t\t\t\t\t\tctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\tresolve(canvas.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\t\t}).catch(reject);\n\t\t\t\t} else if (typeof _target === \"object\") {\n\t\t\t\t\tconst serialized = ((options === null || options === void 0 ? void 0 : options.serializer) || getDefaultSerialization(_target))(_target);\n\t\t\t\t\treturn resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n\t\t\t\t} else reject(/* @__PURE__ */ new Error(\"target is unsupported types\"));\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t\tpromise.value.then((res) => {\n\t\t\tbase64.value = (options === null || options === void 0 ? void 0 : options.dataUrl) === false ? res.replace(/^data:.*?;base64,/, \"\") : res;\n\t\t});\n\t\treturn promise.value;\n\t}\n\tif (isRef(target) || typeof target === \"function\") watch(target, execute, { immediate: true });\n\telse execute();\n\treturn {\n\t\tbase64,\n\t\tpromise,\n\t\texecute\n\t};\n}\nfunction imgLoaded(img) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!img.complete) {\n\t\t\timg.onload = () => {\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\timg.onerror = reject;\n\t\t} else resolve();\n\t});\n}\nfunction blobToBase64(blob) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst fr = new FileReader();\n\t\tfr.onload = (e) => {\n\t\t\tresolve(e.target.result);\n\t\t};\n\t\tfr.onerror = reject;\n\t\tfr.readAsDataURL(blob);\n\t});\n}\n//#endregion\n//#region useBattery/index.ts\n/**\n* Reactive Battery Status API.\n*\n* @see https://vueuse.org/useBattery\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBattery(options = {}) {\n\tconst { navigator = defaultNavigator } = options;\n\tconst events = [\n\t\t\"chargingchange\",\n\t\t\"chargingtimechange\",\n\t\t\"dischargingtimechange\",\n\t\t\"levelchange\"\n\t];\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n\tconst charging = shallowRef(false);\n\tconst chargingTime = shallowRef(0);\n\tconst dischargingTime = shallowRef(0);\n\tconst level = shallowRef(1);\n\tlet battery;\n\tfunction updateBatteryInfo() {\n\t\tcharging.value = this.charging;\n\t\tchargingTime.value = this.chargingTime || 0;\n\t\tdischargingTime.value = this.dischargingTime || 0;\n\t\tlevel.value = this.level;\n\t}\n\tif (isSupported.value) navigator.getBattery().then((_battery) => {\n\t\tbattery = _battery;\n\t\tupdateBatteryInfo.call(battery);\n\t\tuseEventListener(battery, events, updateBatteryInfo, { passive: true });\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcharging,\n\t\tchargingTime,\n\t\tdischargingTime,\n\t\tlevel\n\t};\n}\n//#endregion\n//#region useBluetooth/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useBluetooth(options) {\n\tlet { acceptAllDevices = false } = options || {};\n\tconst { filters = void 0, optionalServices = void 0, navigator = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"bluetooth\" in navigator);\n\tconst device = shallowRef();\n\tconst error = shallowRef(null);\n\twatch(device, () => {\n\t\tconnectToBluetoothGATTServer();\n\t});\n\tasync function requestDevice() {\n\t\tif (!isSupported.value) return;\n\t\terror.value = null;\n\t\tif (filters && filters.length > 0) acceptAllDevices = false;\n\t\ttry {\n\t\t\tdevice.value = await (navigator === null || navigator === void 0 ? void 0 : navigator.bluetooth.requestDevice({\n\t\t\t\tacceptAllDevices,\n\t\t\t\tfilters,\n\t\t\t\toptionalServices\n\t\t\t}));\n\t\t} catch (err) {\n\t\t\terror.value = err;\n\t\t}\n\t}\n\tconst server = shallowRef();\n\tconst isConnected = shallowRef(false);\n\tfunction reset() {\n\t\tisConnected.value = false;\n\t\tdevice.value = void 0;\n\t\tserver.value = void 0;\n\t}\n\tasync function connectToBluetoothGATTServer() {\n\t\terror.value = null;\n\t\tif (device.value && device.value.gatt) {\n\t\t\tuseEventListener(device, \"gattserverdisconnected\", reset, { passive: true });\n\t\t\ttry {\n\t\t\t\tserver.value = await device.value.gatt.connect();\n\t\t\t\tisConnected.value = server.value.connected;\n\t\t\t} catch (err) {\n\t\t\t\terror.value = err;\n\t\t\t}\n\t\t}\n\t}\n\ttryOnMounted(() => {\n\t\tvar _device$value$gatt;\n\t\tif (device.value) (_device$value$gatt = device.value.gatt) === null || _device$value$gatt === void 0 || _device$value$gatt.connect();\n\t});\n\ttryOnScopeDispose(() => {\n\t\tvar _device$value$gatt2;\n\t\tif (device.value) (_device$value$gatt2 = device.value.gatt) === null || _device$value$gatt2 === void 0 || _device$value$gatt2.disconnect();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisConnected: shallowReadonly(isConnected),\n\t\tdevice,\n\t\trequestDevice,\n\t\tserver,\n\t\terror\n\t};\n}\n//#endregion\n//#region useSSRWidth/index.ts\nconst ssrWidthSymbol = Symbol(\"vueuse-ssr-width\");\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSSRWidth() {\n\tconst ssrWidth = hasInjectionContext() ? injectLocal(ssrWidthSymbol, null) : null;\n\treturn typeof ssrWidth === \"number\" ? ssrWidth : void 0;\n}\nfunction provideSSRWidth(width, app) {\n\tif (app !== void 0) app.provide(ssrWidthSymbol, width);\n\telse provideLocal(ssrWidthSymbol, width);\n}\n//#endregion\n//#region useMediaQuery/index.ts\n/**\n* Reactive Media Query.\n*\n* @see https://vueuse.org/useMediaQuery\n* @param query\n* @param options\n*/\nfunction useMediaQuery(query, options = {}) {\n\tconst { window = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n\tconst ssrSupport = shallowRef(typeof ssrWidth === \"number\");\n\tconst mediaQuery = shallowRef();\n\tconst matches = shallowRef(false);\n\tconst handler = (event) => {\n\t\tmatches.value = event.matches;\n\t};\n\twatchEffect(() => {\n\t\tif (ssrSupport.value) {\n\t\t\tssrSupport.value = !isSupported.value;\n\t\t\tconst queryStrings = toValue(query).split(\",\");\n\t\t\tmatches.value = queryStrings.some((queryString) => {\n\t\t\t\tconst not = queryString.includes(\"not all\");\n\t\t\t\tconst minWidth = queryString.match(/\\(\\s*min-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tconst maxWidth = queryString.match(/\\(\\s*max-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tlet res = Boolean(minWidth || maxWidth);\n\t\t\t\tif (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);\n\t\t\t\tif (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);\n\t\t\t\treturn not ? !res : res;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (!isSupported.value) return;\n\t\tmediaQuery.value = window.matchMedia(toValue(query));\n\t\tmatches.value = mediaQuery.value.matches;\n\t});\n\tuseEventListener(mediaQuery, \"change\", handler, { passive: true });\n\treturn computed(() => matches.value);\n}\n//#endregion\n//#region useBreakpoints/breakpoints.ts\n/**\n* Breakpoints from Tailwind V2\n*\n* @see https://tailwindcss.com/docs/breakpoints\n*/\nconst breakpointsTailwind = {\n\t\"sm\": 640,\n\t\"md\": 768,\n\t\"lg\": 1024,\n\t\"xl\": 1280,\n\t\"2xl\": 1536\n};\n/**\n* Breakpoints from Bootstrap V5\n*\n* @see https://getbootstrap.com/docs/5.0/layout/breakpoints\n*/\nconst breakpointsBootstrapV5 = {\n\txs: 0,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1400\n};\n/**\n* Breakpoints from Vuetify V2\n*\n* @see https://v2.vuetifyjs.com/en/features/breakpoints/\n*/\nconst breakpointsVuetifyV2 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1264,\n\txl: 1904\n};\n/**\n* Breakpoints from Vuetify V3\n*\n* @see https://vuetifyjs.com/en/styles/float/#overview\n*/\nconst breakpointsVuetifyV3 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1280,\n\txl: 1920,\n\txxl: 2560\n};\n/**\n* Alias to `breakpointsVuetifyV2`\n*\n* @deprecated explictly use `breakpointsVuetifyV2` or `breakpointsVuetifyV3` instead\n*/\nconst breakpointsVuetify = breakpointsVuetifyV2;\n/**\n* Breakpoints from Ant Design\n*\n* @see https://ant.design/components/layout/#breakpoint-width\n*/\nconst breakpointsAntDesign = {\n\txs: 480,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1600\n};\n/**\n* Breakpoints from Quasar V2\n*\n* @see https://quasar.dev/style/breakpoints\n*/\nconst breakpointsQuasar = {\n\txs: 0,\n\tsm: 600,\n\tmd: 1024,\n\tlg: 1440,\n\txl: 1920\n};\n/**\n* Sematic Breakpoints\n*/\nconst breakpointsSematic = {\n\tmobileS: 320,\n\tmobileM: 375,\n\tmobileL: 425,\n\ttablet: 768,\n\tlaptop: 1024,\n\tlaptopL: 1440,\n\tdesktop4K: 2560\n};\n/**\n* Breakpoints from Master CSS\n*\n* @see https://docs.master.co/css/breakpoints\n*/\nconst breakpointsMasterCss = {\n\t\"3xs\": 360,\n\t\"2xs\": 480,\n\t\"xs\": 600,\n\t\"sm\": 768,\n\t\"md\": 1024,\n\t\"lg\": 1280,\n\t\"xl\": 1440,\n\t\"2xl\": 1600,\n\t\"3xl\": 1920,\n\t\"4xl\": 2560\n};\n/**\n* Breakpoints from PrimeFlex\n*\n* @see https://primeflex.org/installation\n*/\nconst breakpointsPrimeFlex = {\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200\n};\n/**\n* Breakpoints from ElementUI/ElementPlus\n*\n* @see https://element.eleme.io/#/en-US/component/layout\n* @see https://element-plus.org/en-US/component/layout.html\n*/\nconst breakpointsElement = {\n\txs: 0,\n\tsm: 768,\n\tmd: 992,\n\tlg: 1200,\n\txl: 1920\n};\n//#endregion\n//#region useBreakpoints/index.ts\n/**\n* Reactively viewport breakpoints\n*\n* @see https://vueuse.org/useBreakpoints\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBreakpoints(breakpoints, options = {}) {\n\tfunction getValue(k, delta) {\n\t\tlet v = toValue(breakpoints[toValue(k)]);\n\t\tif (delta != null) v = increaseWithUnit(v, delta);\n\t\tif (typeof v === \"number\") v = `${v}px`;\n\t\treturn v;\n\t}\n\tconst { window = defaultWindow, strategy = \"min-width\", ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst ssrSupport = typeof ssrWidth === \"number\";\n\tconst mounted = ssrSupport ? shallowRef(false) : { value: true };\n\tif (ssrSupport) tryOnMounted(() => mounted.value = !!window);\n\tfunction match(query, size) {\n\t\tif (!mounted.value && ssrSupport) return query === \"min\" ? ssrWidth >= pxValue(size) : ssrWidth <= pxValue(size);\n\t\tif (!window) return false;\n\t\treturn window.matchMedia(`(${query}-width: ${size})`).matches;\n\t}\n\tconst greaterOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n\t};\n\tconst smallerOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n\t};\n\tconst shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n\t\tObject.defineProperty(shortcuts, k, {\n\t\t\tget: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\treturn shortcuts;\n\t}, {});\n\tfunction current() {\n\t\tconst points = Object.keys(breakpoints).map((k) => [\n\t\t\tk,\n\t\t\tshortcutMethods[k],\n\t\t\tpxValue(getValue(k))\n\t\t]).sort((a, b) => a[2] - b[2]);\n\t\treturn computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n\t}\n\treturn Object.assign(shortcutMethods, {\n\t\tgreaterOrEqual,\n\t\tsmallerOrEqual,\n\t\tgreater(k) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue(k, .1)})`, options);\n\t\t},\n\t\tsmaller(k) {\n\t\t\treturn useMediaQuery(() => `(max-width: ${getValue(k, -.1)})`, options);\n\t\t},\n\t\tbetween(a, b) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -.1)})`, options);\n\t\t},\n\t\tisGreater(k) {\n\t\t\treturn match(\"min\", getValue(k, .1));\n\t\t},\n\t\tisGreaterOrEqual(k) {\n\t\t\treturn match(\"min\", getValue(k));\n\t\t},\n\t\tisSmaller(k) {\n\t\t\treturn match(\"max\", getValue(k, -.1));\n\t\t},\n\t\tisSmallerOrEqual(k) {\n\t\t\treturn match(\"max\", getValue(k));\n\t\t},\n\t\tisInBetween(a, b) {\n\t\t\treturn match(\"min\", getValue(a)) && match(\"max\", getValue(b, -.1));\n\t\t},\n\t\tcurrent,\n\t\tactive() {\n\t\t\tconst bps = current();\n\t\t\treturn computed(() => bps.value.length === 0 ? \"\" : bps.value.at(strategy === \"min-width\" ? -1 : 0));\n\t\t}\n\t});\n}\n//#endregion\n//#region useBroadcastChannel/index.ts\n/**\n* Reactive BroadcastChannel\n*\n* @see https://vueuse.org/useBroadcastChannel\n* @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n* @param options\n*\n*/\nfunction useBroadcastChannel(options) {\n\tconst { name, window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"BroadcastChannel\" in window);\n\tconst isClosed = shallowRef(false);\n\tconst channel = shallowRef();\n\tconst data = shallowRef();\n\tconst error = shallowRef(null);\n\tconst post = (data) => {\n\t\tif (channel.value) channel.value.postMessage(data);\n\t};\n\tconst close = () => {\n\t\tif (channel.value) channel.value.close();\n\t\tisClosed.value = true;\n\t};\n\tif (isSupported.value) tryOnMounted(() => {\n\t\terror.value = null;\n\t\tchannel.value = new BroadcastChannel(name);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(channel, \"message\", (e) => {\n\t\t\tdata.value = e.data;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"messageerror\", (e) => {\n\t\t\terror.value = e;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"close\", () => {\n\t\t\tisClosed.value = true;\n\t\t}, listenerOptions);\n\t});\n\ttryOnScopeDispose(() => {\n\t\tclose();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tchannel,\n\t\tdata,\n\t\tpost,\n\t\tclose,\n\t\terror,\n\t\tisClosed\n\t};\n}\n//#endregion\n//#region useBrowserLocation/index.ts\nconst WRITABLE_PROPERTIES = [\n\t\"hash\",\n\t\"host\",\n\t\"hostname\",\n\t\"href\",\n\t\"pathname\",\n\t\"port\",\n\t\"protocol\",\n\t\"search\"\n];\n/**\n* Reactive browser location.\n*\n* @see https://vueuse.org/useBrowserLocation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBrowserLocation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst refs = Object.fromEntries(WRITABLE_PROPERTIES.map((key) => [key, ref()]));\n\tconst buildState = (trigger) => {\n\t\tvar _window$location;\n\t\tconst { state, length } = (window === null || window === void 0 ? void 0 : window.history) || {};\n\t\tconst { origin } = (window === null || window === void 0 ? void 0 : window.location) || {};\n\t\tfor (const key of WRITABLE_PROPERTIES) refs[key].value = window === null || window === void 0 || (_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location[key];\n\t\treturn reactive({\n\t\t\ttrigger,\n\t\t\tstate,\n\t\t\tlength,\n\t\t\torigin,\n\t\t\t...refs\n\t\t});\n\t};\n\tconst state = ref(buildState(\"load\"));\n\tfor (const [key, ref] of objectEntries(refs)) watch(ref, (value) => {\n\t\tif (!(window === null || window === void 0 ? void 0 : window.location) || window.location[key] === value) return;\n\t\twindow.location[key] = value;\n\t});\n\tif (window) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), listenerOptions);\n\t\tuseEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), listenerOptions);\n\t}\n\treturn state;\n}\n//#endregion\n//#region useCached/index.ts\nfunction useCached(refValue, comparator = (newSourceValue, cachedValue) => newSourceValue === cachedValue, options) {\n\tconst { deepRefs = true, ...watchOptions } = options || {};\n\tconst cachedValue = createRef(refValue.value, deepRefs);\n\twatch(() => refValue.value, (value) => {\n\t\tif (!comparator(value, cachedValue.value)) cachedValue.value = value;\n\t}, watchOptions);\n\treturn cachedValue;\n}\n//#endregion\n//#region usePermission/index.ts\n/**\n* Reactive Permissions API.\n*\n* @see https://vueuse.org/usePermission\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePermission(permissionDesc, options = {}) {\n\tconst { controls = false, navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"permissions\" in navigator);\n\tconst permissionStatus = shallowRef();\n\tconst desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n\tconst state = shallowRef();\n\tconst update = () => {\n\t\tvar _permissionStatus$val, _permissionStatus$val2;\n\t\tstate.value = (_permissionStatus$val = (_permissionStatus$val2 = permissionStatus.value) === null || _permissionStatus$val2 === void 0 ? void 0 : _permissionStatus$val2.state) !== null && _permissionStatus$val !== void 0 ? _permissionStatus$val : \"prompt\";\n\t};\n\tuseEventListener(permissionStatus, \"change\", update, { passive: true });\n\tconst query = createSingletonPromise(async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionStatus.value) try {\n\t\t\tpermissionStatus.value = await navigator.permissions.query(desc);\n\t\t} catch (_unused) {\n\t\t\tpermissionStatus.value = void 0;\n\t\t} finally {\n\t\t\tupdate();\n\t\t}\n\t\tif (controls) return toRaw(permissionStatus.value);\n\t});\n\tquery();\n\tif (controls) return {\n\t\tstate,\n\t\tisSupported,\n\t\tquery\n\t};\n\telse return state;\n}\n//#endregion\n//#region useClipboard/index.ts\nfunction useClipboard(options = {}) {\n\tconst { navigator = defaultNavigator, read = false, source, copiedDuring = 1500, legacy = false } = options;\n\tconst isClipboardApiSupported = /* @__PURE__ */ useSupported(() => navigator && \"clipboard\" in navigator);\n\tconst permissionRead = usePermission(\"clipboard-read\");\n\tconst permissionWrite = usePermission(\"clipboard-write\");\n\tconst isSupported = computed(() => isClipboardApiSupported.value || legacy);\n\tconst text = shallowRef(\"\");\n\tconst copied = shallowRef(false);\n\tconst copyPending = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tlet lastLegacyId = 0;\n\tasync function updateText() {\n\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionRead.value));\n\t\tif (!useLegacy) try {\n\t\t\ttext.value = await navigator.clipboard.readText();\n\t\t} catch (_unused) {\n\t\t\tuseLegacy = true;\n\t\t}\n\t\tif (useLegacy) text.value = legacyRead();\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateText, { passive: true });\n\tasync function copy(value) {\n\t\tconst resolvedValue = value !== null && value !== void 0 ? value : toValue(source);\n\t\tif (isSupported.value && resolvedValue != null) {\n\t\t\tcopyPending.value = true;\n\t\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionWrite.value));\n\t\t\tif (!useLegacy) try {\n\t\t\t\tconst clipboardItem = createClipboardItem(resolvedValue);\n\t\t\t\tawait navigator.clipboard.write([clipboardItem]);\n\t\t\t} catch (_unused2) {\n\t\t\t\tuseLegacy = true;\n\t\t\t}\n\t\t\tif (useLegacy) if (typeof resolvedValue === \"string\") {\n\t\t\t\ttext.value = resolvedValue;\n\t\t\t\tlegacyCopy(resolvedValue);\n\t\t\t} else {\n\t\t\t\tconst currentId = ++lastLegacyId;\n\t\t\t\tconst resolvedText = await resolvedValue();\n\t\t\t\tif (resolvedText != null && currentId === lastLegacyId) {\n\t\t\t\t\ttext.value = resolvedText;\n\t\t\t\t\tlegacyCopy(resolvedText);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t\tcopyPending.value = false;\n\t\t}\n\t}\n\tfunction createClipboardItem(value) {\n\t\tif (typeof value === \"string\") {\n\t\t\ttext.value = value;\n\t\t\treturn new ClipboardItem({ \"text/plain\": value });\n\t\t} else return new ClipboardItem({ \"text/plain\": value().then((resolvedText = \"\") => {\n\t\t\ttext.value = resolvedText;\n\t\t\treturn new Blob([resolvedText], { type: \"text/plain\" });\n\t\t}) });\n\t}\n\tfunction legacyCopy(value) {\n\t\tconst ta = document.createElement(\"textarea\");\n\t\tta.value = value;\n\t\tta.style.position = \"absolute\";\n\t\tta.style.opacity = \"0\";\n\t\tta.setAttribute(\"readonly\", \"\");\n\t\tdocument.body.appendChild(ta);\n\t\tta.select();\n\t\tdocument.execCommand(\"copy\");\n\t\tta.remove();\n\t}\n\tfunction legacyRead() {\n\t\tvar _document$getSelectio, _document, _document$getSelectio2;\n\t\treturn (_document$getSelectio = (_document = document) === null || _document === void 0 || (_document$getSelectio2 = _document.getSelection) === null || _document$getSelectio2 === void 0 || (_document$getSelectio2 = _document$getSelectio2.call(_document)) === null || _document$getSelectio2 === void 0 ? void 0 : _document$getSelectio2.toString()) !== null && _document$getSelectio !== void 0 ? _document$getSelectio : \"\";\n\t}\n\tfunction isAllowed(status) {\n\t\treturn status === \"granted\" || status === \"prompt\";\n\t}\n\treturn {\n\t\tcopyPending: shallowReadonly(copyPending),\n\t\tisSupported,\n\t\ttext: shallowReadonly(text),\n\t\tcopied: shallowReadonly(copied),\n\t\tcopy\n\t};\n}\n//#endregion\n//#region useClipboardItems/index.ts\nfunction useClipboardItems(options = {}) {\n\tconst { navigator = defaultNavigator, read = false, source, copiedDuring = 1500 } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"clipboard\" in navigator);\n\tconst content = shallowRef([]);\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tfunction updateContent() {\n\t\tif (isSupported.value) navigator.clipboard.read().then((items) => {\n\t\t\tcontent.value = items;\n\t\t});\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateContent, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tawait navigator.clipboard.write(value);\n\t\t\tcontent.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\treturn {\n\t\tisSupported,\n\t\tcontent: shallowReadonly(content),\n\t\tcopied: shallowReadonly(copied),\n\t\tcopy,\n\t\tread: updateContent\n\t};\n}\n//#endregion\n//#region useCloned/index.ts\nfunction cloneFnJSON(source) {\n\treturn JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n\tconst cloned = ref({});\n\tconst isModified = shallowRef(false);\n\tlet _lastSync = false;\n\tconst { manual, clone = cloneFnJSON, deep = true, immediate = true } = options;\n\twatch(cloned, () => {\n\t\tif (_lastSync) {\n\t\t\t_lastSync = false;\n\t\t\treturn;\n\t\t}\n\t\tisModified.value = true;\n\t}, {\n\t\tdeep: true,\n\t\tflush: \"sync\"\n\t});\n\tfunction sync() {\n\t\t_lastSync = true;\n\t\tisModified.value = false;\n\t\tcloned.value = clone(toValue(source));\n\t}\n\tif (!manual && (isRef(source) || typeof source === \"function\")) watch(source, sync, {\n\t\t...options,\n\t\tdeep,\n\t\timmediate\n\t});\n\telse sync();\n\treturn {\n\t\tcloned,\n\t\tisModified,\n\t\tsync\n\t};\n}\n//#endregion\n//#region ssr-handlers.ts\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* #__PURE__ */ getHandlers();\nfunction getHandlers() {\n\tif (!(globalKey in _global)) _global[globalKey] = _global[globalKey] || {};\n\treturn _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n\treturn handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n\thandlers[key] = fn;\n}\n//#endregion\n//#region usePreferredDark/index.ts\n/**\n* Reactive dark theme preference.\n*\n* @see https://vueuse.org/usePreferredDark\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredDark(options) {\n\treturn useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n//#endregion\n//#region useStorage/guess.ts\nfunction guessSerializerType(rawInit) {\n\treturn rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n//#endregion\n//#region useStorage/index.ts\nconst StorageSerializers = {\n\tboolean: {\n\t\tread: (v) => v === \"true\",\n\t\twrite: (v) => String(v)\n\t},\n\tobject: {\n\t\tread: (v) => JSON.parse(v),\n\t\twrite: (v) => JSON.stringify(v)\n\t},\n\tnumber: {\n\t\tread: (v) => Number.parseFloat(v),\n\t\twrite: (v) => String(v)\n\t},\n\tany: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tstring: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tmap: {\n\t\tread: (v) => new Map(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v.entries()))\n\t},\n\tset: {\n\t\tread: (v) => new Set(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v))\n\t},\n\tdate: {\n\t\tread: (v) => new Date(v),\n\t\twrite: (v) => v.toISOString()\n\t}\n};\nconst customStorageEventName = \"vueuse-storage\";\n/**\n* Reactive LocalStorage/SessionStorage.\n*\n* @see https://vueuse.org/useStorage\n*/\nfunction useStorage(key, defaults, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, initOnMounted } = options;\n\tconst data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n\tconst keyComputed = computed(() => toValue(key));\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorage\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tif (!storage) return data;\n\tconst rawInit = toValue(defaults);\n\tconst type = guessSerializerType(rawInit);\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tconst { pause: pauseWatch, resume: resumeWatch } = watchPausable(data, (newValue) => write(newValue), {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\twatch(keyComputed, () => update(), { flush });\n\tlet firstMounted = false;\n\tconst onStorageEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdate(ev);\n\t};\n\tconst onStorageCustomEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdateFromCustomEvent(ev);\n\t};\n\t/**\n\t* The custom event is needed for same-document syncing when using custom\n\t* storage backends, but it doesn't work across different documents.\n\t*\n\t* TODO: Consider implementing a BroadcastChannel-based solution that fixes this.\n\t*/\n\tif (window && listenToStorageChanges) if (storage instanceof Storage) useEventListener(window, \"storage\", onStorageEvent, { passive: true });\n\telse useEventListener(window, customStorageEventName, onStorageCustomEvent);\n\tif (initOnMounted) tryOnMounted(() => {\n\t\tfirstMounted = true;\n\t\tupdate();\n\t});\n\telse update();\n\tfunction dispatchWriteEvent(oldValue, newValue) {\n\t\tif (window) {\n\t\t\tconst payload = {\n\t\t\t\tkey: keyComputed.value,\n\t\t\t\toldValue,\n\t\t\t\tnewValue,\n\t\t\t\tstorageArea: storage\n\t\t\t};\n\t\t\twindow.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, { detail: payload }));\n\t\t}\n\t}\n\tfunction write(v) {\n\t\ttry {\n\t\t\tconst oldValue = storage.getItem(keyComputed.value);\n\t\t\tif (v == null) {\n\t\t\t\tdispatchWriteEvent(oldValue, null);\n\t\t\t\tstorage.removeItem(keyComputed.value);\n\t\t\t} else {\n\t\t\t\tconst serialized = serializer.write(v);\n\t\t\t\tif (oldValue !== serialized) {\n\t\t\t\t\tstorage.setItem(keyComputed.value, serialized);\n\t\t\t\t\tdispatchWriteEvent(oldValue, serialized);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tfunction read(event) {\n\t\tconst rawValue = event ? event.newValue : storage.getItem(keyComputed.value);\n\t\tif (rawValue == null) {\n\t\t\tif (writeDefaults && rawInit != null) storage.setItem(keyComputed.value, serializer.write(rawInit));\n\t\t\treturn rawInit;\n\t\t} else if (!event && mergeDefaults) {\n\t\t\tconst value = serializer.read(rawValue);\n\t\t\tif (typeof mergeDefaults === \"function\") return mergeDefaults(value, rawInit);\n\t\t\telse if (type === \"object\" && !Array.isArray(value)) return {\n\t\t\t\t...rawInit,\n\t\t\t\t...value\n\t\t\t};\n\t\t\treturn value;\n\t\t} else if (typeof rawValue !== \"string\") return rawValue;\n\t\telse return serializer.read(rawValue);\n\t}\n\tfunction update(event) {\n\t\tif (event && event.storageArea !== storage) return;\n\t\tif (event && event.key == null) {\n\t\t\tdata.value = rawInit;\n\t\t\treturn;\n\t\t}\n\t\tif (event && event.key !== keyComputed.value) return;\n\t\tpauseWatch();\n\t\ttry {\n\t\t\tconst serializedData = serializer.write(data.value);\n\t\t\tif (event === void 0 || (event === null || event === void 0 ? void 0 : event.newValue) !== serializedData) data.value = read(event);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (event) nextTick(resumeWatch);\n\t\t\telse resumeWatch();\n\t\t}\n\t}\n\tfunction updateFromCustomEvent(event) {\n\t\tupdate(event.detail);\n\t}\n\treturn data;\n}\n//#endregion\n//#region useColorMode/index.ts\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n/**\n* Reactive color mode with auto data persistence.\n*\n* @see https://vueuse.org/useColorMode\n* @param options\n*/\nfunction useColorMode(options = {}) {\n\tconst { selector = \"html\", attribute = \"class\", initialValue = \"auto\", window = defaultWindow, storage, storageKey = \"vueuse-color-scheme\", listenToStorageChanges = true, storageRef, emitAuto, disableTransition = true } = options;\n\tconst modes = {\n\t\tauto: \"\",\n\t\tlight: \"light\",\n\t\tdark: \"dark\",\n\t\t...options.modes || {}\n\t};\n\tconst preferredDark = usePreferredDark({ window });\n\tconst system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n\tconst store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, {\n\t\twindow,\n\t\tlistenToStorageChanges\n\t}));\n\tconst state = computed(() => store.value === \"auto\" ? system.value : store.value);\n\tconst updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector, attribute, value) => {\n\t\tconst el = typeof selector === \"string\" ? window === null || window === void 0 ? void 0 : window.document.querySelector(selector) : unrefElement(selector);\n\t\tif (!el) return;\n\t\tconst classesToAdd = /* @__PURE__ */ new Set();\n\t\tconst classesToRemove = /* @__PURE__ */ new Set();\n\t\tlet attributeToChange = null;\n\t\tif (attribute === \"class\") {\n\t\t\tconst current = value.split(/\\s/g);\n\t\t\tObject.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n\t\t\t\tif (current.includes(v)) classesToAdd.add(v);\n\t\t\t\telse classesToRemove.add(v);\n\t\t\t});\n\t\t} else attributeToChange = {\n\t\t\tkey: attribute,\n\t\t\tvalue\n\t\t};\n\t\tif (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null) return;\n\t\tlet style;\n\t\tif (disableTransition) {\n\t\t\tstyle = window.document.createElement(\"style\");\n\t\t\tstyle.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n\t\t\twindow.document.head.appendChild(style);\n\t\t}\n\t\tfor (const c of classesToAdd) el.classList.add(c);\n\t\tfor (const c of classesToRemove) el.classList.remove(c);\n\t\tif (attributeToChange) el.setAttribute(attributeToChange.key, attributeToChange.value);\n\t\tif (disableTransition) {\n\t\t\twindow.getComputedStyle(style).opacity;\n\t\t\tdocument.head.removeChild(style);\n\t\t}\n\t});\n\tfunction defaultOnChanged(mode) {\n\t\tvar _modes$mode;\n\t\tupdateHTMLAttrs(selector, attribute, (_modes$mode = modes[mode]) !== null && _modes$mode !== void 0 ? _modes$mode : mode);\n\t}\n\tfunction onChanged(mode) {\n\t\tif (options.onChanged) options.onChanged(mode, defaultOnChanged);\n\t\telse defaultOnChanged(mode);\n\t}\n\twatch(state, onChanged, {\n\t\tflush: \"post\",\n\t\timmediate: true\n\t});\n\ttryOnMounted(() => onChanged(state.value));\n\tconst auto = computed({\n\t\tget() {\n\t\t\treturn emitAuto ? store.value : state.value;\n\t\t},\n\t\tset(v) {\n\t\t\tstore.value = v;\n\t\t}\n\t});\n\treturn Object.assign(auto, {\n\t\tstore,\n\t\tsystem,\n\t\tstate\n\t});\n}\n//#endregion\n//#region useConfirmDialog/index.ts\n/**\n* Hooks for creating confirm dialogs. Useful for modal windows, popups and logins.\n*\n* @see https://vueuse.org/useConfirmDialog/\n* @param revealed `boolean` `ref` that handles a modal window\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useConfirmDialog(revealed = shallowRef(false)) {\n\tconst confirmHook = createEventHook();\n\tconst cancelHook = createEventHook();\n\tconst revealHook = createEventHook();\n\tlet _resolve = noop;\n\tconst reveal = (data) => {\n\t\trevealHook.trigger(data);\n\t\trevealed.value = true;\n\t\treturn new Promise((resolve) => {\n\t\t\t_resolve = resolve;\n\t\t});\n\t};\n\tconst confirm = (data) => {\n\t\trevealed.value = false;\n\t\tconfirmHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: false\n\t\t});\n\t};\n\tconst cancel = (data) => {\n\t\trevealed.value = false;\n\t\tcancelHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: true\n\t\t});\n\t};\n\treturn {\n\t\tisRevealed: computed(() => revealed.value),\n\t\treveal,\n\t\tconfirm,\n\t\tcancel,\n\t\tonReveal: revealHook.on,\n\t\tonConfirm: confirmHook.on,\n\t\tonCancel: cancelHook.on\n\t};\n}\n//#endregion\n//#region useCountdown/index.ts\nfunction getDefaultScheduler$8(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = 1e3, immediate = false } = options;\n\t\treturn (cb) => useIntervalFn(cb, interval, { immediate });\n\t}\n\treturn (cb) => useIntervalFn(cb, 1e3, { immediate: false });\n}\n/**\n* Reactive countdown timer in seconds.\n*\n* @param initialCountdown\n* @param options\n*\n* @see https://vueuse.org/useCountdown\n*/\nfunction useCountdown(initialCountdown, options = {}) {\n\tconst remaining = shallowRef(toValue(initialCountdown));\n\tconst { scheduler = getDefaultScheduler$8(options), onTick, onComplete } = options;\n\tconst controls = scheduler(() => {\n\t\tconst value = remaining.value - 1;\n\t\tremaining.value = value < 0 ? 0 : value;\n\t\tonTick === null || onTick === void 0 || onTick();\n\t\tif (remaining.value <= 0) {\n\t\t\tcontrols.pause();\n\t\t\tonComplete === null || onComplete === void 0 || onComplete();\n\t\t}\n\t});\n\tconst reset = (countdown) => {\n\t\tvar _toValue;\n\t\tremaining.value = (_toValue = toValue(countdown)) !== null && _toValue !== void 0 ? _toValue : toValue(initialCountdown);\n\t};\n\tconst stop = () => {\n\t\tcontrols.pause();\n\t\treset();\n\t};\n\tconst resume = () => {\n\t\tif (!controls.isActive.value) {\n\t\t\tif (remaining.value > 0) controls.resume();\n\t\t}\n\t};\n\tconst start = (countdown) => {\n\t\treset(countdown);\n\t\tcontrols.resume();\n\t};\n\treturn {\n\t\tremaining,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tpause: controls.pause,\n\t\tresume,\n\t\tisActive: controls.isActive\n\t};\n}\n//#endregion\n//#region useCssSupports/index.ts\nfunction useCssSupports(...args) {\n\tlet options = {};\n\tif (typeof toValue(args.at(-1)) === \"object\") options = args.pop();\n\tconst [prop, value] = args;\n\tconst { window = defaultWindow, ssrValue = false } = options;\n\tconst isMounted = useMounted();\n\treturn { isSupported: computed(() => {\n\t\tif (!isClient || !isMounted.value) return ssrValue;\n\t\treturn args.length === 2 ? window === null || window === void 0 ? void 0 : window.CSS.supports(toValue(prop), toValue(value)) : window === null || window === void 0 ? void 0 : window.CSS.supports(toValue(prop));\n\t}) };\n}\n//#endregion\n//#region useCssVar/index.ts\n/**\n* Manipulate CSS variables.\n*\n* @see https://vueuse.org/useCssVar\n* @param prop\n* @param target\n* @param options\n*/\nfunction useCssVar(prop, target, options = {}) {\n\tconst { window = defaultWindow, initialValue, observe = false } = options;\n\tconst variable = shallowRef(initialValue);\n\tconst elRef = computed(() => {\n\t\tvar _window$document;\n\t\treturn unrefElement(target) || (window === null || window === void 0 || (_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.documentElement);\n\t});\n\tfunction updateCssVar() {\n\t\tconst key = toValue(prop);\n\t\tconst el = toValue(elRef);\n\t\tif (el && window && key) {\n\t\t\tvar _window$getComputedSt;\n\t\t\tconst value = (_window$getComputedSt = window.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim();\n\t\t\tvariable.value = value || variable.value || initialValue;\n\t\t}\n\t}\n\tif (observe) useMutationObserver(elRef, updateCssVar, {\n\t\tattributeFilter: [\"style\", \"class\"],\n\t\twindow\n\t});\n\twatch([elRef, () => toValue(prop)], (_, old) => {\n\t\tif (old[0] && old[1]) old[0].style.removeProperty(old[1]);\n\t\tupdateCssVar();\n\t}, { immediate: true });\n\twatch([variable, elRef], ([val, el]) => {\n\t\tconst raw_prop = toValue(prop);\n\t\tif ((el === null || el === void 0 ? void 0 : el.style) && raw_prop) if (val == null) el.style.removeProperty(raw_prop);\n\t\telse el.style.setProperty(raw_prop, val);\n\t}, { immediate: true });\n\treturn variable;\n}\n//#endregion\n//#region useCurrentElement/index.ts\nfunction useCurrentElement(rootComponent) {\n\tconst vm = getCurrentInstance();\n\tconst currentElement = computedWithControl(() => null, () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el);\n\tonUpdated(currentElement.trigger);\n\tonMounted(currentElement.trigger);\n\treturn currentElement;\n}\n//#endregion\n//#region useCycleList/index.ts\n/**\n* Cycle through a list of items\n*\n* @see https://vueuse.org/useCycleList\n*/\nfunction useCycleList(list, options) {\n\tconst state = shallowRef(getInitialValue());\n\tconst listRef = toRef(list);\n\tconst index = computed({\n\t\tget() {\n\t\t\tvar _options$fallbackInde;\n\t\t\tconst targetList = listRef.value;\n\t\t\tlet index = (options === null || options === void 0 ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n\t\t\tif (index < 0) index = (_options$fallbackInde = options === null || options === void 0 ? void 0 : options.fallbackIndex) !== null && _options$fallbackInde !== void 0 ? _options$fallbackInde : 0;\n\t\t\treturn index;\n\t\t},\n\t\tset(v) {\n\t\t\tset(v);\n\t\t}\n\t});\n\tfunction set(i) {\n\t\tconst targetList = listRef.value;\n\t\tconst length = targetList.length;\n\t\tconst value = targetList[(i % length + length) % length];\n\t\tstate.value = value;\n\t\treturn value;\n\t}\n\tfunction shift(delta = 1) {\n\t\treturn set(index.value + delta);\n\t}\n\tfunction next(n = 1) {\n\t\treturn shift(n);\n\t}\n\tfunction prev(n = 1) {\n\t\treturn shift(-n);\n\t}\n\tfunction getInitialValue() {\n\t\tvar _toValue, _options$initialValue;\n\t\treturn (_toValue = toValue((_options$initialValue = options === null || options === void 0 ? void 0 : options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : toValue(list)[0])) !== null && _toValue !== void 0 ? _toValue : void 0;\n\t}\n\twatch(listRef, () => set(index.value));\n\treturn {\n\t\tstate,\n\t\tindex,\n\t\tnext,\n\t\tprev,\n\t\tgo: set\n\t};\n}\n//#endregion\n//#region useDark/index.ts\n/**\n* Reactive dark mode with auto data persistence.\n*\n* @see https://vueuse.org/useDark\n* @param options\n*/\nfunction useDark(options = {}) {\n\tconst { valueDark = \"dark\", valueLight = \"\" } = options;\n\tconst mode = useColorMode({\n\t\t...options,\n\t\tonChanged: (mode, defaultHandler) => {\n\t\t\tvar _options$onChanged;\n\t\t\tif (options.onChanged) (_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, mode === \"dark\", defaultHandler, mode);\n\t\t\telse defaultHandler(mode);\n\t\t},\n\t\tmodes: {\n\t\t\tdark: valueDark,\n\t\t\tlight: valueLight\n\t\t}\n\t});\n\tconst system = computed(() => mode.system.value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn mode.value === \"dark\";\n\t\t},\n\t\tset(v) {\n\t\t\tconst modeVal = v ? \"dark\" : \"light\";\n\t\t\tif (system.value === modeVal) mode.value = \"auto\";\n\t\t\telse mode.value = modeVal;\n\t\t}\n\t});\n}\n//#endregion\n//#region useManualRefHistory/index.ts\nfunction fnBypass(v) {\n\treturn v;\n}\nfunction fnSetSource(source, value) {\n\treturn source.value = value;\n}\nfunction defaultDump(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useManualRefHistory\n* @param source\n* @param options\n*/\nfunction useManualRefHistory(source, options = {}) {\n\tconst { clone = false, dump = defaultDump(clone), parse = defaultParse(clone), setSource = fnSetSource } = options;\n\tfunction _createHistoryRecord() {\n\t\treturn markRaw({\n\t\t\tsnapshot: dump(source.value),\n\t\t\ttimestamp: timestamp()\n\t\t});\n\t}\n\tconst last = ref(_createHistoryRecord());\n\tconst undoStack = ref([]);\n\tconst redoStack = ref([]);\n\tconst _setSource = (record) => {\n\t\tsetSource(source, parse(record.snapshot));\n\t\tlast.value = record;\n\t};\n\tconst commit = () => {\n\t\tundoStack.value.unshift(last.value);\n\t\tlast.value = _createHistoryRecord();\n\t\tif (options.capacity && undoStack.value.length > options.capacity) undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n\t\tif (redoStack.value.length) redoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst clear = () => {\n\t\tundoStack.value.splice(0, undoStack.value.length);\n\t\tredoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst undo = () => {\n\t\tconst state = undoStack.value.shift();\n\t\tif (state) {\n\t\t\tredoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst redo = () => {\n\t\tconst state = redoStack.value.shift();\n\t\tif (state) {\n\t\t\tundoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst reset = () => {\n\t\t_setSource(last.value);\n\t};\n\treturn {\n\t\tsource,\n\t\tundoStack,\n\t\tredoStack,\n\t\tlast,\n\t\thistory: computed(() => [last.value, ...undoStack.value]),\n\t\tcanUndo: computed(() => undoStack.value.length > 0),\n\t\tcanRedo: computed(() => redoStack.value.length > 0),\n\t\tclear,\n\t\tcommit,\n\t\treset,\n\t\tundo,\n\t\tredo\n\t};\n}\n//#endregion\n//#region useRefHistory/index.ts\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useRefHistory\n* @param source\n* @param options\n*/\nfunction useRefHistory(source, options = {}) {\n\tconst { deep = false, flush = \"pre\", eventFilter, shouldCommit = () => true } = options;\n\tconst { eventFilter: composedFilter, pause, resume: resumeTracking, isActive: isTracking } = pausableFilter(eventFilter);\n\tlet lastRawValue = source.value;\n\tconst { ignoreUpdates, ignorePrevAsyncUpdates, stop } = watchIgnorable(source, commit, {\n\t\tdeep,\n\t\tflush,\n\t\teventFilter: composedFilter\n\t});\n\tfunction setSource(source, value) {\n\t\tignorePrevAsyncUpdates();\n\t\tignoreUpdates(() => {\n\t\t\tsource.value = value;\n\t\t\tlastRawValue = value;\n\t\t});\n\t}\n\tconst manualHistory = useManualRefHistory(source, {\n\t\t...options,\n\t\tclone: options.clone || deep,\n\t\tsetSource\n\t});\n\tconst { clear, commit: manualCommit } = manualHistory;\n\tfunction commit() {\n\t\tignorePrevAsyncUpdates();\n\t\tif (!shouldCommit(lastRawValue, source.value)) return;\n\t\tlastRawValue = source.value;\n\t\tmanualCommit();\n\t}\n\tfunction resume(commitNow) {\n\t\tresumeTracking();\n\t\tif (commitNow) commit();\n\t}\n\tfunction batch(fn) {\n\t\tlet canceled = false;\n\t\tconst cancel = () => canceled = true;\n\t\tignoreUpdates(() => {\n\t\t\tfn(cancel);\n\t\t});\n\t\tif (!canceled) commit();\n\t}\n\tfunction dispose() {\n\t\tstop();\n\t\tclear();\n\t}\n\treturn {\n\t\t...manualHistory,\n\t\tisTracking,\n\t\tpause,\n\t\tresume,\n\t\tcommit,\n\t\tbatch,\n\t\tdispose\n\t};\n}\n//#endregion\n//#region useDebouncedRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with debounce filter.\n*\n* @see https://vueuse.org/useDebouncedRefHistory\n* @param source\n* @param options\n*/\nfunction useDebouncedRefHistory(source, options = {}) {\n\tconst filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n//#endregion\n//#region useDeviceMotion/index.ts\n/**\n* Reactive DeviceMotionEvent.\n*\n* @see https://vueuse.org/useDeviceMotion\n* @param options\n*/\nfunction useDeviceMotion(options = {}) {\n\tconst { window = defaultWindow, requestPermissions = false, eventFilter = bypassFilter } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof DeviceMotionEvent !== \"undefined\");\n\tconst requirePermissions = /* @__PURE__ */ useSupported(() => isSupported.value && \"requestPermission\" in DeviceMotionEvent && typeof DeviceMotionEvent.requestPermission === \"function\");\n\tconst permissionGranted = shallowRef(false);\n\tconst acceleration = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tconst rotationRate = ref({\n\t\talpha: null,\n\t\tbeta: null,\n\t\tgamma: null\n\t});\n\tconst interval = shallowRef(0);\n\tconst accelerationIncludingGravity = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tfunction init() {\n\t\tif (window) {\n\t\t\tconst onDeviceMotion = createFilterWrapper(eventFilter, (event) => {\n\t\t\t\tvar _event$acceleration, _event$acceleration2, _event$acceleration3, _event$accelerationIn, _event$accelerationIn2, _event$accelerationIn3, _event$rotationRate, _event$rotationRate2, _event$rotationRate3;\n\t\t\t\tacceleration.value = {\n\t\t\t\t\tx: ((_event$acceleration = event.acceleration) === null || _event$acceleration === void 0 ? void 0 : _event$acceleration.x) || null,\n\t\t\t\t\ty: ((_event$acceleration2 = event.acceleration) === null || _event$acceleration2 === void 0 ? void 0 : _event$acceleration2.y) || null,\n\t\t\t\t\tz: ((_event$acceleration3 = event.acceleration) === null || _event$acceleration3 === void 0 ? void 0 : _event$acceleration3.z) || null\n\t\t\t\t};\n\t\t\t\taccelerationIncludingGravity.value = {\n\t\t\t\t\tx: ((_event$accelerationIn = event.accelerationIncludingGravity) === null || _event$accelerationIn === void 0 ? void 0 : _event$accelerationIn.x) || null,\n\t\t\t\t\ty: ((_event$accelerationIn2 = event.accelerationIncludingGravity) === null || _event$accelerationIn2 === void 0 ? void 0 : _event$accelerationIn2.y) || null,\n\t\t\t\t\tz: ((_event$accelerationIn3 = event.accelerationIncludingGravity) === null || _event$accelerationIn3 === void 0 ? void 0 : _event$accelerationIn3.z) || null\n\t\t\t\t};\n\t\t\t\trotationRate.value = {\n\t\t\t\t\talpha: ((_event$rotationRate = event.rotationRate) === null || _event$rotationRate === void 0 ? void 0 : _event$rotationRate.alpha) || null,\n\t\t\t\t\tbeta: ((_event$rotationRate2 = event.rotationRate) === null || _event$rotationRate2 === void 0 ? void 0 : _event$rotationRate2.beta) || null,\n\t\t\t\t\tgamma: ((_event$rotationRate3 = event.rotationRate) === null || _event$rotationRate3 === void 0 ? void 0 : _event$rotationRate3.gamma) || null\n\t\t\t\t};\n\t\t\t\tinterval.value = event.interval;\n\t\t\t});\n\t\t\tuseEventListener(window, \"devicemotion\", onDeviceMotion, { passive: true });\n\t\t}\n\t}\n\tconst ensurePermissions = async () => {\n\t\tif (!requirePermissions.value) permissionGranted.value = true;\n\t\tif (permissionGranted.value) return;\n\t\tif (requirePermissions.value) {\n\t\t\tconst requestPermission = DeviceMotionEvent.requestPermission;\n\t\t\ttry {\n\t\t\t\tif (await requestPermission() === \"granted\") {\n\t\t\t\t\tpermissionGranted.value = true;\n\t\t\t\t\tinit();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}\n\t};\n\tif (isSupported.value) if (requestPermissions && requirePermissions.value) ensurePermissions().then(() => init());\n\telse init();\n\treturn {\n\t\tacceleration,\n\t\taccelerationIncludingGravity,\n\t\trotationRate,\n\t\tinterval,\n\t\tisSupported,\n\t\trequirePermissions,\n\t\tensurePermissions,\n\t\tpermissionGranted\n\t};\n}\n//#endregion\n//#region useDeviceOrientation/index.ts\n/**\n* Reactive DeviceOrientationEvent.\n*\n* @see https://vueuse.org/useDeviceOrientation\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDeviceOrientation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"DeviceOrientationEvent\" in window);\n\tconst isAbsolute = shallowRef(false);\n\tconst alpha = shallowRef(null);\n\tconst beta = shallowRef(null);\n\tconst gamma = shallowRef(null);\n\tif (window && isSupported.value) useEventListener(window, \"deviceorientation\", (event) => {\n\t\tisAbsolute.value = event.absolute;\n\t\talpha.value = event.alpha;\n\t\tbeta.value = event.beta;\n\t\tgamma.value = event.gamma;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tisAbsolute,\n\t\talpha,\n\t\tbeta,\n\t\tgamma\n\t};\n}\n//#endregion\n//#region useDevicePixelRatio/index.ts\n/**\n* Reactively track `window.devicePixelRatio`.\n*\n* @see https://vueuse.org/useDevicePixelRatio\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDevicePixelRatio(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst pixelRatio = shallowRef(1);\n\tconst query = useMediaQuery(() => `(resolution: ${pixelRatio.value}dppx)`, options);\n\tlet stop = noop;\n\tif (window) stop = watchImmediate(query, () => pixelRatio.value = window.devicePixelRatio);\n\treturn {\n\t\tpixelRatio: shallowReadonly(pixelRatio),\n\t\tstop\n\t};\n}\n//#endregion\n//#region useDevicesList/index.ts\n/**\n* Reactive `enumerateDevices` listing available input/output devices\n*\n* @see https://vueuse.org/useDevicesList\n* @param options\n*/\nfunction useDevicesList(options = {}) {\n\tconst { navigator = defaultNavigator, requestPermissions = false, constraints = {\n\t\taudio: true,\n\t\tvideo: true\n\t}, onUpdated } = options;\n\tconst devices = shallowRef([]);\n\tconst videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n\tconst audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n\tconst audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n\tconst permissionGranted = shallowRef(false);\n\tlet stream;\n\tasync function update() {\n\t\tif (!isSupported.value) return;\n\t\tdevices.value = await navigator.mediaDevices.enumerateDevices();\n\t\tonUpdated === null || onUpdated === void 0 || onUpdated(devices.value);\n\t\tif (stream) {\n\t\t\tstream.getTracks().forEach((t) => t.stop());\n\t\t\tstream = null;\n\t\t}\n\t}\n\tasync function ensurePermissions() {\n\t\tconst deviceName = constraints.video ? \"camera\" : \"microphone\";\n\t\tif (!isSupported.value) return false;\n\t\tif (permissionGranted.value) return true;\n\t\tconst { state, query } = usePermission(deviceName, { controls: true });\n\t\tawait query();\n\t\tif (state.value !== \"granted\") {\n\t\t\tlet granted = true;\n\t\t\ttry {\n\t\t\t\tconst allDevices = await navigator.mediaDevices.enumerateDevices();\n\t\t\t\tconst hasCamera = allDevices.some((device) => device.kind === \"videoinput\");\n\t\t\t\tconst hasMicrophone = allDevices.some((device) => device.kind === \"audioinput\" || device.kind === \"audiooutput\");\n\t\t\t\tconstraints.video = hasCamera ? constraints.video : false;\n\t\t\t\tconstraints.audio = hasMicrophone ? constraints.audio : false;\n\t\t\t\tstream = await navigator.mediaDevices.getUserMedia(constraints);\n\t\t\t} catch (_unused) {\n\t\t\t\tstream = null;\n\t\t\t\tgranted = false;\n\t\t\t}\n\t\t\tupdate();\n\t\t\tpermissionGranted.value = granted;\n\t\t} else permissionGranted.value = true;\n\t\treturn permissionGranted.value;\n\t}\n\tif (isSupported.value) {\n\t\tif (requestPermissions) ensurePermissions();\n\t\tuseEventListener(navigator.mediaDevices, \"devicechange\", update, { passive: true });\n\t\tupdate();\n\t}\n\treturn {\n\t\tdevices,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tvideoInputs,\n\t\taudioInputs,\n\t\taudioOutputs,\n\t\tisSupported\n\t};\n}\n//#endregion\n//#region useDisplayMedia/index.ts\n/**\n* Reactive `mediaDevices.getDisplayMedia` streaming\n*\n* @see https://vueuse.org/useDisplayMedia\n* @param options\n*/\nfunction useDisplayMedia(options = {}) {\n\tvar _options$enabled;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst video = options.video;\n\tconst audio = options.audio;\n\tconst { navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator === null || navigator === void 0 || (_navigator$mediaDevic = navigator.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getDisplayMedia;\n\t});\n\tconst constraint = {\n\t\taudio,\n\t\tvideo\n\t};\n\tconst stream = shallowRef();\n\tasync function _start() {\n\t\tvar _stream$value;\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => useEventListener(t, \"ended\", stop, { passive: true }));\n\t\treturn stream.value;\n\t}\n\tasync function _stop() {\n\t\tvar _stream$value2;\n\t\t(_stream$value2 = stream.value) === null || _stream$value2 === void 0 || _stream$value2.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\tenabled\n\t};\n}\n//#endregion\n//#region useDocumentVisibility/index.ts\n/**\n* Reactively track `document.visibilityState`.\n*\n* @see https://vueuse.org/useDocumentVisibility\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDocumentVisibility(options = {}) {\n\tconst { document = defaultDocument } = options;\n\tif (!document) return shallowRef(\"visible\");\n\tconst visibility = shallowRef(document.visibilityState);\n\tuseEventListener(document, \"visibilitychange\", () => {\n\t\tvisibility.value = document.visibilityState;\n\t}, { passive: true });\n\treturn visibility;\n}\n//#endregion\n//#region useDraggable/index.ts\nconst defaultScrollConfig = {\n\tspeed: 2,\n\tmargin: 30,\n\tdirection: \"both\"\n};\nfunction clampContainerScroll(container) {\n\tif (container.scrollLeft > container.scrollWidth - container.clientWidth) container.scrollLeft = Math.max(0, container.scrollWidth - container.clientWidth);\n\tif (container.scrollTop > container.scrollHeight - container.clientHeight) container.scrollTop = Math.max(0, container.scrollHeight - container.clientHeight);\n}\n/**\n* Make elements draggable.\n*\n* @see https://vueuse.org/useDraggable\n* @param target\n* @param options\n*/\nfunction useDraggable(target, options = {}) {\n\tvar _toValue, _toValue2, _toValue3, _scrollConfig$directi;\n\tconst { pointerTypes, preventDefault, stopPropagation, exact, onMove, onEnd, onStart, initialValue, axis = \"both\", draggingElement = defaultWindow, containerElement, handle: draggingHandle = target, buttons = [0], restrictInView, autoScroll = false } = options;\n\tconst position = ref((_toValue = toValue(initialValue)) !== null && _toValue !== void 0 ? _toValue : {\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst pressedDelta = ref();\n\tconst filterEvent = (e) => {\n\t\tif (pointerTypes) return pointerTypes.includes(e.pointerType);\n\t\treturn true;\n\t};\n\tconst handleEvent = (e) => {\n\t\tif (toValue(preventDefault)) e.preventDefault();\n\t\tif (toValue(stopPropagation)) e.stopPropagation();\n\t};\n\tconst scrollConfig = toValue(autoScroll);\n\tconst scrollSettings = typeof scrollConfig === \"object\" ? {\n\t\tspeed: (_toValue2 = toValue(scrollConfig.speed)) !== null && _toValue2 !== void 0 ? _toValue2 : defaultScrollConfig.speed,\n\t\tmargin: (_toValue3 = toValue(scrollConfig.margin)) !== null && _toValue3 !== void 0 ? _toValue3 : defaultScrollConfig.margin,\n\t\tdirection: (_scrollConfig$directi = scrollConfig.direction) !== null && _scrollConfig$directi !== void 0 ? _scrollConfig$directi : defaultScrollConfig.direction\n\t} : defaultScrollConfig;\n\tconst getScrollAxisValues = (value) => typeof value === \"number\" ? [value, value] : [value.x, value.y];\n\tconst handleAutoScroll = (container, targetRect, position) => {\n\t\tconst { clientWidth, clientHeight, scrollLeft, scrollTop, scrollWidth, scrollHeight } = container;\n\t\tconst [marginX, marginY] = getScrollAxisValues(scrollSettings.margin);\n\t\tconst [speedX, speedY] = getScrollAxisValues(scrollSettings.speed);\n\t\tlet deltaX = 0;\n\t\tlet deltaY = 0;\n\t\tif (scrollSettings.direction === \"x\" || scrollSettings.direction === \"both\") {\n\t\t\tif (position.x < marginX && scrollLeft > 0) deltaX = -speedX;\n\t\t\telse if (position.x + targetRect.width > clientWidth - marginX && scrollLeft < scrollWidth - clientWidth) deltaX = speedX;\n\t\t}\n\t\tif (scrollSettings.direction === \"y\" || scrollSettings.direction === \"both\") {\n\t\t\tif (position.y < marginY && scrollTop > 0) deltaY = -speedY;\n\t\t\telse if (position.y + targetRect.height > clientHeight - marginY && scrollTop < scrollHeight - clientHeight) deltaY = speedY;\n\t\t}\n\t\tif (deltaX || deltaY) container.scrollBy({\n\t\t\tleft: deltaX,\n\t\t\ttop: deltaY,\n\t\t\tbehavior: \"auto\"\n\t\t});\n\t};\n\tlet autoScrollInterval = null;\n\tconst startAutoScroll = () => {\n\t\tconst container = toValue(containerElement);\n\t\tif (container && !autoScrollInterval) autoScrollInterval = setInterval(() => {\n\t\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\t\tconst { x, y } = position.value;\n\t\t\tconst relativePosition = {\n\t\t\t\tx: x - container.scrollLeft,\n\t\t\t\ty: y - container.scrollTop\n\t\t\t};\n\t\t\tif (relativePosition.x >= 0 && relativePosition.y >= 0) {\n\t\t\t\thandleAutoScroll(container, targetRect, relativePosition);\n\t\t\t\trelativePosition.x += container.scrollLeft;\n\t\t\t\trelativePosition.y += container.scrollTop;\n\t\t\t\tposition.value = relativePosition;\n\t\t\t}\n\t\t}, 1e3 / 60);\n\t};\n\tconst stopAutoScroll = () => {\n\t\tif (autoScrollInterval) {\n\t\t\tclearInterval(autoScrollInterval);\n\t\t\tautoScrollInterval = null;\n\t\t}\n\t};\n\tconst isPointerNearEdge = (pointer, container, margin, targetRect) => {\n\t\tconst [marginX, marginY] = typeof margin === \"number\" ? [margin, margin] : [margin.x, margin.y];\n\t\tconst { clientWidth, clientHeight } = container;\n\t\treturn pointer.x < marginX || pointer.x + targetRect.width > clientWidth - marginX || pointer.y < marginY || pointer.y + targetRect.height > clientHeight - marginY;\n\t};\n\tconst checkAutoScroll = () => {\n\t\tif (toValue(options.disabled) || !pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tif (!container) return;\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst { x, y } = position.value;\n\t\tconst relativePosition = {\n\t\t\tx: x - container.scrollLeft,\n\t\t\ty: y - container.scrollTop\n\t\t};\n\t\tif (isPointerNearEdge(relativePosition, container, scrollSettings.margin, targetRect)) startAutoScroll();\n\t\telse stopAutoScroll();\n\t};\n\tif (toValue(autoScroll)) watch(position, checkAutoScroll);\n\tconst start = (e) => {\n\t\tvar _container$getBoundin;\n\t\tif (!toValue(buttons).includes(e.button)) return;\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (toValue(exact) && e.target !== toValue(target)) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst containerRect = container === null || container === void 0 || (_container$getBoundin = container.getBoundingClientRect) === null || _container$getBoundin === void 0 ? void 0 : _container$getBoundin.call(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst pos = {\n\t\t\tx: e.clientX - (container ? targetRect.left - containerRect.left + (autoScroll ? 0 : container.scrollLeft) : targetRect.left),\n\t\t\ty: e.clientY - (container ? targetRect.top - containerRect.top + (autoScroll ? 0 : container.scrollTop) : targetRect.top)\n\t\t};\n\t\tif ((onStart === null || onStart === void 0 ? void 0 : onStart(pos, e)) === false) return;\n\t\tpressedDelta.value = pos;\n\t\thandleEvent(e);\n\t};\n\tconst move = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tif (container instanceof HTMLElement) clampContainerScroll(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tlet { x, y } = position.value;\n\t\tif (axis === \"x\" || axis === \"both\") {\n\t\t\tx = e.clientX - pressedDelta.value.x;\n\t\t\tif (container) x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n\t\t}\n\t\tif (axis === \"y\" || axis === \"both\") {\n\t\t\ty = e.clientY - pressedDelta.value.y;\n\t\t\tif (container) y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n\t\t}\n\t\tif (toValue(autoScroll) && container) {\n\t\t\tif (autoScrollInterval === null) handleAutoScroll(container, targetRect, {\n\t\t\t\tx,\n\t\t\t\ty\n\t\t\t});\n\t\t\tx += container.scrollLeft;\n\t\t\ty += container.scrollTop;\n\t\t}\n\t\tif (container && (restrictInView || autoScroll)) {\n\t\t\tif (axis !== \"y\") {\n\t\t\t\tconst relativeX = x - container.scrollLeft;\n\t\t\t\tif (relativeX < 0) x = container.scrollLeft;\n\t\t\t\telse if (relativeX > container.clientWidth - targetRect.width) x = container.clientWidth - targetRect.width + container.scrollLeft;\n\t\t\t}\n\t\t\tif (axis !== \"x\") {\n\t\t\t\tconst relativeY = y - container.scrollTop;\n\t\t\t\tif (relativeY < 0) y = container.scrollTop;\n\t\t\t\telse if (relativeY > container.clientHeight - targetRect.height) y = container.clientHeight - targetRect.height + container.scrollTop;\n\t\t\t}\n\t\t}\n\t\tposition.value = {\n\t\t\tx,\n\t\t\ty\n\t\t};\n\t\tonMove === null || onMove === void 0 || onMove(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tconst end = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tpressedDelta.value = void 0;\n\t\tif (autoScroll) stopAutoScroll();\n\t\tonEnd === null || onEnd === void 0 || onEnd(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tif (isClient) {\n\t\tconst config = () => {\n\t\t\tvar _options$capture;\n\t\t\treturn {\n\t\t\t\tcapture: (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : true,\n\t\t\t\tpassive: !toValue(preventDefault)\n\t\t\t};\n\t\t};\n\t\tuseEventListener(draggingHandle, \"pointerdown\", start, config);\n\t\tuseEventListener(draggingElement, \"pointermove\", move, config);\n\t\tuseEventListener(draggingElement, [\"pointerup\", \"pointercancel\"], end, config);\n\t}\n\treturn {\n\t\t...toRefs(position),\n\t\tposition,\n\t\tisDragging: computed(() => !!pressedDelta.value),\n\t\tstyle: computed(() => `\n left: ${position.value.x}px;\n top: ${position.value.y}px;\n ${autoScroll ? \"text-wrap: nowrap;\" : \"\"}\n `)\n\t};\n}\n//#endregion\n//#region useDropZone/index.ts\nfunction useDropZone(target, options = {}) {\n\tconst isOverDropZone = shallowRef(false);\n\tconst files = shallowRef(null);\n\tlet counter = 0;\n\tlet isValid = true;\n\tif (isClient) {\n\t\tvar _options$multiple, _options$preventDefau;\n\t\tconst _options = typeof options === \"function\" ? { onDrop: options } : options;\n\t\tconst multiple = (_options$multiple = _options.multiple) !== null && _options$multiple !== void 0 ? _options$multiple : true;\n\t\tconst preventDefaultForUnhandled = (_options$preventDefau = _options.preventDefaultForUnhandled) !== null && _options$preventDefau !== void 0 ? _options$preventDefau : false;\n\t\tconst getFiles = (event) => {\n\t\t\tvar _event$dataTransfer$f, _event$dataTransfer;\n\t\t\tconst list = Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []);\n\t\t\treturn list.length === 0 ? null : multiple ? list : [list[0]];\n\t\t};\n\t\tconst checkDataTypes = (types) => {\n\t\t\tconst dataTypes = unref(_options.dataTypes);\n\t\t\tif (typeof dataTypes === \"function\") return dataTypes(types);\n\t\t\tif (!(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length)) return true;\n\t\t\tif (types.length === 0) return false;\n\t\t\treturn types.every((type) => dataTypes.some((allowedType) => type.includes(allowedType)));\n\t\t};\n\t\tconst checkValidity = (items) => {\n\t\t\tif (_options.checkValidity) return _options.checkValidity(items);\n\t\t\tconst types = Array.from(items !== null && items !== void 0 ? items : []).map((item) => item.type);\n\t\t\tconst dataTypesValid = checkDataTypes(types);\n\t\t\tconst multipleFilesValid = multiple || items.length <= 1;\n\t\t\treturn dataTypesValid && multipleFilesValid;\n\t\t};\n\t\tconst isSafari = () => /^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !(\"chrome\" in window);\n\t\tconst handleDragEvent = (event, eventType) => {\n\t\t\tvar _event$dataTransfer2, _ref;\n\t\t\tconst dataTransferItemList = (_event$dataTransfer2 = event.dataTransfer) === null || _event$dataTransfer2 === void 0 ? void 0 : _event$dataTransfer2.items;\n\t\t\tisValid = (_ref = dataTransferItemList && checkValidity(dataTransferItemList)) !== null && _ref !== void 0 ? _ref : false;\n\t\t\tif (preventDefaultForUnhandled) event.preventDefault();\n\t\t\tif (!isSafari() && !isValid) {\n\t\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"none\";\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"copy\";\n\t\t\tconst currentFiles = getFiles(event);\n\t\t\tswitch (eventType) {\n\t\t\t\tcase \"enter\":\n\t\t\t\t\tvar _options$onEnter;\n\t\t\t\t\tcounter += 1;\n\t\t\t\t\tisOverDropZone.value = true;\n\t\t\t\t\t(_options$onEnter = _options.onEnter) === null || _options$onEnter === void 0 || _options$onEnter.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"over\":\n\t\t\t\t\tvar _options$onOver;\n\t\t\t\t\t(_options$onOver = _options.onOver) === null || _options$onOver === void 0 || _options$onOver.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"leave\":\n\t\t\t\t\tvar _options$onLeave;\n\t\t\t\t\tcounter -= 1;\n\t\t\t\t\tif (counter === 0) isOverDropZone.value = false;\n\t\t\t\t\t(_options$onLeave = _options.onLeave) === null || _options$onLeave === void 0 || _options$onLeave.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"drop\":\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tisOverDropZone.value = false;\n\t\t\t\t\tif (isValid) {\n\t\t\t\t\t\tvar _options$onDrop;\n\t\t\t\t\t\tfiles.value = currentFiles;\n\t\t\t\t\t\t(_options$onDrop = _options.onDrop) === null || _options$onDrop === void 0 || _options$onDrop.call(_options, currentFiles, event);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tuseEventListener(target, \"dragenter\", (event) => handleDragEvent(event, \"enter\"));\n\t\tuseEventListener(target, \"dragover\", (event) => handleDragEvent(event, \"over\"));\n\t\tuseEventListener(target, \"dragleave\", (event) => handleDragEvent(event, \"leave\"));\n\t\tuseEventListener(target, \"drop\", (event) => handleDragEvent(event, \"drop\"));\n\t}\n\treturn {\n\t\tfiles,\n\t\tisOverDropZone\n\t};\n}\n//#endregion\n//#region useResizeObserver/index.ts\n/**\n* Reports changes to the dimensions of an Element's content or the border-box\n*\n* @see https://vueuse.org/useResizeObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useResizeObserver(target, callback, options = {}) {\n\tconst { window = defaultWindow, ...observerOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"ResizeObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst _targets = toValue(target);\n\t\treturn Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n\t}), (els) => {\n\t\tcleanup();\n\t\tif (isSupported.value && window) {\n\t\t\tobserver = new ResizeObserver(callback);\n\t\t\tfor (const _el of els) if (_el) observer.observe(_el, observerOptions);\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useElementBounding/index.ts\n/**\n* Reactive bounding box of an HTML element.\n*\n* @see https://vueuse.org/useElementBounding\n* @param target\n*/\nfunction useElementBounding(target, options = {}) {\n\tconst { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = \"sync\" } = options;\n\tconst height = shallowRef(0);\n\tconst bottom = shallowRef(0);\n\tconst left = shallowRef(0);\n\tconst right = shallowRef(0);\n\tconst top = shallowRef(0);\n\tconst width = shallowRef(0);\n\tconst x = shallowRef(0);\n\tconst y = shallowRef(0);\n\tfunction recalculate() {\n\t\tconst el = unrefElement(target);\n\t\tif (!el) {\n\t\t\tif (reset) {\n\t\t\t\theight.value = 0;\n\t\t\t\tbottom.value = 0;\n\t\t\t\tleft.value = 0;\n\t\t\t\tright.value = 0;\n\t\t\t\ttop.value = 0;\n\t\t\t\twidth.value = 0;\n\t\t\t\tx.value = 0;\n\t\t\t\ty.value = 0;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst rect = el.getBoundingClientRect();\n\t\theight.value = rect.height;\n\t\tbottom.value = rect.bottom;\n\t\tleft.value = rect.left;\n\t\tright.value = rect.right;\n\t\ttop.value = rect.top;\n\t\twidth.value = rect.width;\n\t\tx.value = rect.x;\n\t\ty.value = rect.y;\n\t}\n\tfunction update() {\n\t\tif (updateTiming === \"sync\") recalculate();\n\t\telse if (updateTiming === \"next-frame\") requestAnimationFrame(() => recalculate());\n\t}\n\tuseResizeObserver(target, update);\n\twatch(() => unrefElement(target), (ele) => !ele && update());\n\tuseMutationObserver(target, update, { attributeFilter: [\"style\", \"class\"] });\n\tif (windowScroll) useEventListener(\"scroll\", update, {\n\t\tcapture: true,\n\t\tpassive: true\n\t});\n\tif (windowResize) useEventListener(\"resize\", update, { passive: true });\n\ttryOnMounted(() => {\n\t\tif (immediate) update();\n\t});\n\treturn {\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty,\n\t\tupdate\n\t};\n}\n//#endregion\n//#region useElementByPoint/index.ts\nfunction getDefaultScheduler$7(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = \"requestAnimationFrame\", immediate = true } = options;\n\t\treturn interval === \"requestAnimationFrame\" ? (cb) => useRafFn(cb, { immediate }) : (cb) => useIntervalFn(cb, interval, { immediate });\n\t}\n\treturn useRafFn;\n}\n/**\n* Reactive element by point.\n*\n* @see https://vueuse.org/useElementByPoint\n* @param options - UseElementByPointOptions\n*/\nfunction useElementByPoint(options) {\n\tconst { x, y, document = defaultDocument, multiple, scheduler = getDefaultScheduler$7(options) } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (toValue(multiple)) return document && \"elementsFromPoint\" in document;\n\t\treturn document && \"elementFromPoint\" in document;\n\t});\n\tconst element = shallowRef(null);\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\t...scheduler(() => {\n\t\t\tvar _document$elementsFro, _document$elementFrom;\n\t\t\telement.value = toValue(multiple) ? (_document$elementsFro = document === null || document === void 0 ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) !== null && _document$elementsFro !== void 0 ? _document$elementsFro : [] : (_document$elementFrom = document === null || document === void 0 ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) !== null && _document$elementFrom !== void 0 ? _document$elementFrom : null;\n\t\t})\n\t};\n}\n//#endregion\n//#region useElementHover/index.ts\nfunction useElementHover(el, options = {}) {\n\tconst { delayEnter = 0, delayLeave = 0, triggerOnRemoval = false, window = defaultWindow } = options;\n\tconst isHovered = shallowRef(false);\n\tlet timer;\n\tconst toggle = (entering) => {\n\t\tconst delay = entering ? delayEnter : delayLeave;\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t\tif (delay) timer = setTimeout(() => isHovered.value = entering, delay);\n\t\telse isHovered.value = entering;\n\t};\n\tif (!window) return isHovered;\n\tuseEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n\tuseEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n\tif (triggerOnRemoval) onElementRemoval(computed(() => unrefElement(el)), () => toggle(false));\n\treturn isHovered;\n}\n//#endregion\n//#region useElementOverflow/index.ts\n/**\n* react a dom's overflow state\n* @see https://vueuse.org/useElementOverflow\n* @param target\n* @param option\n*/\nfunction useElementOverflow(target, option = {}) {\n\tconst { observeMutation = false, onUpdated, window = defaultWindow } = option;\n\tconst isXOverflowed = shallowRef(false);\n\tconst isYOverflowed = shallowRef(false);\n\tfunction update(htmlEl) {\n\t\tisXOverflowed.value = htmlEl.scrollWidth > htmlEl.offsetWidth;\n\t\tisYOverflowed.value = htmlEl.scrollHeight > htmlEl.offsetHeight;\n\t}\n\tconst onResizeUpdated = onUpdated;\n\tconst targetEl = computed(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (!el || el instanceof SVGElement) return void 0;\n\t\treturn el;\n\t});\n\tconst targets = () => {\n\t\tconst el = targetEl.value;\n\t\tif (!el || el instanceof SVGElement) return [];\n\t\treturn [el, ...Array.from(el.children).filter((i) => i instanceof HTMLElement)];\n\t};\n\tuseResizeObserver(targets, (entries, observer) => {\n\t\tconst el = targetEl.value;\n\t\tif (el) update(el);\n\t\tonResizeUpdated === null || onResizeUpdated === void 0 || onResizeUpdated(entries, observer);\n\t}, { window });\n\tif (observeMutation) {\n\t\tconst onMutationUpdated = onUpdated;\n\t\tuseMutationObserver(targets, (entries, observer) => {\n\t\t\tconst el = targetEl.value;\n\t\t\tif (el) update(el);\n\t\t\tonMutationUpdated === null || onMutationUpdated === void 0 || onMutationUpdated(entries, observer);\n\t\t}, {\n\t\t\twindow,\n\t\t\t...typeof observeMutation === \"object\" ? observeMutation : {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tcharacterData: true\n\t\t\t}\n\t\t});\n\t}\n\treturn {\n\t\tisXOverflowed: shallowReadonly(isXOverflowed),\n\t\tisYOverflowed: shallowReadonly(isYOverflowed),\n\t\tstop,\n\t\tupdate: () => {\n\t\t\tconst el = targetEl.value;\n\t\t\tif (el && window) update(el);\n\t\t}\n\t};\n}\n//#endregion\n//#region useElementSize/index.ts\n/**\n* Reactive size of an HTML element.\n*\n* @see https://vueuse.org/useElementSize\n*/\nfunction useElementSize(target, initialSize = {\n\twidth: 0,\n\theight: 0\n}, options = {}) {\n\tconst { window = defaultWindow, box = \"content-box\" } = options;\n\tconst isSVG = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) === null || _unrefElement === void 0 || (_unrefElement = _unrefElement.namespaceURI) === null || _unrefElement === void 0 ? void 0 : _unrefElement.includes(\"svg\");\n\t});\n\tconst width = shallowRef(initialSize.width);\n\tconst height = shallowRef(initialSize.height);\n\tconst { stop: stop1 } = useResizeObserver(target, ([entry]) => {\n\t\tconst boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n\t\tif (window && isSVG.value) {\n\t\t\tconst $elem = unrefElement(target);\n\t\t\tif ($elem) {\n\t\t\t\tconst rect = $elem.getBoundingClientRect();\n\t\t\t\twidth.value = rect.width;\n\t\t\t\theight.value = rect.height;\n\t\t\t}\n\t\t} else if (boxSize) {\n\t\t\tconst formatBoxSize = toArray(boxSize);\n\t\t\twidth.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n\t\t\theight.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n\t\t} else {\n\t\t\twidth.value = entry.contentRect.width;\n\t\t\theight.value = entry.contentRect.height;\n\t\t}\n\t}, options);\n\ttryOnMounted(() => {\n\t\tconst ele = unrefElement(target);\n\t\tif (ele && \"offsetWidth\" in ele) if (box === \"content-box\" && window) {\n\t\t\tconst cs = window.getComputedStyle(ele);\n\t\t\tconst padX = Number.parseFloat(cs.paddingLeft) + Number.parseFloat(cs.paddingRight);\n\t\t\tconst padY = Number.parseFloat(cs.paddingTop) + Number.parseFloat(cs.paddingBottom);\n\t\t\tconst bdX = Number.parseFloat(cs.borderLeftWidth) + Number.parseFloat(cs.borderRightWidth);\n\t\t\tconst bdY = Number.parseFloat(cs.borderTopWidth) + Number.parseFloat(cs.borderBottomWidth);\n\t\t\twidth.value = ele.offsetWidth - padX - bdX;\n\t\t\theight.value = ele.offsetHeight - padY - bdY;\n\t\t} else {\n\t\t\twidth.value = ele.offsetWidth;\n\t\t\theight.value = ele.offsetHeight;\n\t\t}\n\t\telse if (ele) {\n\t\t\twidth.value = initialSize.width;\n\t\t\theight.value = initialSize.height;\n\t\t}\n\t});\n\tconst stop2 = watch(() => unrefElement(target), (ele) => {\n\t\twidth.value = ele ? initialSize.width : 0;\n\t\theight.value = ele ? initialSize.height : 0;\n\t});\n\tfunction stop() {\n\t\tstop1();\n\t\tstop2();\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useIntersectionObserver/index.ts\n/**\n* Detects changes to a target element's visibility.\n*\n* @see https://vueuse.org/useIntersectionObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useIntersectionObserver(target, callback, options = {}) {\n\tconst { root, rootMargin, threshold = 0, window = defaultWindow, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"IntersectionObserver\" in window);\n\tconst targets = computed(() => {\n\t\treturn toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t});\n\tlet cleanup = noop;\n\tconst isActive = shallowRef(immediate);\n\tconst stopWatch = isSupported.value ? watch(() => [\n\t\ttargets.value,\n\t\tunrefElement(root),\n\t\ttoValue(rootMargin),\n\t\tisActive.value\n\t], ([targets, root, rootMargin]) => {\n\t\tcleanup();\n\t\tif (!isActive.value) return;\n\t\tif (!targets.length) return;\n\t\tconst observer = new IntersectionObserver(callback, {\n\t\t\troot: unrefElement(root),\n\t\t\trootMargin,\n\t\t\tthreshold\n\t\t});\n\t\ttargets.forEach((el) => el && observer.observe(el));\n\t\tcleanup = () => {\n\t\t\tobserver.disconnect();\n\t\t\tcleanup = noop;\n\t\t};\n\t}, {\n\t\timmediate,\n\t\tflush: \"post\"\n\t}) : noop;\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t\tisActive.value = false;\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tisActive,\n\t\tpause() {\n\t\t\tcleanup();\n\t\t\tisActive.value = false;\n\t\t},\n\t\tresume() {\n\t\t\tisActive.value = true;\n\t\t},\n\t\tstop\n\t};\n}\n//#endregion\n//#region useElementVisibility/index.ts\nfunction useElementVisibility(element, options = {}) {\n\tconst { window = defaultWindow, scrollTarget, threshold = 0, rootMargin, once = false, initialValue = false } = options;\n\tconst isVisible = shallowRef(initialValue);\n\tconst observerController = useIntersectionObserver(element, (intersectionObserverEntries) => {\n\t\tlet isIntersecting = isVisible.value;\n\t\tlet latestTime = 0;\n\t\tfor (const entry of intersectionObserverEntries) if (entry.time >= latestTime) {\n\t\t\tlatestTime = entry.time;\n\t\t\tisIntersecting = entry.isIntersecting;\n\t\t}\n\t\tisVisible.value = isIntersecting;\n\t\tif (once) watchOnce(isVisible, () => {\n\t\t\tobserverController.stop();\n\t\t});\n\t}, {\n\t\troot: scrollTarget,\n\t\twindow,\n\t\tthreshold,\n\t\trootMargin\n\t});\n\treturn options.controls ? {\n\t\t...observerController,\n\t\tisVisible\n\t} : isVisible;\n}\n//#endregion\n//#region useEventBus/internal.ts\nconst events = /* @__PURE__ */ new Map();\n//#endregion\n//#region useEventBus/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useEventBus(key) {\n\tfunction on(listener) {\n\t\tconst listeners = events.get(key) || /* @__PURE__ */ new Set();\n\t\tlisteners.add(listener);\n\t\tevents.set(key, listeners);\n\t\tconst _off = () => off(listener);\n\t\ttryOnScopeDispose(_off);\n\t\treturn _off;\n\t}\n\tfunction once(listener) {\n\t\tfunction _listener(...args) {\n\t\t\toff(_listener);\n\t\t\tlistener(...args);\n\t\t}\n\t\treturn on(_listener);\n\t}\n\tfunction off(listener) {\n\t\tconst listeners = events.get(key);\n\t\tif (!listeners) return;\n\t\tlisteners.delete(listener);\n\t\tif (!listeners.size) reset();\n\t}\n\tfunction reset() {\n\t\tevents.delete(key);\n\t}\n\tfunction emit(event, payload) {\n\t\tvar _events$get;\n\t\t(_events$get = events.get(key)) === null || _events$get === void 0 || _events$get.forEach((v) => v(event, payload));\n\t}\n\treturn {\n\t\ton,\n\t\tonce,\n\t\toff,\n\t\temit,\n\t\treset\n\t};\n}\n//#endregion\n//#region useEventSource/index.ts\nfunction resolveNestedOptions$1(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive wrapper for EventSource.\n*\n* @see https://vueuse.org/useEventSource\n* @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/EventSource EventSource\n* @param url\n* @param events\n* @param options\n*/\nfunction useEventSource(url, events = [], options = {}) {\n\tconst event = shallowRef(null);\n\tconst data = shallowRef(null);\n\tconst status = shallowRef(\"CONNECTING\");\n\tconst eventSource = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst urlRef = toRef(url);\n\tconst lastEventId = shallowRef(null);\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tconst { withCredentials = false, immediate = true, autoConnect = true, autoReconnect, serializer = { read: (v) => v } } = options;\n\tconst close = () => {\n\t\tif (isClient && eventSource.value) {\n\t\t\teventSource.value.close();\n\t\t\teventSource.value = null;\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\texplicitlyClosed = true;\n\t\t}\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst es = new EventSource(urlRef.value, { withCredentials });\n\t\tstatus.value = \"CONNECTING\";\n\t\teventSource.value = es;\n\t\tes.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\terror.value = null;\n\t\t};\n\t\tes.onerror = (e) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\terror.value = e;\n\t\t\tif (es.readyState === 2 && !explicitlyClosed && autoReconnect) {\n\t\t\t\tes.close();\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions$1(autoReconnect);\n\t\t\t\tretried += 1;\n\t\t\t\tif (typeof retries === \"number\" && (retries < 0 || retried < retries)) setTimeout(_init, delay);\n\t\t\t\telse if (typeof retries === \"function\" && retries()) setTimeout(_init, delay);\n\t\t\t\telse onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tes.onmessage = (e) => {\n\t\t\tvar _serializer$read;\n\t\t\tevent.value = null;\n\t\t\tdata.value = (_serializer$read = serializer.read(e.data)) !== null && _serializer$read !== void 0 ? _serializer$read : null;\n\t\t\tlastEventId.value = e.lastEventId;\n\t\t};\n\t\tfor (const event_name of events) useEventListener(es, event_name, (e) => {\n\t\t\tvar _serializer$read2, _e$lastEventId;\n\t\t\tevent.value = event_name;\n\t\t\tdata.value = (_serializer$read2 = serializer.read(e.data)) !== null && _serializer$read2 !== void 0 ? _serializer$read2 : null;\n\t\t\tlastEventId.value = (_e$lastEventId = e.lastEventId) !== null && _e$lastEventId !== void 0 ? _e$lastEventId : null;\n\t\t}, { passive: true });\n\t};\n\tconst open = () => {\n\t\tif (!isClient) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\ttryOnScopeDispose(close);\n\treturn {\n\t\teventSource,\n\t\tevent,\n\t\tdata,\n\t\tstatus,\n\t\terror,\n\t\topen,\n\t\tclose,\n\t\tlastEventId\n\t};\n}\n//#endregion\n//#region useEyeDropper/index.ts\n/**\n* Reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)\n*\n* @see https://vueuse.org/useEyeDropper\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useEyeDropper(options = {}) {\n\tconst { initialValue = \"\" } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n\tconst sRGBHex = shallowRef(initialValue);\n\tasync function open(openOptions) {\n\t\tif (!isSupported.value) return;\n\t\tconst result = await new window.EyeDropper().open(openOptions);\n\t\tsRGBHex.value = result.sRGBHex;\n\t\treturn result;\n\t}\n\treturn {\n\t\tisSupported,\n\t\tsRGBHex,\n\t\topen\n\t};\n}\n//#endregion\n//#region useFavicon/index.ts\nfunction useFavicon(newIcon = null, options = {}) {\n\tconst { baseUrl = \"\", rel = \"icon\", document = defaultDocument } = options;\n\tconst favicon = toRef(newIcon);\n\tconst applyIcon = (icon) => {\n\t\tconst elements = document === null || document === void 0 ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n\t\tif (!elements || elements.length === 0) {\n\t\t\tconst link = document === null || document === void 0 ? void 0 : document.createElement(\"link\");\n\t\t\tif (link) {\n\t\t\t\tlink.rel = rel;\n\t\t\t\tlink.href = `${baseUrl}${icon}`;\n\t\t\t\tlink.type = `image/${icon.split(\".\").pop()}`;\n\t\t\t\tdocument === null || document === void 0 || document.head.append(link);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\telements === null || elements === void 0 || elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n\t};\n\twatch(favicon, (i, o) => {\n\t\tif (typeof i === \"string\" && i !== o) applyIcon(i);\n\t}, { immediate: true });\n\treturn favicon;\n}\n//#endregion\n//#region useFetch/index.ts\nconst payloadMapping = {\n\tjson: \"application/json\",\n\ttext: \"text/plain\"\n};\n/**\n* !!!IMPORTANT!!!\n*\n* If you update the UseFetchOptions interface, be sure to update this object\n* to include the new options\n*/\nfunction isFetchOptions(obj) {\n\treturn obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n\treturn reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n\tif (typeof Headers !== \"undefined\" && headers instanceof Headers) return Object.fromEntries(headers.entries());\n\treturn headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n\tif (combination === \"overwrite\") return async (ctx) => {\n\t\tlet callback;\n\t\tfor (let i = callbacks.length - 1; i >= 0; i--) if (callbacks[i] != null) {\n\t\t\tcallback = callbacks[i];\n\t\t\tbreak;\n\t\t}\n\t\tif (callback) return {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n\telse return async (ctx) => {\n\t\tfor (const callback of callbacks) if (callback) ctx = {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n}\nfunction createFetch(config = {}) {\n\tconst _combination = config.combination || \"chain\";\n\tconst _options = config.options || {};\n\tconst _fetchOptions = config.fetchOptions || {};\n\tfunction useFactoryFetch(url, ...args) {\n\t\tconst computedUrl = computed(() => {\n\t\t\tconst baseUrl = toValue(config.baseUrl);\n\t\t\tconst targetUrl = toValue(url);\n\t\t\treturn baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n\t\t});\n\t\tlet options = _options;\n\t\tlet fetchOptions = _fetchOptions;\n\t\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t\t...options,\n\t\t\t...args[0],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n\t\t};\n\t\telse fetchOptions = {\n\t\t\t...fetchOptions,\n\t\t\t...args[0],\n\t\t\theaders: {\n\t\t\t\t...headersToObject(fetchOptions.headers) || {},\n\t\t\t\t...headersToObject(args[0].headers) || {}\n\t\t\t}\n\t\t};\n\t\tif (args.length > 1 && isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n\t\t};\n\t\treturn useFetch(computedUrl, fetchOptions, options);\n\t}\n\treturn useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n\tvar _defaultWindow$fetch, _globalThis;\n\tconst supportsAbort = typeof AbortController === \"function\";\n\tlet fetchOptions = {};\n\tlet options = {\n\t\timmediate: true,\n\t\trefetch: false,\n\t\ttimeout: 0,\n\t\tupdateDataOnError: false\n\t};\n\tconst config = {\n\t\tmethod: \"GET\",\n\t\ttype: \"text\",\n\t\tpayload: void 0\n\t};\n\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t...options,\n\t\t...args[0]\n\t};\n\telse fetchOptions = args[0];\n\tif (args.length > 1) {\n\t\tif (isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1]\n\t\t};\n\t}\n\tconst { fetch = (_defaultWindow$fetch = defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.fetch) !== null && _defaultWindow$fetch !== void 0 ? _defaultWindow$fetch : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.fetch, initialData, timeout } = options;\n\tconst responseEvent = createEventHook();\n\tconst errorEvent = createEventHook();\n\tconst finallyEvent = createEventHook();\n\tconst isFinished = shallowRef(false);\n\tconst isFetching = shallowRef(false);\n\tconst aborted = shallowRef(false);\n\tconst statusCode = shallowRef(null);\n\tconst response = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst data = shallowRef(initialData || null);\n\tconst canAbort = computed(() => supportsAbort && isFetching.value);\n\tlet controller;\n\tlet timer;\n\tconst abort = (reason) => {\n\t\tif (supportsAbort) {\n\t\t\tcontroller === null || controller === void 0 || controller.abort(reason);\n\t\t\tcontroller = new AbortController();\n\t\t\tcontroller.signal.onabort = () => aborted.value = true;\n\t\t\tfetchOptions = {\n\t\t\t\t...fetchOptions,\n\t\t\t\tsignal: controller.signal\n\t\t\t};\n\t\t}\n\t};\n\tconst loading = (isLoading) => {\n\t\tisFetching.value = isLoading;\n\t\tisFinished.value = !isLoading;\n\t};\n\tif (timeout) timer = useTimeoutFn(abort, timeout, { immediate: false });\n\tlet executeCounter = 0;\n\tconst execute = async (throwOnFailed = false) => {\n\t\tvar _context$options;\n\t\tabort();\n\t\tloading(true);\n\t\terror.value = null;\n\t\tstatusCode.value = null;\n\t\taborted.value = false;\n\t\texecuteCounter += 1;\n\t\tconst currentExecuteCounter = executeCounter;\n\t\tconst defaultFetchOptions = {\n\t\t\tmethod: config.method,\n\t\t\theaders: {}\n\t\t};\n\t\tconst payload = toValue(config.payload);\n\t\tif (payload) {\n\t\t\tvar _payloadMapping$confi;\n\t\t\tconst headers = headersToObject(defaultFetchOptions.headers);\n\t\t\tconst proto = Object.getPrototypeOf(payload);\n\t\t\tif (!config.payloadType && payload && (proto === Object.prototype || Array.isArray(proto)) && !(payload instanceof FormData)) config.payloadType = \"json\";\n\t\t\tif (config.payloadType) headers[\"Content-Type\"] = (_payloadMapping$confi = payloadMapping[config.payloadType]) !== null && _payloadMapping$confi !== void 0 ? _payloadMapping$confi : config.payloadType;\n\t\t\tdefaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n\t\t}\n\t\tlet isCanceled = false;\n\t\tconst context = {\n\t\t\turl: toValue(url),\n\t\t\toptions: {\n\t\t\t\t...defaultFetchOptions,\n\t\t\t\t...fetchOptions\n\t\t\t},\n\t\t\tcancel: () => {\n\t\t\t\tisCanceled = true;\n\t\t\t}\n\t\t};\n\t\tif (options.beforeFetch) Object.assign(context, await options.beforeFetch(context));\n\t\tif (isCanceled || !fetch) {\n\t\t\tloading(false);\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\t\tlet responseData = null;\n\t\tif (timer) timer.start();\n\t\treturn fetch(context.url, {\n\t\t\t...defaultFetchOptions,\n\t\t\t...context.options,\n\t\t\theaders: {\n\t\t\t\t...headersToObject(defaultFetchOptions.headers),\n\t\t\t\t...headersToObject((_context$options = context.options) === null || _context$options === void 0 ? void 0 : _context$options.headers)\n\t\t\t}\n\t\t}).then(async (fetchResponse) => {\n\t\t\tresponse.value = fetchResponse;\n\t\t\tstatusCode.value = fetchResponse.status;\n\t\t\tresponseData = await fetchResponse.clone()[config.type]();\n\t\t\tif (!fetchResponse.ok) {\n\t\t\t\tdata.value = initialData || null;\n\t\t\t\tthrow new Error(fetchResponse.statusText);\n\t\t\t}\n\t\t\tif (options.afterFetch) ({data: responseData} = await options.afterFetch({\n\t\t\t\tdata: responseData,\n\t\t\t\tresponse: fetchResponse,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tdata.value = responseData;\n\t\t\tresponseEvent.trigger(fetchResponse);\n\t\t\treturn fetchResponse;\n\t\t}).catch(async (fetchError) => {\n\t\t\tlet errorData = fetchError.message || fetchError.name;\n\t\t\tif (options.onFetchError) ({error: errorData, data: responseData} = await options.onFetchError({\n\t\t\t\tdata: responseData,\n\t\t\t\terror: fetchError,\n\t\t\t\tresponse: response.value,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tif (currentExecuteCounter === executeCounter) {\n\t\t\t\terror.value = errorData;\n\t\t\t\tif (options.updateDataOnError) data.value = responseData;\n\t\t\t}\n\t\t\terrorEvent.trigger(fetchError);\n\t\t\tif (throwOnFailed) throw fetchError;\n\t\t\treturn null;\n\t\t}).finally(() => {\n\t\t\tif (currentExecuteCounter === executeCounter) loading(false);\n\t\t\tif (timer) timer.stop();\n\t\t\tfinallyEvent.trigger(null);\n\t\t});\n\t};\n\tconst refetch = toRef(options.refetch);\n\twatch([refetch, toRef(url)], ([refetch]) => refetch && execute(), { deep: true });\n\tconst shell = {\n\t\tisFinished: shallowReadonly(isFinished),\n\t\tisFetching: shallowReadonly(isFetching),\n\t\tstatusCode,\n\t\tresponse,\n\t\terror,\n\t\tdata,\n\t\tcanAbort,\n\t\taborted,\n\t\tabort,\n\t\texecute,\n\t\tonFetchResponse: responseEvent.on,\n\t\tonFetchError: errorEvent.on,\n\t\tonFetchFinally: finallyEvent.on,\n\t\tget: setMethod(\"GET\"),\n\t\tput: setMethod(\"PUT\"),\n\t\tpost: setMethod(\"POST\"),\n\t\tdelete: setMethod(\"DELETE\"),\n\t\tpatch: setMethod(\"PATCH\"),\n\t\thead: setMethod(\"HEAD\"),\n\t\toptions: setMethod(\"OPTIONS\"),\n\t\tjson: setType(\"json\"),\n\t\ttext: setType(\"text\"),\n\t\tblob: setType(\"blob\"),\n\t\tarrayBuffer: setType(\"arrayBuffer\"),\n\t\tformData: setType(\"formData\")\n\t};\n\tfunction setMethod(method) {\n\t\treturn (payload, payloadType) => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.method = method;\n\t\t\t\tconfig.payload = payload;\n\t\t\t\tconfig.payloadType = payloadType;\n\t\t\t\tif (isRef(config.payload)) watch([refetch, toRef(config.payload)], ([refetch]) => refetch && execute(), { deep: true });\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tfunction waitUntilFinished() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isFinished).toBe(true).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\tfunction setType(type) {\n\t\treturn () => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.type = type;\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tif (options.immediate) Promise.resolve().then(() => execute());\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\nfunction joinPaths(start, end) {\n\tif (!start.endsWith(\"/\") && !end.startsWith(\"/\")) return `${start}/${end}`;\n\tif (start.endsWith(\"/\") && end.startsWith(\"/\")) return `${start.slice(0, -1)}${end}`;\n\treturn `${start}${end}`;\n}\n//#endregion\n//#region useFileDialog/index.ts\nconst DEFAULT_OPTIONS = {\n\tmultiple: true,\n\taccept: \"*\",\n\treset: false,\n\tdirectory: false\n};\nfunction prepareInitialFiles(files) {\n\tif (!files) return null;\n\tif (files instanceof FileList) return files;\n\tconst dt = new DataTransfer();\n\tfor (const file of files) dt.items.add(file);\n\treturn dt.files;\n}\n/**\n* Open file dialog with ease.\n*\n* @see https://vueuse.org/useFileDialog\n* @param options\n*/\nfunction useFileDialog(options = {}) {\n\tconst { document = defaultDocument } = options;\n\tconst files = ref(prepareInitialFiles(options.initialFiles));\n\tconst { on: onChange, trigger: changeTrigger } = createEventHook();\n\tconst { on: onCancel, trigger: cancelTrigger } = createEventHook();\n\tconst inputRef = computed(() => {\n\t\tvar _unrefElement;\n\t\tconst input = (_unrefElement = unrefElement(options.input)) !== null && _unrefElement !== void 0 ? _unrefElement : document ? document.createElement(\"input\") : void 0;\n\t\tif (input) {\n\t\t\tinput.type = \"file\";\n\t\t\tinput.onchange = (event) => {\n\t\t\t\tconst result = event.target;\n\t\t\t\tfiles.value = result.files;\n\t\t\t\tchangeTrigger(files.value);\n\t\t\t};\n\t\t\tinput.oncancel = () => {\n\t\t\t\tcancelTrigger();\n\t\t\t};\n\t\t}\n\t\treturn input;\n\t});\n\tconst reset = () => {\n\t\tfiles.value = null;\n\t\tif (inputRef.value && inputRef.value.value) {\n\t\t\tinputRef.value.value = \"\";\n\t\t\tchangeTrigger(null);\n\t\t}\n\t};\n\tconst applyOptions = (options) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tel.multiple = toValue(options.multiple);\n\t\tel.accept = toValue(options.accept);\n\t\tel.webkitdirectory = toValue(options.directory);\n\t\tif (hasOwn(options, \"capture\")) el.capture = toValue(options.capture);\n\t};\n\tconst open = (localOptions) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tconst mergedOptions = {\n\t\t\t...DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t...localOptions\n\t\t};\n\t\tapplyOptions(mergedOptions);\n\t\tif (toValue(mergedOptions.reset)) reset();\n\t\tel.click();\n\t};\n\twatchEffect(() => {\n\t\tapplyOptions(options);\n\t});\n\treturn {\n\t\tfiles: readonly(files),\n\t\topen,\n\t\treset,\n\t\tonCancel,\n\t\tonChange\n\t};\n}\n//#endregion\n//#region useFileSystemAccess/index.ts\nfunction useFileSystemAccess(options = {}) {\n\tconst { window: _window = defaultWindow, dataType = \"Text\" } = options;\n\tconst window = _window;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n\tconst fileHandle = shallowRef();\n\tconst data = shallowRef();\n\tconst file = shallowRef();\n\tconst fileName = computed(() => {\n\t\tvar _file$value$name, _file$value;\n\t\treturn (_file$value$name = (_file$value = file.value) === null || _file$value === void 0 ? void 0 : _file$value.name) !== null && _file$value$name !== void 0 ? _file$value$name : \"\";\n\t});\n\tconst fileMIME = computed(() => {\n\t\tvar _file$value$type, _file$value2;\n\t\treturn (_file$value$type = (_file$value2 = file.value) === null || _file$value2 === void 0 ? void 0 : _file$value2.type) !== null && _file$value$type !== void 0 ? _file$value$type : \"\";\n\t});\n\tconst fileSize = computed(() => {\n\t\tvar _file$value$size, _file$value3;\n\t\treturn (_file$value$size = (_file$value3 = file.value) === null || _file$value3 === void 0 ? void 0 : _file$value3.size) !== null && _file$value$size !== void 0 ? _file$value$size : 0;\n\t});\n\tconst fileLastModified = computed(() => {\n\t\tvar _file$value$lastModif, _file$value4;\n\t\treturn (_file$value$lastModif = (_file$value4 = file.value) === null || _file$value4 === void 0 ? void 0 : _file$value4.lastModified) !== null && _file$value$lastModif !== void 0 ? _file$value$lastModif : 0;\n\t});\n\tasync function open(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tconst [handle] = await window.showOpenFilePicker({\n\t\t\t...toValue(options),\n\t\t\t..._options\n\t\t});\n\t\tfileHandle.value = handle;\n\t\tawait updateData();\n\t}\n\tasync function create(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tdata.value = void 0;\n\t\tawait updateData();\n\t}\n\tasync function save(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tif (!fileHandle.value) return saveAs(_options);\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function saveAs(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function updateFile() {\n\t\tvar _fileHandle$value;\n\t\tfile.value = await ((_fileHandle$value = fileHandle.value) === null || _fileHandle$value === void 0 ? void 0 : _fileHandle$value.getFile());\n\t}\n\tasync function updateData() {\n\t\tvar _file$value5, _file$value6;\n\t\tawait updateFile();\n\t\tconst type = toValue(dataType);\n\t\tif (type === \"Text\") data.value = await ((_file$value5 = file.value) === null || _file$value5 === void 0 ? void 0 : _file$value5.text());\n\t\telse if (type === \"ArrayBuffer\") data.value = await ((_file$value6 = file.value) === null || _file$value6 === void 0 ? void 0 : _file$value6.arrayBuffer());\n\t\telse if (type === \"Blob\") data.value = file.value;\n\t}\n\twatch(() => toValue(dataType), updateData);\n\treturn {\n\t\tisSupported,\n\t\tdata,\n\t\tfile,\n\t\tfileName,\n\t\tfileMIME,\n\t\tfileSize,\n\t\tfileLastModified,\n\t\topen,\n\t\tcreate,\n\t\tsave,\n\t\tsaveAs,\n\t\tupdateData\n\t};\n}\n//#endregion\n//#region useFocus/index.ts\n/**\n* Track or set the focus state of a DOM element.\n*\n* @see https://vueuse.org/useFocus\n* @param target The target element for the focus and blur events.\n* @param options\n*/\nfunction useFocus(target, options = {}) {\n\tconst { initialValue = false, focusVisible = false, preventScroll = false } = options;\n\tconst innerFocused = shallowRef(false);\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, \"focus\", (event) => {\n\t\tvar _matches, _ref;\n\t\tif (!focusVisible || ((_matches = (_ref = event.target).matches) === null || _matches === void 0 ? void 0 : _matches.call(_ref, \":focus-visible\"))) innerFocused.value = true;\n\t}, listenerOptions);\n\tuseEventListener(targetElement, \"blur\", () => innerFocused.value = false, listenerOptions);\n\tconst focused = computed({\n\t\tget: () => innerFocused.value,\n\t\tset(value) {\n\t\t\tvar _targetElement$value, _targetElement$value2;\n\t\t\tif (!value && innerFocused.value) (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || _targetElement$value.blur();\n\t\t\telse if (value && !innerFocused.value) (_targetElement$value2 = targetElement.value) === null || _targetElement$value2 === void 0 || _targetElement$value2.focus({ preventScroll });\n\t\t}\n\t});\n\twatch(targetElement, () => {\n\t\tfocused.value = initialValue;\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\treturn { focused };\n}\n//#endregion\n//#region useFocusWithin/index.ts\nconst EVENT_FOCUS_IN = \"focusin\";\nconst EVENT_FOCUS_OUT = \"focusout\";\nconst PSEUDO_CLASS_FOCUS_WITHIN = \":focus-within\";\n/**\n* Track if focus is contained within the target element\n*\n* @see https://vueuse.org/useFocusWithin\n* @param target The target element to track\n* @param options Focus within options\n*/\nfunction useFocusWithin(target, options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst _focused = shallowRef(false);\n\tconst focused = computed(() => _focused.value);\n\tconst activeElement = useActiveElement(options);\n\tif (!window || !activeElement.value) return { focused };\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, EVENT_FOCUS_IN, () => _focused.value = true, listenerOptions);\n\tuseEventListener(targetElement, EVENT_FOCUS_OUT, () => {\n\t\tvar _targetElement$value$, _targetElement$value, _targetElement$value$2;\n\t\treturn _focused.value = (_targetElement$value$ = (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || (_targetElement$value$2 = _targetElement$value.matches) === null || _targetElement$value$2 === void 0 ? void 0 : _targetElement$value$2.call(_targetElement$value, PSEUDO_CLASS_FOCUS_WITHIN)) !== null && _targetElement$value$ !== void 0 ? _targetElement$value$ : false;\n\t}, listenerOptions);\n\treturn { focused };\n}\n//#endregion\n//#region useFps/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useFps(options) {\n\tvar _options$every;\n\tconst fps = shallowRef(0);\n\tif (typeof performance === \"undefined\") return fps;\n\tconst every = (_options$every = options === null || options === void 0 ? void 0 : options.every) !== null && _options$every !== void 0 ? _options$every : 10;\n\tlet last = performance.now();\n\tlet ticks = 0;\n\tuseRafFn(() => {\n\t\tticks += 1;\n\t\tif (ticks >= every) {\n\t\t\tconst now = performance.now();\n\t\t\tconst diff = now - last;\n\t\t\tfps.value = Math.round(1e3 / (diff / ticks));\n\t\t\tlast = now;\n\t\t\tticks = 0;\n\t\t}\n\t});\n\treturn fps;\n}\n//#endregion\n//#region useFullscreen/index.ts\nconst eventHandlers = [\n\t\"fullscreenchange\",\n\t\"webkitfullscreenchange\",\n\t\"webkitendfullscreen\",\n\t\"mozfullscreenchange\",\n\t\"MSFullscreenChange\"\n];\n/**\n* Reactive Fullscreen API.\n*\n* @see https://vueuse.org/useFullscreen\n* @param target\n* @param options\n*/\nfunction useFullscreen(target, options = {}) {\n\tconst { document = defaultDocument, autoExit = false } = options;\n\tconst targetRef = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : document === null || document === void 0 ? void 0 : document.documentElement;\n\t});\n\tconst isFullscreen = shallowRef(false);\n\tconst requestMethod = computed(() => {\n\t\treturn [\n\t\t\t\"requestFullscreen\",\n\t\t\t\"webkitRequestFullscreen\",\n\t\t\t\"webkitEnterFullscreen\",\n\t\t\t\"webkitEnterFullScreen\",\n\t\t\t\"webkitRequestFullScreen\",\n\t\t\t\"mozRequestFullScreen\",\n\t\t\t\"msRequestFullscreen\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst exitMethod = computed(() => {\n\t\treturn [\n\t\t\t\"exitFullscreen\",\n\t\t\t\"webkitExitFullscreen\",\n\t\t\t\"webkitExitFullScreen\",\n\t\t\t\"webkitCancelFullScreen\",\n\t\t\t\"mozCancelFullScreen\",\n\t\t\t\"msExitFullscreen\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenEnabled = computed(() => {\n\t\treturn [\n\t\t\t\"fullScreen\",\n\t\t\t\"webkitIsFullScreen\",\n\t\t\t\"webkitDisplayingFullscreen\",\n\t\t\t\"mozFullScreen\",\n\t\t\t\"msFullscreenElement\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenElementMethod = [\n\t\t\"fullscreenElement\",\n\t\t\"webkitFullscreenElement\",\n\t\t\"mozFullScreenElement\",\n\t\t\"msFullscreenElement\"\n\t].find((m) => document && m in document);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n\tconst isCurrentElementFullScreen = () => {\n\t\tif (fullscreenElementMethod) return (document === null || document === void 0 ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n\t\treturn false;\n\t};\n\tconst isElementFullScreen = () => {\n\t\tif (fullscreenEnabled.value) if (document && document[fullscreenEnabled.value] != null) return document[fullscreenEnabled.value];\n\t\telse {\n\t\t\tconst target = targetRef.value;\n\t\t\tif ((target === null || target === void 0 ? void 0 : target[fullscreenEnabled.value]) != null) return Boolean(target[fullscreenEnabled.value]);\n\t\t}\n\t\treturn false;\n\t};\n\tasync function exit() {\n\t\tif (!isSupported.value || !isFullscreen.value) return;\n\t\tif (exitMethod.value) if ((document === null || document === void 0 ? void 0 : document[exitMethod.value]) != null) await document[exitMethod.value]();\n\t\telse {\n\t\t\tconst target = targetRef.value;\n\t\t\tif ((target === null || target === void 0 ? void 0 : target[exitMethod.value]) != null) await target[exitMethod.value]();\n\t\t}\n\t\tisFullscreen.value = false;\n\t}\n\tasync function enter() {\n\t\tif (!isSupported.value || isFullscreen.value) return;\n\t\tif (isElementFullScreen()) await exit();\n\t\tconst target = targetRef.value;\n\t\tif (requestMethod.value && (target === null || target === void 0 ? void 0 : target[requestMethod.value]) != null) {\n\t\t\tawait target[requestMethod.value]();\n\t\t\tisFullscreen.value = true;\n\t\t}\n\t}\n\tasync function toggle() {\n\t\tawait (isFullscreen.value ? exit() : enter());\n\t}\n\tconst handlerCallback = () => {\n\t\tconst isElementFullScreenValue = isElementFullScreen();\n\t\tif (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) isFullscreen.value = isElementFullScreenValue;\n\t};\n\tconst listenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t};\n\tuseEventListener(document, eventHandlers, handlerCallback, listenerOptions);\n\tuseEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, listenerOptions);\n\ttryOnMounted(handlerCallback, false);\n\tif (autoExit) tryOnScopeDispose(exit);\n\treturn {\n\t\tisSupported,\n\t\tisFullscreen,\n\t\tenter,\n\t\texit,\n\t\ttoggle\n\t};\n}\n//#endregion\n//#region useGamepad/index.ts\n/**\n* Maps a standard standard gamepad to an Xbox 360 Controller.\n*/\nfunction mapGamepadToXbox360Controller(gamepad) {\n\treturn computed(() => {\n\t\tif (gamepad.value) return {\n\t\t\tbuttons: {\n\t\t\t\ta: gamepad.value.buttons[0],\n\t\t\t\tb: gamepad.value.buttons[1],\n\t\t\t\tx: gamepad.value.buttons[2],\n\t\t\t\ty: gamepad.value.buttons[3]\n\t\t\t},\n\t\t\tbumper: {\n\t\t\t\tleft: gamepad.value.buttons[4],\n\t\t\t\tright: gamepad.value.buttons[5]\n\t\t\t},\n\t\t\ttriggers: {\n\t\t\t\tleft: gamepad.value.buttons[6],\n\t\t\t\tright: gamepad.value.buttons[7]\n\t\t\t},\n\t\t\tstick: {\n\t\t\t\tleft: {\n\t\t\t\t\thorizontal: gamepad.value.axes[0],\n\t\t\t\t\tvertical: gamepad.value.axes[1],\n\t\t\t\t\tbutton: gamepad.value.buttons[10]\n\t\t\t\t},\n\t\t\t\tright: {\n\t\t\t\t\thorizontal: gamepad.value.axes[2],\n\t\t\t\t\tvertical: gamepad.value.axes[3],\n\t\t\t\t\tbutton: gamepad.value.buttons[11]\n\t\t\t\t}\n\t\t\t},\n\t\t\tdpad: {\n\t\t\t\tup: gamepad.value.buttons[12],\n\t\t\t\tdown: gamepad.value.buttons[13],\n\t\t\t\tleft: gamepad.value.buttons[14],\n\t\t\t\tright: gamepad.value.buttons[15]\n\t\t\t},\n\t\t\tback: gamepad.value.buttons[8],\n\t\t\tstart: gamepad.value.buttons[9]\n\t\t};\n\t\treturn null;\n\t});\n}\n/* @__NO_SIDE_EFFECTS__ */\nfunction useGamepad(options = {}) {\n\tconst { navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"getGamepads\" in navigator);\n\tconst gamepads = ref([]);\n\tconst onConnectedHook = createEventHook();\n\tconst onDisconnectedHook = createEventHook();\n\tconst stateFromGamepad = (gamepad) => {\n\t\tconst hapticActuators = [];\n\t\tconst vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n\t\tif (vibrationActuator) hapticActuators.push(vibrationActuator);\n\t\tif (gamepad.hapticActuators) hapticActuators.push(...gamepad.hapticActuators);\n\t\treturn {\n\t\t\tid: gamepad.id,\n\t\t\tindex: gamepad.index,\n\t\t\tconnected: gamepad.connected,\n\t\t\tmapping: gamepad.mapping,\n\t\t\ttimestamp: gamepad.timestamp,\n\t\t\tvibrationActuator: gamepad.vibrationActuator,\n\t\t\thapticActuators,\n\t\t\taxes: gamepad.axes.map((axes) => axes),\n\t\t\tbuttons: gamepad.buttons.map((button) => ({\n\t\t\t\tpressed: button.pressed,\n\t\t\t\ttouched: button.touched,\n\t\t\t\tvalue: button.value\n\t\t\t}))\n\t\t};\n\t};\n\tconst updateGamepadState = () => {\n\t\tconst _gamepads = (navigator === null || navigator === void 0 ? void 0 : navigator.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) {\n\t\t\tif (!gamepad) continue;\n\t\t\tconst index = gamepads.value.findIndex((x) => x.index === gamepad.index);\n\t\t\tif (index > -1) gamepads.value[index] = stateFromGamepad(gamepad);\n\t\t}\n\t};\n\tconst { isActive, pause, resume } = useRafFn(updateGamepadState);\n\tconst onGamepadConnected = (gamepad) => {\n\t\tif (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n\t\t\tgamepads.value.push(stateFromGamepad(gamepad));\n\t\t\tonConnectedHook.trigger(gamepad.index);\n\t\t}\n\t\tresume();\n\t};\n\tconst onGamepadDisconnected = (gamepad) => {\n\t\tgamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n\t\tonDisconnectedHook.trigger(gamepad.index);\n\t};\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad), listenerOptions);\n\tuseEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad), listenerOptions);\n\ttryOnMounted(() => {\n\t\tconst _gamepads = (navigator === null || navigator === void 0 ? void 0 : navigator.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) onGamepadConnected(gamepad);\n\t});\n\tpause();\n\treturn {\n\t\tisSupported,\n\t\tonConnected: onConnectedHook.on,\n\t\tonDisconnected: onDisconnectedHook.on,\n\t\tgamepads,\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n//#endregion\n//#region useGeolocation/index.ts\n/**\n* Reactive Geolocation API.\n*\n* @see https://vueuse.org/useGeolocation\n* @param options\n*/\nfunction useGeolocation(options = {}) {\n\tconst { enableHighAccuracy = true, maximumAge = 3e4, timeout = 27e3, navigator = defaultNavigator, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"geolocation\" in navigator);\n\tconst locatedAt = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst coords = shallowRef({\n\t\taccuracy: 0,\n\t\tlatitude: Number.POSITIVE_INFINITY,\n\t\tlongitude: Number.POSITIVE_INFINITY,\n\t\taltitude: null,\n\t\taltitudeAccuracy: null,\n\t\theading: null,\n\t\tspeed: null\n\t});\n\tfunction updatePosition(position) {\n\t\tlocatedAt.value = position.timestamp;\n\t\tcoords.value = position.coords;\n\t\terror.value = null;\n\t}\n\tlet watcher;\n\tfunction resume() {\n\t\tif (isSupported.value) watcher = navigator.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n\t\t\tenableHighAccuracy,\n\t\t\tmaximumAge,\n\t\t\ttimeout\n\t\t});\n\t}\n\tif (immediate) resume();\n\tfunction pause() {\n\t\tif (watcher && navigator) navigator.geolocation.clearWatch(watcher);\n\t}\n\ttryOnScopeDispose(() => {\n\t\tpause();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcoords,\n\t\tlocatedAt,\n\t\terror,\n\t\tresume,\n\t\tpause\n\t};\n}\n//#endregion\n//#region useIdle/index.ts\nconst defaultEvents$1 = [\n\t\"mousemove\",\n\t\"mousedown\",\n\t\"resize\",\n\t\"keydown\",\n\t\"touchstart\",\n\t\"wheel\"\n];\nconst oneMinute = 6e4;\n/**\n* Tracks whether the user is being inactive.\n*\n* @see https://vueuse.org/useIdle\n* @param timeout default to 1 minute\n* @param options IdleOptions\n*/\nfunction useIdle(timeout = oneMinute, options = {}) {\n\tconst { initialState = false, listenForVisibilityChange = true, events = defaultEvents$1, window = defaultWindow, eventFilter = throttleFilter(50) } = options;\n\tconst idle = shallowRef(initialState);\n\tconst lastActive = shallowRef(timestamp());\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tconst reset = () => {\n\t\tidle.value = false;\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(() => idle.value = true, timeout);\n\t};\n\tconst onEvent = createFilterWrapper(eventFilter, () => {\n\t\tlastActive.value = timestamp();\n\t\treset();\n\t});\n\tif (window) {\n\t\tconst document = window.document;\n\t\tconst listenerOptions = { passive: true };\n\t\tfor (const event of events) useEventListener(window, event, () => {\n\t\t\tif (!isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tif (listenForVisibilityChange) useEventListener(document, \"visibilitychange\", () => {\n\t\t\tif (document.hidden || !isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tstart();\n\t}\n\tfunction start() {\n\t\tif (isPending.value) return;\n\t\tisPending.value = true;\n\t\tif (!initialState) reset();\n\t}\n\tfunction stop() {\n\t\tidle.value = initialState;\n\t\tclearTimeout(timer);\n\t\tisPending.value = false;\n\t}\n\treturn {\n\t\tidle,\n\t\tlastActive,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tisPending: shallowReadonly(isPending)\n\t};\n}\n//#endregion\n//#region useImage/index.ts\nasync function loadImage(options) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst img = new Image();\n\t\tconst { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy, width, height, decoding, fetchPriority, ismap, usemap } = options;\n\t\timg.src = src;\n\t\tif (srcset != null) img.srcset = srcset;\n\t\tif (sizes != null) img.sizes = sizes;\n\t\tif (clazz != null) img.className = clazz;\n\t\tif (loading != null) img.loading = loading;\n\t\tif (crossorigin != null) img.crossOrigin = crossorigin;\n\t\tif (referrerPolicy != null) img.referrerPolicy = referrerPolicy;\n\t\tif (width != null) img.width = width;\n\t\tif (height != null) img.height = height;\n\t\tif (decoding != null) img.decoding = decoding;\n\t\tif (fetchPriority != null) img.fetchPriority = fetchPriority;\n\t\tif (ismap != null) img.isMap = ismap;\n\t\tif (usemap != null) img.useMap = usemap;\n\t\timg.onload = () => resolve(img);\n\t\timg.onerror = reject;\n\t});\n}\n/**\n* Reactive load an image in the browser, you can wait the result to display it or show a fallback.\n*\n* @see https://vueuse.org/useImage\n* @param options Image attributes, as used in the tag\n* @param asyncStateOptions\n*/\nfunction useImage(options, asyncStateOptions = {}) {\n\tconst state = useAsyncState(() => loadImage(toValue(options)), void 0, {\n\t\tresetOnExecute: true,\n\t\t...asyncStateOptions\n\t});\n\twatch(() => toValue(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n\treturn state;\n}\n//#endregion\n//#region _resolve-element.ts\n/**\n* Resolves an element from a given element, window, or document.\n*\n* @internal\n*/\nfunction resolveElement(el) {\n\tif (typeof Window !== \"undefined\" && el instanceof Window) return el.document.documentElement;\n\tif (typeof Document !== \"undefined\" && el instanceof Document) return el.documentElement;\n\treturn el;\n}\n//#endregion\n//#region useScroll/index.ts\n/**\n* We have to check if the scroll amount is close enough to some threshold in order to\n* more accurately calculate arrivedState. This is because scrollTop/scrollLeft are non-rounded\n* numbers, while scrollHeight/scrollWidth and clientHeight/clientWidth are rounded.\n* https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n*/\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n/**\n* Reactive scroll.\n*\n* @see https://vueuse.org/useScroll\n* @param element\n* @param options\n*/\nfunction useScroll(element, options = {}) {\n\tconst { throttle = 0, idle = 200, onStop = noop, onScroll = noop, offset = {\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbottom: 0\n\t}, observe: _observe = { mutation: false }, eventListenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t}, behavior = \"auto\", window = defaultWindow, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = options;\n\tconst observe = typeof _observe === \"boolean\" ? { mutation: _observe } : _observe;\n\tconst internalX = shallowRef(0);\n\tconst internalY = shallowRef(0);\n\tconst x = computed({\n\t\tget() {\n\t\t\treturn internalX.value;\n\t\t},\n\t\tset(x) {\n\t\t\tscrollTo(x, void 0);\n\t\t}\n\t});\n\tconst y = computed({\n\t\tget() {\n\t\t\treturn internalY.value;\n\t\t},\n\t\tset(y) {\n\t\t\tscrollTo(void 0, y);\n\t\t}\n\t});\n\tfunction scrollTo(_x, _y) {\n\t\tvar _ref, _toValue, _toValue2, _document;\n\t\tif (!window) return;\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\t(_ref = _element instanceof Document ? window.document.body : _element) === null || _ref === void 0 || _ref.scrollTo({\n\t\t\ttop: (_toValue = toValue(_y)) !== null && _toValue !== void 0 ? _toValue : y.value,\n\t\t\tleft: (_toValue2 = toValue(_x)) !== null && _toValue2 !== void 0 ? _toValue2 : x.value,\n\t\t\tbehavior: toValue(behavior)\n\t\t});\n\t\tconst scrollContainer = (_element === null || _element === void 0 || (_document = _element.document) === null || _document === void 0 ? void 0 : _document.documentElement) || (_element === null || _element === void 0 ? void 0 : _element.documentElement) || _element;\n\t\tif (x != null) internalX.value = scrollContainer.scrollLeft;\n\t\tif (y != null) internalY.value = scrollContainer.scrollTop;\n\t}\n\tconst isScrolling = shallowRef(false);\n\tconst arrivedState = reactive({\n\t\tleft: true,\n\t\tright: false,\n\t\ttop: true,\n\t\tbottom: false\n\t});\n\tconst directions = reactive({\n\t\tleft: false,\n\t\tright: false,\n\t\ttop: false,\n\t\tbottom: false\n\t});\n\tconst onScrollEnd = (e) => {\n\t\tif (!isScrolling.value) return;\n\t\tisScrolling.value = false;\n\t\tdirections.left = false;\n\t\tdirections.right = false;\n\t\tdirections.top = false;\n\t\tdirections.bottom = false;\n\t\tonStop(e);\n\t};\n\tconst onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n\tconst setArrivedState = (target) => {\n\t\tvar _document2;\n\t\tif (!window) return;\n\t\tconst el = (target === null || target === void 0 || (_document2 = target.document) === null || _document2 === void 0 ? void 0 : _document2.documentElement) || (target === null || target === void 0 ? void 0 : target.documentElement) || unrefElement(target);\n\t\tconst { display, flexDirection, direction } = window.getComputedStyle(el);\n\t\tconst directionMultipler = direction === \"rtl\" ? -1 : 1;\n\t\tconst scrollLeft = el.scrollLeft;\n\t\tdirections.left = scrollLeft < internalX.value;\n\t\tdirections.right = scrollLeft > internalX.value;\n\t\tconst left = Math.abs(scrollLeft * directionMultipler) <= (offset.left || 0);\n\t\tconst right = Math.abs(scrollLeft * directionMultipler) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\tif (display === \"flex\" && flexDirection === \"row-reverse\") {\n\t\t\tarrivedState.left = right;\n\t\t\tarrivedState.right = left;\n\t\t} else {\n\t\t\tarrivedState.left = left;\n\t\t\tarrivedState.right = right;\n\t\t}\n\t\tinternalX.value = scrollLeft;\n\t\tlet scrollTop = el.scrollTop;\n\t\tif (target === window.document && !scrollTop) scrollTop = window.document.body.scrollTop;\n\t\tdirections.top = scrollTop < internalY.value;\n\t\tdirections.bottom = scrollTop > internalY.value;\n\t\tconst top = Math.abs(scrollTop) <= (offset.top || 0);\n\t\tconst bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\t/**\n\t\t* reverse columns and rows behave exactly the other way around,\n\t\t* bottom is treated as top and top is treated as the negative version of bottom\n\t\t*/\n\t\tif (display === \"flex\" && flexDirection === \"column-reverse\") {\n\t\t\tarrivedState.top = bottom;\n\t\t\tarrivedState.bottom = top;\n\t\t} else {\n\t\t\tarrivedState.top = top;\n\t\t\tarrivedState.bottom = bottom;\n\t\t}\n\t\tinternalY.value = scrollTop;\n\t};\n\tconst onScrollHandler = (e) => {\n\t\tvar _documentElement;\n\t\tif (!window) return;\n\t\tconst eventTarget = (_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target;\n\t\tsetArrivedState(eventTarget);\n\t\tisScrolling.value = true;\n\t\tonScrollEndDebounced(e);\n\t\tonScroll(e);\n\t};\n\tuseEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n\ttryOnMounted(() => {\n\t\ttry {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (!_element) return;\n\t\t\tsetArrivedState(_element);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t});\n\tif ((observe === null || observe === void 0 ? void 0 : observe.mutation) && element != null && element !== window && element !== document) useMutationObserver(element, () => {\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\tsetArrivedState(_element);\n\t}, {\n\t\tattributes: true,\n\t\tchildList: true,\n\t\tsubtree: true\n\t});\n\tuseEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n\treturn {\n\t\tx,\n\t\ty,\n\t\tisScrolling,\n\t\tarrivedState,\n\t\tdirections,\n\t\tmeasure() {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (window && _element) setArrivedState(_element);\n\t\t}\n\t};\n}\n//#endregion\n//#region useInfiniteScroll/index.ts\n/**\n* Reactive infinite scroll.\n*\n* @see https://vueuse.org/useInfiniteScroll\n*/\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n\tvar _options$distance;\n\tconst { direction = \"bottom\", interval = 100, canLoadMore = () => true } = options;\n\tconst state = reactive(useScroll(element, {\n\t\t...options,\n\t\toffset: {\n\t\t\t[direction]: (_options$distance = options.distance) !== null && _options$distance !== void 0 ? _options$distance : 0,\n\t\t\t...options.offset\n\t\t}\n\t}));\n\tconst promise = shallowRef();\n\tconst isLoading = computed(() => !!promise.value);\n\tconst observedElement = computed(() => {\n\t\treturn resolveElement(toValue(element));\n\t});\n\tconst isElementVisible = useElementVisibility(observedElement);\n\tconst canLoad = computed(() => {\n\t\tif (!observedElement.value) return false;\n\t\treturn canLoadMore(observedElement.value);\n\t});\n\tfunction checkAndLoad() {\n\t\tstate.measure();\n\t\tif (!observedElement.value || !isElementVisible.value || !canLoad.value || promise.value) return;\n\t\tconst { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n\t\tconst isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n\t\tif (state.arrivedState[direction] || isNarrower) promise.value = Promise.all([onLoadMore(state), new Promise((resolve) => setTimeout(resolve, interval))]).finally(() => {\n\t\t\tpromise.value = null;\n\t\t\tnextTick(() => checkAndLoad());\n\t\t});\n\t}\n\ttryOnUnmounted(watch(() => [\n\t\tstate.arrivedState[direction],\n\t\tisElementVisible.value,\n\t\tcanLoad.value\n\t], checkAndLoad, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t}));\n\treturn {\n\t\tisLoading,\n\t\treset() {\n\t\t\tnextTick(() => checkAndLoad());\n\t\t}\n\t};\n}\n//#endregion\n//#region useKeyModifier/index.ts\nconst defaultEvents = [\n\t\"mousedown\",\n\t\"mouseup\",\n\t\"keydown\",\n\t\"keyup\"\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction useKeyModifier(modifier, options = {}) {\n\tconst { events = defaultEvents, document = defaultDocument, initial = null } = options;\n\tconst state = shallowRef(initial);\n\tif (document) events.forEach((listenerEvent) => {\n\t\tuseEventListener(document, listenerEvent, (evt) => {\n\t\t\tif (typeof evt.getModifierState === \"function\") state.value = evt.getModifierState(modifier);\n\t\t}, { passive: true });\n\t});\n\treturn state;\n}\n//#endregion\n//#region useLocalStorage/index.ts\n/**\n* Reactive LocalStorage.\n*\n* @see https://vueuse.org/useLocalStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useLocalStorage(key, initialValue, options = {}) {\n\tconst { window = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window === null || window === void 0 ? void 0 : window.localStorage, options);\n}\n//#endregion\n//#region useMagicKeys/aliasMap.ts\nconst DefaultMagicKeysAliasMap = {\n\tctrl: \"control\",\n\tcommand: \"meta\",\n\tcmd: \"meta\",\n\toption: \"alt\",\n\tup: \"arrowup\",\n\tdown: \"arrowdown\",\n\tleft: \"arrowleft\",\n\tright: \"arrowright\"\n};\n//#endregion\n//#region useMagicKeys/index.ts\n/**\n* Reactive keys pressed state, with magical keys combination support.\n*\n* @see https://vueuse.org/useMagicKeys\n*/\nfunction useMagicKeys(options = {}) {\n\tconst { reactive: useReactive = false, target = defaultWindow, aliasMap = DefaultMagicKeysAliasMap, passive = true, onEventFired = noop } = options;\n\tconst current = reactive(/* @__PURE__ */ new Set());\n\tconst obj = {\n\t\ttoJSON() {\n\t\t\treturn {};\n\t\t},\n\t\tcurrent\n\t};\n\tconst refs = useReactive ? reactive(obj) : obj;\n\tconst metaDeps = /* @__PURE__ */ new Set();\n\tconst depsMap = /* @__PURE__ */ new Map([\n\t\t[\"Meta\", metaDeps],\n\t\t[\"Shift\", /* @__PURE__ */ new Set()],\n\t\t[\"Alt\", /* @__PURE__ */ new Set()]\n\t]);\n\tconst usedKeys = /* @__PURE__ */ new Set();\n\tfunction setRefs(key, value) {\n\t\tif (key in refs) if (useReactive) refs[key] = value;\n\t\telse refs[key].value = value;\n\t}\n\tfunction reset() {\n\t\tcurrent.clear();\n\t\tfor (const key of usedKeys) setRefs(key, false);\n\t}\n\tfunction updateDeps(value, e, keys) {\n\t\tif (!value || typeof e.getModifierState !== \"function\") return;\n\t\tfor (const [modifier, depsSet] of depsMap) if (e.getModifierState(modifier)) {\n\t\t\tkeys.forEach((key) => depsSet.add(key));\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction clearDeps(value, key) {\n\t\tif (value) return;\n\t\tconst depsMapKey = `${key[0].toUpperCase()}${key.slice(1)}`;\n\t\tconst deps = depsMap.get(depsMapKey);\n\t\tif (![\"shift\", \"alt\"].includes(key) || !deps) return;\n\t\tconst depsArray = Array.from(deps);\n\t\tconst depsIndex = depsArray.indexOf(key);\n\t\tdepsArray.forEach((key, index) => {\n\t\t\tif (index >= depsIndex) {\n\t\t\t\tcurrent.delete(key);\n\t\t\t\tsetRefs(key, false);\n\t\t\t}\n\t\t});\n\t\tdeps.clear();\n\t}\n\tfunction updateRefs(e, value) {\n\t\tvar _e$key, _e$code;\n\t\tconst key = (_e$key = e.key) === null || _e$key === void 0 ? void 0 : _e$key.toLowerCase();\n\t\tconst values = [(_e$code = e.code) === null || _e$code === void 0 ? void 0 : _e$code.toLowerCase(), key].filter(Boolean);\n\t\tif (!key) return;\n\t\tif (key) if (value) current.add(key);\n\t\telse current.delete(key);\n\t\tfor (const key of values) {\n\t\t\tusedKeys.add(key);\n\t\t\tsetRefs(key, value);\n\t\t}\n\t\tupdateDeps(value, e, [...current, ...values]);\n\t\tclearDeps(value, key);\n\t\tif (key === \"meta\" && !value) {\n\t\t\tmetaDeps.forEach((key) => {\n\t\t\t\tcurrent.delete(key);\n\t\t\t\tsetRefs(key, false);\n\t\t\t});\n\t\t\tmetaDeps.clear();\n\t\t}\n\t}\n\tuseEventListener(target, \"keydown\", (e) => {\n\t\tupdateRefs(e, true);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(target, \"keyup\", (e) => {\n\t\tupdateRefs(e, false);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(\"blur\", reset, { passive });\n\tuseEventListener(\"focus\", reset, { passive });\n\tconst proxy = new Proxy(refs, { get(target, prop, rec) {\n\t\tif (typeof prop !== \"string\") return Reflect.get(target, prop, rec);\n\t\tprop = prop.toLowerCase();\n\t\tif (prop in aliasMap) prop = aliasMap[prop];\n\t\tif (!(prop in refs)) if (/[+_-]/.test(prop)) {\n\t\t\tconst keys = prop.split(/[+_-]/g).map((i) => i.trim());\n\t\t\trefs[prop] = computed(() => keys.map((key) => toValue(proxy[key])).every(Boolean));\n\t\t} else refs[prop] = shallowRef(false);\n\t\tconst r = Reflect.get(target, prop, rec);\n\t\treturn useReactive ? toValue(r) : r;\n\t} });\n\treturn proxy;\n}\n//#endregion\n//#region useMediaControls/index.ts\n/**\n* Automatically check if the ref exists and if it does run the cb fn\n*/\nfunction usingElRef(source, cb) {\n\tif (toValue(source)) cb(toValue(source));\n}\n/**\n* Converts a TimeRange object to an array\n*/\nfunction timeRangeToArray(timeRanges) {\n\tlet ranges = [];\n\tfor (let i = 0; i < timeRanges.length; ++i) ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n\treturn ranges;\n}\n/**\n* Converts a TextTrackList object to an array of `UseMediaTextTrack`\n*/\nfunction tracksToArray(tracks) {\n\treturn Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({\n\t\tid,\n\t\tlabel,\n\t\tkind,\n\t\tlanguage,\n\t\tmode,\n\t\tactiveCues,\n\t\tcues,\n\t\tinBandMetadataTrackDispatchType\n\t}));\n}\nconst defaultOptions = {\n\tsrc: \"\",\n\ttracks: []\n};\nfunction useMediaControls(target, options = {}) {\n\ttarget = toRef(target);\n\toptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\tconst { document = defaultDocument } = options;\n\tconst listenerOptions = { passive: true };\n\tconst currentTime = shallowRef(0);\n\tconst duration = shallowRef(0);\n\tconst seeking = shallowRef(false);\n\tconst volume = shallowRef(1);\n\tconst waiting = shallowRef(false);\n\tconst ended = shallowRef(false);\n\tconst playing = shallowRef(false);\n\tconst rate = shallowRef(1);\n\tconst stalled = shallowRef(false);\n\tconst buffered = shallowRef([]);\n\tconst tracks = shallowRef([]);\n\tconst selectedTrack = shallowRef(-1);\n\tconst isPictureInPicture = shallowRef(false);\n\tconst muted = shallowRef(false);\n\tconst supportsPictureInPicture = Boolean(document && \"pictureInPictureEnabled\" in document);\n\tconst sourceErrorEvent = createEventHook();\n\tconst playbackErrorEvent = createEventHook();\n\t/**\n\t* Disables the specified track. If no track is specified then\n\t* all tracks will be disabled\n\t*\n\t* @param track The id of the track to disable\n\t*/\n\tconst disableTrack = (track) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tif (track) {\n\t\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\t\tel.textTracks[id].mode = \"disabled\";\n\t\t\t} else for (let i = 0; i < el.textTracks.length; ++i) el.textTracks[i].mode = \"disabled\";\n\t\t\tselectedTrack.value = -1;\n\t\t});\n\t};\n\t/**\n\t* Enables the specified track and disables the\n\t* other tracks unless otherwise specified\n\t*\n\t* @param track The track of the id of the track to enable\n\t* @param disableTracks Disable all other tracks\n\t*/\n\tconst enableTrack = (track, disableTracks = true) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\tif (disableTracks) disableTrack();\n\t\t\tel.textTracks[id].mode = \"showing\";\n\t\t\tselectedTrack.value = id;\n\t\t});\n\t};\n\t/**\n\t* Toggle picture in picture mode for the player.\n\t*/\n\tconst togglePictureInPicture = () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tusingElRef(target, async (el) => {\n\t\t\t\tif (supportsPictureInPicture) if (!isPictureInPicture.value) el.requestPictureInPicture().then(resolve).catch(reject);\n\t\t\t\telse document.exitPictureInPicture().then(resolve).catch(reject);\n\t\t\t});\n\t\t});\n\t};\n\t/**\n\t* This will automatically inject sources to the media element. The sources will be\n\t* appended as children to the media element as `` elements.\n\t*/\n\twatchEffect(() => {\n\t\tif (!document) return;\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tconst src = toValue(options.src);\n\t\tlet sources = [];\n\t\tif (!src) return;\n\t\tif (typeof src === \"string\") sources = [{ src }];\n\t\telse if (Array.isArray(src)) sources = src;\n\t\telse if (isObject(src)) sources = [src];\n\t\tel.querySelectorAll(\"source\").forEach((e) => {\n\t\t\te.remove();\n\t\t});\n\t\tsources.forEach(({ src, type, media }) => {\n\t\t\tconst source = document.createElement(\"source\");\n\t\t\tsource.setAttribute(\"src\", src);\n\t\t\tsource.setAttribute(\"type\", type || \"\");\n\t\t\tsource.setAttribute(\"media\", media || \"\");\n\t\t\tuseEventListener(source, \"error\", sourceErrorEvent.trigger, listenerOptions);\n\t\t\tel.appendChild(source);\n\t\t});\n\t\tel.load();\n\t});\n\t/**\n\t* Apply composable state to the element, also when element is changed\n\t*/\n\twatch([target, volume], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.volume = volume.value;\n\t});\n\twatch([target, muted], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.muted = muted.value;\n\t});\n\twatch([target, rate], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.playbackRate = rate.value;\n\t});\n\t/**\n\t* Load Tracks\n\t*/\n\twatchEffect(() => {\n\t\tif (!document) return;\n\t\tconst textTracks = toValue(options.tracks);\n\t\tconst el = toValue(target);\n\t\tif (!textTracks || !textTracks.length || !el) return;\n\t\t/**\n\t\t* The MediaAPI provides an API for adding text tracks, but they don't currently\n\t\t* have an API for removing text tracks, so instead we will just create and remove\n\t\t* the tracks manually using the HTML api.\n\t\t*/\n\t\tel.querySelectorAll(\"track\").forEach((e) => e.remove());\n\t\ttextTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n\t\t\tconst track = document.createElement(\"track\");\n\t\t\ttrack.default = isDefault || false;\n\t\t\ttrack.kind = kind;\n\t\t\ttrack.label = label;\n\t\t\ttrack.src = src;\n\t\t\ttrack.srclang = srcLang;\n\t\t\tif (track.default) selectedTrack.value = i;\n\t\t\tel.appendChild(track);\n\t\t});\n\t});\n\t/**\n\t* This will allow us to update the current time from the timeupdate event\n\t* without setting the medias current position, but if the user changes the\n\t* current time via the ref, then the media will seek.\n\t*\n\t* If we did not use an ignorable watch, then the current time update from\n\t* the timeupdate event would cause the media to stutter.\n\t*/\n\tconst { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.currentTime = time;\n\t});\n\t/**\n\t* Using an ignorable watch so we can control the play state using a ref and not\n\t* a function\n\t*/\n\tconst { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tif (isPlaying) el.play().catch((e) => {\n\t\t\tplaybackErrorEvent.trigger(e);\n\t\t\tthrow e;\n\t\t});\n\t\telse el.pause();\n\t});\n\tuseEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime), listenerOptions);\n\tuseEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration, listenerOptions);\n\tuseEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered), listenerOptions);\n\tuseEventListener(target, \"seeking\", () => seeking.value = true, listenerOptions);\n\tuseEventListener(target, \"seeked\", () => seeking.value = false, listenerOptions);\n\tuseEventListener(target, [\"waiting\", \"loadstart\"], () => {\n\t\twaiting.value = true;\n\t\tignorePlayingUpdates(() => playing.value = false);\n\t}, listenerOptions);\n\tuseEventListener(target, \"loadeddata\", () => waiting.value = false, listenerOptions);\n\tuseEventListener(target, \"playing\", () => {\n\t\twaiting.value = false;\n\t\tended.value = false;\n\t\tignorePlayingUpdates(() => playing.value = true);\n\t}, listenerOptions);\n\tuseEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate, listenerOptions);\n\tuseEventListener(target, \"stalled\", () => stalled.value = true, listenerOptions);\n\tuseEventListener(target, \"ended\", () => ended.value = true, listenerOptions);\n\tuseEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false), listenerOptions);\n\tuseEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true), listenerOptions);\n\tuseEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true, listenerOptions);\n\tuseEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false, listenerOptions);\n\tuseEventListener(target, \"volumechange\", () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tvolume.value = el.volume;\n\t\tmuted.value = el.muted;\n\t}, listenerOptions);\n\t/**\n\t* The following listeners need to listen to a nested\n\t* object on the target, so we will have to use a nested\n\t* watch and manually remove the listeners\n\t*/\n\tconst listeners = [];\n\tconst stop = watch([target], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tstop();\n\t\tlisteners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t});\n\ttryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n\treturn {\n\t\tcurrentTime,\n\t\tduration,\n\t\twaiting,\n\t\tseeking,\n\t\tended,\n\t\tstalled,\n\t\tbuffered,\n\t\tplaying,\n\t\trate,\n\t\tvolume,\n\t\tmuted,\n\t\ttracks,\n\t\tselectedTrack,\n\t\tenableTrack,\n\t\tdisableTrack,\n\t\tsupportsPictureInPicture,\n\t\ttogglePictureInPicture,\n\t\tisPictureInPicture,\n\t\tonSourceError: sourceErrorEvent.on,\n\t\tonPlaybackError: playbackErrorEvent.on\n\t};\n}\n//#endregion\n//#region useMemoize/index.ts\n/**\n* Reactive function result cache based on arguments\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemoize(resolver, options) {\n\tconst initCache = () => {\n\t\tif (options === null || options === void 0 ? void 0 : options.cache) return shallowReactive(options.cache);\n\t\treturn shallowReactive(/* @__PURE__ */ new Map());\n\t};\n\tconst cache = initCache();\n\t/**\n\t* Generate key from args\n\t*/\n\tconst generateKey = (...args) => (options === null || options === void 0 ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n\t/**\n\t* Load data and save in cache\n\t*/\n\tconst _loadData = (key, ...args) => {\n\t\tcache.set(key, resolver(...args));\n\t\treturn cache.get(key);\n\t};\n\tconst loadData = (...args) => _loadData(generateKey(...args), ...args);\n\t/**\n\t* Delete key from cache\n\t*/\n\tconst deleteData = (...args) => {\n\t\tcache.delete(generateKey(...args));\n\t};\n\t/**\n\t* Clear cached data\n\t*/\n\tconst clearData = () => {\n\t\tcache.clear();\n\t};\n\tconst memoized = (...args) => {\n\t\tconst key = generateKey(...args);\n\t\tif (cache.has(key)) return cache.get(key);\n\t\treturn _loadData(key, ...args);\n\t};\n\tmemoized.load = loadData;\n\tmemoized.delete = deleteData;\n\tmemoized.clear = clearData;\n\tmemoized.generateKey = generateKey;\n\tmemoized.cache = cache;\n\treturn memoized;\n}\n//#endregion\n//#region useMemory/index.ts\nfunction getDefaultScheduler$6(options) {\n\tif (\"interval\" in options || \"immediate\" in options || \"immediateCallback\" in options) {\n\t\tconst { interval = 1e3, immediate, immediateCallback } = options;\n\t\treturn (cb) => useIntervalFn(cb, interval, {\n\t\t\timmediate,\n\t\t\timmediateCallback\n\t\t});\n\t}\n\treturn useIntervalFn;\n}\n/**\n* Reactive Memory Info.\n*\n* @see https://vueuse.org/useMemory\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemory(options = {}) {\n\tconst memory = shallowRef();\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n\tif (isSupported.value) {\n\t\tconst { scheduler = getDefaultScheduler$6 } = options;\n\t\tscheduler(() => {\n\t\t\tmemory.value = performance.memory;\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tmemory\n\t};\n}\n//#endregion\n//#region useMouse/index.ts\nconst UseMouseBuiltinExtractors = {\n\tpage: (event) => [event.pageX, event.pageY],\n\tclient: (event) => [event.clientX, event.clientY],\n\tscreen: (event) => [event.screenX, event.screenY],\n\tmovement: (event) => event instanceof MouseEvent ? [event.movementX, event.movementY] : null\n};\n/**\n* Reactive mouse position.\n*\n* @see https://vueuse.org/useMouse\n* @param options\n*/\nfunction useMouse(options = {}) {\n\tconst { type = \"page\", touch = true, resetOnTouchEnds = false, initialValue = {\n\t\tx: 0,\n\t\ty: 0\n\t}, window = defaultWindow, target = window, scroll = true, eventFilter } = options;\n\tlet _prevMouseEvent = null;\n\tlet _prevScrollX = 0;\n\tlet _prevScrollY = 0;\n\tconst x = shallowRef(initialValue.x);\n\tconst y = shallowRef(initialValue.y);\n\tconst sourceType = shallowRef(null);\n\tconst extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n\tconst mouseHandler = (event) => {\n\t\tconst result = extractor(event);\n\t\t_prevMouseEvent = event;\n\t\tif (result) {\n\t\t\t[x.value, y.value] = result;\n\t\t\tsourceType.value = \"mouse\";\n\t\t}\n\t\tif (window) {\n\t\t\t_prevScrollX = window.scrollX;\n\t\t\t_prevScrollY = window.scrollY;\n\t\t}\n\t};\n\tconst touchHandler = (event) => {\n\t\tif (event.touches.length > 0) {\n\t\t\tconst result = extractor(event.touches[0]);\n\t\t\tif (result) {\n\t\t\t\t[x.value, y.value] = result;\n\t\t\t\tsourceType.value = \"touch\";\n\t\t\t}\n\t\t}\n\t};\n\tconst scrollHandler = () => {\n\t\tif (!_prevMouseEvent || !window) return;\n\t\tconst pos = extractor(_prevMouseEvent);\n\t\tif (_prevMouseEvent instanceof MouseEvent && pos) {\n\t\t\tx.value = pos[0] + window.scrollX - _prevScrollX;\n\t\t\ty.value = pos[1] + window.scrollY - _prevScrollY;\n\t\t}\n\t};\n\tconst reset = () => {\n\t\tx.value = initialValue.x;\n\t\ty.value = initialValue.y;\n\t};\n\tconst mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n\tconst touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n\tconst scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n\t\tif (touch && type !== \"movement\") {\n\t\t\tuseEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n\t\t\tif (resetOnTouchEnds) useEventListener(target, \"touchend\", reset, listenerOptions);\n\t\t}\n\t\tif (scroll && type === \"page\") useEventListener(window, \"scroll\", scrollHandlerWrapper, listenerOptions);\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType\n\t};\n}\n//#endregion\n//#region useMouseInElement/index.ts\n/**\n* Reactive mouse position related to an element.\n*\n* @see https://vueuse.org/useMouseInElement\n* @param target\n* @param options\n*/\nfunction useMouseInElement(target, options = {}) {\n\tconst { windowResize = true, windowScroll = true, handleOutside = true, window = defaultWindow } = options;\n\tconst type = options.type || \"page\";\n\tconst { x, y, sourceType } = useMouse(options);\n\tconst targetRef = shallowRef(target !== null && target !== void 0 ? target : window === null || window === void 0 ? void 0 : window.document.body);\n\tconst elementX = shallowRef(0);\n\tconst elementY = shallowRef(0);\n\tconst elementPositionX = shallowRef(0);\n\tconst elementPositionY = shallowRef(0);\n\tconst elementHeight = shallowRef(0);\n\tconst elementWidth = shallowRef(0);\n\tconst isOutside = shallowRef(true);\n\tfunction update() {\n\t\tif (!window) return;\n\t\tconst el = unrefElement(targetRef);\n\t\tif (!el || !(el instanceof Element)) return;\n\t\tfor (const rect of el.getClientRects()) {\n\t\t\tconst { left, top, width, height } = rect;\n\t\t\telementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n\t\t\telementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n\t\t\telementHeight.value = height;\n\t\t\telementWidth.value = width;\n\t\t\tconst elX = x.value - elementPositionX.value;\n\t\t\tconst elY = y.value - elementPositionY.value;\n\t\t\tisOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n\t\t\tif (handleOutside || !isOutside.value) {\n\t\t\t\telementX.value = elX;\n\t\t\t\telementY.value = elY;\n\t\t\t}\n\t\t\tif (!isOutside.value) break;\n\t\t}\n\t}\n\tconst stopFnList = [];\n\tfunction stop() {\n\t\tstopFnList.forEach((fn) => fn());\n\t\tstopFnList.length = 0;\n\t}\n\ttryOnMounted(() => {\n\t\tupdate();\n\t});\n\tif (window) {\n\t\tconst { stop: stopResizeObserver } = useResizeObserver(targetRef, update);\n\t\tconst { stop: stopMutationObserver } = useMutationObserver(targetRef, update, { attributeFilter: [\"style\", \"class\"] });\n\t\tconst stopWatch = watch([\n\t\t\ttargetRef,\n\t\t\tx,\n\t\t\ty\n\t\t], update);\n\t\tstopFnList.push(stopResizeObserver, stopMutationObserver, stopWatch);\n\t\tuseEventListener(document, \"mouseleave\", () => isOutside.value = true, { passive: true });\n\t\tif (windowScroll) stopFnList.push(useEventListener(\"scroll\", update, {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t}));\n\t\tif (windowResize) stopFnList.push(useEventListener(\"resize\", update, { passive: true }));\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType,\n\t\telementX,\n\t\telementY,\n\t\telementPositionX,\n\t\telementPositionY,\n\t\telementHeight,\n\t\telementWidth,\n\t\tisOutside,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useMousePressed/index.ts\n/**\n* Reactive mouse pressing state.\n*\n* @see https://vueuse.org/useMousePressed\n* @param options\n*/\nfunction useMousePressed(options = {}) {\n\tconst { touch = true, drag = true, capture = false, initialValue = false, window = defaultWindow } = options;\n\tconst pressed = shallowRef(initialValue);\n\tconst sourceType = shallowRef(null);\n\tif (!window) return {\n\t\tpressed,\n\t\tsourceType\n\t};\n\tconst onPressed = (srcType) => (event) => {\n\t\tvar _options$onPressed;\n\t\tpressed.value = true;\n\t\tsourceType.value = srcType;\n\t\t(_options$onPressed = options.onPressed) === null || _options$onPressed === void 0 || _options$onPressed.call(options, event);\n\t};\n\tconst onReleased = (event) => {\n\t\tvar _options$onReleased;\n\t\tpressed.value = false;\n\t\tsourceType.value = null;\n\t\t(_options$onReleased = options.onReleased) === null || _options$onReleased === void 0 || _options$onReleased.call(options, event);\n\t};\n\tconst target = computed(() => unrefElement(options.target) || window);\n\tconst listenerOptions = {\n\t\tpassive: true,\n\t\tcapture\n\t};\n\tuseEventListener(target, \"mousedown\", onPressed(\"mouse\"), listenerOptions);\n\tuseEventListener(window, \"mouseleave\", onReleased, listenerOptions);\n\tuseEventListener(window, \"mouseup\", onReleased, listenerOptions);\n\tif (drag) {\n\t\tuseEventListener(target, \"dragstart\", onPressed(\"mouse\"), listenerOptions);\n\t\tuseEventListener(window, \"drop\", onReleased, listenerOptions);\n\t\tuseEventListener(window, \"dragend\", onReleased, listenerOptions);\n\t}\n\tif (touch) {\n\t\tuseEventListener(target, \"touchstart\", onPressed(\"touch\"), listenerOptions);\n\t\tuseEventListener(window, \"touchend\", onReleased, listenerOptions);\n\t\tuseEventListener(window, \"touchcancel\", onReleased, listenerOptions);\n\t}\n\treturn {\n\t\tpressed,\n\t\tsourceType\n\t};\n}\n//#endregion\n//#region useNavigatorLanguage/index.ts\n/**\n*\n* Reactive useNavigatorLanguage\n*\n* Detects the currently selected user language and returns a reactive language\n* @see https://vueuse.org/useNavigatorLanguage\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNavigatorLanguage(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst navigator = window === null || window === void 0 ? void 0 : window.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"language\" in navigator);\n\tconst language = shallowRef(navigator === null || navigator === void 0 ? void 0 : navigator.language);\n\tuseEventListener(window, \"languagechange\", () => {\n\t\tif (navigator) language.value = navigator.language;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tlanguage\n\t};\n}\n//#endregion\n//#region useNetwork/index.ts\n/**\n* Reactive Network status.\n*\n* @see https://vueuse.org/useNetwork\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNetwork(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst navigator = window === null || window === void 0 ? void 0 : window.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"connection\" in navigator);\n\tconst isOnline = shallowRef(true);\n\tconst saveData = shallowRef(false);\n\tconst offlineAt = shallowRef(void 0);\n\tconst onlineAt = shallowRef(void 0);\n\tconst downlink = shallowRef(void 0);\n\tconst downlinkMax = shallowRef(void 0);\n\tconst rtt = shallowRef(void 0);\n\tconst effectiveType = shallowRef(void 0);\n\tconst type = shallowRef(\"unknown\");\n\tconst connection = isSupported.value && navigator.connection;\n\tfunction updateNetworkInformation() {\n\t\tif (!navigator) return;\n\t\tisOnline.value = navigator.onLine;\n\t\tofflineAt.value = isOnline.value ? void 0 : Date.now();\n\t\tonlineAt.value = isOnline.value ? Date.now() : void 0;\n\t\tif (connection) {\n\t\t\tdownlink.value = connection.downlink;\n\t\t\tdownlinkMax.value = connection.downlinkMax;\n\t\t\teffectiveType.value = connection.effectiveType;\n\t\t\trtt.value = connection.rtt;\n\t\t\tsaveData.value = connection.saveData;\n\t\t\ttype.value = connection.type;\n\t\t}\n\t}\n\tconst listenerOptions = { passive: true };\n\tif (window) {\n\t\tuseEventListener(window, \"offline\", () => {\n\t\t\tisOnline.value = false;\n\t\t\tofflineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window, \"online\", () => {\n\t\t\tisOnline.value = true;\n\t\t\tonlineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t}\n\tif (connection) useEventListener(connection, \"change\", updateNetworkInformation, listenerOptions);\n\tupdateNetworkInformation();\n\treturn {\n\t\tisSupported,\n\t\tisOnline: shallowReadonly(isOnline),\n\t\tsaveData: shallowReadonly(saveData),\n\t\tofflineAt: shallowReadonly(offlineAt),\n\t\tonlineAt: shallowReadonly(onlineAt),\n\t\tdownlink: shallowReadonly(downlink),\n\t\tdownlinkMax: shallowReadonly(downlinkMax),\n\t\teffectiveType: shallowReadonly(effectiveType),\n\t\trtt: shallowReadonly(rtt),\n\t\ttype: shallowReadonly(type)\n\t};\n}\n//#endregion\n//#region useNow/index.ts\nfunction getDefaultScheduler$5(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = \"requestAnimationFrame\", immediate = true } = options;\n\t\treturn interval === \"requestAnimationFrame\" ? (fn) => useRafFn(fn, { immediate }) : (fn) => useIntervalFn(fn, interval, options);\n\t}\n\treturn useRafFn;\n}\n/**\n* Reactive current Date instance.\n*\n* @see https://vueuse.org/useNow\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNow(options = {}) {\n\tconst { controls: exposeControls = false, scheduler = getDefaultScheduler$5(options) } = options;\n\tconst now = shallowRef(/* @__PURE__ */ new Date());\n\tconst update = () => now.value = /* @__PURE__ */ new Date();\n\tconst controls = scheduler(update);\n\tif (exposeControls) return {\n\t\tnow,\n\t\t...controls\n\t};\n\telse return now;\n}\n//#endregion\n//#region useObjectUrl/index.ts\n/**\n* Reactive URL representing an object.\n*\n* @see https://vueuse.org/useObjectUrl\n* @param object\n*/\nfunction useObjectUrl(object) {\n\tconst url = shallowRef();\n\tconst release = () => {\n\t\tif (url.value) URL.revokeObjectURL(url.value);\n\t\turl.value = void 0;\n\t};\n\twatch(() => toValue(object), (newObject) => {\n\t\trelease();\n\t\tif (newObject) url.value = URL.createObjectURL(newObject);\n\t}, { immediate: true });\n\ttryOnScopeDispose(release);\n\treturn shallowReadonly(url);\n}\n//#endregion\n//#region ../math/useClamp/index.ts\n/**\n* Reactively clamp a value between two other values.\n*\n* @see https://vueuse.org/useClamp\n* @param value number\n* @param min\n* @param max\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useClamp(value, min, max) {\n\tif (typeof value === \"function\" || isReadonly(value)) return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n\tconst _value = ref(value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn _value.value = clamp(_value.value, toValue(min), toValue(max));\n\t\t},\n\t\tset(value) {\n\t\t\t_value.value = clamp(value, toValue(min), toValue(max));\n\t\t}\n\t});\n}\n//#endregion\n//#region useOffsetPagination/index.ts\nfunction useOffsetPagination(options) {\n\tconst { total = Number.POSITIVE_INFINITY, pageSize = 10, page = 1, onPageChange = noop, onPageSizeChange = noop, onPageCountChange = noop } = options;\n\tconst currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n\tconst pageCount = computed(() => Math.max(1, Math.ceil(toValue(total) / toValue(currentPageSize))));\n\tconst currentPage = useClamp(page, 1, pageCount);\n\tconst isFirstPage = computed(() => currentPage.value === 1);\n\tconst isLastPage = computed(() => currentPage.value === pageCount.value);\n\tif (isRef(page)) syncRef(page, currentPage, { direction: isReadonly(page) ? \"ltr\" : \"both\" });\n\tif (isRef(pageSize)) syncRef(pageSize, currentPageSize, { direction: isReadonly(pageSize) ? \"ltr\" : \"both\" });\n\tfunction prev() {\n\t\tcurrentPage.value--;\n\t}\n\tfunction next() {\n\t\tcurrentPage.value++;\n\t}\n\tconst returnValue = {\n\t\tcurrentPage,\n\t\tcurrentPageSize,\n\t\tpageCount,\n\t\tisFirstPage,\n\t\tisLastPage,\n\t\tprev,\n\t\tnext\n\t};\n\twatch(currentPage, () => {\n\t\tonPageChange(reactive(returnValue));\n\t});\n\twatch(currentPageSize, () => {\n\t\tonPageSizeChange(reactive(returnValue));\n\t});\n\twatch(pageCount, () => {\n\t\tonPageCountChange(reactive(returnValue));\n\t});\n\treturn returnValue;\n}\n//#endregion\n//#region useOnline/index.ts\n/**\n* Reactive online state.\n*\n* @see https://vueuse.org/useOnline\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useOnline(options = {}) {\n\tconst { isOnline } = useNetwork(options);\n\treturn isOnline;\n}\n//#endregion\n//#region usePageLeave/index.ts\n/**\n* Reactive state to show whether mouse leaves the page.\n*\n* @see https://vueuse.org/usePageLeave\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePageLeave(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isLeft = shallowRef(false);\n\tconst handler = (event) => {\n\t\tif (!window) return;\n\t\tevent = event || window.event;\n\t\tconst from = event.relatedTarget || event.toElement;\n\t\tisLeft.value = !from;\n\t};\n\tif (window) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window, \"mouseout\", handler, listenerOptions);\n\t\tuseEventListener(window.document, \"mouseleave\", handler, listenerOptions);\n\t\tuseEventListener(window.document, \"mouseenter\", handler, listenerOptions);\n\t}\n\treturn isLeft;\n}\n//#endregion\n//#region useScreenOrientation/index.ts\n/**\n* Reactive screen orientation\n*\n* @see https://vueuse.org/useScreenOrientation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useScreenOrientation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n\tconst screenOrientation = isSupported.value ? window.screen.orientation : {};\n\tconst orientation = shallowRef(screenOrientation.type);\n\tconst angle = shallowRef(screenOrientation.angle || 0);\n\tif (isSupported.value) useEventListener(window, \"orientationchange\", () => {\n\t\torientation.value = screenOrientation.type;\n\t\tangle.value = screenOrientation.angle;\n\t}, { passive: true });\n\tconst lockOrientation = (type) => {\n\t\tif (isSupported.value && typeof screenOrientation.lock === \"function\") return screenOrientation.lock(type);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Not supported\"));\n\t};\n\tconst unlockOrientation = () => {\n\t\tif (isSupported.value && typeof screenOrientation.unlock === \"function\") screenOrientation.unlock();\n\t};\n\treturn {\n\t\tisSupported,\n\t\torientation,\n\t\tangle,\n\t\tlockOrientation,\n\t\tunlockOrientation\n\t};\n}\n//#endregion\n//#region useParallax/index.ts\n/**\n* Create parallax effect easily. It uses `useDeviceOrientation` and fallback to `useMouse`\n* if orientation is not supported.\n*\n* @param target\n* @param options\n*/\nfunction useParallax(target, options = {}) {\n\tconst { deviceOrientationTiltAdjust = (i) => i, deviceOrientationRollAdjust = (i) => i, mouseTiltAdjust = (i) => i, mouseRollAdjust = (i) => i, window = defaultWindow } = options;\n\tconst orientation = reactive(useDeviceOrientation({ window }));\n\tconst screenOrientation = reactive(useScreenOrientation({ window }));\n\tconst { elementX: x, elementY: y, elementWidth: width, elementHeight: height } = useMouseInElement(target, {\n\t\thandleOutside: false,\n\t\twindow\n\t});\n\tconst source = computed(() => {\n\t\tif (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) return \"deviceOrientation\";\n\t\treturn \"mouse\";\n\t});\n\treturn {\n\t\troll: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = -orientation.beta / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationRollAdjust(value);\n\t\t\t} else {\n\t\t\t\tconst value = -(y.value - height.value / 2) / height.value;\n\t\t\t\treturn mouseRollAdjust(value);\n\t\t\t}\n\t\t}),\n\t\ttilt: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = orientation.gamma / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationTiltAdjust(value);\n\t\t\t} else {\n\t\t\t\tconst value = (x.value - width.value / 2) / width.value;\n\t\t\t\treturn mouseTiltAdjust(value);\n\t\t\t}\n\t\t}),\n\t\tsource\n\t};\n}\n//#endregion\n//#region useParentElement/index.ts\nfunction useParentElement(element = useCurrentElement()) {\n\tconst parentElement = shallowRef();\n\tconst update = () => {\n\t\tconst el = unrefElement(element);\n\t\tif (el) parentElement.value = el.parentElement;\n\t};\n\ttryOnMounted(update);\n\twatch(() => toValue(element), update);\n\treturn parentElement;\n}\n//#endregion\n//#region usePerformanceObserver/index.ts\n/**\n* Observe performance metrics.\n*\n* @see https://vueuse.org/usePerformanceObserver\n* @param options\n*/\nfunction usePerformanceObserver(options, callback) {\n\tconst { window = defaultWindow, immediate = true, ...performanceOptions } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"PerformanceObserver\" in window);\n\tlet observer;\n\tconst stop = () => {\n\t\tobserver === null || observer === void 0 || observer.disconnect();\n\t};\n\tconst start = () => {\n\t\tif (isSupported.value) {\n\t\t\tstop();\n\t\t\tobserver = new PerformanceObserver(callback);\n\t\t\tobserver.observe(performanceOptions);\n\t\t}\n\t};\n\ttryOnScopeDispose(stop);\n\tif (immediate) start();\n\treturn {\n\t\tisSupported,\n\t\tstart,\n\t\tstop\n\t};\n}\n//#endregion\n//#region usePointer/index.ts\nconst defaultState = {\n\tx: 0,\n\ty: 0,\n\tpointerId: 0,\n\tpressure: 0,\n\ttiltX: 0,\n\ttiltY: 0,\n\twidth: 0,\n\theight: 0,\n\ttwist: 0,\n\tpointerType: null\n};\nconst keys = /* #__PURE__ */ Object.keys(defaultState);\n/**\n* Reactive pointer state.\n*\n* @see https://vueuse.org/usePointer\n* @param options\n*/\nfunction usePointer(options = {}) {\n\tconst { target = defaultWindow } = options;\n\tconst isInside = shallowRef(false);\n\tconst state = shallowRef(options.initialValue || {});\n\tObject.assign(state.value, defaultState, state.value);\n\tconst handler = (event) => {\n\t\tisInside.value = true;\n\t\tif (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) return;\n\t\tstate.value = objectPick(event, keys, false);\n\t};\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\n\t\t\t\"pointerdown\",\n\t\t\t\"pointermove\",\n\t\t\t\"pointerup\"\n\t\t], handler, listenerOptions);\n\t\tuseEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n\t}\n\treturn {\n\t\t...toRefs(state),\n\t\tisInside\n\t};\n}\n//#endregion\n//#region usePointerLock/index.ts\n/**\n* Reactive pointer lock.\n*\n* @see https://vueuse.org/usePointerLock\n* @param target\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePointerLock(target, options = {}) {\n\tconst { document = defaultDocument } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => document && \"pointerLockElement\" in document);\n\tconst element = shallowRef();\n\tconst triggerElement = shallowRef();\n\tlet targetElement;\n\tif (isSupported.value) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(document, \"pointerlockchange\", () => {\n\t\t\tvar _pointerLockElement;\n\t\t\tconst currentElement = (_pointerLockElement = document.pointerLockElement) !== null && _pointerLockElement !== void 0 ? _pointerLockElement : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\telement.value = document.pointerLockElement;\n\t\t\t\tif (!element.value) targetElement = triggerElement.value = null;\n\t\t\t}\n\t\t}, listenerOptions);\n\t\tuseEventListener(document, \"pointerlockerror\", () => {\n\t\t\tvar _pointerLockElement2;\n\t\t\tconst currentElement = (_pointerLockElement2 = document.pointerLockElement) !== null && _pointerLockElement2 !== void 0 ? _pointerLockElement2 : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\tconst action = document.pointerLockElement ? \"release\" : \"acquire\";\n\t\t\t\tthrow new Error(`Failed to ${action} pointer lock.`);\n\t\t\t}\n\t\t}, listenerOptions);\n\t}\n\tasync function lock(e) {\n\t\tvar _unrefElement;\n\t\tif (!isSupported.value) throw new Error(\"Pointer Lock API is not supported by your browser.\");\n\t\ttriggerElement.value = e instanceof Event ? e.currentTarget : null;\n\t\ttargetElement = e instanceof Event ? (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : triggerElement.value : unrefElement(e);\n\t\tif (!targetElement) throw new Error(\"Target element undefined.\");\n\t\ttargetElement.requestPointerLock();\n\t\treturn await until(element).toBe(targetElement);\n\t}\n\tasync function unlock() {\n\t\tif (!element.value) return false;\n\t\tdocument.exitPointerLock();\n\t\tawait until(element).toBeNull();\n\t\treturn true;\n\t}\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\ttriggerElement,\n\t\tlock,\n\t\tunlock\n\t};\n}\n//#endregion\n//#region usePointerSwipe/index.ts\n/**\n* Reactive swipe detection based on PointerEvents.\n*\n* @see https://vueuse.org/usePointerSwipe\n* @param target\n* @param options\n*/\nfunction usePointerSwipe(target, options = {}) {\n\tconst targetRef = toRef(target);\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, disableTextSelect = false } = options;\n\tconst posStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosStart = (x, y) => {\n\t\tposStart.x = x;\n\t\tposStart.y = y;\n\t};\n\tconst posEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosEnd = (x, y) => {\n\t\tposEnd.x = x;\n\t\tposEnd.y = y;\n\t};\n\tconst distanceX = computed(() => posStart.x - posEnd.x);\n\tconst distanceY = computed(() => posStart.y - posEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst isPointerDown = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(distanceX.value) > abs(distanceY.value)) return distanceX.value > 0 ? \"left\" : \"right\";\n\t\telse return distanceY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst eventIsAllowed = (e) => {\n\t\tvar _ref, _options$pointerTypes, _options$pointerTypes2;\n\t\tconst isReleasingButton = e.buttons === 0;\n\t\tconst isPrimaryButton = e.buttons === 1;\n\t\treturn (_ref = (_options$pointerTypes = (_options$pointerTypes2 = options.pointerTypes) === null || _options$pointerTypes2 === void 0 ? void 0 : _options$pointerTypes2.includes(e.pointerType)) !== null && _options$pointerTypes !== void 0 ? _options$pointerTypes : isReleasingButton || isPrimaryButton) !== null && _ref !== void 0 ? _ref : true;\n\t};\n\tconst listenerOptions = { passive: true };\n\tconst stops = [\n\t\tuseEventListener(target, \"pointerdown\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tisPointerDown.value = true;\n\t\t\tconst eventTarget = e.target;\n\t\t\teventTarget === null || eventTarget === void 0 || eventTarget.setPointerCapture(e.pointerId);\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosStart(x, y);\n\t\t\tupdatePosEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointermove\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (!isPointerDown.value) return;\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosEnd(x, y);\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, [\"pointerup\", \"pointercancel\"], (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\t\tisPointerDown.value = false;\n\t\t\tisSwiping.value = false;\n\t\t}, listenerOptions)\n\t];\n\ttryOnMounted(() => {\n\t\tvar _targetRef$value;\n\t\t(_targetRef$value = targetRef.value) === null || _targetRef$value === void 0 || (_targetRef$value = _targetRef$value.style) === null || _targetRef$value === void 0 || _targetRef$value.setProperty(\"touch-action\", \"pan-y\");\n\t\tif (disableTextSelect) {\n\t\t\tvar _targetRef$value2, _targetRef$value3, _targetRef$value4;\n\t\t\t(_targetRef$value2 = targetRef.value) === null || _targetRef$value2 === void 0 || (_targetRef$value2 = _targetRef$value2.style) === null || _targetRef$value2 === void 0 || _targetRef$value2.setProperty(\"-webkit-user-select\", \"none\");\n\t\t\t(_targetRef$value3 = targetRef.value) === null || _targetRef$value3 === void 0 || (_targetRef$value3 = _targetRef$value3.style) === null || _targetRef$value3 === void 0 || _targetRef$value3.setProperty(\"-ms-user-select\", \"none\");\n\t\t\t(_targetRef$value4 = targetRef.value) === null || _targetRef$value4 === void 0 || (_targetRef$value4 = _targetRef$value4.style) === null || _targetRef$value4 === void 0 || _targetRef$value4.setProperty(\"user-select\", \"none\");\n\t\t}\n\t});\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping: shallowReadonly(isSwiping),\n\t\tdirection: shallowReadonly(direction),\n\t\tposStart: readonly(posStart),\n\t\tposEnd: readonly(posEnd),\n\t\tdistanceX,\n\t\tdistanceY,\n\t\tstop\n\t};\n}\n//#endregion\n//#region usePreferredColorScheme/index.ts\n/**\n* Reactive prefers-color-scheme media query.\n*\n* @see https://vueuse.org/usePreferredColorScheme\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredColorScheme(options) {\n\tconst isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n\tconst isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n\treturn computed(() => {\n\t\tif (isDark.value) return \"dark\";\n\t\tif (isLight.value) return \"light\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredContrast/index.ts\n/**\n* Reactive prefers-contrast media query.\n*\n* @see https://vueuse.org/usePreferredContrast\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredContrast(options) {\n\tconst isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n\tconst isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n\tconst isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n\treturn computed(() => {\n\t\tif (isMore.value) return \"more\";\n\t\tif (isLess.value) return \"less\";\n\t\tif (isCustom.value) return \"custom\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredLanguages/index.ts\n/**\n* Reactive Navigator Languages.\n*\n* @see https://vueuse.org/usePreferredLanguages\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredLanguages(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tif (!window) return shallowRef([\"en\"]);\n\tconst navigator = window.navigator;\n\tconst value = shallowRef(navigator.languages);\n\tuseEventListener(window, \"languagechange\", () => {\n\t\tvalue.value = navigator.languages;\n\t}, { passive: true });\n\treturn value;\n}\n//#endregion\n//#region usePreferredReducedMotion/index.ts\n/**\n* Reactive prefers-reduced-motion media query.\n*\n* @see https://vueuse.org/usePreferredReducedMotion\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedMotion(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredReducedTransparency/index.ts\n/**\n* Reactive prefers-reduced-transparency media query.\n*\n* @see https://vueuse.org/usePreferredReducedTransparency\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedTransparency(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-transparency: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePrevious/index.ts\nfunction usePrevious(value, initialValue) {\n\tconst previous = shallowRef(initialValue);\n\twatch(toRef(value), (_, oldValue) => {\n\t\tprevious.value = oldValue;\n\t}, { flush: \"sync\" });\n\treturn readonly(previous);\n}\n//#endregion\n//#region useScreenSafeArea/index.ts\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\n/**\n* Reactive `env(safe-area-inset-*)`\n*\n* @see https://vueuse.org/useScreenSafeArea\n*/\nfunction useScreenSafeArea() {\n\tconst top = shallowRef(\"\");\n\tconst right = shallowRef(\"\");\n\tconst bottom = shallowRef(\"\");\n\tconst left = shallowRef(\"\");\n\tif (isClient) {\n\t\tconst topCssVar = useCssVar(topVarName);\n\t\tconst rightCssVar = useCssVar(rightVarName);\n\t\tconst bottomCssVar = useCssVar(bottomVarName);\n\t\tconst leftCssVar = useCssVar(leftVarName);\n\t\ttopCssVar.value = \"env(safe-area-inset-top, 0px)\";\n\t\trightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n\t\tbottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n\t\tleftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n\t\ttryOnMounted(update);\n\t\tuseEventListener(\"resize\", useDebounceFn(update), { passive: true });\n\t}\n\tfunction update() {\n\t\ttop.value = getValue(topVarName);\n\t\tright.value = getValue(rightVarName);\n\t\tbottom.value = getValue(bottomVarName);\n\t\tleft.value = getValue(leftVarName);\n\t}\n\treturn {\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\tleft,\n\t\tupdate\n\t};\n}\nfunction getValue(position) {\n\treturn getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n//#endregion\n//#region useScriptTag/index.ts\n/**\n* Async script tag loading.\n*\n* @see https://vueuse.org/useScriptTag\n* @param src\n* @param onLoaded\n* @param options\n*/\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n\tconst { immediate = true, manual = false, type = \"text/javascript\", async = true, crossOrigin, referrerPolicy, noModule, defer, document = defaultDocument, attrs = {}, nonce = void 0 } = options;\n\tconst scriptTag = shallowRef(null);\n\tlet _promise = null;\n\t/**\n\t* Load the script specified via `src`.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the \n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Formats a size in megabytes to a human-readable string.\n *\n * @param mb size in megabytes\n */\nexport function formatMegabytes(mb: number): string {\n\tif (!Number.isFinite(mb) || mb < 0) {\n\t\treturn t('serverinfo', 'Unknown')\n\t}\n\n\tconst units = ['MB', 'GB', 'TB', 'PB', 'EB']\n\tlet value = mb\n\tlet i = 0\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024\n\t\ti++\n\t}\n\treturn value.toFixed(2) + ' ' + units[i]\n}\n\n/**\n * Adds alpha to a CSS color string (handles #RRGGBB and rgb()).\n *\n * @param color base colour as #RRGGBB or rgb(...)\n * @param alpha opacity between 0 and 1\n */\nexport function withAlpha(color: string, alpha: number): string {\n\tif (color.startsWith('#') && color.length === 7) {\n\t\tconst r = parseInt(color.slice(1, 3), 16)\n\t\tconst g = parseInt(color.slice(3, 5), 16)\n\t\tconst b = parseInt(color.slice(5, 7), 16)\n\t\treturn `rgba(${r}, ${g}, ${b}, ${alpha})`\n\t}\n\tif (color.startsWith('rgb(')) {\n\t\treturn color.replace('rgb(', 'rgba(').replace(')', `, ${alpha})`)\n\t}\n\treturn color\n}\n\n/**\n * Formats a size in bytes to a human-readable string.\n *\n * @param bytes size in bytes\n */\nexport function formatBytes(bytes: number): string {\n\t// The API reports \"could not be determined\" as -1. Taking the absolute value\n\t// used to render that as a confident \"1.0 B\".\n\tif (!Number.isFinite(bytes) || bytes < 0) {\n\t\t// TRANSLATORS: Shown in place of a size the server could not determine\n\t\treturn t('serverinfo', 'Unknown')\n\t}\n\n\tconst units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']\n\tlet value = bytes\n\tlet i = 0\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024\n\t\ti++\n\t}\n\treturn value.toFixed(1) + ' ' + units[i]\n}\n\n/**\n * Reads a themed colour from the active theme's CSS custom properties, so that\n * canvas drawing (which cannot resolve `var(...)` itself) follows light/dark\n * mode and custom themes.\n *\n * @param name custom property name, including the leading dashes\n * @param fallback colour to use when the property is not set\n */\nexport function cssColor(name: string, fallback: string): string {\n\treturn getComputedStyle(document.documentElement)\n\t\t.getPropertyValue(name)\n\t\t.trim() || fallback\n}\n\n/**\n * The themed primary accent colour.\n */\nexport function primaryColor(): string {\n\treturn cssColor('--color-primary-element', '#3681c3')\n}\n\n/**\n * Shortens a job class for a table column: for an `OCA\\` job the second segment\n * is the app id, so `OCA\\Talk\\BackgroundJob\\RemoveEmptyRooms` becomes\n * \"Talk RemoveEmptyRooms\".\n *\n * @param className fully qualified class name\n */\nexport function jobName(className: string): string {\n\tconst parts = className.split('\\\\')\n\tconst name = parts.pop() ?? className\n\treturn parts[0] === 'OCA' && parts[1] ? `${parts[1]} ${name}` : name\n}\n\n/**\n * @param duration run time in milliseconds, null when the job reported none\n */\nexport function formatDuration(duration: number | null): string {\n\tif (duration === null) {\n\t\treturn '–'\n\t}\n\tif (duration < 1000) {\n\t\t// TRANSLATORS: {duration} is a number of milliseconds, e.g. \"412 ms\"\n\t\treturn t('serverinfo', '{duration} ms', { duration })\n\t}\n\t// TRANSLATORS: {duration} is a number of seconds with one decimal, e.g. \"1.4 s\"\n\treturn t('serverinfo', '{duration} s', { duration: (duration / 1000).toFixed(1) })\n}\n\n/**\n * @param memoryPeak peak memory in kilobytes, base 10 as the job runner reports it\n */\nexport function formatKilobytes(memoryPeak: number | null): string {\n\treturn memoryPeak === null ? '–' : formatBytes(memoryPeak * 1000)\n}\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n","\n\n\n\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Walk the prototype chain (excluding the shared Object.prototype) looking for\n * an own `prop`. This distinguishes genuine own/inherited members — including\n * class accessors and template prototypes — from members injected via\n * Object.prototype pollution (e.g. `Object.prototype.username = '...'`), which\n * live on Object.prototype itself and are therefore never matched.\n *\n * @param {*} thing The value whose chain to inspect\n * @param {string|symbol} prop The property key to look for\n *\n * @returns {boolean} True when `prop` is owned below Object.prototype\n */\nconst hasOwnInPrototypeChain = (thing, prop) => {\n let obj = thing;\n const seen = [];\n\n while (obj != null && obj !== Object.prototype) {\n if (seen.indexOf(obj) !== -1) {\n return false;\n }\n seen.push(obj);\n\n if (hasOwnProperty(obj, prop)) {\n return true;\n }\n obj = getPrototypeOf(obj);\n }\n return false;\n};\n\n/**\n * Read `obj[prop]` only when it is safe from Object.prototype pollution. Own\n * properties and members inherited from a non-Object.prototype source (a class\n * instance or template object) are honored; a value reachable only through a\n * polluted Object.prototype is ignored and `undefined` is returned.\n *\n * @param {*} obj The source object\n * @param {string|symbol} prop The property key to read\n *\n * @returns {*} The resolved value, or undefined when unsafe/absent\n */\nconst getSafeProp = (obj, prop) =>\n obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : undefined;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (!isObject(val)) {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n getPrototypeOf(prototype) === null) &&\n // Treat any genuine (non-Object.prototype-polluted) Symbol.toStringTag or\n // Symbol.iterator as evidence the value is a tagged/iterable type rather\n // than a plain object, while ignoring keys injected onto Object.prototype.\n !hasOwnInPrototypeChain(val, toStringTag) &&\n !hasOwnInPrototypeChain(val, iterator)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n // findKey lowercases the key, so caseless lookup only applies to strings —\n // symbol keys are identity-matched.\n const targetKey = (caseless && typeof key === 'string' && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n const source = objs[i];\n if (!source || isBuffer(source)) {\n continue;\n }\n\n forEach(source, assignValue);\n\n if (typeof source !== 'object' || isArray(source)) {\n continue;\n }\n\n const symbols = Object.getOwnPropertySymbols(source);\n for (let j = 0; j < symbols.length; j++) {\n const symbol = symbols[j];\n if (propertyIsEnumerable.call(source, symbol)) {\n assignValue(source[symbol], symbol);\n }\n }\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\nconst { propertyIsEnumerable } = Object.prototype;\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n/**\n * Determine if a value is iterable via an iterator that is NOT sourced solely\n * from a polluted Object.prototype. Use this instead of `isIterable` whenever\n * the iterable comes from untrusted input (e.g. user-supplied header sources),\n * so `Object.prototype[Symbol.iterator] = ...` cannot turn an ordinary object\n * into an attacker-controlled entries iterator.\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value has a non-polluted iterator\n */\nconst isSafeIterable = (thing) =>\n thing != null && hasOwnInPrototypeChain(thing, iterator) && isIterable(thing);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n hasOwnInPrototypeChain,\n getSafeProp,\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n isSafeIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n return;\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isSafeIterable(header)) {\n let obj = Object.create(null),\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw new TypeError('Object iterator must return a key-value pair');\n }\n\n key = entry[0];\n\n if (utils.hasOwnProp(obj, key)) {\n dest = obj[key];\n obj[key] = utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]];\n } else {\n obj[key] = entry[1];\n }\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n // Match native `Error` `cause` semantics: non-enumerable. The wrapped\n // error often carries circular internals (sockets, requests, agents), so\n // an enumerable `cause` makes structured loggers (pino/winston) and any\n // own-property walk throw \"Converting circular structure to JSON\".\n // Regression from #6982; see #7205. `__proto__: null` mirrors the\n // `message` descriptor below (prototype-pollution-safe descriptor).\n Object.defineProperty(axiosError, 'cause', {\n __proto__: null,\n value: error,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n// Default nesting limit shared with the inverse transform (formDataToJSON) so\n// the FormData <-> JSON round-trip stays symmetric.\nexport const DEFAULT_FORM_DATA_MAX_DEPTH = 100;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? DEFAULT_FORM_DATA_MAX_DEPTH : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n const stack = [];\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n if (useBlob && typeof _Blob === 'function') {\n return new _Blob([value]);\n }\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(value);\n }\n throw new AxiosError('Blob is not supported. Use a Buffer instead.', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return value;\n }\n\n function throwIfMaxDepthExceeded(depth) {\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n }\n\n function stringifyWithDepthLimit(value, depth) {\n if (maxDepth === Infinity) {\n return JSON.stringify(value);\n }\n\n const ancestors = [];\n\n return JSON.stringify(value, function limitDepth(_key, currentValue) {\n if (!utils.isObject(currentValue)) {\n return currentValue;\n }\n\n while (ancestors.length && ancestors[ancestors.length - 1] !== this) {\n ancestors.pop();\n }\n\n ancestors.push(currentValue);\n throwIfMaxDepthExceeded(depth + ancestors.length - 1);\n\n return currentValue;\n });\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = stringifyWithDepthLimit(value, 1);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n throwIfMaxDepthExceeded(depth);\n\n if (stack.indexOf(value) !== -1) {\n throw new Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? (value) => encoder.call(this, value, encode)\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from './AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n url = url || '';\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n // Read serializer options pollution-safely: own properties and methods on a\n // class/template prototype are honored, but values injected onto a polluted\n // Object.prototype are ignored.\n const _encode = utils.getSafeProp(_options, 'encode') || encode;\n const serializeFn = utils.getSafeProp(_options, 'serialize');\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n advertiseZstdAcceptEncoding: false,\n validateStatusUndefinedResolves: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport { DEFAULT_FORM_DATA_MAX_DEPTH } from './toFormData.js';\n\nconst MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH;\n\nfunction throwIfDepthExceeded(index) {\n if (index > MAX_DEPTH) {\n throw new AxiosError(\n 'FormData field is too deeply nested (' + index + ' levels). Max depth: ' + MAX_DEPTH,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n const path = [];\n const pattern = /\\w+|\\[(\\w*)]/g;\n let match;\n\n while ((match = pattern.exec(name)) !== null) {\n throwIfDepthExceeded(path.length);\n path.push(match[0] === '[]' ? '' : match[1] || match[0]);\n }\n\n return path;\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n throwIfDepthExceeded(index);\n\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || typeof e.loaded !== 'number') {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n try {\n return decodeURIComponent(cookie.slice(eq + 1));\n } catch (e) {\n return cookie.slice(eq + 1);\n }\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\nconst malformedHttpProtocol = /^https?:(?!\\/\\/)/i;\nconst httpProtocolControlCharacters = /[\\t\\n\\r]/g;\n\nfunction stripLeadingC0ControlOrSpace(url) {\n let i = 0;\n while (i < url.length && url.charCodeAt(i) <= 0x20) {\n i++;\n }\n return url.slice(i);\n}\n\nfunction normalizeURLForProtocolCheck(url) {\n return stripLeadingC0ControlOrSpace(url).replace(httpProtocolControlCharacters, '');\n}\n\nfunction assertValidHttpProtocolURL(url, config) {\n if (typeof url === 'string' && malformedHttpProtocol.test(normalizeURLForProtocolCheck(url))) {\n throw new AxiosError(\n 'Invalid URL: missing \"//\" after protocol',\n AxiosError.ERR_INVALID_URL,\n config\n );\n }\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls, config) {\n assertValidHttpProtocolURL(requestedURL, config);\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n assertValidHttpProtocolURL(baseURL, config);\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config1 = config1 || {};\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n function getMergedTransitionalOption(prop) {\n const transitional2 = utils.hasOwnProp(config2, 'transitional') ? config2.transitional : undefined;\n\n if (!utils.isUndefined(transitional2)) {\n if (utils.isPlainObject(transitional2)) {\n if (utils.hasOwnProp(transitional2, prop)) {\n return transitional2[prop];\n }\n } else {\n return undefined;\n }\n }\n\n const transitional1 = utils.hasOwnProp(config1, 'transitional') ? config1.transitional : undefined;\n\n if (utils.isPlainObject(transitional1) && utils.hasOwnProp(transitional1, prop)) {\n return transitional1[prop];\n }\n\n return undefined;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n if (\n utils.hasOwnProp(config2, 'validateStatus') &&\n utils.isUndefined(config2.validateStatus) &&\n getMergedTransitionalOption('validateStatusUndefinedResolves') === false\n ) {\n if (utils.hasOwnProp(config1, 'validateStatus')) {\n config.validateStatus = getMergedValue(undefined, config1.validateStatus);\n } else {\n delete config.validateStatus;\n }\n }\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders || {}).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nfunction resolveConfig(config) {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls, newConfig),\n own('params'),\n own('paramsSerializer')\n );\n\n // HTTP basic authentication\n if (auth) {\n const username = utils.getSafeProp(auth, 'username') || '';\n const password = utils.getSafeProp(auth, 'password') || '';\n\n try {\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(username + ':' + (password ? encodeUTF8(password) : ''))\n );\n } catch (e) {\n throw AxiosError.from(e, AxiosError.ERR_BAD_OPTION_VALUE, config);\n }\n }\n\n if (utils.isFormData(data)) {\n if (\n platform.hasStandardBrowserEnv ||\n platform.hasStandardBrowserWebWorkerEnv ||\n utils.isReactNative(data)\n ) {\n headers.setContentType(undefined); // browser/web worker/RN handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\nexport default resolveConfig;\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n done();\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort, { once: true }));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: compute the exact percent-decoded UTF-8 byte length.\n *\n * @param {string} url\n * @returns {number}\n */\nconst isHexDigit = (charCode) =>\n (charCode >= 48 && charCode <= 57) ||\n (charCode >= 65 && charCode <= 70) ||\n (charCode >= 97 && charCode <= 102);\n\nconst isPercentEncodedByte = (str, i, len) =>\n i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));\n\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex = isHexDigit(a) && isHexDigit(b);\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Valid %XX triplets count as one decoded byte; this matches the bytes that\n // decodeURIComponent(body) would produce before Buffer re-encodes the string.\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {\n bytes += 1;\n i += 2;\n } else if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","export const VERSION = \"1.18.1\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\n// Node's WHATWG URL parser returns `username` and `password` percent-encoded.\n// Decode before composing the `auth` option so credentials such as\n// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the\n// original value for malformed input so a bad encoding never throws.\nconst decodeURIComponentSafe = (value) => {\n if (!utils.isString(value)) {\n return value;\n }\n\n try {\n return decodeURIComponent(value);\n } catch (error) {\n return value;\n }\n};\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst maybeWithAuthCredentials = (url) => {\n const protocolIndex = url.indexOf('://');\n let urlToCheck = url;\n if (protocolIndex !== -1) {\n urlToCheck = urlToCheck.slice(protocolIndex + 3);\n }\n return urlToCheck.includes('@') || urlToCheck.includes(':');\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null\n ? utils.global\n : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n // AxiosError we raise while the request body is being streamed. Captured\n // by identity so the catch block can surface it directly, regardless of\n // how the runtime wraps the resulting fetch rejection (undici exposes it\n // as `err.cause`; some browsers drop the original error entirely).\n let pendingBodyError = null;\n\n const maxBodyLengthError = () =>\n new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n\n try {\n // HTTP basic authentication\n let auth = undefined;\n const configAuth = own('auth');\n\n if (configAuth) {\n const username = utils.getSafeProp(configAuth, 'username') || '';\n const password = utils.getSafeProp(configAuth, 'password') || '';\n auth = {\n username,\n password\n };\n }\n\n if (maybeWithAuthCredentials(url)) {\n const parsedURL = new URL(url, platform.origin);\n\n if (!auth && (parsedURL.username || parsedURL.password)) {\n const urlUsername = decodeURIComponentSafe(parsedURL.username);\n const urlPassword = decodeURIComponentSafe(parsedURL.password);\n auth = {\n username: urlUsername,\n password: urlPassword\n };\n }\n\n if (parsedURL.username || parsedURL.password) {\n parsedURL.username = '';\n parsedURL.password = '';\n url = parsedURL.href;\n }\n }\n\n if (auth) {\n headers.delete('authorization');\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(encodeUTF8((auth.username || '') + ':' + (auth.password || '')))\n );\n }\n\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against known-size bodies before dispatch using\n // the body's *actual* size — never a caller-declared Content-Length,\n // which could under-report to slip an oversized body past the check.\n // Unknown-size streams return undefined here and are counted per-chunk\n // below as fetch consumes them.\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await getBodyLength(data);\n if (typeof outboundLength === 'number' && isFinite(outboundLength)) {\n requestContentLength = outboundLength;\n if (outboundLength > maxBodyLength) {\n throw maxBodyLengthError();\n }\n }\n }\n\n // A streamed body under maxBodyLength must be counted as fetch consumes\n // it; its size is never trusted from a caller-declared Content-Length.\n const mustEnforceStreamBody =\n hasMaxBodyLength && (utils.isReadableStream(data) || utils.isStream(data));\n\n const trackRequestStream = (stream, onProgress, flush) =>\n trackStream(\n stream,\n DEFAULT_CHUNK_SIZE,\n (loadedBytes) => {\n if (hasMaxBodyLength && loadedBytes > maxBodyLength) {\n throw (pendingBodyError = maxBodyLengthError());\n }\n onProgress && onProgress(loadedBytes);\n },\n flush\n );\n\n if (\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (onUploadProgress || mustEnforceStreamBody)\n ) {\n requestContentLength =\n requestContentLength == null ? await resolveBodyLength(headers, data) : requestContentLength;\n\n // A declared length of 0 is only trusted to skip the wrap when we are\n // not enforcing a stream limit (which must not rely on that header).\n if (requestContentLength !== 0 || mustEnforceStreamBody) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] =\n (onUploadProgress &&\n progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n )) ||\n [];\n\n data = trackRequestStream(_request.body, onProgress, flush);\n }\n }\n } else if (\n mustEnforceStreamBody &&\n !isRequestSupported &&\n isReadableStreamSupported &&\n method !== 'get' &&\n method !== 'head'\n ) {\n data = trackRequestStream(data);\n } else if (\n mustEnforceStreamBody &&\n isRequestSupported &&\n !supportsRequestStream &&\n method !== 'get' &&\n method !== 'head'\n ) {\n throw new AxiosError(\n 'Stream request bodies are not supported by the current fetch implementation',\n AxiosError.ERR_NOT_SUPPORT,\n config,\n request\n );\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const responseHeaders = AxiosHeaders.from(response.headers);\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n if (err !== canceledError) {\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(canceledError, 'cause', {\n __proto__: null,\n value: err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n }\n throw canceledError;\n }\n\n // Surface a maxBodyLength violation we raised while the request body was\n // being streamed. Matching by identity (rather than reading\n // `err.cause.isAxiosError`) keeps the error deterministic across runtimes\n // and avoids both prototype-pollution reads and mis-attributing a foreign\n // AxiosError that merely happened to land in `err.cause`.\n if (pendingBodyError) {\n request && !pendingBodyError.request && (pendingBodyError.request = request);\n throw pendingBodyError;\n }\n\n // Re-throw AxiosErrors we raised synchronously (data: URL / content-length\n // pre-checks, response size enforcement) without re-wrapping them.\n if (err instanceof AxiosError) {\n request && !err.request && (err.request = request);\n throw err;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n const networkError = new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n );\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(networkError, 'cause', {\n __proto__: null,\n value: err.cause || err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n throw networkError;\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n AxiosError.ERR_NOT_SUPPORT\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object' || options === null) {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n advertiseZstdAcceptEncoding: validators.transitional(validators.boolean),\n validateStatusUndefinedResolves: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls, config);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: config && utils.hasOwnProp(config, 'data') ? config.data : undefined,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n create,\n} = axios;\n\nexport {\n axios as default,\n create,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n};\n","/*!\n * SPDX-License-Identifier: GPL-3.0-or-later\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n */\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth';\nimport Axios from 'axios';\n/**\n * Get an Axios instance with default Nextcloud headers and CSRF token handling.\n */\nexport function getCancelableClient() {\n const client = Axios.create({\n headers: {\n requesttoken: getRequestToken() ?? '',\n 'X-Requested-With': 'XMLHttpRequest',\n },\n });\n onRequestTokenUpdate((token) => {\n client.defaults.headers.requesttoken = token;\n });\n return Object.assign(client, {\n CancelToken: Axios.CancelToken,\n isCancel: Axios.isCancel,\n });\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { fetchRequestToken } from '@nextcloud/auth';\nimport { isAxiosError } from 'axios';\nconst RETRY_KEY = '_nextcloudCsrfTokenReloaded';\n/**\n * Handle CSRF token errors in Axios requests.\n *\n * @param axios - The axios instance the interceptor is attached to\n */\nexport function onCsrfTokenError(axios) {\n return async (error) => {\n if (!isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n if (config\n && !(RETRY_KEY in config)\n && response?.status === 412\n && response?.data?.message === 'CSRF check failed') {\n console.warn(`Request to ${responseURL} failed because of a CSRF mismatch. Fetching a new token.`);\n const token = await fetchRequestToken();\n axios.defaults.headers.requesttoken = token;\n return axios({\n ...config,\n [RETRY_KEY]: true,\n headers: {\n ...config.headers,\n requesttoken: token,\n },\n });\n }\n throw error;\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { isAxiosError } from 'axios';\nconst RETRY_DELAY_KEY = '_nextcloudMaintenanceModeRetryDelay';\n/**\n * Handles Nextcloud maintenance mode errors in Axios requests.\n *\n * @param axios - The current Axios instance\n */\nexport function onMaintenanceModeError(axios) {\n return async (error) => {\n if (!isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n const headers = response?.headers;\n let retryDelay = config?.[RETRY_DELAY_KEY] ?? 1;\n /**\n * Retry requests if they failed due to maintenance mode\n *\n * The delay is exponential. It starts at 2s and then doubles\n * until a final retry after 32s. This results in roughly 1m of\n * retries until we give up and throw the axios error towards\n * the caller.\n */\n if (status === 503\n && headers?.['x-nextcloud-maintenance-mode'] === '1'\n && config?.retryIfMaintenanceMode) {\n retryDelay *= 2;\n if (retryDelay > 32) {\n console.error('Retry delay exceeded one minute, giving up.', { responseURL });\n throw error;\n }\n console.warn(`Request to ${responseURL} failed because of maintenance mode. Retrying in ${retryDelay}s`);\n await new Promise((resolve) => {\n setTimeout(resolve, retryDelay * 1000);\n });\n return axios({\n ...config,\n [RETRY_DELAY_KEY]: retryDelay,\n });\n }\n throw error;\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { isAxiosError } from 'axios';\n/**\n * Axios response interceptor onError callback.\n * This interceptor checks if the response failed because of a expired user session\n * and if enabled it will cause a redirect to the login.\n *\n * @param error - The response error\n */\nexport async function onNotLoggedInError(error) {\n if (isAxiosError(error)) {\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n if (status === 401\n && response?.data?.message === 'Current user is not logged in'\n && config?.reloadExpiredSession\n && globalThis.location?.reload) {\n console.error(`Request to ${responseURL} failed because the user session expired. Reloading the page …`);\n if (globalThis.OC?.reload) {\n globalThis.OC.reload();\n }\n else {\n globalThis.location.reload();\n }\n }\n }\n throw error;\n}\n","/**\n * SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { getCancelableClient } from \"./client.js\";\nimport { onCsrfTokenError } from \"./interceptors/csrf-token.js\";\nimport { onMaintenanceModeError } from \"./interceptors/maintenance-mode.js\";\nimport { onNotLoggedInError } from \"./interceptors/not-logged-in.js\";\nconst cancelableClient = getCancelableClient();\ncancelableClient.interceptors.response.use((r) => r, onCsrfTokenError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onMaintenanceModeError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onNotLoggedInError);\nexport { isAxiosError, isCancel } from 'axios';\nexport default cancelableClient;\n","\n\n","/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names$1 = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { Color } from '@kurkle/color';\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */ function noop() {\n/* noop */ }\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */ const uid = (()=>{\n let id = 0;\n return ()=>id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isNullOrUndef(value) {\n return value === null || value === undefined;\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */ function isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */ function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */ function finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */ function valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */ function callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for(i = len - 1; i >= 0; i--){\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */ function _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for(i = 0, ilen = a0.length; i < ilen; ++i){\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */ function clone(source) {\n if (isArray(source)) {\n return source.map(clone);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for(; k < klen; ++k){\n target[keys[k]] = clone(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return [\n '__proto__',\n 'prototype',\n 'constructor'\n ].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */ function _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [\n source\n ];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n let current;\n for(let i = 0; i < ilen; ++i){\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n const keys = Object.keys(current);\n for(let k = 0, klen = keys.length; k < klen; ++k){\n merger(keys[k], target, current, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */ function _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n/**\n * @private\n */ function _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': (v)=>v,\n // default resolvers\n x: (o)=>o.x,\n y: (o)=>o.y\n};\n/**\n * @private\n */ function _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts){\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return (obj)=>{\n for (const k of keys){\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n/**\n * @private\n */ function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value)=>typeof value !== 'undefined';\nconst isFunction = (value)=>typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b)=>{\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a){\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @param e - The event\n * @private\n */ function _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */ const PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */ function niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */ function _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for(i = 1; i < sqrt; i++){\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b)=>a - b).pop();\n return result;\n}\n/**\n * Verifies that attempting to coerce n to string or number won't throw a TypeError.\n */ function isNonPrimitive(n) {\n return typeof n === 'symbol' || typeof n === 'object' && n !== null && !(Symbol.toPrimitive in n || 'toString' in n || 'valueOf' in n);\n}\nfunction isNumber(n) {\n return !isNonPrimitive(n) && !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */ function _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for(i = 0, ilen = array.length; i < ilen; i++){\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */ function _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while(Math.round(x * e) / e !== x){\n e *= 10;\n p++;\n }\n return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < -0.5 * PI) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */ function _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */ function _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */ function _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */ function _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */ function _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */ function _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index)=>table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while(hi - lo > 1){\n mid = lo + hi >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {\n lo,\n hi\n };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */ const _lookupByKey = (table, key, value, last)=>_lookup(table, value, last ? (index)=>{\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n } : (index)=>table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */ const _rlookupByKey = (table, key, value)=>_lookup(table, value, (index)=>table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */ function _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while(start < end && values[start] < min){\n start++;\n }\n while(end > start && values[end - 1] > max){\n end--;\n }\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = [\n 'push',\n 'pop',\n 'shift',\n 'splice',\n 'unshift'\n];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [\n listener\n ]\n }\n });\n arrayEvents.forEach((key)=>{\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value (...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object)=>{\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key)=>{\n delete array[key];\n });\n delete array._chartjs;\n}\n/**\n * @param items\n */ function _arrayUnique(items) {\n const set = new Set(items);\n if (set.size === items.length) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/ const requestAnimFrame = function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */ function throttled(fn, thisArg) {\n let argsToUse = [];\n let ticking = false;\n return function(...args) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, ()=>{\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */ function debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */ const _toLeftRightCenter = (align)=>align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */ const _alignStartEnd = (align, start, end)=>align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */ const _textX = (align, left, right, rtl)=>{\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */ function _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const { iScale , vScale , _parsed } = meta;\n const spanGaps = meta.dataset ? meta.dataset.options ? meta.dataset.options.spanGaps : null : null;\n const axis = iScale.axis;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = Math.min(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo);\n if (spanGaps) {\n const distanceToDefinedLo = _parsed.slice(0, start + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n start -= Math.max(0, distanceToDefinedLo);\n }\n start = _limitValue(start, 0, pointCount - 1);\n }\n if (maxDefined) {\n let end = Math.max(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1);\n if (spanGaps) {\n const distanceToDefinedHi = _parsed.slice(end - 1).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n end += Math.max(0, distanceToDefinedHi);\n }\n count = _limitValue(end, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {\n start,\n count\n };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */ function _scaleRangesChanged(meta) {\n const { xScale , yScale , _scaleRanges } = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t)=>t === 0 || t === 1;\nconst elasticIn = (t, s, p)=>-(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p)=>Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */ const effects = {\n linear: (t)=>t,\n easeInQuad: (t)=>t * t,\n easeOutQuad: (t)=>-t * (t - 2),\n easeInOutQuad: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n easeInCubic: (t)=>t * t * t,\n easeOutCubic: (t)=>(t -= 1) * t * t + 1,\n easeInOutCubic: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: (t)=>t * t * t * t,\n easeOutQuart: (t)=>-((t -= 1) * t * t * t - 1),\n easeInOutQuart: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: (t)=>t * t * t * t * t,\n easeOutQuint: (t)=>(t -= 1) * t * t * t * t + 1,\n easeInOutQuint: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: (t)=>-Math.cos(t * HALF_PI) + 1,\n easeOutSine: (t)=>Math.sin(t * HALF_PI),\n easeInOutSine: (t)=>-0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: (t)=>t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: (t)=>t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: (t)=>atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: (t)=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: (t)=>Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: (t)=>(t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: (t)=>atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: (t)=>atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic (t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack (t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack (t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack (t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: (t)=>1 - effects.easeOutBounce(1 - t),\n easeOutBounce (t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < 1 / d) {\n return m * t * t;\n }\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: (t)=>t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst numbers = [\n 'x',\n 'y',\n 'borderWidth',\n 'radius',\n 'tension'\n];\nconst colors = [\n 'color',\n 'borderColor',\n 'backgroundColor'\n];\nfunction applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n });\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name)=>name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n });\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n });\n defaults.describe('animations', {\n _fallback: 'animation'\n });\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: (v)=>v | 0\n }\n }\n }\n });\n}\n\nfunction applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst formatters = {\n values (value) {\n return isArray(value) ? value : '' + value;\n },\n numeric (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {\n notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n if ([\n 1,\n 2,\n 3,\n 5,\n 10,\n 15\n ].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n var Ticks = {\n formatters\n};\n\nfunction applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n clip: true,\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options)=>options.lineWidth,\n tickColor: (_ctx, options)=>options.color,\n offset: false\n },\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n });\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name)=>!name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name)=>name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n });\n defaults.describe('scales', {\n _fallback: 'scale'\n });\n defaults.describe('scale.ticks', {\n _scriptable: (name)=>name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name)=>name !== 'backdropPadding'\n });\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\n function getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for(let i = 0, n = keys.length; i < n; ++i){\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\n class Defaults {\n constructor(_descriptors, _appliers){\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context)=>context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options)=>getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options)=>getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options)=>getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get () {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set (value) {\n this[privateName] = value;\n }\n }\n });\n }\n apply(appliers) {\n appliers.forEach((apply)=>apply(this));\n }\n}\nvar defaults = /* #__PURE__ */ new Defaults({\n _scriptable: (name)=>!name.startsWith('on'),\n _indexable: (name)=>name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n}, [\n applyAnimationsDefaults,\n applyLayoutsDefaults,\n applyScaleDefaults\n]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */ function toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */ function _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for(i = 0; i < ilen; i++){\n thing = arrayOfThings[i];\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for(j = 0, jlen = thing.length; j < jlen; j++){\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for(i = 0; i < gcLen; i++){\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */ function _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */ function clearCanvas(canvas, ctx) {\n if (!ctx && !canvas) {\n return;\n }\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch(style){\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */ case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */ case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */ function _isPointInArea(point, area, margin) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n/**\n * @private\n */ function _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */ function _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */ const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */ function renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [\n text\n ];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for(i = 0; i < lines.length; ++i){\n line = lines[i];\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += Number(font.lineHeight);\n }\n ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */ function addRoundedRectPath(ctx, rect) {\n const { x , y , w , h , radius } = rect;\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */ function toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch(matches[3]){\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = (v)=>+v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value) ? objProps ? (prop)=>valueOrDefault(value[prop], value[props[prop]]) : (prop)=>value[prop] : ()=>value;\n for (const prop of keys){\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */ function toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */ function toTRBLCorners(value) {\n return _readValueToProps(value, [\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight'\n ]);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */ function toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */ function toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */ function resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for(i = 0, ilen = inputs.length; i < ilen; ++i){\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */ function _addGrace(minmax, grace, beginAtZero) {\n const { min , max } = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add)=>beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */ function _createResolver(scopes, prefixes = [\n ''\n], rootScopes, fallback, getTarget = ()=>scopes[0]) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope)=>_createResolver([\n scope,\n ...scopes\n ], prefixes, finalRootScopes, fallback)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop) {\n return _cached(target, prop, ()=>_resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys (target) {\n return getKeysFromAllScopes(target);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */ function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx)=>_attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope)=>_attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop, receiver) {\n return _cached(target, prop, ()=>_resolveWithContext(target, prop, receiver));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(proxy);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return Reflect.has(proxy, prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys () {\n return Reflect.ownKeys(proxy);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n });\n}\n/**\n * @private\n */ function _descriptors(proxy, defaults = {\n scriptable: true,\n indexable: true\n}) {\n const { _scriptable =defaults.scriptable , _indexable =defaults.indexable , _allKeys =defaults.allKeys } = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : ()=>_scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : ()=>_indexable\n };\n}\nconst readKey = (prefix, name)=>prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value)=>isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n let value = _proxy[prop]; // resolve from proxy\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n const { _proxy , _context , _subProxy , _stack } = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter((s)=>s !== arr);\n value = [];\n for (const item of arr){\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent)=>key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes){\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [\n ...parentScopes,\n ...rootScopes\n ];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [\n ''\n ], rootScopes, fallback, ()=>subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while(key){\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes){\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes){\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes){\n for (const key of Object.keys(scope).filter((k)=>!k.startsWith('_'))){\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const { iScale } = meta;\n const { key ='r' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i)=>i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis)=>indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n // This function must also respect \"skipped\" points\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */ function monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen - 1; ++i){\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n/**\n * This function calculates BĆ©zier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */ function splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for(i = 0, ilen = points.length; i < ilen; ++i){\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n/**\n * @private\n */ function _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt)=>!pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for(i = 0, ilen = points.length; i < ilen; ++i){\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\n/**\n * @private\n */ function _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */ function _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */ function parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element)=>element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for(let i = 0; i < 4; i++){\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target)=>(x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */ function getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const { offsetX , offsetY } = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {\n x,\n y,\n box\n };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */ function getRelativePosition(event, chart) {\n if ('native' in event) {\n return event;\n }\n const { canvas , currentDevicePixelRatio } = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const { x , y , box } = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let { width , height } = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = (v)=>Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let { width , height } = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n return {\n width,\n height\n };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */ function retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = round1(chart.height * pixelRatio);\n const deviceWidth = round1(chart.width * pixelRatio);\n chart.height = round1(chart.height);\n chart.width = round1(chart.width);\n const canvas = chart.canvas;\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */ const supportsEventListenerOptions = function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive () {\n passiveSupported = true;\n return false;\n }\n };\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */ function readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */ function _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n/**\n * @private\n */ function _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n/**\n * @private\n */ function _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n const cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x (x) {\n return rectX + rectX + width - x;\n },\n setWidth (w) {\n width = w;\n },\n textAlign (align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus (x, value) {\n return x - value;\n },\n leftForLtr (x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x (x) {\n return x;\n },\n setWidth (w) {},\n textAlign (align) {\n return align;\n },\n xPlus (x, value) {\n return x + value;\n },\n leftForLtr (x, _itemWidth) {\n return x;\n }\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction')\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n return {\n between: _isBetween,\n compare: (a, b)=>a - b,\n normalize: (x)=>x\n };\n}\nfunction normalizeSegment({ start , end , count , loop , style }) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const { property , start: startBound , end: endBound } = bounds;\n const { between , normalize } = propertyFn(property);\n const count = points.length;\n let { start , end , loop } = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for(i = 0, ilen = count; i < ilen; ++i){\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {\n start,\n end,\n loop,\n style: segment.style\n };\n}\n function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [\n segment\n ];\n }\n const { property , start: startBound , end: endBound } = bounds;\n const count = points.length;\n const { compare , between , normalize } = propertyFn(property);\n const { start , end , loop , style } = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = ()=>between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = ()=>compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = ()=>inside || startIsBefore();\n const shouldStop = ()=>!inside || endIsBefore();\n for(let i = start, prev = start; i <= end; ++i){\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop,\n count,\n style\n }));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end,\n loop,\n count,\n style\n }));\n }\n return result;\n}\n function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for(let i = 0; i < segments.length; i++){\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n function findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while(start < count && !points[start].skip){\n start++;\n }\n }\n while(start < count && points[start].skip){\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while(end > start && points[end % count].skip){\n end--;\n }\n end %= count;\n return {\n start,\n end\n };\n}\n function solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for(end = start + 1; end <= max; ++end){\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop\n });\n }\n return result;\n}\n function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const { start , end } = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [\n {\n start,\n end,\n loop\n }\n ], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n function splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n function doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const { _datasetIndex: datasetIndex , options: { spanGaps } } = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while(points[s % count].skip){\n s -= dir;\n }\n while(points[e % count].skip){\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments){\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for(i = start + 1; i <= segment.end; i++){\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\nfunction getDatasetArea(meta, chartArea) {\n const { xScale , yScale } = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\nfunction getDatasetClipArea(chart, meta) {\n const clip = meta._clip;\n if (clip.disabled) {\n return false;\n }\n const area = getDatasetArea(meta, chart.chartArea);\n return {\n left: clip.left === false ? 0 : area.left - (clip.left === true ? 0 : clip.left),\n right: clip.right === false ? chart.width : area.right + (clip.right === true ? 0 : clip.right),\n top: clip.top === false ? 0 : area.top - (clip.top === true ? 0 : clip.top),\n bottom: clip.bottom === false ? chart.height : area.bottom + (clip.bottom === true ? 0 : clip.bottom)\n };\n}\n\nexport { unclipArea as $, _rlookupByKey as A, _lookupByKey as B, _isPointInArea as C, getAngleFromPoint as D, toPadding as E, each as F, getMaximumSize as G, HALF_PI as H, _getParentNode as I, readUsedSize as J, supportsEventListenerOptions as K, throttled as L, _isDomSupported as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, _limitValue as S, TAU as T, toDegrees as U, _measureText as V, _int16Range as W, _alignPixel as X, clipArea as Y, renderText as Z, _arrayUnique as _, resolve as a, getStyle as a$, toFont as a0, _toLeftRightCenter as a1, _alignStartEnd as a2, overrides as a3, merge as a4, _capitalize as a5, descriptors as a6, isFunction as a7, _attachContext as a8, _createResolver as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, distanceBetweenPoints as aF, noop as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, Ticks as aM, log10 as aN, _longestText as aO, _filterBetween as aP, _lookup as aQ, isPatternOrGradient as aR, getHoverColor as aS, clone as aT, _merger as aU, _mergerIf as aV, _deprecated as aW, _splitKey as aX, toFontString as aY, splineCurve as aZ, splineCurveMonotone as a_, _descriptors as aa, mergeIf as ab, uid as ac, debounce as ad, retinaScale as ae, clearCanvas as af, setsEqual as ag, getDatasetClipArea as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _normalizeAngle as al, _readValueToProps as am, _updateBezierControlPoints as an, _computeSegments as ao, _boundSegments as ap, _steppedInterpolation as aq, _bezierInterpolation as ar, _pointInLine as as, _steppedLineTo as at, _bezierCurveTo as au, drawPoint as av, addRoundedRectPath as aw, toTRBL as ax, toTRBLCorners as ay, _boundSegment as az, isArray as b, fontString as b0, toLineHeight as b1, PITAU as b2, INFINITY as b3, RAD_PER_DEG as b4, QUARTER_PI as b5, TWO_THIRDS_PI as b6, _angleDiff as b7, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, createContext as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n//# sourceMappingURL=helpers.dataset.js.map\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, i as isObject, d as defaults, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as createContext, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _lookupByKey, C as _isPointInArea, D as getAngleFromPoint, E as toPadding, F as each, G as getMaximumSize, I as _getParentNode, J as readUsedSize, K as supportsEventListenerOptions, L as throttled, M as _isDomSupported, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as _limitValue, U as toDegrees, V as _measureText, W as _int16Range, X as _alignPixel, Y as clipArea, Z as renderText, $ as unclipArea, a0 as toFont, a1 as _toLeftRightCenter, a2 as _alignStartEnd, a3 as overrides, a4 as merge, a5 as _capitalize, a6 as descriptors, a7 as isFunction, a8 as _attachContext, a9 as _createResolver, aa as _descriptors, ab as mergeIf, ac as uid, ad as debounce, ae as retinaScale, af as clearCanvas, ag as setsEqual, ah as getDatasetClipArea, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _normalizeAngle, am as _readValueToProps, an as _updateBezierControlPoints, ao as _computeSegments, ap as _boundSegments, aq as _steppedInterpolation, ar as _bezierInterpolation, as as _pointInLine, at as _steppedLineTo, au as _bezierCurveTo, av as drawPoint, aw as addRoundedRectPath, ax as toTRBL, ay as toTRBLCorners, az as _boundSegment, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as distanceBetweenPoints, aG as noop, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as Ticks, aN as log10, aO as _longestText, aP as _filterBetween, aQ as _lookup } from './chunks/helpers.dataset.js';\nimport '@kurkle/color';\n\nclass Animator {\n constructor(){\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach((fn)=>fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, ()=>{\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart)=>{\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for(; i >= 0; --i){\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur)=>Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for(; i >= 0; --i){\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = /* #__PURE__ */ new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean (from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color (from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number (from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to){\n const currentValue = target[prop];\n to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n const from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n this._from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || elapsed < duration);\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej)=>{\n promises.push({\n res,\n rej\n });\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for(let i = 0; i < promises.length; i++){\n promises[i][method]();\n }\n }\n}\n\nclass Animations {\n constructor(chart, config){\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach((key)=>{\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions){\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [\n key\n ]).forEach((prop)=>{\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(()=>{\n target.options = newOptions;\n }, ()=>{\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for(i = props.length - 1; i >= 0; --i){\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for(let i = 0; i < keys.length; i++){\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n let found = false;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n found = true;\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n if (!found && !options.all) {\n return 0;\n }\n return value;\n}\nfunction convertObjectDataToArray(data, meta) {\n const { iScale , vScale } = meta;\n const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n key = keys[i];\n adata[i] = {\n [iAxisKey]: key,\n [vAxisKey]: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const { min , max , minDefined , maxDefined } = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()){\n const value = stack[meta.index];\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const { chart , _cachedMeta: meta } = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const { iScale , vScale , index: datasetIndex } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for(let i = 0; i < ilen; ++i){\n const item = parsed[i];\n const { [iAxis]: index , [vAxis]: value } = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter((key)=>scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n });\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items){\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\nconst isDirectUpdateMode = (mode)=>mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared)=>shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart)=>canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\nclass DatasetController {\n static defaults = {};\n static datasetElementType = null;\n static dataElementType = null;\n constructor(chart, datasetIndex){\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r)=>axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n const meta = this._cachedMeta;\n this._data = convertObjectDataToArray(data, meta);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n meta._stacked = isStacked(meta.vScale, meta);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const { _cachedMeta: meta , _data: data } = this;\n const { iScale , _stacked } = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = ()=>cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n for(i = 0; i < count; ++i){\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {\n mode\n });\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n const { min: otherMin , max: otherMax } = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for(i = 0; i < ilen; ++i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for(i = ilen - 1; i >= 0; --i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for(i = 0, ilen = parsed.length; i < ilen; ++i){\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || elements.length - start;\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for(i = start; i < start + count; ++i){\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for(i = 0; i < active.length; ++i){\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [\n `${elementType}Hover`,\n 'hover',\n elementType,\n ''\n ] : [\n elementType,\n ''\n ];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = ()=>this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {\n sharedOptions,\n includeOptions\n };\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList){\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr)=>{\n arr.length += count;\n for(i = arr.length - 1; i >= end; i--){\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for(i = start; i < end; ++i){\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([\n this.index,\n ...args\n ]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync([\n '_insertElements',\n this.getDataset().data.length - count,\n count\n ]);\n }\n _onDataPop() {\n this._sync([\n '_removeElements',\n this._cachedMeta.data.length - 1,\n 1\n ]);\n }\n _onDataShift() {\n this._sync([\n '_removeElements',\n 0,\n 1\n ]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync([\n '_removeElements',\n start,\n count\n ]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync([\n '_insertElements',\n start,\n newCount\n ]);\n }\n }\n _onDataUnshift() {\n this._sync([\n '_insertElements',\n 0,\n arguments.length\n ]);\n }\n}\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for(let i = 0, ilen = visibleMetas.length; i < ilen; i++){\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b)=>a - b));\n }\n return scale._cache.$bar;\n}\n function computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = ()=>{\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for(i = 0, ilen = values.length; i < ilen; ++i){\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for(i = 0, ilen = scale.ticks.length; i < ilen; ++i){\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\n function computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n function computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for(i = start, ilen = start + count; i < ilen; ++i){\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {\n start,\n end,\n reverse,\n top,\n bottom\n };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {\n top: true,\n right: true,\n bottom: true,\n left: true\n };\n return;\n }\n const { start , end , reverse , top , bottom } = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, { inflateAmount }, ratio) {\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n static id = 'bar';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n };\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for(i = start, ilen = start + count; i < ilen; ++i){\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const { iScale , vScale } = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const { index , _cachedMeta: { vScale } } = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n for(let i = start; i < start + count; i++){\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base,\n head: base\n } : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const { iScale } = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type).filter((meta)=>meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n const iScaleValue = currentParsed && currentParsed[iScale.axis];\n const skipNull = (meta)=>{\n const parsed = meta._parsed.find((item)=>item[iScale.axis] === iScaleValue);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets){\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getAxisCount() {\n return this._getAxis().length;\n }\n getFirstScaleIdForIndexAxis() {\n const scales = this.chart.scales;\n const indexScaleId = this.chart.options.indexAxis;\n return Object.keys(scales).filter((key)=>scales[key].axis === indexScaleId).shift();\n }\n _getAxis() {\n const axis = {};\n const firstScaleAxisId = this.getFirstScaleIdForIndexAxis();\n for (const dataset of this.chart.data.datasets){\n axis[valueOrDefault(this.chart.options.indexAxis === 'x' ? dataset.xAxisID : dataset.yAxisID, firstScaleAxisId)] = true;\n }\n return Object.keys(axis);\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for(i = 0, ilen = meta.data.length; i < ilen; ++i){\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const { _cachedMeta: { vScale , _stacked , index: datasetIndex } , options: { base: baseValue , minBarLength } } = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n if (_stacked && !floating) {\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n const axisCount = this._getAxisCount();\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount * axisCount) : computeFitCategoryTraits(index, ruler, options, stackCount * axisCount);\n const axisID = this.chart.options.indexAxis === 'x' ? this.getDataset().xAxisID : this.getDataset().yAxisID;\n const axisNumber = this._getAxis().indexOf(valueOrDefault(axisID, this.getFirstScaleIdForIndexAxis()));\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined) + axisNumber;\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for(; i < ilen; ++i){\n if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\n\nclass BubbleController extends DatasetController {\n static id = 'bubble';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'borderWidth',\n 'radius'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {\n ratioX,\n ratioY,\n offsetX,\n offsetY\n };\n}\nclass DoughnutController extends DatasetController {\n static id = 'doughnut';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'circumference',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'startAngle',\n 'x',\n 'y',\n 'offset',\n 'borderWidth',\n 'spacing'\n ]\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n };\n static descriptors = {\n _scriptable: (name)=>name !== 'spacing',\n _indexable: (name)=>name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash')\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n const { labels: { pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n if (data.labels.length && data.datasets.length) {\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !chart.getDataVisibility(i),\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: style.borderWidth,\n strokeStyle: style.borderColor,\n textAlign: textAlign,\n pointStyle: pointStyle,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i)=>+data[i];\n if (isObject(data[start])) {\n const { key ='value' } = this._parsing;\n getter = (i)=>+resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for(i = start, ilen = start + count; i < ilen; ++i){\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for(let i = 0; i < this.chart.data.datasets.length; ++i){\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min\n };\n }\n update(mode) {\n const chart = this.chart;\n const { chartArea } = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const { circumference , rotation } = this._getRotationExtents();\n const { ratioX , ratioY , offsetX , offsetY } = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for(i = 0; i < start; ++i){\n startAngle += this._circumference(i, reset);\n }\n for(i = start; i < start + count; ++i){\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for(i = 0; i < metaData.length; i++){\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for(i = 0, ilen = chart.data.datasets.length; i < ilen; ++i){\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for(i = 0, ilen = arcs.length; i < ilen; ++i){\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for(let i = 0, ilen = arcs.length; i < ilen; ++i){\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for(let i = 0; i < datasetIndex; ++i){\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n\nclass LineController extends DatasetController {\n static id = 'line';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { dataset: line , data: points = [] , _dataset } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = 0; i < pointsCount; ++i){\n const point = points[i];\n const properties = directUpdate ? point : {};\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n\nclass PolarAreaController extends DatasetController {\n static id = 'polarArea';\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ]\n }\n },\n indexAxis: 'r',\n startAngle: 0\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n meta.data.forEach((element, index)=>{\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for(i = 0; i < start; ++i){\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for(i = start; i < start + count; i++){\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index)=>{\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n}\n\nclass PieController extends DoughnutController {\n static id = 'pie';\n static defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n };\n}\n\nclass RadarController extends DatasetController {\n static id = 'radar';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n };\n static overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n };\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n\nclass ScatterController extends DatasetController {\n static id = 'scatter';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n static overrides = {\n interaction: {\n mode: 'point'\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { data: points = [] } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n if (!this.datasetElementType) {\n this.addElements();\n }\n const { dataset: line , _dataset } = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n } else if (this.datasetElementType) {\n delete meta.dataset;\n this.datasetElementType = false;\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const { showLine } = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = start; i < start + count; ++i){\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPieController: PieController,\nPolarAreaController: PolarAreaController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */ function abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */ class DateAdapterBase {\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */ static override(members) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n options;\n constructor(options){\n this.options = options || {};\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n formats() {\n return abstract();\n }\n parse() {\n return abstract();\n }\n format() {\n return abstract();\n }\n add() {\n return abstract();\n }\n diff() {\n return abstract();\n }\n startOf() {\n return abstract();\n }\n endOf() {\n return abstract();\n }\n}\nvar adapters = {\n _date: DateAdapterBase\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const { controller , data , _sorted } = metaset;\n const iScale = controller._cachedMeta.iScale;\n const spanGaps = metaset.dataset ? metaset.dataset.options ? metaset.dataset.options.spanGaps : null : null;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n const result = lookupMethod(data, axis, value);\n if (spanGaps) {\n const { vScale } = controller._cachedMeta;\n const { _parsed } = metaset;\n const distanceToDefinedLo = _parsed.slice(0, result.lo + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.lo -= Math.max(0, distanceToDefinedLo);\n const distanceToDefinedHi = _parsed.slice(result.hi).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.hi += Math.max(0, distanceToDefinedHi);\n }\n return result;\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n function evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for(let i = 0, ilen = metasets.length; i < ilen; ++i){\n const { index , data } = metasets[i];\n const { lo , hi } = binarySearch(metasets[i], axis, value, intersect);\n for(let j = lo; j <= hi; ++j){\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n function getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n function getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n function getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const { startAngle , endAngle } = element.getProps([\n 'startAngle',\n 'endAngle'\n ], useFinalPosition);\n const { angle } = getAngleFromPoint(element, {\n x: position.x,\n y: position.y\n });\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [\n {\n element,\n datasetIndex,\n index\n }\n ];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n function getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index)=>{\n if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n var Interaction = {\n evaluateInteractionItems,\n modes: {\n index (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta)=>{\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({\n element,\n datasetIndex: meta.index,\n index\n });\n }\n });\n return elements;\n },\n dataset (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for(let i = 0; i < data.length; ++i){\n items.push({\n element: data[i],\n datasetIndex,\n index: i\n });\n }\n }\n return items;\n },\n point (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = [\n 'left',\n 'top',\n 'right',\n 'bottom'\n];\nfunction filterByPosition(array, position) {\n return array.filter((v)=>v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter((v)=>STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b)=>{\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for(i = 0, ilen = (boxes || []).length; i < ilen; ++i){\n box = boxes[i];\n ({ position: pos , options: { stack , stackWeight =1 } } = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts){\n const { stack , pos , stackWeight } = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n function setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const { vBoxMaxWidth , hBoxMaxHeight } = params;\n let i, ilen, layout;\n for(i = 0, ilen = layouts.length; i < ilen; ++i){\n layout = layouts[i];\n const { fullSize } = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter((wrap)=>wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const { pos , box } = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach((pos)=>{\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal ? marginForPositions([\n 'left',\n 'right'\n ]) : marginForPositions([\n 'top',\n 'bottom'\n ]);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for(i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i){\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n const { same , other } = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let { x , y } = chartArea;\n for (const layout of boxes){\n const box = layout.box;\n const stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n const weight = layout.stackWeight / stack.weight || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\nvar layouts = {\n addBox (chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [\n {\n z: 0,\n draw (chartArea) {\n item.draw(chartArea);\n }\n }\n ];\n };\n chart.boxes.push(item);\n },\n removeBox (chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure (chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update (chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, (box)=>{\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap)=>wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, (layout)=>{\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n });\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\n const EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = (value)=>value === null || value === '';\n function initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const { x , y } = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList){\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart)=>{\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height)=>{\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver((entries)=>{\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event)=>{\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n addListener(canvas, type, proxy);\n return proxy;\n}\n class DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n [\n 'height',\n 'width'\n ].forEach((prop)=>{\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key)=>{\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = canvas && _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n static defaults = {};\n static defaultRoutes = undefined;\n x;\n y;\n active = false;\n options;\n $animations;\n tooltipPosition(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this;\n }\n const ret = {};\n props.forEach((prop)=>{\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for(i = 0, ilen = numMajorIndices - 1; i < ilen; i++){\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n function calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for(let i = 0, ilen = factors.length - 1; i < ilen; i++){\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n function getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n function skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for(i = 0; i < ticks.length; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n function skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while(next < 0){\n count++;\n next = Math.round(start + count * spacing);\n }\n for(i = Math.max(start, 0); i < end; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n function getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for(diff = arr[0], i = 1; i < len; ++i){\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align)=>align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset)=>edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit)=>Math.min(maxTicksLimit || ticksLength, ticksLength);\n function sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for(; i < len; i += increment){\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n function getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n function garbageCollect(caches, length) {\n each(caches, (cache)=>{\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for(i = 0; i < gcLen; ++i){\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n function getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n function getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const { top , left , bottom , right , chart } = scale;\n const { chartArea , scales } = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n}\nclass Scale extends Element {\n constructor(cfg){\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let { _userMin , _userMax , _suggestedMin , _suggestedMax } = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {\n min,\n max\n };\n }\n const metas = this.getMatchingVisibleMetas();\n for(let i = 0, ilen = metas.length; i < ilen; ++i){\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [\n this\n ]);\n }\n update(maxWidth, maxHeight, margins) {\n const { beginAtZero , grace , ticks: tickOpts } = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [\n this\n ]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [\n this\n ]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [\n this\n ]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [\n this\n ]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [\n this\n ]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [\n tick.value,\n i,\n ticks\n ], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [\n this\n ]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [\n this\n ]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [\n this\n ]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [\n this\n ]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const { chart , options: { ticks: tickOpts , title: titleOpts , grid: gridOpts } } = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const { first , last , widest , highest } = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const { ticks: { align , padding } , position } = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [\n this\n ]);\n }\n isHorizontal() {\n const { axis , position } = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const { ctx , _longestTextCache: caches } = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for(i = 0; i < length; i += increment){\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for(j = 0, jlen = label.length; j < jlen; ++j){\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx)=>({\n width: widths[idx] || 0,\n height: heights[idx] || 0\n });\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const { min , max } = this;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const { grid , position , border } = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for(i = 0; i < ticksLength; i += step){\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const { position , ticks: optionTicks } = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const { align , crossAlign , padding , mirror } = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += lineHeight / 2 * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n switch(textBaseline){\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch(textAlign){\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [\n x,\n y\n ],\n backdrop\n }\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const { position , ticks } = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const { position , ticks: { crossAlign , mirror , padding } } = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {\n textAlign,\n x\n };\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n drawBackground() {\n const { ctx , options: { backgroundColor } , left , top , width , height } = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex((t)=>t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style)=>{\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for(i = 0, ilen = items.length; i < ilen; ++i){\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n drawBorder() {\n const { chart , ctx , options: { border , grid } } = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this.getLabelItems(chartArea);\n for (const item of items){\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const { ctx , options: { position , title , reverse } } = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const { titleX , titleY , maxWidth , rotation } = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [\n {\n z: tz,\n draw: (chartArea)=>{\n this.draw(chartArea);\n }\n }\n ];\n }\n return [\n {\n z: gz,\n draw: (chartArea)=>{\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n },\n {\n z: bz,\n draw: ()=>{\n this.drawBorder();\n }\n },\n {\n z: tz,\n draw: (chartArea)=>{\n this.drawLabels(chartArea);\n }\n }\n ];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override){\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach((property)=>{\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [\n scope\n ].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor(){\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [\n this.controllers,\n this.scales,\n this.elements\n ];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [\n ...args\n ].forEach((arg)=>{\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n this._exec(method, reg, arg);\n } else {\n each(arg, (item)=>{\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for(let i = 0; i < this._typedRegistries.length; i++){\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = /* #__PURE__ */ new Registry();\n\nclass PluginService {\n constructor(){\n this._init = undefined;\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n if (this._init === undefined) {\n return;\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n this._init = undefined;\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors){\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [\n chart,\n args,\n descriptor.options\n ];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n function allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for(let i = 0; i < keys.length; i++){\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for(let i = 0; i < local.length; i++){\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {\n plugins,\n localIds\n };\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, { plugins , localIds }, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins){\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {\n plugin,\n local: localIds[id]\n }, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, { plugin , local }, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [\n ''\n ], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions){\n const axis = opts.axis || axisFromPosition(opts.position) || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {\n axis\n };\n }\n}\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d)=>d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {\n scales: {}\n };\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n Object.keys(configScales).forEach((id)=>{\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [\n {\n axis\n },\n scaleConf,\n defaultScaleOptions[axis],\n defaultScaleOptions[defaultId]\n ]);\n });\n config.data.datasets.forEach((dataset)=>{\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach((defaultID)=>{\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [\n {\n axis\n },\n configScales[id],\n defaultScaleOptions[defaultID]\n ]);\n });\n });\n Object.keys(scales).forEach((key)=>{\n const scale = scales[key];\n mergeIf(scale, [\n defaults.scales[scale.type],\n defaults.scale\n ]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key)=>{\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config){\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, ()=>[\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`, ()=>[\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`, ()=>[\n [\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]\n ]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`, ()=>[\n [\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || []\n ]\n ]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const { options , type } = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach((keys)=>{\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach((key)=>addIfFound(scopes, mainScope, key));\n }\n keys.forEach((key)=>addIfFound(scopes, options, key));\n keys.forEach((key)=>addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach((key)=>addIfFound(scopes, defaults, key));\n keys.forEach((key)=>addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const { options , type } = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {\n type\n },\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = [\n ''\n ]) {\n const result = {\n $shared: true\n };\n const { resolver , subPrefixes } = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names){\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [\n ''\n ], descriptorDefaults) {\n const { resolver } = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter((p)=>!p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = (value)=>isObject(value) && Object.getOwnPropertyNames(value).some((key)=>isFunction(value[key]));\nfunction needContext(proxy, names) {\n const { isScriptable , isIndexable } = _descriptors(proxy);\n for (const prop of names){\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"4.5.1\";\n\nconst KNOWN_POSITIONS = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'chartArea'\n];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [\n context\n ], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [\n context\n ], chart);\n}\n function getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key)=>{\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c)=>c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys){\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n function determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n constructor(item, userConfig){\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce((mode)=>this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const { options: { aspectRatio , maintainAspectRatio } , width , height , _aspectRatio } = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n get registry() {\n return registry;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width,\n height\n };\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [\n this,\n newSize\n ], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID)=>{\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id)=>{\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map((id)=>{\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n each(items, (item)=>{\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id)=>{\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale)=>{\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b)=>a.index - b.index);\n if (numMeta > numData) {\n for(let i = numData; i < numMeta; ++i){\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const { _metasets: metasets , data: { datasets } } = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index)=>{\n if (datasets.filter((x)=>x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for(i = 0, ilen = datasets.length; i < ilen; i++){\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const { datasetElementType , dataElementType } = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex)=>{\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; i++){\n const { controller } = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller)=>{\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {\n mode\n });\n this._layers.sort(compare2Level('z', '_idx'));\n const { _active , _lastEvent } = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale)=>{\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const { _hiddenIndices } = this;\n const changes = this._getUniformDataChanges() || [];\n for (const { method , start , count } of changes){\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx)=>new Set(_dataChanges.filter((c)=>c[0] === idx).map((c, i)=>i + ',' + c.splice(1).join(',')));\n const changeSet = makeSet(0);\n for(let i = 1; i < datasetCount; i++){\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet).map((c)=>c.split(',')).map((a)=>({\n method: a[1],\n start: +a[2],\n count: +a[3]\n }));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box)=>{\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index)=>{\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this.getDatasetMeta(i).controller.configure();\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._updateDataset(i, isFunction(mode) ? mode({\n datasetIndex: i\n }) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {\n mode\n });\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {\n meta,\n index,\n mode,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const { width , height } = this._resizeBeforeDraw;\n this._resizeBeforeDraw = null;\n this._resize(width, height);\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const layers = this._layers;\n for(i = 0; i < layers.length && layers[i].z <= 0; ++i){\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for(; i < layers.length; ++i){\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n const clip = getDatasetClipArea(this, meta);\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (clip) {\n clipArea(ctx, clip);\n }\n meta.controller.draw();\n if (clip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter((x)=>x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible\n });\n this.update((ctx)=>ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for(i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const { canvas , ctx } = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y)=>{\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type)=>_add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener)=>{\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height)=>{\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = ()=>{\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = ()=>{\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter((p)=>p.plugin.id === pluginId).length === 1;\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin)=>(plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const { _active: lastActive = [] , options } = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [\n e,\n active,\n this\n ], this);\n if (isClick) {\n callback(options.onClick, [\n e,\n active,\n this\n ], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart)=>chart._plugins.invalidate());\n}\n\nfunction clipSelf(ctx, element, endAngle) {\n const { startAngle , x , y , outerRadius , innerRadius , options } = element;\n const { borderWidth , borderJoinStyle } = options;\n const outerAngleClip = Math.min(borderWidth / outerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.beginPath();\n ctx.arc(x, y, outerRadius - borderWidth / 2, startAngle + outerAngleClip / 2, endAngle - outerAngleClip / 2);\n if (innerRadius > 0) {\n const innerAngleClip = Math.min(borderWidth / innerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.arc(x, y, innerRadius + borderWidth / 2, endAngle - innerAngleClip / 2, startAngle + innerAngleClip / 2, true);\n } else {\n const clipWidth = Math.min(borderWidth / 2, outerRadius * _normalizeAngle(startAngle - endAngle));\n if (borderJoinStyle === 'round') {\n ctx.arc(x, y, clipWidth, endAngle - PI / 2, startAngle + PI / 2, true);\n } else if (borderJoinStyle === 'bevel') {\n const r = 2 * clipWidth * clipWidth;\n const endX = -r * Math.cos(endAngle + PI / 2) + x;\n const endY = -r * Math.sin(endAngle + PI / 2) + y;\n const startX = r * Math.cos(startAngle + PI / 2) + x;\n const startY = r * Math.sin(startAngle + PI / 2) + y;\n ctx.lineTo(endX, endY);\n ctx.lineTo(startX, startY);\n }\n }\n ctx.closePath();\n ctx.moveTo(0, 0);\n ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);\n ctx.clip('evenodd');\n}\nfunction clipArc(ctx, element, endAngle) {\n const { startAngle , pixelMargin , x , y , outerRadius , innerRadius } = element;\n let angleMargin = pixelMargin / outerRadius;\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, [\n 'outerStart',\n 'outerEnd',\n 'innerStart',\n 'innerEnd'\n ]);\n}\n/**\n * Parse border radius from the provided options\n */ function parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val)=>{\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n/**\n * Convert (r, šœƒ) to (x, y)\n */ function rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */ function pathArc(ctx, element, offset, spacing, end, circular) {\n const { x , y , startAngle: start , pixelMargin , innerRadius: innerR } = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const { outerStart , outerEnd , innerStart , innerEnd } = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference } = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference , options } = element;\n const { borderWidth , borderJoinStyle , borderDash , borderDashOffset , borderRadius } = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n ctx.setLineDash(borderDash || []);\n ctx.lineDashOffset = borderDashOffset;\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n if (options.selfJoin && endAngle - startAngle >= PI && borderRadius === 0 && borderJoinStyle !== 'miter') {\n clipSelf(ctx, element, endAngle);\n }\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\nclass ArcElement extends Element {\n static id = 'arc';\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n selfJoin: false\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash'\n };\n circumference;\n endAngle;\n fullCircles;\n innerRadius;\n outerRadius;\n pixelMargin;\n startAngle;\n constructor(cfg){\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n const { angle , distance } = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n });\n const { startAngle , endAngle , innerRadius , outerRadius , circumference } = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const nonZeroBetween = _angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n const betweenAngles = _circumference >= TAU || nonZeroBetween;\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return betweenAngles && withinRadius;\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , startAngle , endAngle , innerRadius , outerRadius } = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ], useFinalPosition);\n const { offset , spacing } = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const { options , circumference } = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n ctx.restore();\n }\n}\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n function getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const { start: paramsStart = 0 , end: paramsEnd = count - 1 } = params;\n const { start: segmentStart , end: segmentEnd } = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n function pathSegment(ctx, line, segment, params) {\n const { points , options } = line;\n const { count , start , loop , ilen } = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let { move =true , reverse } = params || {};\n let i, point, prev;\n for(i = 0; i <= ilen; ++i){\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\n function fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const { count , start , ilen } = pathVars(points, segment, params);\n const { move =true , reverse } = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index)=>(start + (reverse ? ilen - index : index)) % count;\n const drawX = ()=>{\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for(i = 0; i <= ilen; ++i){\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\n function _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n function _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const { segments , options } = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments){\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {\n start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n static id = 'line';\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash' && name !== 'fill'\n };\n constructor(cfg){\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {\n property,\n start: value,\n end: value\n });\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for(i = 0, ilen = segments.length; i < ilen; ++i){\n const { start , end } = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n for (const segment of segments){\n loop &= segmentMethod(ctx, this, segment, {\n start,\n end: start + count - 1\n });\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const { [axis]: value } = el.getProps([\n axis\n ], useFinalPosition);\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n static id = 'point';\n parsed;\n skip;\n stop;\n /**\n * @type {any}\n */ static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n /**\n * @type {any}\n */ static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n\nfunction getBarBounds(bar, useFinalPosition) {\n const { x , y , base , width , height } = bar.getProps([\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {\n left,\n top,\n right,\n bottom\n };\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const { enableBorderRadius } = bar.getProps([\n 'enableBorderRadius'\n ]);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || _isBetween(x, bounds.left, bounds.right)) && (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n function addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n static id = 'bar';\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const { inflateAmount , options: { borderColor , backgroundColor } } = this;\n const { inner , outer } = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , base , horizontal } = this.getProps([\n 'x',\n 'y',\n 'base',\n 'horizontal'\n ], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nBarElement: BarElement,\nLineElement: LineElement,\nPointElement: PointElement\n});\n\nconst BORDER_COLORS = [\n 'rgb(54, 162, 235)',\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map((color)=>color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n dataset.borderColor = getBorderColor(i);\n dataset.backgroundColor = getBackgroundColor(i);\n return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBorderColor(i++));\n return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBackgroundColor(i++));\n return i;\n}\nfunction getColorizer(chart) {\n let i = 0;\n return (dataset, datasetIndex)=>{\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n if (controller instanceof DoughnutController) {\n i = colorizeDoughnutDataset(dataset, i);\n } else if (controller instanceof PolarAreaController) {\n i = colorizePolarAreaDataset(dataset, i);\n } else if (controller) {\n i = colorizeDefaultDataset(dataset, i);\n }\n };\n}\nfunction containsColorsDefinitions(descriptors) {\n let k;\n for(k in descriptors){\n if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n return true;\n }\n }\n return false;\n}\nfunction containsColorsDefinition(descriptor) {\n return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\nfunction containsDefaultColorsDefenitions() {\n return defaults.borderColor !== 'rgba(0,0,0,0.1)' || defaults.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\nvar plugin_colors = {\n id: 'colors',\n defaults: {\n enabled: true,\n forceOverride: false\n },\n beforeLayout (chart, _args, options) {\n if (!options.enabled) {\n return;\n }\n const { data: { datasets } , options: chartOptions } = chart.config;\n const { elements } = chartOptions;\n const containsColorDefenition = containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || elements && containsColorsDefinitions(elements) || containsDefaultColorsDefenitions();\n if (!options.forceOverride && containsColorDefenition) {\n return;\n }\n const colorizer = getColorizer(chart);\n datasets.forEach(colorizer);\n }\n};\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for(i = 0; i < samples - 2; i++){\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for(j = avgRangeStart; j < avgRangeEnd; j++){\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const { x: pointAx , y: pointAy } = data[a];\n maxArea = area = -1;\n for(j = rangeOffs; j < rangeTo; j++){\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for(i = start; i < start + count; ++i){\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: data\n });\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset)=>{\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const { iScale } = meta;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {\n start,\n count\n };\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: (chart, args, options)=>{\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex)=>{\n const { _data , indexAxis } = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([\n indexAxis,\n chart.options.indexAxis\n ]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let { start , count } = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch(options.algorithm){\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy (chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments){\n let { start , end } = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments){\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources){\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {\n property,\n start,\n end\n };\n}\nfunction _pointsFromSegments(boundary, line) {\n const { x =null , y =null } = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({ start , end })=>{\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({\n x: first.x,\n y\n });\n points.push({\n x: last.x,\n y\n });\n } else if (x !== null) {\n points.push({\n x,\n y: first.y\n });\n points.push({\n x,\n y: last.y\n });\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for(; end > start; end--){\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {\n tension: 0\n },\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [\n index\n ];\n let target;\n if (!propagate) {\n return fill;\n }\n while(fill !== false && visited.indexOf(fill) === -1){\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\n function _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return [\n 'origin',\n 'start',\n 'end',\n 'stack',\n 'shape'\n ].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\n function _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\n function _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\n function parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const { scale , index , line } = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n for(let j = segment.start; j <= segment.end; j++){\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({\n points,\n options: {}\n });\n}\n function getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for(let i = 0; i < metas.length; i++){\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\n function addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for(let j = 0; j < linesBelow.length; j++){\n const line = linesBelow[j];\n const { first , last , point } = findPoint(line, sourcePoint, 'x');\n if (!point || first && last) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\n function findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {\n first,\n last,\n point\n };\n}\n\nclass simpleArc {\n constructor(opts){\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const { x , y , radius } = this;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const { x , y , radius } = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const { chart , fill , line } = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\n function getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const { scale ={} , fill } = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const { scale , fill } = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for(let i = 0; i < length; ++i){\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const { chart , index , line , scale , axis } = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const { above =color , below =color } = fillOption || {};\n const meta = chart.getDatasetMeta(index);\n const clip = getDatasetClipArea(chart, meta);\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line,\n target,\n above,\n below,\n area,\n scale,\n axis,\n clip\n });\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const { line , target , above , below , area , scale , clip } = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n let fillColor = below;\n if (below !== above) {\n if (property === 'x') {\n clipVertical(ctx, target, area.top);\n fill(ctx, {\n line,\n target,\n color: above,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n } else if (property === 'y') {\n clipHorizontal(ctx, target, area.left);\n fill(ctx, {\n line,\n target,\n color: below,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipHorizontal(ctx, target, area.right);\n fillColor = above;\n }\n }\n fill(ctx, {\n line,\n target,\n color: fillColor,\n scale,\n property,\n clip\n });\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction clipHorizontal(ctx, target, clipX) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(clipX, firstPoint.y);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(clipX, lastPoint.y);\n }\n }\n ctx.lineTo(clipX, target.first().y);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const { line , target , property , color , scale , clip } = cfg;\n const segments = _segments(line, target, property);\n for (const { source: src , target: tgt , start , end } of segments){\n const { style: { backgroundColor =color } = {} } = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, clip, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, clip, bounds) {\n const chartArea = scale.chart.chartArea;\n const { property , start , end } = bounds || {};\n if (property === 'x' || property === 'y') {\n let left, top, right, bottom;\n if (property === 'x') {\n left = start;\n top = chartArea.top;\n right = end;\n bottom = chartArea.bottom;\n } else {\n left = chartArea.left;\n top = start;\n right = chartArea.right;\n bottom = end;\n }\n ctx.beginPath();\n if (clip) {\n left = Math.max(left, clip.left);\n right = Math.min(right, clip.right);\n top = Math.max(top, clip.top);\n bottom = Math.min(bottom, clip.bottom);\n }\n ctx.rect(left, top, right - left, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate (chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for(i = 0; i < count; ++i){\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for(i = 0; i < count; ++i){\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw (chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw (chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw (chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize)=>{\n let { boxHeight =fontSize , boxWidth =fontSize } = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b)=>a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config){\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [\n this.chart\n ], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item)=>labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b)=>labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const { options , ctx } = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const { boxWidth , itemHeight } = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const { ctx , maxWidth , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [\n 0\n ];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i)=>{\n const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {\n left: 0,\n top,\n row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const { ctx , maxHeight , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i)=>{\n const { itemWidth , itemHeight } = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {\n left,\n top: currentColHeight,\n col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const { legendHitBoxes: hitboxes , options: { align , labels: { padding } , rtl } } = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes){\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes){\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const { options: opts , columnSizes , lineWidths , ctx } = this;\n const { align , labels: labelOpts } = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const { padding } = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const { boxWidth , boxHeight , itemHeight } = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i)=>{\n ctx.strokeStyle = legendItem.fontColor;\n ctx.fillStyle = legendItem.fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size)=>Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right) && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for(i = 0; i < lh.length; ++i){\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width) && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [\n e,\n previous,\n this\n ], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [\n e,\n hoveredItem,\n this\n ], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [\n e,\n hoveredItem,\n this\n ], this);\n }\n }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {\n itemWidth,\n itemHeight\n };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b)=>a.length > b.length ? a : b);\n }\n return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start (chart, _args, options) {\n const legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop (chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate (chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate (chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent (chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick (e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx)=>ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels (chart) {\n const datasets = chart.data.datasets;\n const { labels: { usePointStyle , pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta)=>{\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx)=>ctx.chart.options.color,\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: (name)=>!name.startsWith('on'),\n labels: {\n _scriptable: (name)=>![\n 'generateLabels',\n 'filter',\n 'sort'\n ].includes(name)\n }\n }\n};\n\nclass Title extends Element {\n constructor(config){\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const { top , left , bottom , right , options } = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const { titleX , titleY , maxWidth , rotation } = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start (chart, _args, options) {\n createTitle(chart, options);\n },\n stop (chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate (chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start (chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop (chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate (chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst positioners = {\n average (items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n if (count === 0 || xSet.size === 0) {\n return false;\n }\n const xAverage = [\n ...xSet\n ].reduce((a, b)=>a + b) / xSet.size;\n return {\n x: xAverage,\n y: y / count\n };\n },\n nearest (items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\n function splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n function createTooltipItem(chart, item) {\n const { element , datasetIndex , index } = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const { label , value } = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n function getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const { body , footer , title } = tooltip;\n const { boxWidth , boxHeight } = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem)=>count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n each(body, (bodyItem)=>{\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width,\n height\n };\n}\nfunction determineYAlign(chart, size) {\n const { y , height } = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const { x , width } = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const { x , width } = size;\n const { width: chartWidth , chartArea: { left , right } } = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\n function determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let { x , width } = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let { y , height } = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n return y;\n}\n function getBackgroundPoint(options, size, alignment, chart) {\n const { caretSize , caretPadding , cornerRadius } = options;\n const { xAlign , yAlign } = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n function getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n beforeTitle: noop,\n title (tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label (tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor () {\n return this.options.bodyColor;\n },\n labelPointStyle (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n function invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n return result;\n}\nclass Tooltip extends Element {\n static positioners = positioners;\n constructor(config){\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const { callbacks } = options;\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n }\n getBody(tooltipItems, options) {\n const { callbacks } = options;\n const bodyItems = [];\n each(tooltipItems, (context)=>{\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n }\n getFooter(tooltipItems, options) {\n const { callbacks } = options;\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for(i = 0, len = active.length; i < len; ++i){\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array)=>options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b)=>options.itemSort(a, b, data));\n }\n each(tooltipItems, (context)=>{\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {\n chart: this.chart,\n tooltip: this,\n replay\n });\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const { xAlign , yAlign } = this;\n const { caretSize , cornerRadius } = options;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n const { x: ptX , y: ptY } = tooltipPoint;\n const { width , height } = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {\n x1,\n x2,\n x3,\n y1,\n y2,\n y3\n };\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const { boxHeight , boxWidth } = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : labelColor.borderWidth || 1;\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColor.borderRadius);\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const { body } = this;\n const { bodySpacing , bodyAlign , displayColors , boxHeight , boxWidth , boxPadding } = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n for(i = 0, ilen = body.length; i < ilen; ++i){\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for(j = 0, jlen = lines.length; j < jlen; ++j){\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const { xAlign , yAlign } = this;\n const { x , y } = pt;\n const { width , height } = tooltipSize;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive.filter((i)=>this.chart.data.datasets[i.datasetIndex] && this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined);\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const { caretX , caretY , options } = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit (chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n chart,\n options\n });\n }\n },\n beforeUpdate (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw (chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', {\n ...args,\n cancelable: true\n }) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent (chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts)=>opts.bodyFont.size,\n boxWidth: (ctx, opts)=>opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'width',\n 'height',\n 'caretX',\n 'caretY'\n ]\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name)=>name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: [\n 'interaction'\n ]\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nColors: plugin_colors,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels)=>{\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({\n index,\n label: raw\n });\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max)=>index === null ? null : _limitValue(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\nclass CategoryScale extends Scale {\n static id = 'category';\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n constructor(cfg){\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const { index , label } of added){\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for(let value = min; value <= max; value++){\n ticks.push({\n value\n });\n }\n return ticks;\n }\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const { bounds , step , min , max , precision , count , maxTicks , maxDigits , includeBounds } = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const { min: rmin , max: rmax } = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [\n {\n value: rmin\n },\n {\n value: rmax\n }\n ];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for(; j < numSpaces; ++j){\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({\n value: tickValue\n });\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, { horizontal , minRotation }) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const { beginAtZero } = this.options;\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let { maxTicksLimit , stepSize } = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n static id = 'linear';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n\nconst log10Floor = (v)=>Math.floor(log10(v));\nconst changeExponent = (v, m)=>Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while(steps(min, max, rangeExp) > 10){\n rangeExp++;\n }\n while(steps(min, max, rangeExp) < 10){\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n function generateTicks(generationOptions, { min , max }) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while(value < max){\n ticks.push({\n value,\n major: isMajor(value),\n significand\n });\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({\n value: lastTick,\n major: isMajor(lastTick),\n significand\n });\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n static id = 'logarithmic';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [\n raw,\n index\n ]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n if (this._zero && this.min !== this._suggestedMin && !isNumberFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n setMax(changeExponent(min, +1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [\n label\n ];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\n function fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for(let i = 0; i < valueCount; i++){\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const { extra , additionalAngle , padding , size } = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n visible: true,\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const { left , top , right , bottom } = item;\n const apexesInArea = _isPointInArea({\n x: left,\n y: top\n }, area) || _isPointInArea({\n x: left,\n y: bottom\n }, area) || _isPointInArea({\n x: right,\n y: top\n }, area) || _isPointInArea({\n x: right,\n y: bottom\n }, area);\n return !apexesInArea;\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const { centerPointLabels , display } = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? PI / valueCount : 0\n };\n let area;\n for(let i = 0; i < valueCount; i++){\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabelBox(ctx, opts, item) {\n const { left , top , right , bottom } = item;\n const { backdropColor } = opts;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(opts.borderRadius);\n const padding = toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\nfunction drawPointLabels(scale, labelCount) {\n const { ctx , options: { pointLabels } } = scale;\n for(let i = labelCount - 1; i >= 0; i--){\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = toFont(optsAtIndex.font);\n const { x , y , textAlign } = item;\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const { ctx } = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for(let i = 1; i < labelCount; i++){\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const { color , lineWidth } = gridLineOpts;\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash || []);\n ctx.lineDashOffset = borderOpts.dashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n static id = 'radialLinear';\n static defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback (label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n };\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n constructor(cfg){\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index)=>{\n const label = callback(this.options.pointLabels.callback, [\n value,\n index\n ], this);\n return label || label === 0 ? label : '';\n }).filter((v, i)=>this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const { left , top , right , bottom } = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom\n };\n }\n drawBackground() {\n const { backgroundColor , grid: { circular } } = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const { angleLines , grid , border } = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index)=>{\n if (index !== 0 || index === 0 && this.min < 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for(i = labelCount - 1; i >= 0; i--){\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const { color , lineWidth } = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index)=>{\n if (index === 0 && this.min >= 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\n\nconst INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\n const UNITS = /* #__PURE__ */ Object.keys(INTERVALS);\n function sorter(a, b) {\n return a - b;\n}\n function parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const { parser , round , isoWeekday } = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n return +value;\n}\n function determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for(let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i){\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\n function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for(let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--){\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n function determineMajorUnit(unit) {\n for(let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i){\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n function addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const { lo , hi } = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n function setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for(major = first; major <= last; major = +adapter.add(major, 1, majorUnit)){\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n function ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for(i = 0; i < ilen; ++i){\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n static id = 'time';\n static defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n callback: false,\n major: {\n enabled: false\n }\n }\n };\n constructor(props){\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {\n min,\n max\n };\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map((tick)=>+tick.value));\n }\n }\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start,\n end,\n factor: 1 / (start + 1 + end)\n };\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for(time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++){\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort(sorter).map((x)=>+x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n if (formatter) {\n return callback(formatter, [\n time,\n index,\n ticks\n ], this);\n }\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [\n exampleTime\n ], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return this._cache.data = this.normalize(timestamps);\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for(i = 0, ilen = labels.length; i < ilen; ++i){\n timestamps.push(parse(this, labels[i]));\n }\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({ lo , hi } = _lookupByKey(table, 'pos', val));\n }\n ({ pos: prevSource , time: prevTarget } = table[lo]);\n ({ pos: nextSource , time: nextTarget } = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({ lo , hi } = _lookupByKey(table, 'time', val));\n }\n ({ time: prevSource , pos: prevTarget } = table[lo]);\n ({ time: nextSource , pos: nextTarget } = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n static id = 'timeseries';\n static defaults = TimeScale.defaults;\n constructor(props){\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const { min , max } = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for(i = 0, ilen = timestamps.length; i < ilen; ++i){\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {\n time: min,\n pos: 0\n },\n {\n time: max,\n pos: 1\n }\n ];\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n return table;\n }\n _generate() {\n const min = this.min;\n const max = this.max;\n let timestamps = super.getDataTimestamps();\n if (!timestamps.includes(min) || !timestamps.length) {\n timestamps.splice(0, 0, min);\n }\n if (!timestamps.includes(max) || timestamps.length === 1) {\n timestamps.push(max);\n }\n return timestamps.sort((a, b)=>a - b);\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, plugin_colors as Colors, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, defaults, elements, layouts, plugins, registerables, registry, scales };\n//# sourceMappingURL=chart.js.map\n","import { Chart as Chart$1, BarController, DoughnutController, LineController, PieController, PolarAreaController, RadarController, BubbleController, ScatterController } from 'chart.js';\nimport { version, isProxy, toRaw, defineComponent, ref, shallowRef, onMounted, onUnmounted, watch, nextTick, h } from 'vue';\n\nconst CommonProps = {\n data: {\n type: Object,\n required: true\n },\n options: {\n type: Object,\n default: ()=>({})\n },\n plugins: {\n type: Array,\n default: ()=>[]\n },\n datasetIdKey: {\n type: String,\n default: \"label\"\n },\n updateMode: {\n type: String,\n default: undefined\n }\n};\nconst A11yProps = {\n ariaLabel: {\n type: String\n },\n ariaDescribedby: {\n type: String\n }\n};\nconst Props = {\n type: {\n type: String,\n required: true\n },\n destroyDelay: {\n type: Number,\n default: 0 // No delay by default\n },\n ...CommonProps,\n ...A11yProps\n};\n\nconst compatProps = version[0] === \"2\" ? (internals, props)=>Object.assign(internals, {\n attrs: props\n }) : (internals, props)=>Object.assign(internals, props);\nfunction toRawIfProxy(obj) {\n return isProxy(obj) ? toRaw(obj) : obj;\n}\nfunction cloneProxy(obj) {\n let src = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : obj;\n return isProxy(src) ? new Proxy(obj, {}) : obj;\n}\nfunction setOptions(chart, nextOptions) {\n const options = chart.options;\n if (options && nextOptions) {\n Object.assign(options, nextOptions);\n }\n}\nfunction setLabels(currentData, nextLabels) {\n currentData.labels = nextLabels;\n}\nfunction setDatasets(currentData, nextDatasets, datasetIdKey) {\n const addedDatasets = [];\n currentData.datasets = nextDatasets.map((nextDataset)=>{\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find((dataset)=>dataset[datasetIdKey] === nextDataset[datasetIdKey]);\n // There is no original to update, so simply add new one\n if (!currentDataset || !nextDataset.data || addedDatasets.includes(currentDataset)) {\n return {\n ...nextDataset\n };\n }\n addedDatasets.push(currentDataset);\n Object.assign(currentDataset, nextDataset);\n return currentDataset;\n });\n}\nfunction cloneData(data, datasetIdKey) {\n const nextData = {\n labels: [],\n datasets: []\n };\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n return nextData;\n}\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getDatasetAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"dataset\", {\n intersect: true\n }, false);\n}\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getElementAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"nearest\", {\n intersect: true\n }, false);\n}\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getElementsAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"index\", {\n intersect: true\n }, false);\n}\n\nconst Chart = defineComponent({\n props: Props,\n setup (props, param) {\n let { expose , slots } = param;\n const canvasRef = ref(null);\n const chartRef = shallowRef(null);\n expose({\n chart: chartRef\n });\n const renderChart = ()=>{\n if (!canvasRef.value) return;\n const { type , data , options , plugins , datasetIdKey } = props;\n const clonedData = cloneData(data, datasetIdKey);\n const proxiedData = cloneProxy(clonedData, data);\n chartRef.value = new Chart$1(canvasRef.value, {\n type,\n data: proxiedData,\n options: {\n ...options\n },\n plugins\n });\n };\n const destroyChart = ()=>{\n const chart = toRaw(chartRef.value);\n if (chart) {\n if (props.destroyDelay > 0) {\n setTimeout(()=>{\n chart.destroy();\n chartRef.value = null;\n }, props.destroyDelay);\n } else {\n chart.destroy();\n chartRef.value = null;\n }\n }\n };\n const update = (chart)=>{\n chart.update(props.updateMode);\n };\n onMounted(renderChart);\n onUnmounted(destroyChart);\n watch([\n ()=>props.options,\n ()=>props.data\n ], (param, param1)=>{\n let [nextOptionsProxy, nextDataProxy] = param, [prevOptionsProxy, prevDataProxy] = param1;\n const chart = toRaw(chartRef.value);\n if (!chart) {\n return;\n }\n let shouldUpdate = false;\n if (nextOptionsProxy) {\n const nextOptions = toRawIfProxy(nextOptionsProxy);\n const prevOptions = toRawIfProxy(prevOptionsProxy);\n if (nextOptions && nextOptions !== prevOptions) {\n setOptions(chart, nextOptions);\n shouldUpdate = true;\n }\n }\n if (nextDataProxy) {\n const nextLabels = toRawIfProxy(nextDataProxy.labels);\n const prevLabels = toRawIfProxy(prevDataProxy.labels);\n const nextDatasets = toRawIfProxy(nextDataProxy.datasets);\n const prevDatasets = toRawIfProxy(prevDataProxy.datasets);\n if (nextLabels !== prevLabels) {\n setLabels(chart.config.data, nextLabels);\n shouldUpdate = true;\n }\n if (nextDatasets && nextDatasets !== prevDatasets) {\n setDatasets(chart.config.data, nextDatasets, props.datasetIdKey);\n shouldUpdate = true;\n }\n }\n if (shouldUpdate) {\n nextTick(()=>{\n update(chart);\n });\n }\n }, {\n deep: true\n });\n return ()=>{\n return h(\"canvas\", {\n role: \"img\",\n \"aria-label\": props.ariaLabel,\n \"aria-describedby\": props.ariaDescribedby,\n ref: canvasRef\n }, [\n h(\"p\", {}, [\n slots.default ? slots.default() : \"\"\n ])\n ]);\n };\n }\n});\n\nfunction createTypedChart(type, registerables) {\n Chart$1.register(registerables);\n return defineComponent({\n props: CommonProps,\n setup (props, param) {\n let { expose } = param;\n const chart = shallowRef(null);\n const chartComponentRef = shallowRef(null);\n watch(()=>chartComponentRef.value?.chart ?? null, (nextChart)=>{\n chart.value = nextChart;\n }, {\n flush: \"sync\"\n });\n expose({\n chart\n });\n const reforwardRef = (instance)=>{\n chartComponentRef.value = instance;\n };\n return ()=>{\n return h(Chart, compatProps({\n ref: reforwardRef\n }, {\n type,\n ...props\n }));\n };\n }\n });\n}\nconst Bar = /* #__PURE__ */ createTypedChart(\"bar\", BarController);\nconst Doughnut = /* #__PURE__ */ createTypedChart(\"doughnut\", DoughnutController);\nconst Line = /* #__PURE__ */ createTypedChart(\"line\", LineController);\nconst Pie = /* #__PURE__ */ createTypedChart(\"pie\", PieController);\nconst PolarArea = /* #__PURE__ */ createTypedChart(\"polarArea\", PolarAreaController);\nconst Radar = /* #__PURE__ */ createTypedChart(\"radar\", RadarController);\nconst Bubble = /* #__PURE__ */ createTypedChart(\"bubble\", BubbleController);\nconst Scatter = /* #__PURE__ */ createTypedChart(\"scatter\", ScatterController);\n\nexport { Bar, Bubble, Chart, Doughnut, Line, Pie, PolarArea, Radar, Scatter, createTypedChart, getDatasetAtEvent, getElementAtEvent, getElementsAtEvent };\n//# sourceMappingURL=index.js.map\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n try {\n if (element.matches(':popover-open')) {\n return true;\n }\n } catch (_e) {\n // no-op\n }\n try {\n return element.matches(':modal');\n } catch (_e) {\n return false;\n }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (isWebKitValue == null) {\n isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n }\n return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return (node.ownerDocument || node).body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n } else {\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n }\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement && offsetParent) {\n const win = getWindow(domElement);\n const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return element.getClientRects ? Array.from(element.getClientRects()) : [];\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(html) {\n const scroll = getNodeScroll(html);\n const body = html.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(html);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy, rootBoundary) {\n if (rootBoundary === void 0) {\n rootBoundary = 'viewport';\n }\n const isLayoutViewport = rootBoundary === 'layoutViewport';\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n // Client coordinates are relative to the layout viewport, except in\n // WebKit with an `absolute` strategy, where they are relative to the\n // visual viewport.\n const layoutRelativeClientCoords = !isWebKit() || strategy === 'fixed';\n if (isLayoutViewport) {\n if (!layoutRelativeClientCoords) {\n x = -visualViewport.offsetLeft;\n y = -visualViewport.offsetTop;\n }\n } else {\n width = visualViewport.width;\n height = visualViewport.height;\n if (layoutRelativeClientCoords) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // `scrollbar-gutter: stable` on the reserves gutter space that shrinks\n // the visual width but isn't reflected in `html.clientWidth`, so subtract it.\n // Only the inline-end (right) gutter can hold the scrollbar; `both-edges` also\n // reserves an empty inline-start gutter that clips nothing, so exclude just\n // the one scrollbar-side gutter — halve the measured (two-gutter) total. A\n // left-side scrollbar (`windowScrollbarX > 0`) is already handled by\n // `getHTMLOffset`/`visualViewport.width`; skip it here.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n const gutter = getComputedStyle(html).scrollbarGutter === 'stable both-edges' ? reservedWidth / 2 : reservedWidth;\n if (gutter <= SCROLLBAR_MAX) {\n width -= gutter;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = getScale(element);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport' || clippingAncestor === 'layoutViewport') {\n rect = getViewportRect(element, strategy, clippingAncestor);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let lastKeptComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n // Position of the containing block chain below the current node. A fixed\n // element whose containing block hasn't been found yet is a fixed chain.\n const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? 'fixed' : '';\n\n // A non-containing ancestor does not clip the element when the chain\n // below it escapes it: a fixed chain escapes all ancestors up to the\n // next containing block, an absolute chain escapes static ancestors.\n const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === 'fixed' || lastPosition === 'absolute' && computedStyle.position === 'static');\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // The kept node carries the chain position for the next iteration.\n lastKeptComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n let top = firstRect.top;\n let right = firstRect.right;\n let bottom = firstRect.bottom;\n let left = firstRect.left;\n for (let i = 1; i < clippingAncestors.length; i++) {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n top = max(rect.top, top);\n right = min(rect.right, right);\n bottom = min(rect.bottom, bottom);\n left = max(rect.left, left);\n }\n return {\n width: right - left,\n height: bottom - top,\n x: left,\n y: top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n\n // If the scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n if (!isOffsetParentAnElement && documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the element as the offsetParent if it's non-static,\n // while Chrome and Safari return the element. The element must\n // be used to perform the correct calculations even if the element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove, ancestorResize) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n\n // The entry is a snapshot, so the reference may have moved since the\n // intersection was computed (under performance constraints, or between\n // consecutive frames of a multi-frame layout shift). The reported ratio\n // and the observed area are stale in that case and cannot be trusted to\n // detect subsequent movement, so refresh regardless of the ratio.\n if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n return refresh();\n }\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped in place, the ratio is 0. Throttle\n // the refresh to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle