From b7a87376de343ea1c515ae7ee91f22ce4ce468cb Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 11 Mar 2025 17:20:30 +0100 Subject: [PATCH 01/14] Remove messaging component from www --- move-merge-src.js | 1 - src/worker/async-store.js | 4 +- src/worker/components/mailbox-handlers.js | 4 +- .../components/messaging.js} | 8 +- src/worker/components/migrate-user-object.js | 4 +- src/worker/modules/mailbox.js | 4 +- src/worker/modules/messenger.js | 4 +- src/worker/modules/team.js | 4 +- src/worker/store.ts | 2 +- www/common/common-messaging.js | 161 ------------------ www/common/cryptpad-common.js | 3 +- 11 files changed, 18 insertions(+), 181 deletions(-) rename src/{common/common-messaging.js => worker/components/messaging.js} (96%) delete mode 100644 www/common/common-messaging.js diff --git a/move-merge-src.js b/move-merge-src.js index 2a5683584..e7e8cc251 100644 --- a/move-merge-src.js +++ b/move-merge-src.js @@ -16,7 +16,6 @@ const map = { './src/common/common-credential.js': './www/common/common-credential.js', './src/common/common-feedback.js': './www/common/common-feedback.js', './src/common/common-hash.js': './www/common/common-hash.js', - './src/common/common-messaging.js': './www/common/common-messaging.js', './src/common/common-realtime.js': './www/common/common-realtime.js', './src/common/common-signing-keys.js': './www/common/common-signing-keys.js', './src/common/common-util.js': './www/common/common-util.js', diff --git a/src/worker/async-store.js b/src/worker/async-store.js index 40355d419..aee254d0a 100644 --- a/src/worker/async-store.js +++ b/src/worker/async-store.js @@ -3453,7 +3453,7 @@ if (typeof(module) !== 'undefined' && module.exports) { require('../common/common-constants'), require('../common/common-feedback'), require('../common/common-realtime'), - require('../common/common-messaging'), + require('./components/messaging'), require('../common/pinpad'), require('../common/rpc'), require('./components/merge-drive'), @@ -3493,7 +3493,7 @@ if (typeof(module) !== 'undefined' && module.exports) { '/common/common-constants.js', // OK '/common/common-feedback.js', // OK '/common/common-realtime.js', // OK - '/common/common-messaging.js', // OK + '/common/outer/messaging.js', // OK '/common/pinpad.js', // OK '/common/rpc.js', // OK '/common/merge-drive.js', // OK diff --git a/src/worker/components/mailbox-handlers.js b/src/worker/components/mailbox-handlers.js index 3f918e519..f5b00b386 100644 --- a/src/worker/components/mailbox-handlers.js +++ b/src/worker/components/mailbox-handlers.js @@ -985,7 +985,7 @@ const factory = (Messaging, Hash, Util, Crypto, Block) => { if (typeof(module) !== 'undefined' && module.exports) { module.exports = factory( - require('../../common/common-messaging'), + require('./messaging'), require('../../common/common-hash'), require('../../common/common-util'), require('chainpad-crypto'), @@ -993,7 +993,7 @@ if (typeof(module) !== 'undefined' && module.exports) { ); } else if ((typeof(define) !== 'undefined' && define !== null) && (define.amd !== null)) { define([ - '/common/common-messaging.js', + '/common/outer/messaging.js', '/common/common-hash.js', '/common/common-util.js', '/components/chainpad-crypto/crypto.js', diff --git a/src/common/common-messaging.js b/src/worker/components/messaging.js similarity index 96% rename from src/common/common-messaging.js rename to src/worker/components/messaging.js index f9b7fde24..5fe20f0e7 100644 --- a/src/common/common-messaging.js +++ b/src/worker/components/messaging.js @@ -142,10 +142,10 @@ const factory = (Crypto, Hash, Util, Constants, Realtime) => { if (typeof(module) !== 'undefined' && module.exports) { module.exports = factory( require('chainpad-crypto'), - require('./common-hash'), - require('./common-util'), - require('./common-constants'), - require('./common-realtime') + require('../../common/common-hash'), + require('../../common/common-util'), + require('../../common/common-constants'), + require('../../common/common-realtime') ); } else if ((typeof(define) !== 'undefined' && define !== null) && (define.amd !== null)) { define([ diff --git a/src/worker/components/migrate-user-object.js b/src/worker/components/migrate-user-object.js index 638c062a6..23ef1103a 100644 --- a/src/worker/components/migrate-user-object.js +++ b/src/worker/components/migrate-user-object.js @@ -512,7 +512,7 @@ if (typeof(module) !== 'undefined' && module.exports) { require('../../common/common-feedback'), require('../../common/common-hash'), require('../../common/common-util'), - require('../../common/common-messaging'), + require('./messaging'), require('../../common/cryptget'), require('../modules/mailbox'), undefined, @@ -525,7 +525,7 @@ if (typeof(module) !== 'undefined' && module.exports) { '/common/common-feedback.js', '/common/common-hash.js', '/common/common-util.js', - '/common/common-messaging.js', + '/common/outer/messaging.js', '/common/cryptget.js', '/common/outer/mailbox.js', '/customize/messages.js', diff --git a/src/worker/modules/mailbox.js b/src/worker/modules/mailbox.js index 42e6d5a24..e47a77007 100644 --- a/src/worker/modules/mailbox.js +++ b/src/worker/modules/mailbox.js @@ -679,7 +679,7 @@ if (typeof(module) !== 'undefined' && module.exports) { require('../../common/common-util'), require('../../common/common-hash'), require('../../common/common-realtime'), - require('../../common/common-messaging'), + require('../components/messaging'), require('../../common/notify'), require('../components/mailbox-handlers'), require('chainpad-netflux'), @@ -691,7 +691,7 @@ if (typeof(module) !== 'undefined' && module.exports) { '/common/common-util.js', '/common/common-hash.js', '/common/common-realtime.js', - '/common/common-messaging.js', + '/common/outer/messaging.js', '/common/notify.js', '/common/outer/mailbox-handlers.js', 'chainpad-netflux', diff --git a/src/worker/modules/messenger.js b/src/worker/modules/messenger.js index 30cf1908d..281fc13d5 100644 --- a/src/worker/modules/messenger.js +++ b/src/worker/modules/messenger.js @@ -1126,7 +1126,7 @@ if (typeof(module) !== 'undefined' && module.exports) { require('../../common/common-hash'), require('../../common/common-util'), require('../../common/common-realtime'), - require('../../common/common-messaging'), + require('../components/messaging'), require('../../common/common-constants'), undefined, require('../../common/pad-types'), @@ -1138,7 +1138,7 @@ if (typeof(module) !== 'undefined' && module.exports) { '/common/common-hash.js', '/common/common-util.js', '/common/common-realtime.js', - '/common/common-messaging.js', + '/common/outer/messaging.js', '/common/common-constants.js', '/customize/messages.js', '/common/pad-types.js', diff --git a/src/worker/modules/team.js b/src/worker/modules/team.js index 1e27ab1dd..07ae8834f 100644 --- a/src/worker/modules/team.js +++ b/src/worker/modules/team.js @@ -2237,7 +2237,7 @@ if (typeof(module) !== 'undefined' && module.exports) { require('../../common/user-object'), require('../components/sharedfolder'), require('../components/roster'), - require('../../common/common-messaging'), + require('../components/messaging'), require('../../common/common-feedback'), require('../components/invitation'), require('../../common/cryptget'), @@ -2262,7 +2262,7 @@ if (typeof(module) !== 'undefined' && module.exports) { '/common/user-object.js', '/common/outer/sharedfolder.js', '/common/outer/roster.js', - '/common/common-messaging.js', + '/common/outer/messaging.js', '/common/common-feedback.js', '/common/outer/invitation.js', '/common/cryptget.js', diff --git a/src/worker/store.ts b/src/worker/store.ts index e02087423..6e71a912c 100644 --- a/src/worker/store.ts +++ b/src/worker/store.ts @@ -11,7 +11,6 @@ import * as Util from '../common/common-util.js'; import * as Hash from '../common/common-hash.js'; import * as Feedback from '../common/common-feedback.js'; import * as Realtime from '../common/common-realtime.js'; -import * as Messaging from '../common/common-messaging.js'; import * as Constants from '../common/common-constants.js'; import * as Credential from '../common/common-credential.js'; import * as ProxyManager from '../common/proxy-manager.js'; @@ -32,6 +31,7 @@ import * as AsyncConnector from './core/async-connector.js'; // Components import * as Migrate from './components/migrate-user-object.js'; +import * as Messaging from './components/messaging.js'; // Modules import * as Mailbox from './modules/mailbox.js'; diff --git a/www/common/common-messaging.js b/www/common/common-messaging.js deleted file mode 100644 index f9b7fde24..000000000 --- a/www/common/common-messaging.js +++ /dev/null @@ -1,161 +0,0 @@ -// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -(() => { -const factory = (Crypto, Hash, Util, Constants, Realtime) => { - var Msg = {}; - - var createData = Msg.createData = function (proxy, hash) { - var data = { - channel: hash || Hash.createChannelId(), - displayName: proxy['cryptpad.username'], - profile: proxy.profile && proxy.profile.view, - edPublic: proxy.edPublic, - curvePublic: proxy.curvePublic, - notifications: Util.find(proxy, ['mailboxes', 'notifications', 'channel']), - avatar: proxy.profile && proxy.profile.avatar, - uid: proxy.uid, - }; - if (hash === false) { delete data.channel; } - return data; - }; - - var getFriend = Msg.getFriend = function (proxy, pubkey) { - if (!pubkey) { return; } - if (pubkey === proxy.curvePublic) { - var data = createData(proxy); - delete data.channel; - return data; - } - return proxy.friends ? proxy.friends[pubkey] : undefined; - }; - - var getFriendList = Msg.getFriendList = function (proxy) { - if (!proxy.friends) { proxy.friends = {}; } - return proxy.friends; - }; - - var eachFriend = function (friends, cb) { - Object.keys(friends).forEach(function (id) { - if (id === 'me') { return; } - cb(friends[id], id, friends); - }); - }; - - Msg.getFriendChannelsList = function (proxy) { - var list = []; - eachFriend(proxy.friends, function (friend) { - list.push(friend.channel); - }); - return list; - }; - - Msg.declineFriendRequest = function (store, data, cb) { - store.mailbox.sendTo('DECLINE_FRIEND_REQUEST', {}, { - channel: data.notifications, - curvePublic: data.curvePublic - }, function (obj) { - cb(obj); - }); - }; - Msg.acceptFriendRequest = function (store, data, cb) { - var friend = getFriend(store.proxy, data.curvePublic) || {}; - var myData = createData(store.proxy, friend.channel || data.channel); - store.mailbox.sendTo('ACCEPT_FRIEND_REQUEST', { user: myData }, { - channel: data.notifications, - curvePublic: data.curvePublic - }, function (obj) { - cb(obj); - }); - }; - Msg.addToFriendList = function (cfg, data, cb) { - var proxy = cfg.proxy; - var friends = getFriendList(proxy); - var pubKey = data.curvePublic; // todo validata data - - if (pubKey === proxy.curvePublic) { return void cb("E_MYKEY"); } - - friends[pubKey] = data; - - Realtime.whenRealtimeSyncs(cfg.realtime, function () { - cb(); - cfg.pinPads([data.channel], function (res) { - if (res.error) { console.error(res.error); } - }); - }); - }; - - Msg.updateMyData = function (store, curve) { - var myData = createData(store.proxy, false); - if (store.proxy.friends) { - store.proxy.friends.me = Util.clone(myData); - delete store.proxy.friends.me.channel; - } - if (store.modules['team']) { - store.modules['team'].updateMyData(myData); - } - var todo = function (friend) { - if (!friend || !friend.notifications) { return; } - delete friend.user; - myData.channel = friend.channel; - store.mailbox.sendTo('UPDATE_DATA', myData, { - channel: friend.notifications, - curvePublic: friend.curvePublic - }, function (obj) { - if (obj && obj.error) { console.error(obj); } - }); - }; - if (curve) { - var friend = getFriend(store.proxy, curve); - return void todo(friend); - } - eachFriend(store.proxy.friends || {}, todo); - }; - - Msg.removeFriend = function (store, curvePublic, cb) { - var proxy = store.proxy; - var friend = proxy.friends[curvePublic]; - if (!friend) { return void cb({error: 'ENOENT'}); } - if (!friend.notifications) { return void cb({error: 'EINVAL'}); } - - store.mailbox.sendTo('UNFRIEND', { - curvePublic: proxy.curvePublic - }, { - channel: friend.notifications, - curvePublic: friend.curvePublic - }, function (obj) { - if (obj && obj.error) { - return void cb(obj); - } - store.messenger.onFriendRemoved(curvePublic, friend.channel); - delete proxy.friends[curvePublic]; - Realtime.whenRealtimeSyncs(store.realtime, function () { - cb(obj); - }); - }); - }; - - return Msg; -}; - -if (typeof(module) !== 'undefined' && module.exports) { - module.exports = factory( - require('chainpad-crypto'), - require('./common-hash'), - require('./common-util'), - require('./common-constants'), - require('./common-realtime') - ); -} else if ((typeof(define) !== 'undefined' && define !== null) && (define.amd !== null)) { - define([ - '/components/chainpad-crypto/crypto.js', - '/common/common-hash.js', - '/common/common-util.js', - '/common/common-constants.js', - '/common/common-realtime.js', - ], factory); -} else { - // unsupported initialization -} -})(); diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index 934c02e43..1ef3b3246 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -9,7 +9,6 @@ define([ '/common/common-util.js', '/common/common-hash.js', '/common/outer/cache-store.js', - '/common/common-messaging.js', '/common/common-constants.js', '/common/common-feedback.js', '/common/visible.js', @@ -25,7 +24,7 @@ define([ '/components/nthen/index.js', '/components/tweetnacl/nacl-fast.min.js' ], function (Config, Broadcast, Messages, Util, Hash, Cache, - Messaging, Constants, Feedback, Visible, UserObject, LocalStore, Channel, Block, + Constants, Feedback, Visible, UserObject, LocalStore, Channel, Block, Cred, Login, Store, AppConfig, nThen) { /* This file exposes functionality which is specific to Cryptpad, but not to From 0d11e86a064345d95e9d4c4143182329175c0ce7 Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 11 Mar 2025 17:44:13 +0100 Subject: [PATCH 02/14] Add badge to user data --- src/worker/async-store.js | 1 + src/worker/components/messaging.js | 1 + src/worker/modules/profile.js | 7 +++++++ www/profile/inner.js | 6 ++++++ 4 files changed, 15 insertions(+) diff --git a/src/worker/async-store.js b/src/worker/async-store.js index aee254d0a..783e41ce1 100644 --- a/src/worker/async-store.js +++ b/src/worker/async-store.js @@ -658,6 +658,7 @@ const factory = (ApiConfig = {}, Sortify, UserObject, ProxyManager, color: Store.getUserColor(), notifications: Util.find(proxy, ['mailboxes', 'notifications', 'channel']), curvePublic: proxy.curvePublic, + badge: Util.find(proxy, ['profile', 'badge']) }, // "priv" is not shared with other users but is needed by the apps priv: { diff --git a/src/worker/components/messaging.js b/src/worker/components/messaging.js index 5fe20f0e7..a00419f24 100644 --- a/src/worker/components/messaging.js +++ b/src/worker/components/messaging.js @@ -15,6 +15,7 @@ const factory = (Crypto, Hash, Util, Constants, Realtime) => { curvePublic: proxy.curvePublic, notifications: Util.find(proxy, ['mailboxes', 'notifications', 'channel']), avatar: proxy.profile && proxy.profile.avatar, + badge: proxy.profile && proxy.profile.badge, uid: proxy.uid, }; if (hash === false) { delete data.channel; } diff --git a/src/worker/modules/profile.js b/src/worker/modules/profile.js index 0a170fc11..abd9a4816 100644 --- a/src/worker/modules/profile.js +++ b/src/worker/modules/profile.js @@ -99,6 +99,12 @@ const factory = (Util, Hash, Constants, Realtime, ctx.emit('UPDATE', ctx.listmap.proxy, ctx.clients.filter(function (clientId) { return clientId !== cId; })); + if (key === 'badge') { + ctx.Store.set(null, { + key: ['profile', 'badge'], + value: value || undefined + }, () => {}); + } cb(ctx.listmap.proxy); }); }; @@ -113,6 +119,7 @@ const factory = (Util, Hash, Constants, Realtime, var store = cfg.store; if (!store.loggedIn || !store.proxy.edPublic) { return; } var ctx = { + Store: cfg.Store, store: store, pinPads: cfg.pinPads, updateMetadata: cfg.updateMetadata, diff --git a/www/profile/inner.js b/www/profile/inner.js index 63e2c8d2a..2a3e1c73a 100644 --- a/www/profile/inner.js +++ b/www/profile/inner.js @@ -389,6 +389,12 @@ define([ }); }); }); + + // XXX badge temp + APP.module.execCommand("SET", { + key: 'badge', + value: "administrator" + }, function () {}); }; var addAvatar = function ($container) { var $block = $('
', {id: AVATAR_ID}).appendTo($container); From 3caec4e5210f6bda88c0362478466b7bd6dab5f1 Mon Sep 17 00:00:00 2001 From: yflory Date: Fri, 14 Mar 2025 16:53:35 +0100 Subject: [PATCH 03/14] List first badges --- lib/commands/pin-rpc.js | 6 +++ lib/rpc.js | 1 + src/worker/async-store.js | 5 ++- src/worker/modules/badge.ts | 80 +++++++++++++++++++++++++++++++++++++ src/worker/modules/test.ts | 2 +- src/worker/store.ts | 9 +++-- src/worker/types.ts | 8 +++- www/profile/inner.js | 18 +++++++++ 8 files changed, 121 insertions(+), 8 deletions(-) create mode 100644 src/worker/modules/badge.ts diff --git a/lib/commands/pin-rpc.js b/lib/commands/pin-rpc.js index 10a141745..f537f27c2 100644 --- a/lib/commands/pin-rpc.js +++ b/lib/commands/pin-rpc.js @@ -309,3 +309,9 @@ Pinning.getDeletedPads = function (Env, channels, cb) { Pinning.isChannelPinned = function (Env, channel, cb) { return void cb(void 0, true); }; + +Pinning.isPremium = function (Env, userKey, cb) { + const limit = Env.limits[userKey]; + return void cb(void 0, !!limit?.plan); + //return void cb(void 0, (limit?.plan && limit.plan !== "custom")); +}; diff --git a/lib/rpc.js b/lib/rpc.js index c28c5210a..806950db5 100644 --- a/lib/rpc.js +++ b/lib/rpc.js @@ -24,6 +24,7 @@ const UNAUTHENTICATED_CALLS = { WRITE_PRIVATE_MESSAGE: Channel.writePrivateMessage, DELETE_MAILBOX_MESSAGE: Channel.deleteMailboxMessage, GET_METADATA: Metadata.getMetadata, + IS_PREMIUM: Pinning.isPremium, ADD_FIRST_ADMIN: Admin.addFirstAdmin }; diff --git a/src/worker/async-store.js b/src/worker/async-store.js index 783e41ce1..e21f64ae5 100644 --- a/src/worker/async-store.js +++ b/src/worker/async-store.js @@ -9,12 +9,13 @@ const factory = (ApiConfig = {}, Sortify, UserObject, ProxyManager, SF, AccountTS, DriveTS, Cursor, Support, Integration, OnlyOffice, Mailbox, Profile, Team, Messenger, History, - Calendar, Block, NetConfig, AppConfig = {}, + Calendar, BadgeTS, Block, NetConfig, AppConfig = {}, Crypto, ChainPad, CpNetflux, Listmap, Netflux, nThen) => { const Account = AccountTS.Account; const Drive = DriveTS.Drive; + const Badge = BadgeTS.Badge; const window = globalThis; globalThis.nacl = globalThis.nacl || Crypto.Nacl; @@ -2808,6 +2809,7 @@ const factory = (ApiConfig = {}, Sortify, UserObject, ProxyManager, loadUniversal(Integration, 'integration', waitFor); loadUniversal(Messenger, 'messenger', waitFor); loadUniversal(History, 'history', waitFor); + loadUniversal(Badge, 'badge', waitFor); loadOnlyOffice(); if (store) { store.messenger = store.modules['messenger']; @@ -3472,6 +3474,7 @@ if (typeof(module) !== 'undefined' && module.exports) { require('./modules/messenger'), require('./modules/history'), require('./modules/calendar'), + require('./modules/badge'), require('../common/login-block'), require('../common/network-config'), undefined, diff --git a/src/worker/modules/badge.ts b/src/worker/modules/badge.ts new file mode 100644 index 000000000..4a5f23f38 --- /dev/null +++ b/src/worker/modules/badge.ts @@ -0,0 +1,80 @@ +import nacl from 'tweetnacl/nacl-fast'; +import nThen from 'nthen'; +import { Module, ModuleObject, Callback } from '../types' +import * as Util from '../../common/common-util.js'; + +export interface BadgeModule extends Module { + setCustomize: (data: any) => void +} + +let ApiConfig:any = {}; + +const checkApi = (ctx, ed, cb) => { + const badges = []; + const origin:string = ApiConfig?.httpUnsafeOrigin; + Util.fetchApi(origin, 'config', true, Config => { + const isAdmin = Config?.adminKeys?.includes(ed); + if (isAdmin) { badges.push('admin'); } + const isModerator = Config?.moderatorKeys?.includes(ed); + if (isModerator) { badges.push('moderator'); } + cb(badges); + }); +}; +const checkPremium = (ctx, ed, cb) => { + ctx.Store.anonRpcMsg('', { + msg: 'IS_PREMIUM', + data: ed + }, obj => { + let premium = Array.isArray(obj) && obj[0]; + cb(premium); + }); +}; + +const listBadges:Callback = (ctx, data, clientId, cb) => { + const badges = []; + const origin:string = ApiConfig?.httpUnsafeOrigin; + const ed = ctx.store?.proxy?.edPublic; + nThen(waitFor => { + checkApi(ctx, ed, waitFor(list => { + Array.prototype.push.apply(badges, list); + })); + }).nThen(waitFor => { + checkPremium(ctx, ed, waitFor(isPremium => { + if (isPremium) { badges.push('premium'); } + })); + }).nThen(() => { + cb(badges); + }); +}; + +const Badge: BadgeModule = { + + init: (config, cb, emit) => { + + const ctx:any = { + store: config.store, + Store: config.Store, + updateMetadata: config.updateMetadata + }; + + return { + removeClient: () => {}, + execCommand: (clientId, obj, cb) => { + console.log('Exex command', clientId, obj); + const cmd = obj.cmd; + const data = obj.data; + if (cmd === 'LIST_BADGES') { + return void listBadges(ctx, data, clientId, cb); + } + cb(); + }, + } + }, + setCustomize: data => { + console.error('PAICONFIG', data); + ApiConfig = data?.ApiConfig; + } + +}; + +export { Badge } diff --git a/src/worker/modules/test.ts b/src/worker/modules/test.ts index de541b3b6..20ab330ab 100644 --- a/src/worker/modules/test.ts +++ b/src/worker/modules/test.ts @@ -7,7 +7,7 @@ export interface TestModuleObject extends ModuleObject { const TestModule: Module = { - init: (config, cb) => { + init: (config, cb, emit) => { let myTest = {}; cb(); diff --git a/src/worker/store.ts b/src/worker/store.ts index 6e71a912c..2069fa825 100644 --- a/src/worker/store.ts +++ b/src/worker/store.ts @@ -1,6 +1,7 @@ import nacl from 'tweetnacl/nacl-fast'; import { Module } from './types'; -import { TestModule, TestModuleObject } from './modules/test'; +//import { TestModule, TestModuleObject } from './modules/test'; +import { Badge } from './modules/badge'; import { Account } from './components/account'; @@ -72,7 +73,8 @@ let start = (cfg: StoreConfig):void => { Calendar, Store, Account, - Mailbox + Mailbox, + Badge ].forEach(dep => { if (typeof(dep.setCustomize) === "function") { dep.setCustomize(cfg); @@ -84,10 +86,9 @@ let start = (cfg: StoreConfig):void => { const ApiConfig = cfg.ApiConfig; let test = TestModule.init({ - emit: () => {} }, () => { console.log('Test initialized'); - }); + }, () => {}); let b64 = test.toBase64('pewpewPEZPEZ'); console.error(b64); console.error(AppConfig.minimumPasswordLength, AppConfig.degradedLimit); diff --git a/src/worker/types.ts b/src/worker/types.ts index 03c07de39..a7e81270b 100644 --- a/src/worker/types.ts +++ b/src/worker/types.ts @@ -3,7 +3,11 @@ export type Callback = (...args: any[]) => void export type ModuleConfig = { - emit: Function + store: any, + Store: any, + updateMetadata: Callback, + pinPads: Callback, + unpinPads: Callback } export type CommandData = { @@ -17,7 +21,7 @@ export interface ModuleObject { } export interface Module { - init: (config: ModuleConfig, cb: Callback) => T + init: (config: ModuleConfig, cb: Callback, emit: Callback) => T } diff --git a/www/profile/inner.js b/www/profile/inner.js index 2a3e1c73a..cb7f88574 100644 --- a/www/profile/inner.js +++ b/www/profile/inner.js @@ -92,6 +92,7 @@ define([ var LINK_ID = "cp-app-profile-link"; var AVATAR_ID = "cp-app-profile-avatar"; var DESCRIPTION_ID = "cp-app-profile-description"; + var BADGES_ID = "cp-app-profile-badges"; var CREATE_ID = "cp-app-profile-create"; var HEADER_ID = "cp-app-profile-header"; var HEADER_RIGHT_ID = "cp-app-profile-rightside"; @@ -435,6 +436,18 @@ define([ displayAvatar(data.avatar); }; + const addBadges = $container => { + if (APP.readOnly) { return; } + var $block = $('
', {id: BADGES_ID, class:'cp-sidebarlayout-element'}).appendTo($container); + APP.$badges = $(h('span')).appendTo($block); + }; + const refreshBadges = () => { + if (!APP.$badges) { return; } + APP.badge.execCommand('LIST_BADGES', {}, data => { + console.error(data); + }); + }; + var addDescription = function ($container) { var $block = $('
', {id: DESCRIPTION_ID, class:'cp-sidebarlayout-element'}).appendTo($container); @@ -582,6 +595,7 @@ define([ addFriendRequest($rightside); addMuteButton($rightside); addDescription(APP.$rightside); + addBadges(APP.$rightside); addPublicKey($rightside); addCopyData($rightside); addViewButton($rightside); @@ -595,6 +609,7 @@ define([ refreshName(data); refreshLink(data); refreshDescription(data); + refreshBadges(data); refreshFriendRequest(data); refreshMute(data); setPublicKeyButton(data); @@ -671,6 +686,9 @@ define([ APP.module = common.makeUniversal('profile', { onEvent: onEvent }); + APP.badge = common.makeUniversal('badge', { + onEvent: onEvent + }); var execCommand = APP.module.execCommand; init(); From d1a08bcb68ac4d80e87ba7238efefadc98b3bafc Mon Sep 17 00:00:00 2001 From: yflory Date: Wed, 9 Apr 2025 18:22:49 +0200 Subject: [PATCH 04/14] Select badge to display --- customize.dist/src/less2/include/badges.less | 28 +++++++++++++++++ www/common/inner/badges.js | 29 +++++++++++++++++ www/profile/app-profile.less | 24 ++++++++++++++ www/profile/inner.js | 33 ++++++++++++++++++-- 4 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 customize.dist/src/less2/include/badges.less create mode 100644 www/common/inner/badges.js diff --git a/customize.dist/src/less2/include/badges.less b/customize.dist/src/less2/include/badges.less new file mode 100644 index 000000000..7264840b3 --- /dev/null +++ b/customize.dist/src/less2/include/badges.less @@ -0,0 +1,28 @@ +@import (reference) "./colortheme-all.less"; +@import (reference) "./variables.less"; +.badges_vars( + @width: 30px +) { + @badges-width: @width; +} +.badges_main(@width: 30px) { + --LessLoader_require: LessLoader_currentFile(); + .badges_vars(@width); + --badges-width: @badges-width; + --badges-font: ceil(@badges-width*2/3); +} +& { + .badges_vars(); + i.cp-badge { + width: var(--badges-width); + height: var(--badges-width); + box-sizing: border-box; + border: 1px solid @cryptpad_text_col; + border-radius: 50%; + display: inline-flex; + justify-content: center; + align-items: center; + font-size: var(--badges-font); + } +} + diff --git a/www/common/inner/badges.js b/www/common/inner/badges.js new file mode 100644 index 000000000..d214ea60f --- /dev/null +++ b/www/common/inner/badges.js @@ -0,0 +1,29 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +define([ + 'jquery', + '/common/common-interface.js', + '/common/hyperscript.js', + '/customize/messages.js', +], function ($, UI, h, Messages, nThen) { + var Badges = {}; + + const badges = { + admin: 'fa-star-o', + moderator: 'fa-life-ring', + premium: 'fa-check-circle' + } + + Badges.render = id => { + let icon = badges[id]; + if (!icon) { return; } + let cls = icon.indexOf('cptools') === 0 ? 'cptools '+icon : 'fa '+icon; + return h('i', { 'class': `cp-badge ${cls}` }); + }; + + return Badges; +}); + + diff --git a/www/profile/app-profile.less b/www/profile/app-profile.less index 388b0e0b8..70747493f 100644 --- a/www/profile/app-profile.less +++ b/www/profile/app-profile.less @@ -7,6 +7,7 @@ @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/sidebar-layout.less'; @import (reference) '../../customize/src/less2/include/variables.less'; +@import (reference) '../../customize/src/less2/include/badges.less'; &.cp-app-profile { @@ -26,6 +27,29 @@ margin-top: 1rem; } + .cp-profile-badges { + display: flex; + align-items: center; + & > span { + margin-right: 1em; + } + .cp-profile-badges-list { + .badges_main(40px); + i { + cursor: pointer; + &:focus-visible { + outline: @variables_focus_style; + } + &:not(:last-child) { + margin-right: 0.5em; + } + &.cp-selected { + border-color: @cryptpad_color_brand; + } + } + } + } + #cp-app-profile-header { display: flex; flex-flow: row wrap; diff --git a/www/profile/inner.js b/www/profile/inner.js index 73ea46cde..78e945361 100644 --- a/www/profile/inner.js +++ b/www/profile/inner.js @@ -17,6 +17,7 @@ define([ '/common/common-realtime.js', '/common/clipboard.js', '/common/inner/common-mediatag.js', + '/common/inner/badges.js', '/common/hyperscript.js', '/customize/messages.js', '/customize/application_config.js', @@ -48,6 +49,7 @@ define([ Realtime, Clipboard, MT, + Badges, h, Messages, AppConfig, @@ -459,10 +461,35 @@ define([ var $block = $('
', {id: BADGES_ID, class:'cp-sidebarlayout-element'}).appendTo($container); APP.$badges = $(h('span')).appendTo($block); }; - const refreshBadges = () => { + const refreshBadges = (obj) => { if (!APP.$badges) { return; } APP.badge.execCommand('LIST_BADGES', {}, data => { - console.error(data); + APP.$badges.empty(); + let spinner; + let all = data.map(str => { + const i = Badges.render(str); + const $i = $(i).attr('tabindex', 0); + const selected = obj?.badge === str; + if (selected) { $i.addClass('cp-selected'); } + Util.onClickEnter($i, () => { + let value = selected ? '' : str; + spinner.spin(); + APP.module.execCommand('SET', { + key: 'badge', + value + }, function (data) { + spinner.hide(); + APP.updateValues(data); + }); + }); + return i; + }); + let content = h('div.cp-profile-badges', [ + h('span', 'Badges'), + h('div.cp-profile-badges-list', all) + ]); + APP.$badges.append(content); + spinner = UI.makeSpinner(APP.$badges.find('> div')); }); }; @@ -481,7 +508,7 @@ define([ }, [ h('i.fa.fa-pencil', {'aria-hidden': 'true' }), h('span#cp-profile-add-description-button', Messages.profile_addDescription) - ]); + ]); APP.$descriptionEdit = $(button); var save = h('button.btn.btn-primary', Messages.settings_save); var text = h('textarea'); From 3fd917d35d90dfe6723134117bd606057d37e0b7 Mon Sep 17 00:00:00 2001 From: yflory Date: Thu, 10 Apr 2025 16:31:04 +0200 Subject: [PATCH 05/14] Display badges in user list and others' profile --- customize.dist/messages.js | 6 +++- src/worker/async-store.js | 2 ++ src/worker/modules/badge.ts | 44 +++++++++++++++++++++++++---- www/common/inner/badges.js | 5 +++- www/common/inner/common-mediatag.js | 4 +-- www/common/sframe-common-outer.js | 18 ++++++++++++ www/common/toolbar.js | 31 +++++++++++++++++++- www/common/worker.bundle.min.js | 2 +- www/profile/inner.js | 25 ++++++++-------- 9 files changed, 113 insertions(+), 24 deletions(-) diff --git a/customize.dist/messages.js b/customize.dist/messages.js index a28190005..003f6ac57 100755 --- a/customize.dist/messages.js +++ b/customize.dist/messages.js @@ -134,7 +134,11 @@ define(req, function(AppConfig, Default, Language) { } }; - + // XXX + Messages.badges_admin = "Instance administrator"; + Messages.badges_moderator = "Instance moderator"; + Messages.badges_premium = "Premium user"; + Messages.profile_badges = "Badges"; return Messages; diff --git a/src/worker/async-store.js b/src/worker/async-store.js index 87d4f6e64..ec6bf6122 100644 --- a/src/worker/async-store.js +++ b/src/worker/async-store.js @@ -660,12 +660,14 @@ const factory = (ApiConfig = {}, Sortify, UserObject, ProxyManager, color: Store.getUserColor(), notifications: Util.find(proxy, ['mailboxes', 'notifications', 'channel']), curvePublic: proxy.curvePublic, + edPublic: proxy.edPublic, badge: Util.find(proxy, ['profile', 'badge']) }, // "priv" is not shared with other users but is needed by the apps priv: { clientId: clientId, edPublic: proxy.edPublic, + edPrivate: proxy.edPrivate, friends: proxy.friends || {}, settings: proxy.settings || NEW_USER_SETTINGS, thumbnails: disableThumbnails === false, diff --git a/src/worker/modules/badge.ts b/src/worker/modules/badge.ts index 4a5f23f38..2ee48de17 100644 --- a/src/worker/modules/badge.ts +++ b/src/worker/modules/badge.ts @@ -26,27 +26,59 @@ const checkPremium = (ctx, ed, cb) => { data: ed }, obj => { let premium = Array.isArray(obj) && obj[0]; - cb(premium); + cb(premium ? ['premium'] : []); }); }; const listBadges:Callback = (ctx, data, clientId, cb) => { const badges = []; const origin:string = ApiConfig?.httpUnsafeOrigin; - const ed = ctx.store?.proxy?.edPublic; + const ed = data.edPublic || ctx.store?.proxy?.edPublic; nThen(waitFor => { checkApi(ctx, ed, waitFor(list => { Array.prototype.push.apply(badges, list); })); }).nThen(waitFor => { - checkPremium(ctx, ed, waitFor(isPremium => { - if (isPremium) { badges.push('premium'); } + checkPremium(ctx, ed, waitFor(list => { + Array.prototype.push.apply(badges, list); })); }).nThen(() => { cb(badges); }); }; +const allBadges = { + 'admin': checkApi, + 'moderator': checkApi, + 'premium': checkPremium +}; + +const checkBadge:Callback = (ctx, data, clientId, cb) => { + const { badge, channel, user } = data; + + const ed = Util.decodeBase64(user); // Public key uint8 + const b = Util.decodeBase64(badge); // badge uint8 + + // Check signature + const msg = nacl.sign.open(b, ed); + if (!msg) { return void cb({verified: false}); } + + // Check channel (replay attack) + const msgArr = Util.encodeUTF8(msg).split('-'); + if (msgArr[1] !== channel) { return void cb({verified: false}); } + + const badgeStr = msgArr[0]; + let f = allBadges[badgeStr]; + if (!f) { return void cb({verified: false}); } + + f(ctx, user, list => { + cb({ + verified: list.includes(badgeStr), + badge: badgeStr + }); + }); +}; + const Badge: BadgeModule = { init: (config, cb, emit) => { @@ -66,12 +98,14 @@ const Badge: BadgeModule = { if (cmd === 'LIST_BADGES') { return void listBadges(ctx, data, clientId, cb); } + if (cmd === 'CHECK_BADGE') { + return void checkBadge(ctx, data, clientId, cb); + } cb(); }, } }, setCustomize: data => { - console.error('PAICONFIG', data); ApiConfig = data?.ApiConfig; } diff --git a/www/common/inner/badges.js b/www/common/inner/badges.js index d214ea60f..f6d0057e2 100644 --- a/www/common/inner/badges.js +++ b/www/common/inner/badges.js @@ -20,7 +20,10 @@ define([ let icon = badges[id]; if (!icon) { return; } let cls = icon.indexOf('cptools') === 0 ? 'cptools '+icon : 'fa '+icon; - return h('i', { 'class': `cp-badge ${cls}` }); + return h('i', { + 'class': `cp-badge ${cls}`, + 'title': Messages[`badges_${id}`] || 'id' + }); }; return Badges; diff --git a/www/common/inner/common-mediatag.js b/www/common/inner/common-mediatag.js index 15a744a04..ea0f15545 100644 --- a/www/common/inner/common-mediatag.js +++ b/www/common/inner/common-mediatag.js @@ -186,7 +186,7 @@ define([ if (avatars[href]) { var nodes = $.parseHTML(avatars[href]); var $el = $(nodes[0]); - $container.append($el); + $container.empty().append($el); return void cb($el); } @@ -222,7 +222,7 @@ define([ if (typeof data !== "number") { return void displayDefault(); } if (Util.bytesToMegabytes(data) > 0.5) { return void displayDefault(); } var mt = UI.mediaTag(src, cryptKey); - var $img = $(mt).appendTo($container); + var $img = $(mt).appendTo($container.empty()); MT.displayMediatagImage(common, $img, function (err, $image) { if (err) { return void console.error(err); } centerImage($img, $image); diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index 3683aaa45..bdcaac226 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -751,6 +751,7 @@ define([ if (!parsed.type) { throw new Error(); } var defaultTitle = Utils.UserObject.getDefaultName(parsed); var edPublic, curvePublic, notifications, isTemplate; + var edPrivate; var settings = {}; var isSafe = ['debug', 'profile', 'drive', 'teams', 'calendar', 'file'].indexOf(currentPad.app) !== -1; var isOO = ['sheet', 'doc', 'presentation'].indexOf(parsed.type) !== -1; @@ -760,6 +761,7 @@ define([ if (isDeleted) { Utils.Cache.clearChannel(secret.channel); } + const signed = {}; var updateMeta = function () { //console.log('EV_METADATA_UPDATE'); @@ -775,6 +777,9 @@ define([ curvePublic = metaObj.user.curvePublic; notifications = metaObj.user.notifications; settings = metaObj.priv.settings; + + edPrivate = metaObj.priv.edPrivate; + delete metaObj.priv.edPrivate; // don't send to inner })); if (typeof(isTemplate) === "undefined") { Cryptpad.isTemplate(currentPad.href, waitFor(function (err, t) { @@ -856,6 +861,19 @@ define([ } } + if (metaObj?.user?.badge) { + let b = metaObj?.user?.badge +'-'+ secret.channel; + if (!signed[b]) { + let bu8 = Utils.Util.decodeUTF8(b); + console.log(edPrivate); + let k = Utils.Util.decodeBase64(edPrivate); + let nacl = Utils.Crypto.Nacl; + let s = nacl.sign(bu8, k); + signed[b] = Utils.Util.encodeBase64(s); + } + metaObj.user.badge = signed[b]; + } + // Early access var priv = metaObj.priv; var _plan = typeof(priv.plan) === "undefined" ? Utils.LocalStore.getPremium() : priv.plan; diff --git a/www/common/toolbar.js b/www/common/toolbar.js index 3cbe4fd5f..396e12f37 100644 --- a/www/common/toolbar.js +++ b/www/common/toolbar.js @@ -13,12 +13,13 @@ define([ '/common/common-util.js', '/common/common-feedback.js', '/common/inner/common-mediatag.js', + '/common/inner/badges.js', '/common/hyperscript.js', '/common/messenger-ui.js', '/customize/messages.js', '/customize/pages.js', '/common/pad-types.js', -], function ($, Config, ApiConfig, Broadcast, UIElements, UI, Hash, Util, Feedback, MT, h, +], function ($, Config, ApiConfig, Broadcast, UIElements, UI, Hash, Util, Feedback, MT, Badges, h, MessengerUI, Messages, Pages, PadTypes) { var Common; @@ -223,6 +224,7 @@ MessengerUI, Messages, Pages, PadTypes) { }); }; var showColors = false; + const validatedBadges = {}; var updateUserList = function (toolbar, config, forceOffline) { if (!config.displayed || config.displayed.indexOf('userlist') === -1) { return; } if (toolbar.isAlone) { return; } @@ -427,6 +429,31 @@ MessengerUI, Messages, Pages, PadTypes) { $span.append($rightCol); }, data.uid); $span.data('uid', data.uid); + if (data.badge && data.edPublic) { + const addBadge = (badge) => { + let i = Badges.render(badge); + if (!i) { return; } + $rightCol.append(h('div.cp-userlist-badge', i)); + }; + const key = data.edPublic + '-' + data.badge; + const v = validatedBadges[key]; + if (typeof (v) === "string") { + addBadge(v); + } else { + let ev = validatedBadges[key] ||= Util.mkEvent(true); + ev.reg(badge => { addBadge(badge); }); + toolbar.badges.execCommand('CHECK_BADGE', { + badge: data.badge, + channel: priv.channel, + user: data.edPublic + }, res => { + if (!res?.verified) { return; } + validatedBadges[key] = res.badge; + ev.fire(res.badge); + }); + } + + } $editUsersList.append($span); }); @@ -1401,6 +1428,8 @@ MessengerUI, Messages, Pages, PadTypes) { toolbar.connected = false; toolbar.firstConnection = true; + toolbar.badges = Common.makeUniversal('badge'); + if (Array.isArray(cfg.displayed) && cfg.displayed.includes('pad')) { cfg.addFileMenu = true; } diff --git a/www/common/worker.bundle.min.js b/www/common/worker.bundle.min.js index 80c9c9a2e..bc1a893f3 100644 --- a/www/common/worker.bundle.min.js +++ b/www/common/worker.bundle.min.js @@ -1 +1 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["cryptpad-worker-min"]={})}(this,(function(e){"use strict";function n(e,n){return n.forEach((function(n){n&&"string"!=typeof n&&!Array.isArray(n)&&Object.keys(n).forEach((function(t){if("default"!==t&&!(t in e)){var r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:function(){return n[t]}})}}))})),Object.freeze(e)}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function o(e){if(e.__esModule)return e;var n=e.default;if("function"==typeof n){var t=function e(){return this instanceof e?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};t.prototype=n.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t}var a,i,s,c,u,f,l,d={exports:{}},h={exports:{}},p={exports:{}};function v(){return a||(a=1,function(e){var n;n=function(){var e=function(){},n=function(){return(new Date).getTime()},t=function(e,n,t){e.timeouts.push(setTimeout(n,t))},r=function(n,r){n.ws&&(n.ws.onmessage=e,n.ws.onopen=e,n.ws.close(),r?n.ws.onclose({reason:"offline"}):t(n,(function(){n.ws&&n.ws.onclose({reason:"forced closed because websocket failed to close"})}),1e4))},o=function(e,n){return!!e.ws&&(e.ws.send(JSON.stringify(n)),!0)},a=function(e,n){return function(e,t){var r=n[e];if(!r)throw new Error("no such event "+e);r.push(t)}},i=function(e,n,t,r){var o=r[n];if(!o)throw new Error("no such event "+n);var a=o.indexOf(t);-1!==a&&o.splice(a,1)},s=function(e,t,r){if(e.channels[t])return new Promise((function(n){n(e.channels[t])}));var s=e.queues.p2;1===r?s=e.queues.p1:3===r&&(s=e.queues.p3);var c={queue:s,onMessage:[],onJoin:[],onLeave:[],members:[],jSeq:e.seq++},u={message:c.onMessage,join:c.onJoin,leave:c.onLeave},f={_:c,time:n(),id:t,members:c.members,bcast:function(t){return function(e,t,r){var a=e.channels[t],i=e.seq++,s=[i,"MSG",t,r];if(!a)return new Promise((function(e,n){n({type:"NO_SUCH_CHANNEL",message:JSON.stringify(s)})}));var c=o(e,s);return new Promise((function(t,r){c?e.requests[i]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(s)})}))}(e,f.id,t)},leave:function(t){return function(e,t,r){if(e.channels[t]){if(delete e.channels[t],e.ws&&1===e.ws.readyState){var a=e.seq++;o(e,[a,"LEAVE",t,r]);var i=function(){};e.requests[a]={reject:i,resolve:i,time:n()}}}else console.debug("no such channel",t)}(e,f.id,t)},on:a(0,u),off:function(e,n){i(0,e,n,u)}};e.requests[c.jSeq]=f;var l=[c.jSeq,"JOIN",t],d=o(e,l);return new Promise((function(e,n){d?(f._.resolve=e,f._.reject=n):n({type:"DISCONNECTED",message:JSON.stringify(l)})}))},c=function(t){var r={message:t.onMessage,disconnect:t.onDisconnect,reconnect:t.onReconnect},c={webChannels:t.channels,getLag:function(){return function(e){return e.ws?e.pingOutstanding?Math.max(n()-e.timeOfLastPingSent,e.lastObservedLag):e.lastObservedLag:null}(t)},sendto:function(e,r){return function(e,t,r){var a=e.seq++,i=[a,"MSG",t,r],s=o(e,i);return new Promise((function(t,r){s?e.requests[a]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(i)})}))}(t,e,r)},join:function(e,n){return s(t,e,n)},disconnect:function(){return function(n){if(n.ws){var t=n.ws.onclose;n.ws.onclose=e,n.ws.close(),t({reason:"network.disconnect() called"})}n.timeouts.forEach(clearTimeout),n.timeouts=[]}(t)},on:a(0,r),off:function(e,n){i(0,e,n,r)}};return c.__defineGetter__("webChannels",(function(){return Object.keys(t.channels).map((function(e){return t.channels[e]}))})),c},u=function(e,t){var a=void 0;try{a=JSON.parse(t.data)}catch(e){return void console.log(e.stack)}if(e.timeOfLastMsgReceived=n(),0===a[0]){if("IDENT"===a[2])return e.uid=a[3],e.ws._onident(),void(e.pingInterval=setInterval((function(){if(!(n()-e.timeOfLastPingReceived<15e3||(n()-e.timeOfLastMsgReceived>6e4&&r(e),e.pingOutstanding))){var t=e.seq++,a=n();e.timeOfLastPingSent=a,e.pingOutstanding++,e.requests[t]={time:a,ping:a},o(e,[t,"PING"])}}),5e3));if(e.uid){if("PING"===a[2])return a[2]="PONG",void o(e,a);if("MSG"===a[2]){var i=void 0,s=e.queues.p2;if(a[3]===e.uid)i=e.onMessage,"number"==typeof a[5]&&(1===a[5]&&(s=e.queues.p1),3===a[5]&&(s=e.queues.p3));else{var c=e.channels[a[3]];if(!c)return void console.log("message to non-existent chan "+JSON.stringify(a));i=c._.onMessage,c._.queue&&(s=c._.queue)}s.push({msg:a,h:i}),function(e){if(!e.queues.busy){var n=function(){var t=e.queues.p1.shift()||e.queues.p2.shift()||e.queues.p3.shift();if(t){e.queues.busy=!0;var r=t.h,o=t.msg;r.forEach((function(e){setTimeout((function(){try{e(o[4],o[1])}catch(e){console.error(e)}}))})),setTimeout((function(){n()}))}else e.queues.busy=!1};n()}}(e)}if("LEAVE"===a[2]){var u=e.channels[a[3]];if(!u)return void(a[1]!==e.uid&&console.log("leaving non-existent chan "+JSON.stringify(a)));var f=u._.members.indexOf(a[1]);-1!==f&&u._.members.splice(f,1),u._.onLeave.forEach((function(e){try{e(a[1],a[4])}catch(e){console.log(e.stack)}}))}if("JOIN"===a[2]){var l=e.channels[a[3]];if(!l)return void console.log("ERROR: join to non-existent chan "+JSON.stringify(a));if(-1!==l._.members.indexOf(a[1]))return;var d=-1!==l._.members.indexOf(e.uid);l._.members.push(a[1]),d||a[1]!==e.uid||(l.myID=e.uid,l._.resolve(l)),d&&l._.onJoin.forEach((function(e){try{e(a[1])}catch(e){console.log(e.stack)}}))}}}else{var h=e.requests[a[0]];if(!h)return void console.log("error: "+JSON.stringify(a));if(delete e.requests[a[0]],"ACK"===a[1]){if(h.ping)return e.lastObservedLag=n()-Number(h.ping),e.timeOfLastPingReceived=n(),void e.pingOutstanding--;h.resolve()}else if("JACK"===a[1]){if(h._){if(!a[2])throw new Error("wrong type of ACK for channel join");return h.id=a[2],void(e.channels[h.id]=h)}h.resolve()}else if("ERROR"===a[1])if("function"==typeof h.reject)h.reject({type:a[2],message:a[3]});else if(h._&&"function"==typeof h._.reject){if("EJOINED"===a[2]&&!e.channels[a[3]])return h.id=a[3],void(e.channels[h.id]=h);h._.reject({type:a[2],message:a[3]})}else console.error(a);else h.reject({type:"UNKNOWN",message:JSON.stringify(a)})}};return{connect:function(o,a){a=a||function(e){return new window.WebSocket(e)};var i={ws:null,seq:1,uid:null,network:null,channels:{},onMessage:[],onDisconnect:[],onReconnect:[],timeouts:[],requests:{},pingInterval:null,queues:{p1:[],p2:[],p3:[]},timeOfLastPingSent:-1,timeOfLastPingReceived:-1,timeOfLastMsgReceived:-1,lastObservedLag:0,pingOutstanding:0};i.network=c(i);var s=e,f=e;"undefined"!=typeof window&&window.addEventListener("offline",(function(){-1===["localhost","127.0.0.1",""].indexOf(window.location.hostname)&&r(i,!0)}));var l=function(){var c=i.ws=a(o);i.timeOfLastPingSent=i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),c.onmessage=function(e){return u(i,e)},c.onclose=function(n){c.onclose=e,clearInterval(i.pingInterval),i.timeouts.forEach(clearTimeout),i.ws=null,i.uid&&(i.uid=null,i.onDisconnect.forEach((function(e){try{e(n.reason)}catch(e){console.log(e.stack)}}))),t(i,l,i.uid?0:7e3)},c.onopen=function(){t(i,(function(){i.uid||(f({type:"TIMEOUT",message:"waited 30000ms"}),s=f=e,r(i))}),3e4)},i.ws._onident=function(){i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),i.lastObservedLag=n()-i.timeOfLastPingSent,s!==e?(s(i.network),s=f=e):(i.channels={},i.requests={},i.pingOutstanding=0,i.onReconnect.forEach((function(e){try{e(i.uid)}catch(e){console.log(e.stack)}})))}};return new Promise((function(e,n){s=e,f=n,l()}))}}},e.exports?e.exports=n():window.netflux_websocket=n()}(p)),p.exports}function y(){return i||(i=1,function(e){var n,t,r,o;e.exports&&(e.exports=(n=v(),r=function(e){return e.replace(/^\d+:/,"")},o=(t={}).removeCp=function(e){return e.replace(/^cp\|([A-Za-z0-9+\/=]{0,20}\|)?/,"")},t.start=function(e){var t,a=(e=e||{}).network,i=e.websocketURL,s=e.userName,c=e.channel,u=e.crypto,f=e.readOnly||!1,l=!e.noChainPad&&(e.ChainPad||window.ChainPad),d=void 0===e.useHistory||!!e.useHistory,h=!1,p=e.lastKnownHash,v={},y=[],m=e.priority||2,g=e.Cache,E=!1,b=Math.floor(1e6*Math.random()),O=e.metadata||{},A=O.validateKey=e.validateKey||O.validateKey;O.owners=e.owners||O.owners,O.expire=e.expire||O.expire;var w,D,_=!0,T=!1,S={setReadOnly:function(e,n){f=e,n&&(u=n)}},x=function(){},N=[],I={send:function(){}},C=function(){w&&"function"==typeof w.abort&&w.abort();var n=l.create({userName:s,initialState:e.initialState,transformFunction:e.transformFunction,patchTransformer:e.patchTransformer,validateContent:e.validateContent,avgSyncMilliseconds:e.avgSyncMilliseconds,logLevel:void 0!==e.logLevel?e.logLevel:1});return g&&Array.isArray(t)&&t.length&&(t.forEach((function(e){var t=e.patch;if(!/^\[/.test(t)){try{t=u.decrypt(t,A,!0)}catch(e){console.error(t,A,c),console.error(e)}t=r(t)}n.message(t)})),""===n.getUserDoc())?(n.abort(),t=[],g.clearChannel(c),C()):(n.onMessage((function(e,n,t){I.send(e,n,t)})),n.onPatch((function(t){e.onRemote&&e.onRemote({realtime:n,patch:t})})),n)},R={change:[],onChange:function(e){R.change.forEach((function(n){n(e)}))},users:[]},P=function(n){e.onJoin&&e.onJoin(n),32===n.length&&(-1===R.users.indexOf(n)&&R.users.push(n),R.onChange())},k=function(){},M=function(n){e.onLeave&&e.onLeave(n);var t=R.users.indexOf(n);-1!==t&&R.users.splice(t,1),R.onChange()},F=function(n,t){if(_){try{var r=w&&w.getUserDoc();if(E&&w&&(""===r||r===e.initialState))return void S.resetCache()}catch(e){console.error(e)}w&&w.start(),e.setMyID&&e.setMyID({myID:n.myID}),_=!1,e.onReady&&e.onReady({realtime:w,network:t,userList:R,myId:n.myID,leave:n.leave,metadata:O}),y.length&&(y.forEach((function(e){"function"==typeof e&&e()})),y=[])}},L=function(n,r){if(e.onChannelError&&e.onChannelError({channel:r.id,type:n.error,loaded:!_,error:n.error,message:n.message}),"EUNKNOWN"===n.error)return p=void 0,r&&r.leave(),g?(t=[],void g.clearChannel(c,(function(){l&&(S.realtime=w=C()),x(a,k)}))):void x(a,k);if("function"==typeof S.stop)try{S.stop()}catch(e){}},H=!0,j=function(e){g&&(t.length&&t[t.length-1].hash===e.hash||(!t.length&&H&&(e.isCheckpoint=!0,H=!1),(t.length||e.isCheckpoint)&&(t.push(e),g.storeCache(c,A,t,(function(e){if(e){g.clearChannel(c,(function(){console.warn("Cache cleared",c)}));var n=t;return t=[],void console.error(e,c,n,A)}})))))},K=function(n,t,a,i,s){var f=i.historyKeeper,l=n===f;if(!a||0!==t&&"0"!==t){if(!s||n===f){if(s){var d=JSON.parse(t);if(d.txid&&d.txid!==b)return;if(d.validateKey&&d.channel)return d.channel!==a.id||A||(A=d.validateKey),void(d.channel===a.id&&(O=d,e.onMetadataUpdate&&!_&&e.onMetadataUpdate(O)));if(d.state&&1===d.state&&d.channel)return void(d.channel===a.id&&(Object.keys(v).forEach((function(e){"function"==typeof v[e]&&v[e]("FAILED")})),v={},F(a,i)))}if(l){var h=JSON.parse(t);if(Array.isArray(h)&&h[0]&&h[0]!==b)return;if(h.channel===a.id&&h.error)return void L(h,a);if(t=h[4],h[3]!==a.id)return}if(p=t.slice(0,64),"function"==typeof v[p])return v[p](null,p),void delete v[p];var m,g=/^cp\|/.test(t);t=o(t);try{t=u.decrypt(t,A,l)}catch(e){console.error(t,A,c),console.error(e)}var E="string"==typeof t;!E&&t.content&&(m=t.author,t=t.content),_||e.onLocal&&e.onLocal(!0);var D=E?r(t):t,T=function(){try{if(w&&E&&w.message(D),e.onMessage){var t={time:h?h[5]:+new Date};e.onMessage(D,n,A,g,p,m,t)}var r=g;e.isCacheCheckpoint&&(r=e.isCacheCheckpoint(D,m)),j({patch:D,hash:p,isCheckpoint:r,author:m,time:h?h[5]:+new Date})}catch(e){console.error(e)}};_&&n!==f?y.push(T):T()}}else F(a,i)},U=function(n,r,a){I.wc=n,c=n.id,n.members.forEach(P);var i,s=function(e,t){K(t,e,n,r)};n.on("message",s),n.on("join",P),n.on("leave",M),I.stop=function(){n.off("message",s),n.off("join",P),n.off("leave",M),n.leave(),w&&w.abort()},a&&(I.send=function(n,t,a){var i=function(e,n){if(!f)try{var t=u.encrypt(e,n);if(0===e.indexOf("[4")){var r="";if(window.nacl){var o=window.nacl.hash(window.nacl.util.decodeUTF8(e));r=window.nacl.util.encodeBase64(o.slice(0,8))+"|"}else console.log("Checkpoint sent without an ID. Nacl is missing.");t="cp|"+r+t}return t}catch(n){throw console.log(e),n}}(n,a);if(i){var s=i.slice(0,64),l=/^cp\|/.test(i);e.isCacheCheckpoint&&(l=e.isCacheCheckpoint(n,a)),v[s]=function(e,r){!e&&r&&j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(e,r)},I.wc.bcast(i).then((function(){p=s,delete v[s],j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(null,s)}),(function(e){if(console.error(e),!e||"enoent"!==e.type&&"ENOENT"!==e.type)delete v[s],t(e&&e.type||e);else{if(I.wc.leave(),h)return delete v[s],void t("STOPPED");_=!0,r.join(c,m).then((function(e){U(e,r,!1),I.send(n,t,a)}))}}))}},l&&!w&&(S.realtime=w=C()),e.onInit&&e.onInit({myID:n.myID,realtime:w,getLag:r.getLag,userList:R,network:r,channel:c})),e.onConnect&&e.onConnect(n,I.send),d?(n.members.forEach((function(e){16===e.length&&(i=e)})),D!==i&&(r.historyKeeper=i,D=i,N.forEach((function(e){e(i)}))),function(){var e={txid:b,priority:m,lastKnownHash:p,metadata:O};g&&Array.isArray(t)&&t.length&&(e.lastKnownHash=t[t.length-1].hash),y=[];var o=["GET_HISTORY",n.id,e];i&&r.sendto(i,JSON.stringify(o))}(),S.resetCache=function(){_=!0,t=[],g&&g.clearChannel(c),b=Math.floor(1e6*Math.random()),L({error:"EUNKNOWN",message:"Corrupted cache"},n)}):F(n,r)},B=!1;"undefined"!=typeof window&&window.addEventListener("beforeunload",(function(){B=!0}));var V=function(e,n){var t;return e.some((function(e){if(e.id===n)return t=e,!0})),t},Y=function(n){e.onError&&e.onError({type:n.type||n,message:n.message,error:n.type,loaded:!_})};x=function(r,o){var a;"string"==typeof r&&(a=n.connect(r));var i=function(){T=!1,"string"==typeof r?a.then(o,Y):"function"==typeof r.then?r.then(o,Y):o(r)};if(g&&!T)return g.getChannelCache(c,(function(n,r){A=r?r.k:void 0,(t=r?r.c:[]).length?(E=!0,e.onCacheStart&&e.onCacheStart(),l&&(S.realtime=w=C()),t.length?(e.onMessage&&t.forEach((function(n){var t={time:n.time};e.onMessage(n.patch,"cache",A,n.isCheckpoint,n.hash,n.author,t)})),e.onCacheReady&&e.onCacheReady({id:c,realtime:w,networkPromise:a}),i()):i()):i()})),void(S.resetCache=function(){g&&g.clearChannel(c),t=[]});i()};var G=!0;return k=function(n,t){h||n.join(c||null,m).then((function(e){if(h)try{e.leave()}catch(e){}else U(e,n,t)}),(function(r){r&&"ERESTRICTED"===r.type&&Array.isArray(r.message)&&e.onRejected?e.onRejected(r.message,(function(e){e?Y(r):k(n,t)})):Y(r)}))},S.stop=function(){h=!0},x(a||i,(function(n){if(a=n,G){if(G=!1,h)return;var t=function(n){B||"network.disconnect() called"!==n&&(e.onConnectionChange?e.onConnectionChange({state:!1}):e.onAbort&&e.onAbort({reason:n}))},r=function(n){if(e.onConnectionChange){e.onConnectionChange({state:!0,myId:n});var t=function(){_=!0,T=!0,R.users=[],x(a,k)};if(e.beforeReconnecting)return void e.beforeReconnecting((function(n,r){c=n,e.initialState=r,t()}));t()}},o=function(e,n){var t=V(a.webChannels,c);t&&K(n,e,t,a,!0)};a.on("disconnect",t),a.on("reconnect",r),a.on("message",o),S.network=a,S.stop=function(){I&&I.stop&&I.stop();var e=V(a.webChannels,c);if(e)try{e.leave("")}catch(e){}a.off("disconnect",t),a.off("reconnect",r),a.off("message",o),h=!0},a.onHistoryKeeperChange=function(e){N.push(e)}}k(a,!0)})),S},t))}(h)),h.exports}function m(){return f?u:(f=1,u=function(){if(c)return s;c=1;const e=n=>{if(Array.isArray(n))return n.map(e);if(n instanceof Object){let t=[],r=[];return Object.keys(n).forEach((e=>{/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce(((t,r)=>(t[r]=e(n[r]),t)),{})}return n},n=JSON.stringify.bind(JSON);return s=(t,r,o)=>{let a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;let i=JSON.parse(a);return n(e(i),null,o)}}())}function g(){return l||(l=1,function(e){e.exports&&(e.exports=function(e,n){const t=globalThis;var r,o={},a=void 0===t.Proxy,i=o.DeepProxy=function(){var e={},r=e.isArray=Array.isArray||function(e){return"[object Array]"===Object.toString(e)},o=e.type=function(e){return null===e?"null":r(e)?"array":typeof e},i=e.isProxyable=function(e,n){return(void 0!==n||!a)&&-1!==["object","array"].indexOf(o(e))},s=e.set=function(n){return function(t,r,o){if("on"===r)throw new Error("'on' is a reserved attribute name for realtime lists and maps");return i(o)?t[r]=e.create(o,n):t[r]=o,n(),t[r]||!0}},c=e.pathMatches=function(e,n){return!n.some((function(n,t){return n!==e[t]}))},u=function(e,n){return n.pattern.length-e.pattern.length},f=function(e){return function(n,t,r){switch(n){case"change":t="array"===o(t)?t:[t],e.change.push({cb:function(e,n,o,a){if(c(o,t))return r(e,n,o,a)},pattern:t}),e.change.sort(u);break;case"remove":t="array"===o(t)?t:[t],e.remove.push({cb:function(e,n,o){if(c(n,t))return r(e,n,o)},pattern:t}),e.remove.sort(u);break;case"ready":e.ready.push({cb:function(e){t(e)}});break;case"cacheready":e.cacheready.push({cb:function(e){t(e)}});break;case"disconnect":e.disconnect.push({cb:function(e){t(e)}});break;case"reconnect":e.reconnect.push({cb:function(e){t(e)}});break;case"create":e.create.push({cb:function(e){t(e)}});break;case"error":e.error.push({cb:function(e){t(e)}})}return this}},l=e.get=function(){var e={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};return function(n,t){return"on"===t?f(e):"_isProxy"===t||("_events"===t?e:n[t])}},d=e.delete=function(e){return function(n,t){return void 0===n[t]||(delete n[t],e()),!0}},h=e.handlers=function(e,n){return n?{set:s(e),get:l(e),deleteProperty:d(e)}:{set:s(e),get:function(e,n){return"_isProxy"===n||e[n]},deleteProperty:d(e)}},p=e.remoteChangeFlag=!1,v=e.stringifyFakeProxy=function(e){var t=JSON.parse(n(e));return delete t._events,delete t._isProxy,n(t)};e.checkLocalChange=function(n,r){if(a&&!e.interval){var o=v(n);e.interval=t.setInterval((function(){var e=v(n);e!==o&&(o=e,p?p=!1:r())}),300)}};var y=e.create=function(e,n,r){var s="function"===o(n)?h(n,r):n;switch(o(e)){case"object":Object.keys(e).forEach((function(t){i(e[t])&&!e[t]._isProxy&&(e[t]=y(e[t],n))}));break;case"array":e.forEach((function(t,r){i(t)&&!t._isProxy&&(e[r]=y(e[r],n))}));break;default:throw new Error("attempted to make a proxy of an unproxyable object")}if(!a)return e._isProxy?e:new t.Proxy(e,s);var c=JSON.parse(JSON.stringify(e));if(r){var u={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};c.on=f(u),c._events=u}return c},m=function(e,n,t,r,o){var a=e.slice(0);a.push(n),t._events.change.some((function(e){return!1===e.cb(r,o,a,t)}))},g=e.find=function(e,n){for(var t=n.length,r=0;rs)for(var c,u=s;u<=s;u++)c=e[u],E(r,u,a,c,!0);e.length=s}};return e.update=function(e,n,t){var r=o(e),a=o(n);if(r!==a)throw new Error("Proxy updates can't result in type changes");switch(a){case"array":O.call(e,e,n,(function(e){return y(e,t)}),[],e);break;case"object":b.call(e,e,n,(function(e){return y(e,t)}),[],e);break;default:throw new Error("unsupported realtime datatype:"+a)}},e}();return o.create=function(o){if(!i.isProxyable(o.data,!0))throw new Error("unsupported datatype: "+i.type(o.data));if("function"!=typeof(r=o.ChainPad||t.ChainPad).SmartJSONTransformer)throw new Error("Please update ChainPad");o.classic&&!o.crypto&&(console.error("[chainpad-listmap] no crypto module provided. messages will not be encrypted"),o.crypto={encrypt:function(e){return e},decrypt:function(e){return e}});var s=o.readOnly,c={initialState:n(o.data),patchTransformer:r.SmartJSONTransformer,validateContent:o.validateContent||function(e){try{return JSON.parse(e),!0}catch(n){return console.log(e),console.error("Failed to parse, rejecting patch"),!1}},readOnly:o.readOnly,userName:o.userName||"listmap",Cache:o.Cache,logLevel:void 0===o.logLevel?0:o.logLevel};o.classic&&(c.channel=o.channel,c.crypto=o.crypto,c.network=o.network,c.websocketURL=o.websocketURL,c.metadata=o.metadata||{validateKey:o.validateKey,owners:o.owners,expire:o.expire},c.onRejected=o.onRejected);var u,f,l,d={metadata:{}},h=!0,p=!1,v=a?i.stringifyFakeProxy:n,y=function(){var e=v(f);try{u.contentUpdate(e)}catch(e){f._events.error.forEach((function(n){n.cb({type:"CHAINPAD",error:e.message})}))}o.onLocal&&o.onLocal()},m=c.onLocal=function(e){h||s||(clearTimeout(l),e?y():l=setTimeout(y))},g=function(){i.remoteChangeFlag||m()};f=i.create(o.data,g,!0),c.onInit=function(e){f._events.create.forEach((function(n){n.cb(e)}))},c.onCacheReady=function(e){u&&u===e.realtime||(u=d.realtime=e.realtime);var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),p||f._events.cacheready.forEach((function(n){n.cb(e)}))};var E=0;c.onReady=function(e){if(E=-1,p)return h=!1,c.onRemote(),void f._events.reconnect.forEach((function(n){n.cb(e)}));u&&u===e.realtime||(u=d.realtime=e.realtime),d.metadata=e.metadata;var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),h=!1,p=!0,f._events.ready.forEach((function(n){n.cb(e)}))},c.onRemote=function(){if(!h){var e=u.getUserDoc(),n=JSON.parse(e);i.remoteChangeFlag=!0,i.update(f,n,g),i.remoteChangeFlag=!1}},c.onMessage=function(){-1!==E&&o.updateProgress&&o.updateProgress({progress:E++})},c.onAbort=function(e){f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onConnectionChange=function(e){e.state?h=!0:f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onMetadataUpdate=function(e){d.metadata=e,"function"==typeof o.onMetadataUpdate&&o.onMetadataUpdate(e)},c.onError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},c.onChannelError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},o.common&&"function"==typeof o.common.startRealtime?u=d.cpCnInner=o.common.startRealtime(c):d=e.start(c),d.proxy=f,d.realtime=u;var b=d.setReadOnly;return d.setReadOnly=function(e,n){s=e,b&&b(e,n)},d},o}(y(),m()))}(d)),d.exports}var E=g();function b(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var O,A={exports:{}};function w(){return O||(O=1,function(e){var n,r,o,a;a=function(){var e=b,n=function(t,r,o){r||(r=0);var a=n.resolve(t,r),i=n.m[r][a];if(!i&&e){if(i=e(a))return i}else if(i&&i.c&&(r=i.c,a=i.m,!(i=n.m[r][i.m])))throw new Error('failed to require "'+a+'" from '+r);if(!i)throw new Error('failed to require "'+t+'" from '+o);return i.exports||(i.exports={},i.call(i.exports,i,i.exports,n.relative(a,r))),i.exports};return n.resolve=function(e,t){var r=e,o=e+".js",a=e+"/index.js";return n.m[t][o]&&o?o:n.m[t][a]&&a?a:r},n.relative=function(e,t){return function(r){if("."!=r.charAt(0))return n(r,t,e);var o=e.split("/"),a=r.split("/");o.pop();for(var i=0;i=0;t--)o.check(e.operations[t],n),t>0&&r.assert(!o.shouldMerge(e.operations[t],e.operations[t-1])),"number"==typeof n&&(n+=o.lengthChange(e.operations[t]));return e.isCheckpoint&&(r.assert(1===e.operations.length),r.assert(0===e.operations[0].offset),"number"==typeof n&&r.assert(!n||e.operations[0].toRemove===n)),e};i.toObj=function(e){r.PARANOIA&&c(e);var n,t=new Array(e.operations.length+1);for(n=0;n0);var t,i=s(a.check(e[e.length-1]),n);for(t=0;t=0;t--)f(e,n.operations[t]);return e},i.apply=function(e,n){r.PARANOIA&&(c(e),r.assert("string"==typeof n),r.assert(a.hex_sha256(n)===e.parentHash));for(var t=n,i=e.operations.length-1;i>=0;i--)t=o.apply(e.operations[i],t);return t},i.lengthChange=function(e){r.PARANOIA&&c(e);for(var n=0,t=0;t=0;u--)i[u]=o.invert(e.operations[u],t),t=o.apply(e.operations[u],t);var f=new Array(e.operations.length);!function(){for(var e=i.length-1;e>=0;e--){f[e]=i[e].offset;for(var n=e-1;n>=0;n--)f[e]+=i[n].toRemove-i[n].toInsert.length}}();var l=s(a.hex_sha256(t),e.isCheckpoint);l.operations.splice(0,l.operations.length);for(var d=0;d=0;d--){var h=t(e.operations[d],u,o.simplify);h&&(u=o.apply(h,u),f[l++]=h)}return Array.prototype.push.apply(i.operations,f.reverse()),i.operations[0]||i.operations.shift(),r.PARANOIA&&c(i),i},i.equals=function(e,n){if(e.operations.length!==n.operations.length)return!1;for(var t=0;t0;){var u=o.random(i);i+=o.lengthChange(u),f(t,u)}return c(t),t},Object.freeze(e.exports)},"SHA256.js":function(e,n,t){!function(){function n(e,n){var t=(65535&e)+(65535&n);return(e>>16)+(n>>16)+(t>>16)<<16|65535&t}function t(e,n){return e>>>n|e<<32-n}function r(e,n){return e>>>n}function o(e,n,t){return e&n^~e&t}function a(e,n,t){return e&n^e&t^n&t}function i(e){return t(e,2)^t(e,13)^t(e,22)}function s(e){return t(e,6)^t(e,11)^t(e,25)}function c(e){return t(e,7)^t(e,18)^r(e,3)}e.exports.hex_sha256=function(e){return function(e){for(var n="0123456789abcdef",t="",r=0;r<4*e.length;r++)t+=n.charAt(e[r>>2]>>8*(3-r%4)+4&15)+n.charAt(e[r>>2]>>8*(3-r%4)&15);return t}(function(e,u){var f,l,d,h,p,v,y,m,g,E,b,O=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],A=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],w=function(e){for(var n=[];e>0;e--)n.push(void 0);return n}(64);e[u>>5]|=128<<24-u%32,e[15+(u+64>>9<<4)]=u;for(var D=0;D>5]|=(255&e.charCodeAt(t/8))<<24-t%32;return n}(e),8*e.length))}}()},"Common.js":function(e,n,r){e.exports.global=function(){if("undefined"!=typeof self)return self;if(void 0!==t)return t;if("undefined"!=typeof window)return window;throw new Error("no self, nor global, nor window")}();var o=function(n){return"undefined"!=typeof localStorage&&localStorage[n]?localStorage[n]:e.exports.global[n]},a=e.exports.PARANOIA=o("ChainPad_PARANOIA");e.exports.VALIDATE_ENTIRE_CHAIN_EACH_MSG=o("ChainPad_VALIDATE_ENTIRE_CHAIN_EACH_MSG"),e.exports.TESTING=o("ChainPad_TESTING"),e.exports.assert=function(e){if(!e)throw new Error("Failed assertion")},e.exports.isUint=function(e){return"number"==typeof e&&Math.floor(e)===e&&e>=0},e.exports.randomASCII=function(e){for(var n=[],t=0;tn?1:-1},Object.freeze(e.exports)},"sha256.js":function(e,n,t){var r=t("./sha256/exports.js"),o=t("./SHA256.js"),a=t("./Common");e.exports.check=function(e){if("string"!=typeof e)throw new Error;if(!/[a-f0-9]{64}/.test(e))throw new Error;return e},e.exports.hex_sha256=function(e){e+="";var n=r.hex(function(e){for(var n=new Uint8Array(e.length),t=0;t1&&console.log("["+e.userName+"] "+n)},d=function(e,n){e.logLevel>0&&console.error("["+e.userName+"] "+n)},h=function(e,n,t){if(!e.aborted){t||(t=Math.floor(2*Math.random()*e.config.avgSyncMilliseconds));var r=setTimeout((function(){e.schedules.splice(e.schedules.indexOf(r),1),n()}),t);return e.schedules.push(r),r}},p=function(e,n){var t=e.schedules.indexOf(n);t>-1&&e.schedules.splice(t,1),clearTimeout(n)},v=function(e,n,t,o){var a=i.toStr(n);if(function(e,n,t){e.messageHandlers.length||t("no onMessage() handler registered");try{e.messageHandlers.forEach((function(e){e(n,(function(){t.apply(null,arguments),t=function(){}}))}))}catch(e){t(e.stack)}}(e,a,(function(t){if(t)l(e,"Posting to server failed ["+t+"]"),e.pending=null,e.syncSchedule=h(e,(function(){g(e)}));else{var o=e.pending;if(e.pending=null,!o)throw new Error;r.assert(o.hash===n.hashOf),R(e,a,!0)?(e.timeOfLastSuccess=+new Date,e.lag=+new Date-o.timeSent):l(e,"Our message ["+n.hashOf+"] failed validation"),o.callback()}})),e.pending)throw new Error("there is already a pending message");-1===e.timeOfLastSuccess&&(e.timeOfLastSuccess=+new Date),e.pending={hash:n.hashOf,timeSent:+new Date,callback:function(){e.syncSchedule=h(e,(function(){g(e)}),0),t()}},r.PARANOIA&&A(e)},y=function(e){var n=e.onSettle;e.onSettle=[],n.forEach((function(n){try{n()}catch(n){d(e,"Error in onSettle handler ["+n.stack+"]")}}))},m=function(e){if(!e.mut.inverseOf)throw new Error;return e.mut.inverseOf},g=function(e,n){if(r.PARANOIA&&A(e),e.syncSchedule&&!e.pending){if(p(e,e.syncSchedule),e.syncSchedule=null,e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify),0===e.uncommitted.operations.length)return y(e),e.timeOfLastSuccess=+new Date,void(e.syncSchedule=h(e,(function(){g(e)})));var t=_(e,e.best)+1;if(t%e.config.checkpointInterval!=0){var o;o=e.setContentPatch?e.setContentPatch:i.create(i.PATCH,e.uncommitted,e.best.hashOf),v(e,o,(function(){e.setContentPatch&&(l(e,"initial Ack received ["+o.hashOf+"]"),e.setContentPatch=null)}))}else{var s=e.best;if(l(e,"Sending checkpoint (interval ["+e.config.checkpointInterval+"]) patch no ["+t+"]"),l(e,_(e,e.best)),!s||!s.content||!m(s.content))throw new Error;var c=a.createCheckpoint(e.authDoc,e.authDoc,m(s.content).parentHash),u=i.create(i.CHECKPOINT,c,s.hashOf);v(e,u,(function(){l(e,"Checkpoint sent and accepted")}))}}},E=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),e.messages[n.hashOf]=n,(e.messagesByParent[n.lastMsgHash]=e.messagesByParent[n.lastMsgHash]||[]).push(n)},b=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),delete e.messages[n.hashOf];var t=e.messagesByParent[n.lastMsgHash];r.assert(t.indexOf(n)>-1),t.splice(t.indexOf(n),1),0===t.length&&delete e.messagesByParent[n.lastMsgHash];var o=e.messagesByParent[n.hashOf];if(o)for(var a=0;a_(e,t)&&(t=o)})),t},x=function(e,n){n.operations.length&&(e.patchHandlers.forEach((function(e){e(n)})),e.changeHandlers.forEach((function(e){n.operations.forEach((function(n){e(n.offset,n.toRemove,n.toInsert)}))})))},N=function(e,n){try{return e.config.validateContent(n())}catch(n){d(e,"Error in content validator ["+n.stack+"]")}return!1},I=function(e,n,t){for(var r=O(e,n);r;r=O(e,r))if(!1===t(r))return},C=function(e,n){e.mut.inverseOf||((e.mut.inverseOf=a.invert(e,n)).mut.inverseOf=e)},R=function(e,n,t){r.PARANOIA&&A(e);var c=i.fromString(n);if(l(e,JSON.stringify([c.hashOf,c.content.operations])),e.messages[c.hashOf]){if(e.setContentPatch&&e.setContentPatch.hashOf===c.hashOf)e.setContentPatch=null;else{if(c.content.isCheckpoint)return l(e,"["+(t?"our":"their")+"] Checkpoint ["+c.hashOf+"] is already known"),!0;l(e,"Patch ["+c.hashOf+"] is already known")}r.PARANOIA&&A(e)}else if(!c.content.isCheckpoint||N(e,(function(){return c.content.operations[0].toInsert}))){if(E(e,c),!D(e,e.rootMessage,c)){if(c.content.isCheckpoint&&e.best.mut.isInitialMessage){l(e,"applying checkpoint ["+c.hashOf+"]");var u=a.apply(e.uncommitted,e.authDoc);r.assert(!r.PARANOIA||e.userInterfaceContent===u);var f=a.invert(e.uncommitted,e.authDoc);return a.addOperation(f,o.create(0,e.authDoc.length,c.content.operations[0].toInsert)),f=a.simplify(f,u,e.config.operationSimplify),c.mut.parentCount=0,e.rootMessage=e.best=c,e.authDoc=c.content.operations[0].toInsert,e.uncommitted=a.create(s.hex_sha256(e.authDoc)),x(e,f),r.PARANOIA&&(e.userInterfaceContent=e.authDoc),!0}return l(e,"Patch ["+c.hashOf+"] not connected to root (parent: ["+c.lastMsgHash+"])"),void(r.PARANOIA&&A(e))}(c=S(e,c)).mut.isFromMe=t;var d=c.content,h=[],p=e.best;if(!D(e,e.best,c)){var v=_(e,e.best),g=_(e,c);if(!(v0))return l(e,"Patch ["+c.hashOf+"] chain is ["+g+"] best chain is ["+v+"]"),r.PARANOIA&&A(e),!0;for(;p&&!D(e,p,c);)h.push(p),p=O(e,p);r.assert(p),l(e,"Patch ["+c.hashOf+"] better than best chain, switching")}var R=[],P=c;do{R.unshift(P),P=O(e,P),r.assert(P)}while(P!==p);var k=e.authDoc;h.forEach((function(e){k=a.apply(m(e.content),k)})),R.forEach((function(e,n){n!==R.length-1&&(C(e.content,k),k=a.apply(e.content,k))}));var M=e.best;if(R.length>1?(M=R[R.length-2],r.assert(M)):h.length&&(M=O(e,h[h.length-1]),r.assert(M)),r.assert(m(M.content).parentHash),r.assert(!r.PARANOIA||m(M.content).parentHash===s.hex_sha256(k)),m(M.content).parentHash===d.parentHash){if(d.isCheckpoint&&e.config.noPrune);else if(d.isCheckpoint){var F;if(I(e,c,(function(e){if(e.content.isCheckpoint){if(F)return F=e,!1;F=e}})),F&&F!==e.rootMessage){var L=_(e,F);if(e.config.strictCheckpointValidation&&L%e.config.checkpointInterval!=0){if(l(e,"checkpoint ["+c.hashOf+"] at invalid point ["+L+"]"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}l(e,"checkpoint ["+c.hashOf+"]"),I(e,F,(function(n){l(e,"pruning ["+n.hashOf+"]"),b(e,n)})),e.rootMessage=F}}else{var H=a.simplify(d,k,e.config.operationSimplify);if(!a.equals(H,d)){if(l(e,"patch ["+c.hashOf+"] can be simplified"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}if(!N(e,(function(){return a.apply(d,k)})))return void l(e,"Patch ["+c.hashOf+"] failed content validation")}C(d,k),e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify);var j=a.apply(e.uncommitted,e.authDoc);r.PARANOIA&&r.assert(j===e.userInterfaceContent);var K=a.invert(e.uncommitted,e.authDoc);if(h.forEach((function(n){l(e,"reverting ["+n.hashOf+"]"),n.mut.isFromMe&&l(e,"reverting patch 'from me' ["+JSON.stringify(n.content.operations)+"]"),K=a.merge(K,m(n.content)),function(e,n,t){T(e,n,m(t))}(e,n.mut.isFromMe,n.content)})),R.forEach((function(n){l(e,"applying ["+n.hashOf+"]"),K=a.merge(K,n.content),T(e,n.mut.isFromMe,n.content)})),K=a.merge(K,e.uncommitted),K=a.simplify(K,j,e.config.operationSimplify),e.best=c,r.PARANOIA){var U=a.apply(K,j);r.assert(e.userInterfaceContent.length===w(e)),r.assert(U===e.userInterfaceContent)}return x(e,K),e.uncommitted.operations.length||y(e),r.PARANOIA&&A(e),!0}if(l(e,"patch ["+c.hashOf+"] parentHash is not valid"),r.PARANOIA&&A(e),r.TESTING)throw new Error;b(e,c)}else l(e,"Checkpoint ["+c.hashOf+"] failed content validation")},P=function(e,n){return Object.freeze({type:"Block",hashOf:n.hashOf,lastMsgHash:n.lastMsgHash,isCheckpoint:!!n.content.isCheckpoint,isFromMe:n.mut&&n.mut.isFromMe,author:n.mut&&n.mut.author,serverHash:n.mut&&n.mut.serverHash,time:n.mut&&n.mut.time,getParent:function(){var t=O(e,n);if(t)return P(e,t)},getContent:function(){return function(e,n){for(var t=[n];t[0]!==e.rootMessage;){var o=O(e,t[0]);if(!o)return{error:"not connected to root",doc:void 0};t.unshift(o)}var i="";e.rootMessage.content.operations.length&&(r.assert(1===e.rootMessage.content.operations.length),i=e.rootMessage.content.operations[0].toInsert);for(var s=1;s=0;t--)n=s(e[t],n);return n};var c=o.invert=function(e,n){return r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length)),i(e.offset,e.toInsert.length,(" "+n.substring(e.offset,e.offset+e.toRemove)).slice(1))},u=/[\uD800-\uDBFF]|[\uDC00-\uDFFF]/,f=o.hasSurrogate=function(e){return u.test(e)};o.simplify=function(e,n){r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length));for(var t=c(e,n),o=Math.min(e.toInsert.length,t.toInsert.length),s=0;s=0&&h[s]===d[s];s--);d=d.substring(0,s+1),l=s+1}return 0===l&&0===d.length?null:i(u,l,d)},o.equals=function(e,n){return e.toRemove===n.toRemove&&e.toInsert===n.toInsert&&e.offset===n.offset},o.lengthChange=function(e){return r.PARANOIA&&a(e),e.toInsert.length-e.toRemove},o.merge=function(e,n){r.PARANOIA&&(a(n),a(e));var t=e.offset,o=e.toRemove,s=e.toInsert,c=n.offset,u=n.toRemove,f=n.toInsert,l=c-t;if(u>0){var d=s;s=s.substring(0,l)+s.substring(l+u),(u-=d.length-s.length)<0&&(u=0),o+=u,u=0}if(l<0)t+=l,s=f+s;else if(s.length===l)s+=f;else{if(!(s.length>l))throw new Error("should never happen\n"+JSON.stringify([e,n],null," "));s=s.substring(0,l)+f+s.substring(l)}return""===s&&0===o?null:i(t,o,s)},o.shouldMerge=function(e,n){return r.PARANOIA&&(a(e),a(n)),n.offset0;)a+=c=r._heap_write(t,o+a,e,i,s),i+=c,s-=c,o+=c=n.process(o,a),(a-=c)||(o=0);return this.pos=o,this.len=a,this},e.exports.hash_finish=function(){if(null!==this.result)throw new IllegalStateError("state must be reset before processing new data");return this.asm.finish(this.pos,this.len,0),this.result=new Uint8Array(this.HASH_SIZE),this.result.set(this.heap.subarray(0,this.HASH_SIZE)),this.pos=0,this.len=0,this}},"sha256/utils.js":function(e,n,t){var r=e.exports.string_to_bytes=function(e,n){n=!!n;for(var t=e.length,r=new Uint8Array(n?4*t:t),o=0,a=0;o=t)throw new Error("Malformed string, low surrogate expected at position "+o);i=(55296^i)<<10|65536|56320^e.charCodeAt(o)}else if(!n&&i>>>8)throw new Error("Wide characters are not allowed.");!n||i<=127?r[a++]=i:i<=2047?(r[a++]=192|i>>6,r[a++]=128|63&i):i<=65535?(r[a++]=224|i>>12,r[a++]=128|i>>6&63,r[a++]=128|63&i):(r[a++]=240|i>>18,r[a++]=128|i>>12&63,r[a++]=128|i>>6&63,r[a++]=128|63&i)}return r.subarray(0,a)};e.exports.hex_to_bytes=function(e){var n=e.length;1&n&&(e="0"+e,n++);for(var t=new Uint8Array(n>>1),r=0;r>1]=parseInt(e.substr(r,2),16);return t},e.exports.base64_to_bytes=function(e){return r(atob(e))};var o=e.exports.bytes_to_string=function(e,n){n=!!n;for(var t=e.length,r=new Array(t),o=0,a=0;o=192&&i<224&&o+1=224&&i<240&&o+2=240&&i<248&&o+3>10,r[a++]=56320|1023&s)}}for(var c="",u=16384,f=0;f>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+=1},e.exports.is_number=function(e){return"number"==typeof e},e.exports.is_string=function(e){return"string"==typeof e},e.exports.is_buffer=function(e){return e instanceof ArrayBuffer},e.exports.is_bytes=function(e){return e instanceof Uint8Array},e.exports.is_typed_array=function(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array},e.exports._heap_init=function(e,n){var t=n.heap,r=t?t.byteLength:n.heapSize||65536;if(4095&r||r<=0)throw new Error("heap size must be a positive integer and a multiple of 4096");return t=t||new e(new ArrayBuffer(r))},e.exports._heap_write=function(e,n,t,r,o){var a=e.length-n,i=a>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x428a2f98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=n+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x71374491|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=t+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb5c0fbcf|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=l+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe9b5dba5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=d+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x3956c25b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=h+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x59f111f1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=p+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x923f82a4|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=v+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xab1c5ed5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=y+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd807aa98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=m+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x12835b01|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=g+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x243185be|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=E+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x550c7dc3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=b+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x72be5d74|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=O+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x80deb1fe|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=A+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x9bdc06a7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=w+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc19bf174|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe49b69c1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xefbe4786|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x0fc19dc6|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x240ca1cc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2de92c6f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4a7484aa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5cb0a9dc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x76f988da|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x983e5152|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa831c66d|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb00327c8|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbf597fc7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc6e00bf3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd5a79147|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x06ca6351|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x14292967|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x27b70a85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2e1b2138|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4d2c6dfc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x53380d13|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x650a7354|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x766a0abb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x81c2c92e|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x92722c85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa2bfe8a1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa81a664b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc24b8b70|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc76c51a3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd192e819|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd6990624|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xf40e3585|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x106aa070|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x19a4c116|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x1e376c08|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2748774c|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x34b0bcb5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x391c0cb3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4ed8aa4a|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5b9cca4f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x682e6ff3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x748f82ee|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x78a5636f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x84c87814|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x8cc70208|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x90befffa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa4506ceb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbef9a3f7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc67178f2|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;r=r+D|0;o=o+_|0;a=a+T|0;i=i+S|0;s=s+x|0;c=c+N|0;u=u+I|0;f=f+C|0}function C(e){e=e|0;I(N[e|0]<<24|N[e|1]<<16|N[e|2]<<8|N[e|3],N[e|4]<<24|N[e|5]<<16|N[e|6]<<8|N[e|7],N[e|8]<<24|N[e|9]<<16|N[e|10]<<8|N[e|11],N[e|12]<<24|N[e|13]<<16|N[e|14]<<8|N[e|15],N[e|16]<<24|N[e|17]<<16|N[e|18]<<8|N[e|19],N[e|20]<<24|N[e|21]<<16|N[e|22]<<8|N[e|23],N[e|24]<<24|N[e|25]<<16|N[e|26]<<8|N[e|27],N[e|28]<<24|N[e|29]<<16|N[e|30]<<8|N[e|31],N[e|32]<<24|N[e|33]<<16|N[e|34]<<8|N[e|35],N[e|36]<<24|N[e|37]<<16|N[e|38]<<8|N[e|39],N[e|40]<<24|N[e|41]<<16|N[e|42]<<8|N[e|43],N[e|44]<<24|N[e|45]<<16|N[e|46]<<8|N[e|47],N[e|48]<<24|N[e|49]<<16|N[e|50]<<8|N[e|51],N[e|52]<<24|N[e|53]<<16|N[e|54]<<8|N[e|55],N[e|56]<<24|N[e|57]<<16|N[e|58]<<8|N[e|59],N[e|60]<<24|N[e|61]<<16|N[e|62]<<8|N[e|63])}function R(e){e=e|0;N[e|0]=r>>>24;N[e|1]=r>>>16&255;N[e|2]=r>>>8&255;N[e|3]=r&255;N[e|4]=o>>>24;N[e|5]=o>>>16&255;N[e|6]=o>>>8&255;N[e|7]=o&255;N[e|8]=a>>>24;N[e|9]=a>>>16&255;N[e|10]=a>>>8&255;N[e|11]=a&255;N[e|12]=i>>>24;N[e|13]=i>>>16&255;N[e|14]=i>>>8&255;N[e|15]=i&255;N[e|16]=s>>>24;N[e|17]=s>>>16&255;N[e|18]=s>>>8&255;N[e|19]=s&255;N[e|20]=c>>>24;N[e|21]=c>>>16&255;N[e|22]=c>>>8&255;N[e|23]=c&255;N[e|24]=u>>>24;N[e|25]=u>>>16&255;N[e|26]=u>>>8&255;N[e|27]=u&255;N[e|28]=f>>>24;N[e|29]=f>>>16&255;N[e|30]=f>>>8&255;N[e|31]=f&255}function P(){r=0x6a09e667;o=0xbb67ae85;a=0x3c6ef372;i=0xa54ff53a;s=0x510e527f;c=0x9b05688c;u=0x1f83d9ab;f=0x5be0cd19;l=d=0}function k(e,n,t,h,p,v,y,m,g,E){e=e|0;n=n|0;t=t|0;h=h|0;p=p|0;v=v|0;y=y|0;m=m|0;g=g|0;E=E|0;r=e;o=n;a=t;i=h;s=p;c=v;u=y;f=m;l=g;d=E}function M(e,n){e=e|0;n=n|0;var t=0;if(e&63)return-1;while((n|0)>=64){C(e);e=e+64|0;n=n-64|0;t=t+64|0}l=l+t|0;if(l>>>0>>0)d=d+1|0;return t|0}function F(e,n,t){e=e|0;n=n|0;t=t|0;var r=0,o=0;if(e&63)return-1;if(~t)if(t&31)return-1;if((n|0)>=64){r=M(e,n)|0;if((r|0)==-1)return-1;e=e+r|0;n=n-r|0}r=r+n|0;l=l+n|0;if(l>>>0>>0)d=d+1|0;N[e|n]=0x80;if((n|0)>=56){for(o=n+1|0;(o|0)<64;o=o+1|0)N[e|o]=0x00;C(e);n=0;N[e|0]=0}for(o=n+1|0;(o|0)<59;o=o+1|0)N[e|o]=0;N[e|56]=d>>>21&255;N[e|57]=d>>>13&255;N[e|58]=d>>>5&255;N[e|59]=d<<3&255|l>>>29;N[e|60]=l>>>21&255;N[e|61]=l>>>13&255;N[e|62]=l>>>5&255;N[e|63]=l<<3&255;C(e);if(~t)R(t);return r|0}function L(){r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;l=64;d=0}function H(){r=O;o=A;a=w;i=D;s=_;c=T;u=S;f=x;l=64;d=0}function j(e,n,t,N,C,R,k,M,F,L,H,j,K,U,B,V){e=e|0;n=n|0;t=t|0;N=N|0;C=C|0;R=R|0;k=k|0;M=M|0;F=F|0;L=L|0;H=H|0;j=j|0;K=K|0;U=U|0;B=B|0;V=V|0;P();I(e^0x5c5c5c5c,n^0x5c5c5c5c,t^0x5c5c5c5c,N^0x5c5c5c5c,C^0x5c5c5c5c,R^0x5c5c5c5c,k^0x5c5c5c5c,M^0x5c5c5c5c,F^0x5c5c5c5c,L^0x5c5c5c5c,H^0x5c5c5c5c,j^0x5c5c5c5c,K^0x5c5c5c5c,U^0x5c5c5c5c,B^0x5c5c5c5c,V^0x5c5c5c5c);O=r;A=o;w=a;D=i;_=s;T=c;S=u;x=f;P();I(e^0x36363636,n^0x36363636,t^0x36363636,N^0x36363636,C^0x36363636,R^0x36363636,k^0x36363636,M^0x36363636,F^0x36363636,L^0x36363636,H^0x36363636,j^0x36363636,K^0x36363636,U^0x36363636,B^0x36363636,V^0x36363636);h=r;p=o;v=a;y=i;m=s;g=c;E=u;b=f;l=64;d=0}function K(e,n,t){e=e|0;n=n|0;t=t|0;var l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0;if(e&63)return-1;if(~t)if(t&31)return-1;E=F(e,n,-1)|0;l=r,d=o,h=a,p=i,v=s,y=c,m=u,g=f;H();I(l,d,h,p,v,y,m,g,0x80000000,0,0,0,0,0,0,768);if(~t)R(t);return E|0}function U(e,n,t,l,d){e=e|0;n=n|0;t=t|0;l=l|0;d=d|0;var h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0;if(e&63)return-1;if(~d)if(d&31)return-1;N[e+n|0]=t>>>24;N[e+n+1|0]=t>>>16&255;N[e+n+2|0]=t>>>8&255;N[e+n+3|0]=t&255;K(e,n+4|0,-1)|0;h=O=r,p=A=o,v=w=a,y=D=i,m=_=s,g=T=c,E=S=u,b=x=f;l=l-1|0;while((l|0)>0){L();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;H();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;h=h^r;p=p^o;v=v^a;y=y^i;m=m^s;g=g^c;E=E^u;b=b^f;l=l-1|0}r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;if(~d)R(d);return 0}return{reset:P,init:k,process:M,finish:F,hmac_reset:L,hmac_init:j,hmac_finish:K,pbkdf2_generate_block:U}}},"transform/TextTransformer.js":function(e,n,t){var r=t("../Operation"),o=t("../Common"),a=function(e,n){o.PARANOIA&&(r.check(e),r.check(n));var t=function(e,n){if(e.offset>n.offset){if(e.offset>n.offset+n.toRemove)return r.create(e.offset-n.toRemove+n.toInsert.length,e.toRemove,e.toInsert);var t=e.toRemove-(n.offset+n.toRemove-e.offset);return t<0&&(t=0),0===t&&0===e.toInsert.length?null:r.create(n.offset+n.toInsert.length,t,e.toInsert)}if(e.offset+e.toRemove=0;i--)s=r.apply(n[i],s);var c=[];for(i=e.length-1;i>=0;i--){for(var u=e[i],f=n.length-1;f>=0;f--){try{u=a(u,n[f])}catch(e){return console.error("The pluggable transform function threw an error, failing operational transformation"),console.error(e.stack),[]}if(!u)break}u&&(o.PARANOIA&&r.check(u,s.length),c.unshift(u))}return c}},"transform/NaiveJSONTransformer.js":function(e,n,t){var r=t("./TextTransformer"),o=t("../Operation"),a=t("../Common");e.exports=function(e,n,t){var i,s,c,u=a.global.REALTIME_DEBUG=a.global.REALTIME_DEBUG||{};try{i=r(e,n,t),s=o.applyMulti(n,t),c=o.applyMulti(i,s);try{return JSON.parse(c),i}catch(r){console.error(r),u.ot_parseError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_parseError`")}}catch(r){console.error(r),u.ot_applyError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_applyError`")}return[]}},"transform/SmartJSONTransformer.js":function(e,n,t){var r,o,a,i=t("json.sortify"),s=t("../Diff"),c=t("../Operation"),u=t("./TextTransformer"),f=function(e){return null===e?"null":(n=e,"[object Array]"===Object.prototype.toString.call(n)?"array":typeof e);var n},l=function(e,n){for(var t=n.length,r=0;r1)return!0}))&&("splice"!==n.type||!e.some((function(e){if("splice"===e.type&&y(e.path,n.path)&&e.path.length-n.path.length<0){if(!e.removals)return;for(var t=e.offset,r=e.offset+e.removals;te.offset+n.removals)return void(n.offset+=e.value.length-e.removals);if(n.offseti)){var d=n.slice(0,l);if((y=n.slice(l))===u){var p=Math.min(s,l);if((g=c.slice(0,p))===(b=d.slice(0,p)))return h(g,c.slice(p),d.slice(p),u)}}if(null===f||f===s){var v=s,y=(d=n.slice(0,v),n.slice(v));if(d===c){var m=Math.min(a-v,i-v);if((E=u.slice(u.length-m))===(O=y.slice(y.length-m)))return h(c,u.slice(0,u.length-m),y.slice(0,y.length-m),E)}}}if(r.length>0&&o&&0===o.length){var g=e.slice(0,r.index),E=e.slice(r.index+r.length);if(!(i<(p=g.length)+(m=E.length))){var b=n.slice(0,p),O=n.slice(i-m);if(g===b&&E===O)return h(g,e.slice(p,a-m),n.slice(p,i-m),E)}}return null}(e,n,t);if(f)return f}var l=i(e,n),d=e.substring(0,l);l=s(e=e.substring(l),n=n.substring(l));var p=e.substring(e.length-l),v=function(e,n){var t;if(!e)return[[1,n]];if(!n)return[[r,e]];var c=e.length>n.length?e:n,u=e.length>n.length?n:e,f=c.indexOf(u);if(-1!==f)return t=[[1,c.substring(0,f)],[0,u],[1,c.substring(f+u.length)]],e.length>n.length&&(t[0][0]=t[2][0]=r),t;if(1===u.length)return[[r,e],[1,n]];var l=function(e,n){var t=e.length>n.length?e:n,r=e.length>n.length?n:e;if(t.length<4||2*r.length=e.length?[r,o,a,c,l]:null}var a,c,u,f,l,d=o(t,r,Math.ceil(t.length/4)),h=o(t,r,Math.ceil(t.length/2));if(!d&&!h)return null;a=h?d&&d[4].length>h[4].length?d:h:d,e.length>n.length?(c=a[0],u=a[1],f=a[2],l=a[3]):(f=a[0],l=a[1],c=a[2],u=a[3]);var p=a[4];return[c,u,f,l,p]}(e,n);if(l){var d=l[0],h=l[1],p=l[2],v=l[3],y=l[4],m=o(d,p),g=o(h,v);return m.concat([[0,y]],g)}return function(e,n){for(var t=e.length,o=n.length,i=Math.ceil((t+o)/2),s=i,c=2*i,u=new Array(c),f=new Array(c),l=0;lt)v+=2;else if(O>o)p+=2;else if(h&&(D=s+d-E)>=0&&D=(w=t-f[D]))return a(e,n,T,O)}for(var A=-g+y;A<=g-m;A+=2){for(var w,D=s+A,_=(w=A===-g||A!==g&&f[D-1]t)m+=2;else if(_>o)y+=2;else if(!h){var T;if((b=s+d-A)>=0&&b=(w=t-w))return a(e,n,T,O)}}}return[[r,e],[1,n]]}(e,n)}(e=e.substring(0,e.length-l),n=n.substring(0,n.length-l));return d&&v.unshift([0,d]),p&&v.push([0,p]),c(v,u),v}function a(e,n,t,r){var a=e.substring(0,t),i=n.substring(0,r),s=e.substring(t),c=n.substring(r),u=o(a,i),f=o(s,c);return u.concat(f)}function i(e,n){if(!e||!n||e.charAt(0)!==n.charAt(0))return 0;for(var t=0,r=Math.min(e.length,n.length),o=r,a=0;t=0&&d(e[p][1])){var v=e[p][1].slice(-1);if(e[p][1]=e[p][1].slice(0,-1),f=v+f,h=v+h,!e[p][1]){e.splice(p,1),o--;var y=p-1;e[y]&&1===e[y][0]&&(u++,h=e[y][1]+h,y--),e[y]&&e[y][0]===r&&(a++,f=e[y][1]+f,y--),p=y}}l(e[o][1])&&(v=e[o][1].charAt(0),e[o][1]=e[o][1].slice(1),f+=v,h+=v)}if(o0||h.length>0){f.length>0&&h.length>0&&(0!==(t=i(h,f))&&(p>=0?e[p][1]+=h.substring(0,t):(e.splice(0,0,[0,h.substring(0,t)]),o++),h=h.substring(t),f=f.substring(t)),0!==(t=s(h,f))&&(e[o][1]=h.substring(h.length-t)+e[o][1],h=h.substring(0,h.length-t),f=f.substring(0,f.length-t)));var m=u+a;0===f.length&&0===h.length?(e.splice(o-m,m),o-=m):0===f.length?(e.splice(o-m,m,[1,h]),o=o-m+1):0===h.length?(e.splice(o-m,m,[r,f]),o=o-m+1):(e.splice(o-m,m,[r,f],[1,h]),o=o-m+2)}0!==o&&0===e[o-1][0]?(e[o-1][1]+=e[o][1],e.splice(o,1)):o++,u=0,a=0,f="",h=""}""===e[e.length-1][1]&&e.pop();var g=!1;for(o=1;o=55296&&e<=56319}function f(e){return e>=56320&&e<=57343}function l(e){return f(e.charCodeAt(0))}function d(e){return u(e.charCodeAt(e.length-1))}function h(e,n,t,o){return d(e)||l(o)?null:function(e){for(var n=[],t=0;t0&&n.push(e[t]);return n}([[0,e],[r,n],[1,t],[0,o]])}function p(e,n,t){return o(e,n,t,!0)}p.INSERT=1,p.DELETE=r,p.EQUAL=0,e.exports=p}},n=a("ChainPad.js"),r="ChainPad",e.exports=n,"undefined"!=typeof window?o=window:void 0!==t?o=t:"undefined"!=typeof self&&(o=self),o[r]=n}(A)),A.exports}var D,_=w(),T=n({__proto__:null,default:r(_)},[_]),S={exports:{}},x={exports:{}};function N(){return D||(D=1,function(e){!function(e){var n=function(e){var n,t=new Float64Array(16);if(e)for(n=0;n>24&255,e[n+1]=t>>16&255,e[n+2]=t>>8&255,e[n+3]=255&t,e[n+4]=r>>24&255,e[n+5]=r>>16&255,e[n+6]=r>>8&255,e[n+7]=255&r}function p(e,n,t,r,o){var a,i=0;for(a=0;a>>8)-1}function v(e,n,t,r){return p(e,n,t,r,16)}function y(e,n,t,r){return p(e,n,t,r,32)}function m(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=a,A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=0;L<20;L+=2)O^=(o=(P^=(o=(N^=(o=(_^=(o=O+P|0)<<7|o>>>25)+O|0)<<9|o>>>23)+_|0)<<13|o>>>19)+N|0)<<18|o>>>14,T^=(o=(A^=(o=(k^=(o=(I^=(o=T+A|0)<<7|o>>>25)+T|0)<<9|o>>>23)+I|0)<<13|o>>>19)+k|0)<<18|o>>>14,C^=(o=(S^=(o=(w^=(o=(M^=(o=C+S|0)<<7|o>>>25)+C|0)<<9|o>>>23)+M|0)<<13|o>>>19)+w|0)<<18|o>>>14,F^=(o=(R^=(o=(x^=(o=(D^=(o=F+R|0)<<7|o>>>25)+F|0)<<9|o>>>23)+D|0)<<13|o>>>19)+x|0)<<18|o>>>14,O^=(o=(D^=(o=(w^=(o=(A^=(o=O+D|0)<<7|o>>>25)+O|0)<<9|o>>>23)+A|0)<<13|o>>>19)+w|0)<<18|o>>>14,T^=(o=(_^=(o=(x^=(o=(S^=(o=T+_|0)<<7|o>>>25)+T|0)<<9|o>>>23)+S|0)<<13|o>>>19)+x|0)<<18|o>>>14,C^=(o=(I^=(o=(N^=(o=(R^=(o=C+I|0)<<7|o>>>25)+C|0)<<9|o>>>23)+R|0)<<13|o>>>19)+N|0)<<18|o>>>14,F^=(o=(M^=(o=(k^=(o=(P^=(o=F+M|0)<<7|o>>>25)+F|0)<<9|o>>>23)+P|0)<<13|o>>>19)+k|0)<<18|o>>>14;O=O+a|0,A=A+i|0,w=w+s|0,D=D+c|0,_=_+u|0,T=T+f|0,S=S+l|0,x=x+d|0,N=N+h|0,I=I+p|0,C=C+v|0,R=R+y|0,P=P+m|0,k=k+g|0,M=M+E|0,F=F+b|0,e[0]=O>>>0&255,e[1]=O>>>8&255,e[2]=O>>>16&255,e[3]=O>>>24&255,e[4]=A>>>0&255,e[5]=A>>>8&255,e[6]=A>>>16&255,e[7]=A>>>24&255,e[8]=w>>>0&255,e[9]=w>>>8&255,e[10]=w>>>16&255,e[11]=w>>>24&255,e[12]=D>>>0&255,e[13]=D>>>8&255,e[14]=D>>>16&255,e[15]=D>>>24&255,e[16]=_>>>0&255,e[17]=_>>>8&255,e[18]=_>>>16&255,e[19]=_>>>24&255,e[20]=T>>>0&255,e[21]=T>>>8&255,e[22]=T>>>16&255,e[23]=T>>>24&255,e[24]=S>>>0&255,e[25]=S>>>8&255,e[26]=S>>>16&255,e[27]=S>>>24&255,e[28]=x>>>0&255,e[29]=x>>>8&255,e[30]=x>>>16&255,e[31]=x>>>24&255,e[32]=N>>>0&255,e[33]=N>>>8&255,e[34]=N>>>16&255,e[35]=N>>>24&255,e[36]=I>>>0&255,e[37]=I>>>8&255,e[38]=I>>>16&255,e[39]=I>>>24&255,e[40]=C>>>0&255,e[41]=C>>>8&255,e[42]=C>>>16&255,e[43]=C>>>24&255,e[44]=R>>>0&255,e[45]=R>>>8&255,e[46]=R>>>16&255,e[47]=R>>>24&255,e[48]=P>>>0&255,e[49]=P>>>8&255,e[50]=P>>>16&255,e[51]=P>>>24&255,e[52]=k>>>0&255,e[53]=k>>>8&255,e[54]=k>>>16&255,e[55]=k>>>24&255,e[56]=M>>>0&255,e[57]=M>>>8&255,e[58]=M>>>16&255,e[59]=M>>>24&255,e[60]=F>>>0&255,e[61]=F>>>8&255,e[62]=F>>>16&255,e[63]=F>>>24&255}(e,n,t,r)}function g(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=0;O<20;O+=2)a^=(o=(m^=(o=(h^=(o=(u^=(o=a+m|0)<<7|o>>>25)+a|0)<<9|o>>>23)+u|0)<<13|o>>>19)+h|0)<<18|o>>>14,f^=(o=(i^=(o=(g^=(o=(p^=(o=f+i|0)<<7|o>>>25)+f|0)<<9|o>>>23)+p|0)<<13|o>>>19)+g|0)<<18|o>>>14,v^=(o=(l^=(o=(s^=(o=(E^=(o=v+l|0)<<7|o>>>25)+v|0)<<9|o>>>23)+E|0)<<13|o>>>19)+s|0)<<18|o>>>14,b^=(o=(y^=(o=(d^=(o=(c^=(o=b+y|0)<<7|o>>>25)+b|0)<<9|o>>>23)+c|0)<<13|o>>>19)+d|0)<<18|o>>>14,a^=(o=(c^=(o=(s^=(o=(i^=(o=a+c|0)<<7|o>>>25)+a|0)<<9|o>>>23)+i|0)<<13|o>>>19)+s|0)<<18|o>>>14,f^=(o=(u^=(o=(d^=(o=(l^=(o=f+u|0)<<7|o>>>25)+f|0)<<9|o>>>23)+l|0)<<13|o>>>19)+d|0)<<18|o>>>14,v^=(o=(p^=(o=(h^=(o=(y^=(o=v+p|0)<<7|o>>>25)+v|0)<<9|o>>>23)+y|0)<<13|o>>>19)+h|0)<<18|o>>>14,b^=(o=(E^=(o=(g^=(o=(m^=(o=b+E|0)<<7|o>>>25)+b|0)<<9|o>>>23)+m|0)<<13|o>>>19)+g|0)<<18|o>>>14;e[0]=a>>>0&255,e[1]=a>>>8&255,e[2]=a>>>16&255,e[3]=a>>>24&255,e[4]=f>>>0&255,e[5]=f>>>8&255,e[6]=f>>>16&255,e[7]=f>>>24&255,e[8]=v>>>0&255,e[9]=v>>>8&255,e[10]=v>>>16&255,e[11]=v>>>24&255,e[12]=b>>>0&255,e[13]=b>>>8&255,e[14]=b>>>16&255,e[15]=b>>>24&255,e[16]=l>>>0&255,e[17]=l>>>8&255,e[18]=l>>>16&255,e[19]=l>>>24&255,e[20]=d>>>0&255,e[21]=d>>>8&255,e[22]=d>>>16&255,e[23]=d>>>24&255,e[24]=h>>>0&255,e[25]=h>>>8&255,e[26]=h>>>16&255,e[27]=h>>>24&255,e[28]=p>>>0&255,e[29]=p>>>8&255,e[30]=p>>>16&255,e[31]=p>>>24&255}(e,n,t,r)}var E=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function O(e,n,t,r,o,a,i){var s,c,u=new Uint8Array(16),f=new Uint8Array(64);for(c=0;c<16;c++)u[c]=0;for(c=0;c<8;c++)u[c]=a[c];for(;o>=64;){for(m(f,u,i,E),c=0;c<64;c++)e[n+c]=t[r+c]^f[c];for(s=1,c=8;c<16;c++)s=s+(255&u[c])|0,u[c]=255&s,s>>>=8;o-=64,n+=64,r+=64}if(o>0)for(m(f,u,i,E),c=0;c=64;){for(m(c,s,o,E),i=0;i<64;i++)e[n+i]=c[i];for(a=1,i=8;i<16;i++)a=a+(255&s[i])|0,s[i]=255&a,a>>>=8;t-=64,n+=64}if(t>0)for(m(c,s,o,E),i=0;i>>13|t<<3),r=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(t>>>10|r<<6),o=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(r>>>7|o<<9),a=255&e[8]|(255&e[9])<<8,this.r[4]=255&(o>>>4|a<<12),this.r[5]=a>>>1&8190,i=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(a>>>14|i<<2),s=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(i>>>11|s<<5),c=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(s>>>8|c<<8),this.r[9]=c>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function T(e,n,t,r,o,a){var i=new _(a);return i.update(t,r,o),i.finish(e,n),0}function S(e,n,t,r,o,a){var i=new Uint8Array(16);return T(i,0,t,r,o,a),v(e,n,i,0)}function x(e,n,t,r,o){var a;if(t<32)return-1;for(D(e,0,n,0,t,r,o),T(e,16,e,32,t-32,e),a=0;a<16;a++)e[a]=0;return 0}function N(e,n,t,r,o){var a,i=new Uint8Array(32);if(t<32)return-1;if(w(i,0,32,r,o),0!==S(n,16,n,32,t-32,i))return-1;for(D(e,0,n,0,t,r,o),a=0;a<32;a++)e[a]=0;return 0}function I(e,n){var t;for(t=0;t<16;t++)e[t]=0|n[t]}function C(e){var n,t,r=1;for(n=0;n<16;n++)t=e[n]+r+65535,r=Math.floor(t/65536),e[n]=t-65536*r;e[0]+=r-1+37*(r-1)}function R(e,n,t){for(var r,o=~(t-1),a=0;a<16;a++)r=o&(e[a]^n[a]),e[a]^=r,n[a]^=r}function P(e,t){var r,o,a,i=n(),s=n();for(r=0;r<16;r++)s[r]=t[r];for(C(s),C(s),C(s),o=0;o<2;o++){for(i[0]=s[0]-65517,r=1;r<15;r++)i[r]=s[r]-65535-(i[r-1]>>16&1),i[r-1]&=65535;i[15]=s[15]-32767-(i[14]>>16&1),a=i[15]>>16&1,i[14]&=65535,R(s,i,1-a)}for(r=0;r<16;r++)e[2*r]=255&s[r],e[2*r+1]=s[r]>>8}function k(e,n){var t=new Uint8Array(32),r=new Uint8Array(32);return P(t,e),P(r,n),y(t,0,r,0)}function M(e){var n=new Uint8Array(32);return P(n,e),1&n[0]}function F(e,n){var t;for(t=0;t<16;t++)e[t]=n[2*t]+(n[2*t+1]<<8);e[15]&=32767}function L(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]+t[r]}function H(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]-t[r]}function j(e,n,t){var r,o,a=0,i=0,s=0,c=0,u=0,f=0,l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0,N=0,I=0,C=0,R=0,P=0,k=0,M=0,F=t[0],L=t[1],H=t[2],j=t[3],K=t[4],U=t[5],B=t[6],V=t[7],Y=t[8],G=t[9],J=t[10],q=t[11],W=t[12],z=t[13],Q=t[14],Z=t[15];a+=(r=n[0])*F,i+=r*L,s+=r*H,c+=r*j,u+=r*K,f+=r*U,l+=r*B,d+=r*V,h+=r*Y,p+=r*G,v+=r*J,y+=r*q,m+=r*W,g+=r*z,E+=r*Q,b+=r*Z,i+=(r=n[1])*F,s+=r*L,c+=r*H,u+=r*j,f+=r*K,l+=r*U,d+=r*B,h+=r*V,p+=r*Y,v+=r*G,y+=r*J,m+=r*q,g+=r*W,E+=r*z,b+=r*Q,O+=r*Z,s+=(r=n[2])*F,c+=r*L,u+=r*H,f+=r*j,l+=r*K,d+=r*U,h+=r*B,p+=r*V,v+=r*Y,y+=r*G,m+=r*J,g+=r*q,E+=r*W,b+=r*z,O+=r*Q,A+=r*Z,c+=(r=n[3])*F,u+=r*L,f+=r*H,l+=r*j,d+=r*K,h+=r*U,p+=r*B,v+=r*V,y+=r*Y,m+=r*G,g+=r*J,E+=r*q,b+=r*W,O+=r*z,A+=r*Q,w+=r*Z,u+=(r=n[4])*F,f+=r*L,l+=r*H,d+=r*j,h+=r*K,p+=r*U,v+=r*B,y+=r*V,m+=r*Y,g+=r*G,E+=r*J,b+=r*q,O+=r*W,A+=r*z,w+=r*Q,D+=r*Z,f+=(r=n[5])*F,l+=r*L,d+=r*H,h+=r*j,p+=r*K,v+=r*U,y+=r*B,m+=r*V,g+=r*Y,E+=r*G,b+=r*J,O+=r*q,A+=r*W,w+=r*z,D+=r*Q,_+=r*Z,l+=(r=n[6])*F,d+=r*L,h+=r*H,p+=r*j,v+=r*K,y+=r*U,m+=r*B,g+=r*V,E+=r*Y,b+=r*G,O+=r*J,A+=r*q,w+=r*W,D+=r*z,_+=r*Q,T+=r*Z,d+=(r=n[7])*F,h+=r*L,p+=r*H,v+=r*j,y+=r*K,m+=r*U,g+=r*B,E+=r*V,b+=r*Y,O+=r*G,A+=r*J,w+=r*q,D+=r*W,_+=r*z,T+=r*Q,S+=r*Z,h+=(r=n[8])*F,p+=r*L,v+=r*H,y+=r*j,m+=r*K,g+=r*U,E+=r*B,b+=r*V,O+=r*Y,A+=r*G,w+=r*J,D+=r*q,_+=r*W,T+=r*z,S+=r*Q,x+=r*Z,p+=(r=n[9])*F,v+=r*L,y+=r*H,m+=r*j,g+=r*K,E+=r*U,b+=r*B,O+=r*V,A+=r*Y,w+=r*G,D+=r*J,_+=r*q,T+=r*W,S+=r*z,x+=r*Q,N+=r*Z,v+=(r=n[10])*F,y+=r*L,m+=r*H,g+=r*j,E+=r*K,b+=r*U,O+=r*B,A+=r*V,w+=r*Y,D+=r*G,_+=r*J,T+=r*q,S+=r*W,x+=r*z,N+=r*Q,I+=r*Z,y+=(r=n[11])*F,m+=r*L,g+=r*H,E+=r*j,b+=r*K,O+=r*U,A+=r*B,w+=r*V,D+=r*Y,_+=r*G,T+=r*J,S+=r*q,x+=r*W,N+=r*z,I+=r*Q,C+=r*Z,m+=(r=n[12])*F,g+=r*L,E+=r*H,b+=r*j,O+=r*K,A+=r*U,w+=r*B,D+=r*V,_+=r*Y,T+=r*G,S+=r*J,x+=r*q,N+=r*W,I+=r*z,C+=r*Q,R+=r*Z,g+=(r=n[13])*F,E+=r*L,b+=r*H,O+=r*j,A+=r*K,w+=r*U,D+=r*B,_+=r*V,T+=r*Y,S+=r*G,x+=r*J,N+=r*q,I+=r*W,C+=r*z,R+=r*Q,P+=r*Z,E+=(r=n[14])*F,b+=r*L,O+=r*H,A+=r*j,w+=r*K,D+=r*U,_+=r*B,T+=r*V,S+=r*Y,x+=r*G,N+=r*J,I+=r*q,C+=r*W,R+=r*z,P+=r*Q,k+=r*Z,b+=(r=n[15])*F,i+=38*(A+=r*H),s+=38*(w+=r*j),c+=38*(D+=r*K),u+=38*(_+=r*U),f+=38*(T+=r*B),l+=38*(S+=r*V),d+=38*(x+=r*Y),h+=38*(N+=r*G),p+=38*(I+=r*J),v+=38*(C+=r*q),y+=38*(R+=r*W),m+=38*(P+=r*z),g+=38*(k+=r*Q),E+=38*(M+=r*Z),a=(r=(a+=38*(O+=r*L))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a=(r=(a+=o-1+37*(o-1))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a+=o-1+37*(o-1),e[0]=a,e[1]=i,e[2]=s,e[3]=c,e[4]=u,e[5]=f,e[6]=l,e[7]=d,e[8]=h,e[9]=p,e[10]=v,e[11]=y,e[12]=m,e[13]=g,e[14]=E,e[15]=b}function K(e,n){j(e,n,n)}function U(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=253;r>=0;r--)K(o,o),2!==r&&4!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function B(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=250;r>=0;r--)K(o,o),1!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function V(e,t,r){var o,a,i=new Uint8Array(32),c=new Float64Array(80),u=n(),f=n(),l=n(),d=n(),h=n(),p=n();for(a=0;a<31;a++)i[a]=t[a];for(i[31]=127&t[31]|64,i[0]&=248,F(c,r),a=0;a<16;a++)f[a]=c[a],d[a]=u[a]=l[a]=0;for(u[0]=d[0]=1,a=254;a>=0;--a)R(u,f,o=i[a>>>3]>>>(7&a)&1),R(l,d,o),L(h,u,l),H(u,u,l),L(l,f,d),H(f,f,d),K(d,h),K(p,u),j(u,l,u),j(l,f,h),L(h,u,l),H(u,u,l),K(f,u),H(l,d,p),j(u,l,s),L(u,u,d),j(l,l,u),j(u,d,p),j(d,f,c),K(f,h),R(u,f,o),R(l,d,o);for(a=0;a<16;a++)c[a+16]=u[a],c[a+32]=l[a],c[a+48]=f[a],c[a+64]=d[a];var v=c.subarray(32),y=c.subarray(16);return U(v,v),j(y,y,v),P(e,y),0}function Y(e,n){return V(e,n,o)}function G(e,n){return t(n,32),Y(e,n)}function J(e,n,t){var o=new Uint8Array(32);return V(o,t,n),g(e,r,o,E)}_.prototype.blocks=function(e,n,t){for(var r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A=this.fin?0:2048,w=this.h[0],D=this.h[1],_=this.h[2],T=this.h[3],S=this.h[4],x=this.h[5],N=this.h[6],I=this.h[7],C=this.h[8],R=this.h[9],P=this.r[0],k=this.r[1],M=this.r[2],F=this.r[3],L=this.r[4],H=this.r[5],j=this.r[6],K=this.r[7],U=this.r[8],B=this.r[9];t>=16;)d=l=0,d+=(w+=8191&(r=255&e[n+0]|(255&e[n+1])<<8))*P,d+=(D+=8191&(r>>>13|(o=255&e[n+2]|(255&e[n+3])<<8)<<3))*(5*B),d+=(_+=8191&(o>>>10|(a=255&e[n+4]|(255&e[n+5])<<8)<<6))*(5*U),d+=(T+=8191&(a>>>7|(i=255&e[n+6]|(255&e[n+7])<<8)<<9))*(5*K),l=(d+=(S+=8191&(i>>>4|(s=255&e[n+8]|(255&e[n+9])<<8)<<12))*(5*j))>>>13,d&=8191,d+=(x+=s>>>1&8191)*(5*H),d+=(N+=8191&(s>>>14|(c=255&e[n+10]|(255&e[n+11])<<8)<<2))*(5*L),d+=(I+=8191&(c>>>11|(u=255&e[n+12]|(255&e[n+13])<<8)<<5))*(5*F),d+=(C+=8191&(u>>>8|(f=255&e[n+14]|(255&e[n+15])<<8)<<8))*(5*M),h=l+=(d+=(R+=f>>>5|A)*(5*k))>>>13,h+=w*k,h+=D*P,h+=_*(5*B),h+=T*(5*U),l=(h+=S*(5*K))>>>13,h&=8191,h+=x*(5*j),h+=N*(5*H),h+=I*(5*L),h+=C*(5*F),l+=(h+=R*(5*M))>>>13,h&=8191,p=l,p+=w*M,p+=D*k,p+=_*P,p+=T*(5*B),l=(p+=S*(5*U))>>>13,p&=8191,p+=x*(5*K),p+=N*(5*j),p+=I*(5*H),p+=C*(5*L),v=l+=(p+=R*(5*F))>>>13,v+=w*F,v+=D*M,v+=_*k,v+=T*P,l=(v+=S*(5*B))>>>13,v&=8191,v+=x*(5*U),v+=N*(5*K),v+=I*(5*j),v+=C*(5*H),y=l+=(v+=R*(5*L))>>>13,y+=w*L,y+=D*F,y+=_*M,y+=T*k,l=(y+=S*P)>>>13,y&=8191,y+=x*(5*B),y+=N*(5*U),y+=I*(5*K),y+=C*(5*j),m=l+=(y+=R*(5*H))>>>13,m+=w*H,m+=D*L,m+=_*F,m+=T*M,l=(m+=S*k)>>>13,m&=8191,m+=x*P,m+=N*(5*B),m+=I*(5*U),m+=C*(5*K),g=l+=(m+=R*(5*j))>>>13,g+=w*j,g+=D*H,g+=_*L,g+=T*F,l=(g+=S*M)>>>13,g&=8191,g+=x*k,g+=N*P,g+=I*(5*B),g+=C*(5*U),E=l+=(g+=R*(5*K))>>>13,E+=w*K,E+=D*j,E+=_*H,E+=T*L,l=(E+=S*F)>>>13,E&=8191,E+=x*M,E+=N*k,E+=I*P,E+=C*(5*B),b=l+=(E+=R*(5*U))>>>13,b+=w*U,b+=D*K,b+=_*j,b+=T*H,l=(b+=S*L)>>>13,b&=8191,b+=x*F,b+=N*M,b+=I*k,b+=C*P,O=l+=(b+=R*(5*B))>>>13,O+=w*B,O+=D*U,O+=_*K,O+=T*j,l=(O+=S*H)>>>13,O&=8191,O+=x*L,O+=N*F,O+=I*M,O+=C*k,w=d=8191&(l=(l=((l+=(O+=R*P)>>>13)<<2)+l|0)+(d&=8191)|0),D=h+=l>>>=13,_=p&=8191,T=v&=8191,S=y&=8191,x=m&=8191,N=g&=8191,I=E&=8191,C=b&=8191,R=O&=8191,n+=16,t-=16;this.h[0]=w,this.h[1]=D,this.h[2]=_,this.h[3]=T,this.h[4]=S,this.h[5]=x,this.h[6]=N,this.h[7]=I,this.h[8]=C,this.h[9]=R},_.prototype.finish=function(e,n){var t,r,o,a,i=new Uint16Array(10);if(this.leftover){for(a=this.leftover,this.buffer[a++]=1;a<16;a++)this.buffer[a]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(t=this.h[1]>>>13,this.h[1]&=8191,a=2;a<10;a++)this.h[a]+=t,t=this.h[a]>>>13,this.h[a]&=8191;for(this.h[0]+=5*t,t=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=t,t=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=t,i[0]=this.h[0]+5,t=i[0]>>>13,i[0]&=8191,a=1;a<10;a++)i[a]=this.h[a]+t,t=i[a]>>>13,i[a]&=8191;for(i[9]-=8192,r=(1^t)-1,a=0;a<10;a++)i[a]&=r;for(r=~r,a=0;a<10;a++)this.h[a]=this.h[a]&r|i[a];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,a=1;a<8;a++)o=(this.h[a]+this.pad[a]|0)+(o>>>16)|0,this.h[a]=65535&o;e[n+0]=this.h[0]>>>0&255,e[n+1]=this.h[0]>>>8&255,e[n+2]=this.h[1]>>>0&255,e[n+3]=this.h[1]>>>8&255,e[n+4]=this.h[2]>>>0&255,e[n+5]=this.h[2]>>>8&255,e[n+6]=this.h[3]>>>0&255,e[n+7]=this.h[3]>>>8&255,e[n+8]=this.h[4]>>>0&255,e[n+9]=this.h[4]>>>8&255,e[n+10]=this.h[5]>>>0&255,e[n+11]=this.h[5]>>>8&255,e[n+12]=this.h[6]>>>0&255,e[n+13]=this.h[6]>>>8&255,e[n+14]=this.h[7]>>>0&255,e[n+15]=this.h[7]>>>8&255},_.prototype.update=function(e,n,t){var r,o;if(this.leftover){for((o=16-this.leftover)>t&&(o=t),r=0;r=16&&(o=t-t%16,this.blocks(e,n,o),n+=o,t-=o),t){for(r=0;r=128;){for(A=0;A<16;A++)w=8*A+W,I[A]=t[w+0]<<24|t[w+1]<<16|t[w+2]<<8|t[w+3],C[A]=t[w+4]<<24|t[w+5]<<16|t[w+6]<<8|t[w+7];for(A=0;A<80;A++)if(o=R,a=P,i=k,s=M,c=F,u=L,f=H,j,d=K,h=U,p=B,v=V,y=Y,m=G,g=J,q,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,T+=65535&(_=(Y>>>14|F<<18)^(Y>>>18|F<<14)^(F>>>9|Y<<23)),S+=_>>>16,x+=65535&(D=(F>>>14|Y<<18)^(F>>>18|Y<<14)^(Y>>>9|F<<23)),N+=D>>>16,T+=65535&(_=Y&G^~Y&J),S+=_>>>16,x+=65535&(D=F&L^~F&H),N+=D>>>16,T+=65535&(_=z[2*A+1]),S+=_>>>16,x+=65535&(D=z[2*A]),N+=D>>>16,D=I[A%16],S+=(_=C[A%16])>>>16,x+=65535&D,N+=D>>>16,x+=(S+=(T+=65535&_)>>>16)>>>16,T=65535&(_=O=65535&T|S<<16),S=_>>>16,x=65535&(D=b=65535&x|(N+=x>>>16)<<16),N=D>>>16,T+=65535&(_=(K>>>28|R<<4)^(R>>>2|K<<30)^(R>>>7|K<<25)),S+=_>>>16,x+=65535&(D=(R>>>28|K<<4)^(K>>>2|R<<30)^(K>>>7|R<<25)),N+=D>>>16,S+=(_=K&U^K&B^U&B)>>>16,x+=65535&(D=R&P^R&k^P&k),N+=D>>>16,l=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,E=65535&T|S<<16,T=65535&(_=v),S=_>>>16,x=65535&(D=s),N=D>>>16,S+=(_=O)>>>16,x+=65535&(D=b),N+=D>>>16,P=o,k=a,M=i,F=s=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,L=c,H=u,j=f,R=l,U=d,B=h,V=p,Y=v=65535&T|S<<16,G=y,J=m,q=g,K=E,A%16==15)for(w=0;w<16;w++)D=I[w],T=65535&(_=C[w]),S=_>>>16,x=65535&D,N=D>>>16,D=I[(w+9)%16],T+=65535&(_=C[(w+9)%16]),S+=_>>>16,x+=65535&D,N+=D>>>16,b=I[(w+1)%16],T+=65535&(_=((O=C[(w+1)%16])>>>1|b<<31)^(O>>>8|b<<24)^(O>>>7|b<<25)),S+=_>>>16,x+=65535&(D=(b>>>1|O<<31)^(b>>>8|O<<24)^b>>>7),N+=D>>>16,b=I[(w+14)%16],S+=(_=((O=C[(w+14)%16])>>>19|b<<13)^(b>>>29|O<<3)^(O>>>6|b<<26))>>>16,x+=65535&(D=(b>>>19|O<<13)^(O>>>29|b<<3)^b>>>6),N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,I[w]=65535&x|N<<16,C[w]=65535&T|S<<16;T=65535&(_=K),S=_>>>16,x=65535&(D=R),N=D>>>16,D=e[0],S+=(_=n[0])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[0]=R=65535&x|N<<16,n[0]=K=65535&T|S<<16,T=65535&(_=U),S=_>>>16,x=65535&(D=P),N=D>>>16,D=e[1],S+=(_=n[1])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[1]=P=65535&x|N<<16,n[1]=U=65535&T|S<<16,T=65535&(_=B),S=_>>>16,x=65535&(D=k),N=D>>>16,D=e[2],S+=(_=n[2])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[2]=k=65535&x|N<<16,n[2]=B=65535&T|S<<16,T=65535&(_=V),S=_>>>16,x=65535&(D=M),N=D>>>16,D=e[3],S+=(_=n[3])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[3]=M=65535&x|N<<16,n[3]=V=65535&T|S<<16,T=65535&(_=Y),S=_>>>16,x=65535&(D=F),N=D>>>16,D=e[4],S+=(_=n[4])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[4]=F=65535&x|N<<16,n[4]=Y=65535&T|S<<16,T=65535&(_=G),S=_>>>16,x=65535&(D=L),N=D>>>16,D=e[5],S+=(_=n[5])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[5]=L=65535&x|N<<16,n[5]=G=65535&T|S<<16,T=65535&(_=J),S=_>>>16,x=65535&(D=H),N=D>>>16,D=e[6],S+=(_=n[6])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[6]=H=65535&x|N<<16,n[6]=J=65535&T|S<<16,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,D=e[7],S+=(_=n[7])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[7]=j=65535&x|N<<16,n[7]=q=65535&T|S<<16,W+=128,r-=128}return r}function Z(e,n,t){var r,o=new Int32Array(8),a=new Int32Array(8),i=new Uint8Array(256),s=t;for(o[0]=1779033703,o[1]=3144134277,o[2]=1013904242,o[3]=2773480762,o[4]=1359893119,o[5]=2600822924,o[6]=528734635,o[7]=1541459225,a[0]=4089235720,a[1]=2227873595,a[2]=4271175723,a[3]=1595750129,a[4]=2917565137,a[5]=725511199,a[6]=4215389547,a[7]=327033209,Q(o,a,n,t),t%=128,r=0;r=0;--o)$(e,n,r=t[o/8|0]>>(7&o)&1),X(n,e),X(e,e),$(e,n,r)}function te(e,t){var r=[n(),n(),n(),n()];I(r[0],f),I(r[1],l),I(r[2],i),j(r[3],f,l),ne(e,r,t)}function re(e,r,o){var a,i=new Uint8Array(64),s=[n(),n(),n(),n()];for(o||t(r,32),Z(i,r,32),i[0]&=248,i[31]&=127,i[31]|=64,te(s,i),ee(e,s),a=0;a<32;a++)r[a+32]=e[a];return 0}var oe=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function ae(e,n){var t,r,o,a;for(r=63;r>=32;--r){for(t=0,o=r-32,a=r-12;o>4)*oe[o],t=n[o]>>8,n[o]&=255;for(o=0;o<32;o++)n[o]-=t*oe[o];for(r=0;r<32;r++)n[r+1]+=n[r]>>8,e[r]=255&n[r]}function ie(e){var n,t=new Float64Array(64);for(n=0;n<64;n++)t[n]=e[n];for(n=0;n<64;n++)e[n]=0;ae(e,t)}function se(e,t,r,o){var a,i,s=new Uint8Array(64),c=new Uint8Array(64),u=new Uint8Array(64),f=new Float64Array(64),l=[n(),n(),n(),n()];Z(s,o,32),s[0]&=248,s[31]&=127,s[31]|=64;var d=r+64;for(a=0;a>7&&H(e[0],a,e[0]),j(e[3],e[0],e[1]),0)}(h,o))return-1;for(s=0;s=0},e.sign.keyPair=function(){var e=new Uint8Array(le),n=new Uint8Array(de);return re(e,n),{publicKey:e,secretKey:n}},e.sign.keyPair.fromSecretKey=function(e){if(pe(e),e.length!==de)throw new Error("bad secret key size");for(var n=new Uint8Array(le),t=0;t{let t;return(t=e.length%4)&&(e+="=".repeat(4-t)),n.decodeBase64(e)},a=n.decodeUTF8,i=n.encodeUTF8,s=function(e){for(var n="",t=0;t{var n={setCustomize:n=>{e=n.ApiConfig},getWebsocketURL:function(n){var t=e.websocketPath||"/cryptpad_websocket";if(/^ws{1,2}:\/\//.test(t))return t;var r=new URL(n||self?.location?.href);return n&&(r.href=n),r.protocol.replace(/http/,"ws")+"//"+r.host+t}};return n})())}(H)),H.exports}var K,U=j(),B=n({__proto__:null,default:r(U)},[U]),V={exports:{}};function Y(){return K||(K=1,function(e){e.exports&&(e.exports=function(e={}){return{setCustomize:n=>{e=n.AppConfig},userHashKey:"User_hash",userNameKey:"User_name",blockHashKey:"Block_hash",fileHashKey:"FS_hash",sessionJWT:"Session_JWT",ssoSeed:"SSO_seed",displayNameKey:"cryptpad.username",oldStorageKey:"CryptPad_RECENTPADS",storageKey:"filesData",tokenKey:"loginToken",prefersDriveRedirectKey:"prefersDriveRedirect",isPremiumKey:"isPremiumUser",displayPadCreationScreen:"displayPadCreationScreen",deprecatedKey:"deprecated",MAX_TEAMS_SLOTS:e.maxTeamsSlots||5,MAX_TEAMS_OWNED:e.maxOwnedTeams||5,MAX_PREMIUM_TEAMS_SLOTS:Math.max(e.maxTeamsSlots||0,e.maxPremiumTeamsSlots||0)||5,MAX_PREMIUM_TEAMS_OWNED:Math.max(e.maxOwnedTeams||0,e.maxPremiumTeamsOwned||0)||5,criticalApps:["profile","settings","debug","admin","support","notifications","calendar","moderation","oldadmin"],earlyAccessApps:[]}}(void 0))}(V)),V.exports}var G,J=Y(),q=n({__proto__:null,default:r(J)},[J]),W={exports:{}},z={exports:{}},Q=z.exports;function Z(){return G||(G=1,function(e){!function(n){const t=e=>{var t={};n.atob=n.atob||function(e){return Buffer.from(e,"base64").toString("binary")},n.btoa=n.btoa||function(e){return Buffer.from(e,"binary").toString("base64")},t.encodeBase64=e.encodeBase64,t.decodeBase64=n=>{let t;return(t=n.length%4)&&(n+="=".repeat(4-t)),e.decodeBase64(n)},t.encodeUTF8=e.encodeUTF8,t.decodeUTF8=e.decodeUTF8,t.slice=function(e,n,t){return Array.prototype.slice.call(e,n,t)},t.u8ToBase64=(e,n)=>{const t=new FileReader;t.onload=()=>{let e=t.result,r=e.slice(e.indexOf(",")+1);n(r)},t.readAsDataURL(new Blob([e]))},t.shuffleArray=function(e){for(var n=e.length-1;n>0;n--){var t=Math.floor(Math.random()*(n+1)),r=e[n];e[n]=e[t],e[t]=r}},t.bake=function(e,n){return void 0===n&&(n=[]),Array.isArray(n)||(n=[n]),function(){return e.apply(null,n)}},t.both=function(e,n){if("function"!=typeof e)throw new Error("INVALID_USAGE");return"function"!=typeof n&&(n=function(e){return e}),function(){return e.apply(null,arguments),n.apply(null,arguments)}},t.clone=function(e){return null==e?e:JSON.parse(JSON.stringify(e))},t.serializeError=function(e){if(!(e instanceof Error))return e;var n={};return Object.getOwnPropertyNames(e).forEach((function(t){n[t]=e[t]})),n},t.tryParse=function(e){try{return JSON.parse(e)}catch(e){return}},t.mkAsync=function(e,n){if("function"!=typeof e)throw new Error("EXPECTED_FUNCTION");return function(){var t=Array.prototype.slice.call(arguments);setTimeout((function(){e.apply(null,t)}),n)}},t.mkEvent=function(e){var n=[],t=!1;let r;return{reg:function(r){e&&t?setTimeout(r):n.push(r)},unreg:function(e){-1!==n.indexOf(e)?n.splice(n.indexOf(e),1):console.log("event handler was already unregistered")},fire:function(){if(!e||!t){var o=Array.prototype.slice.call(arguments);t||r.apply(null,o),t=!0,n.forEach((function(e){e.apply(null,o)}))}},promise:new Promise((e=>{r=e}))}},t.mkTimeout=function(e,n){n=n||0;var r=t.once(e),o=setTimeout((function(){r("TIMEOUT")}),n);return t.both(r,(function(){clearTimeout(o)}))},t.onClickEnter=function(e,n,t){e.on("click keydown",(function(e){var r="click"===e.type,o="keydown"===e.type&&13===e.which,a="keydown"===e.type&&32===e.which&&t&&t.space;(r||o||a)&&("keydown"===e.type&&e.preventDefault(),n(e))}))},t.response=function(e){var n={},t={};"function"!=typeof e&&(e=function(e){throw new Error(e)});var r=function(e){clearTimeout(t[e]),delete t[e],delete n[e]};return{clear:r,expected:function(e){return Boolean(n[e])},expectation:function(e){return n[e]},expect:function(o,a,i){"string"!=typeof o&&e("EXPECTED_STRING"),"function"!=typeof a&&e("EXPECTED_CALLBACK"),n[o]=a,"number"==typeof i&&i&&(t[o]=setTimeout((function(){"function"==typeof n[o]&&n[o]("TIMEOUT"),r(o)}),i))},handle:function(t,o){var a=n[t];if("function"==typeof a){try{a.apply(null,Array.isArray(o)?o:[o])}catch(n){e("HANDLER_ERROR",{error:n,id:t,args:o})}r(t)}else e("MISSING_CALLBACK",{id:t,args:o})},_pending:n}},t.inc=function(e,n,t){e[n]=(e[n]||0)+("number"==typeof t?t:1)},t.values=function(e){return Object.keys(e).map((function(n){return e[n]}))},t.find=function(e,n){for(var t=n.length,r=0;r&"']/g,(function(e){return{"<":"<",">":">","&":"&",'"':""","'":"'"}[e]})):""},t.hexToBase64=function(e){var t=e.replace(/\r|\n/g,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" "),r=String.fromCharCode.apply(null,t);return n.btoa(r).replace(/\//g,"-").replace(/=+$/,"")},t.base64ToHex=function(e){var t=[];return n.atob(e.replace(/-/g,"/")).split("").forEach((function(e){var n=e.charCodeAt(0).toString(16);1===n.length&&(n="0"+n),t.push(n)})),t.join("")},t.uint8ArrayToHex=function(e){for(var n="",t=0;t=o?"GB":e>=r?"MB":"KB"};t.getBlock=function(e,n,r){var o=t.once(t.mkAsync(r)),a={};"string"==typeof n.bearer&&n.bearer&&(a.authorization=`Bearer ${n.bearer}`),fetch(e,{method:"GET",credentials:"include",headers:a}).then((e=>{e.ok?o(void 0,e):401!==e.status&&404!==e.status?o(e.status,e):e.json().then((n=>{o(e.status,n)})).catch((()=>{o(e.status)}))})).catch((e=>{o(e)}))},t.fetchApi=function(e,n,t,r){const o=new URL(e);o.pathname=`api/${n}`;let a=o.href+(t?"?"+ +new Date:"");if("undefined"!=typeof self&&self.crypto)fetch(a).then((e=>{if(!e.ok)throw new Error(`Fetch error: ${e.status}`);return e.text()})).then((e=>{r(JSON.parse(e.slice(27,-5)))})).catch((e=>{console.error(e.message),r({})}));else if(void 0!==b){("http:"===o.protocol?require("node:http"):require("node:https")).get(o.href,(e=>{let n="";e.on("data",(e=>{n+=e})),e.on("end",(()=>{try{r(JSON.parse(n.slice(27,-5)))}catch(e){console.error(e),r({})}}))}))}},t.fetch=function(e,n,r,o){var a,i=t.once(t.mkAsync(n)),s=function(e){var n=e.replace(/(\/)*$/,""),t=n.lastIndexOf("/"),r=n.slice(t+1);return/^[a-f0-9]{48}$/.test(r)||(r=void 0),r}(e),c=function(){(a=new XMLHttpRequest).open("GET",e,!0),r&&a.addEventListener("progress",(function(e){if(e.lengthComputable){var n=e.loaded/e.total;r(n)}}),!1),a.responseType="arraybuffer",a.onerror=function(e){i(e)},a.onload=function(){if(/^4/.test(""+this.status))return i("XHR_ERROR");var e=a.response;if(e){var n=new Uint8Array(e);return s?void function(e,n,t){o&&"function"==typeof o.setBlobCache?o.setBlobCache(e,n,t):t("EINVAL")}(s,n,(function(){i(null,n)})):void i(void 0,n)}i("ENOENT")},a.send(null)};if(s)return function(e,n){o&&"function"==typeof o.getBlobCache?o.getBlobCache(e,n):n("EINVAL")}(s,(function(e,n){!e&&n?i(void 0,n):c()})),{cancel:function(){a&&a.abort&&a.abort()}};c()},t.dataURIToBlob=function(e){for(var n=atob(e.split(",")[1]),t=e.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(n.length),o=new Uint8Array(r),a=0;aparseInt(e,10).toString(16).padStart(2,"0"))).join("")}`},t.isSmallScreen=function(){return n.innerHeight<800||n.innerWidth<800},t.stripTags=function(e){var n=document.createElement("div");return n.innerHTML=e,n.innerText},t.parseFilename=function(e){if(!e||!e.trim())return{};var n=/^(\.?.+?)(\.[^.]+)?$/.exec(e)||[];return{name:n[1],ext:n[2]}},t.isPlainTextFile=function(e,n){if(e&&0===e.indexOf("text/"))return!0;var r=t.parseFilename(n);return!(e||!n||r.ext)||("application/x-javascript"===e||"application/xml"===e)},t.isSpreadsheet=function(e,n){return e&&("application/vnd.oasis.opendocument.spreadsheet"===e||"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"===e)||n&&(n.endsWith(".xlsx")||n.endsWith(".ods"))},t.isOfficeDoc=function(e,n){return e&&("application/vnd.oasis.opendocument.text"===e||"application/vnd.openxmlformats-officedocument.wordprocessingml.document"===e)||n&&(n.endsWith(".docx")||n.endsWith(".odt"))},t.isPresentation=function(e,n){return e&&("application/vnd.oasis.opendocument.presentation"===e||"application/vnd.openxmlformats-officedocument.presentationml.presentation"===e)||n&&(n.endsWith(".pptx")||n.endsWith(".odp"))},t.isValidURL=function(e){return!!new RegExp("^(https?:\\/\\/)((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?").test(e)};var a=/([\uD800-\uDBFF][\uDC00-\uDFFF])/;t.getFirstCharacter=function(e){if(!e||!e.trim())return"?";var n=function(e){for(var n=e.split(a),t=[],r=0;r{let n=/ver=([0-9.]+)(-[0-9]*)?/.exec(e);return Array.isArray(n)&&n[1]||void 0},t.Saferphore={create:e=>{var n,t=[];return n=function(){if(e<0)throw new Error("(resourceCount < 0) should never happen");var r;0!==e&&0!==t.length&&(e--,t.shift()((r=0,function(t){if(r++)throw new Error("returnAfter() called multiple times");var o=0;return function(){if(o++)throw new Error("returnAfter wrapped callback called multiple times");t&&t.apply(null,arguments),e++,n()}})))},{take:function(e){t.push(e),n()}}}},t};e.exports?e.exports=t(k()):n.CryptPad_Util=Util}("undefined"!=typeof self?self:Q)}(z)),z.exports}var X,$,ee={exports:{}};function ne(){return X||(X=1,function(e){e.exports&&(e.exports=function(){var e={},n=function(e){return e.replace(/-/g,"/")};return e.parseUser=function(e){var t,r,o,a=function(e){if(/^\[.*?@.*\]$/.test(e)){var t,r=e.slice(1,-1);if(r=r.replace(/\/([a-zA-Z0-9+-]{43}=)$/,(function(e,r){return t=n(r),""})),t){var o=r.lastIndexOf("@");if(!(o<1))return{domain:r.slice(o+1),user:r.slice(0,o),pubkey:t}}}}(e);if(function(e){if(e&&e.domain&&e.user&&e.pubkey)return!0}(a))return a;if(e.replace(/^https*:\/\/([^\/]+)\/user\/#\/1\/([^\/]+)\/([a-zA-Z0-9+-]{43}=)$/,(function(e,a,i,s){return t=a,r=i,o=n(s),""})),!t)throw new Error("Could not parse user id ["+e+"]");return{domain:t,user:r,pubkey:o}},e.serialize=function(e,n,t){return"["+n+"@"+e.replace(/https*:\/\//,"")+"/"+t.replace(/\//g,"-")+"]"},e.canonicalize=function(t){if("string"==typeof t){if(44===t.length)return n(t);try{return e.parseUser(t).pubkey}catch(e){return}}},e}())}(ee)),ee.exports}function te(){return $||($=1,function(e){!function(n){e.exports&&(e.exports=function(e,t,r,o){var a=n.CryptPad_Hash={},i=e.uint8ArrayToHex,s=e.hexToBase64,c=e.base64ToHex;a.encodeBase64=e.encodeBase64,a.decodeBase64=e.decodeBase64,a.hashChannelList=function(n){return e.encodeBase64(o.hash(e.decodeUTF8(JSON.stringify(n))))},a.generateSignPair=function(){var e=o.sign.keyPair(),n=function(e){return t.b64RemoveSlashes(e).replace(/=+$/g,"")};return{validateKey:a.encodeBase64(e.publicKey),signKey:a.encodeBase64(e.secretKey),safeValidateKey:n(a.encodeBase64(e.publicKey)),safeSignKey:n(a.encodeBase64(e.secretKey))}},a.getSignPublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.sign.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)},a.getCurvePublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.box.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)};var u=a.getEditHashFromKeys=function(e){var n=e.version,r=e.keys;if(0===n)return e.channel+e.key;if(1===n){if(!r.editKeyStr)return;return"/1/edit/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.editKeyStr)+"/"}if(2===n){if(!r.editKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/edit/"+t.b64RemoveSlashes(r.editKeyStr)+"/"+o}},f=a.getViewHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n){if(!r.viewKeyStr)return;return"/1/view/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"}if(2===n){if(!r.viewKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/view/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"+o}}};a.getHiddenHashFromKeys=function(e,n,t){t=t||{};var r=n.keys&&n.keys.editKeyStr||n.key,o=!t.view&&r?"edit/":"view/",i=n.password?"p/":"";n.keys&&n.keys.fileKeyStr&&(o="");var s="/3/"+e+"/"+o+n.channel+"/"+i,c=a.parseTypeHash(e,s);return c&&c.getHash?c.getHash(t||{}):s};var l=a.getFileHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n)return"/1/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/";if(2===n){if(!r.fileKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/"+o}}};a.getPublicSigningKeyString=r.serialize,a.ephemeralChannelLength=34,a.createChannelId=function(e){var n=i(t.Nacl.randomBytes(e?17:16));if(-1===[32,34].indexOf(n.length)||/[^a-f0-9]/.test(n))throw new Error("channel ids must consist of 32 hex characters");return n},a.getChannelIdFromKey=function(e){if(e)return i(a.decodeBase64(e).subarray(0,16))},a.getBoxPublicFromSecret=function(e){if(e){var n=a.decodeBase64(e),t=o.box.keyPair.fromSecretKey(n);return a.encodeBase64(t.publicKey)}},a.checkBoxKeyPair=function(e,n){if(!n||!e)return!1;var t=a.decodeBase64(e),r=o.box.keyPair.fromSecretKey(t);return n===a.encodeBase64(r.publicKey)},a.createRandomHash=function(e,n){var r;return"file"===e?(r=t.createFileCryptor2(void 0,n),l({password:Boolean(n),version:2,type:e,keys:r})):(r=t.createEditCryptor2(void 0,void 0,n),u({password:Boolean(n),version:2,type:e,keys:r}))};var d=a.parseTypeHash=function(e,n){if(n){var r,o=[],a={},i=(r=n,r.replace(/\/+/g,"/")).split("/"),s=function(){a.password=-1!==o.indexOf("p"),a.present=-1!==o.indexOf("present"),a.embed=-1!==o.indexOf("embed"),a.versionHash=function(e){var n;return e.some((function(e){if(/^hash=/.test(e))return n=e.slice(5),!0})),n?t.b64AddSlashes(n):""}(o),a.auditorKey=function(e){var n;return e.some((function(e){if(/^auditor=/.test(e))return n=e.slice(8),!0})),n?t.b64AddSlashes(n):""}(o),a.newPadOpts=function(e){var n;return e.some((function(e){if(/^newpad=/.test(e))return n=e.slice(7),!0})),n||""}(o),a.loginOpts=function(e){var n;return e.some((function(e){if(/^login=/.test(e))return n=e.slice(6),!0})),n||""}(o),a.ownerKey=function(e){var n;return e.some((function(e){if(86===e.length)return n=e,!0})),n}(o)};return i[1]&&"4"===i[1]?(a.getHash=function(n){if(!n||!Object.keys(n).length)return"";var t="/4/"+e+"/";return n.newPadOpts&&(t+="newpad="+n.newPadOpts+"/"),n.loginOpts&&(t+="login="+n.loginOpts+"/"),t},a.getOptions=function(){var e={};return a.newPadOpts&&(e.newPadOpts=a.newPadOpts),a.loginOpts&&(e.loginOpts=a.loginOpts),e},a.version=4,a.app=i[2],o=i.slice(3),s(),a):-1===["media","file","user","invite"].indexOf(e)?(a.type="pad",a.getHash=function(){return n},a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,versionHash:a.versionHash,auditorKey:a.auditorKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},"/"!==n.slice(0,1)&&n.length>=56?(a.channel=n.slice(0,32),a.key=n.slice(32,56),a.version=0,a):(a.getHash=function(e){var n=i.slice(0,5).join("/")+"/",r=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;r&&(n+=r+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/");var o=void 0!==e.versionHash?e.versionHash:a.versionHash;o&&(n+="hash="+t.b64RemoveSlashes(o)+"/");var s=void 0!==e.auditorKey?e.auditorKey:a.auditorKey;return s&&(n+="auditor="+t.b64RemoveSlashes(s)+"/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.mode=i[2],a.channel=i[3],a.key=t.b64AddSlashes(i[4]),o=i.slice(5),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.mode=i[3],a.channel=i[4],o=i.slice(5),s(),a):a)):(a.getHash=function(){return i.join("/")},-1!==["media","file"].indexOf(e)?(a.type="file",a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},a.getHash=function(e){var n=i.slice(0,4).join("/")+"/",t=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;return t&&(n+=t+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.channel=i[2].replace(/-/g,"/"),a.key=i[3].replace(/-/g,"/"),o=i.slice(4),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.key=i[3],o=i.slice(4),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.channel=i[3],o=i.slice(4),s(),a):a):-1!==["user"].indexOf(e)?(a.type="user",i[1]&&"1"===i[1]?(a.version=1,a.user=i[2],a.pubkey=i[3].replace(/-/g,"/"),a):a):-1!==["invite"].indexOf(e)?(a.type="invite",i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),a.password=-1!==o.indexOf("p"),a):a):void 0)}},h=a.parsePadUrl=function(e){var n,t={};return e?("/"!==e.slice(-1)&&"#"!==e.slice(-1)&&(e+="/"),e=e.replace(/\/\?[^#]+#/,"/#"),t.getUrl=function(e){e=e||{};var n="/";return t.type?(n+=t.type+"/",!t.hashData&&e&&Object.keys(e).length?n+"#"+function(e){if(!e||!Object.keys(e).length)return"";var n="/4/"+t.type+"/";return e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n}(e):t.hashData?n+="#"+t.hashData.getHash(e):n):n},t.getOptions=function(){return t.hashData&&t.hashData.getOptions?t.hashData.getOptions():{}},/^https*:\/\//.test(e)?(e.replace(/^https*:\/\/([^\/]*)\/(.*?)\//i,(function(e,n,r){return t.domain=n,t.type=r,""})),-1===(n=e.indexOf("/#"))||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):/^\/($|[^\/])/.test(e)?(n=e.indexOf("/#"),t.type=e.slice(1,n),-1===n||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):t):t};return a.hashToHref=function(e,n){return"/"+n+"/#"+e},a.hrefToHash=function(e){return a.parsePadUrl(e).hash},a.getRelativeHref=function(e){if(e&&-1!==e.indexOf("#")){var n=h(e);return"/"+n.type+"/#"+n.hash}},a.getSecrets=function(n,r,o){var a,i,s={},u=function(){s.keys=t.createEditCryptor2(void 0,void 0,o),s.channel=c(s.keys.chanId),s.version=2,s.type=n};if(!r)return u(),s;if(r){if(!n)throw new Error("getSecrets with a hash requires a type parameter");a=d(n,r),i=r}if(0===i.length)return u(),s;if(0===a.version)s.channel=a.channel,s.key=a.key,s.version=0;else if(1===a.version){if(s.version=1,"pad"===a.type){if(s.channel=c(a.channel),"edit"===a.mode){if(s.keys=t.createEditCryptor(a.key),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor(a.key),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type)s.channel=c(a.channel),s.keys={fileKeyStr:a.key,cryptKey:e.decodeBase64(a.key)};else if("user"===a.type)throw new Error("User hashes can't be opened (yet)")}else if(2===a.version)if(s.version=2,s.type=n,s.password=o,"pad"===a.type){if("edit"===a.mode){if(s.keys=t.createEditCryptor2(a.key,void 0,o),s.channel=c(s.keys.chanId),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor2(a.key,o),s.channel=c(s.keys.chanId),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type){if(s.keys=t.createFileCryptor2(a.key,o),s.channel=c(s.keys.chanId),s.key=s.keys.fileKeyStr,48!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("user"===a.type)throw new Error("User hashes can't be opened (yet)");return s},a.getHashes=function(e){var n={};return(e=JSON.parse(JSON.stringify(e))).keys||e.key?(e.keys||(e.keys={}),(e.keys.editKeyStr||0===e.version&&e.key)&&(n.editHash=u(e)),e.keys.viewKeyStr&&(n.viewHash=f(e)),e.keys.fileKeyStr&&(n.fileHash=l(e)),n):n},a.getFormData=function(n,t,r){var i=(n=n||a.getSecrets("form",t,r))&&n.keys,s=i&&i.secondaryKey;if(s){var c=o.box.keyPair.fromSecretKey(e.decodeUTF8(s).slice(0,32)),u={};u.form_public=e.encodeBase64(c.publicKey);var f=u.form_private=e.encodeBase64(c.secretKey),l=a.getViewHashFromKeys({version:1,channel:n.channel,keys:{viewKeyStr:e.encodeBase64(i.cryptKey)}}),d=a.parseTypeHash("pad",l);return u.form_auditorHash=d.getHash({auditorKey:f}),u}},a.hrefToHexChannelId=function(e,n){var t=a.parsePadUrl(e);if(t&&t.hash)return a.getSecrets(t.type,t.hash,n).channel},a.getBlobPathFromHex=function(e){return"/blob/"+e.slice(0,2)+"/"+e},a.serializeHash=function(e){return e&&"/"!==e.slice(-1)&&(e+="/"),e},a.createInviteUrl=function(e,t){return t=t||a.createChannelId(),n.location.origin+"/invite/#/1/"+t+"/"+e.replace(/\//g,"-")+"/"},a.isValidChannel=function(e){return/^[a-zA-Z0-9]{32,48}$/.test(e)},a.isValidHref=function(e){if(e){var n=a.parsePadUrl(e);if(n&&n.type){if(n.hash){if(!n.hashData)return;if(void 0===n.hashData.version)return;if("pad"===n.hashData.type||"file"===n.hashData.type){if(!n.hashData.key&&!n.hashData.channel)return;if(n.hashData.key&&!/^[a-zA-Z0-9+-/=]+$/.test(n.hashData.key))return}}return n}}},a.decodeDataOptions=function(n){var t=decodeURIComponent(n),r=e.encodeUTF8(e.decodeBase64(t));return e.tryParse(r)||{}},a.encodeDataOptions=function(n){var t=JSON.stringify(n),r=e.encodeBase64(e.decodeUTF8(t));return encodeURIComponent(r)},a.getNewPadURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.newPadOpts=a.encodeDataOptions(n),t.getUrl(r)},a.getLoginURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.loginOpts=a.encodeDataOptions(n),t.getUrl(r)},a}(Z(),M(),ne(),N()))}("undefined"!=typeof window?window:{})}(W)),W.exports}var re,oe,ae=te(),ie=Z(),se={exports:{}},ce={exports:{}};function ue(){return re||(re=1,function(e){e.exports=function e(n,t,r){function o(i,s){if(!t[i]){if(!n[i]){if(!s&&b)return b(i);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=t[i]={exports:{}};n[i][0].call(u.exports,(function(e){var t=n[i][1][e];return o(t||e)}),u,u.exports,e,n,t,r)}return t[i].exports}for(var a=b,i=0;i=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof v?u.resolve(v):O(e).then((function(e){return v=e}))}function w(e){var n=y[e.name],t={};t.promise=new u((function(e,n){t.resolve=e,t.reject=n})),n.deferredOperations.push(t),n.dbReady?n.dbReady=n.dbReady.then((function(){return t.promise})):n.dbReady=t.promise}function D(e){var n=y[e.name].deferredOperations.pop();if(n)return n.resolve(),n.promise}function _(e,n){var t=y[e.name].deferredOperations.pop();if(t)return t.reject(n),t.promise}function T(e,n){return new u((function(t,r){if(y[e.name]=y[e.name]||F(),e.db){if(!n)return t(e.db);w(e),e.db.close()}var o=[e.name];n&&o.push(e.version);var a=i.open.apply(i,o);n&&(a.onupgradeneeded=function(n){var t=a.result;try{t.createObjectStore(e.storeName),n.oldVersion<=1&&t.createObjectStore(p)}catch(t){if("ConstraintError"!==t.name)throw t;console.warn('The database "'+e.name+'" has been upgraded from version '+n.oldVersion+" to version "+n.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){var n=a.result;n.onversionchange=function(e){e.target.close()},t(n),D(e)}}))}function S(e){return T(e,!1)}function x(e){return T(e,!0)}function N(e,n){if(!e.db)return!0;var t=!e.db.objectStoreNames.contains(e.storeName),r=e.versione.db.version;if(r&&(e.version!==n&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||t){if(t){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function I(e){return new u((function(n,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");n({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)}))}function C(e){return c([b(atob(e.data))],{type:e.type})}function R(e){return e&&e.__local_forage_encoded_blob}function P(e){var n=this,t=n._initReady().then((function(){var e=y[n._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return l(t,e,e),t}function k(e){w(e);for(var n=y[e.name],t=n.forages,r=0;r0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)})).then((function(){return k(e).then((function(){M(e,n,t,r-1)}))})).catch(t);t(o)}}function F(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function L(e){var n=this,t={db:null};if(e)for(var r in e)t[r]=e[r];var o=y[t.name];o||(o=F(),y[t.name]=o),o.forages.push(n),n._initReady||(n._initReady=n.ready,n.ready=P);var a=[];function i(){return u.resolve()}for(var s=0;s>4,f[c++]=(15&r)<<4|o>>2,f[c++]=(3&o)<<6|63&a;return u}function pe(e){var n,t=new Uint8Array(e),r="";for(n=0;n>2],r+=z[(3&t[n])<<4|t[n+1]>>4],r+=z[(15&t[n+1])<<2|t[n+2]>>6],r+=z[63&t[n+2]];return t.length%3==2?r=r.substring(0,r.length-1)+"=":t.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function ve(e,n){var t="";if(e&&(t=de.call(e)),e&&("[object ArrayBuffer]"===t||e.buffer&&"[object ArrayBuffer]"===de.call(e.buffer))){var r,o=X;e instanceof ArrayBuffer?(r=e,o+=ee):(r=e.buffer,"[object Int8Array]"===t?o+=te:"[object Uint8Array]"===t?o+=re:"[object Uint8ClampedArray]"===t?o+=oe:"[object Int16Array]"===t?o+=ae:"[object Uint16Array]"===t?o+=se:"[object Int32Array]"===t?o+=ie:"[object Uint32Array]"===t?o+=ce:"[object Float32Array]"===t?o+=ue:"[object Float64Array]"===t?o+=fe:n(new Error("Failed to get type for BinaryArray"))),n(o+pe(r))}else if("[object Blob]"===t){var a=new FileReader;a.onload=function(){var t=Q+e.type+"~"+pe(this.result);n(X+ne+t)},a.readAsArrayBuffer(e)}else try{n(JSON.stringify(e))}catch(t){console.error("Couldn't convert value into a JSON string: ",e),n(null,t)}}function ye(e){if(e.substring(0,$)!==X)return JSON.parse(e);var n,t=e.substring(le),r=e.substring($,le);if(r===ne&&Z.test(t)){var o=t.match(Z);n=o[1],t=t.substring(o[0].length)}var a=he(t);switch(r){case ee:return a;case ne:return c([a],{type:n});case te:return new Int8Array(a);case re:return new Uint8Array(a);case oe:return new Uint8ClampedArray(a);case ae:return new Int16Array(a);case se:return new Uint16Array(a);case ie:return new Int32Array(a);case ce:return new Uint32Array(a);case ue:return new Float32Array(a);case fe:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}}var me={serialize:ve,deserialize:ye,stringToBuffer:he,bufferToString:pe};function ge(e,n,t,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+n.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],t,r)}function Ee(e){var n=this,t={db:null};if(e)for(var r in e)t[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new u((function(e,r){try{t.db=openDatabase(t.name,String(t.version),t.description,t.size)}catch(e){return r(e)}t.db.transaction((function(o){ge(o,t,(function(){n._dbInfo=t,e()}),(function(e,n){r(n)}))}),r)}));return t.serializer=me,o}function be(e,n,t,r,o,a){e.executeSql(t,r,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[n.storeName],(function(e,s){s.rows.length?a(e,i):ge(e,n,(function(){e.executeSql(t,r,o,a)}),a)}),a):a(e,i)}),a)}function Oe(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,t){var r=t.rows.length?t.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ae(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName,[],(function(t,r){for(var a=r.rows,i=a.length,s=0;s0)return void a(we.apply(o,[e,s,t,r-1]));i(n)}}))}))})).catch(i)}));return f(a,t),a}function De(e,n,t){return we.apply(this,[e,n,t,1])}function _e(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){n()}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Te(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function Se(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(n,t){var r=t.rows.item(0).c;e(r)}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function xe(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,t){var r=t.rows.length?t.rows.item(0).key:null;n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ne(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT key FROM "+r.storeName,[],(function(n,t){for(var r=[],o=0;o '__WebKitDatabaseInfoTable__'",[],(function(t,r){for(var o=[],a=0;a0}function Le(e){var n=this,t={};if(e)for(var r in e)t[r]=e[r];return t.keyPrefix=ke(e,n._defaultConfig),Fe()?(n._dbInfo=t,t.serializer=me,u.resolve()):u.reject()}function He(e){var n=this,t=n.ready().then((function(){for(var e=n._dbInfo.keyPrefix,t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return f(t,e),t}function je(e,n){var t=this;e=d(e);var r=t.ready().then((function(){var n=t._dbInfo,r=localStorage.getItem(n.keyPrefix+e);return r&&(r=n.serializer.deserialize(r)),r}));return f(r,n),r}function Ke(e,n){var t=this,r=t.ready().then((function(){for(var n=t._dbInfo,r=n.keyPrefix,o=r.length,a=localStorage.length,i=1,s=0;s=0;n--){var t=localStorage.key(n);0===t.indexOf(e)&&localStorage.removeItem(t)}})):u.reject("Invalid arguments"),f(r,n),r}var qe={_driver:"localStorageWrapper",_initStorage:Le,_support:Pe(),iterate:Ke,getItem:je,setItem:Ge,removeItem:Ye,clear:He,length:Ve,key:Ue,keys:Be,dropInstance:Je},We=function(e,n){return e===n||"number"==typeof e&&"number"==typeof n&&isNaN(e)&&isNaN(n)},ze=function(e,n){for(var t=e.length,r=0;r{const n=(e,n)=>{let t=globalThis,r=globalThis;var o=t.CryptPad_Cache={},a=e.mkEvent(!0),i=!1,s=!1,c=!1;try{var u=t.indexedDB.open("test_db",1);u.onsuccess=function(){i=(c=!0)&&!s,a.fire()},u.onerror=function(){a.fire()}}catch(e){a.fire()}o.enable=function(){s=!1,i=c&&!s},o.disable=function(){s=!0,i=c&&!s},o.isEnabled=()=>i;var f=n.createInstance({driver:n.INDEXEDDB,name:"cp_cache"});o.getBlobCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&o.c?(t(null,o.c),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))},o.setBlobCache=function(n,t,r){r=e.once(e.mkAsync(r||function(){})),a.reg((function(){i?t?f.setItem(n,{c:t,t:+new Date},(function(n){r(e.serializeError(n))})):r("EINVAL"):r("NOCACHE")}))},o.getChannelCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&Array.isArray(o.c)?(t(null,o),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))};var l={};return o.storeCache=function(n,t,r,o){o=e.once(e.mkAsync(o||function(){})),a.reg((function(){l[n]=l[n]||e.throttle((function(t,r,o){var a,s;i?Array.isArray(r)&&t?(a=r,Array.isArray(a)&&(a.length>100&&a.splice(0,a.length-100),a.some((function(e,n){if(e.isCheckpoint)return s=n,!0})),a.splice(0,s)),f.setItem(n,{k:t,c:r,t:+new Date},(function(n){n&&o(e.serializeError(n))}))):o("EINVAL"):o("NOCACHE")}),50),l[n](t,r,o)}))},o.leaveChannel=function(e){delete l[e]},o.clearChannel=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.removeItem(n,(function(){t()})):t("NOCACHE")}))},o.clear=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.clear(n):n("NOCACHE")}))},o.getKeys=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.keys().then((function(e){n(null,e)})).catch((function(e){n(e)})):n("NOCACHE")}))},o.getTime=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(n,r){!n&&r&&r.c?t(null,r.t):t(e.serializeError(n||"EINVAL"))})):t("NOCACHE")}))},r.CryptPad_clearIndexedDB=o.clear,o};e.exports&&(e.exports=n(Z(),ue()))})()}(se)),se.exports}var le=fe(),de=n({__proto__:null,default:r(le)},[le]);const he=ie.mkEvent(!0),pe=ie.mkEvent(!0),ve=ie.mkEvent(),ye=ie.mkEvent();let me={};const ge={setCustomize:e=>{me=e.ApiConfig},init:e=>{var n,t;const{broadcast:r,userHash:o,anonHash:a}=e,i=o||a||ae.createRandomHash("drive"),s=e.store,c=ae.getSecrets("drive",i),u={data:{},websocketURL:U.getWebsocketURL(),network:null===(n=e.store)||void 0===n?void 0:n.network,channel:c.channel,readOnly:!1,validateKey:(null===(t=c.keys)||void 0===t?void 0:t.validateKey)||void 0,crypto:L.createEncryptor(c.keys),Cache:de,userName:"fs",logLevel:1,ChainPad:T,updateProgress:function(e){e.type="drive",r([],"LOADING_DRIVE",e)},classic:!0},f=globalThis.CP_account_rt=E.create(u);s.driveSecret=c,s.proxy=f.proxy,s.onRpcReadyEvt=ie.mkEvent(!0),s.loggedIn=void 0!==e.userHash;const l={loggedIn:s.loggedIn};return f.proxy.on("create",(function(e){s.realtime=e.realtime,s.network=e.network,s.loggedIn||(l.anonHash=ae.getEditHashFromKeys(c))})).on("cacheready",(function(n){if(s.realtime=n.realtime,s.offline=!0,s.networkPromise=n.networkPromise,s.cacheReturned=l,s.networkPromise&&s.networkPromise.then){const e=setTimeout((function(){s.networkTimeout=!0,r([],"LOADING_DRIVE",{type:"offline"})}),5e3);s.networkPromise.then((function(n){s.network||(s.network=n),clearTimeout(e)}),(function(n){console.error(n),clearTimeout(e)}))}e.cache&&(l.edPublic=f.proxy.edPublic,he.fire(l))})).on("ready",(function(n){delete s.networkTimeout,s.ready||(s.driveMetadata=n.metadata,f.proxy.drive||(f.proxy.drive={}),!f.proxy[J.displayNameKey]&&s.noDriveName&&(f.proxy[J.displayNameKey]=s.noDriveName),!f.proxy.uid&&s.noDriveUid&&(f.proxy.uid=s.noDriveUid),!f.proxy.form_seed&&e.form_seed&&(f.proxy.form_seed=e.form_seed),f.proxy.edPublic&&Array.isArray(me.adminKeys)&&-1!==me.adminKeys.indexOf(f.proxy.edPublic)&&(s.isAdmin=!0),l.edPublic=f.proxy.edPublic,pe.fire(l))})).on("error",(function(e){"EDELETED"===e.error&&(s.ownDeletion||(s.isDeleted=!0,r([],"DRIVE_DELETED",e.message)))})).on("disconnect",(function(){s.offline=!0,ve.fire(),r([],"UPDATE_METADATA")})).on("reconnect",(function(){s.offline=!1,ye.fire(),r([],"UPDATE_METADATA")})),{channel:c.channel,onAccountCacheReady:he.reg,onAccountReady:pe.reg,onDisconnect:ve.reg,onReconnect:ye.reg}}};var Ee,be=Object.freeze({__proto__:null,Account:ge}),Oe={exports:{}};function Ae(){return Ee||(Ee=1,function(e){(()=>{const n=(e={},n={})=>{var t={setCustomize:t=>{n=t.Messages,e=t.AppConfig},init:function(e){t.state=e}};return t.send=function(n,r,o){("function"!=typeof o&&(o=function(){}),e.disableFeedback)?o():n&&(!0===r||t.state)?function(e,n){var t=new XMLHttpRequest;t.open("HEAD",e),t.onreadystatechange=function(){this.readyState===this.DONE&&n&&n()},t.send()}("/common/feedback.html?"+n+"="+Math.random().toString(16).replace(/0./,""),o):o()},t.reportAppUsage=function(){var e=window.location.pathname.split("/").filter((function(e){return e})).join(".");/^#\/1\/view\//.test(window.location.hash)?t.send(e+"_VIEW"):t.send(e)},t.reportScreenDimensions=function(){var e=window.innerHeight,n=window.innerWidth;t.send("DIMENSIONS:"+e+"x"+n)},t.reportLanguage=function(){n&&t.send("LANG_"+n._languageUsed)},t};e.exports&&(e.exports=n(void 0,void 0))})()}(Oe)),Oe.exports}var we,De,_e=Ae(),Te=n({__proto__:null,default:r(_e)},[_e]),Se={exports:{}},xe={exports:{}};function Ne(){return De||(De=1,function(e){e.exports&&(e.exports=function(e={},n){var t={setCustomize:n=>{e=n.AppConfig}};t.MINIMUM_PASSWORD_LENGTH="number"==typeof e.minimumPasswordLength?e.minimumPasswordLength:8,t.MINIMUM_NAME_LENGTH=1,t.MAXIMUM_NAME_LENGTH=64,t.isEmail=function(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())},t.isLongEnoughPassword=function(e){return e.length>=t.MINIMUM_PASSWORD_LENGTH};var r=t.isString=function(e){return"string"==typeof e};return t.isValidUsername=function(e){return!!(r(e)&&e.length>=t.MINIMUM_NAME_LENGTH)},t.isValidPassword=function(e){return!(!e||!r(e))},t.passwordsMatch=function(e,n){return r(e)&&r(n)&&e===n},t.customSalt=function(){return"string"==typeof e.loginSalt?e.loginSalt:""},t.deriveFromPassphrase=function(e,r,o,a){n(r,e+t.customSalt(),8,1024,o||128,200,a,void 0)},t.dispenser=function(e){var n={used:0};return function(t){if(n.used+t>e.length)throw new Error("exceeded available entropy");if("number"!=typeof t)throw new Error("expected a number");if(t<=0)throw new Error("expected to consume a positive number of bytes");var r;return r=e.slice?e.slice(n.used,n.used+t):e.subarray(n.used,n.used+t),n.used+=t,r}},t}(void 0,(we||(we=1,function(e){e.exports=function(e,n,t,r,o,a,i,s){function c(e){var n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],t=1779033703,r=3144134277,o=1013904242,a=2773480762,i=1359893119,s=2600822924,c=528734635,u=1541459225,f=new Array(64);function l(e){for(var l=0,d=e.length;d>=64;){var h,p,v,y,m,g=t,E=r,b=o,O=a,A=i,w=s,D=c,_=u;for(p=0;p<16;p++)v=l+4*p,f[p]=(255&e[v])<<24|(255&e[v+1])<<16|(255&e[v+2])<<8|255&e[v+3];for(p=16;p<64;p++)y=((h=f[p-2])>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,m=((h=f[p-15])>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,f[p]=(y+f[p-7]|0)+(m+f[p-16]|0)|0;for(p=0;p<64;p++)y=(((A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))+(A&w^~A&D)|0)+(_+(n[p]+f[p]|0)|0)|0,m=((g>>>2|g<<30)^(g>>>13|g<<19)^(g>>>22|g<<10))+(g&E^g&b^E&b)|0,_=D,D=w,w=A,A=O+y|0,O=b,b=E,E=g,g=y+m|0;t=t+g|0,r=r+E|0,o=o+b|0,a=a+O|0,i=i+A|0,s=s+w|0,c=c+D|0,u=u+_|0,l+=64,d-=64}}l(e);var d,h=e.length%64,p=e.length/536870912|0,v=e.length<<3,y=h<56?56:120,m=e.slice(e.length-h,e.length);for(m.push(128),d=h+1;d>>24&255),m.push(p>>>16&255),m.push(p>>>8&255),m.push(p>>>0&255),m.push(v>>>24&255),m.push(v>>>16&255),m.push(v>>>8&255),m.push(v>>>0&255),l(m),[t>>>24&255,t>>>16&255,t>>>8&255,t>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255]}function u(e,n,t){e=e.length<=64?e:c(e);var r,o=64+n.length+4,a=new Array(o),i=new Array(64),s=[];for(r=0;r<64;r++)a[r]=54;for(r=0;r=o-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;t>=32;)u(),s=s.concat(c(i.concat(c(a)))),t-=32;return t>0&&(u(),s=s.concat(c(i.concat(c(a))).slice(0,t))),s}function f(e,n,t,r){var o,a,i=e[0]^n[t++],s=e[1]^n[t++],c=e[2]^n[t++],u=e[3]^n[t++],f=e[4]^n[t++],l=e[5]^n[t++],d=e[6]^n[t++],h=e[7]^n[t++],p=e[8]^n[t++],v=e[9]^n[t++],y=e[10]^n[t++],m=e[11]^n[t++],g=e[12]^n[t++],E=e[13]^n[t++],b=e[14]^n[t++],O=e[15]^n[t++],A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=O;for(a=0;a<8;a+=2)A^=(o=(k^=(o=(I^=(o=(T^=(o=A+k)<<7|o>>>25)+A)<<9|o>>>23)+T)<<13|o>>>19)+I)<<18|o>>>14,S^=(o=(w^=(o=(M^=(o=(C^=(o=S+w)<<7|o>>>25)+S)<<9|o>>>23)+C)<<13|o>>>19)+M)<<18|o>>>14,R^=(o=(x^=(o=(D^=(o=(F^=(o=R+x)<<7|o>>>25)+R)<<9|o>>>23)+F)<<13|o>>>19)+D)<<18|o>>>14,L^=(o=(P^=(o=(N^=(o=(_^=(o=L+P)<<7|o>>>25)+L)<<9|o>>>23)+_)<<13|o>>>19)+N)<<18|o>>>14,A^=(o=(_^=(o=(D^=(o=(w^=(o=A+_)<<7|o>>>25)+A)<<9|o>>>23)+w)<<13|o>>>19)+D)<<18|o>>>14,S^=(o=(T^=(o=(N^=(o=(x^=(o=S+T)<<7|o>>>25)+S)<<9|o>>>23)+x)<<13|o>>>19)+N)<<18|o>>>14,R^=(o=(C^=(o=(I^=(o=(P^=(o=R+C)<<7|o>>>25)+R)<<9|o>>>23)+P)<<13|o>>>19)+I)<<18|o>>>14,L^=(o=(F^=(o=(M^=(o=(k^=(o=L+F)<<7|o>>>25)+L)<<9|o>>>23)+k)<<13|o>>>19)+M)<<18|o>>>14;n[r++]=e[0]=A+i|0,n[r++]=e[1]=w+s|0,n[r++]=e[2]=D+c|0,n[r++]=e[3]=_+u|0,n[r++]=e[4]=T+f|0,n[r++]=e[5]=S+l|0,n[r++]=e[6]=x+d|0,n[r++]=e[7]=N+h|0,n[r++]=e[8]=I+p|0,n[r++]=e[9]=C+v|0,n[r++]=e[10]=R+y|0,n[r++]=e[11]=P+m|0,n[r++]=e[12]=k+g|0,n[r++]=e[13]=M+E|0,n[r++]=e[14]=F+b|0,n[r++]=e[15]=L+O|0}function l(e,n,t,r,o){for(;o--;)e[n++]=t[r++]}function d(e,n,t,r,o){for(;o--;)e[n++]^=t[r++]}function h(e,n,t,r,o){l(e,0,n,t+16*(2*o-1),16);for(var a=0;a<2*o;a+=2)f(e,n,t+16*a,r+8*a),f(e,n,t+16*a+16,r+8*a+16*o)}function p(e,n,t){return e[n+16*(2*t-1)]}function v(e){for(var n=[],t=0;t127&&r<2048?(n.push(r>>6|192),n.push(63&r|128)):(n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128))}return n}if(t<1||t>31)throw new Error("scrypt: logN not be between 1 and 31");var y,m,g,E,b=1<>>0;if(1*r>=1<<30||r>16777216||r>8388608||b>16777216/r)throw new Error("scrypt: parameters are too large");"string"==typeof e&&(e=v(e)),"string"==typeof n&&(n=v(n)),"undefined"!=typeof Int32Array?(y=new Int32Array(64*r),m=new Int32Array(32*b*r),E=new Int32Array(16)):(y=[],m=[],E=new Array(16)),g=u(e,n,128*r);var O=32*r;function A(){for(var e=0;e<32*r;e++){var n=4*e;y[0+e]=(255&g[n+3])<<24|(255&g[n+2])<<16|(255&g[n+1])<<8|255&g[n+0]}}function w(e,n){for(var t=e;t>>0&255,g[4*e+1]=n>>>8&255,g[4*e+2]=n>>>16&255,g[4*e+3]=n>>>24&255}}var T="undefined"!=typeof setImmediate?setImmediate:setTimeout;function S(e,n,t,r,o){!function a(){T((function(){r(e,e+t>>18&63]),o.push(t[n>>>12&63]),o.push(t[n>>>6&63]),o.push(t[n>>>0&63]);return r%3>0&&(o[o.length-1]="=",r%3==1&&(o[o.length-2]="=")),o.join("")}(t):"hex"===n?function(e){for(var n="0123456789abcdef".split(""),t=e.length,r=[],o=0;o>>4&15]),r.push(n[e[o]>>>0&15]);return r.join("")}(t):t}"function"==typeof a&&(s=i,i=a,a=1e3),a<=0?(A(),w(0,b),D(0,b),_(),i(x(s))):(A(),S(0,b,2*a,w,(function(){S(0,b,2*a,D,(function(){_(),i(x(s))}))})))}}(xe)),xe.exports)))}(Se)),Se.exports}var Ie,Ce,Re,Pe=Ne(),ke=n({__proto__:null,default:r(Pe)},[Pe]),Me={exports:{}},Fe={exports:{}},Le={exports:{}},He={exports:{}};function je(){return Ie||(Ie=1,function(e){e.exports&&(e.exports={whenRealtimeSyncs:function(e,n){"function"==typeof e.getAuthDoc?setTimeout((function(){e.getAuthDoc()!==e.getUserDoc()?e.onSettle(n):n()}),0):console.error("improper use of this function")}})}(He)),He.exports}function Ke(){return Ce||(Ce=1,function(e){(()=>{const n=(e,n,t)=>{let r=globalThis;var o={setCustomize:()=>{}},a=function(e){try{return JSON.parse(JSON.stringify(e))}catch(e){return}};return o.init=function(o,i,s){var c=o.loggedIn,u=o.sharedFolder,f=o.readOnly,l=o.Messages||{},d=i.ROOT,h=i.FILES_DATA,p=i.STATIC_DATA,v=i.OLD_FILES_DATA,y=i.UNSORTED,m=i.TRASH,g=i.TEMPLATE,E=i.SHARED_FOLDERS,b=i.SHARED_FOLDERS_TEMP,O=i.debug;i._setReadOnly=function(e){(f=e)||i.fixFiles()},i.setHref=function(e,n,t){(n||e)&&(f||(n?[n]:i.findChannels([e])).forEach((function(e){var n=i.getFileData(e,!0);i.getHref(n)!==t&&(n.href=i.cryptor.encrypt(t))})))},i.setPadAttribute=function(e,n,t,r){if(r=r||function(){},f)r("EFORBIDDEN");else{var o=i.getIdFromHref(e);if(o)if(n&&n.trim()){var s=i.getFileData(o,!0);"href"===n?i.setHref(null,o,t):s[n]=a(t),r(null)}else r("E_INVAL_ATTR");else r("E_INVAL_HREF")}},i.getPadAttribute=function(e,n,t){t=t||function(){};var r=i.getIdFromHref(e);if(r){var o=i.getFileData(r);t(null,a(o[n]))}else t(null,void 0)},i.pushData=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);o.href&&-1!==o.href.indexOf("#")&&(o.href=i.cryptor.encrypt(o.href)),s[h][r]=o,t(null,r)}},i.pushLink=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);s[p][r]=o,t(null,r)}},i.pushSharedFolder=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r,u=a(n);if(Object.keys(s[E]).some((function(e){if(s[E][e].channel===u.channel)return u.href&&!s[E][e].href&&(s[E][e].href=u.href),r=e,!0})))t("EEXISTS",r);else if(c&&!o.testMode){var l=e.createRandomInteger();u.href&&-1!==u.href.indexOf("#")&&(u.href=i.cryptor.encrypt(u.href)),s[E][l]=u,t(null,l)}else t("EAUTH")}},i.deprecateSharedFolder=function(e,n){if(!f){var t=s[E][e];if(t){if(!(!t.href||-1===i.cryptor.decrypt(t.href).indexOf("#")))(s[b][e]=JSON.parse(JSON.stringify(t))).legacy="PASSWORD_CHANGE"!==n;var r=i.findFile(Number(e));i.delete(r,null,!0),delete s[E][e]}}};var A=function(e){f||delete s[h][e]};i.checkDeletedFiles=function(e){if(c||o.testMode)if(f)e("EFORBIDDEN");else{var t=i.getFiles([d,"hrefArray",m]),r=[];i.getFiles([h,E,p]).forEach((function(e){if(-1===t.indexOf(e)){var a=i.isSharedFolder(e)?s[E][e]:i.getFileData(e),c=a.channel;a.lastVersion&&r.push(n.hrefToHexChannelId(a.lastVersion)),a.rtChannel&&r.push(a.rtChannel),c&&r.push(c),i.isSharedFolder(e)?(delete s[E][e],o.removeProxy&&o.removeProxy(e)):s[p][e]?delete s[p][e]:A(e)}})),r.length?e(null,r):e()}else e()};i.deleteMultiplePermanently=function(e,n,t){if(f)t("EFORBIDDEN");else{var r=e.filter((function(e){return i.isPathIn(e,[h])}));if(!c&&!o.testMode)return r.forEach((function(e){var n=e[1];n&&A(n)})),void t();var a=e.filter((function(e){return i.isPathIn(e,["hrefArray"])})),u=e.filter((function(e){return i.isPathIn(e,[d])})),l=e.filter((function(e){return i.isPathIn(e,[m])})),p=[];a.forEach((function(e){var n=i.find(e);p.push({root:e[0],id:n})})),function(e){f||e.forEach((function(e){var n=s[e.root].indexOf(e.id);s[e.root].splice(n,1)}))}(p),u.forEach((function(e){var n=e.slice(),t=n.pop();delete i.find(n)[t]}));var v,y=[];l.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);4!==e.length?delete r[t]:y.push({name:e[1],el:r})})),v=y,f||v.forEach((function(e){var n=s[m][e.name].indexOf(e.el);s[m][e.name].splice(n,1)})),n?t():i.checkDeletedFiles(t)}},i.copyFromOtherDrive=function(e,t,r,o){if(!f){var a=[];if(Object.keys(r).forEach((function(e){e=Number(e);var n=r[e];if(n.static)return delete n.static,void(s[p][e]=n);n.href&&(n.href=i.cryptor.encrypt(n.href));var t=!1;for(var o in s[h])if(s[h][o].channel===n.channel){s[h][o].href||(s[h][o].href=n.href),t=!0;break}t?a.push(e):s[h][e]=n})),i.isFile(t)&&-1!==a.indexOf(t))i.log(l.sharedFolders_duplicate);else{if(i.isFolder(t)){var c=function(e){for(var n in e)i.isFile(e[n])?-1!==a.indexOf(e[n])&&(i.log(l.sharedFolders_duplicate),delete e[n]):i.isFolder(e[n])&&c(e[n])};c(t)}var u=i.find(e),d=i.isFile(t)?n.createChannelId():o,v=i.getAvailableName(u,d);Array.isArray(u)?u.push(t):u[v]=t}}};i.copyElement=function(e,t){if(!f&&!i.comparePath(e,t)){var r=i.find(e),o=i.find(t);if(i.isPathIn(t,[m])){if(!e||e.length<2||e[0]===m)return void O("Can't move an element from the trash to the trash: ",e);var a=e[e.length-1],c=i.isPathIn(e,["hrefArray"])?i.getTitle(r):a,u=e.slice();return u.pop(),function(e,n,t){if(!f){var r=s[m];void 0===r[e]&&(r[e]=[]);var o={element:n,path:t};r[e].push(o)}}(c,r,u),!0}if(i.isPathIn(t,["hrefArray"])){if(i.isFolder(r))return void i.log(l.fo_moveUnsortedError);if(e[0]===t[0])return;var d=t[0];return-1===s[d].indexOf(r)&&s[d].push(r),!0}var h=i.isFile(r)?i.getAvailableName(o,n.createChannelId()):i.isInTrashRoot(e)?e[1]:e.pop();if(void 0===o[h])return o[h]=r,!0;i.log(l.fo_unavailableName)}},i.forget=function(e){if(!f){var n=i.getIdFromHref(e);if(n){if(!c&&!o.testMode)return A(n),!0;var t=i.findFile(n);return i.move(t,[m]),!0}}},i.restoreHref=function(e){if(!f){var n=i.getIdFromHref(e);if(n&&i.isFile(n)){var t=i.findFile(n),r=!0;t.forEach((function(e){e[0]!==m?r=!1:i.delete(e,null,!0)})),r&&i.add(n)}}},i.add=function(e,t){if(!f&&(c||o.testMode)){e=Number(e);var r=s[h][e]||s[p][e]||s[E][e];if(r&&"object"==typeof r){var a,u=t;if(t&&!Array.isArray(t)&&(u=decodeURIComponent(t).split(",")),t&&i.isPathIn(u,["hrefArray"]))(a=i.find(u)).push(e);else if(-1!==i.getFiles([d,m,"hrefArray"]).indexOf(e)||u||(u=[d]),t&&i.isPathIn(u,[d])){if(a=i.find(u)){var l=i.getAvailableName(a,n.createChannelId());return void(a[l]=e)}a=i.find([d]),u.slice(1).forEach((function(e){a=a[e]=a[e]||{}})),a[n.createChannelId()]=e}}}},i.setFolderData=function(e,t,r,o){if(!f){var a=i.find(e);if(i.isFolder(a)&&!i.isSharedFolder(a)){if(!i.hasFolderData(a))a["000"+n.createChannelId().slice(0,-3)]={metadata:!0};i.getFolderData(a)[t]=r,o()}}};var w=function(e){i.rt?(i.rt.sync(),t.whenRealtimeSyncs(i.rt,e)):r.setTimeout(e,1e3)};return i.migrateReadOnly=function(e){if(!f&&o.editKey)if(s.version>=2)e();else{s.migrateRo=1;w((function(){var n=JSON.parse(JSON.stringify(s));i.reencrypt(o.editKey,o.editKey,n),setTimeout((function(){s.version>=2?e():(Object.keys(n).forEach((function(e){s[e]=n[e]})),s.version=2,delete s.migrateRo,w(e))}),1e3)}))}else e({error:"EFORBIDDEN"})},i.migrate=function(t){if(f)t();else{!function(){if(s[y]&&s[v]){O("UNSORTED still exists in the object, removing it...");var e=s[y];0!==e.length?(e.forEach((function(e){"string"==typeof e&&(0===s[v].filter((function(n){return n.href===e})).length&&s[v].push({href:e}))})),delete s[y]):delete s[y]}}(),function(t){if(s[v])try{O("Migrating file system..."),s.migrate=1;w((function(){var r=s[v].slice();s[h]||(s[h]={});var o=s[h];r.forEach((function(t){if(t&&t.href){var r=t.href,a=e.createRandomInteger(),s=i.findFile(r),c=t,u=n.createChannelId();o[a]=c||{href:r},s.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);if(i.isInTrashRoot(e))return r.element=a,void(o[a].filename=e[1]);i.isPathIn(e,["hrefArray"])?r[t]=a:(r[u]=a,o[a].filename=t,delete r[t])}))}})),delete s[v],delete s.migrate,t()}))}catch(e){console.error(e),t()}else t()}(t)}},i.fixFiles=function(t){if(!f){t&&(O=function(){});var r=+new Date;O("Cleaning file system...");var a=JSON.stringify(s),l=function(t){"object"!=typeof s[d]&&(O("ROOT was not an object"),s[d]={});var r=t||s[d];if(!r)return console.error("Invalid element in root");var o,a=0,c=s[p],u=s[h];for(var f in r)if(null!==(o=r[f]))if(i.isFolderData(o))0!==a&&(O("Multiple metadata files in folder"),delete r[f]),a++;else if(i.isFile(o,!0)||i.isFolder(o))if(i.isFolder(o))l(o);else{if("string"==typeof o){var v=e.createRandomInteger(),y=n.createChannelId();u[v]={href:i.cryptor.encrypt(o),filename:f},r[y]=v,delete r[f]}if("number"==typeof o)u[o]||c[o]||(O("An element in ROOT doesn't have associated data",o,f),delete r[f])}else O("An element in ROOT was not a folder nor a file. ",o),delete r[f];else console.error("element[%s] is null",f),delete r[f]};e.isObject(s[p])||(O("STATIC_DATA was not an object"),s[p]={}),l(),function(){if(!u){"object"!=typeof s[m]&&(O("TRASH was not an object"),s[m]={});var n,t=s[m],r=function(t,r,o){if("object"==typeof t){if(!i.isSharedFolder(t.element))if(i.isFile(t.element,!0)||i.isFolder(t.element))if(Array.isArray(t.path)){if("string"==typeof t.element){var a=e.createRandomInteger();s[h][a]={href:i.cryptor.encrypt(t.element),filename:o},t.element=a}if(i.isFolder(t.element)&&l(t.element),"number"==typeof t.element)s[h][t.element]||s[p][t.element]||(O("An element in TRASH doesn't have associated data",t.element,o),n.push(r))}else n.push(r);else n.push(r)}else n.push(r)};for(var o in t)if(Array.isArray(t[o]))if(0===t[o].length)O("Empty array in TRASH root. ",t[o]),delete t[o];else{n=[];for(var a=0;a=0;c--)t[o].splice(n[c],1)}else O("An element in TRASH root is not an array. ",t[o]),delete t[o]}}(),function(){if(!u){Array.isArray(s[g])||(O("TEMPLATE was not an array"),s[g]=[]);var n=e.deduplicateString(s[g]);n.length!==s[g].length&&(s[g]=n);var t=s[g],r=i.getFiles([d]),o=[];t.forEach((function(n,a){if(i.isFile(n,!0)&&-1===r.indexOf(n)){if("string"==typeof n){var c=e.createRandomInteger();return s[h][c]={href:i.cryptor.encrypt(n)},void(t[a]=c)}if("number"==typeof n)s[h][n]||(O("An element in TEMPLATE doesn't have associated data",n),o.push(n))}else o.push(n)})),o.forEach((function(e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}))}}(),function(){"object"!=typeof s[h]&&(O("FILES_DATA was not an object"),s[h]={});var e=s[h],t=i.getFiles([d,m,"hrefArray"]),r=i.find([d]),a=[];for(var u in e)if(String(u)===String(Number(u))){var l=e[u=Number(u)];if(l&&"object"==typeof l)if(l.href||l.roHref){var v;try{v=l.href&&(-1!==l.href.indexOf("#")?l.href:i.cryptor.decrypt(l.href))}catch(e){}if(!v||-1!==v.indexOf("#")){var y,g=n.parsePadUrl(v||l.roHref);if(g.hash)if(g.type){if(v&&"pad"===g.hashData.type&&g.hashData.version)if("view"===g.hashData.mode)l.roHref=v,delete l.href;else if(l.roHref){var E=n.parsePadUrl(l.roHref);E.hash&&E.type||(y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y))}else y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y);if(0===g.hashData.version&&delete l.roHref,v&&"/"!==v.slice(0,1)&&(l.href=i.cryptor.encrypt(n.getRelativeHref(v))),l.ctime||(l.ctime=l.atime),l.title||(l.title=i.getDefaultName(g)),!l.channel)try{y||(y=n.getSecrets(g.type,g.hash,l.password)),l.channel=y.channel,console.log(l),O("Adding missing channel in filesData ",l.channel)}catch(e){console.error(e)}if(n.isValidChannel(l.channel)||console.error("Remove invalid channel",l.channel,l),!c&&!o.testMode||-1!==t.indexOf(u));else O("An element in filesData was not in ROOT, TEMPLATE or TRASH.",u,l),r[n.createChannelId()]=u}else O("Removing an element in filesData with a invalid type.",l),a.push(u);else O("Removing an element in filesData with a invalid href.",l),a.push(u)}}else O("Removing an element in filesData with a missing href.",l),a.push(u);else O("An element in filesData was not an object.",l),a.push(u)}else O("Invalid file ID in filesData.",u),a.push(u);a.forEach((function(e){A(e)}));var b=s[p],w=[];for(var D in b){var _=b[D=Number(D)];_&&"object"==typeof _&&_.href?!c&&!o.testMode||-1!==t.indexOf(D)||w.push(D):w.push(D)}w.forEach((function(e){f||delete s[p][e]}))}(),Object.keys(s).forEach((function(e){"/"===e.slice(0,1)&&delete s[e]})),function(){if(!u){"object"!=typeof s[E]&&(O("SHARED_FOLDER was not an object"),s[E]={});var e,t,r=s[E],o=i.getFiles([d,m]),a=i.find([d]);for(var c in r){var f;t=r[c],c=Number(c);try{f=t.href&&(-1!==t.href.indexOf("#")?t.href:i.cryptor.decrypt(t.href))}catch(e){}if((e=n.parsePadUrl(f||t.roHref))&&e.hash&&"undefined"!==e.hash){if(-1===o.indexOf(c))console.log("missing"+c),a[n.createChannelId()]=c}else delete r[c]}}}(),function(){if(!u){"object"!=typeof s[b]&&(O("SHARED_FOLDER_TEMP was not an object"),s[b]={});var e=s[b],n=s[E];for(var t in e)n[t]&&delete e[t]}}();var v=+new Date-r+"ms";JSON.stringify(s)===a?O("File system was clean.",v):O("Your file system was corrupted. It has been cleaned so that the pads you visit can be stored safely.",v)}},i},o};e.exports&&(e.exports=n(Z(),te(),je()))})()}(Le)),Le.exports}function Ue(){return Re||(Re=1,function(e){(()=>{const n=(e,n,t,r,o,a={})=>{let i=globalThis;var s={setCustomize:e=>{a=e.Messages,r.setCustomize(e)}},c=s.ROOT="root",u=s.UNSORTED="unsorted",f=s.TRASH="trash",l=s.TEMPLATE="template",d=s.SHARED_FOLDERS="sharedFolders",h=s.SHARED_FOLDERS_TEMP="sharedFoldersTemp",p=s.FILES_DATA=t.storageKey,v=s.OLD_FILES_DATA=t.oldStorageKey,y=s.STATIC_DATA="static";s.getDefaultName=function(e){var n=e.type;return a.type[n]+" - "+function(){if(i.Intl&&i.Intl.DateTimeFormat)return new i.Intl.DateTimeFormat(void 0,{weekday:"short",year:"numeric",month:"long",day:"numeric"}).format(new Date);return(new Date).toString().split(" ").slice(0,4).join(" ")}()};var m=s.createCryptor=function(e){var n={};if(!e)return n.encrypt=function(e){return e},n.decrypt=function(e){return e},n;try{var t=o.createEncryptor(e);n.encrypt=function(e){try{return"/file/#"===e.slice(0,7)?e:t.encrypt(e)}catch(e){return}},n.decrypt=function(e){try{return t.decrypt(e)}catch(e){return}}}catch(e){console.error(e)}return n};return s.getHref=function(e,n){if(e.href&&-1!==e.href.indexOf("#"))return e.href;if(e.href&&n){var t=n.decrypt(e.href);if(t&&-1!==t.indexOf("#"))return t}return e.roHref},s.reencrypt=function(e,n,t){if(t){var r=m(e),o=m(n);Object.keys(t[p]).forEach((function(e){var n=t[p][e]||{};if(n.href&&n.roHref&&!n.fileType){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[d]||{}).forEach((function(e){var n=t[d][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[h]||{}).forEach((function(e){var n=t[h][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}}))}else console.error("Nothing to reencrypt")},s.init=function(t,o){var i={};i.cryptor=m(o.editKey),i.setReadOnly=function(e,n){o.editKey=n,i.cryptor=m(n),i.cryptor.k=Math.random(),i.readOnly=e,i._setReadOnly&&i._setReadOnly(e)},i.readOnly=o.readOnly,i.reencrypt=s.reencrypt,i.getDefaultName=s.getDefaultName;var g=o.sframeChan,E=a.fm_newFolder||"New folder",b=a.fm_newFile||"New file";i.ROOT=c,i.STATIC_DATA=y,i.UNSORTED=u,i.TRASH=f,i.TEMPLATE=l,i.SHARED_FOLDERS=d,i.SHARED_FOLDERS_TEMP=h,i.FILES_DATA=p,i.OLD_FILES_DATA=v;var O=i.sharedFolder=o.sharedFolder;i.id=o.id;var A=function(){console.debug.apply(console,arguments)},w=i.log=o.log||A,D=o.logError||A,_=i.debug=o.debug||A;i.fixFiles=function(){};var T=i.error=function(){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"fixFiles",data:{}},(function(){})):("function"==typeof i.fixFiles&&i.fixFiles(),console.error.apply(console,arguments),i.fixFiles())};o.outer&&r.init(o,i,t),i.getStructure=function(){var e={};return e[c]={},e[f]={},e[p]={},e[l]=[],e[d]={},e};var S=i.getHref=function(e){return s.getHref(e,i.cryptor)},x=function(e){return null===e?"null":Array.isArray(e)?"array":typeof e};i.isValidDrive=function(e){var n=i.getStructure();return"object"==typeof e&&Object.keys(n).every((function(t){return e[t]&&x(n[t])===x(e[t])}))};var N=function(){return[l]},I=function(e,n){return e===n},C=i.isSharedFolder=function(e){return!O&&Boolean(t[d]&&t[d][e])},R=i.isFile=function(e,n){return!C(e)&&("number"==typeof e||(void 0!==t[v]||n)&&"string"==typeof e)},P=i.isFolderData=function(e){return"object"==typeof e&&!0===e.metadata};i.isReadOnlyFile=function(e){if(!R(e))return!1;var n=i.getFileData(e);return n.roHref?Boolean(n.roHref&&!n.href):void 0},i.isStaticFile=function(e){return Boolean(t[y]&&t[y][e])};var k=i.isFolder=function(e){return!P(e)&&("object"==typeof e&&!e.channel||C(e))};i.isFolderEmpty=function(e){return!!k(e)&&(0===Object.keys(e).length||!(1!==Object.keys(e).length||!P(e[Object.keys(e)[0]])))},i.hasSubfolder=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=k(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=k(e[o])?1:0;return t},i.hasFile=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=R(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=R(e[o])?1:0;return t},i.hasFolderData=function(e){for(var n in e)if(P(e[n]))return!0};var M=i.hasSubSharedFolder=function(e){for(var n in e){if(C(e[n]))return!0;if(k(e[n])&&M(e[n]))return!0}return!1},F=i.getFileData=function(n,r){if(n){var a,s;try{a=(t[y]||{})[n]}catch(e){console.error(e)}if(a){var c=r?a:e.clone(a);return r||(c.static=!0),c}try{s=t[p][n]||{}}catch(e){console.error(e),s={}}if(!r&&(s=JSON.parse(JSON.stringify(s))).href&&-1===s.href.indexOf("#"))if(o.editKey)try{s.href=i.cryptor.decrypt(s.href)}catch(e){delete s.href}else delete s.href;return s}};i.getFolderData=function(e){for(var n in e)if(P(e[n]))return e[n];return{}};var L=i.getTitle=function(e,n){if(C(e))return"??";var t=F(e);if(t){if(t.static)return t.name;if(e&&(t.href||t.roHref))return"title"===n?t.title:"name"===n?t.filename:t.filename||t.title||b;T("getTitle called with a non-existing file id: ",e,t)}else T("unable to retrieve data about the requested file: ",e,t)},H=i.comparePath=function(e,n){if(!(e&&n&&Array.isArray(e)&&Array.isArray(n)))return!1;if(e.length!==n.length)return!1;for(var t=!0,r=e.length-1;t&&r>=0;)t=e[r]===n[r],r--;return t},j=i.isSubpath=function(e,n){var t=n.slice(),r=e.slice(0,t.length);return H(t,r)},K=i.isPathIn=function(e,n){if(n){var t=n.indexOf("hrefArray");return-1!==t&&(n.splice(t,1),n=n.concat(N())),n.some((function(n){return Array.isArray(e)&&e[0]===n}))}},U=i.isInTrashRoot=function(e){return e[0]===f&&4===e.length},B=function(e,n){if(n){if(0===n.length)return e;var t=n.slice(),r=t.shift();if(void 0!==e[r])return B(e[r],t);_("Unable to find the key '"+r+"' in the root object provided:",e)}else T("Invalid path:\n",n,"\nin root\n",e)},V=i.find=function(e){return B(t,e)},Y=i.getFilesRecursively=function(e,n){for(var t in n=n||[],e)R(e[t])||C(e[t])?-1===n.indexOf(e[t])&&n.push(e[t]):P(e[t])||Y(e[t],n);return n},G={array:function(e){return t[e]||(t[e]=[]),t[e].slice()}};N().forEach((function(e){G[e]=function(){return G.array(e)}})),G.hrefArray=function(){var n=[];return O?n:(N().forEach((function(e){n=n.concat(G[e]())})),e.deduplicateString(n))},G[c]=function(){var e=[];return Y(t[c],e),e},G[f]=function(){var e=t[f],n=[],r=function(e){R(e.element)||C(e.element)?-1===n.indexOf(e.element)&&n.push(e.element):Y(e.element,n)};for(var o in e){if(!Array.isArray(e[o]))return void T("Trash contains a non-array element");e[o].forEach(r)}return n},G[v]=function(){var e=[];return t[v]?(t[v].forEach((function(n){n.href&&-1===e.indexOf(n.href)&&e.push(n.href)})),e):e},G[y]=function(){return t[y]?Object.keys(t[y]).map(Number).filter(Boolean):[]},G[p]=function(){return t[p]?Object.keys(t[p]).map(Number).filter(Boolean):[]},G[d]=function(){return t[d]?Object.keys(t[d]).map(Number).filter(Boolean):[]};var J=i.getFiles=function(n){var t=[];return n&&n.length||(n=[c,"hrefArray",f,v,p,d]),n.forEach((function(e){"function"==typeof G[e]&&(t=t.concat(G[e]()))})),e.deduplicateString(t)},q=i.getIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([p]).some((function(e){if(o(S(t[p][e]))===a||o(t[p][e].roHref)===a)return r=e,!0})),r};i.getSFIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([d]).some((function(e){if(o(S(t[d][e]))===a||o(t[d][e].roHref)===a)return r=e,!0})),r};var W=function(e,n){if(!K(e,[c,f]))return[];n=Array.isArray(n)?n:[n];var t={},r=V(e),o=function(e){Object.keys(e).forEach((n=>{t[n]||=[],Array.prototype.push.apply(t[n],e[n])}))};if(R(r)||C(r))return n.some((n=>{I(n,r)&&(t[n]||=[],t[n].push(e))})),t;if(k(r))for(var a in r){let t=e.slice();t.push(a),o(W(t,n))}return t},z=function(e,n){if(O)return{};if(!t[e])return{};var r=t[e].slice(),o={},a=-1;return n.forEach((n=>{for(;-1!==(a=r.indexOf(n,a+1));)o[n]||=[],o[n].push([e,a])})),o},Q=function(e,n){if(O)return[];var t=V(e),r={},o=function(e){Object.keys(e).forEach((n=>{r[n]||=[],Array.prototype.push.apply(r[n],e[n])}))};if(1===e.length&&"object"==typeof t&&Object.keys(t).forEach((function(r){var a=t[r];if(Array.isArray(a)){var i=e.slice();i.push(r),o(Q(i,n))}})),2===e.length){if(!Array.isArray(t))return[];t.forEach((function(t,a){var i=e.slice();i.push(a),i.push("element"),R(t.element)?n.some((e=>{I(e,t.element)&&(r[e]||=[],r[e].push(i))})):o(Q(i,n))}))}return e.length>=4&&o(W(e,n)),r},Z=i.findFiles=function(e){var n=W([c],e),t=z(l,e),r=Q([f],e);let o={};return e.forEach((e=>{o[e]=[]})),[n,t,r].forEach((e=>{Object.keys(e).forEach((n=>{o[n]||=[],Array.prototype.push.apply(o[n],e[n])}))})),o},X=i.findFile=function(e){return Z([e])[e]||[]};i.findChannels=function(e,n){var r=t[p],o=t[d],a=[p];return n&&a.push(d),J(a).filter((function(n){var t=r[n]||o[n]||{};return-1!==e.indexOf(t.channel)}))},i.search=function(r){if("string"!=typeof r)return[];r=r.trim();var o,a=[],s=t[p],u=t[d],f=r.toLowerCase();/^#/.test(f)&&(o=[f.slice(1).trim()]);J([p,d]).forEach((function(e){var n=s[e]||u[e];if(n)if(Array.isArray(n.tags)&&(t=n.tags,o&&t.length&&(t=t.map((function(e){return e.toLowerCase()})),o.some((function(e){return t.some((function(n){return n===e}))})))))a.push(e);else{var t,r=n.title||n.lastTitle;(r&&-1!==r.toLowerCase().indexOf(f)||n.filename&&-1!==n.filename.toLowerCase().indexOf(f))&&a.push(e)}}));var l=n.getRelativeHref(r);if(l){var h=q(l);h&&a.push(h)}a=e.deduplicateString(a);var v=[];a.forEach((function(e){v.push({id:e,paths:X(e),data:i.getFileData(e)})}));var y=[],m=function(e,n){for(var t in e)k(e[t])&&!C(e[t])&&(-1!==t.toLowerCase().indexOf(f)&&y.push({id:null,paths:[n.concat(t)],data:{title:t}}),m(e[t],n.concat(t)))};return m(t[c],[c]),y=y.sort((function(e,n){return e.data.title.toLowerCase()>n.data.title.toLowerCase()})),v=y.concat(v)},i.getRecentPads=function(){var e=t[p];return Object.keys(e).filter((function(n){return e[n]})).sort((function(n,t){return e[t].atime-e[n].atime})).map((function(e){return Number(e)}))},i.getOwnedPads=function(e){var n=t[p];return Object.keys(n).filter((function(t){return n[t].owners&&-1!==n[t].owners.indexOf(e)})).map((function(e){return Number(e)}))};var $=i.getAvailableName=function(e,n){if(void 0===e[n])return n;for(var t=n,r=1;void 0!==e[t];)t=n+"_"+r,r++;return t},ee=i.move=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"move",data:{paths:e,newPath:n}},t);else{var r=[];e.forEach((function(e){var t=e.slice();t.pop(),H(t,n)||(j(n,e)?w(a.fo_moveFolderToChildError):i.copyElement(e.slice(),n)&&r.push(e))})),i.delete(r,t)}};return i.restore=function(e,n){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"restore",data:{path:e}},n);else if(U(e)){var t=e.slice();t.pop();var r=V(t).path;ee([e],r,n)}},i.addFolder=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"addFolder",data:{path:e,name:n}},t);else{var r=V(e),o=$(r,n||E);r[o]={};var a=e.slice();a.push(o),t({newPath:a})}},i.delete=function(e,n,t){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"delete",data:{paths:e,nocheck:t}},n):(n=n||function(){},i.deleteMultiplePermanently(e,t,n))},i.emptyTrash=function(e){e=e||function(){},g?g.query("Q_DRIVE_USEROBJECT",{cmd:"emptyTrash"},e):(t[f]={},i.checkDeletedFiles(e))},i.ownedInTrash=function(e){return J([f]).map((function(n){var r=C(n)?t[d][n]:i.getFileData(n);if(r)return e(r.owners)?r.channel:void 0})).filter(Boolean)},i.rename=function(e,n,r){if(r=r||function(){},g)g.query("Q_DRIVE_USEROBJECT",{cmd:"rename",data:{path:e,newName:n}},r);else if(e.length<=1)D("Renaming `root` is forbidden");else{var o,i=V(e);if(k(i)&&!C(i)){var s=e.slice(),c=s.pop();if(!n||!n.trim()||c===n)return;var u=V(s);return void 0!==u[n]?void w(a.fo_existingNameError):(u[n]=i,delete u[c],void("function"==typeof r&&r()))}if(o=C(i)?t[d][i]:t[p][i]||t[y][i])return t[y][i]?n&&n.trim()?(o.name=n,void r()):void r():n&&""!==n.trim()?void(L(i,"name")!==n&&(o.filename=n,"function"==typeof r&&r())):(delete o.filename,void("function"==typeof r&&r()))}},i.getTagsList=function(){var e,n={},r=function(e){n[e]=n[e]?++n[e]:1};for(var o in t[p])(e=t[p][o]).tags&&Array.isArray(e.tags)&&e.tags.forEach(r);return n},i},s};e.exports&&(e.exports=n(Z(),te(),Y(),Ke(),M(),void 0))})()}(Fe)),Fe.exports}var Be,Ve,Ye,Ge={exports:{}},Je={exports:{}};function qe(){return Be||(Be=1,function(e){e.exports=function(e){var n,t=[],r=[],o=0,a=function(e){return o++,function(){for(e&&e.apply(null,arguments),o=(o||1)-1;!o&&t.length&&!n;)t.shift()(a)}};a.abort=function(){r.forEach(clearTimeout),n=1};var i={nThen:function(e){return n||(o?t.push(e):e(a)),i},orTimeout:function(e,s){if(n)return i;if(!s)throw Error("Must specify milliseconds to orTimeout()");var c,u=setTimeout((function(){for(;t.shift()!==c;);for(e(a),o=(o||1)-1;!o&&t.length;)t.shift()(a)}),s);return t.push(c=function(){var e=r.indexOf(u);if(e>-1)return r.splice(e,1),void clearTimeout(u);throw new Error("timeout not listed in array")}),r.push(u),i}};return i.nThen(e)}}(Je)),Je.exports}function We(){return Ve||(Ve=1,function(e){e.exports&&(e.exports=((e,n,t,r,o,a,i,s)=>{var c={},u={};return c.checkMigration=function(e,t,r,o){var a=n.once(n.mkAsync(o));if(t)if(e)if(t.version>=2)a();else if(t.migrateRo){var i,s=!1,c=setInterval((function(){if(t.version>=2)return s=!0,clearTimeout(i),clearInterval(c),void a()}),100);i=setTimeout((function(){clearInterval(c),r.migrateReadOnly((function(){s=!0,a()}))}),2e4),t.on("change",["version"],(function(){s||t.version>=2&&(s=!0,clearTimeout(i),clearInterval(c),a())}))}else r.migrateReadOnly(a);else a();else a()},c.migrate=function(e){var t=u[e];if(t){var r=t.teams;if(Array.isArray(r)&&r.length){var o=r[0];if(o.secondaryKey){var a=n.find(o,["store","manager","folders",o.id]);a&&a.proxy&&!a.proxy.version&&a.userObject.migrateReadOnly((function(){r.forEach((function(e){n.find(e,["store","manager","folders",e.id,"userObject"]).setReadOnly(!1,e.secondarykey)}))}))}}}},c.load=function(t,f,l,d){var h=n.once(n.mkAsync(d)),p=t.network,v=t.store,y=t.isNew,m=t.isNewChannel,g=v.id,E=v.handleSharedFolder,b=v.manager.user.userObject.getHref(l),O=e.parsePadUrl(b),A=e.getSecrets("drive",O.hash,l.password);if(!A.keys)return v.manager.deprecateProxy(f),void h(null);var w=A.keys.secondaryKey;o((function(e){t.cache&&r.getChannelCache(A.channel,e((function(n){if("EINVAL"===n)return e.abort(),v.manager.restrictedProxy(f,A.channel),void h(null)})))})).nThen((function(e){m(null,{channel:A.channel},e((function(n){if(n.isNew&&!y)return v.manager.deprecateProxy(f,A.channel,n.reason),e.abort(),void h(null)})))})).nThen((function(){var e=u[A.channel];if(e&&e.readOnly&&w&&c.upgrade(A.channel,A),e&&e.ready&&e.rt)return setTimeout((function(){v.manager.addProxy(f,e.rt,(function(){c.leave(A.channel,g)}),w),h(e.rt)})),e.teams.push({cb:h,store:v,id:f}),void(E&&E(f,e.rt));if(e&&!e.ready&&e.rt)return e.teams.push({cb:h,store:v,secondaryKey:w,id:f}),void(E&&E(f,e.rt));e=u[A.channel]={teams:[{cb:h,store:v,secondaryKey:w,id:f}],readOnly:!Boolean(w)};var n=l.owners,o={data:{},channel:A.channel,readOnly:!Boolean(w),crypto:a.createEncryptor(A.keys),userName:"sharedFolder",logLevel:1,ChainPad:s,classic:!0,network:p,Cache:r,metadata:{validateKey:A.keys.validateKey||void 0,owners:n},onRejected:t.Store&&t.Store.onRejected},d=e.rt=i.create(o);d.proxy.on("cacheready",(function(){e.teams&&(e.teams.forEach((function(n){d.cache=!0,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),t.updatePassword=!1,n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("ready",(function(){y&&!Object.keys(d.proxy).length&&(d.proxy.version=2),e.teams&&(e.teams.forEach((function(n){d.cache=!1,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("error",(function(n){if(n&&n.error){if("EDELETED"===n.error){try{e.teams.forEach((function(e){e.store.manager.deprecateProxy(e.id,A.channel,n.message),e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),e.cb()}))}catch(e){}return delete u[A.channel],void h()}if("ERESTRICTED"===n.error)return e.teams.forEach((function(e){e.store.manager.restrictedProxy(e.id,A.channel),e.cb()})),delete u[A.channel],void h()}})),E&&E(f,d)}))},c.upgrade=function(e,n){var t=u[e];if(t&&t.readOnly&&t.rt.setReadOnly&&n.keys&&n.keys.editKeyStr){var r=a.createEncryptor(n.keys);t.readOnly=!1,t.rt.setReadOnly(!1,r)}},c.leave=function(e,n){var t=u[e];if(t){var r,o=t.teams;Array.isArray(o)&&(o.some((function(e,t){if(e.store.id===n)return e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),r=t,!0})),void 0!==r&&(o.splice(r,1),o.length||t.rt&&t.rt.stop&&t.rt.stop()))}},c.updatePassword=function(r,a,i,s){var f=a.oldChannel,l=a.href,d=a.password,h=e.parsePadUrl(l),p=e.getSecrets(h.type,h.hash,d),v=u[f];if(v){if(v.rt&&v.rt.stop)try{v.rt.stop()}catch(e){}var y=o;v.teams.forEach((function(e){y=y((function(o){var a=e.store,s=e.id,u=n.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};if(s&&u[s]){var l=JSON.parse(JSON.stringify(u[s]));l.password=d,c.load({network:i,store:a,updatePassword:!0,Store:r,isNewChannel:r.isNewChannel},s,l,o()),a.rpc&&(a.rpc.unpin([f],o()),a.rpc.pin([p.channel],o()))}})).nThen})),y((function(){s()}))}else s({error:"ENOTFOUND"})},c.loadSharedFolders=function(e,n,r,a,i,s,u,f){var l=a[t.SHARED_FOLDERS]||{},d=Object.keys(l).length,h=1,p=s();u=u||function(){},o((function(t){Object.keys(l).forEach((function(o){var a=l[o];c.load({network:n,store:r,Store:e,cache:f,isNewChannel:e.isNewChannel},o,a,t((function(){u({progress:h,max:d}),h++})))}))})).nThen((function(){setTimeout(p)}))},c.isSharedFolderChannel=function(e){return Object.keys(u).includes(e)},c})(te(),Z(),Ue(),fe(),qe(),M(),g(),w()))}(Ge)),Ge.exports}function ze(){return Ye||(Ye=1,function(e){(()=>{const n=(e,n,t,r,o={},a,i)=>{var s=function(n,t,r,o,a,i){if(!n.folders[t]||i||n.folders[t].restricted){var s=function(e){var n={};for(var t in e.cfg)n[t]=e.cfg[t];return n}(n);s.sharedFolder=!0,s.id=t,s.editKey=a,s.rt=r.realtime,s.readOnly=Boolean(!a);var c=e.init(r.proxy,s);c.fixFiles&&c.fixFiles();var u=r.proxy;if(u.metadata&&u.metadata.title){var f=n.user.proxy[e.SHARED_FOLDERS][t];f&&(f.lastTitle=u.metadata.title)}return n.folders[t]={proxy:r.proxy,userObject:c,leave:o,restricted:u.restricted,offline:Boolean(r.cache)},u.on&&(u.on("disconnect",(function(){n.folders[t].offline=!0})),u.on("reconnect",(function(){n.folders[t].offline=!1}))),c}n.folders[t].offline&&!r.cache&&n.Store&&(n.folders[t].offline=!1,n.folders[t].userObject.fixFiles&&n.folders[t].userObject.fixFiles(),n.Store.refreshDriveUI())},c=function(e,n){var t=e.folders[n];t&&(t.leave(),delete e.folders[n])},u=function(t,r,o,a){if(!t.folders[r]||!t.folders[r].deleting){if(t.user.userObject.readOnly){return c(t,r),s(t,r,{proxy:{deprecated:!0}},(function(){})),void t.Store.refreshDriveUI()}if(o&&t.unpinPads([o],(function(){})),a&&"PASSWORD_CHANGE"!==a){let o=n.find(t,["user","proxy",e.SHARED_FOLDERS]),a=o[r]&&o[r].lastTitle;return a&&((e,n,t)=>{var r=e.store.mailbox;if(r){var o,a=e.cfg.teamId;o=a?e.store.modules.team.getTeamsData()[a]:e.Store.getMetadata(null,null,(()=>{})).user,r.sendTo("SF_DELETED",{sfId:n,team:a,title:t},{curvePublic:o.curvePublic,channel:o.notifications},(e=>{console.error(e)}))}})(t,r,a),delete o[r],void(t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI())}t.user.userObject.deprecateSharedFolder(r,a),c(t,r),t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI()}},f=function(e,n){c(e,n),s(e,n,{proxy:{restricted:!0,root:{},filesData:{}}},(function(){})),e.Store.refreshDriveUI()},l=function(e,n){return Array.isArray(n)&&-1!==n.indexOf(e.edPublic)},d=function(e){var n=[e.user.userObject],t=Object.keys(e.folders).map((function(n){return e.folders[n].userObject}));return Array.prototype.push.apply(n,t),n},h=function(e,n){var t=d(e),r=e.user.userObject;return t.some((function(e){if(Object.keys(e.getFileData(n)).length)return r=e,!0})),r},p=function(e,n){var t=Number(n.id);if(t)return e.user.userObject.findFile(t)[0]},v=function(n,t,r){var o=[];return n.user.userObject.findChannels([t],!0).forEach((function(t){var a=n.user.proxy[e.SHARED_FOLDERS][t];a&&!r&&(a=JSON.parse(JSON.stringify(a))),a||(a=n.user.userObject.getFileData(t,r)),o.push({id:t,data:a,userObject:n.user.userObject})})),Object.keys(n.folders).forEach((function(e){n.folders[e].userObject.findChannels([t]).forEach((function(t){o.push({id:t,fId:e,data:n.folders[e].userObject.getFileData(t,r),userObject:n.folders[e].userObject})}))})),o},y=function(e,n){var t=[],r=e.user.userObject.getIdFromHref(n);return r&&t.push({data:e.user.userObject.getFileData(r),userObject:e.user.userObject}),Object.keys(e.folders).forEach((function(r){var o=e.folders[r].userObject.getIdFromHref(n);o&&t.push({fId:r,data:e.folders[r].userObject.getFileData(o),userObject:e.folders[r].userObject})})),t},m=function(e,n){var t=[],r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);let i;if(a){i=e.findFile(n);let t=(o[a]||[])[0];if(!t)return;i.forEach((function(e){Array.prototype.unshift.apply(e,t)}))}else{let t=[n],a=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(t,a),o=e.findFiles(t),i=o[n]}Array.prototype.push.apply(t,i)})),t},g=function(e,n){var t={},r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);if(!e.id){let e=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(n,e)}var i=e.findFiles(n);if(e.id||(o=i),a){let e=(o[a]||[])[0];if(!e)return;Object.keys(i).forEach((n=>{i[n].forEach((n=>{Array.prototype.unshift.apply(n,e)}))}))}Object.keys(i).forEach((e=>{t[e]||=[],Array.prototype.push.apply(t[e],i[e])}))})),t},E=function(e,t,r){if(r)return e.user.userObject.findChannels(t);var o=[];return d(e).forEach((function(e){var n=e.findChannels(t);Array.prototype.push.apply(o,n)})),o=n.deduplicateString(o)},b=function(e,n,t){var r=d(e),o={};return r.some((function(e){if((o=e.getFileData(n,t))&&Object.keys(o).length)return!0})),o},O=function(t,r){var o;if(t.isHistoryMode&&!t.folders[r])o=!0;else if(!t.folders[r])return{};var a=o?{}:t.folders[r].proxy;Object.keys(a.metadata||{}).length>1&&(a.metadata={title:a.metadata.title});var i=n.clone(a.metadata||{});for(var s in t.user.proxy[e.SHARED_FOLDERS][r]||{})if(void 0!==t.user.proxy[e.SHARED_FOLDERS][r][s]){var c=n.clone(t.user.proxy[e.SHARED_FOLDERS][r][s]);if("href"===s&&-1===c.indexOf("#"))try{c=t.user.userObject.cryptor.decrypt(c)}catch(e){}"href"===s&&-1===c.indexOf("#")&&(c=void 0),i[s]=c}return i},A=function(e,n){var t,r={id:null,userObject:e.user.userObject,path:n};if(!Array.isArray(n)||n.length<=1)return r;for(var o=e.user.userObject,a=2;a{o=n.Messages,e.setCustomize(n)},create:function(n,t,r){var o={pinPads:t.pin,unpinPads:t.unpin,onSync:t.onSync,Store:t.Store,store:t.store,removeOwnedChannel:t.removeOwnedChannel,loadSharedFolder:t.loadSharedFolder,cfg:r,edPublic:t.edPublic,settings:t.settings,user:{proxy:n},folders:{}};r.removeProxy=function(e){c(o,e)},o.user.userObject=e.init(n,r);var a=function(e){return function(){return[].unshift.call(arguments,o),e.apply(null,arguments)}};return{addProxy:a(s),removeProxy:a(c),deprecateProxy:a(u),restrictedProxy:a(f),addSharedFolder:a(N),addPin:function(e,n){o.pinPads=e,o.unpinPads=n},removePin:function(){delete o.pinPads,delete o.unpinPads},command:a(P),getPadAttribute:a(M),setPadAttribute:a(k),getTagsList:a(F),getSecureFilesList:a(L),getSharedFolderData:a(O),getChannelsList:a(j),addPad:a(K),delete:a(I),deleteOwned:a(C),findChannel:a(v),findHref:a(y),findFile:a(m),getEditHash:a(S),user:o.user,folders:o.folders}},createInner:function(n,t,r,o){var a={cfg:o,sframeChan:t,edPublic:r,user:{proxy:n,userObject:e.init(n,o)},folders:{}},i=function(e){return function(){return[].unshift.call(arguments,a),e.apply(null,arguments)}};return{addProxy:i(s),removeProxy:i(c),setHistoryMode:i(le),rename:i(U),move:i(B),emptyTrash:i(V),addFolder:i(Y),addSharedFolder:i(G),addLink:i(J),restoreSharedFolder:i(q),convertFolderToSharedFolder:i(W),delete:i(z),deleteOwned:i(Q),restore:i(Z),setFolderData:i(X),updateStaticAccess:i($),getFileData:i(ne),find:i(re),getTitle:i(oe),isReadOnlyFile:i(ie),isStaticFile:i(ae),getFiles:i(se),search:i(ce),getRecentPads:i(ue),getOwnedPads:i(fe),getTagsList:i(F),findFile:i(m),findFiles:i(g),findChannels:i(ee),getSharedFolderData:i(O),getFolderData:i(de),isInSharedFolder:i(he),getUserObjectPath:i(te),isDuplicateOwned:i(Se),ownedInTrash:i(Te),isValidDrive:i(pe),isFile:i(ve),isFolder:i(ye),isSharedFolder:i(me),isFolderEmpty:i(ge),isPathIn:i(Ee),isSubpath:i(be),isInTrashRoot:i(Oe),comparePath:i(Ae),hasSubfolder:i(we),hasSubSharedFolder:i(De),hasFile:i(_e),user:a.user,folders:a.folders}}}};e.exports&&(e.exports=n(Ue(),Z(),te(),We(),void 0,Ae(),qe()))})()}(Me)),Me.exports}var Qe,Ze,Xe=ze(),$e=n({__proto__:null,default:r(Xe)},[Xe]),en=Ue(),nn=n({__proto__:null,default:r(en)},[en]),tn={exports:{}},rn={exports:{}};function on(){return Ze||(Ze=1,function(e){e.exports&&(e.exports=((e={},n={},t)=>{let r=[];const o=["sheet","doc","presentation"],a=a=>{e=a.AppConfig;const i=(n=a.ApiConfig).onlyOffice&&n.onlyOffice.availableVersions.includes(t.currentVersion);r=e.availablePadTypes.filter((e=>i||!o.includes(e)))};Object.keys(e).length&&a({AppConfig:e,ApiConfig:n});const i={setCustomize:a};return i.__defineGetter__("availableTypes",(function(){return n.appsToDisable?r.filter((e=>!n.appsToDisable.includes(e))):r})),i.__defineGetter__("appsToSelect",(function(){return r.filter((e=>!["drive","teams","file","contacts","convert"].includes(e)))})),i.isAvailable=e=>Array.isArray(i.availableTypes)&&i.availableTypes.includes(e),i})(void 0,void 0,(Qe||(Qe=1,function(e){e.exports&&(e.exports={currentVersion:"v7"})}(rn)),rn.exports)))}(tn)),tn.exports}var an,sn,cn=on(),un=n({__proto__:null,default:r(cn)},[cn]),fn={exports:{}},ln={exports:{}};function dn(){return an||(an=1,function(e){(()=>{const n=(e,n,t={},r)=>{const o=function(){if(Object.keys(t).length){var e,n=new URL(t.httpUnsafeOrigin);try{return(e=new URL(t.websocketPath,t.httpUnsafeOrigin)).protocol=n.protocol,e.origin}catch(e){return console.error(e),t.httpUnsafeOrigin}}};var a=o();var i=e=>JSON.parse(JSON.stringify(e)),s=function(e,t,r){var o=n.once(n.mkAsync(r));fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then((e=>{e.ok?e.text().then((e=>{o(void 0,n.tryParse(e))})):e.json().then().then((n=>{o(e.status,n)}))})).catch((e=>{o(e)}))},c=function(t,o,c){var u=i(o);u.publicKey=n.encodeBase64(t.publicKey),u.nonce=n.encodeBase64(r.randomBytes(24));var f,l,d=new URL("/api/auth/",a);e((function(e){s(d,u,e(((n,t)=>n?(e.abort(),console.error(n),t&&console.error(t),void c(n)):t.date&&t.txid?(f=t.txid,void(l=t.date)):(e.abort(),void c("REQUEST_REJECTED")))))})).nThen((function(e){var o=i(u);o.txid=f,o.date=l;var a=n.decodeUTF8(JSON.stringify(o)),h=r.sign.detached(a,t.secretKey),p=n.encodeBase64(h);s(d,{sig:p,txid:f},e(((n,t)=>{if(n)return e.abort(),console.error(n),t&&console.error(t),void c("RESPONSE_REJECTED",t);c(void 0,t)})))}))};return c.setCustomize=e=>{t=e.ApiConfig,a=o()},c};e.exports&&(e.exports=n(qe(),Z(),void 0,N()))})()}(ln)),ln.exports}function hn(){return sn||(sn=1,function(e){e.exports&&(e.exports=((e,n={},t,r)=>{var o={setCustomize:e=>{n=e.ApiConfig,t.setCustomize(e)}};o.join=e.uint8ArrayJoin,o.seed=function(){return r.hash(e.decodeUTF8("pewpewpew"))},o.genkeys=function(e){if(!(e instanceof Uint8Array))throw new Error("INVALID_SEED_FORMAT");if(!e||"number"!=typeof e.length||e.length<64)throw new Error("INVALID_SEED_LENGTH");var n=e.subarray(0,r.sign.seedLength),t=e.subarray(r.sign.seedLength,r.sign.seedLength+r.secretbox.keyLength);return{sign:r.sign.keyPair.fromSeed(n),symmetric:t}},o.keysToRPCFormat=function(n){try{var t=n.sign;return{edPrivate:e.encodeBase64(t.secretKey),edPublic:e.encodeBase64(t.publicKey)}}catch(e){return void console.error(e)}},o.encrypt=function(n,t,a){var i=e.decodeUTF8(t),s=r.randomBytes(r.secretbox.nonceLength);return o.join([[0],s,r.secretbox(i,s,a.symmetric)])},o.decrypt=function(n,t){var o=n.subarray(1,1+r.secretbox.nonceLength),a=n.subarray(1+r.secretbox.nonceLength),i=r.secretbox.open(a,o,t.symmetric);try{return JSON.parse(e.encodeUTF8(i))}catch(e){return void console.error(e)}},o.sign=function(e,n){return r.sign.detached(r.hash(e),n.sign.secretKey)},o.serialize=function(n,t){var r=o.encrypt(0,n,t),a=o.sign(r,t);return{publicKey:e.encodeBase64(t.sign.publicKey),signature:e.encodeBase64(a),ciphertext:e.encodeBase64(r)}},o.proveAncestor=function(n){var t=e.find(n,["sign","publicKey"]),o=e.find(n,["sign","secretKey"]);try{var a=r.sign.detached(t,o);return JSON.stringify([t,a].map(e.encodeBase64))}catch(e){return void console.error(e)}};var a=function(n){return e.encodeBase64(n).replace(/\//g,"-")};o.getBlockUrl=function(e){var t=a(e.sign.publicKey);return(n.fileHost||n.httpUnsafeOrigin||window.location.origin)+"/block/"+t.slice(0,2)+"/"+t},o.getBlockHash=function(e){return o.getBlockUrl(e)+"#"+a(e.symmetric)};var i=function(n){try{return e.decodeBase64(n.replace(/\-/g,"/"))}catch(e){return void console.error(e)}};return o.parseBlockHash=function(e){if("string"==typeof e){var n=e.split("#");if(2===n.length)try{return{href:n[0],keys:{symmetric:i(n[1])}}}catch(e){return void console.error(e)}}},o.checkRights=function(n,r){const o=e.mkAsync(r),{blockKeys:a,auth:i}=n;var s="MFA_CHECK";i&&i.type&&(s=`${i.type.toUpperCase()}_`+s),t(a.sign,{command:s,auth:i&&i.data},o)},o.writeLoginBlock=function(e,n){const{content:r,blockKeys:a,oldBlockKeys:i,auth:s,pw:c,session:u,token:f,userData:l}=e;var d="WRITE_BLOCK";s&&s.type&&(d=`${s.type.toUpperCase()}_`+d);var h=o.serialize(JSON.stringify(r),a);h.auth=s&&s.data,h.hasPassword=c,h.registrationProof=i&&o.proveAncestor(i),f&&(h.inviteToken=f),l&&(h.userData=l),t(a.sign,{command:d,content:h,session:u},n)},o.removeLoginBlock=function(e,n){const{reason:r,blockKeys:o,auth:a,edPublic:i}=e;var s="REMOVE_BLOCK";a&&a.type&&(s=`${a.type.toUpperCase()}_`+s),t(o.sign,{command:s,auth:a&&a.data,edPublic:i,reason:r},n)},o.updateSSOBlock=function(e,n){const{blockKeys:r,oldBlockKeys:a}=e;var i=a&&o.proveAncestor(a);t(r.sign,{command:"SSO_UPDATE_BLOCK",ancestorProof:i},n)},o})(Z(),void 0,dn(),N()))}(fn)),fn.exports}var pn,vn=hn(),yn=n({__proto__:null,default:r(vn)},[vn]),mn={exports:{}},gn={exports:{}};function En(){return pn||(pn=1,function(e){var n;n=function(){var e=function(n){if(Array.isArray(n))return n.map(e);if(n instanceof Object){var t=[],r=[];return Object.keys(n).forEach((function(e){/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce((function(t,r){return t[r]=e(n[r]),t}),{})}return n},n=JSON.stringify.bind(JSON);return function(t,r,o){var a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;var i=JSON.parse(a);return n(e(i),null,o)}},e.exports?e.exports=n():JSON.sortify=n()}(gn)),gn.exports}var bn,On={exports:{}},An={exports:{}};function wn(){return bn||(bn=1,function(e){e.exports&&(e.exports=((e,n,t,r,o)=>{var a={},i=a.createData=function(e,r){var o={channel:r||n.createChannelId(),displayName:e["cryptpad.username"],profile:e.profile&&e.profile.view,edPublic:e.edPublic,curvePublic:e.curvePublic,notifications:t.find(e,["mailboxes","notifications","channel"]),avatar:e.profile&&e.profile.avatar,badge:e.profile&&e.profile.badge,uid:e.uid};return!1===r&&delete o.channel,o},s=a.getFriend=function(e,n){if(n){if(n===e.curvePublic){var t=i(e);return delete t.channel,t}return e.friends?e.friends[n]:void 0}},c=a.getFriendList=function(e){return e.friends||(e.friends={}),e.friends},u=function(e,n){Object.keys(e).forEach((function(t){"me"!==t&&n(e[t],t,e)}))};return a.getFriendChannelsList=function(e){var n=[];return u(e.friends,(function(e){n.push(e.channel)})),n},a.declineFriendRequest=function(e,n,t){e.mailbox.sendTo("DECLINE_FRIEND_REQUEST",{},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},a.acceptFriendRequest=function(e,n,t){var r=s(e.proxy,n.curvePublic)||{},o=i(e.proxy,r.channel||n.channel);e.mailbox.sendTo("ACCEPT_FRIEND_REQUEST",{user:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},a.addToFriendList=function(e,n,t){var r=e.proxy,a=c(r),i=n.curvePublic;i!==r.curvePublic?(a[i]=n,o.whenRealtimeSyncs(e.realtime,(function(){t(),e.pinPads([n.channel],(function(e){e.error&&console.error(e.error)}))}))):t("E_MYKEY")},a.updateMyData=function(e,n){var r=i(e.proxy,!1);e.proxy.friends&&(e.proxy.friends.me=t.clone(r),delete e.proxy.friends.me.channel),e.modules.team&&e.modules.team.updateMyData(r);var o=function(n){n&&n.notifications&&(delete n.user,r.channel=n.channel,e.mailbox.sendTo("UPDATE_DATA",r,{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)})))};n?o(s(e.proxy,n)):u(e.proxy.friends||{},o)},a.removeFriend=function(e,n,t){var r=e.proxy,a=r.friends[n];a?a.notifications?e.mailbox.sendTo("UNFRIEND",{curvePublic:r.curvePublic},{channel:a.notifications,curvePublic:a.curvePublic},(function(i){i&&i.error?t(i):(e.messenger.onFriendRemoved(n,a.channel),delete r.friends[n],o.whenRealtimeSyncs(e.realtime,(function(){t(i)})))})):t({error:"EINVAL"}):t({error:"ENOENT"})},a})(M(),te(),Z(),Y(),je()))}(An)),An.exports}var Dn,_n,Tn,Sn={exports:{}},xn={exports:{}},Nn={exports:{}};function In(){return Dn||(Dn=1,function(e){e.exports&&(e.exports=function(e,n){var t=e.uid,r=e.tryParse,o=function(t,r){var o=e.decodeUTF8(JSON.stringify(t));return e.encodeBase64(n.sign.detached(o,r))},a=function(e,n,r){if("function"!=typeof r)throw new Error("expected callback");var o=e.network,a=o.historyKeeper;if("string"==typeof a){var i=t(),s=e.pending[i]=function(e,n){r(e,n)};return s.data=n,s.called=0,o.sendto(a,JSON.stringify([i,n]))}r("NO_HISTORY_KEEPER")},i=[],s=[],c=function(e){var n={network:e,connected:!0,anon:void 0,authenticated:[]};return i.push(e),s.push(n),e.on("message",(function(t,o){o===e.historyKeeper&&function(e,n){"string"!=typeof n&&console.error("received non-string message [%s]",n);var t=r(n);if(t){if(Array.isArray(t)&&!/(FULL_HISTORY|HISTORY_RANGE)/.test(t[0])){var o=t[0];"string"==typeof o&&(function(e,n){return!!e.anon&&"function"==typeof e.anon.pending[n]}(e,o)?function(e,n,t){var r=e.pending[n];"ERROR"===t[0]?r(t[1]):r(void 0,t.slice(1)),delete e.pending[n]}(e.anon,o,t.slice(1)):e.authenticated.some((function(e){var n=e.pending[o];return"function"==typeof n&&("ERROR"!==t[1]?(/\|/.test(t[1])&&e.cookie!==t[1]&&(e.cookie=t[1]),n(void 0,t.slice(2)),delete e.pending[o],!0):"NO_COOKIE"===t[2]?(e.send("COOKIE","",(function(t){if(t)return console.error(t),void n(t);e.resend(o)&&delete e.pending[o]})),!0):(n(t[2]),delete e.pending[o],!0))}))||console.error("UNHANDLED RPC MESSAGE",n))}}else console.error(new Error("could not parse message: %s",n))}(n,t)})),e.on("disconnect",(function(){n.connected=!1,n.anon&&(n.anon.connected=!1),n.authenticated.forEach((function(e){e.connected=!1}))})),e.on("reconnect",(function(){n.anon&&(n.anon.connected=!0),n.authenticated.forEach((function(e){e.connected=!0}))})),n},u=function(e){var n;return i.some((function(t,r){return e===t&&(n=r,!0)})),s[n]?s[n]:c(e)},f=function(n,r){if(!n)throw new Error("expected network context");var i,s=r.publicKeyString;return n.authenticated.some((function(e,n){return e.publicKey===s&&(i=n,!0)})),n.authenticated[i]?n.authenticated[i]:function(n,r){var i={network:n.network,publicKey:r.publicKeyString,timeouts:{},pending:{},cookie:null,connected:!0},s=i.send=function(n,t,s){var c=e.mkAsync(s);if(i.connected||"COOKIE"===n){var u=[n,t];i.cookie&&i.cookie.join?u.unshift(i.cookie.join("|")):u.unshift(i.cookie);var f=o(u,r.signKey);return u.unshift(r.publicKeyString),u.unshift(f),a(i,u,c)}c("DISCONNECTED")};return i.resend=function(e){var n=i.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++,n.data[2]=i.cookie,n.data[0]=o(n.data.slice(2),r.signKey);var a=t();i.pending[a]=n,delete i.pending[e];try{return i.network.sendto(i.network.historyKeeper,JSON.stringify([a,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},s.unauthenticated=function(n,t,o){var s=e.mkAsync(o);if(i.connected){var c=[null,r.publicKeyString,null,n,t];return i.cookie&&i.cookie.join?c[2]=i.cookie.join("|"):c[2]=i.cookie,a(i,c,s)}s("DISCONNECTED")},i.destroy=function(){Object.keys(i.timeouts).forEach((function(e){clearTimeout(e)}));var e=n.authenticated.indexOf(i);-1!==e&&n.authenticated.splice(e,1)},n.authenticated.push(i),i}(n,r)},l=function(n){return n.anon||function(n){var t={network:n.network,timeouts:{},pending:{},connected:!0};return n.anon=t,t.send=function(n,r,o){var i=e.mkAsync(o);if(t.connected)return a(t,[n,r],i);i("DISCONNECTED")},t.resend=function(e){var n=t.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++;try{return t.network.sendto(t.network.historyKeeper,JSON.stringify([e,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},t.destroy=function(){Object.keys(t.timeouts).forEach((function(e){clearTimeout(e)})),n.anon=void 0},t}(n)};return{create:function(n,t,r,o){if("function"!=typeof o)throw new Error("expected callback");var a,i=e.mkAsync(o);try{if(64!==(a=e.decodeBase64(t)).length)throw new Error("private key did not match expected length of 64")}catch(e){return void i(e)}try{if(32!==e.decodeBase64(r).length)return void i("expected public key to be 32 uint")}catch(e){return void i(e)}if(n){var s=u(n),c=f(s,{publicKeyString:r,signKey:a});c.send("COOKIE","",(function(e){e?i(e):i(void 0,{send:c.send,destroy:c.destroy})}))}else i("NO_NETWORK")},createAnonymous:function(n,t){var r=e.mkAsync(t);if("function"!=typeof r)throw new Error("expected callback");if(n){var o=l(u(n));r(void 0,{send:o.send,destroy:o.destroy})}else r("NO_NETWORK")}}}(Z(),N()))}(Nn)),Nn.exports}function Cn(){return _n||(_n=1,function(e){e.exports&&(e.exports=function(e,n){return{create:function(t,r,o,a){if("function"!=typeof o)throw new Error("Expected callback");var i=e.once(e.mkAsync(o));if(t)if(r){var s=r.edPrivate,c=r.edPublic;s&&c?n.create(t,s,c,(function(n,t){if(n)i(n);else{var r={};r.destroy=t.destroy,r.publicKey=c,r.send=t.send,r.pin=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("PIN",n,o):o("[TypeError] pin expects an array")},r.unpin=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("UNPIN",n,o):o("[TypeError] pin expects an array")},r.adminRpc=function(e,n){if(e.cmd){var r=[e.cmd,e.data];t.send("ADMIN",r,n)}else setTimeout((function(){n("[TypeError] admin rpc expects a command")}))},r.getServerHash=function(e){t.send("GET_HASH",c,(function(n,t){t&&t[0]?e(n,Array.isArray(t)&&t[0]||void 0):e("NO_HASH_RETURNED")}))},r.reset=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("RESET",n,o):o("[TypeError] pin expects an array")},r.getFileListSize=function(e){t.send("GET_TOTAL_SIZE",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0]):e("INVALID_RESPONSE")}))},r.updatePinLimits=function(e){t.send("UPDATE_LIMITS",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.getLimit=function(e){t.send("GET_LIMIT",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.trimHistory=function(n,r){var o=e.once(e.mkAsync(r));"object"==typeof n&&n.channel&&n.hash?t.send("TRIM_HISTORY",n,(function(e){if(e)return o(e);o()})):o("INVALID_ARGUMENTS")},r.clearOwnedChannel=function(e,n){"string"==typeof e&&32===e.length?t.send("CLEAR_OWNED_CHANNEL",e,(function(e){if(e)return n(e);n()})):n("INVALID_ARGUMENTS")},r.removeOwnedChannel=function(e,n,r){if("string"!=typeof e||-1===[32,48].indexOf(e.length))return console.error("invalid channel to remove",e),void n("INVALID_ARGUMENTS");t.send("REMOVE_OWNED_CHANNEL",{channel:e,reason:r},(function(t,r){t?n(t):r&&r.length&&"OK"===r[0]?(n(),a&&a.clearChannel&&a.clearChannel(e)):n("INVALID_RESPONSE")}))},r.removePins=function(e){t.send("REMOVE_PINS",void 0,(function(n,t){n?e(n):t&&t.length&&"OK"===t[0]?e():e("INVALID_RESPONSE")}))},r.uploadComplete=function(e,n){t.send("UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.ownedUploadComplete=function(e,n){t.send("OWNED_UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.uploadStatus=function(e,n){"number"==typeof e?t.send("UPLOAD_STATUS",e,(function(e,t){if(e)n(e);else{var r=t[0];"boolean"==typeof r?n(void 0,r):n("INVALID_RESPONSE")}})):setTimeout((function(){n("INVALID_SIZE")}))},r.uploadCancel=function(e,n){t.send("UPLOAD_CANCEL",e,(function(e){e?n(e):n()}))},r.setMetadata=function(e,n){t.send("SET_METADATA",{channel:e.channel,command:e.command,value:e.value},n)},i(n,r)}})):i("INVALID_KEYS")}else i("INVALID_PROXY");else i("INVALID_NETWORK")}}}(Z(),In()))}(xn)),xn.exports}function Rn(){return Tn||(Tn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u)=>{var f=function(e,n,t){if(!e.done){if(e.cb(n&&n.error,t,n),e.done=!0,!e.hasNetwork){var o=r.find(e,["network","disconnect"]);"function"==typeof o&&o()}if(e.realtime&&e.realtime.stop)try{e.realtime.stop()}catch(e){console.error(e)}var a=r.find(e,["session","realtime","abort"]);"function"==typeof a&&(e.session.realtime.sync(),a())}},l=function(e,r){u((function(n){var o,a;e.hasNetwork||(o=n((function(e,n){e||(r.network=n)})),a=i.getWebsocketURL(),t.connect(a).then((function(e){o(null,e)}),(function(e){o(e)})))})).nThen((function(){e.realtime=n.start(r)}))},d=function(e,n,t,r){Array.isArray(t)&&t.length&&16===t[0].length&&Array.isArray(n.accessKeys)?(e.network.historyKeeper=t[0],u((function(t){n.accessKeys.forEach((function(n){c.create(e.network,n,t((function(e){console.log("done",n),e&&console.error(e)})))}))})).nThen((function(){r()}))):r(!0)},h=function(n,t){var r;return"string"==typeof n?r=o.getSecrets("pad",n,t.password):"object"==typeof n&&(r=n),r.keys||(r.keys=r.key),{websocketURL:i.getWebsocketURL(t.origin),channel:r.channel,validateKey:r.keys.validateKey||void 0,crypto:e.createEncryptor(r.keys),logLevel:0,initialState:t.initialState,Cache:s}},p=function(e){return"object"==typeof e},v=function(e,n){p(e)&&p(n)&&Object.keys(n).forEach((function(t){e[t]=n[t]}))};return{get:function(e,n,t,r){if("function"!=typeof n)throw new Error("Cryptget expects a callback");r=r||function(){};var o=h(e,t=t||{}),a={cb:n,accessKeys:t.accessKeys,hasNetwork:Boolean(t.network)};o.onRejected=function(e,n){d(o,a,e,n)},o.onReady=function(e){var n=a.session=e.realtime;a.network=e.network,r(1),f(a,void 0,n.getUserDoc())},o.onError=function(e){console.warn(e),f(a,e)},o.onChannelError=function(e){console.error(e),f(a,e)},o.onCacheReady=t.onCacheReady;var i=0;o.onMessage=function(){i++,r(Math.min(.99,i/100))},v(o,t),l(a,o)},put:function(e,n,t,r){if("function"!=typeof t)throw new Error("Cryptput expects a callback");var o=h(e,r=r||{}),i={cb:t,accessKeys:r.accessKeys,hasNetwork:Boolean(r.network)};o.onRejected=function(e,n){d(o,i,e,n)},o.onReady=function(e){var r=i.session=e.realtime;i.network=e.network,r.contentUpdate(n);var o=setTimeout((function(){t(new Error("Timeout"))}),15e3);a.whenRealtimeSyncs(r,(function(){clearTimeout(o);var e=r.getAuthDoc();r.abort(),f(i,void 0,e)}))},o.onChannelError=function(e){f(i,e)},v(o,r),l(i,o)}}};e.exports&&(e.exports=n(M(),y(),v(),Z(),te(),je(),j(),fe(),Cn(),qe(),w()))})()}(Sn)),Sn.exports}var Pn,kn={exports:{}},Mn={exports:{}};var Fn,Ln,Hn,jn={exports:{}};function Kn(){return Fn||(Fn=1,function(e){e.exports&&(e.exports=((e,n,t,r,o)=>{var a=function(e){var n=e.store.realtime.getLag().lag||0;return 20*(Math.max(0,n)+300)*(.5+Math.random())},i={},s={},c=function(e,n){var r=e.store.proxy.mutedUsers||{},o=t.find(n,["msg","author"]);return!!o&&Boolean(r[o])},u={};i.FRIEND_REQUEST=function(n,t,r,o){var a=r.msg.content.user||r.msg.content;if(c(n,r))o(!0);else if(u[r.msg.author])o(!0);else{if(u[r.msg.author]={type:t.type,hash:r.hash},e.getFriend(n.store.proxy,r.msg.author)||n.store.proxy.friends_pending[r.msg.author])return delete n.store.proxy.friends_pending[r.msg.author],void e.acceptFriendRequest(n.store,a,(function(t){t&&t.error?o():e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},a,(function(e){if(e)return console.error(e),void o(!0);n.store.messenger&&n.store.messenger.onFriendAdded(a),n.updateMetadata(),o(!0)}))}));o()}},s.FRIEND_REQUEST=function(e,n,t){var r=t.content.user||t.content;u[r.curvePublic]&&delete u[r.curvePublic]};var f={},l={};i.DECLINE_FRIEND_REQUEST=function(e,n,t,r){var o=t.msg.content.user||t.msg.content;o.curvePublic||(o.curvePublic=t.msg.author),setTimeout((function(){r(!0),e.store.proxy.friends_pending[t.msg.author]&&(delete e.store.proxy.friends_pending[t.msg.author],e.updateMetadata(),f[t.msg.author]||n.sendMessage({type:"FRIEND_REQUEST_DECLINED",content:{user:o}},(function(e){f[t.msg.author]={type:n.type,hash:e}})))}),a(e))},i.FRIEND_REQUEST_DECLINED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=l[o];delete l[o],f[o]?r(!0,a):(f[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_DECLINED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;f[r]&&delete f[r]},i.ACCEPT_FRIEND_REQUEST=function(n,t,r,o){var i=r.msg.content.user||r.msg.content;setTimeout((function(){o(!0),n.store.proxy.friends_pending[r.msg.author]&&(delete n.store.proxy.friends_pending[r.msg.author],e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},i,(function(e){e?console.error(e):(n.store.messenger&&n.store.messenger.onFriendAdded(i),n.updateMetadata(),n.store.modules.profile&&n.store.modules.profile.update(),l[r.msg.author]||t.sendMessage({type:"FRIEND_REQUEST_ACCEPTED",content:{user:i}},(function(e){l[r.msg.author]={type:t.type,hash:e}})))})))}),a(n))},i.FRIEND_REQUEST_ACCEPTED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=f[o];delete f[o],l[o]?r(!0,a):(l[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_ACCEPTED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;l[r]&&delete l[r]},i.CANCEL_FRIEND_REQUEST=function(e,n,t,r){var o=u[t.msg.author];o?r(!0,o):r(!0)},i.UNFRIEND=function(n,t,r,o){var a=r.msg.author,i=e.getFriend(n.store.proxy,a);i?(delete n.store.proxy.friends[a],delete n.store.proxy.friends_pending[a],n.store.messenger&&n.store.messenger.onFriendRemoved(a,i.channel),n.updateMetadata(),o(!0)):o(!0)},i.UPDATE_DATA=function(e,n,t,r){var o=t.msg,a=o.author,i=e.store.proxy.friends&&e.store.proxy.friends[a];i&&"object"==typeof o.content?(Object.keys(o.content).forEach((function(e){i[e]=o.content[e]})),e.store.messenger&&e.store.messenger.onFriendUpdate(a),e.updateMetadata(),r(!0)):r(!0)};var d=function(e,n){let t=e.store.data.blockHash,a=o.parseBlockHash(t).keys.symmetric;return r.encrypt(n,a)},h={};i.SHARE_PAD=function(e,t,r,o){var a=r.msg,i=r.hash,s=a.content;if(c(e,r))o(!0);else{var u,f=s.isStatic?s.href:n.hrefToHexChannelId(s.href,s.password),l=n.parsePadUrl(s.href),p=l.hashData&&l.hashData.mode||"n/a",v=h[f];if(v){if("edit"===v.mode&&"view"===p)return void o(!0);u=v.data}s.password&&(s.password=d(e,s.password)),h[f]={mode:p,data:{type:t.type,hash:i}},o(!1,u)}},s.SHARE_PAD=function(e,t,r,o){var a=r.content,i=n.hrefToHexChannelId(a.href,a.password),s=h[i];s&&s.data&&s.data.hash===o&&delete h[i]};var p=!1;i.SUPPORT_MESSAGE=function(e,n,t,r){p?r(!0):(p=!0,r())},s.SUPPORT_MESSAGE=function(){p=!1},i.REQUEST_PAD_ACCESS=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{var a=o.channel,i=e.store.manager.findChannel(a);if(i.length){var s,u,f=e.store.proxy.edPublic;i.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(f)&&e.data.href)return u=e.data.href,s=e.data.filename||e.data.title,!0}))?(o.title=s,o.href=u,r(!1)):r(!0)}else r(!0)}},i.GIVE_PAD_ACCESS=function(e,n,t,r){var o,a=t.msg.content,i=a.channel;e.store.manager.findChannel(i,!0).forEach((function(e){e.data&&!e.data.href&&(o||(o=e.data.filename||e.data.title),e.userObject.setHref(i,null,a.href))})),a.title=o||a.title,r(!1)},i.ADD_TO_ACCESS_LIST=function(e,n,t,r){var o=t.msg.content.channel;e.Store.getAllStores().forEach((function(n){var t=n.manager.findChannel(o);if(t.length){var r=t[0].data,a=t[0].id,i=n.id;e.Store.loadSharedFolder(i,a,r,(function(){}),!1)}})),r(!0)};var v={};i.ADD_OWNER=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{if(!(o.teamChannel||o.href&&o.title&&o.channel))return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;o.password&&(o.pw=o.password,o.password=d(e,o.password)),v[a]?r(!0):(v[a]={type:n.type,hash:t.hash},r(!1))}},s.ADD_OWNER=function(e,n,t){var r=t.content.channel||t.content.teamChannel;v[r]&&delete v[r]},i.RM_OWNER=function(e,n,t,r){var o=t.msg.content;if(!o.channel&&!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;if(o.teamChannel){var i=e.store.proxy.teams||{};Object.keys(i).some((function(e){if(i[e].channel===a)return i[e].owner=!1,!0}))}v[a]&&o.pending?r(!1,v[a]):r(!1)};var y={};i.INVITE_TO_TEAM=function(e,n,r,o){var a=r.msg.content;if(c(e,r))o(!0);else{if(!a.team)return console.log("Remove invalid notification"),void o(!0);var i=y[a.team.channel];if(i)return console.log("removing old invitation"),o(!1,i),void(y[a.team.channel]={type:n.type,hash:r.hash});var s=t.find(e,["store","proxy","teams"])||{};Object.keys(s).some((function(e){return s[e].channel===a.team.channel}))?o(!0):(y[a.team.channel]={type:n.type,hash:r.hash},o(!1))}},s.INVITE_TO_TEAM=function(e,n,r){var o=t.find(r,["content","team","channel"]);delete y[o]},i.KICKED_FROM_TEAM=function(e,n,t,r){var o=t.msg.content;if(!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);y[o.teamChannel]&&o.pending?r(!0,y[o.teamChannel]):r(!1)},i.INVITE_TO_TEAM_ANSWER=function(e,n,r,o){var a=r.msg,i=a.content;if(!i.teamChannel)return console.log("Remove invalid notification"),void o(!0);var s,c,u=t.find(e,["store","proxy","teams"])||{};if(Object.keys(u).some((function(e){var n=u[e];if(n.channel===i.teamChannel)return s=e,c=n,!0})),s){if(i.team=c,!i.answer)try{e.store.modules.team.removeFromTeam(s,a.author,!0)}catch(e){console.error(e)}var f=i.user||i;n.sendMessage({type:"INVITE_TO_TEAM_ANSWERED",content:{user:f,team:c,answer:i.answer}},(function(){})),o(!0)}else o(!0)},i.TEAM_EDIT_RIGHTS=function(e,n,r,o){var a=r.msg.content;if(!a.teamData)return console.log("Remove invalid notification"),void o(!0);var i,s=t.find(e,["store","proxy","teams"])||{};if(Object.keys(s).some((function(e){if(s[e].channel===a.teamData.channel)return i=e,!0})),i)try{e.store.modules.team.changeMyRights(i,a.state,a.teamData,(function(e){e||console.error("Can't update team rights"),o(!0)}))}catch(e){console.error(e)}else o(!0)},i.OWNED_PAD_REMOVED=function(e,n,t,r){var o=t.msg.content;if(!o.channel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel;e.store.manager.findChannel(a).forEach((function(n){var t=e.store.manager.findFile(n.id);e.store.manager.delete({paths:t},(function(){e.updateDrive()}))})),r(!0)},i.MOVE_TODO=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)},i.SAFE_LINKS_DEFAULT=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)};var m={};i.FORM_RESPONSE=function(e,n,t,r){var o,a,i=t.msg,s=t.hash,c=i.content,u=c.channel;if(u)if(function(e,n){return(e.store.proxy.mutedChannels||[]).includes(n)}(e,u))r(!0);else if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(u).some((function(e){if(e.data&&(!a||e.data.href))return a=e.data.href||e.data.roHref,o=e.data.filename||e.data.title,!!e.data.href||void 0}))})),a){c.href=a,c.title=o;var f=m[u],l=f?f.data:void 0;m[u]={data:{type:n.type,hash:s}},r(!1,l)}else r(!0);else r(!0)},s.FORM_RESPONSE=function(e,n,t,r){var o=t.content.channel,a=m[o];a&&a.data&&a.data.hash===r&&delete m[o]};var g={};i.COMMENT_REPLY=function(e,n,r,o){var a=r.msg,i=r.hash,s=a.content;if(t.find(e.store.proxy,["settings","pad","disableNotif"]))o(!0);else{var c,u,f=s.channel;if(f)if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(f).some((function(e){if(e.data&&(!u||e.data.href))return u=e.data.href||e.data.roHref,c=e.data.filename||e.data.title,!!e.data.href||void 0}))})),u){s.href=u,s.title=c;var l=g[f],d=l?l.data:void 0;g[f]={data:{type:n.type,hash:i}},o(!1,d)}else o(!0);else o(!0)}},s.COMMENT_REPLY=function(e,n,t,r){var o=t.content.channel,a=g[o];a&&a.data&&a.data.hash===r&&delete g[o]};var E,b,O={};i.MENTION=function(e,n,t,r){var o=t.msg,a=t.hash,i=o.content;if(c(e,t))r(!0);else{var s=i.channel;if(s){var u,f;e.Store.getAllStores().some((function(e){return e.manager.findChannel(s).some((function(e){if(e.data&&(!f||e.data.href))return f=e.data.href||e.data.roHref,u=e.data.filename||e.data.title,!!e.data.href||void 0}))})),i.href=f,i.title=u;var l=O[s],d=l?l.data:void 0;O[s]={data:{type:n.type,hash:a}},r(!1,d)}else r(!0)}},s.MENTION=function(e,n,t,r){var o=t.content.channel,a=O[o];a&&a.data&&a.data.hash===r&&delete O[o]},i.BROADCAST_MAINTENANCE=function(e,n,t,r){var o=t.msg.uid;e.Store.onMaintenanceUpdate(o),r(!0)},i.BROADCAST_SURVEY=function(e,n,t,r){var o=t.msg,a=o.content,i=o.uid,s=E;E={type:n.type,hash:t.hash},e.Store.onSurveyUpdate(i),r(!a.url,s)},i.BROADCAST_CUSTOM=function(e,n,t,r){var o=t.msg.uid,a=b;b={uid:o,type:n.type,hash:t.hash},r(!1,a)},i.BROADCAST_DELETE=function(e,n,t,r){var o=t.msg.content.uid;if(b&&b.uid===o)return r(!0,b),void(b=void 0);r(!0)};var A,w,D={};return i.SF_DELETED=function(e,n,t,r){var o=t.msg.content,a=o.team,i=o.sfId;if(D[i])r(!0);else if(D[i]=1,a){var s=e.store.proxy.teams[a];o.teamName=s.metadata&&s.metadata.name,r(!1)}else r(!1)},s.SF_DELETED=function(e,n,t){var r=t.content.sfId;delete D[r]},i.NEW_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);a.isAdmin&&i.addUserTicket(a,o),i.addAdminTicket(a,o)},i.NOTIF_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);if(a.isAdmin)return t.find(e,["store","proxy","support",a.channel])?(i.updateUserTicket(a),A?void o(!1,A):(A={channel:a.channel,type:n.type,hash:r.hash},void o(!1))):void o(!0);i.checkAdminTicket(a,(s=>{s?(i.updateAdminTicket(a),t.find(e.store.proxy,["settings","general","disableSupportNotif"])?o(!0):w?o(!1,w):(w={channel:a.channel,type:n.type,hash:r.hash},o(!1))):o(!0)}))},s.NOTIF_TICKET=function(e,n,t){var r=t.content.channel;A&&A.channel===r&&(A=void 0),w&&w.channel===r&&(w=void 0)},i.ADD_MODERATOR=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,o)},i.MODERATOR_NEW_KEY=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,(function(){o(!0)}))},{add:function(e,n,r,o){if(r.msg){var a=t.find(e,["store","proxy","curvePublic"]),s=t.find(r,["msg","content","user","curvePublic"])||t.find(r,["msg","content","curvePublic"]);if(s&&r.msg.author!==s&&r.msg.author!==a)return console.error("blocked"),void o(null,null,!0);var c=r.msg.type;if(i[c])try{i[c](e,n,r,o)}catch(e){console.error(e),o()}else o()}else o(null,null,!0)},remove:function(e,n,t,r){if(t){var o=t.type;if(s[o])try{s[o](e,n,t,r)}catch(e){console.error(e)}}}}})(wn(),te(),Z(),M(),hn()))}(jn)),jn.exports}function Un(){return Ln||(Ln=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c)=>{var u={setCustomize:n=>{e=n.Broadcast}},f=["notifications","supportteam","broadcast"],l=[],d="000000000000000000000000000000000",h=function(e,n,t,r,o){e.emit("MESSAGE",{type:n,content:t},r?[r]:e.clients,o)},p=function(e,n,t,r){e.emit("VIEWED",{type:n,hash:t},r||e.clients)},v=function(e){var n=e.store&&e.store.proxy;if(n.curvePrivate&&n.curvePublic)return{curvePrivate:n.curvePrivate,curvePublic:n.curvePublic}},y=u.sendTo=function(e,t,r,a,i){a=a||{};var s=i||function(e){e&&e.error&&console.error(e.error)};if(c.Mailbox){var u=n.find(e,["store","anon_rpc"]);if(u){var f={encrypt:function(e){return e}},l=d,h={uid:n.uid(),type:t,content:r};if(!/^BROADCAST/.test(t)){var p=v(e);if(!p)return void s({error:"missing asymmetric encryption keys"});if(!a||!a.channel||!a.curvePublic)return void s({error:"no notification channel"});if(l=a.channel,f=c.Mailbox.createEncryptor(p),"object"==typeof r&&!r.user){var y=o.createData(e.store.proxy,!1);r.user=y}h={type:t,content:r}}var m=JSON.stringify(h),g=f.encrypt(m,a.curvePublic);if(a.viewed){var E=n.find(e,["store","proxy","teams",a.viewed]);if(E){var b=g.slice(0,64),O=n.find(E,["keys","mailbox","viewed"]);Array.isArray(O)&&O.push(b)}}u.send("WRITE_PRIVATE_MESSAGE",[l,g],(function(e){s(e?{error:e}:{hash:g.slice(0,64)})}))}else s({error:"anonymous rpc session not ready"})}else s({error:"chainpad-crypto is outdated and doesn't support mailboxes."})};u.sendToAnon=function(e,t,r,o,a){var i=c.Nacl,s=i.randomBytes(32),u=i.box.keyPair.fromSecretKey(new Uint8Array(s)),f=n.encodeBase64(u.secretKey),l=n.encodeBase64(u.publicKey);y({store:{anon_rpc:e,proxy:{curvePrivate:f,curvePublic:l}}},t,r,o,a)};var m=function(e,t,o,a){var s=t.type,c=t.hash;if(/^REMINDER\|/.test(c)){a(),delete e.boxes.reminders.content[c],p(e,s,c,e.clients.filter((function(e){return e!==o})));var u=c.slice(9).split("-")[0],f=n.find(e,["store","proxy","hideReminders",u]);if(!f){var l=e.store.proxy.hideReminders=e.store.proxy.hideReminders||{};f=l[u]=l[u]||[]}var d=c.split("-")[1];d&&!f.includes(d)&&f.push(Number(d))}else{var h=e.boxes[s];if(h){var v,y,m=h.data||{},g=h.history.indexOf(c);-1!==g&&(0===g?(m.lastKnownHash=c,h.history.shift()):-1===m.viewed.indexOf(c)&&m.viewed.push(c));var E=[];h.history.some((function(e,n){if(-1===m.viewed.indexOf(e))return!0;v=n+1,E.push(e),y=e})),m.viewed=m.viewed.filter((function(e){return-1===E.indexOf(e)})),v&&(h.history=h.history.slice(v),m.lastKnownHash=y),Object.keys(h.content).forEach((function(n){-1!==h.history.indexOf(n)&&-1===m.viewed.indexOf(n)||(i.remove(e,h,h.content[n],n),delete h.content[n])})),r.whenRealtimeSyncs(e.store.realtime,(function(){a(),p(e,s,c,e.clients.filter((function(e){return e!==o})))}))}else a({error:"NOT_LOADED"})}},g=function(e,n,t,r,u){u=u||{};var f=e.boxes[n]={channel:t.channel,type:n,queue:[],history:[],content:{},sendMessage:function(n){if("object"==typeof n&&!n.user){var t=o.createData(e.store.proxy,!1);n.user=t}try{n=JSON.stringify(n)}catch(e){console.error(e)}f.queue.push(n)},data:t};if(c.Mailbox){var l=t.keys||v(e);if(l||t.decrypted){var d=t.decrypted?{encrypt:function(e){return e},decrypt:function(e){return e}}:c.Mailbox.createEncryptor(l);f.encryptor=d;var y,g={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:d,owners:"broadcast"===n?[]:u.owners||[e.store.proxy.edPublic],lastKnownHash:t.lastKnownHash};g.onConnectionChange=function(){},g.onConnect=function(t,r){f.sendMessage=function(t,o){var a;o=o||function(){};try{a=JSON.stringify(t)}catch(e){console.error(e)}r(a,(function(r,a){r?console.error(r):(f.history.push(a),t.ctime=+new Date,f.content[a]=t,h(e,n,{msg:t,hash:a}),o(a))}),l.curvePublic)},f.queue.forEach((function(e){f.sendMessage(e)})),f.queue=[]},f.onMessage=g.onMessage=function(r,o,s,c,l,d,p){if(l!==t.lastKnownHash&&l!==y){var v=p&&p.time;y=l;try{r=JSON.parse(r)}catch(e){console.error(e)}if(d&&(r.author=d),f.history.push(l),function(e,n){return-1===(n.viewed||[]).indexOf(e)&&e!==n.lastKnownHash}(l,t)){var g={msg:r,hash:l,time:v},E=f.ready;i.add(e,f,g,(function(t,o,i){o&&m(e,o,"",(function(){console.log("Notification handled automatically")})),i||t?m(e,{type:n,hash:l},"",(function(){console.log("Notification handled automatically")})):(r.ctime=v||0,f.content[l]=r,u.dump||h(e,n,g,null,(function(e){e&&e.msg&&E&&a.system(void 0,e.msg)})))}))}else if(0===Object.keys(f.content).length){t.lastKnownHash=l,f.history=[];var b=t.viewed.indexOf(l);-1!==b&&t.viewed.splice(b,1)}}},g.onReady=function(){var o=[];t.viewed.forEach((function(e,n){-1===f.history.indexOf(e)&&o.push(n)}));for(var a=o.length-1;a>=0;a--)t.viewed.splice(o[a],1);var s=function(t){i.remove(e,f,f.content[t],t),delete f.content[t],p(e,n,t)};e.store.proxy.on("change",["mailboxes",n],(function(e,n,t){var r;"lastKnownHash"===t[2]&&(f.history.some((function(e,t){if(r=t+1,s(e),e===n)return!0})),f.history=f.history.slice(r));"viewed"===t[2]&&s(n)})),f.ready=!0,r(f.content)},f.cpNf=s.start(g)}else console.error("missing asymmetric encryption keys")}else console.error("chainpad-crypto is outdated and doesn't support mailboxes.")};return u.init=function(r,o,s){var c={},u=r.store,v=u.proxy.mailboxes=u.proxy.mailboxes||{},E={Store:r.Store,store:u,pinPads:r.pinPads,updateMetadata:r.updateMetadata,updateDrive:r.updateDrive,mailboxes:v,emit:s,clients:[],boxes:{},req:{},loggedIn:u.loggedIn&&u.proxy.edPublic};return function(n,r){!r.notifications&&n.loggedIn&&(r.notifications={channel:t.createChannelId(),lastKnownHash:"",viewed:[]},n.pinPads([r.notifications.channel],(function(e){e.error&&console.error(e)}))),r.support&&delete r.support,r.broadcast||(r.broadcast={channel:d,lastKnownHash:e.lastBroadcastHash,decrypted:!0,viewed:[]})}(E,v),E.loggedIn&&function(e){var t=e.store.network;t.on("message",(function(r,o){if(o===t.historyKeeper){var a=JSON.parse(r);if(/HISTORY_RANGE/.test(a[0])){var i=a[1],s=e.req[i];if(s){var c=a[0],u=a[2],f=s.box;if("HISTORY_RANGE"===c){if(!Array.isArray(u))return;var l;if("broadcast"===s.box.type)l=n.tryParse(u[4]);else try{var d=f.encryptor.decrypt(u[4]);(l=JSON.parse(d.content)).author=d.author}catch(e){console.log(e)}var h=u[4].slice(0,64);e.emit("HISTORY",{txid:i,time:u[5],message:l,hash:h},[s.cId])}else"HISTORY_RANGE_END"===c&&(e.emit("HISTORY",{txid:i,complete:!0},[s.cId]),delete e.req[i])}}}}))}(E),E.boxes.reminders={content:{}},Object.keys(v).forEach((function(e){if(-1!==f.indexOf(e)){var n=v[e];-1===l.indexOf(e)?g(E,e,n,(function(){})):g(E,e,n,o((function(){})))}})),E.loggedIn&&Object.keys(u.proxy.teams||{}).forEach((function(e){var t=u.proxy.teams[e];if(t){var r=t.keys.mailbox||{};if(r.channel){var o={owners:[n.find(t,["keys","drive","edPublic"])]};g(E,"team-"+e,r,(function(){}),o)}}})),c.post=function(e,n,t){var r=E.boxes[e];r&&r.sendMessage({type:n,content:t,sender:u.proxy.curvePublic})},c.hideMessage=function(e,n){p(E,e,n.hash,E.clients)},c.showMessage=function(e,n,t,r){"reminders"===e&&n&&(E.boxes.reminders.content[n.hash]=n.msg,E.clients.length||(E.boxes.reminders.content[n.hash].requiresNotif=!0),p(E,e,n.hash,E.clients)),h(E,e,n,t,(function(e){a.system(void 0,e.msg),r&&r()}))},c.open=function(e,n,t,r,o){(-1!==f.indexOf(e)||r)&&g(E,e,n,t,o)},c.close=function(e,n){!function(e,n,t){t=t||function(){};var r=e.boxes[n];r?r.cpNf&&"function"==typeof r.cpNf.stop?(r.cpNf.stop(),Object.keys(r.content).forEach((function(t){i.remove(e,r,r.content[t],t),p(e,n,t,e.clients)})),delete e.boxes[n]):t("EINVAL"):t()}(E,e,n)},c.dismiss=function(e,n){m(E,e,"",n)},c.sendTo=function(e,n,t,r){E.loggedIn?y(E,e,n,t,r):r({error:"NOT_LOGGED_IN"})},c.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);e.clients.splice(t,1)}(E,e)},c.execCommand=function(e,n,t){var r=n.cmd,o=n.data;"SUBSCRIBE"!==r?"DISMISS"!==r?"SENDTO"!==r?"LOAD_HISTORY"!==r||function(e,n,t,r){var o=e.boxes[t.type];if(o){var a=["GET_HISTORY_RANGE",o.channel,{from:t.lastKnownHash,count:t.count,txid:t.txid}];"broadcast"===t.type&&(a=["GET_HISTORY_RANGE",o.channel,{to:t.lastKnownHash,txid:t.txid}]),e.req[t.txid]={cId:n,box:o};var i=e.store.network;i.sendto(i.historyKeeper,JSON.stringify(a)).then((function(){}),(function(e){console.error(e)}))}else r({error:"ENOENT"})}(E,e,o,t):y(E,o.type,o.msg,o.user,t):m(E,o,e,t):function(e,n,t,r){Object.keys(e.boxes).forEach((function(n){Object.keys(e.boxes[n].content).forEach((function(r){var o={msg:e.boxes[n].content[r],hash:r};h(e,n,o,t,(function(e){e.error||o.msg&&o.msg.requiresNotif&&(a.system(void 0,e.msg),delete o.msg.requiresNotif)}))}))})),-1===e.clients.indexOf(t)&&e.clients.push(t),r()}(E,0,e,t)},c},u};e.exports&&(e.exports=n(void 0,Z(),te(),je(),wn(),(Pn||(Pn=1,function(e){(()=>{const n=(e={})=>{let n=globalThis;var t={};e.requireConf=e.requireConf||{},t.setCustomize=n=>{e=n.ApiConfig};var r=n.location&&n.location.pathname.slice(1,-1),o=-1!==["code","slide","pad","kanban","whiteboard","diagram","sheet","poll","teams","form","doc","presentation"].indexOf(r)?"-"+r:"",a="/customize/favicon/main-favicon"+o+".png?"+e.requireConf.urlArgs,i="/customize/favicon/alt-favicon"+o+".png?"+e.requireConf.urlArgs,s="/customize/favicon/main-favicon"+o+".ico?"+e.requireConf.urlArgs,c="/customize/favicon/alt-favicon"+o+".ico?"+e.requireConf.urlArgs,u=n.document,f=t.isSupported=function(){return"function"==typeof n.Notification&&n.isSecureContext},l=t.hasPermission=function(){return"granted"===Notification.permission},d=t.getPermission=function(e){e=e||function(){},Notification&&"function"==typeof Notification.requestPermission?Notification.requestPermission((function(n){e("granted"===n)})):e(!1)},h=t.create=function(e,t,r){u&&!r?r=u.getElementById("favicon").getAttribute("data-main-favicon")||i:r||(r=i);var o=new Notification(t,{icon:r,body:e});return o.onclick=function(){if(u)try{parent.focus(),n.focus(),this.close()}catch(e){}},o};return t.system=function(e,n,t){if(f())return l()?h(e,n,t):void("denied"!==Notification.permission&&d((function(r){r&&h(e,n,t)})))},u&&!u.getElementById("favicon")&&function(){if(u){console.debug("creating favicon");var e={id:"favicon",type:"image/png",rel:"icon","data-main-favicon":a,"data-alt-favicon":i,href:a};if(!u.getElementById("favicon")){var n=u.createElement("link");Object.keys(e).forEach((function(t){n.setAttribute(t,e[t])})),u.head.appendChild(n)}if(!u.getElementById("favicon-ico")){var t=u.createElement("link");e.href=e.href.replace(/\.png/g,".ico"),e.id="favicon-ico",e.type="image/x-icon",Object.keys(e).forEach((function(n){t.setAttribute(n,e[n])})),u.head.appendChild(t)}}else console.error("document is not available in this context")}(),t.tab=function(e,r){if(u){var o="_pendingTabNotification",f=u.getElementById("favicon"),l=u.getElementById("favicon-ico"),d=a,h=i,p=s,v=c;f&&(d=f.getAttribute("data-main-favicon")||a,h=f.getAttribute("data-alt-favicon")||i,f.setAttribute("href",d)),l&&(p=l.getAttribute("data-main-favicon")||s,v=l.getAttribute("data-alt-favicon")||c,l.setAttribute("href",p));var y=function(e){return!!t[o]&&(n.clearInterval(t[o]),f&&f.setAttribute("href",e?h:d),l&&l.setAttribute("href",e?v:p),!0)};y();var m=function(){f&&f.setAttribute("href",f.getAttribute("href")===d?h:d),l&&l.setAttribute("href",l.getAttribute("href")===p?v:p),--r};return t[o]=n.setInterval((function(){if(r>0)return m();y(!0)}),e),m(),{cancel:y}}console.error("document is not available in this context")},t};e.exports&&(e.exports=n(void 0))})()}(Mn)),Mn.exports),Kn(),y(),M()))})()}(kn)),kn.exports}function Bn(){return Hn||(Hn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c,u)=>{let f=function(f,l,d,h){var p=f.version||0;c((function(){})).nThen((function(){var n,t,r,o,a;p<2&&(n="cryptpad.userlist-drawer",t="cryptpad.hide_poll_text",r="cryptpad.indentUnit",o="cryptpad.indentWithTabs",a=f.settings=f.settings||{},void 0!==f[r]&&(a.codemirror=a.codemirror||{},a.codemirror.indentUnit=f[r],delete f[r]),void 0!==f[o]&&(a.codemirror=a.codemirror||{},a.codemirror.indentWithTabs=f[o],delete f[o]),void 0!==f[n]&&(a.toolbar=a.toolbar||{},a.toolbar["userlist-drawer"]=f[n],delete f[n]),void 0!==f[t]&&(a.poll=a.poll||{},a.poll["hide-text"]=f[t],delete f[t]),e.send("Migrate-2",!0),f.version=p=2)})).nThen((function(){p<3&&(!function(){if(localStorage.CRYPTPAD_LANG){var e=localStorage.CRYPTPAD_LANG;f.settings.language=e}}(),e.send("Migrate-3",!0),f.version=p=3)})).nThen((function(){var n;p<4&&(n=f.settings=f.settings||{},void 0!==f.allowUserFeedback&&(n.general=n.general||{},n.general.allowUserFeedback=f.allowUserFeedback,delete f.allowUserFeedback),e.send("Migrate-4",!0),f.version=p=4)})).nThen((function(){p<5&&(!function(){var e=f.drive&&f.drive.filesData;if(e)for(var n in e)"number"!=typeof e[n].ctime&&(e[n].ctime=+new Date(e[n].ctime)),"number"!=typeof e[n].atime&&(e[n].atime=+new Date(e[n].atime))}(),e.send("Migrate-5",!0),f.version=p=5)})).nThen((function(t){var r,o,a,i,s;p<6&&(a=f.drive.filesData||{},i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if(r=a[e],o=n.parsePadUrl(r.href),r.href&&!r.channel){var i=n.getSecrets(o.type,o.hash,r.password);r.channel=i.channel,d(6,Math.round(100*t/s)),console.log("Adding missing channel in filesData ",r.channel)}})))}))})),i.nThen(t((function(){e.send("Migrate-6",!0),f.version=p=6}))))})).nThen((function(t){var r,o,a,i,s;p<7&&(a=f.drive.filesData,i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if((r=a[e]).href)if(-1!==r.href.indexOf("#"))if("pad"===(o=n.parsePadUrl(r.href)).hashData.type){if("view"===o.hashData.mode)r.roHref=r.href,delete r.href,console.log("Move href to roHref in filesData ",r.roHref);else{var i=n.getSecrets(o.type,o.hash,r.password),c=n.getViewHashFromKeys(i);c&&(r.roHref="/"+o.type+"/#"+c,console.log("Adding missing roHref in filesData ",r.href))}d(6,Math.round(100*t/s))}else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s))})))}))})),i.nThen(t((function(){e.send("Migrate-7",!0),f.version=p=7}))))})).nThen((function(){p<8&&(f.FS_hashes=t.deduplicateString(f.FS_hashes||[]),e.send("Migrate-8",!0),f.version=p=8)})).nThen((function(){p<9&&(!function(){var e=h.network,n={},t={store:h},o=r.createData(f),i=function(e){var t=n[e];if(t){try{t.wc.leave()}catch(e){}delete n[e]}};e.on("message",(function(r,s){try{!function(r,s){if(s===e.historyKeeper){var c=JSON.parse(r);if(!c.validateKey&&!c.owners||!c.channel){if(c.channel&&n[c.channel]){if(c.error&&"EINVAL"===c.error){var u=["GET_HISTORY",c.channel,{}];return void e.sendto(e.historyKeeper,JSON.stringify(u)).then((function(){}),(function(){}))}if(c.state&&1===c.state){o.channel=c.channel;var f=["UPDATE",o.curvePublic,+new Date,o],l=n[c.channel].encrypt(JSON.stringify(f));return n[c.channel].wc.bcast(l).then((function(){}),(function(e){console.error("Can't migrate this friend",n[c.channel].friend,e)})),void i(c.channel)}}else if(c.channel)return;var d=c[3];if(d&&n[d]){var h=n[d],p=h.decrypt(c[4]),v=JSON.parse(p);if("UPDATE"===v[0]){if(v[1]===o.curvePublic)return;var y=v[3];if(!y.notifications)return;h.friend.notifications=y.notifications,o.channel=d,a.sendTo(t,"UPDATE_DATA",o,{channel:y.notifications,curvePublic:y.curvePublic},(function(e){e&&e.error?console.error(e):console.log("friend migrated",h.friend)})),i(d)}}}}}(r,s)}catch(e){console.error(e)}}));var s=f.friends||{};Object.keys(s).forEach((function(t){if(44===t.length){var r=s[t];r.notifications||e.join(r.channel).then((function(t){var o=u.Curve.deriveKeys(r.curvePublic,f.curvePrivate),a=u.Curve.createEncryptor(o);n[r.channel]={wc:t,friend:r,decrypt:a.decrypt,encrypt:a.encrypt};var i={lastKnownHash:r.lastKnownHash},s=["GET_HISTORY",r.channel,i];e.sendto(e.historyKeeper,JSON.stringify(s)).then((function(){}),(function(e){console.error("Can't migrate this friend",r,e)}))}),(function(e){console.error("Can't migrate this friend",r,e)}))}}))}(),e.send("Migrate-9",!0),f.version=p=9)})).nThen((function(t){p<10&&function(){var s=h.proxy.todo;if(s){var u,l=t((function(){e.send("Migrate-10",!0),f.version=p=10})),d={network:h.network,initialState:"{}",metadata:{owners:h.proxy.edPublic?[h.proxy.edPublic]:[]}};c((function(e){o.get(s,e((function(n,t){if(n||!t)return e.abort(),void l();try{u=JSON.parse(t)}catch(e){}})),d)})).nThen((function(e){if(!u||"object"!=typeof u)return e.abort(),void l();var t={content:{data:{1:{id:"1",color:"color6",item:[],title:i.kanban_todo},2:{id:"2",color:"color3",item:[],title:i.kanban_working},3:{id:"3",color:"color5",item:[],title:i.kanban_done}},items:{},list:[1,2,3]},metadata:{title:i.type.todo,defaultTitle:i.type.todo,type:"kanban"}},c=4,p=!1;if((u.order||[]).forEach((function(e){var n=u.data[e];if(n&&n.task){p=!0;var r=n.state?"3":"1";t.content.data[r].item.push(c),t.content.items[c]={id:c,title:n.task},c++}})),!p)return e.abort(),void l();var v=n.createRandomHash("kanban"),y=n.getSecrets("kanban",v),m=n.getSecrets("todo",s);o.put(v,JSON.stringify(t),e((function(t){if(t)return e.abort(),void l();h.rpc&&(h.rpc.pin([y.channel],(function(){})),h.rpc.unpin([m.channel],(function(){})));var o=n.hashToHref(v,"kanban");h.manager.addPad(["root"],{title:i.type.todo,owners:d.metadata.owners,channel:y.channel,href:o,roHref:n.hashToHref(n.getViewHashFromKeys(y),"kanban"),atime:+new Date,ctime:+new Date},e((function(e){if(e)console.error(e);else{delete h.proxy.todo;var n=r.createData(f),t={store:h};a.sendTo(t,"MOVE_TODO",{user:n,href:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)}))}})))})),d)})).nThen((function(){l()}))}}()})).nThen((function(n){if(!(p>=11)){var o=function(){e.send("Migrate-11",!0),f.version=p=11};if(void 0===t.find(f,["settings","security","unsafeLinks"])){var i={store:h},s=r.createData(f);s.curvePublic?a.sendTo(i,"SAFE_LINKS_DEFAULT",{user:s},{channel:s.notifications,curvePublic:s.curvePublic},n((function(e){e&&e.error?console.error(e):o()}))):o()}else o()}})).nThen((function(){s.whenRealtimeSyncs(h.realtime,t.mkAsync(t.bake(l)))}))};return f.setCustomize=e=>{i=e.Messages},f};e.exports&&(e.exports=n(Ae(),te(),Z(),wn(),Rn(),Un(),void 0,je(),qe(),M()))})()}(On)),On.exports}var Vn,Yn={exports:{}};function Gn(){return Vn||(Vn=1,function(e){var n,t,r;e.exports&&(e.exports=(n=Rn(),t=Ue(),te(),r=je(),{anonDriveIntoUser:function(e,o,a){o&&e.loggedIn||"function"!=typeof a?n.get(o,(function(n,i){var s;if(n)console.error("Cannot migrate recent pads",n);else if(i){try{s=JSON.parse(i)}catch(e){return"function"==typeof a&&a(),void console.error("Cannot parsed recent pads",e)}if(s){var c=e.proxy,u=t.init(s.drive,{readOnly:!1,loggedIn:!0,outer:!0}),f=function(){u.fixFiles(!0);var n=e.manager;u.getFiles([u.FILES_DATA]).forEach((function(e){var t=u.getFileData(e),r=t.channel,o=n.findChannel(r);if(0===o.length)t&&n.addPad(null,t,(function(e){e&&console.error("Cannot import file:",t,e)}));else{if(!t.href)return;o.forEach((function(e){e.data&&!e.data.href&&e.userObject.setHref(r,null,t.href)}))}})),c.FS_hashes&&Array.isArray(c.FS_hashes)||(c.FS_hashes=[]),-1===c.FS_hashes.indexOf(o)&&c.FS_hashes.push(o),"function"==typeof a&&r.whenRealtimeSyncs(e.realtime,a)};u&&"function"==typeof u.migrate?u.migrate(f):(console.log("oldFo.migrate is not a function"),f())}else"function"==typeof a&&a()}else"function"==typeof a&&a()})):a()}}))}(Yn)),Yn.exports}var Jn=o(be);const qn=ie.mkEvent(!0),Wn=ie.mkEvent(!0),zn=ie.mkEvent(),Qn=ie.mkEvent(),Zn={init:e=>{var n;const{broadcast:t,store:r,account:o}=e,a=r.drive=r.drive||{};let i=null===(n=r.proxy)||void 0===n?void 0:n.drive;if((null==i?void 0:i.hash)||ae.createRandomHash("drive"),!i.hash)return a.proxy=i,o.onAccountCacheReady((()=>{qn.fire()})),o.onAccountReady((()=>{Wn.fire()})),{channel:"",onDriveCacheReady:qn.reg,onDriveReady:Wn.reg,onDisconnect:zn.reg,onReconnect:Qn.reg};throw new Error("NOT IMPLEMENTED")}};var Xn,$n=o(Object.freeze({__proto__:null,Drive:Zn})),et={exports:{}};function nt(){return Xn||(Xn=1,function(e){(()=>{const n=(e,n,t={},r={},o)=>{var a={setCustomize:e=>{t=e.Messages,r=e.AppConfig}},i=r.degradedLimit||8,s=function(e,n){n.degraded||n.clients.forEach((function(t){var r=e.clients[t];if(r){var o={id:r.id,cursor:r.cursor};n.sendMsg(JSON.stringify(o))}}))},c=function(e,n,t){var r=n.members;t.degraded=r.length-1>=i,e.emit("DEGRADED",{degraded:t.degraded},t.clients)},u=function(e,n,t,r){var a=n.channel,i=n.secret;i.keys.cryptKey&&(i.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=(e={},n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:n=>{e=n.ApiConfig}},d=s.Nacl,h=function(e,n,t,r){let o=Object.keys(e.clients).filter((t=>Boolean(e.clients[t].admin)===n));o.length&&e.emit(t,{channel:r},[o])},p=function(t,r,o,a){var i=n.mkAsync(a);if(r&&!t.adminRdyEvt)return void i("EFORBIDDEN");let s=e.httpUnsafeOrigin;n.fetchApi(s,"config",!0,(e=>{t.moderatorKeys=e.moderatorKeys,t.adminKeys=e.adminKeys;var a=e.supportMailboxKey;if(a){if(!r||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePublic"])===a)return r?t.adminRdyEvt.reg((()=>{i(null,{supportKey:a,myCurve:o.adminCurvePrivate||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePrivate"]),theirPublic:o.curvePublic,notifKey:o.curvePublic})})):void i(null,{supportKey:a,myCurve:t.store.proxy.curvePrivate,theirPublic:o.curvePublic||a,notifKey:a});i("EFORBIDDEN")}else i("E_NOT_INIT")}))},v=function(e,t,r,o){var a,c,u=n.once(n.mkAsync(o));i((n=>{p(e,r,t,n(((e,t)=>{if(e)return n.abort(),void u({error:e});a=t.theirPublic,c=t.myCurve})))})).nThen((()=>{var r,o=s.Curve.deriveKeys(a,c),i=s.Curve.createEncryptor(o),l={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:i,owners:[]},d=[];u=n.both((function(){r&&"function"==typeof r.stop&&r.stop()}),u),l.onMessage=function(e,n,t,r,o,a,i){var s=i&&i.time;try{e=JSON.parse(e)}catch(e){return void console.error(e)}e.time=s,a&&(e.author=a),d.push(e)},l.onError=u,l.onChannelError=u,l.onReady=function(){u(null,d)},r=f.start(l)}))},y=function(e,r,o,a){var c=n.find(e,["store","mailbox"]),u=n.find(e,["store","anon_rpc"]);if(c)if(u){var f,l,d,h=r.channel,v=r.title,y=r.ticket,m=+new Date;i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a({error:e});f=t.supportKey,l=t.theirPublic,d=t.myCurve})))})).nThen((e=>{var n=s.Curve.deriveKeys(l,d),t=s.Curve.createEncryptor(n),r=JSON.stringify(y),o=t.encrypt(r);u.send("WRITE_PRIVATE_MESSAGE",[h,o],e(((n,t)=>{if(n)return e.abort(),void a({error:n});m=t&&t[0]})))})).nThen((n=>{if(o){var t=e.adminDoc.proxy.tickets.active;if(t[h])return n.abort(),void a({error:"EEXISTS"});t[h]={title:y.title,restored:y.legacy,premium:!1,time:m,author:r.name,supportKey:f,lastAdmin:!0,authorKey:r.curvePublic,notifications:r.notifications}}})).nThen((n=>{o||(e.supportData[h]={time:+new Date,title:v,curvePublic:f},e.Store.onSync(null,n()))})).nThen((()=>{var i=o?r.notifications:t.getChannelIdFromKey(f);c.sendTo("NEW_TICKET",{title:v,channel:h,time:m,isAdmin:o,supportKey:f,premium:o?"":n.find(e,["store","account","plan"]),user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(n=>{console.error(n),n&&n.error&&delete e.supportData[h],a(n)})),c.sendTo("NOTIF_TICKET",{title:v,channel:h,time:m,isAdmin:o,isNewTicket:!0,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(()=>{}))}))}else a({error:"anonymous rpc session not ready"});else a({error:"E_NOT_READY"})},m=function(e,r,o,a){var c,u,f,l,d=n.find(e,["store","mailbox"]),h=n.find(e,["store","anon_rpc"]);d?h?r?.ticket?i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a(e);c=t.theirPublic,u=t.myCurve,f=t.notifKey})))})).nThen((e=>{var n=s.Curve.deriveKeys(c,u),t=s.Curve.createEncryptor(n),o=JSON.stringify(r.ticket),i=t.encrypt(o);h.send("WRITE_PRIVATE_MESSAGE",[r.channel,i],e(((n,t)=>{if(n)return e.abort(),void a(n);l=t&&t[0],a(void 0,l)})))})).nThen((()=>{var e=o?r.notifChannel:t.getChannelIdFromKey(f);e&&d.sendTo("NOTIF_TICKET",{isAdmin:o,title:r.ticket.title,isClose:r.ticket.close,channel:r.channel,time:l,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:e,curvePublic:f},(()=>{}))})):a("E_NO_DATA"):a("anonymous rpc session not ready"):a("E_NOT_READY")},g=function(e,r,o){var a=t.getSecrets("support",r),i={data:{},channel:a.channel,crypto:s.createEncryptor(a.keys),userName:"support",ChainPad:u,classic:!0,network:e.store.network,metadata:{validateKey:a.keys.validateKey||void 0}},f=e.adminDoc=c.create(i);f.proxy.on("ready",(function(){var r=f.proxy;if(r.tickets=r.tickets||{},r.tickets.active=r.tickets.active||{},r.tickets.closed=r.tickets.closed||{},r.tickets.pending=r.tickets.pending||{},e.adminRdyEvt.fire(),o(),!e.supportRpc)return;let a=function(e){if(!e.adminDoc||!e.supportRpc)return;let t=e.adminDoc.metadata&&e.adminDoc.metadata.channel,r=e.adminDoc.proxy.tickets,o=[t,...Object.keys(r.active),...Object.keys(r.pending),...Object.keys(r.closed)];return n.deduplicateString(o).sort()}(e),i=t.hashChannelList(a);e.supportRpc.getServerHash((function(n,t){n?console.warn(n):t!==i&&e.supportRpc.reset(a,(function(e){e&&console.warn(e)}))}))})),f.proxy.on("change",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")})),f.proxy.on("remove",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")}))},E=function(e,r,a){let s=a(),c=e.store.proxy,u=n.find(c,["mailboxes","supportteam","keys","curvePublic"]),f=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]);r||(e.adminRdyEvt=n.mkEvent(!0)),i((n=>{p(e,!1,{},n(((t,r)=>{if(setTimeout(s),t)n.abort();else if(r.theirPublic!==u){try{delete c.mailboxes.supportteam,e.store.mailbox.close("supportteam")}catch(e){}return delete e.adminRdyEvt,void n.abort()}})))})).nThen((t=>{!function(e,t){let r,a,i=n.mkAsync(t),s=e.store.proxy,c=n.find(s,["mailboxes","supportteam","keys","curvePrivate"]);if(c){try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(c));r=n.encodeBase64(e.secretKey),a=n.encodeBase64(e.publicKey)}catch(e){return void i(e)}o.create(e.store.network,{edPublic:a,edPrivate:r},((n,t)=>{n?i(n):(console.log("Support RPC ready, public key is ",a),e.supportRpc=t,i())}))}else i("EFORBIDDEN")}(e,t((e=>{e&&console.error("Support RPC not ready",e)})))})).nThen((n=>{let r=f.slice(0,24),o=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:r}});g(e,o,n())})).nThen((()=>{console.log("Support admin loaded")}))};var b=function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);i?e.store.mailbox.open("supportadmin",i,(function(t){e.store.mailbox.close("supportadmin",(function(){}));let r=n.clone(t||{}),a=[];Object.keys(r).forEach((n=>{let t=r[n];if("CLOSE"===t.type)return void(a.includes(t.content.id)||a.push(t.content.id));let o=t.author,i=t.content&&t.content.title;((e,n,t)=>{let r=e.adminDoc.proxy;return["active","pending","closed"].some((e=>{let o=r.tickets[e];return Object.keys(o).some((e=>{let r=o[e];return r.authorKey===n&&r.title===t&&r.restored}))}))})(e,o,i)&&(a.includes(t.content.id)||a.push(t.content.id))})),Object.keys(r).forEach((e=>{let n=r[e];n.content&&a.includes(n.content.id)&&delete r[e]})),o(r)}),!0,{dump:!0}):o({error:"ENOENT"})};let O=(e,t,r,o)=>{let a;try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(r));a=n.encodeBase64(e.publicKey)}catch(e){return void o(e)}e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",[t,a]]},o)},A=(e,n,t,r)=>{e.Store.adminRpc(null,{cmd:"GET_MODERATORS",data:{}},r)};return l.init=function(o,s,c){var u={};if(o.store&&o.store.modules&&o.store.modules.support)return o.store.modules.support;var f=o.store,l=f.proxy.support=f.proxy.support||{},g={moderatorKeys:e.moderatorKeys,adminKeys:e.adminKeys,supportData:l,store:o.store,Store:o.Store,emit:c,clients:{}};return n.find(f,["proxy","mailboxes","supportteam"])&&E(g,!1,s),u.ctx=g,u.removeClient=function(e){delete g.clients[e]},u.leavePad=function(){},u.addAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let o;i((r=>{p(e,!0,n,r(((e,n)=>{if(e)return r.abort(),void t(!0);o=n.supportKey})))})).nThen((()=>{var a=Math.floor(2e3*Math.random());setTimeout((()=>{var a=e.adminDoc.proxy;a.tickets.active[n.channel]||a.tickets.closed[n.channel]||a.tickets.pending[n.channel]?t(!0):(a.tickets.active[n.channel]={title:n.title,premium:n.premium,time:n.time,author:n.user&&n.user.displayName,supportKey:n.supportKey||o,authorKey:n.user&&n.user.curvePublic},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){t(!0)})),h(e,!0,"NEW_TICKET",n.channel),e.supportRpc&&e.supportRpc.pin([n.channel],(()=>{})))}),a)}))})):t(!0)}(g,e,n)},u.updateAdminTicket=function(e){!function(e,n){e.adminRdyEvt&&e.adminRdyEvt.reg((()=>{var t=Math.floor(2e3*Math.random());setTimeout((()=>{var t=e.adminDoc.proxy;let r=t.tickets.active[n.channel]||t.tickets.pending[n.channel];r&&(n.time<=r.time||(n.isClose&&(t.tickets.closed[n.channel]=r,delete t.tickets.active[n.channel],delete t.tickets.pending[n.channel]),r.time=n.time,r.lastAdmin=!1,h(e,!0,"UPDATE_TICKET",n.channel)))}),t)}))}(g,e)},u.updateAdminKey=function(e,r){((e,r,o)=>{let a=r.supportKey,s=t.getBoxPublicFromSecret(a),c=e.store.proxy;const u=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]),f=n.find(c,["mailboxes","supportteam","keys","curvePublic"]);p(e,!1,{},((t,r)=>{if(t)return void o(!0);if(s!==r.theirPublic)return void o(!0);if(u===a||f===s)return void o(!0);let c=n.find(e,["store","mailbox"]);try{e.adminDoc&&e.adminDoc.stop(),c&&c.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)}catch(e){console.error(e)}e.Store.addAdminMailbox(null,{version:2,priv:a},(n=>{n&&n.error?o(!0):i((n=>{E(e,!0,n),e.adminRdyEvt.reg((()=>{h(e,!0,"UPDATE_RIGHTS"),o(!1)}))}))}))}))})(g,e,r)},u.checkAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy,o=r.tickets.active[n.channel]||r.tickets.pending[n.channel];t(o)})):t(!0)}(g,e,n)},u.addUserTicket=function(e,n){!function(e,n,t){if(!e.supportData)return void t(!0);let r=n.channel;e.supportData[r]={time:n.time,title:n.title,curvePublic:n.supportKey},e.Store.onSync(null,(function(){t(!0)}))}(g,e,n)},u.updateUserTicket=function(e){!function(e,n){if(h(e,!1,"UPDATE_TICKET",n.channel),n.isClose){let t=e.supportData[n.channel];if(!t)return;t.closed=!0}}(g,e)},u.execCommand=function(e,o,s){var c=o.cmd,u=o.data;"MAKE_TICKET"!==c?"GET_MY_TICKETS"!==c?"REPLY_TICKET"!==c?"CLOSE_TICKET"!==c?"DELETE_TICKET"!==c?"MAKE_TICKET_ADMIN"!==c?"LIST_TICKETS_ADMIN"!==c?"LOAD_TICKET_ADMIN"!==c?"REPLY_TICKET_ADMIN"!==c?"CLOSE_TICKET_ADMIN"!==c?"MOVE_TICKET_ADMIN"!==c?"GET_RECORDED"!==c?"SET_RECORDED"!==c?"USE_RECORDED"!==c?"SEARCH_ADMIN"!==c?"FILTER_TAGS_ADMIN"!==c?"SET_TAGS_ADMIN"!==c?"GET_LEGACY"!==c?"DUMP_LEGACY"!==c?"CLEAR_LEGACY"!==c?"RESTORE_LEGACY"!==c?"GET_PRIVATE_KEY"!==c?"DISABLE_SUPPORT"!==c?"ROTATE_KEYS"!==c?"ADD_MODERATOR"!==c?s({error:"NOT_SUPPORTED"}):function(e,t,r,o){let a=e.store.proxy;var i=n.find(e,["store","mailbox"]);let s=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),c=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]),u=n.find(a,["mailboxes","supportteam","lastKnownHash"]),f=a.edPublic;p(e,!1,{},((n,r)=>{n?o({error:n}):r.theirPublic===s&&e.moderatorKeys.includes(f)?i.sendTo("ADD_MODERATOR",{supportKey:c,lastKnownHash:u},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{o()})):o({error:"EFORBIDDEN"})}))}(g,u,0,s):function(e,r,o,s){let c,u=n.once(n.mkAsync(s)),f=e.store.proxy,l=f.edPublic;const h=d.box.keyPair(),v=n.encodeBase64(h.publicKey),y=n.encodeBase64(h.secretKey),m=n.find(f,["mailboxes","supportteam","keys","curvePrivate"]),g=n.find(f,["mailboxes","supportteam","keys","curvePublic"]);if(!y||!v)return void u({error:"INVALID_KEY"});let b;i((n=>{p(e,!1,{},n(((e,t)=>{if("E_NOT_INIT"!==e)return e?(u({error:e}),void n.abort()):void(c=t.theirPublic)})))})).nThen((n=>{if(!e.adminKeys.includes(l))return n.abort(),void u({error:"EFORBIDDEN"})})).nThen((n=>{if(c)return e.moderatorKeys.includes(l)?g!==c?(n.abort(),void u({error:"EFORBIDDEN"})):void 0:(n.abort(),void u({error:"EINVAL"}))})).nThen((n=>{c&&e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;b=e.adminDoc.metadata&&e.adminDoc.metadata.channel;let o=y.slice(0,24),i=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:o}}),s={network:e.store.network,initialState:"{}"};(r.oldKeys=r.oldKeys||{})[g]={curvePrivate:m,rotatedOn:+new Date,rotatedBy:l},a.put(i,JSON.stringify(r),n((e=>{if(e)return n.abort(),void u({error:e})})),s)}))})).nThen((n=>{O(e,v,y,n((e=>{if(e&&e.error)return n.abort(),void u(e)})))})).nThen((()=>{if(!c)return;e.adminDoc&&e.adminDoc.stop();let t=n.find(e,["store","mailbox"]);t&&t.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)})).nThen((n=>{e.Store.addAdminMailbox(null,{version:2,priv:y},n((t=>{if(t&&t.error)return n.abort(),c?O(e,g,m,(()=>{u(t)})):void u(t)})))})).nThen((t=>{if(!c)return;let r=n.find(e,["store","mailbox"]);A(e,0,0,t((e=>{if(e&&e.error)return void u({success:!0,noNotify:!0});let n=e&&e[0];Object.keys(n||{}).forEach((e=>{let t=n[e];r.sendTo("MODERATOR_NEW_KEY",{supportKey:y},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{}))}))})))})).nThen((n=>{E(e,!0,n)})).nThen((n=>{b&&e.Store.adminRpc(null,{cmd:"ARCHIVE_DOCUMENT",data:{id:b,reason:"Deprecated support pad"}},n())})).nThen((()=>{u({success:!0})}))}(g,0,0,s):function(e,t,r,o){let a,s=n.once(n.mkAsync(o)),c=e.store.proxy.edPublic;i((n=>{p(e,!1,{},n((e=>{if(e)return s({error:e}),void n.abort()})))})).nThen((n=>{if(!e.adminKeys.includes(c))return n.abort(),void s({error:"EFORBIDDEN"})})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ARCHIVE_SUPPORT",data:{}},n((e=>{if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",["",""]]},n((function(e){if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{A(e,0,0,n((e=>{if(!e||e.error)return n.abort(),void s();a=e[0]||{}})))})).nThen((()=>{let n=i;Object.keys(a).forEach((t=>{n=n((n=>{e.Store.adminRpc(null,{cmd:"REMOVE_MODERATOR",data:t},n((e=>{e&&e.error&&console.error("Error removing moderator data",t,e.error)})))})).nThen})),n((()=>{s()}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),s=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]);p(e,!1,{},((e,n)=>{e?o({error:e}):(i&&n.theirPublic!==i&&(s=void 0),o({curvePrivate:s,curvePublic:n.theirPublic}))}))}(g,0,0,s):function(e,r,o,a){let i=e.store.proxy,s=n.find(i,["mailboxes","supportadmin"]);if(!s)return void a({error:"ENOENT"});if(!e.adminRdyEvt)return void a({error:"EFORBIDDEN"});let c=r.messages,u=r.hashes,f=c[0],l=c[c.length-1];f?e.adminRdyEvt.reg((()=>{let r={name:n.find(f,["sender","name"]),notifications:n.find(f,["sender","notifications"]),curvePublic:n.find(f,["sender","curvePublic"]),channel:t.createChannelId(),title:f.title,time:l.time,ticket:{legacy:!0,title:f.title,sender:f.sender,messages:c}};y(e,r,!0,(n=>{n&&n.error?a(n):(u.forEach((e=>{s.viewed.push(e)})),e.Store.onSync(null,(function(){a({done:!0})})))}))})):a({error:"EINVAL"})}(g,u,0,s):function(e,n,t,r){let o=e.store.proxy;e.store.mailbox.close("supportadmin",(function(){delete o.mailboxes.supportadmin,e.Store.onSync(null,(function(){r({done:!0})}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);if(!i)return void o({error:"ENOENT"});let s=n.clone(i);s.lastKnownHash=void 0,s.viewed=[],e.store.mailbox.open("supportadmin",s,(function(n){e.store.mailbox.close("supportadmin",(function(){})),o(n)}),!0,{dump:!0})}(g,0,0,s):b(g,0,0,s):((e,n,t,o)=>{e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,a=n.channel;(t.active[a]||t.pending[a]||t.closed[a]).tags=n.tags||[],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){let e=[];["active","pending","closed"].forEach((n=>{let r=t[n];Object.keys(r).forEach((n=>{(r[n].tags||[]).forEach((n=>{e.includes(n)||e.push(n)}))}))})),o({done:!0,allTags:e})}))})):o({error:"EFORBIDDEN"})})(g,u,0,s):((e,n,t,r)=>{if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.tags||[];e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy.tickets;if(!o.length)return void r({all:!0});let t=[];["active","pending","closed"].forEach((e=>{let r=n[e];Object.keys(r).forEach((e=>{(r[e].tags||[]).some((e=>o.includes(e)))||t.push(e)}))})),r({tickets:t})}))})(g,u,0,s):((e,t,r,o)=>{if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=t.tags||[],i=(t.text||"").toLowerCase();e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,r={},s=(e,t,o)=>{let a=n.clone(t);a.category=o,r[e]=a};["active","pending","closed"].some((e=>{let o=t[e];return Object.keys(o).some((t=>{let c=o[t];if(a.length&&!(c.tags||[]).some((e=>a.includes(e))))return;let u=n.hexToBase64(t).slice(0,10);if(i===u)return r={},s(t,c,e),!0;(!i||c.title.toLowerCase().includes(i))&&s(t,c,e)}))})),o({tickets:r})}))})(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.id;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=(n.recorded=n.recorded||{})[o];t&&(t.count=(t.count||0)+1),r()}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.id,i=n.content,s=Boolean(n.remove);e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.recorded=n.recorded||{};s?delete t[a]:t[a]={content:i,count:0},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({done:!0})}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy,r=t.recorded=t.recorded||{};o({messages:n.clone(r)})})):o({error:"EFORBIDDEN"})}(g,0,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.channel,i=n.from,s=n.to;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.tickets[i],c=n.tickets[s];if(!i||!s)return void o({error:"EINVAL"});let u=t[a];u&&!c[a]?(c[a]=u,delete t[a],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({moved:!0})}))):o({error:"CANT_MOVE"})}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[a]&&(n.adminCurvePrivate=t.oldKeys[a].curvePrivate),m(e,n,!0,(t=>{if(t)o({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=+new Date,i.lastAdmin=!0,a.tickets.closed[n.channel]=i,delete a.tickets.active[n.channel],delete a.tickets.pending[n.channel],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({closed:!0})}))}}))}))}(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[o]&&(n.adminCurvePrivate=t.oldKeys[o].curvePrivate),m(e,n,!0,((t,o)=>{if(t)r({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=o,i.lastAdmin=!0,r({sent:!0})}}))}))}(g,u,0,s):function(e,t,r,o){let a=t.supportKey;e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;r.oldKeys&&r.oldKeys[a]&&(t.adminCurvePrivate=r.oldKeys[a].curvePrivate),v(e,t,!0,(function(r,a){if(r)return void o({error:r});var i=e.adminDoc.proxy;if(!Array.isArray(a)||!a.length)return void o(a);a.sort(((e,n)=>e.time-n.time));let s=a[a.length-1],c=a.some((e=>{let r=n.find(e,["sender","curvePublic"]);if(t.curvePublic===r)return n.find(e,["sender","quota","plan"])}));var u=i.tickets.active[t.channel];u&&(s.legacy&&(s=Array.isArray(s.messages)&&s.messages[s.messages.length-1]),u.time=s.time,u.premium=c,s.sender&&(u.lastAdmin=!s.sender.blockLocation),s.close&&(i.tickets.closed[t.channel]=u,delete i.tickets.active[t.channel],h(e,!0,"UPDATE_TICKET",t.channel))),o(a)}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?(e.clients[r]||(e.clients[r]={admin:!0}),e.adminRdyEvt.reg((()=>{var r=e.adminDoc.proxy;return"pending"===t.type?o(n.clone(r.tickets.pending)):"closed"===t.type?o(n.clone(r.tickets.closed)):void o(n.clone(r.tickets.active))}))):o({error:"EFORBIDDEN"})}(g,u,e,s):function(e,n,t,r){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{y(e,n,!0,r)})):r({error:"EFORBIDDEN"})}(g,u,0,s):function(e,n,t,r){let o=e.supportData,a=n.channel;o[a]&&o[a].closed?(delete o[a],r({deleted:!0})):r({error:"ENOTCLOSED"})}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{closed:!0})}))}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{sent:!0})}))}(g,u,0,s):function(e,t,r,o){var a=[],s=i;e.clients[r]||(e.clients[r]={admin:!1}),Object.keys(e.supportData).forEach((function(t){s=s((r=>{var o=n.clone(e.supportData[t]);v(e,{channel:t,curvePublic:o.curvePublic},!1,r(((n,r)=>{if(n){if("EDELETED"===n.type)return void delete e.supportData[t];o.error=n}else o.messages=r,r.length&&r[r.length-1].close&&(e.supportData[t].closed=!0,o.closed=!0);o.id=t,a.push(o)})))})).nThen})),s((()=>{a.sort(((e,n)=>e.closed&&n.closed?e.time-n.time:e.closed?1:n.closed?-1:e.time-n.time)),o({tickets:a})}))}(g,0,e,s):function(e,n,t,r){y(e,n,!1,r)}(g,u,0,s)},u},l};e.exports&&(e.exports=n(void 0,Z(),te(),je(),Cn(),Rn(),qe(),M(),g(),w(),y()))})()}(rt)),rt.exports}var at,it={exports:{}};function st(){return at||(at=1,function(e){(()=>{const n=e=>{var n={},t=function(n,t,r,o){var a=t.channel,i=t.secret;i.keys.cryptKey&&(i.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=()=>{var e={},n=function(e,n,t){var r=e.clients[n];if(r){var o=e.channels[r.channel];o?(t(),o.history.forEach((function(t){e.emit("MESSAGE",{msg:t,validateKey:o.validateKey},[n])})),e.emit("HISTORY_SYNCED",{},[n])):t({error:"ENOCHAN"})}else t({error:"ENOENT"})};return e.init=function(e,t){var r={},o={store:e,emit:t,channels:{},clients:{}};return r.removeClient=function(e){!function(e,n){var t,r=function(e){return e!==n};for(var o in e.channels)(t=e.channels[o]).clients=t.clients.filter(r),0===t.clients.length&&(t.wc&&t.wc.leave(),delete e.channels[o]);if(e.clients[n]){var a=e.clients[n].channel,i=e.channels[a];i&&e.emit("LEAVE",{id:n},[i.clients[0]]),delete e.clients[n]}}(o,e)},r.leavePad=function(e){!function(e,n){Object.keys(e.channels).some((function(t){var r=e.channels[t];if(r.padChan===n)return r.wc&&r.wc.leave(),delete e.channels[t],!0}))}(o,e)},r.execCommand=function(e,t,r){var a=t.cmd,i=t.data;"SEND_MESSAGE"!==a?"UPDATE_HASH"!==a?"OPEN_CHANNEL"!==a?"GET_HISTORY"!==a?"REENCRYPT"!==a||function(e,n,t,r){var o=n.channel,a=e.store.network,i=function(e){var t=a.historyKeeper,o={metadata:n.metadata},i=["GET_HISTORY",e.id,o];a.sendto(t,JSON.stringify(i)),n.msgs.forEach((function(n){e.bcast(n)})),e.leave(),r()};e.store.anon_rpc.send("IS_NEW_CHANNEL",o,(function(e,n){var t;e?r({error:e}):(n&&n.length&&"object"==typeof n[0]?t=n[0].isNew:r({error:"INVALID_RESPONSE"}),t?a.join(o).then(i,(function(e){r({error:e})})):r({error:"EEXISTS"}))}))}(o,i,0,r):n(o,e,r):function(e,t,r,o){var a=t.channel,i=t.padChan,s=e.store.network,c=!0,u=e.clients[r];if(u)o();else{u=e.clients[r]={channel:a};var f=e.channels[a];if(f)return u.id||(u.id=f.wc.myID+"-"+r),n(e,r,(function(){e.emit("READY",f.clients,[r])})),f.clients.push(r),void o();var l=Math.floor(1e6*Math.random()),d=function(n){e.channels[a]=e.channels[a]||{history:[],validateKey:t.validateKey},(f=e.channels[a]).padChan=i,u.id||(u.id=n.myID+"-"+r),f.clients&&f.clients.forEach((function(t){e.clients[t]&&(e.clients[t].id=n.myID+"-"+t)})),n.on("join",(function(){})),n.on("leave",(function(){})),n.on("message",(function(n){f.history.push(n),e.emit("MESSAGE",{msg:n,validateKey:f.validateKey},f.clients)})),f.wc=n,f.sendMsg=function(e,t){t=t||function(){};var r=e.slice(0,64);n.bcast(e).then((function(){f.history.push(e),f.lastKnownHash=r,t()}),(function(e){t({error:e})}))},c&&(f.clients=[r],f.lastCpHash=t.lastCpHash,c=!1,o());var d=s.historyKeeper,h={txid:l,lastKnownHash:f.lastKnownHash||f.lastCpHash,metadata:{validateKey:t.validateKey,owners:t.owners,expire:t.expire}},p=["GET_HISTORY",n.id,h];d&&s.sendto(d,JSON.stringify(p)).then((function(){}),(function(e){console.error(e)}))};s.on("message",(function(n,t){if(e.channels[a]&&t===s.historyKeeper){var r;try{r=JSON.parse(n)}catch(e){}if(r&&!(r.txid&&r.txid!==l||r.channel&&r.channel!==a))if(r.validateKey&&r.channel)f.validateKey||(f.validateKey=r.validateKey);else if(r.state&&1===r.state&&r.channel)e.emit("READY",f.clients,f.clients);else if(!(r.error&&r.channel||Array.isArray(r)&&r[0]&&r[0]!==l||(n=r[4],r[3]!==a))){var o=n.slice(0,64);o!==f.lastKnownHash&&o!==f.lastCpHash&&(f.lastKnownHash=o,e.emit("MESSAGE",{msg:n},f.clients),f.history.push(n))}}})),s.join(a).then(d,(function(e){o({error:e})})),s.on("reconnect",(function(){e.channels[a]&&s.join(a).then(d,(function(e){console.error(e)}))}))}}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=n,s=-1;a.history.some((function(e,n){if(e.slice(0,64)===i)return s=n+1,!0})),-1!==s&&(a.history=a.history.slice(s)),r()}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=function(o){o&&o.error?r(o):(e.emit("MESSAGE",{msg:n.msg},a.clients.filter((function(e){return e!==t}))),r())};n.isCp?a.sendMsg(n.isCp,i):a.sendMsg(n.msg,i)}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r)},r},e};e.exports&&(e.exports=n())})()}(ut)),ut.exports}var lt,dt={exports:{}};function ht(){return lt||(lt=1,function(e){(()=>{const n=(e,n,t,r,o,a,i)=>{var s={};return s.init=function(s,c,u){var f={},l=s.store;if(l.loggedIn&&l.proxy.edPublic){var d={Store:s.Store,store:l,pinPads:s.pinPads,updateMetadata:s.updateMetadata,emit:u,onReadyHandlers:[],clients:[]};return d.profile=l.proxy.profile=l.proxy.profile||{},function(e,t){var r=e.profile;if(r.edit&&r.view)setTimeout(t);else{var o=n.createRandomHash("profile"),a=n.getSecrets("profile",o);e.pinPads([a.channel],(function(e){e.error?t(e.error):(r.edit=n.getEditHashFromKeys(a),r.view=n.getViewHashFromKeys(a),setTimeout(t))}))}}(d,c((function(r){r||function(r){var s=r.profile,c=n.getSecrets("profile",s.edit),u=a.createEncryptor(c.keys),f={data:{},network:r.store.network,channel:c.channel,crypto:u,owners:[r.store.proxy.edPublic],ChainPad:i,validateKey:c.keys.validateKey||void 0,userName:"profile",classic:!0},l=o.create(f);l.proxy.on("create",(function(){})).on("ready",(function(){l.proxy.name=r.store.proxy[t.displayNameKey]||"",r.listmap=l,l.proxy.curvePublic||(l.proxy.curvePublic=r.store.proxy.curvePublic),l.proxy.notifications||(l.proxy.notifications=e.find(r.store.proxy,["mailboxes","notifications","channel"])),l.proxy.edPublic||(l.proxy.edPublic=r.store.proxy.edPublic),r.onReadyHandlers.length&&(r.onReadyHandlers.forEach((function(e){try{e(l.proxy)}catch(e){console.error(e)}})),r.onReadyHandlers=[])})).on("change",[],(function(){r.emit("UPDATE",l.proxy,r.clients)}))}(d)}))),f.setName=function(e){!function(e,n){e.listmap.proxy.name=n,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.listmap&&e.emit("UPDATE",e.listmap.proxy,e.clients)}))}(d,e)},f.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1)}(d,e)},f.update=function(){d.listmap&&d.emit("UPDATE",d.listmap.proxy,d.clients)},f.execCommand=function(e,n,t){console.log(n);var o=n.cmd,a=n.data;"SUBSCRIBE"!==o?"SET"!==o||function(e,n,t,o){var a=n.key,i=n.value;a&&(e.listmap.proxy[a]=i,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.emit("UPDATE",e.listmap.proxy,e.clients.filter((function(e){return e!==t}))),"badge"===a&&e.Store.set(null,{key:["profile","badge"],value:i||void 0},(()=>{})),o(e.listmap.proxy)})))}(d,a,e,t):function(e,n,t,r){-1===e.clients.indexOf(t)&&e.clients.push(t),e.listmap?r(e.listmap.proxy):e.onReadyHandlers.push((function(e){r(e)}))}(d,0,e,t)},f}},s};e.exports&&(e.exports=n(Z(),te(),Y(),je(),g(),M(),w()))})()}(dt)),dt.exports}var pt,vt={exports:{}},yt={exports:{}};function mt(){return pt||(pt=1,function(e){e.exports&&(e.exports=function(e,n,t,r,o,a){var i={},s=function(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))},c=function(e){return e.slice(0,64)},u=function(n,t){var r=e.find(t,[n,"role"]);return-1!==["OWNER","ADMIN"].indexOf(r)},f=function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&!!function(e){return-1!==["OWNER","ADMIN","MEMBER","VIEWER"].indexOf(e)}(t)&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))},l=function(e){return"string"==typeof e&&44===e.length},d=i.commands={};d.ADD=function(e,n,t){if(!s(e))throw new Error("INVALID ARGS");if(!t.internal.initialized)throw new Error("UNITIALIZED");if(void 0===t.state.members)throw new Error("CANNOT_ADD_TO_UNITIALIZED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ALREADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="MEMBER"),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if("string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.RM=function(n,t,r){if(!Array.isArray(n))throw new Error("INVALID_ARGS");if(void 0===r.state.members)throw new Error("CANNOT_RM_FROM_UNITIALIZED_ROSTER");var o=r.state.members;n.forEach((function(n){if(!l(n))throw new Error("INVALID_CURVE_KEY");if(n!==t){var r=o[n].role;if(!function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))}(t,r,o))throw new Error("INSUFFICIENT_PERMISSIONS")}}));var a=!1;return n.forEach((function(e){o[e]&&(a=!0,delete o[e])})),a},d.DESCRIBE=function(n,t,o){if(!n||"object"!=typeof n||Array.isArray(n))throw new Error("INVALID_ARGUMENTS");if(void 0===o.state.members)throw new Error("NOT_READY");var a=o.state.members;Object.keys(n).forEach((function(r){if(!l(r))throw new Error("INVALID_ID");if(!a[r])throw new Error("NOT_PRESENT");if(!function(n,t,r){if(!r[t])return!1;if(n===t&&r[t])return!0;var o=e.find(r,[n,"role"]),a=e.find(r,[t,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&"OWNER"!==a)}(t,r,a))throw new Error("INSUFFICIENT_PERMISSIONS");var o=n[r];if(!s(o))throw new Error("INVALID_ARGUMENTS");var i=e.clone(a[r]);if("string"==typeof o.role&&!function(n,t,r,o){return!(n!==t||!o[t])&&("MEMBER"===e.find(o,[n,"role"])?"VIEWER"===r:void 0)}(t,r,o.role,a)&&!f(t,o.role,a))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof i.displayName&&"string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.displayName))throw new Error("INVALID_DISPLAYNAME");if("string"!=typeof i.notifications&&"string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.notifications))throw new Error("INVALID_NOTIFICATIONS")}));var i=!1;return Object.keys(n).forEach((function(t){var o=e.clone(a[t]),s=n[t];Object.keys(s).forEach((function(e){void 0===o[e]||null!==s[e]?o[e]=s[e]:delete o[e]})),r(o)!==r(a[t])&&(i=!0,a[t]=o)})),i},d.CHECKPOINT=function(e,n,t){if(!s(e))throw new Error("INVALID_CHECKPOINT_STATE");if(!t.internal.initialized){t.state=e;var o=t.state.metadata=t.state.metadata||{};return o.topic=o.topic||"",o.name=o.name||"",o.avatar=o.avatar||"",t.internal.initialized=!0,!0}if(r(e)!==r(t.state))throw new Error("CHECKPOINT_DOES_NOT_MATCH_PREVIOUS_STATE");if(!u(n,t.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");return t.state=e,!0};var h=["avatar","name","topic"];d.METADATA=function(n,t,r){if(!s(n))throw new Error("INVALID_ARGS");if(!function(n,t){var r=e.find(t,[n,"role"]);return Boolean(r&&-1!==["OWNER","ADMIN"].indexOf(r))}(t,r.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");Object.keys(n).forEach((function(e){if(null===n[e]){if(-1===h.indexOf(e))return;throw new Error("CANNOT_REMOVE_MANDATORY_METADATA")}if("string"!=typeof n[e])throw new Error("INVALID_ARGUMENTS")}));var o=!1;return Object.keys(n).forEach((function(e){void 0!==r.state.metadata[e]&&null===n[e]&&(o=!0,delete r.state.metadata[e]),n[e]!==r.state.metadata[e]&&(o=!0,r.state.metadata[e]=n[e])})),o},d.INVITE=function(e,n,t){if(!s(e))throw new Error("INVALID_ARGS");if(!t.internal.initialized)throw new Error("UNINITIALIED");if(void 0===t.state.members)throw new Error("CANNOT+INVITE_TO_UNINITIALIED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ARLEADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="VIEWER"),void 0===o.pending&&(o.pending=!0),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName||!o.displayName)throw new Error("DISPLAYNAME_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.ACCEPT=function(n,t,r){if(!r.internal.initialized)throw new Error("UNINITIALIED");if(void 0===r.state.members)throw new Error("CANNOT_ADD_TO_UNINITIALIED_ROSTER");var o=r.state.members;if(!s(o[t]))throw new Error("INSUFFICIENT_PERMISSIONS");if(!o[t].pending)throw new Error("ALREADY_PRESENT");if("string"!=typeof n)throw new Error("INVALID_ARGS");if(!l(n))throw new Error("INVALID_CURVE_KEY");var a=n;if(void 0!==o[a])throw new Error("MEMBER_ALREADY_PRESENT");var i=e.clone(o[t]);delete i.remaining,delete i.totalUses,delete i.inviteChannel,delete i.previewChannel,o[a]=i;var c=o[t].remaining||1;return-1===c||(c>1?o[t].remaining=c-1:delete o[t]),!0};var p=function(e,n,t){if(!Array.isArray(e)||"string"!=typeof n)throw new Error("INVALID ARGUMENTS");var r=e[0];if("function"!=typeof d[r])throw new Error("INVALID_COMMAND");return d[r](e[1],n,t)},v=function(n,t,r){return p(n,t,e.clone(r))};return i.create=function(n,i){if("function"!=typeof i)throw new Error("EXPECTED_CALLBACK");var f=e.once(e.mkAsync(i));if(n.network)if(n.channel&&"string"==typeof n.channel&&32===n.channel.length)if(n.keys&&"object"==typeof n.keys)if(n.store){var d=e.response((function(e,n){console.error("ROSTER_RESPONSE__"+e,n)})),h=n.store,y=n.keys,m=y.myCurvePublic,g=n.channel,E=n.lastKnownHash||-1;n.newTeam&&(E=void 0);var b={state:{members:{},metadata:{}},internal:{initialized:!1,sinceLastCheckpoint:0,lastCheckpointHash:E}},O={},A={change:e.mkEvent(),checkpoint:e.mkEvent()};O.on=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].reg(n),O},O.off=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].unreg(n),O},O.once=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");var t=function(){n.apply(null,Array.prototype.slice.call(arguments)),A[e].unreg(t)};return A[e].reg(t),O},O.getState=function(){return e.clone(b.state)},O.getLastCheckpointHash=function(){return b.internal.lastCheckpointHash||-1};var w=function(){b.internal.pendingCheckpointId&&(d.clear(b.internal.pendingCheckpointId),delete b.internal.pendingCheckpointId),clearTimeout(b.internal.checkpointTimeout),delete b.internal.checkpointTimeout};O.stop=function(){b.internal.cpNetflux&&"function"==typeof b.internal.cpNetflux.stop?(b.internal.cpNetflux.stop(),w()):console.log("FAILED TO LEAVE")};var D,_,T,S=!1,x=function(){if(n.onCacheReady){var e=b.state;if(Object.keys(e.members||{}).length)n.onCacheReady(O);else{try{b.internal.cpNetflux.resetCache()}catch(e){console.error(e)}n.onCacheReady({error:"CORRUPTED"})}}},N=function(){S=!0,f(void 0,O)},I=function(e){e&&"EUNKNOWN"===e.type||(S?console.error("CHANNEL_ERROR",e):f(e))},C=function(e){e.state||(S=!1)},R=function(){console.log("ROSTER CONNECTED")},P=function(){return Boolean(S&&m)},k=function(n,t,r,o,a,i){D!==a&&b.internal.sinceLastCheckpoint++,D=a;var s=e.tryParse(n);if(s){var f,l;try{f=p(s,i,b)}catch(e){l=e.message}var h=c(a);if(d.expected(h)){if(l)return void d.handle(h,[l]);try{f?d.handle(h,[void 0,O.getState()]):(d.handle(h,["NO_CHANGE"]),console.log(n))}catch(e){console.log("CAUGHT",e)}}if("CHECKPOINT"===s[0]&&f?(P()&&A.checkpoint.fire(a),b.internal.sinceLastCheckpoint=0,b.internal.lastCheckpointHash=a):f&&P()&&A.change.fire(),w(),P()&&function(e,n){if(!u(e,n.state.members))return!1;var t=n.internal.sinceLastCheckpoint;return!(!t||"number"!=typeof t||t<25)}(m,b)){var v=1e3*Math.floor(20*Math.random())+5e3;b.internal.checkpointTimeout=setTimeout((function(){b.internal.pendingCheckpointId=O.checkpoint((function(e){e&&console.error(e)}))}),v)}}else console.error("could not parse")},M=function(n,t){var r=e.tryParse(n);return"CHECKPOINT"===r[0]&&v(r,t,b)},F=function(e,n){if(P()){var t=h.anon_rpc;if(t){var o=!1;try{o=v(e,y.myCurvePublic,b)}catch(e){return void n(e.message)}if(o){var a=T.encrypt(r(e)),i=c(a);return d.expect(i,(function(e,t){e?n(e):n(void 0,t,i)}),3e4),t.send("WRITE_PRIVATE_MESSAGE",[g,a],(function(e){if(e)return d.handle(i,[e.message||e])})),i}n("NO_CHANGE")}else n("ANON_RPC_NOT_READY")}else n("NOT_READY")};O.init=function(n,t){var r=e.once(e.mkAsync(t));if(b.internal.initialized)r("ALREADY_INITIALIZED");else if(s(n)){var o=e.clone(n);o.role="OWNER";var a={};a[m]=o,F(["CHECKPOINT",{members:a}],r)}else r("INVALID_ARGUMENTS")},O.checkpoint=function(n){var t=e.once(e.mkAsync(n));F(["CHECKPOINT",e.clone(b.state)],t)},O.add=function(n,t){var r=e.once(e.mkAsync(t));if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["ADD",o],r)}else r("INVALID_ARGUMENTS")},O.remove=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(Array.isArray(n)){var a=e.clone(n),i=[],s=Object.keys(o.members);a.forEach((function(e){-1!==s.indexOf(e)&&i.push(e)})),F(["RM",i],r)}else r("INVALID_ARGUMENTS")},O.describe=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(s(n)){var a=e.clone(n);Object.keys(a).some((function(e){var n=a[e];if(s(n)||delete a[e],!s(o.members[e]))return!0;Object.keys(n).forEach((function(t){n[t]===o.members[e][t]&&delete n[t]}))}))?r("INVALID_ARGUMENTS"):F(["DESCRIBE",a],r)}else r("INVALID_ARGUMENTS")},O.metadata=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state.metadata;if(s(n)){var a=e.clone(n);Object.keys(a).forEach((function(e){a[e]===o[e]&&delete a[e]})),F(["METADATA",a],r)}else r("INVALID_ARGUMENTS")},O.invite=function(n,t){var r=e.once(e.mkAsync(t));if(!b.state)return r("UNINITIALIZED");if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["INVITE",o],r)}else r("INVALID_ARGUMENTS")},O.accept=function(n,t){var r=e.once(e.mkAsync(t));"string"==typeof n&&l(n)?F(["ACCEPT",n],r):r("INVALID_ARGUMENTS")},o((function(e){h.anon_rpc&&h.anon_rpc.send("GET_METADATA",g,(function(n,t){if(n)return e.abort(),void console.error(n);_=b.internal.metadata=t&&t[0]||void 0}))})).nThen((function(e){if(!n.keys.teamEdPublic&&_&&_.validateKey&&(n.keys.teamEdPublic=_.validateKey),!n.keys.teamEdPublic)return e.abort(),void f("NO_VALIDATE_KEY");try{T=a.Team.createEncryptor(n.keys)}catch(n){return e.abort(),void f(n)}})).nThen((function(){"string"==typeof E&&console.log("Synchronizing from checkpoint"),b.internal.cpNetflux=t.start({lastKnownHash:E,network:n.network,channel:n.channel,crypto:T,validateKey:n.keys.teamEdPublic,owners:n.owners,Cache:n.Cache,isCacheCheckpoint:M,onCacheReady:x,onChannelError:I,onReady:N,onConnect:R,onConnectionChange:C,onMessage:k,noChainPad:!0})}))}else f("EXPECTED_STORE");else f("EXPECTED_CRYPTO_KEYS");else f("EXPECTED_CHANNEL");else f("EXPECTED_NETWORK")},i}(Z(),te(),y(),En(),qe(),M()))}(yt)),yt.exports}var gt,Et,bt={exports:{}};function Ot(){return Et||(Et=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E)=>{var b={};E=E||"undefined"!=typeof window&&window.nacl;var O=e.mkEvent(!0),A=function(){},w=function(e,t,r,o){t&&(o||(r.on("change",["drive",a.SHARED_FOLDERS],(function(o,s,c){if(c.length>3&&"password"===c[3]){var u=c[2],f=r.drive[a.SHARED_FOLDERS][u],l=t.manager.user.userObject.getHref?t.manager.user.userObject.getHref(f):f.href,d=n.parsePadUrl(l),h=n.getSecrets(d.type,d.hash,o);return setTimeout((function(){i.updatePassword(e.Store,{oldChannel:h.channel,password:s,href:l},e.store.network,(function(){console.log("Shared folder password changed")}))})),!1}})),r.on("disconnect",(function(){t.offline=!0,t.sendEvent("NETWORK_DISCONNECT",t.id)})),r.on("reconnect",(function(){t.offline=!1,t.sendEvent("NETWORK_RECONNECT",t.id)}))),r.on("change",[],(function(n,r,i){if(o){if(i[0]===a.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var s=[r.channel];r.rtChannel&&s.push(r.rtChannel),r.lastVersion&&s.push(r.lastVersion),t.pin(s,(function(e){e&&e.error&&console.error(e.error)}))}if(i[0]===a.FILES_DATA&&"object"==typeof n&&n.channel&&!r){var c=[n.channel];t.manager.findChannel(n.channel).some((function(e){return e.fId!==o}))||(n.rtChannel&&c.push(n.rtChannel),n.lastVersion&&c.push(n.lastVersion),t.unpin(c,(function(e){e&&e.error&&console.error(e)})))}}n&&!r&&Array.isArray(i)&&(i[0]===a.FILES_DATA||"drive"===i[0]&&i[1]===a.FILES_DATA)&&setTimeout((function(){e.Store.checkDeletedPad(n&&n.channel)})),t.sendEvent("DRIVE_CHANGE",{id:o,old:n,new:r,path:i})})),r.on("remove",[],(function(e,n){t.sendEvent("DRIVE_REMOVE",{id:o,old:e,path:n})})))},D=function(e,n){var t=e.teams[n];if(t){try{t.listmap.stop()}catch(e){}try{t.roster.stop()}catch(e){}t.proxy={},t.stopped=!0,delete e.teams[n],delete e.cache[n],delete e.store.proxy.teams[n],e.emit("LEAVE_TEAM",n,t.clients),e.updateMetadata(),e.store.calendar&&e.store.calendar.closeTeam(n),e.store.mailbox&&e.store.mailbox.close("team-"+n,(function(){}))}},_=function(e,n,t,r){n.rpc?r():t.edPrivate&&t.edPublic?h.create(e.store.network,t,(function(e,t){e?r(e):(n.rpc=t,n&&n.onRpcReadyEvt&&n.onRpcReadyEvt.fire(),r())}),d):r("EFORBIDDEN")},T=function(t,r,a,s,c,u,f){var l=e.once(e.mkAsync(f));if(t.cache[r])l();else{var d=a.proxy,h={id:r,proxy:d,listmap:a,clients:[],realtime:a.realtime,handleSharedFolder:function(e,n){!function(e,n,t,r){var o=e.teams[n];o&&(r?(o.sharedFolders[t]=r,w(e,o,r.proxy,t)):delete o.sharedFolders[t])}(t,r,e,n)},sharedFolders:{},roster:s,onRpcReadyEvt:e.mkEvent(!0),offline:!0};t.cache[r]=h,u&&h.clients.push(u),s.on("change",(function(){var n=s.getState(),o=e.find(t,["store","proxy","curvePublic"]);if(n.members&&Object.keys(n.members).length)if(n.members[o]){var a=e.find(t,["store","proxy","teams",r]);a&&(a.metadata=n.metadata),t.updateMetadata(),t.emit("ROSTER_CHANGE",r,h.clients)}else D(t,r);else console.error(JSON.stringify(n))})),s.on("checkpoint",(function(n){e.find(t,["store","proxy","teams",r,"keys","roster"]).lastKnownHash=n})),h.sendEvent=function(e,n,r){t.emit(e,n,h.clients.filter((function(e){return e!==r})))},h.getChatData=function(){var e=c.chat||{},t=e.edit||e.view;if(!t)return{};var o=n.getSecrets("chat",t);return{teamId:r,channel:o.channel,secret:o,validateKey:e.validateKey}},h.pin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.pin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})},h.unpin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.unpin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})};var p=t.store.proxy.teams[h.id],v=p.hash||p.roHash,y=n.getSecrets("team",v,p.password),m=h.manager=o.create(d.drive,{onSync:function(e){t.Store.onSync(r,e)},edPublic:c.drive.edPublic,pin:h.pin,unpin:h.unpin,loadSharedFolder:function(e,n,r,o){i.load({isNew:o,network:t.store.network||t.store.networkPromise,store:h,isNewChannel:t.Store.isNewChannel,Store:t.Store},e,n,r)},settings:{drive:e.find(t.store,["proxy","settings","drive"])},removeOwnedChannel:function(e,n){var o;"object"==typeof e?(e.teamId=r,o=e):o={channel:e,teamId:r},t.Store.removeOwnedChannel("",o,n)},Store:t.Store,store:t.store},{teamId:h.id,outer:!0,edPublic:c.drive.edPublic,loggedIn:!0,log:function(e){h.sendEvent("DRIVE_LOG",e)},rt:h.realtime,editKey:y.keys.secondaryKey,readOnly:Boolean(!y.keys.secondaryKey)});h.secondaryKey=y&&y.keys.secondaryKey,h.userObject=m.user.userObject,g((function(e){t.teams[r]=h,w(t,h,d);var n=t.store.network||t.store.networkPromise;i.loadSharedFolders(t.Store,n,h,h.proxy.drive,h.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}),!0)})).nThen((function(){t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),l()}))}},S=function(t,r,o,a,s,c,u){var f,l=a.getState(),d=e.find(t,["store","proxy","teams",r]);d&&(d.metadata=l.metadata),delete t.nocache[r],t.store.proxy.teams[r]&&g((function(e){T(t,r,o,a,s,c,e()),f=t.teams[r]||t.cache[r],s.drive.edPrivate&&_(t,f,s.drive,e((function(){})))})).nThen((function(e){f.userObject.fixFiles(),i.checkMigration(f.secondaryKey,f.proxy?.drive,f.userObject,e()),i.loadSharedFolders(t.Store,t.store.network,f,f.proxy?.drive,f.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}))})).nThen((function(){if(f.rpc){var o=function(n,t){var r=n.teams[t];if(!r)return null;var o=r.manager.getChannelsList("pin"),a=n.store.proxy.teams[t];o.push(`${a.channel}#drive`);var i=e.find(a,["keys","chat","channel"]),s=e.find(a,["keys","roster","channel"]),c=e.find(a,["keys","mailbox","channel"]);if(i&&o.push(i),s&&o.push(s),c&&o.push(c),r.proxy.calendars){var u=Object.keys(r.proxy.calendars).map((function(e){return r.proxy.calendars[e].channel}));o=o.concat(u)}var f=r.roster.getState();return f.members&&Object.keys(f.members).forEach((function(e){var n=f.members[e];n.inviteChannel&&n.pending&&o.push(n.inviteChannel),n.previewChannel&&n.pending&&o.push(n.previewChannel)})),o.sort(),o}(t,r),a=n.hashChannelList(o);f.rpc.getServerHash((function(e,n){e?console.warn(e):n!==a&&f.rpc.reset(o,(function(e){e&&console.warn(e)}))}))}})).nThen((function(){f.offline=!1,t.onReadyHandlers[r]&&t.onReadyHandlers[r].forEach((function(e){("function"==typeof e.cb&&e.cb(),e.cId)&&(-1===f.clients.indexOf(e.cId)&&f.clients.push(e.cId))})),delete t.onReadyHandlers[r],t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),u()}))},x=function(e,n,t,r,o,a){var i=function(){(e.cache[n]||e.teams[n])&&D(e,n),delete e.store.proxy.teams[n],delete e.onReadyHandlers[n],o.abort(),a({error:"ENOENT"})};t&&e.store.anon_rpc.send("IS_NEW_CHANNEL",t,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()}))),r&&e.store.anon_rpc.send("IS_NEW_CHANNEL",r,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()})))},N=function(t,r,o,a,i){var f=e.once(e.mkAsync(a)),l=r.hash||r.roHash,h=n.getSecrets("team",l,r.password),y=v.createEncryptor(h.keys);r.roHash||(r.roHash=n.getViewHashFromKeys(h));var E,b,A=r.keys;if(!A.chat.validateKey&&A.chat.edit){var w=n.getSecrets("chat",A.chat.edit);A.chat.validateKey=w.keys.validateKey}var _={curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate},N=A.roster||{},I=N.edit?v.Team.deriveMemberKeys(N.edit,_):v.Team.deriveGuestKeys(N.view||"");g((function(e){if(i)return d.getChannelCache(h.channel,e((function(n,t){t&&t.c||(e.abort(),f({error:"NOCACHE"}))}))),void d.getChannelCache(I.channel,e((function(n,t){var r=t&&t.c,o=t&&t.k;o&&!I.teamEdPublic&&(I.teamEdPublic=o),r||(e.abort(),f({error:"NOCACHE"}))})));t.Store.onReadyEvt.reg((()=>{x(t,o,h.channel,I.channel,e,f)}))})).nThen((function(n){var a={lm:!1,roster:!1,check:function(){this.lm&&this.roster&&i&&(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress}),T(t,o,b,E,A,null,n(f)),this.check=function(){})}},u={data:{},readOnly:!Boolean(h.keys.signKey),network:t.store.network||t.store.networkPromise,channel:h.channel,crypto:y,ChainPad:m,Cache:d,metadata:{validateKey:h.keys.validateKey||void 0},userName:"team",classic:!0,onMetadataUpdate:function(){var e=t.teams[o];e&&t.emit("ROSTER_CHANGE",o,e.clients)}};(b=p.create(u)).proxy.on("cacheready",(function(){a.lm=!0,a.check()})),b.proxy.on("ready",n()),b.proxy.on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,o)})),s.create({network:t.store.network||t.store.networkPromise,channel:I.channel,keys:I,store:t.store,lastKnownHash:N.lastKnownHash,onCacheReady:function(e){if(i){if(e&&"CORRUPTED"===e.error)return console.error("Corrupted roster cache, cant load this team offline",r),b&&"function"==typeof b.stop&&b.stop(),n.abort(),void f({error:"CACHE_CORRUPTED_ROSTER"});E=e,a.roster=!0,a.check()}},Cache:d},n((function(r,o){if(r)return n.abort(),console.error(r),void f({error:"ROSTER_ERROR"});E=o,N.lastKnownHash=E.getLastCheckpointHash();var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);a.members[i]&&O.reg((function(){if(N.edit){var e={},n=c.createData(t.store.proxy,!1);n.pending=!1,e[t.store.proxy.curvePublic]=n,E.describe(e,(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}}))})))})).nThen((function(n){var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);if(!a.members||!Object.keys(a.members).length)return b.stop(),E.stop(),b.proxy={},f({error:"EINVAL"}),n.abort(),console.error(JSON.stringify(a)),void u.send("ROSTER_CORRUPTED");if(!a.members[i])return b.stop(),E.stop(),b.proxy={},delete t.store.proxy.teams[o],t.updateMetadata(),f({error:"EFORBIDDEN"}),void n.abort();var s=a.members[i],c=e.find(r,["keys","drive","edPrivate"]);if(r.hash&&c||-1===["ADMIN","MEMBER"].indexOf(s.role))r.hash&&c||"OWNER"!==s.role||u.send("TEAM_RIGHTS_OWNER");else{console.warn("Missing edit rights: demote to viewer");var l={};l[t.store.proxy.curvePublic]={role:"VIEWER"},E.describe(l,(function(e){u.send("TEAM_RIGHTS_FIXED"),delete r.hash,delete r.keys.drive.edPrivate,delete r.keys.chat.edit,e&&"NO_CHANGE"!==e&&console.error(e)}))}})).nThen((function(){i||(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress})),S(t,o,b,E,A,null,f)}))},I=function(n,t,r,o){var a=t.team;if(!((a.hash||a.roHash)&&a.channel&&a.password&&a.keys&&a.metadata))return void o({error:"EINVAL"});let i=n.store.proxy.teams;if(Object.values(i).some((e=>e.channel===a.channel)))o({error:"EEXISTS"});else{var s=e.createRandomInteger();n.store.proxy.teams[s]=a,n.onReadyHandlers[s]=[],N(n,a,s,(function(e){e&&e.error||console.debug("Team joined:"+s);var t=n.store.proxy.teams[s];n.store.mailbox.open("team-"+s,t.keys.mailbox,(function(){}),!0,{owners:t.keys.drive.edPublic}),n.updateMetadata(),o(e)}))}},C=function(n,t,r){var o=e.find(n,["store","proxy","teams",t]);if(!o)return{};var a=e.clone(o);return r||(delete a.hash,delete a.keys.drive.edPrivate,delete a.keys.chat.edit),delete a.owner,a},R=function(t,r,o){if(!r)return!0;var a=e.find(t,["store","proxy","teams",r]);if(!a)return!0;var s=t.teams[r];if(!s)return!0;var c=n.getSecrets("team",o||a.roHash,a.password);if(i.upgrade(a.channel,c),s.userObject&&s.userObject.setReadOnly(!c.keys.secondaryKey,c.keys.secondaryKey),c.keys.secondaryKey)try{t.store.modules.calendar.upgradeTeam(r)}catch(e){console.error(e)}!c.keys.secondaryKey&&s.rpc&&s.rpc.destroy();var u=e.find(s,["proxy","drive","sharedFolders"]);Object.keys(u||{}).forEach((function(t){var r=s.manager.getSharedFolderData(t),o=n.parsePadUrl(r.href||r.roHref),a=n.getSecrets(o.type,o.hash,r.password);i.upgrade(a.channel,a);var c=e.find(s,["manager","folders",t,"userObject"]);c&&c.setReadOnly(!a.keys.secondaryKey,a.keys.secondaryKey)})),t.updateMetadata(),t.emit("ROSTER_CHANGE_RIGHTS",r,s.clients)},P=function(t,r,o,a,i){if(r){var s=e.find(t,["store","proxy","teams",r]);if(s){var c=t.onReadyHandlers[r],u=t.teams[r];if(s.channel===a.channel&&s.password===a.password)if(o?(s.hash=a.hash,s.keys.drive.edPrivate=a.keys.drive.edPrivate,s.keys.chat.edit=a.keys.chat.edit):(delete s.hash,delete s.keys.drive.edPrivate,delete s.keys.chat.edit),u||!Array.isArray(c))if(u){if(o){_(t,u,s.keys.drive,(function(){u.manager.addPin(u.pin,u.unpin)}));var f=n.getSecrets("team",a.hash,s.password);u.secondaryKey=f&&f.keys.secondaryKey;var l=v.createEncryptor(f.keys);u.listmap.setReadOnly(!1,l)}else delete u.secondaryKey,u.rpc&&u.rpc.destroy&&u.rpc.destroy(),u.manager.removePin(),u.listmap.setReadOnly(!0);R(t,r,a.hash),i(!0)}else i(!1);else c.push({cb:function(){P(t,r,o,a,i)}});else i(!1)}else i(!1)}else i(!1)},k=function(n,t,r,o,a){t?e.find(n,["store","proxy","teams",t])&&n.teams[t]?n.store.mailbox.sendTo("TEAM_EDIT_RIGHTS",{state:o,teamData:C(n,t,o)},{channel:r.notifications,curvePublic:r.curvePublic},a):a({error:"ENOENT"}):a({error:"EINVAL"})},M=function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]),s=n.teams[a];if(i&&s)if(s.roster)if(t.curvePublic&&t.data){var c,u=s.roster.getState().members[t.curvePublic];g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(u.pendingOwner=Array.isArray(c.pending_owners)&&-1!==c.pending_owners.indexOf(u.edPublic),"OWNER"!==u.role||"OWNER"===t.data.role){"VIEWER"===u.role&&"VIEWER"!==t.data.role&&k(n,a,u,!0,(function(e){o(e)})),"VIEWER"!==u.role&&"VIEWER"===t.data.role&&k(n,a,u,!1,(function(e){o(e)}));var r={};r[t.curvePublic]=t.data,s.roster.describe(r,(function(e){e?o({error:e}):o()}))}else!function(n,t,r,o){var a=e.once(o);if(t){var i=e.find(n,["store","proxy","teams",t]);if(i){var s=n.teams[t];if(s){var c=r.pendingOwner;g((function(t){var o=c?"RM_PENDING_OWNERS":"RM_OWNERS",s=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a(n)},u=function(e){n.Store.setPadMetadata(null,{channel:e,command:o,value:[r.edPublic]},t(s))};u(i.channel),u(e.find(i,["keys","roster","channel"])),u(e.find(i,["keys","chat","channel"]))})).nThen((function(e){var n={};n[r.curvePublic]={role:"ADMIN",pendingOwner:!1},s.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(e){n.store.mailbox.sendTo("RM_OWNER",{teamChannel:i.channel,title:i.metadata.name,pending:c},{channel:r.notifications,curvePublic:r.curvePublic},e())})).nThen((function(){a()}))}else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(n,a,u,(function(e){e?(console.error(e),o({error:e})):o()}))}))}else o({error:"MISSING_DATA"});else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"EINVAL"})},F=function(e,n){Object.keys(e.onReadyHandlers).forEach((function(t){var r=-1;e.onReadyHandlers[t].some((function(e,t){if(e.cId===n)return r=t,!0})),-1!==r&&e.onReadyHandlers[t].splice(r,1)})),Object.keys(e.teams).forEach((function(t){var r=e.teams[t].clients,o=r.indexOf(n);-1!==o&&r.splice(o,1)}))},L=function(n,t,r,o){var a,i=t.seeds;try{a=f.derivePreviewKeys(i.preview)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})},H=function(n,t,r,o){var a,i;g((function(r){!function(n,t,r,o){var a,i=t.bytes64;try{a=f.deriveInviteKeys(i)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})}(n,t,0,r((function(e){if(e&&e.error)return r.abort(),void o(e);a=e})))})).nThen((function(t){var r=e.find(a,["teamData","channel"]),u=n.store.proxy.teams||{};if(Object.keys(u).some((function(e){return u[e].channel===r})))return t.abort(),void o({error:"ALREADY_MEMBER"});var f=e.find(a,["teamData","keys","roster"]),l=a.ephemeral;if(!f||!l)return t.abort(),void o({error:"INVALID_INVITE_CONTENT"});var h=v.Team.deriveMemberKeys(f.edit,l);s.create({network:n.store.network||n.store.networkPromise,channel:f.channel,keys:h,store:n.store,Cache:d},t((function(e,r){if(e)return t.abort(),console.error(e),void o({error:"ROSTER_ERROR"});var a=c.createData(n.store.proxy,!1),s=r.getState();i=s.members[l.curvePublic],r.accept(a.curvePublic,t((function(e){if(r.stop(),e)return t.abort(),console.error(e),void o({error:"ACCEPT_ERROR"})})))})))})).nThen((function(){var e={};i.remaining&&1!==i.remaining||_(n,e,a.ephemeral,(function(n){if(!n){var t=e.rpc;i.inviteChannel&&t.removeOwnedChannel(i.inviteChannel,(function(e){e&&console.error(e)})),i.previewChannel&&t.removeOwnedChannel(i.previewChannel,(function(e){e&&console.error(e)}))}})),I(n,{team:a.teamData},0,o)}))},j=function(n){if(n){if(n.keys&&n.keys.mailbox)return n.keys.mailbox;var t=e.find(n,["keys","roster","edit"]);if(t){var r=E.hash(e.decodeUTF8(t)),o=r.slice(0,32),a=e.uint8ArrayToHex(r.slice(32,48)),i=E.box.keyPair.fromSecretKey(o);return{channel:a,viewed:[],keys:{curvePrivate:e.encodeBase64(i.secretKey),curvePublic:e.encodeBase64(i.publicKey)}}}}};return b.init=function(t,r,o){var a={},i=t.store;if(i.loggedIn&&i.proxy.edPublic&&!i.modules?.team){var h={store:i,Store:t.Store,pinPads:t.pinPads,emit:o,onReadyHandlers:{},teams:{},cache:{},nocache:{},updateMetadata:t.updateMetadata,updateProgress:t.updateLoadingProgress,progress:0};i.proxy.teams||(i.proxy.teams={});var b=i.proxy.teams;h.numberOfTeams=Object.keys(b).length,h.store.proxy.on("change",["teams"],(function(e,n,t){"hash"===t[2]&&R(h,t[1],n)})),h.store.proxy.on("remove",["teams"],(function(e,n){"hash"===n[2]&&R(h,n[1])}));var w=function(n,t){if(!n||!t)return!0;try{var r=e.decodeBase64(n),o=E.sign.keyPair.fromSecretKey(r);return e.encodeBase64(o.publicKey)===t}catch(e){return!1}};Object.keys(b).forEach((function(n){h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,r((function(e){if(e){delete h.onReadyHandlers[n],delete h.cache[n],"NOCACHE"===e?.error&&(h.nocache[n]=!0);var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" cache ready")})),d.isEnabled())})),a.onReady=function(t){var r;r={},Object.keys(b).forEach((function(t){try{var o=b[t],a=r[o.channel],i=e.find(o,["keys","drive","edPrivate"]),s=e.find(o,["keys","drive","edPublic"]);if(s?i&&s&&!w(i,s)&&(u.send("TEAM_CORRUPTED_EDPRIVATE"),delete b[t].keys.drive.edPrivate,i=void 0):u.send("TEAM_CORRUPTED_EDPUBLIC"),o.hash&&2===n.parseTypeHash("drive",o.hash).version&&40!==o.hash.length&&u.send("TEAM_CORRUPTED_HASH"),!a)return void(r[o.channel]=t);var c=b[a],f=e.find(c,["keys","drive","edPrivate"]),l=e.find(c,["keys","chat","edit"]),d=e.find(o,["keys","chat","edit"]);!c.hash&&o.hash&&(c.hash=o.hash),!f&&i&&(c.keys.drive.edPrivate=i),!l&&d&&(c.keys.chat.edit=d),h.store.proxy.duplicateTeams=h.store.proxy.duplicateTeams||{},h.store.proxy.duplicateTeams[t]=b[t],delete b[t]}catch(e){console.error(e)}}));var o=function(e){return!b[e]&&(D(h,e),delete h.onReadyHandlers[e],!0)};Object.keys(h.teams).forEach(o),Object.keys(h.onReadyHandlers).forEach((function(n){if(!o(n)){var r=h.store.proxy.teams[n],a=e.find(r,["keys","roster","channel"]),i=e.once(e.mkAsync(t()));g((function(e){x(h,n,r.channel,a,e,i)})),h.onReadyHandlers[n].push({cb:i})}})),Object.keys(b).forEach((function(n){h.onReadyHandlers[n]||h.teams[n]||(h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,t((function(e){if(e){var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" ready")}))))})),A(),O.fire()},a.getTeam=function(e){return h.teams[e]},a.getTeamsData=function(n){var t={},r=!1;return-1!==["drive","teams","settings"].indexOf(n)&&(r=!0),Object.keys(b).forEach((function(n){if(h.teams[n]){var o=h.teams[n].proxy||{},a=o.drive&&Object.keys(o.drive.filesData||{}).length,i=o.drive&&Object.keys(o.drive.sharedFolders||{}).length;t[n]={owner:b[n].owner,name:b[n].metadata.name,channel:b[n].channel,numberPads:a,numberSf:i,roster:e.find(b[n],["keys","roster","channel"]),edPublic:e.find(b[n],["keys","drive","edPublic"]),avatar:e.find(b[n],["metadata","avatar"]),viewer:!e.find(b[n],["keys","drive","edPrivate"]),notifications:e.find(b[n],["keys","mailbox","channel"]),curvePublic:e.find(b[n],["keys","mailbox","keys","curvePublic"]),validKeys:w(e.find(b[n],["keys","drive","edPrivate"]),e.find(b[n],["keys","drive","edPublic"]))},r&&h.teams[n]&&(t[n].secondaryKey=h.teams[n].secondaryKey),h.teams[n]&&(t[n].hasSecondaryKey=Boolean(h.teams[n].secondaryKey))}})),t},a.getTeams=function(){return Object.keys(h.teams)};a.removeFromTeam=function(e,n,t){if(b[e]&&(!t||function(e,n){var t=h.teams[e];if(t){var r=t.roster&&t.roster.getState();if(r.members)return(r.members[n]||{}).pending}}(e,n)))if(h.onReadyHandlers[e])h.onReadyHandlers[e].push({cb:function(){h.teams[e].roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}});else{var r=h.teams[e];r?r.roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)})):console.error("TEAM MODULE ERROR")}},a.changeMyRights=function(e,n,t,r){P(h,e,n,t,r)},a.updateMyData=function(e){Object.keys(h.teams).forEach((function(n){var t=h.teams[n];if(t.roster){var r={};r[e.curvePublic]=e,t.roster.describe(r,(function(e){e&&console.error(e)}))}}))},a.removeClient=function(e){F(h,e)};return a.execCommand=function(t,r,o){var a=r.cmd,i=r.data;if("SUBSCRIBE"!==a)if("LIST_TEAMS"!==a)if("OPEN_TEAM_CHAT"!==a)if("GET_TEAM_ROSTER"!==a)if("GET_TEAM_METADATA"!==a)if("SET_TEAM_METADATA"!==a){if("OFFER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=e.once(o),i=t.teamId;if(i){var s=e.find(n,["store","proxy","teams",i]);if(s){var c=n.teams[i];if(c)if(c.roster)if(t.curvePublic){var u=c.roster.getState().members[t.curvePublic];g((function(t){var r=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a({error:n})},o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"ADD_PENDING_OWNERS",value:[u.edPublic]},t(r))};o(s.channel),o(e.find(s,["keys","roster","channel"])),o(e.find(s,["keys","chat","channel"]))})).nThen((function(e){var n={};n[u.curvePublic]={role:"OWNER"},c.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(t){n.store.mailbox.sendTo("ADD_OWNER",{teamChannel:s.channel,chatChannel:e.find(s,["keys","chat","channel"]),rosterChannel:e.find(s,["keys","roster","channel"]),title:s.metadata.name},{channel:u.notifications,curvePublic:u.curvePublic},t())})).nThen((function(){a()}))}else a({error:"MISSING_DATA"});else a({error:"NO_ROSTER"});else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(h,i,0,o);if("ANSWER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a,i=n.store.proxy.teams;if(Object.keys(i).forEach((function(e){if(i[e].channel===t.teamChannel)return a=e,!0})),a){var s=e.find(n,["store","proxy","teams",a]);if(s){var c=n.teams[a];if(c)if(c.roster){var u={};t.answer?s.owner=!0:(u[n.store.proxy.curvePublic]={role:"ADMIN"},c.roster.describe(u,(function(e){e?o({error:e}):o()})))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("DESCRIBE_USER"!==a){if("INVITE_TO_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=n.user;if(i&&i.curvePublic&&i.notifications){delete i.channel,delete i.lastKnownHash,i.pending=!0;var s={};s[i.curvePublic]=i,s[i.curvePublic].role="VIEWER",a.roster.add(s,(function(n){n&&"NO_CHANGE"!==n?r({error:n}):e.store.mailbox.sendTo("INVITE_TO_TEAM",{team:C(e,o)},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)}))}))}else r({error:"MISSING_DATA"})}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);if("LEAVE_TEAM"!==a){if("JOIN_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void I(h,i,0,o);if("REMOVE_USER"!==a){if("DELETE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a],s=e.find(n,["store","proxy","teams",a]);if(i&&s){var c=i.roster.getState(),f=e.find(n,["store","proxy","curvePublic"]),l=c.members[f];if(!l||"OWNER"!==l.role)return o({error:"EFORBIDDEN"});var d=e.find(n,["store","proxy","edPublic"]),h=e.find(s,["keys","drive","edPublic"]);g((function(e){n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:s.channel},e((function(n){if(n&&n.error)return e.abort(),o({error:n.error});var t=n[0];t&&Array.isArray(t.owners)&&-1!==t.owners.indexOf(d)||(e.abort(),o({error:"EFORBIDDEN"}))})))})).nThen((function(t){i.proxy.delete=!0;var r=i.manager.getChannelsList("owned"),o=e.Saferphore.create(10);r.forEach((function(e){var r=t();o.take((function(t){var o=!1;g((function(r){32===e.length&&n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:e},r((function(e){if(e&&e.error)return t(),void r.abort();var n=e[0];if(!n||!Array.isArray(n.owners)||-1===n.owners.indexOf(h))return t(),void r.abort();o=n.owners.some((function(e){return e!==h}))})))})).nThen((function(t){o?n.Store.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[h]},t()):i.rpc.removeOwnedChannel(e,t((function(e){e&&console.error(e)})))})).nThen((function(){t(),r()}))}))}))})).nThen((function(t){i.rpc.removePins(t((function(e){e&&console.error(e)})));var r=e.find(s,["keys","mailbox","channel"]);i.rpc.removeOwnedChannel(r,t((function(e){e&&console.error(e)})));var o=e.find(s,["keys","roster","channel"]);n.store.rpc.removeOwnedChannel(o,t((function(e){e&&console.error(e)})));var a=e.find(s,["keys","chat","channel"]);n.store.rpc.removeOwnedChannel(a,t((function(e){e&&console.error(e)}))),n.store.rpc.removeOwnedChannel(s.channel,t((function(e){e&&console.error(e)})))})).nThen((function(){u.send("TEAM_DELETION"),D(n,a),o()}))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("CREATE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(t,r,o,a){var i,f=e.once(a),l=n.createChannelId(),h=n.createRandomHash("team",l),b=n.getSecrets("team",h,l),O=n.getViewHashFromKeys(b),A=E.sign.keyPair(),w=E.box.keyPair(),_=v.Team.createSeed(),T=v.Team.deriveMemberKeys(_,{curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate}),x=n.getSecrets("chat"),N=n.getHashes(x),I={network:t.store.network,channel:b.channel,data:{},validateKey:b.keys.validateKey,crypto:v.createEncryptor(b.keys),logLevel:1,classic:!0,ChainPad:m,Cache:d,owners:[t.store.proxy.edPublic]};g((function(e){s.create({network:t.store.network||t.store.networkPromise,channel:T.channel,owners:[t.store.proxy.edPublic],keys:T,store:t.store,lastKnownHash:void 0,newTeam:!0,Cache:d},e((function(n,r){if(n)return e.abort(),console.error(n),void f({error:"ROSTER_ERROR"});i=r;var o=c.createData(t.store.proxy);delete o.channel,i.init(o,e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})));var n,r=v.createEncryptor(x.keys),o={network:t.store.network,channel:x.channel,noChainPad:!0,crypto:r,metadata:{validateKey:x.keys.validateKey,owners:[t.store.proxy.edPublic]}},a=e();o.onReady=function(){n&&n.stop(),a()},o.onError=function(){e.abort(),f({error:"CHAT_INIT_ERROR"})},n=y.start(o)})).nThen((function(e){i.metadata({name:r.name},e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})).nThen((function(){var a=e.createRandomInteger();I.onMetadataUpdate=function(){var e=t.teams[a];e&&t.emit("ROSTER_CHANGE",a,e.clients)};var s=p.create(I),c=s.proxy;c.version=2,c.on("ready",(function(){var d={mailbox:{channel:n.createChannelId(),viewed:[],keys:{curvePrivate:e.encodeBase64(w.secretKey),curvePublic:e.encodeBase64(w.publicKey)}},drive:{edPrivate:e.encodeBase64(A.secretKey),edPublic:e.encodeBase64(A.publicKey)},chat:{edit:N.editHash,view:N.viewHash,validateKey:x.keys.validateKey,channel:x.channel},roster:{channel:T.channel,edit:_,view:T.viewKeyStr}},p=t.store.proxy.teams[a]={owner:!0,channel:b.channel,hash:h,roHash:O,password:l,keys:d,metadata:{name:r.name}};c.drive={},S(t,a,s,i,d,o,(function(){u.send("TEAM_CREATION"),t.store.mailbox.open("team-"+a,p.keys.mailbox,(function(){}),!0,{owners:p.keys.drive.edPublic}),t.updateMetadata(),f()}))})).on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,a)}))}))}(h,i,t,o);if("GET_EDITABLE_FOLDERS"!==a)if("CREATE_INVITE_LINK"!==a){if("GET_PREVIEW_CONTENT"!==a)return"ACCEPT_LINK_INVITATION"===a?h.store.offline?void o({error:"OFFLINE"}):void H(h,i,0,o):void 0;L(h,i,0,o)}else!function(n,t,r,o){var a=e.mkAsync(e.once(o)),i=t.teamId,s=n.teams[t.teamId],u=t.seeds,d=t.bytes64;if(i&&s){var h,p=s.roster;try{h=p.getState().metadata.name}catch(e){return void a({error:"TEAM_NAME_ERR"})}var v=t.message,y=t.name,m=t.hash,E=e.find(n,["store","proxy","teams",i]);try{var b=f.encryptHash(m,E.hash)}catch(e){console.error(e)}var O=f.derivePreviewKeys(u.preview),A=f.deriveInviteKeys(d),w=f.generateKeys(),D=t.role||"VIEWER",_=t.uses||1;g((function(e){!function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamName:h,message:v,author:c.createData(n.store.proxy,!1),displayName:y},i={channel:O.channel,type:"pad",version:2,keys:{cryptKey:O.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(i,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}(),function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamData:C(n,i,"MEMBER"===D),ephemeral:{edPublic:w.edPublic,edPrivate:w.edPrivate,curvePublic:w.curvePublic,curvePrivate:w.curvePrivate}},s={channel:A.channel,type:"pad",version:2,keys:{cryptKey:A.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(s,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}()})).nThen((function(e){s.pin([A.channel,O.channel],(function(e){e&&e.error&&console.error(e.error)})),f.createRosterEntry(s.roster,{curvePublic:w.curvePublic,content:{curvePublic:w.curvePublic,displayName:t.name,pending:!0,remaining:_,totalUses:_,role:D,hash:b,inviteChannel:A.channel,previewChannel:O.channel}},e((function(n){n&&(e.abort(),a(n))})))})).nThen((function(){a()}))}else a({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a];if(i){var s=i.manager.folders||{};o(Object.keys(s).filter((function(e){return!s[e].proxy.version})).map((function(n){var t=e.find(i,["user","userObject"]);return{name:e.find(s,[n,"proxy","metadata","title"]),path:t?t.findFile(n)[0]:[]}})))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster)if(n.curvePublic){var i=a.roster.getState().members[n.curvePublic];a.roster.remove([n.curvePublic],(function(t){if(!t)return i&&i.notifications?void e.store.mailbox.sendTo("KICKED_FROM_TEAM",{pending:n.pending,teamChannel:C(e,o).channel,teamName:C(e,o).metadata.name},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)})):r();r({error:t})}))}else r({error:"MISSING_DATA"});else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=e.store.proxy.curvePublic;a.roster.remove([i],(function(n){n?r({error:n}):(D(e,o),r())}))}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else M(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];a?a.offline?r({error:"OFFLINE"}):a.roster?(n.metadata&&delete n.metadata.offline,a.roster.metadata(n.metadata,(function(t){if(t)r({error:t});else{var a=e.store.proxy.teams[o];a&&(a.metadata=n.metadata),r()}}))):r({error:"NO_ROSTER"}):r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=(a.roster.getState()||{}).metadata||{};i.offline=a.offline,r(i)}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]);if(i){var s=n.teams[a];if(s)if(s.roster){var c,u=(s.roster.getState()||{}).members||{};g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(n.pending_owners=c.pending_owners,Array.isArray(c.pending_owners)&&c.pending_owners.forEach((function(t){var r;if(Object.keys(u).some((function(e){if(u[e].edPublic===t)return r=u[e],!0})),!r&&i.owner){var o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"RM_PENDING_OWNERS",value:[t]},(function(){}))};return o(i.channel),o(e.find(i,["keys","roster","channel"])),void o(e.find(i,["keys","chat","channel"]))}r.pendingOwner=!0})),n.store.messenger){var t=s.getChatData();(n.store.messenger.getOnlineList(t.channel)||[]).forEach((function(e){u[e]&&(u[e].online=!0)}))}Object.keys(u).forEach((function(e){var n=u[e];if(n.inviteChannel&&n.hash)if(i.hash)try{n.hash=f.decryptHash(n.hash,i.hash)}catch(e){console.error(e)}else delete n.hash})),o(u)}))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=e.teams[n.teamId];if(o){var a=function(){e.emit("ROSTER_CHANGE",n.teamId,o.clients)};e.store.messenger?e.store.messenger.openTeamChat(o.getChatData(),a,t,r):A=function(){e.store.messenger.openTeamChat(o.getChatData(),a,t,r)}}else r({error:"ENOENT"})}(h,i,t,o);else!function(n){var t=e.clone(b);Object.keys(t).forEach((function(e){h.teams[e]?t[e].offline=h.teams[e].offline:(t[e].error=!0,h.nocache[e]&&(t[e].offline=!0))})),n(t)}(o);else!function(e,n,t,r){F(e,t);try{e.store.messenger.removeClient(t)}catch(e){}if(A=function(){},n)if(!e.onReadyHandlers[n]||e.teams[n])if(e.teams[n]){var o=e.teams[n].clients;-1===o.indexOf(t)&&o.push(t),r()}else r({error:"EINVAL"});else-1===e.onReadyHandlers[n].indexOf(t)&&e.onReadyHandlers[n].push({cId:t,cb:r});else r()}(h,i,t,o)},a}},b.anonGetPreviewContent=function(e,n,t){L(e,n,0,t)},b};e.exports&&(e.exports=n(Z(),te(),Y(),je(),ze(),Ue(),We(),mt(),wn(),Ae(),(gt||(gt=1,function(e){e.exports&&(e.exports=function(e,n,t,r){var o={},a=e.encodeBase64,i=e.decodeBase64;o.generateKeys=function(){var e=t.sign.keyPair(),n=t.box.keyPair();return{edPublic:a(e.publicKey),edPrivate:a(e.secretKey),curvePublic:a(n.publicKey),curvePrivate:a(n.secretKey)}},o.generateSignPair=function(){var e=t.sign.keyPair();return{validateKey:a(e.publicKey),signKey:a(e.secretKey)}};var s=function(r){var o=n.dispenser(i(r));return{channel:e.uint8ArrayToHex(o(16)),cryptKey:o(t.secretbox.keyLength)}};o.deriveInviteKeys=s,o.derivePreviewKeys=s,o.createRosterEntry=function(e,n,t){var r={};r[n.curvePublic]=n.content,e.invite(r,t)};var c=e.decodeUTF8;return o.encryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.encrypt(e,a)},o.decryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.decrypt(e,a)},o}(Z(),Ne(),N(),M()))}(bt)),bt.exports),Rn(),fe(),Cn(),g(),M(),y(),w(),qe(),N()))})()}(vt)),vt.exports}var At,wt={exports:{}};function Dt(){return At||(At=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c)=>{var u=e.Curve,f={setCustomize:e=>{i=e.Messages}},l="MSG",d="UNFRIEND",h="MAP_ID",p="MAP_ID_ACK",v=function(e){return JSON.parse(JSON.stringify(e))},y=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=p.store.network||e;n.on("message",(function(e,n){N(p,e,n)})),n.on("disconnect",(function(){p.emit("DISCONNECT",null,C(p))})),n.on("reconnect",(function(){p.emit("RECONNECT",null,C(p))}))}));return h.networkPromise?.then(b),p.store.network&&b(),f.onFriendUpdate=function(e){var n=g(h.proxy,e);if(n&&n.channel){var t=p.channels[n.channel];t&&p.emit("UPDATE_DATA",{info:v(n),channel:n.channel},t.clients)}},f.onFriendAdded=function(e){if(p.friendsClients.length){var n=g(p.store.proxy,e.curvePublic);if("object"==typeof n)if(n.channel){var t=n.channel;p.channels[t]||P(p,null,n,(function(){u("FRIEND",{curvePublic:n.curvePublic},p.friendsClients)}))}}},f.onFriendRemoved=function(e,n){I(p,e,n)},f.getOnlineList=function(e){return function(e,n){var t=e.channels[n];if(t){var r=[],o=m(e.store.proxy,!1);return r.push(o.curvePublic),t.wc.members.forEach((function(n){if(n!==e.store.network.historyKeeper){var o=t.mapId[n]||{};o.curvePublic&&-1===r.indexOf(o.curvePublic)&&r.push(o.curvePublic)}})),r}}(p,e)},f.storeValidateKey=function(e,n){p.validateKeys[e]=n},f.leavePad=function(e){delete p.validateKeys[e],Object.keys(p.channels).some((function(n){var t=p.channels[n];if(t.padChan===e){t.wc&&t.wc.leave();var r=p.store.network;return t.onReconnect&&r.off("reconnect",t.onReconnect),t.stopped=!0,delete p.channels[n],!0}}))},f.openTeamChat=function(n,r,o,a){!function(n,r,o,a,i){var s=o,c=s.channel,u=s.secret;if(c&&u){var f=t.once(t.mkAsync((function(){n.emit("TEAMCHAT_READY",c,[r]),i({readOnly:"object"==typeof u.keys&&!u.keys.validateKey,channel:c})}))),l=n.channels[c];if(l)l.onReady.reg((function(){-1===l.clients.indexOf(r)&&l.clients.push(r),f()}));else{u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var d=e.createEncryptor(u.keys),h=u.keys&&u.keys.validateKey||s.validateKey,p={teamId:o.teamId,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:d,channel:c,isTeamChat:!0,decrypt:function(e){return d.decrypt(e,h)},clients:[r],onUserlistUpdate:a,onReady:f};R(n,p)}}else i({error:"EINVAL"})}(p,o,n,r,a)},f.removeClient=function(e){!function(e,n){var t=e.friendsClients.indexOf(n);-1!==t&&e.friendsClients.splice(t,1),Object.keys(e.channels).forEach((function(t){var r=e.channels[t],o=r.clients,a=o.indexOf(n);if(-1!==a&&o.splice(a,1),0===o.length){r.wc&&r.wc.leave();var i=e.store.network;return r.onReconnect&&i.off("reconnect",r.onReconnect),r.stopped=!0,delete e.channels[t],!0}}))}(p,e)},f.execCommand=function(n,r,s){var u=r.cmd,f=r.data;"INIT_FRIENDS"!==u?"GET_ROOMS"!==u?"GET_MUTED_USERS"!==u?"GET_USERLIST"!==u?"OPEN_PAD_CHAT"!==u?"GET_MY_INFO"!==u?"REMOVE_FRIEND"!==u?"CANCEL_FRIEND"!==u?"MUTE_USER"!==u?"UNMUTE_USER"!==u?"GET_STATUS"!==u?"GET_MORE_HISTORY"!==u?"SEND_MESSAGE"!==u?"SET_CHANNEL_HEAD"!==u?"CLEAR_OWNED_CHANNEL"!==u||function(e,n,t){var r=e.channels[n];r?e.store.rpc?e.store.rpc.clearOwnedChannel(n,(function(o){t({error:o}),o||(r.messages=[],e.emit("CLEAR_CHANNEL",n,r.clients))})):t({error:"RPC_NOT_READY"}):t({error:"NO_CHANNEL"})}(p,f,s):_(p,f.id,f.sig,s):function(e,n,t,r){var o=e.channels[n];if(o)if(o.readOnly)r({error:"FORBIDDEN"});else if(e.store.network.webChannels.some((function(e){if(e.id===o.wc.id)return!0}))){var s=e.store.proxy||{},c=[l,s.curvePublic,+new Date,t];if(!o.isFriendChat){var u=s[a.displayNameKey]||i.anonymous+"#"+(s.uid||e.store.noDriveUid).slice(0,5);c.push(u)}var f=JSON.stringify(c),d=o.encrypt(f);o.wc.bcast(d).then((function(){x(e,o,d),r()}),(function(e){r({error:e})}))}else r({error:"NO_SUCH_CHANNEL"});else r({error:"NO_CHANNEL"})}(p,f.id,f.content,s):function(e,n,r,o,a){if("function"==typeof a)if("string"==typeof r){var i=e.channels[n];if(void 0!==i){var s=t.uid();A(e,s,n,a);var c=["GET_HISTORY_RANGE",i.id,{from:r,count:o,txid:s}],u=e.store.network;u.sendto(u.historyKeeper,JSON.stringify(c)).then((function(){}),(function(e){console.error(e)}))}else console.error("chan is undefined. we're going to have a problem here")}else a([])}(p,f.id,f.sig,f.count,s):function(e,n,t){var r=e.channels[n];if(r){r.onUserlistUpdate&&r.onUserlistUpdate();var o=e.store.proxy||{};t(r.wc.members.some((function(n){if(n!==e.store.network.historyKeeper){var t=r.mapId[n]||void 0;return!!t&&t.curvePublic!==o.curvePublic}})))}else t("NO_SUCH_CHANNEL")}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};delete i[n],e.emit("UPDATE_MUTED",null,C(e)),o(Object.keys(i).length)}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};i[n.curvePublic]||(i[n.curvePublic]=n,e.emit("UPDATE_MUTED",null,C(e))),o()}(p,f,s):function(e,n,r){var o=t.once(r);"function"==typeof o?e.Store.cancelFriendRequest(n,o):console.error("NO_CALLBACK")}(p,f,s):function(e,n,r){var a=t.once(r);if("function"==typeof a){var i=e.store.proxy,s=g(i,n);if(!s)return console.error("friend is not valid"),void a({error:"INVALID_FRIEND"});var c=e.channels[s.channel];if(e.store.mailbox&&s.curvePublic&&s.notifications)o.removeFriend(e.store,n,(function(n){n&&n.error?a({error:n.error}):(e.updateMetadata(),a(n))}));else if(c)try{var u=[d,i.curvePublic,+new Date],f=JSON.stringify(u),l=c.encrypt(f);c.wc.bcast(l).then((function(){I(e,n,s.channel),S(e,n,(function(){a()}))}),(function(t){t?a({error:t}):(I(e,n,s.channel),S(e,n,(function(){a()})))}))}catch(e){a({error:e})}else a({error:"NO_SUCH_CHANNEL"})}else console.error("NO_CALLBACK")}(p,f,s):function(e,n){var t=e.store.proxy||{};n({curvePublic:t.curvePublic,displayName:t[a.displayNameKey]})}(p,s):function(n,r,o,a){var i=o.channel,s=t.once(t.mkAsync((function(){n.emit("PADCHAT_READY",i,[r]),a()}))),c=n.channels[i];if(c)c.onReady.reg((function(){-1===c.clients.indexOf(r)&&c.clients.push(r),s()}));else{var u=o.secret;u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var f=e.createEncryptor(u.keys),l=u.keys&&u.keys.validateKey||n.validateKeys[u.channel],d={padChan:o.secret&&o.secret.channel,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:f,channel:o.channel,isPadChat:!0,decrypt:function(e){return f.decrypt(e,l)},clients:[r],onReady:s};R(n,d)}}(p,n,f,s):function(e,n,t){var r=e.channels[n.id];if(r)if(r.isFriendChat){var o=O(e,n.id);if(!o)return void t({error:"NO_SUCH_FRIEND"});t([o])}else t([]);else t({error:"NO_SUCH_CHANNEL"})}(p,f,s):function(e,n){var t=e.store.proxy;if(!n)return t.mutedUsers||{};n(t.mutedUsers||{})}(p,s):function(e,n,t){var r=e.store.proxy;if(n&&n.curvePublic){var o=n.curvePublic,a=g(r,o);if(!a)return void t({error:"NO_SUCH_FRIEND"});var i=e.channels[a.channel];return i?void t([{id:i.id,isFriendChat:!0,name:a.displayName,lastKnownHash:a.lastKnownHash,curvePublic:a.curvePublic,messages:i.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.padChat){var s=e.channels[n.padChat];return s?void t([{id:s.id,isPadChat:!0,messages:s.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.teamChat){var c=e.channels[n.teamChat];return c?void t([{id:c.id,isTeamChat:!0,messages:c.messages}]):void t({error:"NO_SUCH_CHANNEL"})}var u=Object.keys(e.channels).map((function(n){var t,r,o,a=e.channels[n];if(a.isFriendChat){var i=O(e,n);if(!i)return null;t=i.displayName,r=i.lastKnownHash,o=i.curvePublic}else{if(a.isPadChat)return;if(a.isTeamChat)return}return{id:a.id,isFriendChat:a.isFriendChat,name:t,lastKnownHash:r,curvePublic:o,messages:a.messages}})).filter((function(e){return e}));t(u)}(p,f,s):function(e,n,t){var r=E(e.store.proxy);c((function(t){Object.keys(r).forEach((function(o){if("me"!==o){var a=v(r[o]);"object"==typeof a&&a.channel&&P(e,n,a,t())}else delete r.me.channel}))})).nThen((function(){-1===e.friendsClients.indexOf(n)&&e.friendsClients.push(n),t()}))}(p,n,s)},f},f};e.exports&&(e.exports=n(M(),te(),Z(),je(),wn(),Y(),void 0,on(),qe()))})()}(wt)),wt.exports}var _t,Tt={exports:{}};function St(){return _t||(_t=1,function(e){(()=>{const n=(e,n,t,r)=>{var o={},a={};var i=function(n,t,o,a,i){var s,c=e.once(e.mkAsync(i)),u=function(n,t){if(!t)return e.find(n.store,["proxy","edPublic"]);var r=e.find(n,["store","proxy","teams",t]);return e.find(r,["keys","drive","edPublic"])}(n,a),f=n.Store,l=0,d=0,h=0;r((function(e){f.getFileSize(null,{channel:t},e((function(n){return n&&n.error?(e.abort(),void c(n)):void 0===n.size?(e.abort(),void c({error:"ENOENT"})):void(l=n.size)}))),f.getHistory(null,{channel:t,lastKnownHash:o},e((function(n){if(n&&n.error)return e.abort(),void c(n);if(!Array.isArray(n))return e.abort(),void c({error:"EINVAL"});if(n.length){s=n[0].hash;var t=n.map((function(e){return e.msg}));d=t.join("\n").length}})),!0),f.getPadMetadata(null,{channel:t},e((function(n){if((!n||!n.error)&&n&&"object"==typeof n)return h=JSON.stringify(n).length,n&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(u)?void 0:(e.abort(),void c({error:"INSUFFICIENT_PERMISSIONS"}))})))})).nThen((function(){c({size:l-h-d,hash:s})}))};return a.GET_HISTORY_SIZE=function(o,a,s,c){if(o.store.loggedIn&&o.store.rpc){var u=a.channels;if(Array.isArray(u)){var f=[];a.account?u=function(r){var o=[],a=e.find(r.store,["proxy","edPublic"]);-1!==(e.find(r.store,["driveMetadata","owners"])||[]).indexOf(a)&&o.push(r.store.driveChannel);var i=r.store.proxy.profile;if(i){var s=i.edit?n.hrefToHexChannelId("/profile/#"+i.edit,null):null;s&&o.push(s)}r.store.proxy.todo&&o.push(n.hrefToHexChannelId("/todo/#"+r.store.proxy.todo,null));var c=r.store.proxy.mailboxes;if(c){var u=Object.keys(c).map((function(e){return{lastKnownHash:c[e].lastKnownHash,channel:c[e].channel}}));Array.prototype.push.apply(o,u)}var f=r.store.proxy[t.SHARED_FOLDERS];if(f){var l=Object.keys(f).map((function(e){var n=f[e];if(n&&n.owners&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(a))return n.channel})).filter(Boolean);Array.prototype.push.apply(o,l)}return o}(o):a.team&&(u=function(n,t){let r=e.find(n.store,["proxy","teams",t]);if(!r)return[];let o=[r.channel],a=r.keys.roster;return o.push({channel:a.channel,lastKnownHash:a.lastKnownHash}),o}(o,a.team));var l=0,d=[];r((function(e){u.forEach((function(n){var t,r=n;"object"==typeof n&&n.channel&&(r=n.channel,t=n.lastKnownHash),i(o,r,t,a.teamId,e((function(e){e&&e.error?f.push(e.error):(l+=e.size,e.hash&&d.push({channel:r,hash:e.hash}))})))}))})).nThen((function(){c({warning:f.length?f:void 0,channels:d,size:l})}))}else c({error:"EINVAL"})}else c({error:"INSUFFICIENT_PERMISSIONS"})},a.TRIM_HISTORY=function(e,n,t,o){if(e.store.loggedIn&&e.store.rpc){var a=n.channels;if(Array.isArray(a)){var i=function(e,n){if(!n)return e.store.rpc;var t=e.store.modules.team;if(t){var r=t.getTeam(n);if(r)return r.rpc}}(e,n.teamId);if(i){var s=[];r((function(e){a.forEach((function(n){i.trimHistory(n,e((function(e){e&&s.push(e)})))}))})).nThen((function(){1===a.length&&s.length?o({error:s[0]}):o({warning:s.length?s:void 0})}))}else o({error:"ENORPC"})}else o({error:"EINVAL"})}else o({error:"INSUFFICIENT_PERMISSIONS"})},o.init=function(e,n,t){var r={};if(e.store){var o={store:e.store,Store:e.Store,pinPads:e.pinPads,updateMetadata:e.updateMetadata,emit:t};return r.execCommand=function(e,n,t){var r=n.cmd,i=n.data;try{a[r](o,i,e,t)}catch(e){console.error(e)}},r}},o};e.exports&&(e.exports=n(Z(),te(),Ue(),qe()))})()}(Tt)),Tt.exports}var xt,Nt={exports:{}},It={exports:{}};function Ct(){return xt||(xt=1,function(e){(()=>{const n=e=>{var n={};const t=globalThis;var r=function(){},o=n.getWeekNo=function(e,n){"number"!=typeof n&&(n=1);var t=new Date(e.getFullYear(),0,1),r=t.getDay()-n;r=r>=0?r:r+7;var o,a=Math.floor((e.getTime()-t.getTime())/864e5)+1;if(r<4){if((o=Math.floor((a+r-1)/7)+1)>52){var i=new Date(e.getFullYear()+1,0,1).getDay()-n;o=(i=i>=0?i:i+7)<4?1:53}}else o=Math.floor((a+r-1)/7);return o},a=function(e){var n=new Date(e.getFullYear(),0,0),t=e-n+60*(n.getTimezoneOffset()-e.getTimezoneOffset())*1e3;return Math.floor(t/864e5)},i=n.DAYORDER=["SU","MO","TU","WE","TH","FR","SA"],s=function(e){var n=Number(e.slice(0,-2)),t=i.indexOf(e.slice(-2));return n?[n,t]:t},c=function(e,n){var t=e.getDay();t>=(n="number"==typeof n?n:1)?e.setDate(e.getDate()-(t-n)):e.setDate(e.getDate()-(7+t-n))},u=function(e){return e.getFullYear()+"-"+(e.getMonth()+1)+"-"+e.getDate()},f={daily:function(e,n){e.setDate(e.getDate()+n)},weekly:function(e,n){e.setDate(e.getDate()+7*n)},monthly:function(e,n){e.setMonth(e.getMonth()+n)},yearly:function(e,n){e.setFullYear(e.getFullYear()+n)}},l={month:function(e,n,t){var r=new Date(n.start),o=(t-(e.getMonth()+1)+12)%12,a=e.getMonth()+o;if(e.setMonth(a),e.setDate(r.getDate()),e.getMonth()===a)return!0},weekno:function(e,n,t,r){var a=r&&r.wkst;"number"!=typeof a&&(a=1);var i=new Date(n.start),s=new Date(e.getFullYear(),11,31),u=o(s,a),f=1===u;1===u&&(u=52);var l=o(e,a);if(!t||t>u)return!1;t<0&&(t=u+t+1);var d=t-l,h=new Date(+e);h.setDate(h.getDate()+7*d),c(h,a);var p="aaaaaaa".split("").map((function(n,t){var r=new Date(+h);if(r.setDate(r.getDate()+t),r.getFullYear()===e.getFullYear())return r.toLocaleDateString()!==i.toLocaleDateString()&&r})).filter(Boolean);return 1===t&&f&&(c(s,a),"aaaaaaa".split("").some((function(n,t){var r=new Date(+s);if(r.setDate(r.getDate()+t),r.toLocaleDateString()!==i.toLocaleDateString())return r.getFullYear()>e.getFullYear()||void p.push(r)}))),p.length?p:void 0}};l.yearday=function(e,n,t){var r=e.getFullYear();if(function(e,n){if(!("number"!=typeof n||Math.abs(n)<1||Math.abs(n)>366))return n<0&&(n=a(new Date(e.getFullYear(),11,31))+n+1),e.setMonth(0),e.setDate(n),!0}(e,t)&&e.getFullYear()===r)return!0},l.monthday=function(e,n,t,r){if("number"!=typeof t||Math.abs(t)<1||Math.abs(t)>31)return!1;var o=function(e,n){var t=e.getMonth();n<0&&(n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate()+n+1);return e.setDate(n),e.getMonth()===t};if("monthly"===r.freq)return o(e,t);var a="aaaaaaaaaaaa".split("").map((function(n,r){var a=new Date(e.getFullYear(),r,1);return o(a,t)?a:void 0})).filter(Boolean);return a.length?a:void 0},l.day=function(e,n,t,r){var o,a=s(t);Array.isArray(a)&&(o=a[0],a=a[1]);var i=[];if(![0,1,2,3,4,5,6].includes(a))return!1;var c,u=function(e){if(o){var n=[];"aaaaaaaaaaaa".split("").some((function(t,r){if(void 0===e||r===e){var a,s=i.filter((function(e){return e.getMonth()===r}));return a=o<0?s.length+o:o-1,n.push(s[a]),void 0!==e&&r===e}})),i=n.filter(Boolean)}};if("yearly"===r.freq){c=new Date(+e);for(var f=e.getFullYear();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getFullYear()===f;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(),i}if("monthly"===r.freq){c=new Date(+e);for(var l=e.getMonth();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getMonth()===l;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(l),i}if("weekly"===r.freq)for(;e.getDay()!==a;)e.setDate(e.getDate()+1);return!0};var d={month:function(e,n){return e.filter((function(e){return n.includes(e.getMonth()+1)}))},weekno:function(e,n,t){return e.filter((function(e){var r=t&&t.wkst;"number"!=typeof r&&(r=1);var a=new Date(e.getFullYear(),11,31),i=o(a,r);1===i&&(i=52);var s=o(e,r);return n.some((function(e){return e>0?e===s:s===i+e+1}))}))},yearday:function(e,n){return e.filter((function(e){var t=a(e),r=a(new Date(e.getFullYear(),11,31));return n.some((function(e){return e>0?e===t:t===r+e+1}))}))},monthday:function(n,t){return n.filter((function(n){var r=e.clone(t);return(r=r.map((function(e){e<0&&(e=new Date(n.getFullYear(),n.getMonth()+1,0).getDate()+e+1);return e}))).includes(n.getDate())}))},day:function(e,n,t){return e.filter((function(e){var r=e.toLocaleDateString(),o="yearly";return("monthly"===t.freq||"yearly"===t.freq&&t.by&&t.by.month)&&(o="monthly"),n.some((function(n){var t,a=s(n);if(Array.isArray(a)&&(t=a[0],a=a[1]),!t)return e.getDay()===a;var i=new Date(e.getFullYear(),e.getMonth(),1);return"yearly"===o&&i.setMonth(0),l.day(i,{},n,{freq:o}).some((function(e){return e.toLocaleDateString()===r}))}))}))},setpos:function(n,t){var r=n.slice(),o=e.deduplicateString(t.slice().map((function(e){return e>0?e-1:0!==e?r.length+e:void 0})));return n.filter((function(e){var n=r.indexOf(e);return o.includes(n)}))}},h=["month","weekno","yearday","monthday","day"],p=["month","monthday","day"];n.getMonthId=function(e){return e.getFullYear()+"-"+e.getMonth()};var v=t.CP_calendar_cache={},y={};n.resetCache=function(){v=t.CP_calendar_cache={},y={}};var m=function(n){if(!n.recUpdate)return[];var t={},r=n.recUpdate.from;return Object.keys(r||{}).forEach((function(e){var n=r[e];n.recurrenceRule&&(t[e]=n.recurrenceRule)})),Object.keys(t).sort((function(e,n){return Number(e)-Number(n)})).map((function(n){var r=e.clone(t[n]);if(f[r.freq]&&!(r.interval&&r.interval<1))return r._start=Number(n),r})).filter(Boolean)};n.getRecurring=function(n,o){t.CP_DEV_MODE&&(r=console.warn);var i=[];return n.forEach((function(n){var t=n.split("-"),s=new Date(t[0],t[1]),g=new Date(+s);g.setMonth(g.getMonth()+1),g.setMilliseconds(-1),r("Compute month",s.toLocaleDateString()),(o||[]).forEach((function(n){var t=new Date(n.start),o=new Date(n.end),E=n,b=n.recurrenceRule;if(b){var O=m(n),A=O.shift();if(!(t>=g)){for(var w=b.until,D=O.slice(),_=A;_&&_._start&&_._startn)){var t;if(n.getFullYear()===e.getFullYear())t=a(n)-a(e);else{var r=new Date(e.getFullYear(),11,31);for(t=a(r)-a(e)+a(n);r.getFullYear()+1=S)){r("Start iteration",a.toLocaleDateString());var m=function(n,t,o){var a=e.clone(t),i=new Date(a.start),s=a.id.split("|")[0],u=o.toLocaleDateString();v[s]=v[s]||{};var y=n.interval||1,m=n.freq,g=[],E=function(e,t){g=d[e](g,t,n)},b=function(e){return function(t){var r=new Date(+o);"yearly"===n.freq?(r.setMonth(0),r.setDate(1)):"monthly"===n.freq?r.setDate(1):"weekly"===n.freq?c(r,n.wkst):n.freq;var s=l[e](r,a,t,n);if(s)if(Array.isArray(s))s=s.filter((function(e){return e.toLocaleDateString()!==i.toLocaleDateString()})),Array.prototype.push.apply(g,s);else{if(r.toLocaleDateString()===i.toLocaleDateString())return;g.push(r)}}},O=e.once((function(){f[m](o,y)})),A=function(){"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O();var e=new Date(+o);if("monthly"===m||"yearly"===m){if(e.setDate(i.getDate()),e.getDate()!==i.getDate())return;if("yearly"===m&&e.getMonth()!==i.getMonth())return}g.push(e)};if(Array.isArray(v[s][u]))return r("Get cache",s,u),"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O(),v[s][u];if(n.by&&"yearly"===m){var w=h.slice(),D=!1;(n.by.weekno||n.by.yearday||n.by.monthday||n.by.day)&&(w.shift(),D=!0);var _=!0;w.forEach((function(e){var t=n.by[e];t&&(_?(t.forEach(b(e)),_=!1):"day"===e?n.by.yearday||n.by.monthday||n.by.weekno?E("day",n.by.day):n.by.day.forEach(b("day")):E(e,t))})),n.by.month&&D&&E("month",n.by.month)}n.by&&"monthly"===m&&(n.by.monthday||n.by.day?n.by.monthday?n.by.monthday.forEach(b("monthday")):n.by.day&&n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month),n.by.day&&n.by.monthday&&E("day",n.by.day)),n.by&&"weekly"===m&&(n.by.day?n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month)),n.by&&"daily"===m&&(A(),p.forEach((function(e){var t=n.by[e];t&&E(e,t)}))),g.sort((function(e,n){return e-n})),n.by&&n.by.setpos&&E("setpos",n.by.setpos),n.by&&Object.keys(n.by).length?O():A();var T=[];return g=g.filter((function(e){var n=new Date(+e).toLocaleDateString();return!T.includes(n)&&(T.push(n),!0)})),r("Set cache",s,u),v[s][u]=g,g}(b,n,a);if(r("Iteration results",JSON.stringify(m.map((function(e){return new Date(e).toLocaleDateString()})))),!m.length)return a.getFullYear()=S)return r(h.toLocaleDateString(),"count"),w=!0,!0;if(h>=g)return r(h.toLocaleDateString(),"endMonth"),w=!0,!0;if(b.until&&h>b.until)return r(h.toLocaleDateString(),"until"),w=!0,!0;if(!(h=g||h=s){if(y[c.id]&&y[c.id].includes(c.start))return;y[c.id]=y[c.id]||[],y[c.id].push(c.start)}if(E.timeZone&&!c.isAllDay){var m=function(e,n,t){var r=function(e,n){let t=e.toLocaleString("en-CA",{timeZone:n,hour12:!1}).replace(", ","T");return t+="."+e.getMilliseconds().toString().padStart(3,"0"),-(new Date(t+"Z")-e)},o=Intl.DateTimeFormat().resolvedOptions().timeZone,a=r(n,e)-r(t,e);return r(n,o)-r(t,o)-a}(E.timeZone,t,h);c.start+=m,c.end+=m}return i.push(c),D?(v(),!0):void 0}r(h.toLocaleDateString(),"start")})),w||N(a)}};N(t),r("Added this month (all events)",i.map((function(e){return new Date(e.start).toLocaleDateString()})))}}}}}))})),i},n.getAllOccurrences=function(e){if(!e.recurrenceRule)return[e.start];var t=e.recurrenceRule;if(!t.until&&!t.count)return!1;var r=[e.start],o=new Date(e.start);o.setDate(15);for(var a=[],i=0;(a=n.getRecurring([n.getMonthId(o)],[e]))&&(t.count?r.length=1e4;)t.setDate(t.getDate()-a),o++;return{d:o*=a,h:(t=new Date(n)).getHours()-r.getHours(),m:t.getMinutes()-r.getMinutes()}};return n.applyUpdates=function(e){return e.forEach((function(e){if(e.raw={start:e.start,end:e.end},e.recUpdate){var n,t=e.recUpdate.from||{},r=e.recUpdate.one||{},o=e.start,a=m(e).filter((function(e){return e._start>o})).shift(),i=function(n,t){var r=n[t],o=new Date(e.raw[t]);o.setDate(o.getDate()+r.d),o.setHours(o.getHours()+r.h),o.setMinutes(o.getMinutes()+r.m),e[t]=+o};(n=t,Object.keys(n).sort((function(e,n){return Number(e)-Number(n)}))).forEach((function(n){o",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},o={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var n=e%100;if(n>3&&n<21)return"th";switch(n%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},a=function(e,n){return void 0===n&&(n=2),("000"+e).slice(-1*n)},i=function(e){return!0===e?1:0};function s(e,n){var t;return function(){var r=this;clearTimeout(t),t=setTimeout((function(){return e.apply(r,arguments)}),n)}}var c=function(e){return e instanceof Array?e:[e]};function u(e,n,t){if(!0===t)return e.classList.add(n);e.classList.remove(n)}function f(e,n,t){var r=window.document.createElement(e);return n=n||"",t=t||"",r.className=n,void 0!==t&&(r.textContent=t),r}function l(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function d(e,n){return n(e)?e:e.parentNode?d(e.parentNode,n):void 0}function h(e,n){var t=f("div","numInputWrapper"),r=f("input","numInput "+e),o=f("span","arrowUp"),a=f("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?r.type="number":(r.type="text",r.pattern="\\d*"),void 0!==n)for(var i in n)r.setAttribute(i,n[i]);return t.appendChild(r),t.appendChild(o),t.appendChild(a),t}function p(e){try{return"function"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(n){return e.target}}var v=function(){},y=function(e,n,t){return t.months[n?"shorthand":"longhand"][e]},m={D:v,F:function(e,n,t){e.setMonth(t.months.longhand.indexOf(n))},G:function(e,n){e.setHours(parseFloat(n))},H:function(e,n){e.setHours(parseFloat(n))},J:function(e,n){e.setDate(parseFloat(n))},K:function(e,n,t){e.setHours(e.getHours()%12+12*i(new RegExp(t.amPM[1],"i").test(n)))},M:function(e,n,t){e.setMonth(t.months.shorthand.indexOf(n))},S:function(e,n){e.setSeconds(parseFloat(n))},U:function(e,n){return new Date(1e3*parseFloat(n))},W:function(e,n,t){var r=parseInt(n),o=new Date(e.getFullYear(),0,2+7*(r-1),0,0,0,0);return o.setDate(o.getDate()-o.getDay()+t.firstDayOfWeek),o},Y:function(e,n){e.setFullYear(parseFloat(n))},Z:function(e,n){return new Date(n)},d:function(e,n){e.setDate(parseFloat(n))},h:function(e,n){e.setHours(parseFloat(n))},i:function(e,n){e.setMinutes(parseFloat(n))},j:function(e,n){e.setDate(parseFloat(n))},l:v,m:function(e,n){e.setMonth(parseFloat(n)-1)},n:function(e,n){e.setMonth(parseFloat(n)-1)},s:function(e,n){e.setSeconds(parseFloat(n))},u:function(e,n){return new Date(parseFloat(n))},w:v,y:function(e,n){e.setFullYear(2e3+parseFloat(n))}},g={D:"(\\w+)",F:"(\\w+)",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"(\\w+)",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"(\\w+)",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},E={Z:function(e){return e.toISOString()},D:function(e,n,t){return n.weekdays.shorthand[E.w(e,n,t)]},F:function(e,n,t){return y(E.n(e,n,t)-1,!1,n)},G:function(e,n,t){return a(E.h(e,n,t))},H:function(e){return a(e.getHours())},J:function(e,n){return void 0!==n.ordinal?e.getDate()+n.ordinal(e.getDate()):e.getDate()},K:function(e,n){return n.amPM[i(e.getHours()>11)]},M:function(e,n){return y(e.getMonth(),!0,n)},S:function(e){return a(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,n,t){return t.getWeek(e)},Y:function(e){return a(e.getFullYear(),4)},d:function(e){return a(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return a(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,n){return n.weekdays.longhand[e.getDay()]},m:function(e){return a(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a,s=e.isMobile,c=void 0!==s&&s;return function(e,n,r){var o=r||i;return void 0===t.formatDate||c?n.split("").map((function(n,r,a){return E[n]&&"\\"!==a[r-1]?E[n](e,o,t):"\\"!==n?n:""})).join(""):t.formatDate(e,n,o)}},O=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a;return function(e,n,o,a){if(0===e||e){var s,c=a||i,u=e;if(e instanceof Date)s=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)s=new Date(e);else if("string"==typeof e){var f=n||(t||r).dateFormat,l=String(e).trim();if("today"===l)s=new Date,o=!0;else if(/Z$/.test(l)||/GMT$/.test(l))s=new Date(e);else if(t&&t.parseDate)s=t.parseDate(e,f);else{s=t&&t.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var d=void 0,h=[],p=0,v=0,y="";p=0?new Date:new Date(E.config.minDate.getTime()),t=D(E.config);n.setHours(t.hours,t.minutes,t.seconds,n.getMilliseconds()),E.selectedDates=[n],E.latestSelectedDateObj=n}void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var n="keydown"===e.type,t=p(e),r=t;void 0!==E.amPM&&t===E.amPM&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]);var o=parseFloat(r.getAttribute("min")),s=parseFloat(r.getAttribute("max")),c=parseFloat(r.getAttribute("step")),u=parseInt(r.value,10),f=u+c*(e.delta||(n?38===e.which?1:-1:0));if(void 0!==r.value&&2===r.value.length){var l=r===E.hourElement,d=r===E.minuteElement;fs&&(f=r===E.hourElement?f-s-i(!E.amPM):o,d&&L(void 0,1,E.hourElement)),E.amPM&&l&&(1===c?f+u===23:Math.abs(f-u)>c)&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]),r.value=a(f)}}(e);var r=E._input.value;N(),be(),E._input.value!==r&&E._debouncedChange()}function N(){if(void 0!==E.hourElement&&void 0!==E.minuteElement){var e,n,t=(parseInt(E.hourElement.value.slice(-2),10)||0)%24,r=(parseInt(E.minuteElement.value,10)||0)%60,o=void 0!==E.secondElement?(parseInt(E.secondElement.value,10)||0)%60:0;void 0!==E.amPM&&(e=t,n=E.amPM.textContent,t=e%12+12*i(n===E.l10n.amPM[1]));var a=void 0!==E.config.minTime||E.config.minDate&&E.minDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.minDate,!0);if(void 0!==E.config.maxTime||E.config.maxDate&&E.maxDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.maxDate,!0)){var s=void 0!==E.config.maxTime?E.config.maxTime:E.config.maxDate;(t=Math.min(t,s.getHours()))===s.getHours()&&(r=Math.min(r,s.getMinutes())),r===s.getMinutes()&&(o=Math.min(o,s.getSeconds()))}if(a){var c=void 0!==E.config.minTime?E.config.minTime:E.config.minDate;(t=Math.max(t,c.getHours()))===c.getHours()&&r=12)]),void 0!==E.secondElement&&(E.secondElement.value=a(t)))}function R(e){var n=p(e),t=parseInt(n.value)+(e.delta||0);(t/1e3>1||"Enter"===e.key&&!/[^\d]/.test(t.toString()))&&X(t)}function P(e,n,t,r){return n instanceof Array?n.forEach((function(n){return P(e,n,t,r)})):e instanceof Array?e.forEach((function(e){return P(e,n,t,r)})):(e.addEventListener(n,t,r),void E._handlers.push({remove:function(){return e.removeEventListener(n,t)}}))}function k(){ve("onChange")}function M(e,n){var t=void 0!==e?E.parseDate(e):E.latestSelectedDateObj||(E.config.minDate&&E.config.minDate>E.now?E.config.minDate:E.config.maxDate&&E.config.maxDate=0&&A(e,E.selectedDates[1])<=0}(n)&&!me(n)&&a.classList.add("inRange"),E.weekNumbers&&1===E.config.showMonths&&"prevMonthDay"!==e&&t%7==1&&E.weekNumbers.insertAdjacentHTML("beforeend",""+E.config.getWeek(n)+""),ve("onDayCreate",a),a}function j(e){e.focus(),"range"===E.config.mode&&re(e)}function K(e){for(var n=e>0?0:E.config.showMonths-1,t=e>0?E.config.showMonths:-1,r=n;r!=t;r+=e)for(var o=E.daysContainer.children[r],a=e>0?0:o.children.length-1,i=e>0?o.children.length:-1,s=a;s!=i;s+=e){var c=o.children[s];if(-1===c.className.indexOf("hidden")&&$(c.dateObj))return c}}function U(e,n){var t=ee(document.activeElement||document.body),r=void 0!==e?e:t?document.activeElement:void 0!==E.selectedDateElem&&ee(E.selectedDateElem)?E.selectedDateElem:void 0!==E.todayDateElem&&ee(E.todayDateElem)?E.todayDateElem:K(n>0?1:-1);void 0===r?E._input.focus():t?function(e,n){for(var t=-1===e.className.indexOf("Month")?e.dateObj.getMonth():E.currentMonth,r=n>0?E.config.showMonths:-1,o=n>0?1:-1,a=t-E.currentMonth;a!=r;a+=o)for(var i=E.daysContainer.children[a],s=t-E.currentMonth===a?e.$i+n:n<0?i.children.length-1:0,c=i.children.length,u=s;u>=0&&u0?c:-1);u+=o){var f=i.children[u];if(-1===f.className.indexOf("hidden")&&$(f.dateObj)&&Math.abs(e.$i-u)>=Math.abs(n))return j(f)}E.changeMonth(o),U(K(o),0)}(r,n):j(r)}function B(e,n){for(var t=(new Date(e,n,1).getDay()-E.l10n.firstDayOfWeek+7)%7,r=E.utils.getDaysInMonth((n-1+12)%12,e),o=E.utils.getDaysInMonth(n,e),a=window.document.createDocumentFragment(),i=E.config.showMonths>1,s=i?"prevMonthDay hidden":"prevMonthDay",c=i?"nextMonthDay hidden":"nextMonthDay",u=r+1-t,l=0;u<=r;u++,l++)a.appendChild(H(s,new Date(e,n-1,u),u,l));for(u=1;u<=o;u++,l++)a.appendChild(H("",new Date(e,n,u),u,l));for(var d=o+1;d<=42-t&&(1===E.config.showMonths||l%7!=0);d++,l++)a.appendChild(H(c,new Date(e,n+1,d%o),d,l));var h=f("div","dayContainer");return h.appendChild(a),h}function V(){if(void 0!==E.daysContainer){l(E.daysContainer),E.weekNumbers&&l(E.weekNumbers);for(var e=document.createDocumentFragment(),n=0;n1||"dropdown"!==E.config.monthSelectorType)){var e=function(e){return!(void 0!==E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&eE.config.maxDate.getMonth())};E.monthsDropdownContainer.tabIndex=-1,E.monthsDropdownContainer.innerHTML="";for(var n=0;n<12;n++)if(e(n)){var t=f("option","flatpickr-monthDropdown-month");t.value=new Date(E.currentYear,n).getMonth().toString(),t.textContent=y(n,E.config.shorthandCurrentMonth,E.l10n),t.tabIndex=-1,E.currentMonth===n&&(t.selected=!0),E.monthsDropdownContainer.appendChild(t)}}}function G(){var e,n=f("div","flatpickr-month"),t=window.document.createDocumentFragment();E.config.showMonths>1||"static"===E.config.monthSelectorType?e=f("span","cur-month"):(E.monthsDropdownContainer=f("select","flatpickr-monthDropdown-months"),E.monthsDropdownContainer.setAttribute("aria-label",E.l10n.monthAriaLabel),P(E.monthsDropdownContainer,"change",(function(e){var n=p(e),t=parseInt(n.value,10);E.changeMonth(t-E.currentMonth),ve("onMonthChange")})),Y(),e=E.monthsDropdownContainer);var r=h("cur-year",{tabindex:"-1"}),o=r.getElementsByTagName("input")[0];o.setAttribute("aria-label",E.l10n.yearAriaLabel),E.config.minDate&&o.setAttribute("min",E.config.minDate.getFullYear().toString()),E.config.maxDate&&(o.setAttribute("max",E.config.maxDate.getFullYear().toString()),o.disabled=!!E.config.minDate&&E.config.minDate.getFullYear()===E.config.maxDate.getFullYear());var a=f("div","flatpickr-current-month");return a.appendChild(e),a.appendChild(r),t.appendChild(a),n.appendChild(t),{container:n,yearElement:o,monthElement:e}}function J(){l(E.monthNav),E.monthNav.appendChild(E.prevMonthNav),E.config.showMonths&&(E.yearElements=[],E.monthElements=[]);for(var e=E.config.showMonths;e--;){var n=G();E.yearElements.push(n.yearElement),E.monthElements.push(n.monthElement),E.monthNav.appendChild(n.container)}E.monthNav.appendChild(E.nextMonthNav)}function q(){E.weekdayContainer?l(E.weekdayContainer):E.weekdayContainer=f("div","flatpickr-weekdays");for(var e=E.config.showMonths;e--;){var n=f("div","flatpickr-weekdaycontainer");E.weekdayContainer.appendChild(n)}return W(),E.weekdayContainer}function W(){if(E.weekdayContainer){var e=E.l10n.firstDayOfWeek,t=n(E.l10n.weekdays.shorthand);e>0&&e\n "+t.join("")+"\n \n "}}function z(e,n){void 0===n&&(n=!0);var t=n?e:e-E.currentMonth;t<0&&!0===E._hidePrevMonthArrow||t>0&&!0===E._hideNextMonthArrow||(E.currentMonth+=t,(E.currentMonth<0||E.currentMonth>11)&&(E.currentYear+=E.currentMonth>11?1:-1,E.currentMonth=(E.currentMonth+12)%12,ve("onYearChange"),Y()),V(),ve("onMonthChange"),ge())}function Q(e){return!(!E.config.appendTo||!E.config.appendTo.contains(e))||E.calendarContainer.contains(e)}function Z(e){if(E.isOpen&&!E.config.inline){var n=p(e),t=Q(n),r=n===E.input||n===E.altInput||E.element.contains(n)||e.path&&e.path.indexOf&&(~e.path.indexOf(E.input)||~e.path.indexOf(E.altInput)),o="blur"===e.type?r&&e.relatedTarget&&!Q(e.relatedTarget):!r&&!t&&!Q(e.relatedTarget),a=!E.config.ignoredFocusElements.some((function(e){return e.contains(n)}));o&&a&&(void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement&&""!==E.input.value&&void 0!==E.input.value&&x(),E.close(),E.config&&"range"===E.config.mode&&1===E.selectedDates.length&&(E.clear(!1),E.redraw()))}}function X(e){if(!(!e||E.config.minDate&&eE.config.maxDate.getFullYear())){var n=e,t=E.currentYear!==n;E.currentYear=n||E.currentYear,E.config.maxDate&&E.currentYear===E.config.maxDate.getFullYear()?E.currentMonth=Math.min(E.config.maxDate.getMonth(),E.currentMonth):E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&(E.currentMonth=Math.max(E.config.minDate.getMonth(),E.currentMonth)),t&&(E.redraw(),ve("onYearChange"),Y())}}function $(e,n){var t;void 0===n&&(n=!0);var r=E.parseDate(e,void 0,n);if(E.config.minDate&&r&&A(r,E.config.minDate,void 0!==n?n:!E.minDateHasTime)<0||E.config.maxDate&&r&&A(r,E.config.maxDate,void 0!==n?n:!E.maxDateHasTime)>0)return!1;if(!E.config.enable&&0===E.config.disable.length)return!0;if(void 0===r)return!1;for(var o=!!E.config.enable,a=null!==(t=E.config.enable)&&void 0!==t?t:E.config.disable,i=0,s=void 0;i=s.from.getTime()&&r.getTime()<=s.to.getTime())return o}return!o}function ee(e){return void 0!==E.daysContainer&&-1===e.className.indexOf("hidden")&&-1===e.className.indexOf("flatpickr-disabled")&&E.daysContainer.contains(e)}function ne(e){e.target!==E._input||!(E.selectedDates.length>0||E._input.value.length>0)||e.relatedTarget&&Q(e.relatedTarget)||E.setDate(E._input.value,!0,e.target===E.altInput?E.config.altFormat:E.config.dateFormat)}function te(e){var n=p(e),t=E.config.wrap?v.contains(n):n===E._input,r=E.config.allowInput,o=E.isOpen&&(!r||!t),a=E.config.inline&&t&&!r;if(13===e.keyCode&&t){if(r)return E.setDate(E._input.value,!0,n===E.altInput?E.config.altFormat:E.config.dateFormat),n.blur();E.open()}else if(Q(n)||o||a){var i=!!E.timeContainer&&E.timeContainer.contains(n);switch(e.keyCode){case 13:i?(e.preventDefault(),x(),fe()):le(e);break;case 27:e.preventDefault(),fe();break;case 8:case 46:t&&!E.config.allowInput&&(e.preventDefault(),E.clear());break;case 37:case 39:if(i||t)E.hourElement&&E.hourElement.focus();else if(e.preventDefault(),void 0!==E.daysContainer&&(!1===r||document.activeElement&&ee(document.activeElement))){var s=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),z(s),U(K(1),0)):U(void 0,s)}break;case 38:case 40:e.preventDefault();var c=40===e.keyCode?1:-1;E.daysContainer&&void 0!==n.$i||n===E.input||n===E.altInput?e.ctrlKey?(e.stopPropagation(),X(E.currentYear-c),U(K(1),0)):i||U(void 0,7*c):n===E.currentYearElement?X(E.currentYear-c):E.config.enableTime&&(!i&&E.hourElement&&E.hourElement.focus(),x(e),E._debouncedChange());break;case 9:if(i){var u=[E.hourElement,E.minuteElement,E.secondElement,E.amPM].concat(E.pluginElements).filter((function(e){return e})),f=u.indexOf(n);if(-1!==f){var l=u[f+(e.shiftKey?-1:1)];e.preventDefault(),(l||E._input).focus()}}else!E.config.noCalendar&&E.daysContainer&&E.daysContainer.contains(n)&&e.shiftKey&&(e.preventDefault(),E._input.focus())}}if(void 0!==E.amPM&&n===E.amPM)switch(e.key){case E.l10n.amPM[0].charAt(0):case E.l10n.amPM[0].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[0],N(),be();break;case E.l10n.amPM[1].charAt(0):case E.l10n.amPM[1].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[1],N(),be()}(t||Q(n))&&ve("onKeyDown",e)}function re(e){if(1===E.selectedDates.length&&(!e||e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled"))){for(var n=e?e.dateObj.getTime():E.days.firstElementChild.dateObj.getTime(),t=E.parseDate(E.selectedDates[0],void 0,!0).getTime(),r=Math.min(n,E.selectedDates[0].getTime()),o=Math.max(n,E.selectedDates[0].getTime()),a=!1,i=0,s=0,c=r;cr&&ci)?i=c:c>t&&(!s||c0&&h0&&h>s;return p?(d.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach((function(e){d.classList.remove(e)})),"continue"):a&&!p?"continue":(["startRange","inRange","endRange","notAllowed"].forEach((function(e){d.classList.remove(e)})),void(void 0!==e&&(e.classList.add(n<=E.selectedDates[0].getTime()?"startRange":"endRange"),tn&&h===t&&d.classList.add("endRange"),h>=i&&(0===s||h<=s)&&(u=t,l=n,(c=h)>Math.min(u,l)&&c0||t.getMinutes()>0||t.getSeconds()>0),E.selectedDates&&(E.selectedDates=E.selectedDates.filter((function(e){return $(e)})),E.selectedDates.length||"min"!==e||I(t),be()),E.daysContainer&&(ue(),void 0!==t?E.currentYearElement[e]=t.getFullYear().toString():E.currentYearElement.removeAttribute(e),E.currentYearElement.disabled=!!r&&void 0!==t&&r.getFullYear()===t.getFullYear())}}function ie(){return E.config.wrap?v.querySelector("[data-input]"):v}function se(){"object"!=typeof E.config.locale&&void 0===S.l10ns[E.config.locale]&&E.config.errorHandler(new Error("flatpickr: invalid locale "+E.config.locale)),E.l10n=e(e({},S.l10ns.default),"object"==typeof E.config.locale?E.config.locale:"default"!==E.config.locale?S.l10ns[E.config.locale]:void 0),g.K="("+E.l10n.amPM[0]+"|"+E.l10n.amPM[1]+"|"+E.l10n.amPM[0].toLowerCase()+"|"+E.l10n.amPM[1].toLowerCase()+")",void 0===e(e({},m),JSON.parse(JSON.stringify(v.dataset||{}))).time_24hr&&void 0===S.defaultConfig.time_24hr&&(E.config.time_24hr=E.l10n.time_24hr),E.formatDate=b(E),E.parseDate=O({config:E.config,l10n:E.l10n})}function ce(e){if("function"!=typeof E.config.position){if(void 0!==E.calendarContainer){ve("onPreCalendarPosition");var n=e||E._positionElement,t=Array.prototype.reduce.call(E.calendarContainer.children,(function(e,n){return e+n.offsetHeight}),0),r=E.calendarContainer.offsetWidth,o=E.config.position.split(" "),a=o[0],i=o.length>1?o[1]:null,s=n.getBoundingClientRect(),c=window.innerHeight-s.bottom,f="above"===a||"below"!==a&&ct,l=window.pageYOffset+s.top+(f?-t-2:n.offsetHeight+2);if(u(E.calendarContainer,"arrowTop",!f),u(E.calendarContainer,"arrowBottom",f),!E.config.inline){var d=window.pageXOffset+s.left,h=!1,p=!1;"center"===i?(d-=(r-s.width)/2,h=!0):"right"===i&&(d-=r-s.width,p=!0),u(E.calendarContainer,"arrowLeft",!h&&!p),u(E.calendarContainer,"arrowCenter",h),u(E.calendarContainer,"arrowRight",p);var v=window.document.body.offsetWidth-(window.pageXOffset+s.right),y=d+r>window.document.body.offsetWidth,m=v+r>window.document.body.offsetWidth;if(u(E.calendarContainer,"rightMost",y),!E.config.static)if(E.calendarContainer.style.top=l+"px",y)if(m){var g=function(){for(var e=null,n=0;nE.currentMonth+E.config.showMonths-1)&&"range"!==E.config.mode;if(E.selectedDateElem=t,"single"===E.config.mode)E.selectedDates=[r];else if("multiple"===E.config.mode){var a=me(r);a?E.selectedDates.splice(parseInt(a),1):E.selectedDates.push(r)}else"range"===E.config.mode&&(2===E.selectedDates.length&&E.clear(!1,!1),E.latestSelectedDateObj=r,E.selectedDates.push(r),0!==A(r,E.selectedDates[0],!0)&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()})));if(N(),o){var i=E.currentYear!==r.getFullYear();E.currentYear=r.getFullYear(),E.currentMonth=r.getMonth(),i&&(ve("onYearChange"),Y()),ve("onMonthChange")}if(ge(),V(),be(),o||"range"===E.config.mode||1!==E.config.showMonths?void 0!==E.selectedDateElem&&void 0===E.hourElement&&E.selectedDateElem&&E.selectedDateElem.focus():j(t),void 0!==E.hourElement&&void 0!==E.hourElement&&E.hourElement.focus(),E.config.closeOnSelect){var s="single"===E.config.mode&&!E.config.enableTime,c="range"===E.config.mode&&2===E.selectedDates.length&&!E.config.enableTime;(s||c)&&fe()}k()}}E.parseDate=O({config:E.config,l10n:E.l10n}),E._handlers=[],E.pluginElements=[],E.loadedPlugins=[],E._bind=P,E._setHoursFromDate=I,E._positionCalendar=ce,E.changeMonth=z,E.changeYear=X,E.clear=function(e,n){if(void 0===e&&(e=!0),void 0===n&&(n=!0),E.input.value="",void 0!==E.altInput&&(E.altInput.value=""),void 0!==E.mobileInput&&(E.mobileInput.value=""),E.selectedDates=[],E.latestSelectedDateObj=void 0,!0===n&&(E.currentYear=E._initialDate.getFullYear(),E.currentMonth=E._initialDate.getMonth()),!0===E.config.enableTime){var t=D(E.config);C(t.hours,t.minutes,t.seconds)}E.redraw(),e&&ve("onChange")},E.close=function(){E.isOpen=!1,E.isMobile||(void 0!==E.calendarContainer&&E.calendarContainer.classList.remove("open"),void 0!==E._input&&E._input.classList.remove("active")),ve("onClose")},E._createElement=f,E.destroy=function(){void 0!==E.config&&ve("onDestroy");for(var e=E._handlers.length;e--;)E._handlers[e].remove();if(E._handlers=[],E.mobileInput)E.mobileInput.parentNode&&E.mobileInput.parentNode.removeChild(E.mobileInput),E.mobileInput=void 0;else if(E.calendarContainer&&E.calendarContainer.parentNode)if(E.config.static&&E.calendarContainer.parentNode){var n=E.calendarContainer.parentNode;if(n.lastChild&&n.removeChild(n.lastChild),n.parentNode){for(;n.firstChild;)n.parentNode.insertBefore(n.firstChild,n);n.parentNode.removeChild(n)}}else E.calendarContainer.parentNode.removeChild(E.calendarContainer);E.altInput&&(E.input.type="text",E.altInput.parentNode&&E.altInput.parentNode.removeChild(E.altInput),delete E.altInput),E.input&&(E.input.type=E.input._type,E.input.classList.remove("flatpickr-input"),E.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach((function(e){try{delete E[e]}catch(e){}}))},E.isEnabled=$,E.jumpToDate=M,E.open=function(e,n){if(void 0===n&&(n=E._positionElement),!0===E.isMobile){if(e){e.preventDefault();var t=p(e);t&&t.blur()}return void 0!==E.mobileInput&&(E.mobileInput.focus(),E.mobileInput.click()),void ve("onOpen")}if(!E._input.disabled&&!E.config.inline){var r=E.isOpen;E.isOpen=!0,r||(E.calendarContainer.classList.add("open"),E._input.classList.add("active"),ve("onOpen"),ce(n)),!0===E.config.enableTime&&!0===E.config.noCalendar&&(!1!==E.config.allowInput||void 0!==e&&E.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return E.hourElement.select()}),50))}},E.redraw=ue,E.set=function(e,n){if(null!==e&&"object"==typeof e)for(var r in Object.assign(E.config,e),e)void 0!==de[r]&&de[r].forEach((function(e){return e()}));else E.config[e]=n,void 0!==de[e]?de[e].forEach((function(e){return e()})):t.indexOf(e)>-1&&(E.config[e]=c(n));E.redraw(),be(!0)},E.setDate=function(e,n,t){if(void 0===n&&(n=!1),void 0===t&&(t=E.config.dateFormat),0!==e&&!e||e instanceof Array&&0===e.length)return E.clear(n);he(e,t),E.latestSelectedDateObj=E.selectedDates[E.selectedDates.length-1],E.redraw(),M(void 0,n),I(),0===E.selectedDates.length&&E.clear(!1),be(n),n&&ve("onChange")},E.toggle=function(e){if(!0===E.isOpen)return E.close();E.open(e)};var de={locale:[se,W],showMonths:[J,T,q],minDate:[M],maxDate:[M],clickOpens:[function(){!0===E.config.clickOpens?(P(E._input,"focus",E.open),P(E._input,"click",E.open)):(E._input.removeEventListener("focus",E.open),E._input.removeEventListener("click",E.open))}]};function he(e,n){var t=[];if(e instanceof Array)t=e.map((function(e){return E.parseDate(e,n)}));else if(e instanceof Date||"number"==typeof e)t=[E.parseDate(e,n)];else if("string"==typeof e)switch(E.config.mode){case"single":case"time":t=[E.parseDate(e,n)];break;case"multiple":t=e.split(E.config.conjunction).map((function(e){return E.parseDate(e,n)}));break;case"range":t=e.split(E.l10n.rangeSeparator).map((function(e){return E.parseDate(e,n)}))}else E.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));E.selectedDates=E.config.allowInvalidPreload?t:t.filter((function(e){return e instanceof Date&&$(e,!1)})),"range"===E.config.mode&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()}))}function pe(e){return e.slice().map((function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?E.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:E.parseDate(e.from,void 0),to:E.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function ve(e,n){if(void 0!==E.config){var t=E.config[e];if(void 0!==t&&t.length>0)for(var r=0;t[r]&&r1||"static"===E.config.monthSelectorType?E.monthElements[n].textContent=y(t.getMonth(),E.config.shorthandCurrentMonth,E.l10n)+" ":E.monthsDropdownContainer.value=t.getMonth().toString(),e.value=t.getFullYear().toString()})),E._hidePrevMonthArrow=void 0!==E.config.minDate&&(E.currentYear===E.config.minDate.getFullYear()?E.currentMonth<=E.config.minDate.getMonth():E.currentYearE.config.maxDate.getMonth():E.currentYear>E.config.maxDate.getFullYear()))}function Ee(e){return E.selectedDates.map((function(n){return E.formatDate(n,e)})).filter((function(e,n,t){return"range"!==E.config.mode||E.config.enableTime||t.indexOf(e)===n})).join("range"!==E.config.mode?E.config.conjunction:E.l10n.rangeSeparator)}function be(e){void 0===e&&(e=!0),void 0!==E.mobileInput&&E.mobileFormatStr&&(E.mobileInput.value=void 0!==E.latestSelectedDateObj?E.formatDate(E.latestSelectedDateObj,E.mobileFormatStr):""),E.input.value=Ee(E.config.dateFormat),void 0!==E.altInput&&(E.altInput.value=Ee(E.config.altFormat)),!1!==e&&ve("onValueUpdate")}function Oe(e){var n=p(e),t=E.prevMonthNav.contains(n),r=E.nextMonthNav.contains(n);t||r?z(t?-1:1):E.yearElements.indexOf(n)>=0?n.select():n.classList.contains("arrowUp")?E.changeYear(E.currentYear+1):n.classList.contains("arrowDown")&&E.changeYear(E.currentYear-1)}return function(){E.element=E.input=v,E.isOpen=!1,function(){var n=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],o=e(e({},JSON.parse(JSON.stringify(v.dataset||{}))),m),a={};E.config.parseDate=o.parseDate,E.config.formatDate=o.formatDate,Object.defineProperty(E.config,"enable",{get:function(){return E.config._enable},set:function(e){E.config._enable=pe(e)}}),Object.defineProperty(E.config,"disable",{get:function(){return E.config._disable},set:function(e){E.config._disable=pe(e)}});var i="time"===o.mode;if(!o.dateFormat&&(o.enableTime||i)){var s=S.defaultConfig.dateFormat||r.dateFormat;a.dateFormat=o.noCalendar||i?"H:i"+(o.enableSeconds?":S":""):s+" H:i"+(o.enableSeconds?":S":"")}if(o.altInput&&(o.enableTime||i)&&!o.altFormat){var u=S.defaultConfig.altFormat||r.altFormat;a.altFormat=o.noCalendar||i?"h:i"+(o.enableSeconds?":S K":" K"):u+" h:i"+(o.enableSeconds?":S":"")+" K"}Object.defineProperty(E.config,"minDate",{get:function(){return E.config._minDate},set:ae("min")}),Object.defineProperty(E.config,"maxDate",{get:function(){return E.config._maxDate},set:ae("max")});var f=function(e){return function(n){E.config["min"===e?"_minTime":"_maxTime"]=E.parseDate(n,"H:i:S")}};Object.defineProperty(E.config,"minTime",{get:function(){return E.config._minTime},set:f("min")}),Object.defineProperty(E.config,"maxTime",{get:function(){return E.config._maxTime},set:f("max")}),"time"===o.mode&&(E.config.noCalendar=!0,E.config.enableTime=!0),Object.assign(E.config,a,o);for(var l=0;l-1?E.config[h]=c(d[h]).map(_).concat(E.config[h]):void 0===o[h]&&(E.config[h]=d[h])}o.altInputClass||(E.config.altInputClass=ie().className+" "+E.config.altInputClass),ve("onParseConfig")}(),se(),E.input=ie(),E.input?(E.input._type=E.input.type,E.input.type="text",E.input.classList.add("flatpickr-input"),E._input=E.input,E.config.altInput&&(E.altInput=f(E.input.nodeName,E.config.altInputClass),E._input=E.altInput,E.altInput.placeholder=E.input.placeholder,E.altInput.disabled=E.input.disabled,E.altInput.required=E.input.required,E.altInput.tabIndex=E.input.tabIndex,E.altInput.type="text",E.input.setAttribute("type","hidden"),!E.config.static&&E.input.parentNode&&E.input.parentNode.insertBefore(E.altInput,E.input.nextSibling)),E.config.allowInput||E._input.setAttribute("readonly","readonly"),E._positionElement=E.config.positionElement||E._input):E.config.errorHandler(new Error("Invalid input element specified")),function(){E.selectedDates=[],E.now=E.parseDate(E.config.now)||new Date;var e=E.config.defaultDate||("INPUT"!==E.input.nodeName&&"TEXTAREA"!==E.input.nodeName||!E.input.placeholder||E.input.value!==E.input.placeholder?E.input.value:null);e&&he(e,E.config.dateFormat),E._initialDate=E.selectedDates.length>0?E.selectedDates[0]:E.config.minDate&&E.config.minDate.getTime()>E.now.getTime()?E.config.minDate:E.config.maxDate&&E.config.maxDate.getTime()0&&(E.latestSelectedDateObj=E.selectedDates[0]),void 0!==E.config.minTime&&(E.config.minTime=E.parseDate(E.config.minTime,"H:i")),void 0!==E.config.maxTime&&(E.config.maxTime=E.parseDate(E.config.maxTime,"H:i")),E.minDateHasTime=!!E.config.minDate&&(E.config.minDate.getHours()>0||E.config.minDate.getMinutes()>0||E.config.minDate.getSeconds()>0),E.maxDateHasTime=!!E.config.maxDate&&(E.config.maxDate.getHours()>0||E.config.maxDate.getMinutes()>0||E.config.maxDate.getSeconds()>0)}(),E.utils={getDaysInMonth:function(e,n){return void 0===e&&(e=E.currentMonth),void 0===n&&(n=E.currentYear),1===e&&(n%4==0&&n%100!=0||n%400==0)?29:E.l10n.daysInMonth[e]}},E.isMobile||function(){var e=window.document.createDocumentFragment();if(E.calendarContainer=f("div","flatpickr-calendar"),E.calendarContainer.tabIndex=-1,!E.config.noCalendar){if(e.appendChild((E.monthNav=f("div","flatpickr-months"),E.yearElements=[],E.monthElements=[],E.prevMonthNav=f("span","flatpickr-prev-month"),E.prevMonthNav.innerHTML=E.config.prevArrow,E.nextMonthNav=f("span","flatpickr-next-month"),E.nextMonthNav.innerHTML=E.config.nextArrow,J(),Object.defineProperty(E,"_hidePrevMonthArrow",{get:function(){return E.__hidePrevMonthArrow},set:function(e){E.__hidePrevMonthArrow!==e&&(u(E.prevMonthNav,"flatpickr-disabled",e),E.__hidePrevMonthArrow=e)}}),Object.defineProperty(E,"_hideNextMonthArrow",{get:function(){return E.__hideNextMonthArrow},set:function(e){E.__hideNextMonthArrow!==e&&(u(E.nextMonthNav,"flatpickr-disabled",e),E.__hideNextMonthArrow=e)}}),E.currentYearElement=E.yearElements[0],ge(),E.monthNav)),E.innerContainer=f("div","flatpickr-innerContainer"),E.config.weekNumbers){var n=function(){E.calendarContainer.classList.add("hasWeeks");var e=f("div","flatpickr-weekwrapper");e.appendChild(f("span","flatpickr-weekday",E.l10n.weekAbbreviation));var n=f("div","flatpickr-weeks");return e.appendChild(n),{weekWrapper:e,weekNumbers:n}}(),t=n.weekWrapper,r=n.weekNumbers;E.innerContainer.appendChild(t),E.weekNumbers=r,E.weekWrapper=t}E.rContainer=f("div","flatpickr-rContainer"),E.rContainer.appendChild(q()),E.daysContainer||(E.daysContainer=f("div","flatpickr-days"),E.daysContainer.tabIndex=-1),V(),E.rContainer.appendChild(E.daysContainer),E.innerContainer.appendChild(E.rContainer),e.appendChild(E.innerContainer)}E.config.enableTime&&e.appendChild(function(){E.calendarContainer.classList.add("hasTime"),E.config.noCalendar&&E.calendarContainer.classList.add("noCalendar");var e=D(E.config);E.timeContainer=f("div","flatpickr-time"),E.timeContainer.tabIndex=-1;var n=f("span","flatpickr-time-separator",":"),t=h("flatpickr-hour",{"aria-label":E.l10n.hourAriaLabel});E.hourElement=t.getElementsByTagName("input")[0];var r=h("flatpickr-minute",{"aria-label":E.l10n.minuteAriaLabel});if(E.minuteElement=r.getElementsByTagName("input")[0],E.hourElement.tabIndex=E.minuteElement.tabIndex=-1,E.hourElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getHours():E.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),E.minuteElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getMinutes():e.minutes),E.hourElement.setAttribute("step",E.config.hourIncrement.toString()),E.minuteElement.setAttribute("step",E.config.minuteIncrement.toString()),E.hourElement.setAttribute("min",E.config.time_24hr?"0":"1"),E.hourElement.setAttribute("max",E.config.time_24hr?"23":"12"),E.hourElement.setAttribute("maxlength","2"),E.minuteElement.setAttribute("min","0"),E.minuteElement.setAttribute("max","59"),E.minuteElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(t),E.timeContainer.appendChild(n),E.timeContainer.appendChild(r),E.config.time_24hr&&E.timeContainer.classList.add("time24hr"),E.config.enableSeconds){E.timeContainer.classList.add("hasSeconds");var o=h("flatpickr-second");E.secondElement=o.getElementsByTagName("input")[0],E.secondElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getSeconds():e.seconds),E.secondElement.setAttribute("step",E.minuteElement.getAttribute("step")),E.secondElement.setAttribute("min","0"),E.secondElement.setAttribute("max","59"),E.secondElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(f("span","flatpickr-time-separator",":")),E.timeContainer.appendChild(o)}return E.config.time_24hr||(E.amPM=f("span","flatpickr-am-pm",E.l10n.amPM[i((E.latestSelectedDateObj?E.hourElement.value:E.config.defaultHour)>11)]),E.amPM.title=E.l10n.toggleTitle,E.amPM.tabIndex=-1,E.timeContainer.appendChild(E.amPM)),E.timeContainer}()),u(E.calendarContainer,"rangeMode","range"===E.config.mode),u(E.calendarContainer,"animate",!0===E.config.animate),u(E.calendarContainer,"multiMonth",E.config.showMonths>1),E.calendarContainer.appendChild(e);var o=void 0!==E.config.appendTo&&void 0!==E.config.appendTo.nodeType;if((E.config.inline||E.config.static)&&(E.calendarContainer.classList.add(E.config.inline?"inline":"static"),E.config.inline&&(!o&&E.element.parentNode?E.element.parentNode.insertBefore(E.calendarContainer,E._input.nextSibling):void 0!==E.config.appendTo&&E.config.appendTo.appendChild(E.calendarContainer)),E.config.static)){var s=f("div","flatpickr-wrapper");E.element.parentNode&&E.element.parentNode.insertBefore(s,E.element),s.appendChild(E.element),E.altInput&&s.appendChild(E.altInput),s.appendChild(E.calendarContainer)}E.config.static||E.config.inline||(void 0!==E.config.appendTo?E.config.appendTo:window.document.body).appendChild(E.calendarContainer)}(),function(){if(E.config.wrap&&["open","close","toggle","clear"].forEach((function(e){Array.prototype.forEach.call(E.element.querySelectorAll("[data-"+e+"]"),(function(n){return P(n,"click",E[e])}))})),E.isMobile)!function(){var e=E.config.enableTime?E.config.noCalendar?"time":"datetime-local":"date";E.mobileInput=f("input",E.input.className+" flatpickr-mobile"),E.mobileInput.tabIndex=1,E.mobileInput.type=e,E.mobileInput.disabled=E.input.disabled,E.mobileInput.required=E.input.required,E.mobileInput.placeholder=E.input.placeholder,E.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",E.selectedDates.length>0&&(E.mobileInput.defaultValue=E.mobileInput.value=E.formatDate(E.selectedDates[0],E.mobileFormatStr)),E.config.minDate&&(E.mobileInput.min=E.formatDate(E.config.minDate,"Y-m-d")),E.config.maxDate&&(E.mobileInput.max=E.formatDate(E.config.maxDate,"Y-m-d")),E.input.getAttribute("step")&&(E.mobileInput.step=String(E.input.getAttribute("step"))),E.input.type="hidden",void 0!==E.altInput&&(E.altInput.type="hidden");try{E.input.parentNode&&E.input.parentNode.insertBefore(E.mobileInput,E.input.nextSibling)}catch(e){}P(E.mobileInput,"change",(function(e){E.setDate(p(e).value,!1,E.mobileFormatStr),ve("onChange"),ve("onClose")}))}();else{var e=s(oe,50);if(E._debouncedChange=s(k,300),E.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&P(E.daysContainer,"mouseover",(function(e){"range"===E.config.mode&&re(p(e))})),P(window.document.body,"keydown",te),E.config.inline||E.config.static||P(window,"resize",e),void 0!==window.ontouchstart?P(window.document,"touchstart",Z):P(window.document,"mousedown",Z),P(window.document,"focus",Z,{capture:!0}),!0===E.config.clickOpens&&(P(E._input,"focus",E.open),P(E._input,"click",E.open)),void 0!==E.daysContainer&&(P(E.monthNav,"click",Oe),P(E.monthNav,["keyup","increment"],R),P(E.daysContainer,"click",le)),void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement){var n=function(e){return p(e).select()};P(E.timeContainer,["increment"],x),P(E.timeContainer,"blur",x,{capture:!0}),P(E.timeContainer,"click",F),P([E.hourElement,E.minuteElement],["focus","click"],n),void 0!==E.secondElement&&P(E.secondElement,"focus",(function(){return E.secondElement&&E.secondElement.select()})),void 0!==E.amPM&&P(E.amPM,"click",(function(e){x(e),k()}))}E.config.allowInput&&P(E._input,"blur",ne)}}(),(E.selectedDates.length||E.config.noCalendar)&&(E.config.enableTime&&I(E.config.noCalendar?E.latestSelectedDateObj:void 0),be(!1)),T();var n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!E.isMobile&&n&&ce(),ve("onReady")}(),E}function T(e,n){for(var t=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),r=[],o=0;o{const n=(e,n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:()=>{}},d=function(e,n){if(!n||1===n)return e.store;var t=e.store.modules&&e.store.modules.team;return t?t.getTeam(n):void 0},h=function(n,t){n.emit("UPDATE",{teams:t.stores,roTeams:t.roStores,id:t.channel,loading:!t.ready&&!t.cacheready,readOnly:t.readOnly||!t.ready&&t.cacheready||t.offline,offline:t.offline,deleted:!t.stores.length,restricted:t.restricted,owned:n.Store.isOwned(t.owners),content:e.clone(t.proxy),hashes:t.hashes},n.clients)},p=function(e,n){var t=e.calendars[n];t&&t.reminders&&Object.keys(t.reminders).forEach((function(e){Array.isArray(t.reminders[e])&&t.reminders[e].forEach((function(e){clearTimeout(e)}))}))},v=function(e,n){var t=e.calendars[n];t&&(t.stores.length||(t.lm.stop(),p(e,n),delete e.calendars[n]))},y=function(e,n,t){n.stores.forEach((function(r){var o=d(e,r);if(o&&o.proxy&&o.rpc&&o.proxy.calendars){var a=o.proxy.calendars[n.channel];a&&(a.color!==t.color&&(a.color=t.color),a.title!==t.title&&(a.title=t.title))}}))},m=function(n,t,r,o){var a=+new Date,i=e.clone(r),s=i.id;if(Array.isArray(t[s])&&t[s].forEach((function(e){clearTimeout(e)})),t[s]=[],!r.deleted){var u=e.find(n,["store","proxy","hideReminders",s])||[],f=n.store.data.lastVisit;if(i.isAllDay&&(i.startDay&&(i.start=+c.parseDate(i.startDay)),i.endDay)){var l=c.parseDate(i.endDay);l.setHours(23),l.setMinutes(59),l.setSeconds(59),i.end=+l}var d=a-6048e5,h=o&&i.start>f&&i.end<=a&&i.end>d;if(i.end<=a&&!h)return delete t[s],void function(n,t){var r=e.find(n,["store","proxy","hideReminders"])||{};Object.keys(r).filter((function(e){return e===t})).forEach((function(e){delete r[e]}))}(n,s);var p=!1,v=function(t){p=!0,n.Store.onReadyEvt.reg((function(){!function(t){if(!e.find(n,["store","proxy","settings","general","calendar","hideNotif"])){var r=i.start<=a?i.start:+new Date;n.store.mailbox.showMessage("reminders",{msg:{ctime:r,type:"REMINDER",missed:Boolean(h),content:i},hash:"REMINDER|"+s+"-"+t},null,(function(){}))}}(t)}))},y=i.reminders||[];y.sort((function(e,n){return e-n})),y.some((function(e){var n=a+6e4*e;if(!u.some((function(n){return e>=n})))return i.start-n>=2147483647||(i.start<=n?(v(e),!0):void t[s].push(setTimeout((function(){v(e)}),i.start-n)))})),p||n.Store.onReadyEvt.reg((function(){n.store.mailbox.hideMessage("reminders",{hash:"REMINDER|"+s},null,(function(){}))}))}},g=function(n,t,r,o){var i=function(e){var n=new Date,t=new Date(n.getFullYear(),n.getMonth()-1,15),r=new Date(n.getFullYear(),n.getMonth()+1,15),o=a.getMonthId(t),i=a.getMonthId(n),s=a.getMonthId(r),c=a.getRecurring([o,i,s],[e]),u=[e];return Array.prototype.push.apply(u,c),a.applyUpdates(u)}(e.clone(r));i.forEach((function(e){m(n,t,e,o)}))},E=function(e,n,t){var r=e.calendars[n];t&&r&&r.reminders&&(1===r.stores.length&&0===r.stores[0]||g(e,r.reminders,t))},b=function(n,t,r){var o=n.calendars[t];if(o&&o.reminders&&!Object.keys(o.reminders).length&&(1!==o.stores.length||0!==o.stores[0])){var a=e.find(o,["proxy","content"]);a&&Object.keys(a).forEach((function(e){g(n,o.reminders,a[e],r)}))}},O=function(t,r,a){var c=e.once(e.mkAsync(a||function(){})),l=r.storeId,v=r.data,m=v.channel;if(m){var g=t.calendars[m],O=function(){h(t,g)};if(g){if(g.readOnly&&v.href){var A=n.parsePadUrl(v.href),w=n.getSecrets("calendar",A.hash,v.password),D=u.createEncryptor(w.keys);g.hashes.editHash=n.getEditHashFromKeys(w),g.lm.setReadOnly(!1,D),g.readOnly=!1}else if(0===l)return 1===g.stores.length&&0===g.stores[0]&&g.tempId.length&&r.cId&&g.tempId.push(r.cId),void c();return-1!==g.roStores.indexOf(l)&&v.href&&(g.roStores.splice(g.roStores.indexOf(l),1),-1!==g.stores.indexOf(0)&&g.stores.splice(g.stores.indexOf(0),1),O()),g.stores&&-1!==g.stores.indexOf(l)?void c():(-1!==g.stores.indexOf(0)&&(g.stores.splice(g.stores.indexOf(0),1),g.tempId=[]),g.stores.push(l),v.href||g.roStores.push(l),O(),void c())}g=t.calendars[m]={ready:!1,channel:m,readOnly:!v.href,tempId:[],stores:[l],roStores:v.href?[]:[l],reminders:{},hashes:{}},0===l&&g.tempId.push(r.cId);var _=n.parsePadUrl(v.href||v.roHref),T=n.getSecrets("calendar",_.hash,v.password),S=u.createEncryptor(T.keys);g.hashes.viewHash=n.getViewHashFromKeys(T),v.href&&(g.hashes.editHash=n.getEditHashFromKeys(T)),g.proxy={metadata:{color:v.color,title:v.title}},O();var x=function(){g.stores.forEach((function(e){var n=d(t,e);n&&n.rpc&&n.proxy.calendars&&(delete n.proxy.calendars[m],(n.unpin||t.unpinPads)([m],(function(e){e&&e.error&&console.error(e.error)})))})),g.lm&&g.lm.stop(),g.stores=[],h(t,g),p(t,m),delete t.calendars[m]};i((function(e){t.store.network&&!r.isNew&&t.Store.isNewChannel(null,m,e((function(n){if(!n||!n.error)return n&&"boolean"==typeof n.isNew&&n.isNew?(x(),c({error:"EDELETED"}),void e.abort()):void 0})))})).nThen((function(){var e;if(1!==l&&l){var n=t.store.modules.team&&t.store.modules.team.getTeamsData(),a=n&&n[l];e=a?a.edPublic:void 0}else e=t.store.proxy.edPublic;var i={data:{},network:t.store.network||t.store.networkPromise,channel:T.channel,crypto:S,owners:[e],ChainPad:f,validateKey:T.keys.validateKey||void 0,userName:"calendar",Cache:o,classic:!0,onRejected:t.Store&&t.Store.onRejected},u=s.create(i);g.lm=u;var d=g.proxy=u.proxy,h=!1,p=function(){h||(h=!0,setTimeout((function(){h=!1,O()})))};u.proxy.on("cacheready",(function(){d.metadata&&(g.cacheready=!0,p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif))})).on("ready",(function(e){var n=e.metadata;if(g.owners=n.owners||[],g.ready=!0,!d.metadata){if(!r.isNew)return void x();d.metadata={color:v.color,title:v.title}}p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif)})).on("change",[],(function(){g.ready&&p()})).on("change",["content"],(function(e,n,r){2!==r.length||!n||e?2!==r.length||n||!e?(r.length>=3&&["start","reminders","isAllDay"].includes(r[2])||r.length>=6&&["start","reminders","isAllDay"].includes(r[5]))&&setTimeout((function(){E(t,m,d.content[r[1]])})):E(t,m,{id:r[1],start:0}):E(t,m,n)})).on("remove",["content"],(function(e,n){p(),(n.length>=3&&"reminders"===n[2]||n.length>=6&&"reminders"===n[5])&&setTimeout((function(){E(t,m,d.content[n[1]])}))})).on("change",["metadata"],(function(){var e=d.metadata;e&&e.title&&e.color&&y(t,g,e)})).on("disconnect",(function(){g.offline=!0,p()})).on("reconnect",(function(){g.offline=!1,p()})).on("error",(function(e){e&&e.error&&("EDELETED"!==e.error?("ERESTRICTED"===e.error&&(g.restricted=!0,p()),c(e)):x())}))}))}},A=function(e,n){if(n.href&&-1===n.href.indexOf("#"))if(e.secondaryKey)try{n.href=e.userObject.cryptor.decrypt(n.href)}catch(e){console.error(e),delete n.href}else delete n.href},w=function(n,t){var r=t.proxy.calendars,o=t.id||1;t.proxy.on("change",["calendars"],(function(r,a,i){i.length<2||(r&&!a&&function(){var e=i[1],t=n.calendars[e];if(t){var r=t.stores.indexOf(o);if(-1!==r){t.stores.splice(r,1);var a=t.roStores.indexOf(o);-1!==a&&t.roStores.splice(a,1),v(n,e),h(n,t)}}}(),!r&&a&&function(){var r=i[1],a=t.proxy.calendars[r];if(a){var s=e.clone(a);A(t,s),O(n,{storeId:o,data:s})}}())})),Object.keys(r||{}).forEach((function(a){var i=e.clone(r[a]);A(t,i),O(n,{storeId:o,lastVisitNotif:!0,data:i})}))},D=function(e,t,o,a){var i=d(e,t.teamId);if(i)if(i.rpc){var s,c,u,f=i.proxy.calendars=i.proxy.calendars||{},l=(s=n.createRandomHash("calendar"),c=n.getSecrets("calendar",s),u=n.getViewHashFromKeys(c),{href:n.hashToHref(s,"calendar"),roHref:n.hashToHref(u,"calendar"),channel:c.channel});l.color=t.color,l.title=t.title,O(e,{storeId:i.id||1,data:l,isNew:!0},(function(n){if(n)return console.error(n),void a({error:n.error});var t=e.calendars[l.channel];r.whenRealtimeSyncs(t.lm.realtime,(function(){f[l.channel]=l,(i.pin||e.pinPads)([l.channel],(function(e){e&&e.error&&console.error(e.error)})),e.Store.onSync(i.id,a)}))}))}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})};return l.init=function(t,o,a){var s={},c=t.store,u={loggedIn:c.loggedIn&&c.proxy.edPublic,store:c,Store:t.Store,pinPads:t.pinPads,unpinPads:t.unpinPads,updateMetadata:t.updateMetadata,emit:a,onReady:e.mkEvent(!0),calendars:{},clients:[]};return function(e,n){var t=e.store.proxy;t.calendars=t.calendars||{},setTimeout(n)}(u,o((function(e){e||function(e){w(e,e.store);var n=e.store.modules.team&&e.store.modules.team.getTeamsData();n&&Object.keys(n).forEach((function(n){var t=d(e,n);w(e,t)}))}(u)}))),u.store.proxy.on("change",["hideReminders"],(function(e,n,t){var r=t[1].split("|")[0];Object.keys(u.calendars).some((function(e){var n=u.calendars[e];if(n&&n.proxy&&n.proxy.content)return n.proxy.content[r]?(setTimeout((function(){E(u,e,n.proxy.content[r])})),!0):void 0}))})),s.closeTeam=function(e){Object.keys(u.calendars).forEach((function(n){var t=u.calendars[n],r=t.stores.indexOf(e);if(-1!==r){t.stores.splice(r,1);var o=t.roStores.indexOf(e);-1!==o&&t.roStores.splice(o,1),v(u,n),h(u,t)}}))},s.openTeam=function(e){var n=d(u,e);n&&w(u,n)},s.upgradeTeam=function(n){if(n){var t=d(u,n);t&&Object.keys(u.calendars).forEach((function(r){var o=u.calendars[r];if(-1!==o.stores.indexOf(n)){var a=t.proxy.calendars[r],i=e.clone(a);A(t,i),O(u,{storeId:n,data:i}),h(u,o)}}))}},s.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1),Object.keys(e.calendars).forEach((function(t){var r=e.calendars[t];if(1===r.stores.length&&0===r.stores[0]&&r.tempId.length){var o=r.tempId.indexOf(n);-1!==o&&r.tempId.splice(o,1),r.tempId.length||(r.stores=[],v(e,t))}}))}(u,e)},s.execCommand=function(t,o,a){var s=o.cmd,c=o.data;if("SUBSCRIBE"!==s){if("OPEN"!==s)return"IMPORT"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=r.id,s=t.calendars[i];if(s)if(Array.isArray(s.stores)&&-1!==s.stores.indexOf(r.teamId)){var c=t.store,u=c.proxy.calendars=c.proxy.calendars||{},f=s.hashes.editHash,l=s.hashes.viewHash;u[i]={href:f&&n.hashToHref(f,"calendar"),roHref:l&&n.hashToHref(l,"calendar"),channel:i,color:e.find(s,["proxy","metadata","color"])||e.getRandomColor(),title:e.find(s,["proxy","metadata","title"])||"..."},t.Store.onSync(null,a),O(t,{storeId:1,data:{href:u[i].href,toHref:u[i].roHref,channel:i}})}else a({error:"EINVAL"});else a({error:"ENOENT"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"IMPORT_ICS"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.id,i=e.calendars[a];if(i&&i.proxy){var s=n.json;i.proxy.content=i.proxy.content||{},Object.keys(s).forEach((function(n){i.proxy.content[n]=s[n],E(e,a,s[n])})),r.whenRealtimeSyncs(i.lm.realtime,(function(){h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"ADD"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=d(t,r.teamId);if(i)if(i.rpc){var s=i.proxy.calendars=i.proxy.calendars||{},c=n.parsePadUrl(r.href),u=n.getSecrets(c.type,c.hash,r.password);if(u.channel===r.channel){var f=n.getEditHashFromKeys(u),l=n.getViewHashFromKeys(u),h=f&&n.hashToHref(f,"calendar"),p={href:h,roHref:l&&n.hashToHref(l,"calendar"),color:r.color,title:r.title,channel:r.channel};!s[r.channel]||!s[r.channel].href&&p.href?(p.color=r.color,p.title=r.title,O(t,{storeId:i.id||1,data:e.clone(p)},(function(e){if(e)return console.error(e),void a({error:e.error});if(h&&i.id&&i.secondaryKey)try{p.href=i.userObject.cryptor.encrypt(h)}catch(e){console.error(e)}s[p.channel]=p,(i.pin||t.pinPads)([p.channel],(function(e){e&&e.error&&console.error(e.error)})),t.Store.onSync(i.id,a)}))):a()}else a({error:"EINVAL"})}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE"===s?u.loggedIn?c.initialCalendar?void u.Store.onReadyEvt.reg((function(){D(u,c,0,a)})):u.store.offline?void a({error:"OFFLINE"}):void D(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"UPDATE"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){var i=t.id,s=n.calendars[i];if(s){var c=e.find(s,["proxy","metadata"]);c?(c.title=t.title,c.color=t.color,r.whenRealtimeSyncs(s.lm.realtime,a),h(n,s),y(n,s,t)):a({error:"EINVAL"})}else a({error:"ENOENT"})}(u,c,0,a):"DELETE"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(e,n,t,r){var o=d(e,n.teamId);if(o)if(o.rpc){if(o.proxy.calendars){var a=n.id;if(o.proxy.calendars[a]){delete o.proxy.calendars[a],(o.unpin||e.unpinPads)([a],(function(e){e&&e.error&&console.error(e.error)}));var i=e.calendars[a],s=i.stores.indexOf(o.id||1);i.stores.splice(s,1),v(e,a),e.Store.onSync(o.id,(function(){h(e,i),r()}))}else r()}}else r({error:"EFORBIDDEN"});else r({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.calendarId,i=e.calendars[a];if(i){var s=new Date(n.start),c=new Date(n.end);n.isAllDay?(n.startDay=s.getFullYear()+"-"+(s.getMonth()+1)+"-"+s.getDate(),n.endDay=c.getFullYear()+"-"+(c.getMonth()+1)+"-"+c.getDate()):(delete n.startDay,delete n.endDay),i.proxy.content=i.proxy.content||{},i.proxy.content[n.id]=n,r.whenRealtimeSyncs(i.lm.realtime,(function(){E(e,a,n),h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"UPDATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){if(t&&t.ev){var s=t.ev.calendarId,c=n.calendars[s];if(c&&c.proxy&&c.proxy.content){var u=c.proxy.content[t.ev.id];if(u){t.rawData=t.rawData||{};var f,l=t.changes||{},d=t.type||{};if(l.calendarId){if(!(f=n.calendars[l.calendarId])||!f.proxy)return void a({error:"ENOENT"});f.proxy.content=f.proxy.content||{}}var p={one:{},from:{}};["one","from","all"].includes(d.which)&&(u.recUpdate=u.recUpdate||p,u.recUpdate.one||(u.recUpdate.one={}),u.recUpdate.from||(u.recUpdate.from={}));var v=u.recUpdate,y=["calendarId"],m=Object.keys(l).filter((function(e){return!y.includes(e)})),g=function(e){[v.from,v.one].forEach((function(n){Object.keys(n).forEach((function(t){Number(t){var o,a;const i=[];null==Ht||Ht.httpUnsafeOrigin;const s=null===(a=null===(o=e.store)||void 0===o?void 0:o.proxy)||void 0===a?void 0:a.edPublic;Lt((e=>{((e,n,t)=>{const r=[],o=null==Ht?void 0:Ht.httpUnsafeOrigin;ie.fetchApi(o,"config",!0,(e=>{var o,a;(null===(o=null==e?void 0:e.adminKeys)||void 0===o?void 0:o.includes(n))&&r.push("admin"),(null===(a=null==e?void 0:e.moderatorKeys)||void 0===a?void 0:a.includes(n))&&r.push("moderator"),t(r)}))})(0,s,e((e=>{Array.prototype.push.apply(i,e)})))})).nThen((n=>{((e,n,t)=>{e.Store.anonRpcMsg("",{msg:"IS_PREMIUM",data:n},(e=>{let n=Array.isArray(e)&&e[0];t(n)}))})(e,s,n((e=>{e&&i.push("premium")})))})).nThen((()=>{r(i)}))},Kt={init:(e,n,t)=>{const r={store:e.store,Store:e.Store,updateMetadata:e.updateMetadata};return{removeClient:()=>{},execCommand:(e,n,t)=>{console.log("Exex command",e,n);const o=n.cmd;n.data;"LIST_BADGES"!==o?t():jt(r,0,0,t)}}},setCustomize:e=>{console.error("PAICONFIG",e),Ht=null==e?void 0:e.ApiConfig}};var Ut,Bt=o(Object.freeze({__proto__:null,Badge:Kt}));function Vt(){return Ut||(Ut=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A,w,D,_,T,S,x,N,I,C={},R,P,k,M,F,L)=>{const H=y.Account,j=m.Drive,K=x.Badge,U=globalThis;globalThis.nacl=globalThis.nacl||R.Nacl;const B=i.Saferphore;var V=i.mkEvent(!0),Y=i.mkEvent(!0),G=i.mkEvent(!0),J=i.mkEvent(!0);var q={drive:{hideDuplicate:!0},pad:{width:!0,spellcheck:!0},security:{unsafeLinks:!1},general:{allowUserFeedback:!0}};return{setCustomize:n=>{e=n.ApiConfig,C=n.AppConfig},create:function(y){var m=U.Cryptpad_Store={};let x=y.query||function(){},P=y.broadcast||function(){};var M=U.CryptPad_AsyncStore={modules:{}};m.onReadyEvt=V;var W=[],z=function(e,n,t){W.forEach((function(r){r!==t&&x(r,e,n)}))},Q=function(e){if(!e)return M;try{var n=M.modules.team.getTeam(e);return n||void console.error("Team not found",e)}catch(n){return console.error(n),void console.error("Team not found",e)}},Z=m.onSync=function(e,n){var t=Q(e);t?L((function(e){if(t.realtime&&u.whenRealtimeSyncs(t.realtime,e()),!t.id&&t.drive?.realtime&&u.whenRealtimeSyncs(t.drive.realtime,e()),t.sharedFolders&&"object"==typeof t.sharedFolders)for(var n in t.sharedFolders)t.sharedFolders[n].realtime&&u.whenRealtimeSyncs(t.sharedFolders[n].realtime,e())})).nThen((function(){n()})):n({error:"ENOTFOUND"})};m.get=function(e,n,t){var r=Q(n.teamId);r?r.proxy?t(i.find(r.proxy,n.key)):t({error:"ENODRIVE"}):t({error:"ENOTFOUND"})},m.set=function(e,n,t){var r=Q(n.teamId);if(r)if(r.proxy){var o=n.key.slice(),a=o.pop(),s=i.find(r.proxy,o);s&&"object"==typeof s?(void 0===n.value?delete s[a]:s[a]=n.value,n.teamId||(P([e],"UPDATE_METADATA"),Array.isArray(o)&&"profile"===o[0]&&M.messenger&&f.updateMyData(M)),Z(n.teamId,t)):t({error:"INVALID_PATH"})}else t({error:"ENODRIVE"});else t({error:"ENOTFOUND"})};const X=e=>{let n;if(e){const t=Q(e);n=t?.drive?.proxy}else n=M.drive?.proxy;return n};m.drive={get:(e,n,t)=>{let r=X(n.teamId);t(r||{error:"ENOTFOUND"})},set:(e,n,t)=>{let r=X(n.teamId);var o,a;r?(o=r,a=n.value,Object.keys(o).forEach((e=>{delete o[e]})),Object.keys(a).forEach((e=>{o[e]=i.clone(a[e])})),Z(n.teamId,t)):t({error:"ENOTFOUND"})}},m.getSharedFolder=function(e,n,r){var o,a=Q(n.teamId),s=n.id;if(a&&a.manager){if(a.manager.folders[s])return(o=i.clone(a.manager.folders[s].proxy)).offline=Boolean(a.manager.folders[s].offline),void r(o);var c=i.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};c[s]?m.loadSharedFolder(n.teamId,s,c[s],(function(){r(a.manager.folders[s].proxy)})):r({})}else r({error:"ENOTFOUND"})},m.restoreSharedFolder=function(e,n,t){if(n.sfId&&n.drive){var r=Q(n.teamId);r.sharedFolders[n.sfId]&&(Object.keys(n.drive).forEach((function(e){r.sharedFolders[n.sfId].proxy[e]=n.drive[e]})),Object.keys(r.sharedFolders[n.sfId].proxy).forEach((function(e){n.drive[e]||delete r.sharedFolders[n.sfId].proxy[e]}))),Z(n.teamId,t)}else t({error:"EINVAL"})},m.hasSigningKeys=function(){if(M.proxy)return"string"==typeof M.proxy.edPrivate&&"string"==typeof M.proxy.edPublic},m.hasCurveKeys=function(){if(M.proxy)return"string"==typeof M.proxy.curvePrivate&&"string"==typeof M.proxy.curvePublic},m.isOwned=function(e){var n=M.proxy.edPublic;if(!n)return!1;if(!Array.isArray(e)||!e.length)return!1;if(-1!==e.indexOf(n))return!0;var t=M.proxy.teams;return!!t&&Object.keys(t).some((function(n){var r=i.find(t[n],["keys","drive","edPublic"]);return r&&-1!==e.indexOf(r)}))};var $=function(e){var n=e?M.manager.getChannelsList("expirable"):function(){var e=`${M.driveChannel}#drive`;if(!e)return null;var n=M.manager.getChannelsList("pin"),t=M.proxy.profile;if(t){var r=t.edit?a.hrefToHexChannelId("/profile/#"+t.edit,null):null;r&&n.push(r);var o=t.avatar?a.hrefToHexChannelId(t.avatar,null):null;o&&n.push(o)}if(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.friends){var i=f.getFriendChannelsList(M.proxy);n=n.concat(i)}if(M.proxy.mailboxes){var s=Object.keys(M.proxy.mailboxes).map((function(e){if("broadcast"!==e||M.isAdmin)return M.proxy.mailboxes[e].channel})).filter(Boolean);n=n.concat(s)}if(M.proxy.calendars){var c=Object.keys(M.proxy.calendars).map((function(e){return M.proxy.calendars[e].channel}));n=n.concat(c)}return n.push(e),M.data&&M.data.blockId&&n.push(`${M.data.blockId}#block`),n.sort(),n}();return i.deduplicateString(n).sort()};m.pinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){"function"!=typeof t&&(console.error("expected a callback"),t=function(){});var o=n.pads||n;r.rpc.pin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})},m.unpinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){var o=n.pads||n;r.rpc.unpin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})};var ee=M.account={};m.getPinnedUsage=function(e,n,t){var r=Q(n&&n.teamId);r&&r.rpc?r.rpc.getFileListSize((function(e,n){r.id||"number"!=typeof n||(ee.usage=n),t({bytes:n})})):t({error:"RPC_NOT_READY"})},m.updatePinLimit=function(e,n,t){M.rpc?M.rpc.updatePinLimits((function(e,n,r,o){e?t({error:e}):(ee.limit=n,ee.plan=r,ee.note=o,t(ee))})):t({error:"RPC_NOT_READY"})},m.getPinLimit=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.getLimit((function(e,n,o,a){if(e)t({error:e});else{var i=r.id?{}:ee;i.limit=n,i.plan=o,i.note=a,t(i)}})):t({error:"RPC_NOT_READY"})},m.clearOwnedChannel=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.clearOwnedChannel(n.channel,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})};var ne={};m.removeOwnedChannel=function(e,n,t){var r,o,a=n,i=!1;if(n&&"object"==typeof n&&(a=n.channel,i=n.force,r=n.teamId,o=n.reason),a!==M.driveChannel||i){var s=Q(r);s?s.rpc?(m.channels[a]&&(ne[a]=!0),s.rpc.removeOwnedChannel(a,(function(e){e&&delete ne[a],t({error:e})}),o)):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})}else t({error:"User drive removal blocked!"})};m.uploadComplete=function(e,n,t){var r=Q(n.teamId);r?r.rpc?n.owned?r.rpc.ownedUploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):r.rpc.uploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadStatus=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadStatus(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadCancel=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadCancel(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadChunk=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.send.unauthenticated("UPLOAD",n.chunk,(function(e,n){t({error:e,msg:n})})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})};m.anonRpcMsg=function(e,n,t){M.anon_rpc?M.anon_rpc.send(n.msg,n.data,(function(e,n){t(e?{error:e}:n)})):t({error:"ANON_RPC_NOT_READY"})},m.getFileSize=function(e,n,t){var r=i.once(i.mkAsync(t));if(M.anon_rpc){var o=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("GET_FILE_SIZE",o,(function(e,n){if(!e)return n&&n.length&&"number"==typeof n[0]?(0===n[0]&&p.clearChannel(o),void r({size:n[0]})):void r({error:"INVALID_RESPONSE"});r({error:e})}))}else r({error:"ANON_RPC_NOT_READY"})},m.isNewChannel=function(e,n,t){if(M.anon_rpc){var r=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("IS_NEW_CHANNEL",r,(function(e,n){if(!e)return n&&n.length&&"object"==typeof n[0]?(n[0].isNew&&p.clearChannel(r),void t(n[0])):void t({error:"INVALID_RESPONSE"});t({error:e})}))}else t({error:"ANON_RPC_NOT_READY"})},m.getMultipleFileSize=function(e,n,t){M.anon_rpc?Array.isArray(n.files)?M.anon_rpc.send("GET_MULTIPLE_FILE_SIZE",n.files,(function(e,n){e?t({error:e}):n&&n.length&&"object"==typeof n[0]?t({size:n[0]}):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"}):t({error:"ANON_RPC_NOT_READY"})},m.getDeletedPads=function(e,n,t){if(M.anon_rpc){var r=n&&n.list||$(!0);Array.isArray(r)?M.anon_rpc.send("GET_DELETED_PADS",r,(function(e,n){e?t({error:e}):n&&n.length&&Array.isArray(n[0])?t(n[0]):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"})}else t({error:"ANON_RPC_NOT_READY"})};var te=function(e,n,t){M.anon_rpc?t():d.createAnonymous(M.network,(function(e,n){e?t({error:e}):(M.anon_rpc=n,t())}))},re=m.getAllStores=function(){if(!M.proxy||!M.manager)return[];var e=[M],n=M.modules.team;if(n){var t=n.getTeams().map((function(e){return n.getTeam(e)}));Array.prototype.push.apply(e,t)}return e};m.getUserColor=function(){var e=i.find(M,["proxy","settings","general","cursor","color"]);return e||(e=i.getRandomColor(!0),m.setAttribute(null,{attr:["general","cursor","color"],value:e},(function(){}))),e},m.getMetadata=function(e,n,t){var r=M.proxy||{},o=i.find(r,["settings","general","disableThumbnails"]),c=M.modules.team&&M.modules.team.getTeamsData(n)||{};r.uid||(M.noDriveUid=M.noDriveUid||a.createChannelId());var u={user:{name:r[s.displayNameKey]||M.noDriveName||"",uid:r.uid||M.noDriveUid,avatar:i.find(r,["profile","avatar"]),profile:i.find(r,["profile","view"]),color:m.getUserColor(),notifications:i.find(r,["mailboxes","notifications","channel"]),curvePublic:r.curvePublic,badge:i.find(r,["profile","badge"])},priv:{clientId:e,edPublic:r.edPublic,friends:r.friends||{},settings:r.settings||q,thumbnails:!1===o,isDriveOwned:Boolean(i.find(M,["driveMetadata","owners"])),driveChannel:M.driveChannel,pendingFriends:r.friends_pending||{},supportPrivateKey:i.find(r,["mailboxes","supportadmin","keys","curvePrivate"]),accountName:r.login_name||"",offline:M.proxy&&M.offline,teams:c,plan:M.ready?ee.plan||"":void 0,mutedChannels:r.mutedChannels}};return t(JSON.parse(JSON.stringify(u))),u},m.onMaintenanceUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{e&&P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"MAINTENANCE",data:e.maintenance}})}))},m.onSurveyUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"SURVEY",data:e.surveyURL}})}))};m.addPad=function(e,n,r){if(n.href||n.roHref){var o;if(!n.roHref){var i=a.parsePadUrl(n.href);"pad"===i.hashData.type&&(o=a.getSecrets(i.type,i.hash,n.password),n.roHref="/"+i.type+"/#"+a.getViewHashFromKeys(o))}var s,c,u,f,l=(s=n.href,c=n.roHref,u=n.title,f=+new Date,{href:s,roHref:c,atime:f,ctime:f,title:u||t.getDefaultName(a.parsePadUrl(s))});n.owners&&(l.owners=n.owners),n.expire&&(l.expire=n.expire),n.password&&(l.password=n.password),(n.channel||o)&&(l.channel=n.channel||o.channel),n.readme&&(l.readme=1),-1===n.teamId&&(n.teamId=void 0);var d=Q(n.teamId);d&&d.manager?d.manager.addPad(n.path,l,(function(o){o?r({error:o}):(re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,r))})):r({error:"ENOTFOUND"})}else r({error:"NO_HREF"})};var oe=function(e,n){var t=i.find(M,["proxy","edPublic"]),r=function(e){var n=[];return e?(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.profile&&M.proxy.profile.edit&&n.push(a.hrefToHexChannelId("/profile/#"+M.proxy.profile.edit,null)),M.proxy.mailboxes&&Object.keys(M.proxy.mailboxes||{}).forEach((function(e){if("supportadmin"!==e){var t=M.proxy.mailboxes[e];n.push(t.channel)}}))):n=M.manager.getChannelsList("owned"),n.filter((function(e){if("string"==typeof e)return-1!==[32,48].indexOf(e.length)}))}(e),o=B.create(10),s=function(n){e||M.manager.findChannel(n).forEach((function(e){var n=M.manager.findFile(e.id);M.manager.delete({paths:n})}))};r.forEach((function(e){var r=n();o.take((function(n){var o=!1;L((function(a){32===e.length&&m.anonRpcMsg(null,{msg:"GET_METADATA",data:e},a((function(i){if(i&&i.error)return n(),r(),void a.abort();var c=i[0];return Object.keys(c||{}).length?c&&Array.isArray(c.owners)&&-1!==c.owners.indexOf(t)?void(o=c.owners.some((function(e){return e!==t}))):(n(),r(),void a.abort()):(s(e),n(),r(),void a.abort())})))})).nThen((function(n){o?m.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[t]},n()):M.rpc.removeOwnedChannel(e,n((function(n){n?console.error(n):s(e)})))})).nThen((function(){n(),r()}))}))}))};m.removeOwnedPads=function(e,n,t){M.proxy.edPublic?L((function(e){oe(!1,e)})).nThen(t):t({error:"NOT_LOGGED_IN"})},m.deleteAccount=function(e,t,r){var o=M.proxy.edPublic,a=t&&t.keys,c=t&&t.auth;m.anonRpcMsg(e,{msg:"GET_METADATA",data:M.driveChannel},(function(t){var u=t[0];if(u&&u.owners&&1===u.owners.length&&-1!==u.owners.indexOf(o))L((function(e){N.checkRights({auth:c,blockKeys:a},e((function(n){if(n)return e.abort(),console.error(n),void r({error:"INVALID_CODE"})})))})).nThen((function(n){globalThis.accountDeletion=e,M.proxy[s.tokenKey]="DELETED",Z(null,n())})).nThen((function(e){M.rpc.removePins(e((function(e){e&&console.error(e)})))})).nThen((function(n){M.ownDeletion=!0,m.removeOwnedChannel(e,{channel:M.driveChannel,force:!0},n())})).nThen((function(e){a&&N.removeLoginBlock({reason:"ARCHIVE_OWNED",auth:c,edPublic:o,blockKeys:a},e((function(e){e&&console.error(e)})))})).nThen((function(e){oe(!0,e)})).nThen((function(){P([e],"DRIVE_DELETED","ARCHIVE_OWNED"),x(e,"DELETE_ACCOUNT","DELETED",(function(){})),M.network.disconnect(),r({state:!0})}));else{var f={intent:"Please delete my account."};f.drive=M.driveChannel,f.edPublic=o;var l=i.decodeBase64(M.proxy.edPrivate),d=R.Nacl.sign.detached(i.decodeUTF8(n(f)),l);R.Nacl.sign.detached.verify(i.decodeUTF8(n(f)),d,i.decodeBase64(o))||console.error("signed message failed verification");var h=i.encodeBase64(d);r({proof:h,toSign:JSON.parse(n(f))})}}))},m.migrateAnonDrive=function(e,n,t){var r=n.anonHash;h.anonDriveIntoUser(M,r,t)},m.setDisplayName=function(e,n,t){if(!M.proxy)return M.noDriveName=n,P([e],"UPDATE_METADATA"),void t();M.modules.profile&&M.modules.profile.setName(n),M.proxy[s.displayNameKey]=n,P([e],"UPDATE_METADATA"),f.updateMyData(M),Z(null,t)},m.resetDrive=function(e,n,t){L((function(e){oe(e)})).nThen((function(){M.proxy.drive=M.userObject.getStructure(),z("DRIVE_CHANGE",{path:["drive","filesData"]},e),Z(null,t)}))},m.setPadAttribute=function(e,n,r){L((function(r){re().forEach((function(o){o.manager.setPadAttribute(n,r((function(){(o.id?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),Z(o.id,r())})))}))})).nThen(r)},m.getPadAttribute=function(e,n,t){var r={};L((function(e){re().forEach((function(t){t.manager.getPadAttribute(n,e((function(e,n){e||(n&&"object"==typeof n?(!r.value||r.atime{if(M.loggedIn&&M.proxy.edPublic){var n,r=M.modules.team,o=r&&r.getTeams()||[];-1!==e.indexOf(M.proxy.edPublic)?n=M:o.some((function(t){var o=i.find(M,["proxy","teams",t,"keys","drive","edPublic"]),a=i.find(M,["proxy","teams",t,"keys","drive","edPrivate"]);if(-1===e.indexOf(o))return!1;if(!a)return!1;var s=r.getTeam(t);return n=s,!0}));var a=function(){if(n){var e=n.rpc;e?e.send("COOKIE","",(function(e){t(e)})):t("ERESTRICTED")}else t("ERESTRICTED")};n&&n.onRpcReadyEvt?n.onRpcReadyEvt.reg((function(){a()})):a()}else t("ERESTRICTED")}))):t("ERESTRICTED")},m.joinPad=function(e,n){if(n.versionHash)!function(e,n){var t,r=a.createChannelId();L((function(r){m.getPadMetadata(null,{channel:n.channel},r((function(n){if(n&&n.rejected)return x(e,"PAD_ERROR",{type:"ERESTRICTED"}),void r.abort();t=n.validateKey})))})).nThen((function(){m.getHistoryRange(e,{cpCount:1,channel:n.channel,lastKnownHash:n.versionHash},(function(o){if(o&&o.error)x(e,"PAD_ERROR",o.error);else{var a=o.messages||[];a.length&&a[a.length-1].serverHash!==n.versionHash?x(e,"PAD_ERROR",{type:"HASH_NOT_FOUND"}):(x(e,"PAD_CONNECT",{myID:r,id:n.channel,members:[r]}),(o.messages||[]).forEach((function(n){x(e,"PAD_MESSAGE",{msg:n.msg,time:n.time,user:r.slice(0,16)})})),t&&M.messenger&&M.messenger.storeValidateKey(n.channel,t),x(e,"PAD_READY"))}}))}))}(e,n);else if(a.isValidChannel(n.channel)){var r=void 0===se[n.channel],o=se[n.channel]=se[n.channel]||{queue:[],data:{},clients:[],bcast:function(e,n,t){o.clients.forEach((function(r){r!==t&&x(r,e,n)}))},history:[],pushHistory:function(e,n){if(n){var t;for(o.history.push("cp|"+e),t=o.history.length-101;t>0&&!/^cp\|/.test(o.history[t]);t--);o.history=o.history.slice(Math.max(t,0))}else o.history.push(e)}};if(-1===o.clients.indexOf(e)&&o.clients.push(e),!r&&o.wc)return x(e,"PAD_CONNECT",{myID:o.wc.myID,id:o.wc.id,members:o.wc.members}),o.wc.members.forEach((function(n){x(e,"PAD_JOIN",n)})),o.history.forEach((function(n){x(e,"PAD_MESSAGE",{msg:k.removeCp(n),user:o.wc.myID,validateKey:o.data.validateKey})})),void x(e,"PAD_READY");var i=function(e){e&&"EDELETED"===e.type&&ne[n.channel]&&(delete ne[o],e.ownDeletion=!0),o.bcast("PAD_ERROR",e),e&&"EDELETED"===e.type&&p&&p.clearChannel&&p.clearChannel(n.channel),-1!==["EDELETED","EEXPIRED","ERESTRICTED"].indexOf(e.type)&&m.leavePad(null,n,(function(){}))},s={Cache:M.neverCache?void 0:p,priority:1,onCacheStart:function(){x(e,"PAD_CACHE")},onCacheReady:function(){x(e,"PAD_CACHE_READY")},onReady:function(t){var r=t.metadata||{};o.data=r,r&&r.validateKey&&M.messenger&&M.messenger.storeValidateKey(n.channel,r.validateKey),x(e,"PAD_READY",t.noCache)},onMessage:function(e,n,t,r,a){o.lastHash=a,o.pushHistory(e,r),o.bcast("PAD_MESSAGE",{user:n,msg:e,validateKey:t})},onJoin:function(e){o.bcast("PAD_JOIN",e)},onLeave:function(e){o.bcast("PAD_LEAVE",e)},onError:i,onChannelError:i,onRejected:m.onRejected,onConnectionChange:function(e){e.state||o.bcast("PAD_DISCONNECT")},onMetadataUpdate:function(e){o.data=e||{},re().forEach((function(r){r.manager.findChannel(n.channel,!0).forEach((function(n){n.data.owners=e.owners,n.data.atime=+new Date,e.expire&&(n.data.expire=+e.expire)})),(r.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})})),o.bcast("PAD_METADATA",e)},crypto:{encrypt:function(e){return e},decrypt:function(e){return e}},noChainPad:!0,channel:n.channel,metadata:n.metadata,network:M.network||M.networkPromise,websocketURL:I.getWebsocketURL(),onInit:function(){G.fire()},onConnect:function(n,t){o.sendMessage=function(e,r,a){t(e,(function(t){t?a({error:t}):(o.lastHash=e.slice(0,64),o.pushHistory(k.removeCp(e),/^cp\|/.test(e)),o.bcast("PAD_MESSAGE",{user:n.myID,msg:k.removeCp(e),validateKey:o.data.validateKey},r),a())}))},o.wc=n,o.queue.forEach((function(n){o.sendMessage(n.message,e)})),o.queue=[],o.bcast("PAD_CONNECT",{myID:n.myID,id:n.id,members:n.members})}};o.cpNf=k.start(s)}else x(e,"PAD_ERROR","INVALID_CHAN")},m.leavePad=function(e,n,t){var r=se[n.channel];r&&r.cpNf?(m.dropChannel(n.channel),t()):t({error:"EINVAL"})},m.sendPadMsg=function(e,n,t){var r=n.msg,o=se[n.channel];if(o)return o.wc?void o.sendMessage(r,e,t):(o.queue.push(r),void t())},m.corruptedCache=function(e,n){var t=se[n];t&&t.cpNf&&(p.clearChannel(n),t.cpNf.resetCache&&t.cpNf.resetCache())},m.changePadPasswordPin=function(e,n,t){var r=n.oldChannel,o=n.channel;L((function(e){re().forEach((function(n){n.manager.findChannel(o).length&&(n.rpc.unpin([r],e()),n.rpc.pin([o],e()))}))})).nThen(t)},m.contactPadOwner=function(e,n,t){var r=n.owners;if(!Array.isArray(r)||!r.length)return t({state:!1});n.send?L((function(e){r.forEach((function(t){!function(e,t,r,o){if(M.mailbox&&!n.anon)return M.mailbox.sendTo(e,t,r,o);A.sendToAnon(M.anon_rpc,e,t,r,o)}(n.query,{channel:n.channel,data:n.msgData},{channel:t.notifications,curvePublic:t.curvePublic},e())}))})).nThen((function(){t({state:!0})})):t({state:!0})},m.givePadAccess=function(e,n,t){var r,o,a=M.proxy.edPublic,i=n.channel,s=M.manager.findChannel(i);n.user&&n.user.notifications&&n.user.curvePublic?s.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(a)&&e.data.href)return r=e.data.href,o=e.data.title,!0}))?(M.mailbox.sendTo("GIVE_PAD_ACCESS",{channel:i,href:r,title:o},{channel:n.user.notifications,curvePublic:n.user.curvePublic}),t()):t({error:"ENOTFOUND"}):t({error:"EINVAL"})},m.getLastHash=function(e,n,t){var r=se[n.channel];r?r.lastHash?t({hash:r.lastHash}):t({error:"EINVAL"}):t({error:"ENOCHAN"})};m.burnPad=function(e,n){var t=n.channel,r=R.b64AddSlashes(n.ownerKey||"");if(t&&r)try{var o=a.decodeBase64(r),i=R.Nacl.sign.keyPair.fromSecretKey(o);l.create(M.network,{edPublic:a.encodeBase64(i.publicKey),edPrivate:a.encodeBase64(i.secretKey)},(function(e,r){e?console.error(e):m.getPadMetadata(null,{channel:t},(function(e){r.removeOwnedChannel(t,(function(t){t?console.error(t):function(e,n){var t=e.channel,r=e.href,o=a.parsePadUrl(r),i=a.getSecrets(o.type,o.hash,e.password);if((!n||!n.error)&&n.mailbox){var s,c=R.createEncryptor(i.keys),u=[];try{"string"==typeof n.mailbox?u.push(c.decrypt(n.mailbox,!0,!0)):Object.keys(n.mailbox).forEach((function(e){u.push(c.decrypt(n.mailbox[e],!0,!0))}))}catch(e){console.error(e)}try{s=M.proxy.curvePublic}catch(e){return void console.error(e)}u.forEach((function(e){var n=JSON.parse(e);n.curvePublic!==s&&M.mailbox.sendTo("OWNED_PAD_REMOVED",{channel:t},{channel:n.notifications,curvePublic:n.curvePublic},(function(){}))}))}}(n,e)}))}))}))}catch(e){console.error(e)}else console.error("Can't delete BAR pad")},m.getPadMetadata=function(e,r,o){var s=i.once(i.mkAsync(o));if(!M.offline&&M.anon_rpc)if(r.channel){if(32===r.channel.length)return a.isValidChannel(r.channel)?void M.anon_rpc.send("GET_METADATA",r.channel,(function(e,o){if(e)s({error:e});else{var a=o&&o[0]||{};s(a),a.rejected||re().forEach((function(e){var o=e.manager.findChannel(r.channel,!0),i=!1;(o.forEach((function(e){n(e.data.owners)!==n(a.owners)&&(i=!0),e.data.owners=a.owners,e.data.atime=+new Date,a.expire&&(e.data.expire=+a.expire)})),i)&&(e.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))}})):(c.send("METADATA_INVALID_CHAN"),void s({error:"EINVAL"}));s({error:"EINVAL"})}else s({error:"ENOTFOUND"});else s({error:"OFFLINE"})},m.setPadMetadata=function(e,n,t){if(n.channel)if(n.command){var r=Q(n.teamId);if(r){var o=n.channels;delete n.channels,r.rpc.setMetadata(n,(function(e,n){e?t({error:e}):Array.isArray(n)&&n.length?t(n[0]):t({})})),Array.isArray(o)&&o.forEach((function(t){var r=i.clone(n);r.channel=t,m.setPadMetadata(e,r,(function(){}))}))}else t({error:"ENOTFOUND"})}else t({error:"EINVAL"});else t({error:"ENOTFOUND"})},m.deleteMailboxMessage=function(e,n,t){M.anon_rpc?M.anon_rpc.send("DELETE_MAILBOX_MESSAGE",n,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})},m.getFullHistory=function(e,n,t){var r=M.network,o=r.historyKeeper,a=[],i=!1,s=function(e){if(!i){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o)return"FULL_HISTORY_END"===o[0]?(t(a),r.off("message",s),void(i=!0)):void("FULL_HISTORY"===o[0]&&(o[1]&&o[1].validateKey||o[1][3]===n.channel&&(e=o[1][4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),n.debug?a.push({serverHash:e.slice(0,64),msg:e,author:o[1][1],time:o[1][5]}):a.push(e))))}};r.on("message",s),r.sendto(o,JSON.stringify(["GET_FULL_HISTORY",n.channel,n.validateKey]))},m.getHistory=function(e,n,t,r){var o=i.once(i.mkAsync(t)),a=M.network,s=a.historyKeeper,c=Math.floor(1e6*Math.random()),u=[],f=!1,l=function(e,t){if(!f&&t===s){var i=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(i&&!(i.txid&&i.txid!==c||i.validateKey&&i.channel))if(i.error&&i.channel)i.channel===n.channel&&(a.off("message",l),f=!0,o({error:i.error}));else{if(1===i.state&&i.channel){if(i.channel!==n.channel)return;return o(u),a.off("message",l),void(f=!0)}Array.isArray(i)&&i[0]&&i[0]!==c||i[3]===n.channel&&(i[4]&&r?u.push({msg:e,hash:i[4].slice(0,64)}):(e=i[4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),u.push(e)))}}};a.on("message",l);var d={txid:c,lastKnownHash:n.lastKnownHash},h=["GET_HISTORY",n.channel,d];a.sendto(s,JSON.stringify(h))},m.getHistoryRange=function(e,n,t){var r,o=M.network,a=o.historyKeeper,s=[],c=!0,u=!1,f=!1,l=i.uid();o.on("message",(function(e){if(!f){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o[1]===l){if("HISTORY_RANGE_ERROR"!==o[0])return"HISTORY_RANGE_END"===o[0]?(t({messages:s,isFull:u,lastKnownHash:r}),void(f=!0)):void("HISTORY_RANGE"===o[0]&&(o[2]&&o[1].validateKey||o[2][3]===n.channel&&(e=o[2][4])&&(c&&(/^cp\|/.test(e)||n.toHash||(u=!0),r=e.slice(0,64),c=!1),e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),s.push({serverHash:e.slice(0,64),msg:e,author:o[2][1],time:o[2][5]}))));t({error:o[2]})}else console.log("bad txid")}})),o.sendto(a,JSON.stringify(["GET_HISTORY_RANGE",n.channel,{from:n.lastKnownHash,to:n.toHash,cpCount:n.cpCount||2,txid:l}]))};var ce=function(e,n){e&&(e.deprecated||e.restricted||(n||e.on("change",["drive",t.SHARED_FOLDERS],(function(n,r,o){if(o.length>3&&"password"===o[3]){var i=o[2],s=e.drive[t.SHARED_FOLDERS][i],c=M.manager.user.userObject.getHref?M.manager.user.userObject.getHref(s):s.href,u=a.parsePadUrl(c),f=a.getSecrets(u.type,u.hash,n);return v.updatePassword(m,{oldChannel:f.channel,password:r,href:c},M.network,(function(){console.log("Shared folder password changed")})),!1}})),e.on("change",[],(function(e,r,o){if(n){if(o[0]===t.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var a=[r.channel];r.rtChannel&&a.push(r.rtChannel),r.lastVersion&&a.push(r.lastVersion),m.pinPads(null,a,(function(e){console.error(e)}))}if(o[0]===t.FILES_DATA&&"object"==typeof e&&e.channel&&!r){var i=[e.channel];M.manager.findChannel(e.channel).some((function(e){return e.fId!==n}))||(e.rtChannel&&i.push(e.rtChannel),e.lastVersion&&i.push(e.lastVersion),m.unpinPads(null,i,(function(e){console.error(e)})))}}e&&!r&&Array.isArray(o)&&(o[0]===t.FILES_DATA||"drive"===o[0]&&o[1]===t.FILES_DATA)&&setTimeout((function(){m.checkDeletedPad(e&&e.channel)})),z("DRIVE_CHANGE",{id:n,old:e,new:r,path:o})})),e.on("remove",[],(function(e,t){z("DRIVE_REMOVE",{id:n,old:e,path:t})}))))};m.loadSharedFolder=function(e,n,t,r,o){var i=Q(e);if(i){var s=a.parsePadUrl(t.href||t.roHref);s||s.hashData?v.load({isNew:o,network:M.network||M.networkPromise,store:i,Store:m,isNewChannel:m.isNewChannel},n,t,r):r({error:"EINVAL"})}else r({error:"ENOTFOUND"})};var ue=function(e,n,t,r){m.loadSharedFolder(null,e,n,t,r)};m.loadSharedFolderAnon=function(e,n,t){m.loadSharedFolder(null,n.id,n.data,(function(e){t({error:e?void 0:"EDELETED"})}))},m.addSharedFolder=function(e,n,r){V.reg((function(){var o=Q(n.teamId);o.manager.addSharedFolder(n,(function(a){a&&"object"==typeof a&&a.error?r(a):((n.teamId?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),r(a))}))}))},m.updateSharedFolderPassword=function(e,n,t){v.updatePassword(m,n,M.network,t)},m.userObjectCommand=function(e,n,r){if(n&&n.cmd){var o=Q(n.teamId);if(o.offline)return(o.id?o.sendEvent:z)("NETWORK_DISCONNECT"),void r({error:"OFFLINE"});o.manager.command(n,(function(o){re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,(function(){r(o)}))}))}};var fe=m.dropChannel=function(e){console.error("Drop channel",e);try{M.messenger.leavePad(e)}catch(e){console.error(e)}try{M.modules.cursor.leavePad(e)}catch(e){console.error(e)}try{M.modules.integration.leavePad(e)}catch(e){console.error(e)}try{M.onlyoffice.leavePad(e)}catch(e){console.error(e)}try{if(function(e){if(M){if(M.driveChannel===e)return!0;if(v.isSharedFolderChannel(e))return!0;if(i.find(M,["proxy","teams"])){var n=i.find(M,["proxy","teams"])||{};return Object.keys(n).some((function(t){return n[t].channel===e}))}return i.find(M,["proxy","profile","href"])?a.hrefToHexChannelId(i.find(M,["proxy","profile","href"]))===e:void 0}}(e))return void delete m.channels[e]}catch(e){console.error(e)}try{p.leaveChannel(e)}catch(e){console.error(e)}m.channels[e]&&(m.channels[e].cpNf&&m.channels[e].cpNf.stop(),delete m.channels[e])};m._removeClient=function(e){var n=W.indexOf(e);-1!==n&&W.splice(n,1);try{M.onlyoffice?.removeClient(e)}catch(e){console.error(e)}try{M.mailbox?.removeClient(e)}catch(e){console.error(e)}Object.keys(M.modules).forEach((function(n){if(M.modules[n]&&M.modules[n].removeClient)try{M.modules[n].removeClient(e)}catch(e){console.error(e)}})),Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients.indexOf(e);-1!==t&&m.channels[n].clients.splice(t,1),0===m.channels[n].clients.length&&fe(n)}))};m.refreshDriveUI=function(){re().forEach((function(e){(e.id?e.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))};var le=function(e,n){const t=i.mkAsync(n);var o=M.proxy,a=M.drive;if(M.manager)t();else{var s=M.manager=r.create(a.proxy,{onSync:function(e){Z(null,e)},edPublic:o.edPublic,pin:function(e,n){M.loggedIn?m.pinPads(null,e,n):n()},unpin:function(e,n){M.loggedIn?m.unpinPads(null,e,n):n()},loadSharedFolder:ue,settings:o.settings,removeOwnedChannel:function(e,n){m.removeOwnedChannel("",e,n)},store:M,Store:m},{outer:!0,edPublic:M.proxy.edPublic,loggedIn:M.loggedIn,log:function(e){z("DRIVE_LOG",e)},rt:a.realtime}),c=M.userObject=s.user.userObject;L((function(e){M.sharedFolders={},M.handleSharedFolder=function(e,n){n?(M.sharedFolders[e]=n,M.driveEvents&&ce(n.proxy,e)):delete M.sharedFolders[e]},c.migrate(e())})).nThen((function(n){var t=M.network||M.networkPromise;v.loadSharedFolders(m,t,M,a.proxy,c,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)}),!0)})).nThen((function(n){ie(D,"team",n,e)})).nThen((function(e){ie(S,"calendar",e)})).nThen((function(){t()}))}};const de=(e=function(){})=>{ie(g,"cursor",e),ie(b,"integration",e),ie(_,"messenger",e),ie(T,"history",e),ie(K,"badge",e),M.onlyoffice||(M.onlyoffice=O.init(M,(function(e,n,t){t.forEach((function(t){x(t,"OO_EVENT",{ev:e,data:n})}))}))),M&&(M.messenger=M.modules.messenger)};var he=function(e,n,t){M.ready=!0;var r=M.proxy,u=M.manager,f=M.userObject;L((function(n){r.settings||(r.settings=q),r.forms||(r.forms={}),r.friends_pending||(r.friends_pending={}),r.form_seed||(r.form_seed=a.createChannelId()),u||(le(e,n()),u=M.manager,f=M.userObject),te(0,0,n()),function(e,n,t){if(!M.loggedIn)return t();M.rpc?t(ee):l.create(M.network,M.proxy,(function(e,n){e?t({error:e}):(M.rpc=n,M.onRpcReadyEvt.fire(),m.getPinLimit(null,null,(function(e){e.error&&console.error(e.error),ee.limit=e.limit,ee.plan=e.plan,ee.note=e.note,t(e)})))}),p)}(0,0,n()),x(e,"LOADING_DRIVE",{type:"migrate",progress:0})})).nThen((function(n){void 0===r.version&&(r.version=11),o(r,n(),(function(n,t){x(e,"LOADING_DRIVE",{type:"migrate",progress:t})}),M)})).nThen((function(n){x(e,"LOADING_DRIVE",{type:"sf",progress:0}),f.fixFiles(),v.loadSharedFolders(m,M.network,M,M.drive.proxy,f,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)})),de(n),ie(w,"profile",n),ie(S,"calendar",n),ie(E,"support",n),L((e=>{M.modules.team&&M.modules.team.onReady(e)}))})).nThen((function(){var e,o=function(){P([],"REQUEST_LOGIN")};M.loggedIn&&(function(e){if(M.rpc){var n=$(!1),t=a.hashChannelList(n);M.rpc.getServerHash((function(n,r){n?e(n):e(null,r===t)}))}else e({error:"RPC_NOT_READY"})}((function(e,n){n||function(e){if(M.rpc){var n=$(!1);M.rpc.reset(n,(function(n){e(n||null)}))}else e({error:"RPC_NOT_READY"})}((function(e){if(e)return console.error(e);console.log("RESET DONE")}))})),"number"!=typeof r.loginToken&&(r[s.tokenKey]=M.data.localToken||Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),n[s.tokenKey]=r[s.tokenKey],M.data.localToken&&M.data.localToken!==r[s.tokenKey])?o():(n.feedback=i.find(r,["settings","general","allowUserFeedback"]),c.init(n.feedback),M.returned=n,"function"==typeof t&&t(n),M.offline=!1,z("NETWORK_RECONNECT"),P([],"UPDATE_METADATA"),P([],"STORE_READY",n),"string"==typeof r.uid&&32===r.uid.length||(console.log("generating a persistent identifier"),r.uid=a.createChannelId()),!M.loggedIn||m.hasSigningKeys()&&m.hasCurveKeys()?(r.on("change",[s.displayNameKey],(function(e,n){"string"==typeof n&&P([],"UPDATE_METADATA")})),r.on("change",["profile"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["friends"],(function(e,n,t){if(P([],"UPDATE_METADATA"),M.messenger&&void 0===e){var o=t.slice(-1)[0],a=r.friends&&r.friends[o];M.messenger.onFriendAdded(a)}})),r.on("remove",["friends"],(function(e,n){if(P([],"UPDATE_METADATA"),M.messenger){var t=n[1];t&&"channel"===n[2]&&M.messenger.onFriendRemoved(t,e)}})),r.on("change",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("remove",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["settings"],(function(){P([],"UPDATE_METADATA")})),r.on("change",[s.tokenKey],(function(){M.isDeleted||"DELETED"===r[s.tokenKey]||P([],"UPDATE_TOKEN",{token:r[s.tokenKey]})})),M.mailbox=A.init({Store:m,store:M,updateMetadata:function(){P([],"UPDATE_METADATA")},updateDrive:function(){z("DRIVE_CHANGE",{path:["drive","filesData"]})},pinPads:function(e,n){m.pinPads(null,e,n)}},e,(function(e,n,t,r){var o=i.once(r||function(){});t.forEach((function(t){x(t,"MAILBOX_EVENT",{ev:e,data:n},o)}))})),V.fire()):o())}))};const pe=(e,n,t,r)=>{if(M.accountModule)return M.accountModule;const o=H.init({userHash:n.userHash,anonHash:n.anonHash,cache:n.cache,form_seed:n.form_seed,store:M,broadcast:P,postMessage:x});M.accountModule=o;const{channel:a,onAccountReady:s,onAccountCacheReady:c,onDisconnect:u,onReconnect:f}=o;M.driveChannel=a,c((e=>{M.returned||=e,t(e)})),s((e=>{M.returned||=e,r(e)})),u((()=>{z("NETWORK_DISCONNECT")})),f((()=>{z("NETWORK_RECONNECT")}));return setInterval((function(){var e=[];Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients;Array.prototype.push.apply(e,t)})),(e=i.deduplicateString(e)).forEach((function(e){var n=0,t=function(){if(n>=2)return m._removeClient(e),x(e,"TIMEOUT"),void console.error("TIMEOUT",e);n++;var r=setTimeout(t,3e4);x(e,"PING",null,(function(e){e&&console.error(e),clearTimeout(r)}))};t()}))}),12e4),o},ve=(e,n,t,r)=>{const o=i.once((e=>{const n=j.init({account:e,store:M,broadcast:P,postMessage:x}),{onDriveReady:o,onDriveCacheReady:a,onDisconnect:i,onReconnect:s}=n;a((()=>{t(M.returned)})),o((()=>{r(M.returned)})),i((()=>{})),s((()=>{}))})),a=()=>{},s=pe(0,n,a,a);s.onAccountCacheReady((()=>{o(s)})),s.onAccountReady((()=>{o(s)}))};m.disableCache=function(e,n,t){n?p.disable():p.enable(),t()};var ye=!1;m.hasDrive=function(e,n,t){t({state:Boolean(M.proxy)})};const me=e=>{if(M?.network?.historyKeeper)return setTimeout(e);const n=n=>{M.network||=n;n.join("0000000000000000000000000000000000").then((function(t){let r;t.members.forEach((e=>{16===e.length&&(r=e)})),n.historyKeeper=r,t.leave(),e()}),(function(n){console.error(n),e({error:"GET_HK"})}))};if(M.network)return n(M.network);M.networkPromise?.then(n)};var ge=function(e,n,t){var r=function(){de();let e=()=>{te(0,0,(function(){c.send("NO_DRIVE",!0),n({})}))};if(t)return((e,n)=>{if(M.rpc)n(M.rpc);else{var t=R.Nacl.sign.keyPair(),r={edPublic:i.encodeBase64(t.publicKey),edPrivate:i.encodeBase64(t.secretKey)};l.create(M.network,r,(function(e,t){e?n({error:e}):(M.rpc=t,n(t))}))}})(0,e);e()};if(M.network)r();else{var o=I.getWebsocketURL();F.connect(o).then((function(e){M.network?(e.disconnect(),e=M.network):M.network=e,me((e=>{e?n(e):r()}))}),(function(e){console.error(e),n({error:"OFFLINE"})}))}};const Ee=(e,n,t)=>{le(e,(function(){t(n),Y.fire()}))},be=(e,n,t)=>{M.manager?Y.reg((function(){me((r=>{M.network||=r,he(e,n,(()=>{t(n)}))}))})):he(e,n,(()=>{t(n)}))};return m.init=function(e,n,t){var r=i.once((function(r){n.driveEvents&&function(e){Y.reg((()=>{-1===W.indexOf(e)&&W.push(e),M.driveEvents||(M.driveEvents=!0,ce(M.proxy),Object.keys(M.manager.folders).forEach((function(e){var n=M.manager.folders[e].proxy;ce(n,e)})))}))}(e),t(r)}));if(ye&&!M.returned&&n.cache)Y.reg((function(){r({state:"ALREADY_INIT",returned:M.cacheReturned})}));else{if(ye)return M.networkTimeout&&x(e,"LOADING_DRIVE",{type:"offline"}),void V.reg((function(){r({state:"ALREADY_INIT",returned:M.returned})}));n.disableCache&&p.disable(),n.noDrive&&!n.requires&&(n.requires="pad"),((e,n,t)=>{if(n.neverDrive||n.noDrive&&!n.userHash&&!n.anonHash)return n.neverDrive&&(M.neverCache=!0),void ge(0,(e=>{e?.error&&c.send("NO_DRIVE_ERROR",!0),t(e)}),!!n.neverDrive);const r=n.requires;ye=!0,M.data=n;let o=e=>{1===Object.keys(M.proxy).length&&c.send("FIRST_APP_USE",!0),e&&e.error&&(ye=!1)};if("pad"===r)return void ge(0,(function(r){if(r&&r.error)return;t(r);let a=i.once((()=>{ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))}));G.reg(a),J.reg(a)}));if("file"===r)return void ge(0,(function(r){r&&r.error||(t(r),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)})))}));if("team"===r){let r=!1;const a=a=>i=>{r||(r=!0,L((e=>{a||te(0,0,e())})).nThen((n=>{ie(D,"team",n,e)})).nThen((e=>{!a&&M.modules.team&&M.modules.team.onReady(e)})).nThen((()=>{t(i),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))})))};return void pe(0,n,a(!0),a(!1))}if("drive"===r)return void ve(0,n,(n=>{t(n),Ee(e,n,o)}),(n=>{t(n),be(e,n,o)}));let a=e=>{o(e);const n=s.prefersDriveRedirectKey,r=i.find(M,["proxy","settings","general",n]);e[n]=r,t(e)};ve(0,n,(n=>{Ee(e,n,a)}),(n=>{be(e,n,a)}))})(e,n,i.once((e=>{"GET_HK"!==e.error?r(e):r({error:"ERROR"})})))}},V.reg((function(){var e=+new Date-7776e6;p.getKeys((function(n,t){if(n)console.error(n);else{var r=function(){if(t.length){var n=t.pop();p.getTime(n,(function(t,o){t?r():!o||o{const n=(e,n={})=>({create:function(t,r,o){var a,i=[],s=e.mkEvent(!0);t.reg((function(e){if(!a){var n=e.data;if("_READY"===n)return r("_READY"),a=!0,s.fire(),void i.forEach((function(e){t.fire(e)}));i.push(n)}}));var c={},u={},f={},l=[],d={},h={};h.query=function(e,n,t,o){var a,i=Math.random().toString(16).replace("0.","")+Math.random().toString(16).replace("0.",""),c=(o=o||{}).timeout||3e4;c>0&&(a=setTimeout((function(){delete u[i],t("TIMEOUT")}),c)),f[i]=function(e){clearTimeout(a),delete f[i],e&&(delete u[i],t("UNHANDLED"))},u[i]=function(e,n){delete u[i],t(void 0,e.content,n)},s.reg((function(){var t={txid:i,content:n,q:e,raw:o.raw};r(o.raw?t:JSON.stringify(t))}))};var p=h.event=function(e,n,t){t=t||{},s.reg((function(){var o={content:n,q:e,raw:t.raw};r(t.raw?o:JSON.stringify(o))}))};h.on=function(e,n,t){var o=function(e,t,o){n(e.content,(function(n){var t={txid:e.txid,content:n};r(o?t:JSON.stringify(t))}),t)};return(c[e]=c[e]||[]).push(o),t||p("EV_REGISTER_HANDLER",e),{stop:function(){var n=c[e].indexOf(o);-1!==n&&c[e].splice(n,1)}}},h.whenReg=function(e,n,t){var r=t;l.indexOf(e)>-1?n():r=!0,r&&(d[e]=d[e]||[]).push(n)},h.onReg=function(e,n){h.whenReg(e,n,!0)},h.on("EV_REGISTER_HANDLER",(function(e){d[e]&&(d[e].forEach((function(e){e()})),delete d[e]),l.push(e)}));var v=!1;h.onReady=function(e){v?e():"function"==typeof e&&h.on("EV_RPC_READY",(function(){v=!0,e()}))},h.ready=function(){h.whenReg("EV_RPC_READY",(function(){h.event("EV_RPC_READY")}))};var y=[""];n.httpUnsafeOrigin?(y.push(n.httpUnsafeOrigin),y.push(n.httpSafeOrigin)):globalThis.location&&y.push(globalThis.location.origin),t.reg((function(e){if(a&&e.data&&"_READY"!==e.data&&y.includes(e.origin)){var n;try{n="object"==typeof e.data?e.data:JSON.parse(e.data)}catch(e){return void console.warn(e)}void 0!==n.ack?f[n.txid]&&f[n.txid](!n.ack):"string"==typeof n.q?c[n.q]?(n.txid&&r(JSON.stringify({txid:n.txid,ack:!0})),c[n.q].forEach((function(t){t(n||JSON.parse(e.data),e,n&&n.raw),n=void 0}))):n.txid&&r(JSON.stringify({txid:n.txid,ack:!1})):void 0===n.q&&u[n.txid]&&u[n.txid](n,e)}})),r("_READY"),o(h)}});e.exports&&(e.exports=n(Z()))})()}(er)),er.exports}function tr(){return Zt||(Zt=1,function(e){e.exports&&(e.exports=((e,n,t)=>{const r={};let o,a,i={},s=()=>{};return r.init=n=>{a||(a=e.create({query:(e,n,t,r)=>{r=r||function(){},i[e].chan.query(n,t,(function(e,n){r(e?{error:e}:n)}))},broadcast:(e,n,t,r)=>{r=r||function(){},Object.keys(i).forEach((o=>{-1===e.indexOf(+o)&&i[o].chan.query(n,t,((e,n)=>{r(e?{error:e}:n)}))}))}}),s=n)},r.initClient=(e,r)=>{if(!a)return console.error("Not initialized"),void r("NOT_INIT");const{postMsg:c}=e,u=t.mkEvent(),f=Number(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),l=()=>{a._removeClient(f)};n.create(u,c,(function(e){let n=i[f]={chan:e};console.debug("SharedW Channel created"),Object.keys(a.queries).forEach((function(t){"CONNECT"!==t&&"JOIN_PAD"!==t&&"SEND_PAD_MSG"!==t&&"STOPWORKER"!==t&&e.on(t,(function(e,r){try{a.queries[t](f,e,r)}catch(n){console.error("Error in webworker when executing query "+t),console.error(n),console.log(e)}"DISCONNECT"===t&&(l(),globalThis.accountDeletion&&globalThis.accountDeletion===n.id&&(a=void 0,o=void 0))}))})),e.on("STOPWORKER",(function(e,n){s(),a.queries.DISCONNECT(f,e,n)})),e.on("CONNECT",(function(e,n){console.debug("Connecting to store..."),a.queries.CONNECT(f,e,(function(e){if(e&&"ALREADY_INIT"===e.state)return console.debug("Store already exists!"),o=o||e.returned,void n(e);o=e,n(e)}))})),e.on("JOIN_PAD",(function(e,t){n.channelId=e.channel;try{a.queries.JOIN_PAD(f,e,t)}catch(n){console.error("Error in webworker when executing query JOIN_PAD"),console.error(n),console.log(e)}})),e.on("SEND_PAD_MSG",(function(e,t){var r={msg:e,channel:n.channelId};try{a.queries.SEND_PAD_MSG(f,r,t)}catch(e){console.error("Error in webworker when executing query SEND_PAD_MSG"),console.error(e),console.log(r)}})),r(u,l)}),!0)},r})(zt(),nr(),Z()))}(qt)),qt.exports}var rr,or,ar=function(){if($t)return Xt;$t=1;const e=tr();return Xt={start:n=>{let t=!1,r=()=>{globalThis.close()};globalThis.window=globalThis,addEventListener("connect",(o=>{console.debug("New SharedWorker client");const a=o.ports[0],i=e=>{a.postMessage(e)};let s,c=!1,u=()=>{};a.onmessage=function(o){if("INIT"===o.data?.type){if((o=>{t||(n(o),e.init(r),t=!0)})(o.data.cfg),c)return;c=!0,e.initClient({postMsg:i},(function(e,n){s=e,u=n,i("SW_READY")}))}else"CLOSE"===o.data?(console.debug("leave"),u()):s&&s.fire(o)}}))}}}();var ir,sr,cr=function(){if(or)return rr;or=1;const e=tr();return rr={start:n=>{let t,r=!1;const o=()=>{globalThis.close()},a=e=>{postMessage(e)};globalThis.window=globalThis,onmessage=function(i){if("INIT"===i.data?.type){let s=i.data.cfg;if(r)return;return n(s),e.init(o),r=!0,void e.initClient({postMsg:a},(function(e){t=e,a("WW_READY")}))}t&&t.fire(i)}}}}();var ur=function(){if(sr)return ir;sr=1;const e=tr(),n=Z();return ir={start:t=>{let r,o=!1,a=!1;const i=n.mkEvent(),s=()=>{a=!0},c=e=>{a||i.fire(e)};return{init:n=>{o||(t(n),e.init(s),o=!0,e.initClient({postMsg:c},(function(e){r=e,c("STORE_READY")})))},onMessage:e=>{i.reg((n=>{setTimeout((()=>{e(n)}))}))},query:e=>{r&&!a&&r.fire({data:e,origin:""})}}}}}(),fr=Bn(),lr=n({__proto__:null,default:r(fr)},[fr]),dr=Un(),hr=n({__proto__:null,default:r(dr)},[dr]),pr=nt(),vr=n({__proto__:null,default:r(pr)},[pr]),yr=ot(),mr=n({__proto__:null,default:r(yr)},[yr]),gr=Ft(),Er=n({__proto__:null,default:r(gr)},[gr]);let br=e=>{[Te,nn,q,$e,B,lr,yn,un,ke,vr,mr,Er,Jt,ge,hr,Kt].forEach((n=>{"function"==typeof n.setCustomize&&n.setCustomize(e)}))},Or="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,Ar="undefined"!=typeof SharedWorkerGlobalScope&&self instanceof SharedWorkerGlobalScope;e.store={},Ar?ar.start(br):Or?cr.start(br):("undefined"!=typeof module&&module.exports,e.store=ur.start(br)),e.start=br})); +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["cryptpad-worker-min"]={})}(this,(function(e){"use strict";function n(e,n){return n.forEach((function(n){n&&"string"!=typeof n&&!Array.isArray(n)&&Object.keys(n).forEach((function(t){if("default"!==t&&!(t in e)){var r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:function(){return n[t]}})}}))})),Object.freeze(e)}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function o(e){if(e.__esModule)return e;var n=e.default;if("function"==typeof n){var t=function e(){return this instanceof e?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};t.prototype=n.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t}var a,i,s,c,u,f,l,d={exports:{}},h={exports:{}},p={exports:{}};function v(){return a||(a=1,function(e){var n;n=function(){var e=function(){},n=function(){return(new Date).getTime()},t=function(e,n,t){e.timeouts.push(setTimeout(n,t))},r=function(n,r){n.ws&&(n.ws.onmessage=e,n.ws.onopen=e,n.ws.close(),r?n.ws.onclose({reason:"offline"}):t(n,(function(){n.ws&&n.ws.onclose({reason:"forced closed because websocket failed to close"})}),1e4))},o=function(e,n){return!!e.ws&&(e.ws.send(JSON.stringify(n)),!0)},a=function(e,n){return function(e,t){var r=n[e];if(!r)throw new Error("no such event "+e);r.push(t)}},i=function(e,n,t,r){var o=r[n];if(!o)throw new Error("no such event "+n);var a=o.indexOf(t);-1!==a&&o.splice(a,1)},s=function(e,t,r){if(e.channels[t])return new Promise((function(n){n(e.channels[t])}));var s=e.queues.p2;1===r?s=e.queues.p1:3===r&&(s=e.queues.p3);var c={queue:s,onMessage:[],onJoin:[],onLeave:[],members:[],jSeq:e.seq++},u={message:c.onMessage,join:c.onJoin,leave:c.onLeave},f={_:c,time:n(),id:t,members:c.members,bcast:function(t){return function(e,t,r){var a=e.channels[t],i=e.seq++,s=[i,"MSG",t,r];if(!a)return new Promise((function(e,n){n({type:"NO_SUCH_CHANNEL",message:JSON.stringify(s)})}));var c=o(e,s);return new Promise((function(t,r){c?e.requests[i]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(s)})}))}(e,f.id,t)},leave:function(t){return function(e,t,r){if(e.channels[t]){if(delete e.channels[t],e.ws&&1===e.ws.readyState){var a=e.seq++;o(e,[a,"LEAVE",t,r]);var i=function(){};e.requests[a]={reject:i,resolve:i,time:n()}}}else console.debug("no such channel",t)}(e,f.id,t)},on:a(0,u),off:function(e,n){i(0,e,n,u)}};e.requests[c.jSeq]=f;var l=[c.jSeq,"JOIN",t],d=o(e,l);return new Promise((function(e,n){d?(f._.resolve=e,f._.reject=n):n({type:"DISCONNECTED",message:JSON.stringify(l)})}))},c=function(t){var r={message:t.onMessage,disconnect:t.onDisconnect,reconnect:t.onReconnect},c={webChannels:t.channels,getLag:function(){return function(e){return e.ws?e.pingOutstanding?Math.max(n()-e.timeOfLastPingSent,e.lastObservedLag):e.lastObservedLag:null}(t)},sendto:function(e,r){return function(e,t,r){var a=e.seq++,i=[a,"MSG",t,r],s=o(e,i);return new Promise((function(t,r){s?e.requests[a]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(i)})}))}(t,e,r)},join:function(e,n){return s(t,e,n)},disconnect:function(){return function(n){if(n.ws){var t=n.ws.onclose;n.ws.onclose=e,n.ws.close(),t({reason:"network.disconnect() called"})}n.timeouts.forEach(clearTimeout),n.timeouts=[]}(t)},on:a(0,r),off:function(e,n){i(0,e,n,r)}};return c.__defineGetter__("webChannels",(function(){return Object.keys(t.channels).map((function(e){return t.channels[e]}))})),c},u=function(e,t){var a=void 0;try{a=JSON.parse(t.data)}catch(e){return void console.log(e.stack)}if(e.timeOfLastMsgReceived=n(),0===a[0]){if("IDENT"===a[2])return e.uid=a[3],e.ws._onident(),void(e.pingInterval=setInterval((function(){if(!(n()-e.timeOfLastPingReceived<15e3||(n()-e.timeOfLastMsgReceived>6e4&&r(e),e.pingOutstanding))){var t=e.seq++,a=n();e.timeOfLastPingSent=a,e.pingOutstanding++,e.requests[t]={time:a,ping:a},o(e,[t,"PING"])}}),5e3));if(e.uid){if("PING"===a[2])return a[2]="PONG",void o(e,a);if("MSG"===a[2]){var i=void 0,s=e.queues.p2;if(a[3]===e.uid)i=e.onMessage,"number"==typeof a[5]&&(1===a[5]&&(s=e.queues.p1),3===a[5]&&(s=e.queues.p3));else{var c=e.channels[a[3]];if(!c)return void console.log("message to non-existent chan "+JSON.stringify(a));i=c._.onMessage,c._.queue&&(s=c._.queue)}s.push({msg:a,h:i}),function(e){if(!e.queues.busy){var n=function(){var t=e.queues.p1.shift()||e.queues.p2.shift()||e.queues.p3.shift();if(t){e.queues.busy=!0;var r=t.h,o=t.msg;r.forEach((function(e){setTimeout((function(){try{e(o[4],o[1])}catch(e){console.error(e)}}))})),setTimeout((function(){n()}))}else e.queues.busy=!1};n()}}(e)}if("LEAVE"===a[2]){var u=e.channels[a[3]];if(!u)return void(a[1]!==e.uid&&console.log("leaving non-existent chan "+JSON.stringify(a)));var f=u._.members.indexOf(a[1]);-1!==f&&u._.members.splice(f,1),u._.onLeave.forEach((function(e){try{e(a[1],a[4])}catch(e){console.log(e.stack)}}))}if("JOIN"===a[2]){var l=e.channels[a[3]];if(!l)return void console.log("ERROR: join to non-existent chan "+JSON.stringify(a));if(-1!==l._.members.indexOf(a[1]))return;var d=-1!==l._.members.indexOf(e.uid);l._.members.push(a[1]),d||a[1]!==e.uid||(l.myID=e.uid,l._.resolve(l)),d&&l._.onJoin.forEach((function(e){try{e(a[1])}catch(e){console.log(e.stack)}}))}}}else{var h=e.requests[a[0]];if(!h)return void console.log("error: "+JSON.stringify(a));if(delete e.requests[a[0]],"ACK"===a[1]){if(h.ping)return e.lastObservedLag=n()-Number(h.ping),e.timeOfLastPingReceived=n(),void e.pingOutstanding--;h.resolve()}else if("JACK"===a[1]){if(h._){if(!a[2])throw new Error("wrong type of ACK for channel join");return h.id=a[2],void(e.channels[h.id]=h)}h.resolve()}else if("ERROR"===a[1])if("function"==typeof h.reject)h.reject({type:a[2],message:a[3]});else if(h._&&"function"==typeof h._.reject){if("EJOINED"===a[2]&&!e.channels[a[3]])return h.id=a[3],void(e.channels[h.id]=h);h._.reject({type:a[2],message:a[3]})}else console.error(a);else h.reject({type:"UNKNOWN",message:JSON.stringify(a)})}};return{connect:function(o,a){a=a||function(e){return new window.WebSocket(e)};var i={ws:null,seq:1,uid:null,network:null,channels:{},onMessage:[],onDisconnect:[],onReconnect:[],timeouts:[],requests:{},pingInterval:null,queues:{p1:[],p2:[],p3:[]},timeOfLastPingSent:-1,timeOfLastPingReceived:-1,timeOfLastMsgReceived:-1,lastObservedLag:0,pingOutstanding:0};i.network=c(i);var s=e,f=e;"undefined"!=typeof window&&window.addEventListener("offline",(function(){-1===["localhost","127.0.0.1",""].indexOf(window.location.hostname)&&r(i,!0)}));var l=function(){var c=i.ws=a(o);i.timeOfLastPingSent=i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),c.onmessage=function(e){return u(i,e)},c.onclose=function(n){c.onclose=e,clearInterval(i.pingInterval),i.timeouts.forEach(clearTimeout),i.ws=null,i.uid&&(i.uid=null,i.onDisconnect.forEach((function(e){try{e(n.reason)}catch(e){console.log(e.stack)}}))),t(i,l,i.uid?0:7e3)},c.onopen=function(){t(i,(function(){i.uid||(f({type:"TIMEOUT",message:"waited 30000ms"}),s=f=e,r(i))}),3e4)},i.ws._onident=function(){i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),i.lastObservedLag=n()-i.timeOfLastPingSent,s!==e?(s(i.network),s=f=e):(i.channels={},i.requests={},i.pingOutstanding=0,i.onReconnect.forEach((function(e){try{e(i.uid)}catch(e){console.log(e.stack)}})))}};return new Promise((function(e,n){s=e,f=n,l()}))}}},e.exports?e.exports=n():window.netflux_websocket=n()}(p)),p.exports}function y(){return i||(i=1,function(e){var n,t,r,o;e.exports&&(e.exports=(n=v(),r=function(e){return e.replace(/^\d+:/,"")},o=(t={}).removeCp=function(e){return e.replace(/^cp\|([A-Za-z0-9+\/=]{0,20}\|)?/,"")},t.start=function(e){var t,a=(e=e||{}).network,i=e.websocketURL,s=e.userName,c=e.channel,u=e.crypto,f=e.readOnly||!1,l=!e.noChainPad&&(e.ChainPad||window.ChainPad),d=void 0===e.useHistory||!!e.useHistory,h=!1,p=e.lastKnownHash,v={},y=[],m=e.priority||2,g=e.Cache,E=!1,b=Math.floor(1e6*Math.random()),O=e.metadata||{},A=O.validateKey=e.validateKey||O.validateKey;O.owners=e.owners||O.owners,O.expire=e.expire||O.expire;var w,D,_=!0,T=!1,S={setReadOnly:function(e,n){f=e,n&&(u=n)}},x=function(){},N=[],I={send:function(){}},C=function(){w&&"function"==typeof w.abort&&w.abort();var n=l.create({userName:s,initialState:e.initialState,transformFunction:e.transformFunction,patchTransformer:e.patchTransformer,validateContent:e.validateContent,avgSyncMilliseconds:e.avgSyncMilliseconds,logLevel:void 0!==e.logLevel?e.logLevel:1});return g&&Array.isArray(t)&&t.length&&(t.forEach((function(e){var t=e.patch;if(!/^\[/.test(t)){try{t=u.decrypt(t,A,!0)}catch(e){console.error(t,A,c),console.error(e)}t=r(t)}n.message(t)})),""===n.getUserDoc())?(n.abort(),t=[],g.clearChannel(c),C()):(n.onMessage((function(e,n,t){I.send(e,n,t)})),n.onPatch((function(t){e.onRemote&&e.onRemote({realtime:n,patch:t})})),n)},R={change:[],onChange:function(e){R.change.forEach((function(n){n(e)}))},users:[]},P=function(n){e.onJoin&&e.onJoin(n),32===n.length&&(-1===R.users.indexOf(n)&&R.users.push(n),R.onChange())},k=function(){},M=function(n){e.onLeave&&e.onLeave(n);var t=R.users.indexOf(n);-1!==t&&R.users.splice(t,1),R.onChange()},F=function(n,t){if(_){try{var r=w&&w.getUserDoc();if(E&&w&&(""===r||r===e.initialState))return void S.resetCache()}catch(e){console.error(e)}w&&w.start(),e.setMyID&&e.setMyID({myID:n.myID}),_=!1,e.onReady&&e.onReady({realtime:w,network:t,userList:R,myId:n.myID,leave:n.leave,metadata:O}),y.length&&(y.forEach((function(e){"function"==typeof e&&e()})),y=[])}},L=function(n,r){if(e.onChannelError&&e.onChannelError({channel:r.id,type:n.error,loaded:!_,error:n.error,message:n.message}),"EUNKNOWN"===n.error)return p=void 0,r&&r.leave(),g?(t=[],void g.clearChannel(c,(function(){l&&(S.realtime=w=C()),x(a,k)}))):void x(a,k);if("function"==typeof S.stop)try{S.stop()}catch(e){}},H=!0,j=function(e){g&&(t.length&&t[t.length-1].hash===e.hash||(!t.length&&H&&(e.isCheckpoint=!0,H=!1),(t.length||e.isCheckpoint)&&(t.push(e),g.storeCache(c,A,t,(function(e){if(e){g.clearChannel(c,(function(){console.warn("Cache cleared",c)}));var n=t;return t=[],void console.error(e,c,n,A)}})))))},K=function(n,t,a,i,s){var f=i.historyKeeper,l=n===f;if(!a||0!==t&&"0"!==t){if(!s||n===f){if(s){var d=JSON.parse(t);if(d.txid&&d.txid!==b)return;if(d.validateKey&&d.channel)return d.channel!==a.id||A||(A=d.validateKey),void(d.channel===a.id&&(O=d,e.onMetadataUpdate&&!_&&e.onMetadataUpdate(O)));if(d.state&&1===d.state&&d.channel)return void(d.channel===a.id&&(Object.keys(v).forEach((function(e){"function"==typeof v[e]&&v[e]("FAILED")})),v={},F(a,i)))}if(l){var h=JSON.parse(t);if(Array.isArray(h)&&h[0]&&h[0]!==b)return;if(h.channel===a.id&&h.error)return void L(h,a);if(t=h[4],h[3]!==a.id)return}if(p=t.slice(0,64),"function"==typeof v[p])return v[p](null,p),void delete v[p];var m,g=/^cp\|/.test(t);t=o(t);try{t=u.decrypt(t,A,l)}catch(e){console.error(t,A,c),console.error(e)}var E="string"==typeof t;!E&&t.content&&(m=t.author,t=t.content),_||e.onLocal&&e.onLocal(!0);var D=E?r(t):t,T=function(){try{if(w&&E&&w.message(D),e.onMessage){var t={time:h?h[5]:+new Date};e.onMessage(D,n,A,g,p,m,t)}var r=g;e.isCacheCheckpoint&&(r=e.isCacheCheckpoint(D,m)),j({patch:D,hash:p,isCheckpoint:r,author:m,time:h?h[5]:+new Date})}catch(e){console.error(e)}};_&&n!==f?y.push(T):T()}}else F(a,i)},U=function(n,r,a){I.wc=n,c=n.id,n.members.forEach(P);var i,s=function(e,t){K(t,e,n,r)};n.on("message",s),n.on("join",P),n.on("leave",M),I.stop=function(){n.off("message",s),n.off("join",P),n.off("leave",M),n.leave(),w&&w.abort()},a&&(I.send=function(n,t,a){var i=function(e,n){if(!f)try{var t=u.encrypt(e,n);if(0===e.indexOf("[4")){var r="";if(window.nacl){var o=window.nacl.hash(window.nacl.util.decodeUTF8(e));r=window.nacl.util.encodeBase64(o.slice(0,8))+"|"}else console.log("Checkpoint sent without an ID. Nacl is missing.");t="cp|"+r+t}return t}catch(n){throw console.log(e),n}}(n,a);if(i){var s=i.slice(0,64),l=/^cp\|/.test(i);e.isCacheCheckpoint&&(l=e.isCacheCheckpoint(n,a)),v[s]=function(e,r){!e&&r&&j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(e,r)},I.wc.bcast(i).then((function(){p=s,delete v[s],j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(null,s)}),(function(e){if(console.error(e),!e||"enoent"!==e.type&&"ENOENT"!==e.type)delete v[s],t(e&&e.type||e);else{if(I.wc.leave(),h)return delete v[s],void t("STOPPED");_=!0,r.join(c,m).then((function(e){U(e,r,!1),I.send(n,t,a)}))}}))}},l&&!w&&(S.realtime=w=C()),e.onInit&&e.onInit({myID:n.myID,realtime:w,getLag:r.getLag,userList:R,network:r,channel:c})),e.onConnect&&e.onConnect(n,I.send),d?(n.members.forEach((function(e){16===e.length&&(i=e)})),D!==i&&(r.historyKeeper=i,D=i,N.forEach((function(e){e(i)}))),function(){var e={txid:b,priority:m,lastKnownHash:p,metadata:O};g&&Array.isArray(t)&&t.length&&(e.lastKnownHash=t[t.length-1].hash),y=[];var o=["GET_HISTORY",n.id,e];i&&r.sendto(i,JSON.stringify(o))}(),S.resetCache=function(){_=!0,t=[],g&&g.clearChannel(c),b=Math.floor(1e6*Math.random()),L({error:"EUNKNOWN",message:"Corrupted cache"},n)}):F(n,r)},B=!1;"undefined"!=typeof window&&window.addEventListener("beforeunload",(function(){B=!0}));var V=function(e,n){var t;return e.some((function(e){if(e.id===n)return t=e,!0})),t},Y=function(n){e.onError&&e.onError({type:n.type||n,message:n.message,error:n.type,loaded:!_})};x=function(r,o){var a;"string"==typeof r&&(a=n.connect(r));var i=function(){T=!1,"string"==typeof r?a.then(o,Y):"function"==typeof r.then?r.then(o,Y):o(r)};if(g&&!T)return g.getChannelCache(c,(function(n,r){A=r?r.k:void 0,(t=r?r.c:[]).length?(E=!0,e.onCacheStart&&e.onCacheStart(),l&&(S.realtime=w=C()),t.length?(e.onMessage&&t.forEach((function(n){var t={time:n.time};e.onMessage(n.patch,"cache",A,n.isCheckpoint,n.hash,n.author,t)})),e.onCacheReady&&e.onCacheReady({id:c,realtime:w,networkPromise:a}),i()):i()):i()})),void(S.resetCache=function(){g&&g.clearChannel(c),t=[]});i()};var G=!0;return k=function(n,t){h||n.join(c||null,m).then((function(e){if(h)try{e.leave()}catch(e){}else U(e,n,t)}),(function(r){r&&"ERESTRICTED"===r.type&&Array.isArray(r.message)&&e.onRejected?e.onRejected(r.message,(function(e){e?Y(r):k(n,t)})):Y(r)}))},S.stop=function(){h=!0},x(a||i,(function(n){if(a=n,G){if(G=!1,h)return;var t=function(n){B||"network.disconnect() called"!==n&&(e.onConnectionChange?e.onConnectionChange({state:!1}):e.onAbort&&e.onAbort({reason:n}))},r=function(n){if(e.onConnectionChange){e.onConnectionChange({state:!0,myId:n});var t=function(){_=!0,T=!0,R.users=[],x(a,k)};if(e.beforeReconnecting)return void e.beforeReconnecting((function(n,r){c=n,e.initialState=r,t()}));t()}},o=function(e,n){var t=V(a.webChannels,c);t&&K(n,e,t,a,!0)};a.on("disconnect",t),a.on("reconnect",r),a.on("message",o),S.network=a,S.stop=function(){I&&I.stop&&I.stop();var e=V(a.webChannels,c);if(e)try{e.leave("")}catch(e){}a.off("disconnect",t),a.off("reconnect",r),a.off("message",o),h=!0},a.onHistoryKeeperChange=function(e){N.push(e)}}k(a,!0)})),S},t))}(h)),h.exports}function m(){return f?u:(f=1,u=function(){if(c)return s;c=1;const e=n=>{if(Array.isArray(n))return n.map(e);if(n instanceof Object){let t=[],r=[];return Object.keys(n).forEach((e=>{/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce(((t,r)=>(t[r]=e(n[r]),t)),{})}return n},n=JSON.stringify.bind(JSON);return s=(t,r,o)=>{let a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;let i=JSON.parse(a);return n(e(i),null,o)}}())}function g(){return l||(l=1,function(e){e.exports&&(e.exports=function(e,n){const t=globalThis;var r,o={},a=void 0===t.Proxy,i=o.DeepProxy=function(){var e={},r=e.isArray=Array.isArray||function(e){return"[object Array]"===Object.toString(e)},o=e.type=function(e){return null===e?"null":r(e)?"array":typeof e},i=e.isProxyable=function(e,n){return(void 0!==n||!a)&&-1!==["object","array"].indexOf(o(e))},s=e.set=function(n){return function(t,r,o){if("on"===r)throw new Error("'on' is a reserved attribute name for realtime lists and maps");return i(o)?t[r]=e.create(o,n):t[r]=o,n(),t[r]||!0}},c=e.pathMatches=function(e,n){return!n.some((function(n,t){return n!==e[t]}))},u=function(e,n){return n.pattern.length-e.pattern.length},f=function(e){return function(n,t,r){switch(n){case"change":t="array"===o(t)?t:[t],e.change.push({cb:function(e,n,o,a){if(c(o,t))return r(e,n,o,a)},pattern:t}),e.change.sort(u);break;case"remove":t="array"===o(t)?t:[t],e.remove.push({cb:function(e,n,o){if(c(n,t))return r(e,n,o)},pattern:t}),e.remove.sort(u);break;case"ready":e.ready.push({cb:function(e){t(e)}});break;case"cacheready":e.cacheready.push({cb:function(e){t(e)}});break;case"disconnect":e.disconnect.push({cb:function(e){t(e)}});break;case"reconnect":e.reconnect.push({cb:function(e){t(e)}});break;case"create":e.create.push({cb:function(e){t(e)}});break;case"error":e.error.push({cb:function(e){t(e)}})}return this}},l=e.get=function(){var e={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};return function(n,t){return"on"===t?f(e):"_isProxy"===t||("_events"===t?e:n[t])}},d=e.delete=function(e){return function(n,t){return void 0===n[t]||(delete n[t],e()),!0}},h=e.handlers=function(e,n){return n?{set:s(e),get:l(e),deleteProperty:d(e)}:{set:s(e),get:function(e,n){return"_isProxy"===n||e[n]},deleteProperty:d(e)}},p=e.remoteChangeFlag=!1,v=e.stringifyFakeProxy=function(e){var t=JSON.parse(n(e));return delete t._events,delete t._isProxy,n(t)};e.checkLocalChange=function(n,r){if(a&&!e.interval){var o=v(n);e.interval=t.setInterval((function(){var e=v(n);e!==o&&(o=e,p?p=!1:r())}),300)}};var y=e.create=function(e,n,r){var s="function"===o(n)?h(n,r):n;switch(o(e)){case"object":Object.keys(e).forEach((function(t){i(e[t])&&!e[t]._isProxy&&(e[t]=y(e[t],n))}));break;case"array":e.forEach((function(t,r){i(t)&&!t._isProxy&&(e[r]=y(e[r],n))}));break;default:throw new Error("attempted to make a proxy of an unproxyable object")}if(!a)return e._isProxy?e:new t.Proxy(e,s);var c=JSON.parse(JSON.stringify(e));if(r){var u={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};c.on=f(u),c._events=u}return c},m=function(e,n,t,r,o){var a=e.slice(0);a.push(n),t._events.change.some((function(e){return!1===e.cb(r,o,a,t)}))},g=e.find=function(e,n){for(var t=n.length,r=0;rs)for(var c,u=s;u<=s;u++)c=e[u],E(r,u,a,c,!0);e.length=s}};return e.update=function(e,n,t){var r=o(e),a=o(n);if(r!==a)throw new Error("Proxy updates can't result in type changes");switch(a){case"array":O.call(e,e,n,(function(e){return y(e,t)}),[],e);break;case"object":b.call(e,e,n,(function(e){return y(e,t)}),[],e);break;default:throw new Error("unsupported realtime datatype:"+a)}},e}();return o.create=function(o){if(!i.isProxyable(o.data,!0))throw new Error("unsupported datatype: "+i.type(o.data));if("function"!=typeof(r=o.ChainPad||t.ChainPad).SmartJSONTransformer)throw new Error("Please update ChainPad");o.classic&&!o.crypto&&(console.error("[chainpad-listmap] no crypto module provided. messages will not be encrypted"),o.crypto={encrypt:function(e){return e},decrypt:function(e){return e}});var s=o.readOnly,c={initialState:n(o.data),patchTransformer:r.SmartJSONTransformer,validateContent:o.validateContent||function(e){try{return JSON.parse(e),!0}catch(n){return console.log(e),console.error("Failed to parse, rejecting patch"),!1}},readOnly:o.readOnly,userName:o.userName||"listmap",Cache:o.Cache,logLevel:void 0===o.logLevel?0:o.logLevel};o.classic&&(c.channel=o.channel,c.crypto=o.crypto,c.network=o.network,c.websocketURL=o.websocketURL,c.metadata=o.metadata||{validateKey:o.validateKey,owners:o.owners,expire:o.expire},c.onRejected=o.onRejected);var u,f,l,d={metadata:{}},h=!0,p=!1,v=a?i.stringifyFakeProxy:n,y=function(){var e=v(f);try{u.contentUpdate(e)}catch(e){f._events.error.forEach((function(n){n.cb({type:"CHAINPAD",error:e.message})}))}o.onLocal&&o.onLocal()},m=c.onLocal=function(e){h||s||(clearTimeout(l),e?y():l=setTimeout(y))},g=function(){i.remoteChangeFlag||m()};f=i.create(o.data,g,!0),c.onInit=function(e){f._events.create.forEach((function(n){n.cb(e)}))},c.onCacheReady=function(e){u&&u===e.realtime||(u=d.realtime=e.realtime);var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),p||f._events.cacheready.forEach((function(n){n.cb(e)}))};var E=0;c.onReady=function(e){if(E=-1,p)return h=!1,c.onRemote(),void f._events.reconnect.forEach((function(n){n.cb(e)}));u&&u===e.realtime||(u=d.realtime=e.realtime),d.metadata=e.metadata;var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),h=!1,p=!0,f._events.ready.forEach((function(n){n.cb(e)}))},c.onRemote=function(){if(!h){var e=u.getUserDoc(),n=JSON.parse(e);i.remoteChangeFlag=!0,i.update(f,n,g),i.remoteChangeFlag=!1}},c.onMessage=function(){-1!==E&&o.updateProgress&&o.updateProgress({progress:E++})},c.onAbort=function(e){f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onConnectionChange=function(e){e.state?h=!0:f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onMetadataUpdate=function(e){d.metadata=e,"function"==typeof o.onMetadataUpdate&&o.onMetadataUpdate(e)},c.onError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},c.onChannelError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},o.common&&"function"==typeof o.common.startRealtime?u=d.cpCnInner=o.common.startRealtime(c):d=e.start(c),d.proxy=f,d.realtime=u;var b=d.setReadOnly;return d.setReadOnly=function(e,n){s=e,b&&b(e,n)},d},o}(y(),m()))}(d)),d.exports}var E=g();function b(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var O,A={exports:{}};function w(){return O||(O=1,function(e){var n,r,o,a;a=function(){var e=b,n=function(t,r,o){r||(r=0);var a=n.resolve(t,r),i=n.m[r][a];if(!i&&e){if(i=e(a))return i}else if(i&&i.c&&(r=i.c,a=i.m,!(i=n.m[r][i.m])))throw new Error('failed to require "'+a+'" from '+r);if(!i)throw new Error('failed to require "'+t+'" from '+o);return i.exports||(i.exports={},i.call(i.exports,i,i.exports,n.relative(a,r))),i.exports};return n.resolve=function(e,t){var r=e,o=e+".js",a=e+"/index.js";return n.m[t][o]&&o?o:n.m[t][a]&&a?a:r},n.relative=function(e,t){return function(r){if("."!=r.charAt(0))return n(r,t,e);var o=e.split("/"),a=r.split("/");o.pop();for(var i=0;i=0;t--)o.check(e.operations[t],n),t>0&&r.assert(!o.shouldMerge(e.operations[t],e.operations[t-1])),"number"==typeof n&&(n+=o.lengthChange(e.operations[t]));return e.isCheckpoint&&(r.assert(1===e.operations.length),r.assert(0===e.operations[0].offset),"number"==typeof n&&r.assert(!n||e.operations[0].toRemove===n)),e};i.toObj=function(e){r.PARANOIA&&c(e);var n,t=new Array(e.operations.length+1);for(n=0;n0);var t,i=s(a.check(e[e.length-1]),n);for(t=0;t=0;t--)f(e,n.operations[t]);return e},i.apply=function(e,n){r.PARANOIA&&(c(e),r.assert("string"==typeof n),r.assert(a.hex_sha256(n)===e.parentHash));for(var t=n,i=e.operations.length-1;i>=0;i--)t=o.apply(e.operations[i],t);return t},i.lengthChange=function(e){r.PARANOIA&&c(e);for(var n=0,t=0;t=0;u--)i[u]=o.invert(e.operations[u],t),t=o.apply(e.operations[u],t);var f=new Array(e.operations.length);!function(){for(var e=i.length-1;e>=0;e--){f[e]=i[e].offset;for(var n=e-1;n>=0;n--)f[e]+=i[n].toRemove-i[n].toInsert.length}}();var l=s(a.hex_sha256(t),e.isCheckpoint);l.operations.splice(0,l.operations.length);for(var d=0;d=0;d--){var h=t(e.operations[d],u,o.simplify);h&&(u=o.apply(h,u),f[l++]=h)}return Array.prototype.push.apply(i.operations,f.reverse()),i.operations[0]||i.operations.shift(),r.PARANOIA&&c(i),i},i.equals=function(e,n){if(e.operations.length!==n.operations.length)return!1;for(var t=0;t0;){var u=o.random(i);i+=o.lengthChange(u),f(t,u)}return c(t),t},Object.freeze(e.exports)},"SHA256.js":function(e,n,t){!function(){function n(e,n){var t=(65535&e)+(65535&n);return(e>>16)+(n>>16)+(t>>16)<<16|65535&t}function t(e,n){return e>>>n|e<<32-n}function r(e,n){return e>>>n}function o(e,n,t){return e&n^~e&t}function a(e,n,t){return e&n^e&t^n&t}function i(e){return t(e,2)^t(e,13)^t(e,22)}function s(e){return t(e,6)^t(e,11)^t(e,25)}function c(e){return t(e,7)^t(e,18)^r(e,3)}e.exports.hex_sha256=function(e){return function(e){for(var n="0123456789abcdef",t="",r=0;r<4*e.length;r++)t+=n.charAt(e[r>>2]>>8*(3-r%4)+4&15)+n.charAt(e[r>>2]>>8*(3-r%4)&15);return t}(function(e,u){var f,l,d,h,p,v,y,m,g,E,b,O=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],A=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],w=function(e){for(var n=[];e>0;e--)n.push(void 0);return n}(64);e[u>>5]|=128<<24-u%32,e[15+(u+64>>9<<4)]=u;for(var D=0;D>5]|=(255&e.charCodeAt(t/8))<<24-t%32;return n}(e),8*e.length))}}()},"Common.js":function(e,n,r){e.exports.global=function(){if("undefined"!=typeof self)return self;if(void 0!==t)return t;if("undefined"!=typeof window)return window;throw new Error("no self, nor global, nor window")}();var o=function(n){return"undefined"!=typeof localStorage&&localStorage[n]?localStorage[n]:e.exports.global[n]},a=e.exports.PARANOIA=o("ChainPad_PARANOIA");e.exports.VALIDATE_ENTIRE_CHAIN_EACH_MSG=o("ChainPad_VALIDATE_ENTIRE_CHAIN_EACH_MSG"),e.exports.TESTING=o("ChainPad_TESTING"),e.exports.assert=function(e){if(!e)throw new Error("Failed assertion")},e.exports.isUint=function(e){return"number"==typeof e&&Math.floor(e)===e&&e>=0},e.exports.randomASCII=function(e){for(var n=[],t=0;tn?1:-1},Object.freeze(e.exports)},"sha256.js":function(e,n,t){var r=t("./sha256/exports.js"),o=t("./SHA256.js"),a=t("./Common");e.exports.check=function(e){if("string"!=typeof e)throw new Error;if(!/[a-f0-9]{64}/.test(e))throw new Error;return e},e.exports.hex_sha256=function(e){e+="";var n=r.hex(function(e){for(var n=new Uint8Array(e.length),t=0;t1&&console.log("["+e.userName+"] "+n)},d=function(e,n){e.logLevel>0&&console.error("["+e.userName+"] "+n)},h=function(e,n,t){if(!e.aborted){t||(t=Math.floor(2*Math.random()*e.config.avgSyncMilliseconds));var r=setTimeout((function(){e.schedules.splice(e.schedules.indexOf(r),1),n()}),t);return e.schedules.push(r),r}},p=function(e,n){var t=e.schedules.indexOf(n);t>-1&&e.schedules.splice(t,1),clearTimeout(n)},v=function(e,n,t,o){var a=i.toStr(n);if(function(e,n,t){e.messageHandlers.length||t("no onMessage() handler registered");try{e.messageHandlers.forEach((function(e){e(n,(function(){t.apply(null,arguments),t=function(){}}))}))}catch(e){t(e.stack)}}(e,a,(function(t){if(t)l(e,"Posting to server failed ["+t+"]"),e.pending=null,e.syncSchedule=h(e,(function(){g(e)}));else{var o=e.pending;if(e.pending=null,!o)throw new Error;r.assert(o.hash===n.hashOf),R(e,a,!0)?(e.timeOfLastSuccess=+new Date,e.lag=+new Date-o.timeSent):l(e,"Our message ["+n.hashOf+"] failed validation"),o.callback()}})),e.pending)throw new Error("there is already a pending message");-1===e.timeOfLastSuccess&&(e.timeOfLastSuccess=+new Date),e.pending={hash:n.hashOf,timeSent:+new Date,callback:function(){e.syncSchedule=h(e,(function(){g(e)}),0),t()}},r.PARANOIA&&A(e)},y=function(e){var n=e.onSettle;e.onSettle=[],n.forEach((function(n){try{n()}catch(n){d(e,"Error in onSettle handler ["+n.stack+"]")}}))},m=function(e){if(!e.mut.inverseOf)throw new Error;return e.mut.inverseOf},g=function(e,n){if(r.PARANOIA&&A(e),e.syncSchedule&&!e.pending){if(p(e,e.syncSchedule),e.syncSchedule=null,e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify),0===e.uncommitted.operations.length)return y(e),e.timeOfLastSuccess=+new Date,void(e.syncSchedule=h(e,(function(){g(e)})));var t=_(e,e.best)+1;if(t%e.config.checkpointInterval!=0){var o;o=e.setContentPatch?e.setContentPatch:i.create(i.PATCH,e.uncommitted,e.best.hashOf),v(e,o,(function(){e.setContentPatch&&(l(e,"initial Ack received ["+o.hashOf+"]"),e.setContentPatch=null)}))}else{var s=e.best;if(l(e,"Sending checkpoint (interval ["+e.config.checkpointInterval+"]) patch no ["+t+"]"),l(e,_(e,e.best)),!s||!s.content||!m(s.content))throw new Error;var c=a.createCheckpoint(e.authDoc,e.authDoc,m(s.content).parentHash),u=i.create(i.CHECKPOINT,c,s.hashOf);v(e,u,(function(){l(e,"Checkpoint sent and accepted")}))}}},E=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),e.messages[n.hashOf]=n,(e.messagesByParent[n.lastMsgHash]=e.messagesByParent[n.lastMsgHash]||[]).push(n)},b=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),delete e.messages[n.hashOf];var t=e.messagesByParent[n.lastMsgHash];r.assert(t.indexOf(n)>-1),t.splice(t.indexOf(n),1),0===t.length&&delete e.messagesByParent[n.lastMsgHash];var o=e.messagesByParent[n.hashOf];if(o)for(var a=0;a_(e,t)&&(t=o)})),t},x=function(e,n){n.operations.length&&(e.patchHandlers.forEach((function(e){e(n)})),e.changeHandlers.forEach((function(e){n.operations.forEach((function(n){e(n.offset,n.toRemove,n.toInsert)}))})))},N=function(e,n){try{return e.config.validateContent(n())}catch(n){d(e,"Error in content validator ["+n.stack+"]")}return!1},I=function(e,n,t){for(var r=O(e,n);r;r=O(e,r))if(!1===t(r))return},C=function(e,n){e.mut.inverseOf||((e.mut.inverseOf=a.invert(e,n)).mut.inverseOf=e)},R=function(e,n,t){r.PARANOIA&&A(e);var c=i.fromString(n);if(l(e,JSON.stringify([c.hashOf,c.content.operations])),e.messages[c.hashOf]){if(e.setContentPatch&&e.setContentPatch.hashOf===c.hashOf)e.setContentPatch=null;else{if(c.content.isCheckpoint)return l(e,"["+(t?"our":"their")+"] Checkpoint ["+c.hashOf+"] is already known"),!0;l(e,"Patch ["+c.hashOf+"] is already known")}r.PARANOIA&&A(e)}else if(!c.content.isCheckpoint||N(e,(function(){return c.content.operations[0].toInsert}))){if(E(e,c),!D(e,e.rootMessage,c)){if(c.content.isCheckpoint&&e.best.mut.isInitialMessage){l(e,"applying checkpoint ["+c.hashOf+"]");var u=a.apply(e.uncommitted,e.authDoc);r.assert(!r.PARANOIA||e.userInterfaceContent===u);var f=a.invert(e.uncommitted,e.authDoc);return a.addOperation(f,o.create(0,e.authDoc.length,c.content.operations[0].toInsert)),f=a.simplify(f,u,e.config.operationSimplify),c.mut.parentCount=0,e.rootMessage=e.best=c,e.authDoc=c.content.operations[0].toInsert,e.uncommitted=a.create(s.hex_sha256(e.authDoc)),x(e,f),r.PARANOIA&&(e.userInterfaceContent=e.authDoc),!0}return l(e,"Patch ["+c.hashOf+"] not connected to root (parent: ["+c.lastMsgHash+"])"),void(r.PARANOIA&&A(e))}(c=S(e,c)).mut.isFromMe=t;var d=c.content,h=[],p=e.best;if(!D(e,e.best,c)){var v=_(e,e.best),g=_(e,c);if(!(v0))return l(e,"Patch ["+c.hashOf+"] chain is ["+g+"] best chain is ["+v+"]"),r.PARANOIA&&A(e),!0;for(;p&&!D(e,p,c);)h.push(p),p=O(e,p);r.assert(p),l(e,"Patch ["+c.hashOf+"] better than best chain, switching")}var R=[],P=c;do{R.unshift(P),P=O(e,P),r.assert(P)}while(P!==p);var k=e.authDoc;h.forEach((function(e){k=a.apply(m(e.content),k)})),R.forEach((function(e,n){n!==R.length-1&&(C(e.content,k),k=a.apply(e.content,k))}));var M=e.best;if(R.length>1?(M=R[R.length-2],r.assert(M)):h.length&&(M=O(e,h[h.length-1]),r.assert(M)),r.assert(m(M.content).parentHash),r.assert(!r.PARANOIA||m(M.content).parentHash===s.hex_sha256(k)),m(M.content).parentHash===d.parentHash){if(d.isCheckpoint&&e.config.noPrune);else if(d.isCheckpoint){var F;if(I(e,c,(function(e){if(e.content.isCheckpoint){if(F)return F=e,!1;F=e}})),F&&F!==e.rootMessage){var L=_(e,F);if(e.config.strictCheckpointValidation&&L%e.config.checkpointInterval!=0){if(l(e,"checkpoint ["+c.hashOf+"] at invalid point ["+L+"]"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}l(e,"checkpoint ["+c.hashOf+"]"),I(e,F,(function(n){l(e,"pruning ["+n.hashOf+"]"),b(e,n)})),e.rootMessage=F}}else{var H=a.simplify(d,k,e.config.operationSimplify);if(!a.equals(H,d)){if(l(e,"patch ["+c.hashOf+"] can be simplified"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}if(!N(e,(function(){return a.apply(d,k)})))return void l(e,"Patch ["+c.hashOf+"] failed content validation")}C(d,k),e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify);var j=a.apply(e.uncommitted,e.authDoc);r.PARANOIA&&r.assert(j===e.userInterfaceContent);var K=a.invert(e.uncommitted,e.authDoc);if(h.forEach((function(n){l(e,"reverting ["+n.hashOf+"]"),n.mut.isFromMe&&l(e,"reverting patch 'from me' ["+JSON.stringify(n.content.operations)+"]"),K=a.merge(K,m(n.content)),function(e,n,t){T(e,n,m(t))}(e,n.mut.isFromMe,n.content)})),R.forEach((function(n){l(e,"applying ["+n.hashOf+"]"),K=a.merge(K,n.content),T(e,n.mut.isFromMe,n.content)})),K=a.merge(K,e.uncommitted),K=a.simplify(K,j,e.config.operationSimplify),e.best=c,r.PARANOIA){var U=a.apply(K,j);r.assert(e.userInterfaceContent.length===w(e)),r.assert(U===e.userInterfaceContent)}return x(e,K),e.uncommitted.operations.length||y(e),r.PARANOIA&&A(e),!0}if(l(e,"patch ["+c.hashOf+"] parentHash is not valid"),r.PARANOIA&&A(e),r.TESTING)throw new Error;b(e,c)}else l(e,"Checkpoint ["+c.hashOf+"] failed content validation")},P=function(e,n){return Object.freeze({type:"Block",hashOf:n.hashOf,lastMsgHash:n.lastMsgHash,isCheckpoint:!!n.content.isCheckpoint,isFromMe:n.mut&&n.mut.isFromMe,author:n.mut&&n.mut.author,serverHash:n.mut&&n.mut.serverHash,time:n.mut&&n.mut.time,getParent:function(){var t=O(e,n);if(t)return P(e,t)},getContent:function(){return function(e,n){for(var t=[n];t[0]!==e.rootMessage;){var o=O(e,t[0]);if(!o)return{error:"not connected to root",doc:void 0};t.unshift(o)}var i="";e.rootMessage.content.operations.length&&(r.assert(1===e.rootMessage.content.operations.length),i=e.rootMessage.content.operations[0].toInsert);for(var s=1;s=0;t--)n=s(e[t],n);return n};var c=o.invert=function(e,n){return r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length)),i(e.offset,e.toInsert.length,(" "+n.substring(e.offset,e.offset+e.toRemove)).slice(1))},u=/[\uD800-\uDBFF]|[\uDC00-\uDFFF]/,f=o.hasSurrogate=function(e){return u.test(e)};o.simplify=function(e,n){r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length));for(var t=c(e,n),o=Math.min(e.toInsert.length,t.toInsert.length),s=0;s=0&&h[s]===d[s];s--);d=d.substring(0,s+1),l=s+1}return 0===l&&0===d.length?null:i(u,l,d)},o.equals=function(e,n){return e.toRemove===n.toRemove&&e.toInsert===n.toInsert&&e.offset===n.offset},o.lengthChange=function(e){return r.PARANOIA&&a(e),e.toInsert.length-e.toRemove},o.merge=function(e,n){r.PARANOIA&&(a(n),a(e));var t=e.offset,o=e.toRemove,s=e.toInsert,c=n.offset,u=n.toRemove,f=n.toInsert,l=c-t;if(u>0){var d=s;s=s.substring(0,l)+s.substring(l+u),(u-=d.length-s.length)<0&&(u=0),o+=u,u=0}if(l<0)t+=l,s=f+s;else if(s.length===l)s+=f;else{if(!(s.length>l))throw new Error("should never happen\n"+JSON.stringify([e,n],null," "));s=s.substring(0,l)+f+s.substring(l)}return""===s&&0===o?null:i(t,o,s)},o.shouldMerge=function(e,n){return r.PARANOIA&&(a(e),a(n)),n.offset0;)a+=c=r._heap_write(t,o+a,e,i,s),i+=c,s-=c,o+=c=n.process(o,a),(a-=c)||(o=0);return this.pos=o,this.len=a,this},e.exports.hash_finish=function(){if(null!==this.result)throw new IllegalStateError("state must be reset before processing new data");return this.asm.finish(this.pos,this.len,0),this.result=new Uint8Array(this.HASH_SIZE),this.result.set(this.heap.subarray(0,this.HASH_SIZE)),this.pos=0,this.len=0,this}},"sha256/utils.js":function(e,n,t){var r=e.exports.string_to_bytes=function(e,n){n=!!n;for(var t=e.length,r=new Uint8Array(n?4*t:t),o=0,a=0;o=t)throw new Error("Malformed string, low surrogate expected at position "+o);i=(55296^i)<<10|65536|56320^e.charCodeAt(o)}else if(!n&&i>>>8)throw new Error("Wide characters are not allowed.");!n||i<=127?r[a++]=i:i<=2047?(r[a++]=192|i>>6,r[a++]=128|63&i):i<=65535?(r[a++]=224|i>>12,r[a++]=128|i>>6&63,r[a++]=128|63&i):(r[a++]=240|i>>18,r[a++]=128|i>>12&63,r[a++]=128|i>>6&63,r[a++]=128|63&i)}return r.subarray(0,a)};e.exports.hex_to_bytes=function(e){var n=e.length;1&n&&(e="0"+e,n++);for(var t=new Uint8Array(n>>1),r=0;r>1]=parseInt(e.substr(r,2),16);return t},e.exports.base64_to_bytes=function(e){return r(atob(e))};var o=e.exports.bytes_to_string=function(e,n){n=!!n;for(var t=e.length,r=new Array(t),o=0,a=0;o=192&&i<224&&o+1=224&&i<240&&o+2=240&&i<248&&o+3>10,r[a++]=56320|1023&s)}}for(var c="",u=16384,f=0;f>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+=1},e.exports.is_number=function(e){return"number"==typeof e},e.exports.is_string=function(e){return"string"==typeof e},e.exports.is_buffer=function(e){return e instanceof ArrayBuffer},e.exports.is_bytes=function(e){return e instanceof Uint8Array},e.exports.is_typed_array=function(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array},e.exports._heap_init=function(e,n){var t=n.heap,r=t?t.byteLength:n.heapSize||65536;if(4095&r||r<=0)throw new Error("heap size must be a positive integer and a multiple of 4096");return t=t||new e(new ArrayBuffer(r))},e.exports._heap_write=function(e,n,t,r,o){var a=e.length-n,i=a>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x428a2f98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=n+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x71374491|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=t+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb5c0fbcf|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=l+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe9b5dba5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=d+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x3956c25b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=h+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x59f111f1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=p+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x923f82a4|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=v+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xab1c5ed5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=y+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd807aa98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=m+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x12835b01|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=g+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x243185be|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=E+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x550c7dc3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=b+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x72be5d74|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=O+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x80deb1fe|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=A+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x9bdc06a7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=w+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc19bf174|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe49b69c1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xefbe4786|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x0fc19dc6|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x240ca1cc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2de92c6f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4a7484aa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5cb0a9dc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x76f988da|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x983e5152|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa831c66d|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb00327c8|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbf597fc7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc6e00bf3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd5a79147|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x06ca6351|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x14292967|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x27b70a85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2e1b2138|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4d2c6dfc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x53380d13|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x650a7354|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x766a0abb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x81c2c92e|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x92722c85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa2bfe8a1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa81a664b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc24b8b70|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc76c51a3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd192e819|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd6990624|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xf40e3585|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x106aa070|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x19a4c116|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x1e376c08|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2748774c|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x34b0bcb5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x391c0cb3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4ed8aa4a|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5b9cca4f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x682e6ff3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x748f82ee|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x78a5636f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x84c87814|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x8cc70208|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x90befffa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa4506ceb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbef9a3f7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc67178f2|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;r=r+D|0;o=o+_|0;a=a+T|0;i=i+S|0;s=s+x|0;c=c+N|0;u=u+I|0;f=f+C|0}function C(e){e=e|0;I(N[e|0]<<24|N[e|1]<<16|N[e|2]<<8|N[e|3],N[e|4]<<24|N[e|5]<<16|N[e|6]<<8|N[e|7],N[e|8]<<24|N[e|9]<<16|N[e|10]<<8|N[e|11],N[e|12]<<24|N[e|13]<<16|N[e|14]<<8|N[e|15],N[e|16]<<24|N[e|17]<<16|N[e|18]<<8|N[e|19],N[e|20]<<24|N[e|21]<<16|N[e|22]<<8|N[e|23],N[e|24]<<24|N[e|25]<<16|N[e|26]<<8|N[e|27],N[e|28]<<24|N[e|29]<<16|N[e|30]<<8|N[e|31],N[e|32]<<24|N[e|33]<<16|N[e|34]<<8|N[e|35],N[e|36]<<24|N[e|37]<<16|N[e|38]<<8|N[e|39],N[e|40]<<24|N[e|41]<<16|N[e|42]<<8|N[e|43],N[e|44]<<24|N[e|45]<<16|N[e|46]<<8|N[e|47],N[e|48]<<24|N[e|49]<<16|N[e|50]<<8|N[e|51],N[e|52]<<24|N[e|53]<<16|N[e|54]<<8|N[e|55],N[e|56]<<24|N[e|57]<<16|N[e|58]<<8|N[e|59],N[e|60]<<24|N[e|61]<<16|N[e|62]<<8|N[e|63])}function R(e){e=e|0;N[e|0]=r>>>24;N[e|1]=r>>>16&255;N[e|2]=r>>>8&255;N[e|3]=r&255;N[e|4]=o>>>24;N[e|5]=o>>>16&255;N[e|6]=o>>>8&255;N[e|7]=o&255;N[e|8]=a>>>24;N[e|9]=a>>>16&255;N[e|10]=a>>>8&255;N[e|11]=a&255;N[e|12]=i>>>24;N[e|13]=i>>>16&255;N[e|14]=i>>>8&255;N[e|15]=i&255;N[e|16]=s>>>24;N[e|17]=s>>>16&255;N[e|18]=s>>>8&255;N[e|19]=s&255;N[e|20]=c>>>24;N[e|21]=c>>>16&255;N[e|22]=c>>>8&255;N[e|23]=c&255;N[e|24]=u>>>24;N[e|25]=u>>>16&255;N[e|26]=u>>>8&255;N[e|27]=u&255;N[e|28]=f>>>24;N[e|29]=f>>>16&255;N[e|30]=f>>>8&255;N[e|31]=f&255}function P(){r=0x6a09e667;o=0xbb67ae85;a=0x3c6ef372;i=0xa54ff53a;s=0x510e527f;c=0x9b05688c;u=0x1f83d9ab;f=0x5be0cd19;l=d=0}function k(e,n,t,h,p,v,y,m,g,E){e=e|0;n=n|0;t=t|0;h=h|0;p=p|0;v=v|0;y=y|0;m=m|0;g=g|0;E=E|0;r=e;o=n;a=t;i=h;s=p;c=v;u=y;f=m;l=g;d=E}function M(e,n){e=e|0;n=n|0;var t=0;if(e&63)return-1;while((n|0)>=64){C(e);e=e+64|0;n=n-64|0;t=t+64|0}l=l+t|0;if(l>>>0>>0)d=d+1|0;return t|0}function F(e,n,t){e=e|0;n=n|0;t=t|0;var r=0,o=0;if(e&63)return-1;if(~t)if(t&31)return-1;if((n|0)>=64){r=M(e,n)|0;if((r|0)==-1)return-1;e=e+r|0;n=n-r|0}r=r+n|0;l=l+n|0;if(l>>>0>>0)d=d+1|0;N[e|n]=0x80;if((n|0)>=56){for(o=n+1|0;(o|0)<64;o=o+1|0)N[e|o]=0x00;C(e);n=0;N[e|0]=0}for(o=n+1|0;(o|0)<59;o=o+1|0)N[e|o]=0;N[e|56]=d>>>21&255;N[e|57]=d>>>13&255;N[e|58]=d>>>5&255;N[e|59]=d<<3&255|l>>>29;N[e|60]=l>>>21&255;N[e|61]=l>>>13&255;N[e|62]=l>>>5&255;N[e|63]=l<<3&255;C(e);if(~t)R(t);return r|0}function L(){r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;l=64;d=0}function H(){r=O;o=A;a=w;i=D;s=_;c=T;u=S;f=x;l=64;d=0}function j(e,n,t,N,C,R,k,M,F,L,H,j,K,U,B,V){e=e|0;n=n|0;t=t|0;N=N|0;C=C|0;R=R|0;k=k|0;M=M|0;F=F|0;L=L|0;H=H|0;j=j|0;K=K|0;U=U|0;B=B|0;V=V|0;P();I(e^0x5c5c5c5c,n^0x5c5c5c5c,t^0x5c5c5c5c,N^0x5c5c5c5c,C^0x5c5c5c5c,R^0x5c5c5c5c,k^0x5c5c5c5c,M^0x5c5c5c5c,F^0x5c5c5c5c,L^0x5c5c5c5c,H^0x5c5c5c5c,j^0x5c5c5c5c,K^0x5c5c5c5c,U^0x5c5c5c5c,B^0x5c5c5c5c,V^0x5c5c5c5c);O=r;A=o;w=a;D=i;_=s;T=c;S=u;x=f;P();I(e^0x36363636,n^0x36363636,t^0x36363636,N^0x36363636,C^0x36363636,R^0x36363636,k^0x36363636,M^0x36363636,F^0x36363636,L^0x36363636,H^0x36363636,j^0x36363636,K^0x36363636,U^0x36363636,B^0x36363636,V^0x36363636);h=r;p=o;v=a;y=i;m=s;g=c;E=u;b=f;l=64;d=0}function K(e,n,t){e=e|0;n=n|0;t=t|0;var l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0;if(e&63)return-1;if(~t)if(t&31)return-1;E=F(e,n,-1)|0;l=r,d=o,h=a,p=i,v=s,y=c,m=u,g=f;H();I(l,d,h,p,v,y,m,g,0x80000000,0,0,0,0,0,0,768);if(~t)R(t);return E|0}function U(e,n,t,l,d){e=e|0;n=n|0;t=t|0;l=l|0;d=d|0;var h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0;if(e&63)return-1;if(~d)if(d&31)return-1;N[e+n|0]=t>>>24;N[e+n+1|0]=t>>>16&255;N[e+n+2|0]=t>>>8&255;N[e+n+3|0]=t&255;K(e,n+4|0,-1)|0;h=O=r,p=A=o,v=w=a,y=D=i,m=_=s,g=T=c,E=S=u,b=x=f;l=l-1|0;while((l|0)>0){L();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;H();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;h=h^r;p=p^o;v=v^a;y=y^i;m=m^s;g=g^c;E=E^u;b=b^f;l=l-1|0}r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;if(~d)R(d);return 0}return{reset:P,init:k,process:M,finish:F,hmac_reset:L,hmac_init:j,hmac_finish:K,pbkdf2_generate_block:U}}},"transform/TextTransformer.js":function(e,n,t){var r=t("../Operation"),o=t("../Common"),a=function(e,n){o.PARANOIA&&(r.check(e),r.check(n));var t=function(e,n){if(e.offset>n.offset){if(e.offset>n.offset+n.toRemove)return r.create(e.offset-n.toRemove+n.toInsert.length,e.toRemove,e.toInsert);var t=e.toRemove-(n.offset+n.toRemove-e.offset);return t<0&&(t=0),0===t&&0===e.toInsert.length?null:r.create(n.offset+n.toInsert.length,t,e.toInsert)}if(e.offset+e.toRemove=0;i--)s=r.apply(n[i],s);var c=[];for(i=e.length-1;i>=0;i--){for(var u=e[i],f=n.length-1;f>=0;f--){try{u=a(u,n[f])}catch(e){return console.error("The pluggable transform function threw an error, failing operational transformation"),console.error(e.stack),[]}if(!u)break}u&&(o.PARANOIA&&r.check(u,s.length),c.unshift(u))}return c}},"transform/NaiveJSONTransformer.js":function(e,n,t){var r=t("./TextTransformer"),o=t("../Operation"),a=t("../Common");e.exports=function(e,n,t){var i,s,c,u=a.global.REALTIME_DEBUG=a.global.REALTIME_DEBUG||{};try{i=r(e,n,t),s=o.applyMulti(n,t),c=o.applyMulti(i,s);try{return JSON.parse(c),i}catch(r){console.error(r),u.ot_parseError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_parseError`")}}catch(r){console.error(r),u.ot_applyError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_applyError`")}return[]}},"transform/SmartJSONTransformer.js":function(e,n,t){var r,o,a,i=t("json.sortify"),s=t("../Diff"),c=t("../Operation"),u=t("./TextTransformer"),f=function(e){return null===e?"null":(n=e,"[object Array]"===Object.prototype.toString.call(n)?"array":typeof e);var n},l=function(e,n){for(var t=n.length,r=0;r1)return!0}))&&("splice"!==n.type||!e.some((function(e){if("splice"===e.type&&y(e.path,n.path)&&e.path.length-n.path.length<0){if(!e.removals)return;for(var t=e.offset,r=e.offset+e.removals;te.offset+n.removals)return void(n.offset+=e.value.length-e.removals);if(n.offseti)){var d=n.slice(0,l);if((y=n.slice(l))===u){var p=Math.min(s,l);if((g=c.slice(0,p))===(b=d.slice(0,p)))return h(g,c.slice(p),d.slice(p),u)}}if(null===f||f===s){var v=s,y=(d=n.slice(0,v),n.slice(v));if(d===c){var m=Math.min(a-v,i-v);if((E=u.slice(u.length-m))===(O=y.slice(y.length-m)))return h(c,u.slice(0,u.length-m),y.slice(0,y.length-m),E)}}}if(r.length>0&&o&&0===o.length){var g=e.slice(0,r.index),E=e.slice(r.index+r.length);if(!(i<(p=g.length)+(m=E.length))){var b=n.slice(0,p),O=n.slice(i-m);if(g===b&&E===O)return h(g,e.slice(p,a-m),n.slice(p,i-m),E)}}return null}(e,n,t);if(f)return f}var l=i(e,n),d=e.substring(0,l);l=s(e=e.substring(l),n=n.substring(l));var p=e.substring(e.length-l),v=function(e,n){var t;if(!e)return[[1,n]];if(!n)return[[r,e]];var c=e.length>n.length?e:n,u=e.length>n.length?n:e,f=c.indexOf(u);if(-1!==f)return t=[[1,c.substring(0,f)],[0,u],[1,c.substring(f+u.length)]],e.length>n.length&&(t[0][0]=t[2][0]=r),t;if(1===u.length)return[[r,e],[1,n]];var l=function(e,n){var t=e.length>n.length?e:n,r=e.length>n.length?n:e;if(t.length<4||2*r.length=e.length?[r,o,a,c,l]:null}var a,c,u,f,l,d=o(t,r,Math.ceil(t.length/4)),h=o(t,r,Math.ceil(t.length/2));if(!d&&!h)return null;a=h?d&&d[4].length>h[4].length?d:h:d,e.length>n.length?(c=a[0],u=a[1],f=a[2],l=a[3]):(f=a[0],l=a[1],c=a[2],u=a[3]);var p=a[4];return[c,u,f,l,p]}(e,n);if(l){var d=l[0],h=l[1],p=l[2],v=l[3],y=l[4],m=o(d,p),g=o(h,v);return m.concat([[0,y]],g)}return function(e,n){for(var t=e.length,o=n.length,i=Math.ceil((t+o)/2),s=i,c=2*i,u=new Array(c),f=new Array(c),l=0;lt)v+=2;else if(O>o)p+=2;else if(h&&(D=s+d-E)>=0&&D=(w=t-f[D]))return a(e,n,T,O)}for(var A=-g+y;A<=g-m;A+=2){for(var w,D=s+A,_=(w=A===-g||A!==g&&f[D-1]t)m+=2;else if(_>o)y+=2;else if(!h){var T;if((b=s+d-A)>=0&&b=(w=t-w))return a(e,n,T,O)}}}return[[r,e],[1,n]]}(e,n)}(e=e.substring(0,e.length-l),n=n.substring(0,n.length-l));return d&&v.unshift([0,d]),p&&v.push([0,p]),c(v,u),v}function a(e,n,t,r){var a=e.substring(0,t),i=n.substring(0,r),s=e.substring(t),c=n.substring(r),u=o(a,i),f=o(s,c);return u.concat(f)}function i(e,n){if(!e||!n||e.charAt(0)!==n.charAt(0))return 0;for(var t=0,r=Math.min(e.length,n.length),o=r,a=0;t=0&&d(e[p][1])){var v=e[p][1].slice(-1);if(e[p][1]=e[p][1].slice(0,-1),f=v+f,h=v+h,!e[p][1]){e.splice(p,1),o--;var y=p-1;e[y]&&1===e[y][0]&&(u++,h=e[y][1]+h,y--),e[y]&&e[y][0]===r&&(a++,f=e[y][1]+f,y--),p=y}}l(e[o][1])&&(v=e[o][1].charAt(0),e[o][1]=e[o][1].slice(1),f+=v,h+=v)}if(o0||h.length>0){f.length>0&&h.length>0&&(0!==(t=i(h,f))&&(p>=0?e[p][1]+=h.substring(0,t):(e.splice(0,0,[0,h.substring(0,t)]),o++),h=h.substring(t),f=f.substring(t)),0!==(t=s(h,f))&&(e[o][1]=h.substring(h.length-t)+e[o][1],h=h.substring(0,h.length-t),f=f.substring(0,f.length-t)));var m=u+a;0===f.length&&0===h.length?(e.splice(o-m,m),o-=m):0===f.length?(e.splice(o-m,m,[1,h]),o=o-m+1):0===h.length?(e.splice(o-m,m,[r,f]),o=o-m+1):(e.splice(o-m,m,[r,f],[1,h]),o=o-m+2)}0!==o&&0===e[o-1][0]?(e[o-1][1]+=e[o][1],e.splice(o,1)):o++,u=0,a=0,f="",h=""}""===e[e.length-1][1]&&e.pop();var g=!1;for(o=1;o=55296&&e<=56319}function f(e){return e>=56320&&e<=57343}function l(e){return f(e.charCodeAt(0))}function d(e){return u(e.charCodeAt(e.length-1))}function h(e,n,t,o){return d(e)||l(o)?null:function(e){for(var n=[],t=0;t0&&n.push(e[t]);return n}([[0,e],[r,n],[1,t],[0,o]])}function p(e,n,t){return o(e,n,t,!0)}p.INSERT=1,p.DELETE=r,p.EQUAL=0,e.exports=p}},n=a("ChainPad.js"),r="ChainPad",e.exports=n,"undefined"!=typeof window?o=window:void 0!==t?o=t:"undefined"!=typeof self&&(o=self),o[r]=n}(A)),A.exports}var D,_=w(),T=n({__proto__:null,default:r(_)},[_]),S={exports:{}},x={exports:{}};function N(){return D||(D=1,function(e){!function(e){var n=function(e){var n,t=new Float64Array(16);if(e)for(n=0;n>24&255,e[n+1]=t>>16&255,e[n+2]=t>>8&255,e[n+3]=255&t,e[n+4]=r>>24&255,e[n+5]=r>>16&255,e[n+6]=r>>8&255,e[n+7]=255&r}function p(e,n,t,r,o){var a,i=0;for(a=0;a>>8)-1}function v(e,n,t,r){return p(e,n,t,r,16)}function y(e,n,t,r){return p(e,n,t,r,32)}function m(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=a,A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=0;L<20;L+=2)O^=(o=(P^=(o=(N^=(o=(_^=(o=O+P|0)<<7|o>>>25)+O|0)<<9|o>>>23)+_|0)<<13|o>>>19)+N|0)<<18|o>>>14,T^=(o=(A^=(o=(k^=(o=(I^=(o=T+A|0)<<7|o>>>25)+T|0)<<9|o>>>23)+I|0)<<13|o>>>19)+k|0)<<18|o>>>14,C^=(o=(S^=(o=(w^=(o=(M^=(o=C+S|0)<<7|o>>>25)+C|0)<<9|o>>>23)+M|0)<<13|o>>>19)+w|0)<<18|o>>>14,F^=(o=(R^=(o=(x^=(o=(D^=(o=F+R|0)<<7|o>>>25)+F|0)<<9|o>>>23)+D|0)<<13|o>>>19)+x|0)<<18|o>>>14,O^=(o=(D^=(o=(w^=(o=(A^=(o=O+D|0)<<7|o>>>25)+O|0)<<9|o>>>23)+A|0)<<13|o>>>19)+w|0)<<18|o>>>14,T^=(o=(_^=(o=(x^=(o=(S^=(o=T+_|0)<<7|o>>>25)+T|0)<<9|o>>>23)+S|0)<<13|o>>>19)+x|0)<<18|o>>>14,C^=(o=(I^=(o=(N^=(o=(R^=(o=C+I|0)<<7|o>>>25)+C|0)<<9|o>>>23)+R|0)<<13|o>>>19)+N|0)<<18|o>>>14,F^=(o=(M^=(o=(k^=(o=(P^=(o=F+M|0)<<7|o>>>25)+F|0)<<9|o>>>23)+P|0)<<13|o>>>19)+k|0)<<18|o>>>14;O=O+a|0,A=A+i|0,w=w+s|0,D=D+c|0,_=_+u|0,T=T+f|0,S=S+l|0,x=x+d|0,N=N+h|0,I=I+p|0,C=C+v|0,R=R+y|0,P=P+m|0,k=k+g|0,M=M+E|0,F=F+b|0,e[0]=O>>>0&255,e[1]=O>>>8&255,e[2]=O>>>16&255,e[3]=O>>>24&255,e[4]=A>>>0&255,e[5]=A>>>8&255,e[6]=A>>>16&255,e[7]=A>>>24&255,e[8]=w>>>0&255,e[9]=w>>>8&255,e[10]=w>>>16&255,e[11]=w>>>24&255,e[12]=D>>>0&255,e[13]=D>>>8&255,e[14]=D>>>16&255,e[15]=D>>>24&255,e[16]=_>>>0&255,e[17]=_>>>8&255,e[18]=_>>>16&255,e[19]=_>>>24&255,e[20]=T>>>0&255,e[21]=T>>>8&255,e[22]=T>>>16&255,e[23]=T>>>24&255,e[24]=S>>>0&255,e[25]=S>>>8&255,e[26]=S>>>16&255,e[27]=S>>>24&255,e[28]=x>>>0&255,e[29]=x>>>8&255,e[30]=x>>>16&255,e[31]=x>>>24&255,e[32]=N>>>0&255,e[33]=N>>>8&255,e[34]=N>>>16&255,e[35]=N>>>24&255,e[36]=I>>>0&255,e[37]=I>>>8&255,e[38]=I>>>16&255,e[39]=I>>>24&255,e[40]=C>>>0&255,e[41]=C>>>8&255,e[42]=C>>>16&255,e[43]=C>>>24&255,e[44]=R>>>0&255,e[45]=R>>>8&255,e[46]=R>>>16&255,e[47]=R>>>24&255,e[48]=P>>>0&255,e[49]=P>>>8&255,e[50]=P>>>16&255,e[51]=P>>>24&255,e[52]=k>>>0&255,e[53]=k>>>8&255,e[54]=k>>>16&255,e[55]=k>>>24&255,e[56]=M>>>0&255,e[57]=M>>>8&255,e[58]=M>>>16&255,e[59]=M>>>24&255,e[60]=F>>>0&255,e[61]=F>>>8&255,e[62]=F>>>16&255,e[63]=F>>>24&255}(e,n,t,r)}function g(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=0;O<20;O+=2)a^=(o=(m^=(o=(h^=(o=(u^=(o=a+m|0)<<7|o>>>25)+a|0)<<9|o>>>23)+u|0)<<13|o>>>19)+h|0)<<18|o>>>14,f^=(o=(i^=(o=(g^=(o=(p^=(o=f+i|0)<<7|o>>>25)+f|0)<<9|o>>>23)+p|0)<<13|o>>>19)+g|0)<<18|o>>>14,v^=(o=(l^=(o=(s^=(o=(E^=(o=v+l|0)<<7|o>>>25)+v|0)<<9|o>>>23)+E|0)<<13|o>>>19)+s|0)<<18|o>>>14,b^=(o=(y^=(o=(d^=(o=(c^=(o=b+y|0)<<7|o>>>25)+b|0)<<9|o>>>23)+c|0)<<13|o>>>19)+d|0)<<18|o>>>14,a^=(o=(c^=(o=(s^=(o=(i^=(o=a+c|0)<<7|o>>>25)+a|0)<<9|o>>>23)+i|0)<<13|o>>>19)+s|0)<<18|o>>>14,f^=(o=(u^=(o=(d^=(o=(l^=(o=f+u|0)<<7|o>>>25)+f|0)<<9|o>>>23)+l|0)<<13|o>>>19)+d|0)<<18|o>>>14,v^=(o=(p^=(o=(h^=(o=(y^=(o=v+p|0)<<7|o>>>25)+v|0)<<9|o>>>23)+y|0)<<13|o>>>19)+h|0)<<18|o>>>14,b^=(o=(E^=(o=(g^=(o=(m^=(o=b+E|0)<<7|o>>>25)+b|0)<<9|o>>>23)+m|0)<<13|o>>>19)+g|0)<<18|o>>>14;e[0]=a>>>0&255,e[1]=a>>>8&255,e[2]=a>>>16&255,e[3]=a>>>24&255,e[4]=f>>>0&255,e[5]=f>>>8&255,e[6]=f>>>16&255,e[7]=f>>>24&255,e[8]=v>>>0&255,e[9]=v>>>8&255,e[10]=v>>>16&255,e[11]=v>>>24&255,e[12]=b>>>0&255,e[13]=b>>>8&255,e[14]=b>>>16&255,e[15]=b>>>24&255,e[16]=l>>>0&255,e[17]=l>>>8&255,e[18]=l>>>16&255,e[19]=l>>>24&255,e[20]=d>>>0&255,e[21]=d>>>8&255,e[22]=d>>>16&255,e[23]=d>>>24&255,e[24]=h>>>0&255,e[25]=h>>>8&255,e[26]=h>>>16&255,e[27]=h>>>24&255,e[28]=p>>>0&255,e[29]=p>>>8&255,e[30]=p>>>16&255,e[31]=p>>>24&255}(e,n,t,r)}var E=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function O(e,n,t,r,o,a,i){var s,c,u=new Uint8Array(16),f=new Uint8Array(64);for(c=0;c<16;c++)u[c]=0;for(c=0;c<8;c++)u[c]=a[c];for(;o>=64;){for(m(f,u,i,E),c=0;c<64;c++)e[n+c]=t[r+c]^f[c];for(s=1,c=8;c<16;c++)s=s+(255&u[c])|0,u[c]=255&s,s>>>=8;o-=64,n+=64,r+=64}if(o>0)for(m(f,u,i,E),c=0;c=64;){for(m(c,s,o,E),i=0;i<64;i++)e[n+i]=c[i];for(a=1,i=8;i<16;i++)a=a+(255&s[i])|0,s[i]=255&a,a>>>=8;t-=64,n+=64}if(t>0)for(m(c,s,o,E),i=0;i>>13|t<<3),r=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(t>>>10|r<<6),o=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(r>>>7|o<<9),a=255&e[8]|(255&e[9])<<8,this.r[4]=255&(o>>>4|a<<12),this.r[5]=a>>>1&8190,i=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(a>>>14|i<<2),s=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(i>>>11|s<<5),c=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(s>>>8|c<<8),this.r[9]=c>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function T(e,n,t,r,o,a){var i=new _(a);return i.update(t,r,o),i.finish(e,n),0}function S(e,n,t,r,o,a){var i=new Uint8Array(16);return T(i,0,t,r,o,a),v(e,n,i,0)}function x(e,n,t,r,o){var a;if(t<32)return-1;for(D(e,0,n,0,t,r,o),T(e,16,e,32,t-32,e),a=0;a<16;a++)e[a]=0;return 0}function N(e,n,t,r,o){var a,i=new Uint8Array(32);if(t<32)return-1;if(w(i,0,32,r,o),0!==S(n,16,n,32,t-32,i))return-1;for(D(e,0,n,0,t,r,o),a=0;a<32;a++)e[a]=0;return 0}function I(e,n){var t;for(t=0;t<16;t++)e[t]=0|n[t]}function C(e){var n,t,r=1;for(n=0;n<16;n++)t=e[n]+r+65535,r=Math.floor(t/65536),e[n]=t-65536*r;e[0]+=r-1+37*(r-1)}function R(e,n,t){for(var r,o=~(t-1),a=0;a<16;a++)r=o&(e[a]^n[a]),e[a]^=r,n[a]^=r}function P(e,t){var r,o,a,i=n(),s=n();for(r=0;r<16;r++)s[r]=t[r];for(C(s),C(s),C(s),o=0;o<2;o++){for(i[0]=s[0]-65517,r=1;r<15;r++)i[r]=s[r]-65535-(i[r-1]>>16&1),i[r-1]&=65535;i[15]=s[15]-32767-(i[14]>>16&1),a=i[15]>>16&1,i[14]&=65535,R(s,i,1-a)}for(r=0;r<16;r++)e[2*r]=255&s[r],e[2*r+1]=s[r]>>8}function k(e,n){var t=new Uint8Array(32),r=new Uint8Array(32);return P(t,e),P(r,n),y(t,0,r,0)}function M(e){var n=new Uint8Array(32);return P(n,e),1&n[0]}function F(e,n){var t;for(t=0;t<16;t++)e[t]=n[2*t]+(n[2*t+1]<<8);e[15]&=32767}function L(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]+t[r]}function H(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]-t[r]}function j(e,n,t){var r,o,a=0,i=0,s=0,c=0,u=0,f=0,l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0,N=0,I=0,C=0,R=0,P=0,k=0,M=0,F=t[0],L=t[1],H=t[2],j=t[3],K=t[4],U=t[5],B=t[6],V=t[7],Y=t[8],G=t[9],J=t[10],q=t[11],W=t[12],z=t[13],Q=t[14],Z=t[15];a+=(r=n[0])*F,i+=r*L,s+=r*H,c+=r*j,u+=r*K,f+=r*U,l+=r*B,d+=r*V,h+=r*Y,p+=r*G,v+=r*J,y+=r*q,m+=r*W,g+=r*z,E+=r*Q,b+=r*Z,i+=(r=n[1])*F,s+=r*L,c+=r*H,u+=r*j,f+=r*K,l+=r*U,d+=r*B,h+=r*V,p+=r*Y,v+=r*G,y+=r*J,m+=r*q,g+=r*W,E+=r*z,b+=r*Q,O+=r*Z,s+=(r=n[2])*F,c+=r*L,u+=r*H,f+=r*j,l+=r*K,d+=r*U,h+=r*B,p+=r*V,v+=r*Y,y+=r*G,m+=r*J,g+=r*q,E+=r*W,b+=r*z,O+=r*Q,A+=r*Z,c+=(r=n[3])*F,u+=r*L,f+=r*H,l+=r*j,d+=r*K,h+=r*U,p+=r*B,v+=r*V,y+=r*Y,m+=r*G,g+=r*J,E+=r*q,b+=r*W,O+=r*z,A+=r*Q,w+=r*Z,u+=(r=n[4])*F,f+=r*L,l+=r*H,d+=r*j,h+=r*K,p+=r*U,v+=r*B,y+=r*V,m+=r*Y,g+=r*G,E+=r*J,b+=r*q,O+=r*W,A+=r*z,w+=r*Q,D+=r*Z,f+=(r=n[5])*F,l+=r*L,d+=r*H,h+=r*j,p+=r*K,v+=r*U,y+=r*B,m+=r*V,g+=r*Y,E+=r*G,b+=r*J,O+=r*q,A+=r*W,w+=r*z,D+=r*Q,_+=r*Z,l+=(r=n[6])*F,d+=r*L,h+=r*H,p+=r*j,v+=r*K,y+=r*U,m+=r*B,g+=r*V,E+=r*Y,b+=r*G,O+=r*J,A+=r*q,w+=r*W,D+=r*z,_+=r*Q,T+=r*Z,d+=(r=n[7])*F,h+=r*L,p+=r*H,v+=r*j,y+=r*K,m+=r*U,g+=r*B,E+=r*V,b+=r*Y,O+=r*G,A+=r*J,w+=r*q,D+=r*W,_+=r*z,T+=r*Q,S+=r*Z,h+=(r=n[8])*F,p+=r*L,v+=r*H,y+=r*j,m+=r*K,g+=r*U,E+=r*B,b+=r*V,O+=r*Y,A+=r*G,w+=r*J,D+=r*q,_+=r*W,T+=r*z,S+=r*Q,x+=r*Z,p+=(r=n[9])*F,v+=r*L,y+=r*H,m+=r*j,g+=r*K,E+=r*U,b+=r*B,O+=r*V,A+=r*Y,w+=r*G,D+=r*J,_+=r*q,T+=r*W,S+=r*z,x+=r*Q,N+=r*Z,v+=(r=n[10])*F,y+=r*L,m+=r*H,g+=r*j,E+=r*K,b+=r*U,O+=r*B,A+=r*V,w+=r*Y,D+=r*G,_+=r*J,T+=r*q,S+=r*W,x+=r*z,N+=r*Q,I+=r*Z,y+=(r=n[11])*F,m+=r*L,g+=r*H,E+=r*j,b+=r*K,O+=r*U,A+=r*B,w+=r*V,D+=r*Y,_+=r*G,T+=r*J,S+=r*q,x+=r*W,N+=r*z,I+=r*Q,C+=r*Z,m+=(r=n[12])*F,g+=r*L,E+=r*H,b+=r*j,O+=r*K,A+=r*U,w+=r*B,D+=r*V,_+=r*Y,T+=r*G,S+=r*J,x+=r*q,N+=r*W,I+=r*z,C+=r*Q,R+=r*Z,g+=(r=n[13])*F,E+=r*L,b+=r*H,O+=r*j,A+=r*K,w+=r*U,D+=r*B,_+=r*V,T+=r*Y,S+=r*G,x+=r*J,N+=r*q,I+=r*W,C+=r*z,R+=r*Q,P+=r*Z,E+=(r=n[14])*F,b+=r*L,O+=r*H,A+=r*j,w+=r*K,D+=r*U,_+=r*B,T+=r*V,S+=r*Y,x+=r*G,N+=r*J,I+=r*q,C+=r*W,R+=r*z,P+=r*Q,k+=r*Z,b+=(r=n[15])*F,i+=38*(A+=r*H),s+=38*(w+=r*j),c+=38*(D+=r*K),u+=38*(_+=r*U),f+=38*(T+=r*B),l+=38*(S+=r*V),d+=38*(x+=r*Y),h+=38*(N+=r*G),p+=38*(I+=r*J),v+=38*(C+=r*q),y+=38*(R+=r*W),m+=38*(P+=r*z),g+=38*(k+=r*Q),E+=38*(M+=r*Z),a=(r=(a+=38*(O+=r*L))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a=(r=(a+=o-1+37*(o-1))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a+=o-1+37*(o-1),e[0]=a,e[1]=i,e[2]=s,e[3]=c,e[4]=u,e[5]=f,e[6]=l,e[7]=d,e[8]=h,e[9]=p,e[10]=v,e[11]=y,e[12]=m,e[13]=g,e[14]=E,e[15]=b}function K(e,n){j(e,n,n)}function U(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=253;r>=0;r--)K(o,o),2!==r&&4!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function B(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=250;r>=0;r--)K(o,o),1!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function V(e,t,r){var o,a,i=new Uint8Array(32),c=new Float64Array(80),u=n(),f=n(),l=n(),d=n(),h=n(),p=n();for(a=0;a<31;a++)i[a]=t[a];for(i[31]=127&t[31]|64,i[0]&=248,F(c,r),a=0;a<16;a++)f[a]=c[a],d[a]=u[a]=l[a]=0;for(u[0]=d[0]=1,a=254;a>=0;--a)R(u,f,o=i[a>>>3]>>>(7&a)&1),R(l,d,o),L(h,u,l),H(u,u,l),L(l,f,d),H(f,f,d),K(d,h),K(p,u),j(u,l,u),j(l,f,h),L(h,u,l),H(u,u,l),K(f,u),H(l,d,p),j(u,l,s),L(u,u,d),j(l,l,u),j(u,d,p),j(d,f,c),K(f,h),R(u,f,o),R(l,d,o);for(a=0;a<16;a++)c[a+16]=u[a],c[a+32]=l[a],c[a+48]=f[a],c[a+64]=d[a];var v=c.subarray(32),y=c.subarray(16);return U(v,v),j(y,y,v),P(e,y),0}function Y(e,n){return V(e,n,o)}function G(e,n){return t(n,32),Y(e,n)}function J(e,n,t){var o=new Uint8Array(32);return V(o,t,n),g(e,r,o,E)}_.prototype.blocks=function(e,n,t){for(var r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A=this.fin?0:2048,w=this.h[0],D=this.h[1],_=this.h[2],T=this.h[3],S=this.h[4],x=this.h[5],N=this.h[6],I=this.h[7],C=this.h[8],R=this.h[9],P=this.r[0],k=this.r[1],M=this.r[2],F=this.r[3],L=this.r[4],H=this.r[5],j=this.r[6],K=this.r[7],U=this.r[8],B=this.r[9];t>=16;)d=l=0,d+=(w+=8191&(r=255&e[n+0]|(255&e[n+1])<<8))*P,d+=(D+=8191&(r>>>13|(o=255&e[n+2]|(255&e[n+3])<<8)<<3))*(5*B),d+=(_+=8191&(o>>>10|(a=255&e[n+4]|(255&e[n+5])<<8)<<6))*(5*U),d+=(T+=8191&(a>>>7|(i=255&e[n+6]|(255&e[n+7])<<8)<<9))*(5*K),l=(d+=(S+=8191&(i>>>4|(s=255&e[n+8]|(255&e[n+9])<<8)<<12))*(5*j))>>>13,d&=8191,d+=(x+=s>>>1&8191)*(5*H),d+=(N+=8191&(s>>>14|(c=255&e[n+10]|(255&e[n+11])<<8)<<2))*(5*L),d+=(I+=8191&(c>>>11|(u=255&e[n+12]|(255&e[n+13])<<8)<<5))*(5*F),d+=(C+=8191&(u>>>8|(f=255&e[n+14]|(255&e[n+15])<<8)<<8))*(5*M),h=l+=(d+=(R+=f>>>5|A)*(5*k))>>>13,h+=w*k,h+=D*P,h+=_*(5*B),h+=T*(5*U),l=(h+=S*(5*K))>>>13,h&=8191,h+=x*(5*j),h+=N*(5*H),h+=I*(5*L),h+=C*(5*F),l+=(h+=R*(5*M))>>>13,h&=8191,p=l,p+=w*M,p+=D*k,p+=_*P,p+=T*(5*B),l=(p+=S*(5*U))>>>13,p&=8191,p+=x*(5*K),p+=N*(5*j),p+=I*(5*H),p+=C*(5*L),v=l+=(p+=R*(5*F))>>>13,v+=w*F,v+=D*M,v+=_*k,v+=T*P,l=(v+=S*(5*B))>>>13,v&=8191,v+=x*(5*U),v+=N*(5*K),v+=I*(5*j),v+=C*(5*H),y=l+=(v+=R*(5*L))>>>13,y+=w*L,y+=D*F,y+=_*M,y+=T*k,l=(y+=S*P)>>>13,y&=8191,y+=x*(5*B),y+=N*(5*U),y+=I*(5*K),y+=C*(5*j),m=l+=(y+=R*(5*H))>>>13,m+=w*H,m+=D*L,m+=_*F,m+=T*M,l=(m+=S*k)>>>13,m&=8191,m+=x*P,m+=N*(5*B),m+=I*(5*U),m+=C*(5*K),g=l+=(m+=R*(5*j))>>>13,g+=w*j,g+=D*H,g+=_*L,g+=T*F,l=(g+=S*M)>>>13,g&=8191,g+=x*k,g+=N*P,g+=I*(5*B),g+=C*(5*U),E=l+=(g+=R*(5*K))>>>13,E+=w*K,E+=D*j,E+=_*H,E+=T*L,l=(E+=S*F)>>>13,E&=8191,E+=x*M,E+=N*k,E+=I*P,E+=C*(5*B),b=l+=(E+=R*(5*U))>>>13,b+=w*U,b+=D*K,b+=_*j,b+=T*H,l=(b+=S*L)>>>13,b&=8191,b+=x*F,b+=N*M,b+=I*k,b+=C*P,O=l+=(b+=R*(5*B))>>>13,O+=w*B,O+=D*U,O+=_*K,O+=T*j,l=(O+=S*H)>>>13,O&=8191,O+=x*L,O+=N*F,O+=I*M,O+=C*k,w=d=8191&(l=(l=((l+=(O+=R*P)>>>13)<<2)+l|0)+(d&=8191)|0),D=h+=l>>>=13,_=p&=8191,T=v&=8191,S=y&=8191,x=m&=8191,N=g&=8191,I=E&=8191,C=b&=8191,R=O&=8191,n+=16,t-=16;this.h[0]=w,this.h[1]=D,this.h[2]=_,this.h[3]=T,this.h[4]=S,this.h[5]=x,this.h[6]=N,this.h[7]=I,this.h[8]=C,this.h[9]=R},_.prototype.finish=function(e,n){var t,r,o,a,i=new Uint16Array(10);if(this.leftover){for(a=this.leftover,this.buffer[a++]=1;a<16;a++)this.buffer[a]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(t=this.h[1]>>>13,this.h[1]&=8191,a=2;a<10;a++)this.h[a]+=t,t=this.h[a]>>>13,this.h[a]&=8191;for(this.h[0]+=5*t,t=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=t,t=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=t,i[0]=this.h[0]+5,t=i[0]>>>13,i[0]&=8191,a=1;a<10;a++)i[a]=this.h[a]+t,t=i[a]>>>13,i[a]&=8191;for(i[9]-=8192,r=(1^t)-1,a=0;a<10;a++)i[a]&=r;for(r=~r,a=0;a<10;a++)this.h[a]=this.h[a]&r|i[a];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,a=1;a<8;a++)o=(this.h[a]+this.pad[a]|0)+(o>>>16)|0,this.h[a]=65535&o;e[n+0]=this.h[0]>>>0&255,e[n+1]=this.h[0]>>>8&255,e[n+2]=this.h[1]>>>0&255,e[n+3]=this.h[1]>>>8&255,e[n+4]=this.h[2]>>>0&255,e[n+5]=this.h[2]>>>8&255,e[n+6]=this.h[3]>>>0&255,e[n+7]=this.h[3]>>>8&255,e[n+8]=this.h[4]>>>0&255,e[n+9]=this.h[4]>>>8&255,e[n+10]=this.h[5]>>>0&255,e[n+11]=this.h[5]>>>8&255,e[n+12]=this.h[6]>>>0&255,e[n+13]=this.h[6]>>>8&255,e[n+14]=this.h[7]>>>0&255,e[n+15]=this.h[7]>>>8&255},_.prototype.update=function(e,n,t){var r,o;if(this.leftover){for((o=16-this.leftover)>t&&(o=t),r=0;r=16&&(o=t-t%16,this.blocks(e,n,o),n+=o,t-=o),t){for(r=0;r=128;){for(A=0;A<16;A++)w=8*A+W,I[A]=t[w+0]<<24|t[w+1]<<16|t[w+2]<<8|t[w+3],C[A]=t[w+4]<<24|t[w+5]<<16|t[w+6]<<8|t[w+7];for(A=0;A<80;A++)if(o=R,a=P,i=k,s=M,c=F,u=L,f=H,j,d=K,h=U,p=B,v=V,y=Y,m=G,g=J,q,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,T+=65535&(_=(Y>>>14|F<<18)^(Y>>>18|F<<14)^(F>>>9|Y<<23)),S+=_>>>16,x+=65535&(D=(F>>>14|Y<<18)^(F>>>18|Y<<14)^(Y>>>9|F<<23)),N+=D>>>16,T+=65535&(_=Y&G^~Y&J),S+=_>>>16,x+=65535&(D=F&L^~F&H),N+=D>>>16,T+=65535&(_=z[2*A+1]),S+=_>>>16,x+=65535&(D=z[2*A]),N+=D>>>16,D=I[A%16],S+=(_=C[A%16])>>>16,x+=65535&D,N+=D>>>16,x+=(S+=(T+=65535&_)>>>16)>>>16,T=65535&(_=O=65535&T|S<<16),S=_>>>16,x=65535&(D=b=65535&x|(N+=x>>>16)<<16),N=D>>>16,T+=65535&(_=(K>>>28|R<<4)^(R>>>2|K<<30)^(R>>>7|K<<25)),S+=_>>>16,x+=65535&(D=(R>>>28|K<<4)^(K>>>2|R<<30)^(K>>>7|R<<25)),N+=D>>>16,S+=(_=K&U^K&B^U&B)>>>16,x+=65535&(D=R&P^R&k^P&k),N+=D>>>16,l=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,E=65535&T|S<<16,T=65535&(_=v),S=_>>>16,x=65535&(D=s),N=D>>>16,S+=(_=O)>>>16,x+=65535&(D=b),N+=D>>>16,P=o,k=a,M=i,F=s=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,L=c,H=u,j=f,R=l,U=d,B=h,V=p,Y=v=65535&T|S<<16,G=y,J=m,q=g,K=E,A%16==15)for(w=0;w<16;w++)D=I[w],T=65535&(_=C[w]),S=_>>>16,x=65535&D,N=D>>>16,D=I[(w+9)%16],T+=65535&(_=C[(w+9)%16]),S+=_>>>16,x+=65535&D,N+=D>>>16,b=I[(w+1)%16],T+=65535&(_=((O=C[(w+1)%16])>>>1|b<<31)^(O>>>8|b<<24)^(O>>>7|b<<25)),S+=_>>>16,x+=65535&(D=(b>>>1|O<<31)^(b>>>8|O<<24)^b>>>7),N+=D>>>16,b=I[(w+14)%16],S+=(_=((O=C[(w+14)%16])>>>19|b<<13)^(b>>>29|O<<3)^(O>>>6|b<<26))>>>16,x+=65535&(D=(b>>>19|O<<13)^(O>>>29|b<<3)^b>>>6),N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,I[w]=65535&x|N<<16,C[w]=65535&T|S<<16;T=65535&(_=K),S=_>>>16,x=65535&(D=R),N=D>>>16,D=e[0],S+=(_=n[0])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[0]=R=65535&x|N<<16,n[0]=K=65535&T|S<<16,T=65535&(_=U),S=_>>>16,x=65535&(D=P),N=D>>>16,D=e[1],S+=(_=n[1])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[1]=P=65535&x|N<<16,n[1]=U=65535&T|S<<16,T=65535&(_=B),S=_>>>16,x=65535&(D=k),N=D>>>16,D=e[2],S+=(_=n[2])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[2]=k=65535&x|N<<16,n[2]=B=65535&T|S<<16,T=65535&(_=V),S=_>>>16,x=65535&(D=M),N=D>>>16,D=e[3],S+=(_=n[3])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[3]=M=65535&x|N<<16,n[3]=V=65535&T|S<<16,T=65535&(_=Y),S=_>>>16,x=65535&(D=F),N=D>>>16,D=e[4],S+=(_=n[4])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[4]=F=65535&x|N<<16,n[4]=Y=65535&T|S<<16,T=65535&(_=G),S=_>>>16,x=65535&(D=L),N=D>>>16,D=e[5],S+=(_=n[5])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[5]=L=65535&x|N<<16,n[5]=G=65535&T|S<<16,T=65535&(_=J),S=_>>>16,x=65535&(D=H),N=D>>>16,D=e[6],S+=(_=n[6])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[6]=H=65535&x|N<<16,n[6]=J=65535&T|S<<16,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,D=e[7],S+=(_=n[7])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[7]=j=65535&x|N<<16,n[7]=q=65535&T|S<<16,W+=128,r-=128}return r}function Z(e,n,t){var r,o=new Int32Array(8),a=new Int32Array(8),i=new Uint8Array(256),s=t;for(o[0]=1779033703,o[1]=3144134277,o[2]=1013904242,o[3]=2773480762,o[4]=1359893119,o[5]=2600822924,o[6]=528734635,o[7]=1541459225,a[0]=4089235720,a[1]=2227873595,a[2]=4271175723,a[3]=1595750129,a[4]=2917565137,a[5]=725511199,a[6]=4215389547,a[7]=327033209,Q(o,a,n,t),t%=128,r=0;r=0;--o)$(e,n,r=t[o/8|0]>>(7&o)&1),X(n,e),X(e,e),$(e,n,r)}function te(e,t){var r=[n(),n(),n(),n()];I(r[0],f),I(r[1],l),I(r[2],i),j(r[3],f,l),ne(e,r,t)}function re(e,r,o){var a,i=new Uint8Array(64),s=[n(),n(),n(),n()];for(o||t(r,32),Z(i,r,32),i[0]&=248,i[31]&=127,i[31]|=64,te(s,i),ee(e,s),a=0;a<32;a++)r[a+32]=e[a];return 0}var oe=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function ae(e,n){var t,r,o,a;for(r=63;r>=32;--r){for(t=0,o=r-32,a=r-12;o>4)*oe[o],t=n[o]>>8,n[o]&=255;for(o=0;o<32;o++)n[o]-=t*oe[o];for(r=0;r<32;r++)n[r+1]+=n[r]>>8,e[r]=255&n[r]}function ie(e){var n,t=new Float64Array(64);for(n=0;n<64;n++)t[n]=e[n];for(n=0;n<64;n++)e[n]=0;ae(e,t)}function se(e,t,r,o){var a,i,s=new Uint8Array(64),c=new Uint8Array(64),u=new Uint8Array(64),f=new Float64Array(64),l=[n(),n(),n(),n()];Z(s,o,32),s[0]&=248,s[31]&=127,s[31]|=64;var d=r+64;for(a=0;a>7&&H(e[0],a,e[0]),j(e[3],e[0],e[1]),0)}(h,o))return-1;for(s=0;s=0},e.sign.keyPair=function(){var e=new Uint8Array(le),n=new Uint8Array(de);return re(e,n),{publicKey:e,secretKey:n}},e.sign.keyPair.fromSecretKey=function(e){if(pe(e),e.length!==de)throw new Error("bad secret key size");for(var n=new Uint8Array(le),t=0;t{let t;return(t=e.length%4)&&(e+="=".repeat(4-t)),n.decodeBase64(e)},a=n.decodeUTF8,i=n.encodeUTF8,s=function(e){for(var n="",t=0;t{var n={setCustomize:n=>{e=n.ApiConfig},getWebsocketURL:function(n){var t=e.websocketPath||"/cryptpad_websocket";if(/^ws{1,2}:\/\//.test(t))return t;var r=new URL(n||self?.location?.href);return n&&(r.href=n),r.protocol.replace(/http/,"ws")+"//"+r.host+t}};return n})())}(H)),H.exports}var K,U=j(),B=n({__proto__:null,default:r(U)},[U]),V={exports:{}};function Y(){return K||(K=1,function(e){e.exports&&(e.exports=function(e={}){return{setCustomize:n=>{e=n.AppConfig},userHashKey:"User_hash",userNameKey:"User_name",blockHashKey:"Block_hash",fileHashKey:"FS_hash",sessionJWT:"Session_JWT",ssoSeed:"SSO_seed",displayNameKey:"cryptpad.username",oldStorageKey:"CryptPad_RECENTPADS",storageKey:"filesData",tokenKey:"loginToken",prefersDriveRedirectKey:"prefersDriveRedirect",isPremiumKey:"isPremiumUser",displayPadCreationScreen:"displayPadCreationScreen",deprecatedKey:"deprecated",MAX_TEAMS_SLOTS:e.maxTeamsSlots||5,MAX_TEAMS_OWNED:e.maxOwnedTeams||5,MAX_PREMIUM_TEAMS_SLOTS:Math.max(e.maxTeamsSlots||0,e.maxPremiumTeamsSlots||0)||5,MAX_PREMIUM_TEAMS_OWNED:Math.max(e.maxOwnedTeams||0,e.maxPremiumTeamsOwned||0)||5,criticalApps:["profile","settings","debug","admin","support","notifications","calendar","moderation","oldadmin"],earlyAccessApps:[]}}(void 0))}(V)),V.exports}var G,J=Y(),q=n({__proto__:null,default:r(J)},[J]),W={exports:{}},z={exports:{}},Q=z.exports;function Z(){return G||(G=1,function(e){!function(n){const t=e=>{var t={};n.atob=n.atob||function(e){return Buffer.from(e,"base64").toString("binary")},n.btoa=n.btoa||function(e){return Buffer.from(e,"binary").toString("base64")},t.encodeBase64=e.encodeBase64,t.decodeBase64=n=>{let t;return(t=n.length%4)&&(n+="=".repeat(4-t)),e.decodeBase64(n)},t.encodeUTF8=e.encodeUTF8,t.decodeUTF8=e.decodeUTF8,t.slice=function(e,n,t){return Array.prototype.slice.call(e,n,t)},t.u8ToBase64=(e,n)=>{const t=new FileReader;t.onload=()=>{let e=t.result,r=e.slice(e.indexOf(",")+1);n(r)},t.readAsDataURL(new Blob([e]))},t.shuffleArray=function(e){for(var n=e.length-1;n>0;n--){var t=Math.floor(Math.random()*(n+1)),r=e[n];e[n]=e[t],e[t]=r}},t.bake=function(e,n){return void 0===n&&(n=[]),Array.isArray(n)||(n=[n]),function(){return e.apply(null,n)}},t.both=function(e,n){if("function"!=typeof e)throw new Error("INVALID_USAGE");return"function"!=typeof n&&(n=function(e){return e}),function(){return e.apply(null,arguments),n.apply(null,arguments)}},t.clone=function(e){return null==e?e:JSON.parse(JSON.stringify(e))},t.serializeError=function(e){if(!(e instanceof Error))return e;var n={};return Object.getOwnPropertyNames(e).forEach((function(t){n[t]=e[t]})),n},t.tryParse=function(e){try{return JSON.parse(e)}catch(e){return}},t.mkAsync=function(e,n){if("function"!=typeof e)throw new Error("EXPECTED_FUNCTION");return function(){var t=Array.prototype.slice.call(arguments);setTimeout((function(){e.apply(null,t)}),n)}},t.mkEvent=function(e){var n=[],t=!1;let r;return{reg:function(r){e&&t?setTimeout(r):n.push(r)},unreg:function(e){-1!==n.indexOf(e)?n.splice(n.indexOf(e),1):console.log("event handler was already unregistered")},fire:function(){if(!e||!t){var o=Array.prototype.slice.call(arguments);t||r.apply(null,o),t=!0,n.forEach((function(e){e.apply(null,o)}))}},promise:new Promise((e=>{r=e}))}},t.mkTimeout=function(e,n){n=n||0;var r=t.once(e),o=setTimeout((function(){r("TIMEOUT")}),n);return t.both(r,(function(){clearTimeout(o)}))},t.onClickEnter=function(e,n,t){e.on("click keydown",(function(e){var r="click"===e.type,o="keydown"===e.type&&13===e.which,a="keydown"===e.type&&32===e.which&&t&&t.space;(r||o||a)&&("keydown"===e.type&&e.preventDefault(),n(e))}))},t.response=function(e){var n={},t={};"function"!=typeof e&&(e=function(e){throw new Error(e)});var r=function(e){clearTimeout(t[e]),delete t[e],delete n[e]};return{clear:r,expected:function(e){return Boolean(n[e])},expectation:function(e){return n[e]},expect:function(o,a,i){"string"!=typeof o&&e("EXPECTED_STRING"),"function"!=typeof a&&e("EXPECTED_CALLBACK"),n[o]=a,"number"==typeof i&&i&&(t[o]=setTimeout((function(){"function"==typeof n[o]&&n[o]("TIMEOUT"),r(o)}),i))},handle:function(t,o){var a=n[t];if("function"==typeof a){try{a.apply(null,Array.isArray(o)?o:[o])}catch(n){e("HANDLER_ERROR",{error:n,id:t,args:o})}r(t)}else e("MISSING_CALLBACK",{id:t,args:o})},_pending:n}},t.inc=function(e,n,t){e[n]=(e[n]||0)+("number"==typeof t?t:1)},t.values=function(e){return Object.keys(e).map((function(n){return e[n]}))},t.find=function(e,n){for(var t=n.length,r=0;r&"']/g,(function(e){return{"<":"<",">":">","&":"&",'"':""","'":"'"}[e]})):""},t.hexToBase64=function(e){var t=e.replace(/\r|\n/g,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" "),r=String.fromCharCode.apply(null,t);return n.btoa(r).replace(/\//g,"-").replace(/=+$/,"")},t.base64ToHex=function(e){var t=[];return n.atob(e.replace(/-/g,"/")).split("").forEach((function(e){var n=e.charCodeAt(0).toString(16);1===n.length&&(n="0"+n),t.push(n)})),t.join("")},t.uint8ArrayToHex=function(e){for(var n="",t=0;t=o?"GB":e>=r?"MB":"KB"};t.getBlock=function(e,n,r){var o=t.once(t.mkAsync(r)),a={};"string"==typeof n.bearer&&n.bearer&&(a.authorization=`Bearer ${n.bearer}`),fetch(e,{method:"GET",credentials:"include",headers:a}).then((e=>{e.ok?o(void 0,e):401!==e.status&&404!==e.status?o(e.status,e):e.json().then((n=>{o(e.status,n)})).catch((()=>{o(e.status)}))})).catch((e=>{o(e)}))},t.fetchApi=function(e,n,t,r){const o=new URL(e);o.pathname=`api/${n}`;let a=o.href+(t?"?"+ +new Date:"");if("undefined"!=typeof self&&self.crypto)fetch(a).then((e=>{if(!e.ok)throw new Error(`Fetch error: ${e.status}`);return e.text()})).then((e=>{r(JSON.parse(e.slice(27,-5)))})).catch((e=>{console.error(e.message),r({})}));else if(void 0!==b){("http:"===o.protocol?require("node:http"):require("node:https")).get(o.href,(e=>{let n="";e.on("data",(e=>{n+=e})),e.on("end",(()=>{try{r(JSON.parse(n.slice(27,-5)))}catch(e){console.error(e),r({})}}))}))}},t.fetch=function(e,n,r,o){var a,i=t.once(t.mkAsync(n)),s=function(e){var n=e.replace(/(\/)*$/,""),t=n.lastIndexOf("/"),r=n.slice(t+1);return/^[a-f0-9]{48}$/.test(r)||(r=void 0),r}(e),c=function(){(a=new XMLHttpRequest).open("GET",e,!0),r&&a.addEventListener("progress",(function(e){if(e.lengthComputable){var n=e.loaded/e.total;r(n)}}),!1),a.responseType="arraybuffer",a.onerror=function(e){i(e)},a.onload=function(){if(/^4/.test(""+this.status))return i("XHR_ERROR");var e=a.response;if(e){var n=new Uint8Array(e);return s?void function(e,n,t){o&&"function"==typeof o.setBlobCache?o.setBlobCache(e,n,t):t("EINVAL")}(s,n,(function(){i(null,n)})):void i(void 0,n)}i("ENOENT")},a.send(null)};if(s)return function(e,n){o&&"function"==typeof o.getBlobCache?o.getBlobCache(e,n):n("EINVAL")}(s,(function(e,n){!e&&n?i(void 0,n):c()})),{cancel:function(){a&&a.abort&&a.abort()}};c()},t.dataURIToBlob=function(e){for(var n=atob(e.split(",")[1]),t=e.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(n.length),o=new Uint8Array(r),a=0;aparseInt(e,10).toString(16).padStart(2,"0"))).join("")}`},t.isSmallScreen=function(){return n.innerHeight<800||n.innerWidth<800},t.stripTags=function(e){var n=document.createElement("div");return n.innerHTML=e,n.innerText},t.parseFilename=function(e){if(!e||!e.trim())return{};var n=/^(\.?.+?)(\.[^.]+)?$/.exec(e)||[];return{name:n[1],ext:n[2]}},t.isPlainTextFile=function(e,n){if(e&&0===e.indexOf("text/"))return!0;var r=t.parseFilename(n);return!(e||!n||r.ext)||("application/x-javascript"===e||"application/xml"===e)},t.isSpreadsheet=function(e,n){return e&&("application/vnd.oasis.opendocument.spreadsheet"===e||"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"===e)||n&&(n.endsWith(".xlsx")||n.endsWith(".ods"))},t.isOfficeDoc=function(e,n){return e&&("application/vnd.oasis.opendocument.text"===e||"application/vnd.openxmlformats-officedocument.wordprocessingml.document"===e)||n&&(n.endsWith(".docx")||n.endsWith(".odt"))},t.isPresentation=function(e,n){return e&&("application/vnd.oasis.opendocument.presentation"===e||"application/vnd.openxmlformats-officedocument.presentationml.presentation"===e)||n&&(n.endsWith(".pptx")||n.endsWith(".odp"))},t.isValidURL=function(e){return!!new RegExp("^(https?:\\/\\/)((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?").test(e)};var a=/([\uD800-\uDBFF][\uDC00-\uDFFF])/;t.getFirstCharacter=function(e){if(!e||!e.trim())return"?";var n=function(e){for(var n=e.split(a),t=[],r=0;r{let n=/ver=([0-9.]+)(-[0-9]*)?/.exec(e);return Array.isArray(n)&&n[1]||void 0},t.Saferphore={create:e=>{var n,t=[];return n=function(){if(e<0)throw new Error("(resourceCount < 0) should never happen");var r;0!==e&&0!==t.length&&(e--,t.shift()((r=0,function(t){if(r++)throw new Error("returnAfter() called multiple times");var o=0;return function(){if(o++)throw new Error("returnAfter wrapped callback called multiple times");t&&t.apply(null,arguments),e++,n()}})))},{take:function(e){t.push(e),n()}}}},t};e.exports?e.exports=t(k()):n.CryptPad_Util=Util}("undefined"!=typeof self?self:Q)}(z)),z.exports}var X,$,ee={exports:{}};function ne(){return X||(X=1,function(e){e.exports&&(e.exports=function(){var e={},n=function(e){return e.replace(/-/g,"/")};return e.parseUser=function(e){var t,r,o,a=function(e){if(/^\[.*?@.*\]$/.test(e)){var t,r=e.slice(1,-1);if(r=r.replace(/\/([a-zA-Z0-9+-]{43}=)$/,(function(e,r){return t=n(r),""})),t){var o=r.lastIndexOf("@");if(!(o<1))return{domain:r.slice(o+1),user:r.slice(0,o),pubkey:t}}}}(e);if(function(e){if(e&&e.domain&&e.user&&e.pubkey)return!0}(a))return a;if(e.replace(/^https*:\/\/([^\/]+)\/user\/#\/1\/([^\/]+)\/([a-zA-Z0-9+-]{43}=)$/,(function(e,a,i,s){return t=a,r=i,o=n(s),""})),!t)throw new Error("Could not parse user id ["+e+"]");return{domain:t,user:r,pubkey:o}},e.serialize=function(e,n,t){return"["+n+"@"+e.replace(/https*:\/\//,"")+"/"+t.replace(/\//g,"-")+"]"},e.canonicalize=function(t){if("string"==typeof t){if(44===t.length)return n(t);try{return e.parseUser(t).pubkey}catch(e){return}}},e}())}(ee)),ee.exports}function te(){return $||($=1,function(e){!function(n){e.exports&&(e.exports=function(e,t,r,o){var a=n.CryptPad_Hash={},i=e.uint8ArrayToHex,s=e.hexToBase64,c=e.base64ToHex;a.encodeBase64=e.encodeBase64,a.decodeBase64=e.decodeBase64,a.hashChannelList=function(n){return e.encodeBase64(o.hash(e.decodeUTF8(JSON.stringify(n))))},a.generateSignPair=function(){var e=o.sign.keyPair(),n=function(e){return t.b64RemoveSlashes(e).replace(/=+$/g,"")};return{validateKey:a.encodeBase64(e.publicKey),signKey:a.encodeBase64(e.secretKey),safeValidateKey:n(a.encodeBase64(e.publicKey)),safeSignKey:n(a.encodeBase64(e.secretKey))}},a.getSignPublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.sign.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)},a.getCurvePublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.box.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)};var u=a.getEditHashFromKeys=function(e){var n=e.version,r=e.keys;if(0===n)return e.channel+e.key;if(1===n){if(!r.editKeyStr)return;return"/1/edit/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.editKeyStr)+"/"}if(2===n){if(!r.editKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/edit/"+t.b64RemoveSlashes(r.editKeyStr)+"/"+o}},f=a.getViewHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n){if(!r.viewKeyStr)return;return"/1/view/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"}if(2===n){if(!r.viewKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/view/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"+o}}};a.getHiddenHashFromKeys=function(e,n,t){t=t||{};var r=n.keys&&n.keys.editKeyStr||n.key,o=!t.view&&r?"edit/":"view/",i=n.password?"p/":"";n.keys&&n.keys.fileKeyStr&&(o="");var s="/3/"+e+"/"+o+n.channel+"/"+i,c=a.parseTypeHash(e,s);return c&&c.getHash?c.getHash(t||{}):s};var l=a.getFileHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n)return"/1/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/";if(2===n){if(!r.fileKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/"+o}}};a.getPublicSigningKeyString=r.serialize,a.ephemeralChannelLength=34,a.createChannelId=function(e){var n=i(t.Nacl.randomBytes(e?17:16));if(-1===[32,34].indexOf(n.length)||/[^a-f0-9]/.test(n))throw new Error("channel ids must consist of 32 hex characters");return n},a.getChannelIdFromKey=function(e){if(e)return i(a.decodeBase64(e).subarray(0,16))},a.getBoxPublicFromSecret=function(e){if(e){var n=a.decodeBase64(e),t=o.box.keyPair.fromSecretKey(n);return a.encodeBase64(t.publicKey)}},a.checkBoxKeyPair=function(e,n){if(!n||!e)return!1;var t=a.decodeBase64(e),r=o.box.keyPair.fromSecretKey(t);return n===a.encodeBase64(r.publicKey)},a.createRandomHash=function(e,n){var r;return"file"===e?(r=t.createFileCryptor2(void 0,n),l({password:Boolean(n),version:2,type:e,keys:r})):(r=t.createEditCryptor2(void 0,void 0,n),u({password:Boolean(n),version:2,type:e,keys:r}))};var d=a.parseTypeHash=function(e,n){if(n){var r,o=[],a={},i=(r=n,r.replace(/\/+/g,"/")).split("/"),s=function(){a.password=-1!==o.indexOf("p"),a.present=-1!==o.indexOf("present"),a.embed=-1!==o.indexOf("embed"),a.versionHash=function(e){var n;return e.some((function(e){if(/^hash=/.test(e))return n=e.slice(5),!0})),n?t.b64AddSlashes(n):""}(o),a.auditorKey=function(e){var n;return e.some((function(e){if(/^auditor=/.test(e))return n=e.slice(8),!0})),n?t.b64AddSlashes(n):""}(o),a.newPadOpts=function(e){var n;return e.some((function(e){if(/^newpad=/.test(e))return n=e.slice(7),!0})),n||""}(o),a.loginOpts=function(e){var n;return e.some((function(e){if(/^login=/.test(e))return n=e.slice(6),!0})),n||""}(o),a.ownerKey=function(e){var n;return e.some((function(e){if(86===e.length)return n=e,!0})),n}(o)};return i[1]&&"4"===i[1]?(a.getHash=function(n){if(!n||!Object.keys(n).length)return"";var t="/4/"+e+"/";return n.newPadOpts&&(t+="newpad="+n.newPadOpts+"/"),n.loginOpts&&(t+="login="+n.loginOpts+"/"),t},a.getOptions=function(){var e={};return a.newPadOpts&&(e.newPadOpts=a.newPadOpts),a.loginOpts&&(e.loginOpts=a.loginOpts),e},a.version=4,a.app=i[2],o=i.slice(3),s(),a):-1===["media","file","user","invite"].indexOf(e)?(a.type="pad",a.getHash=function(){return n},a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,versionHash:a.versionHash,auditorKey:a.auditorKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},"/"!==n.slice(0,1)&&n.length>=56?(a.channel=n.slice(0,32),a.key=n.slice(32,56),a.version=0,a):(a.getHash=function(e){var n=i.slice(0,5).join("/")+"/",r=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;r&&(n+=r+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/");var o=void 0!==e.versionHash?e.versionHash:a.versionHash;o&&(n+="hash="+t.b64RemoveSlashes(o)+"/");var s=void 0!==e.auditorKey?e.auditorKey:a.auditorKey;return s&&(n+="auditor="+t.b64RemoveSlashes(s)+"/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.mode=i[2],a.channel=i[3],a.key=t.b64AddSlashes(i[4]),o=i.slice(5),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.mode=i[3],a.channel=i[4],o=i.slice(5),s(),a):a)):(a.getHash=function(){return i.join("/")},-1!==["media","file"].indexOf(e)?(a.type="file",a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},a.getHash=function(e){var n=i.slice(0,4).join("/")+"/",t=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;return t&&(n+=t+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.channel=i[2].replace(/-/g,"/"),a.key=i[3].replace(/-/g,"/"),o=i.slice(4),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.key=i[3],o=i.slice(4),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.channel=i[3],o=i.slice(4),s(),a):a):-1!==["user"].indexOf(e)?(a.type="user",i[1]&&"1"===i[1]?(a.version=1,a.user=i[2],a.pubkey=i[3].replace(/-/g,"/"),a):a):-1!==["invite"].indexOf(e)?(a.type="invite",i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),a.password=-1!==o.indexOf("p"),a):a):void 0)}},h=a.parsePadUrl=function(e){var n,t={};return e?("/"!==e.slice(-1)&&"#"!==e.slice(-1)&&(e+="/"),e=e.replace(/\/\?[^#]+#/,"/#"),t.getUrl=function(e){e=e||{};var n="/";return t.type?(n+=t.type+"/",!t.hashData&&e&&Object.keys(e).length?n+"#"+function(e){if(!e||!Object.keys(e).length)return"";var n="/4/"+t.type+"/";return e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n}(e):t.hashData?n+="#"+t.hashData.getHash(e):n):n},t.getOptions=function(){return t.hashData&&t.hashData.getOptions?t.hashData.getOptions():{}},/^https*:\/\//.test(e)?(e.replace(/^https*:\/\/([^\/]*)\/(.*?)\//i,(function(e,n,r){return t.domain=n,t.type=r,""})),-1===(n=e.indexOf("/#"))||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):/^\/($|[^\/])/.test(e)?(n=e.indexOf("/#"),t.type=e.slice(1,n),-1===n||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):t):t};return a.hashToHref=function(e,n){return"/"+n+"/#"+e},a.hrefToHash=function(e){return a.parsePadUrl(e).hash},a.getRelativeHref=function(e){if(e&&-1!==e.indexOf("#")){var n=h(e);return"/"+n.type+"/#"+n.hash}},a.getSecrets=function(n,r,o){var a,i,s={},u=function(){s.keys=t.createEditCryptor2(void 0,void 0,o),s.channel=c(s.keys.chanId),s.version=2,s.type=n};if(!r)return u(),s;if(r){if(!n)throw new Error("getSecrets with a hash requires a type parameter");a=d(n,r),i=r}if(0===i.length)return u(),s;if(0===a.version)s.channel=a.channel,s.key=a.key,s.version=0;else if(1===a.version){if(s.version=1,"pad"===a.type){if(s.channel=c(a.channel),"edit"===a.mode){if(s.keys=t.createEditCryptor(a.key),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor(a.key),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type)s.channel=c(a.channel),s.keys={fileKeyStr:a.key,cryptKey:e.decodeBase64(a.key)};else if("user"===a.type)throw new Error("User hashes can't be opened (yet)")}else if(2===a.version)if(s.version=2,s.type=n,s.password=o,"pad"===a.type){if("edit"===a.mode){if(s.keys=t.createEditCryptor2(a.key,void 0,o),s.channel=c(s.keys.chanId),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor2(a.key,o),s.channel=c(s.keys.chanId),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type){if(s.keys=t.createFileCryptor2(a.key,o),s.channel=c(s.keys.chanId),s.key=s.keys.fileKeyStr,48!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("user"===a.type)throw new Error("User hashes can't be opened (yet)");return s},a.getHashes=function(e){var n={};return(e=JSON.parse(JSON.stringify(e))).keys||e.key?(e.keys||(e.keys={}),(e.keys.editKeyStr||0===e.version&&e.key)&&(n.editHash=u(e)),e.keys.viewKeyStr&&(n.viewHash=f(e)),e.keys.fileKeyStr&&(n.fileHash=l(e)),n):n},a.getFormData=function(n,t,r){var i=(n=n||a.getSecrets("form",t,r))&&n.keys,s=i&&i.secondaryKey;if(s){var c=o.box.keyPair.fromSecretKey(e.decodeUTF8(s).slice(0,32)),u={};u.form_public=e.encodeBase64(c.publicKey);var f=u.form_private=e.encodeBase64(c.secretKey),l=a.getViewHashFromKeys({version:1,channel:n.channel,keys:{viewKeyStr:e.encodeBase64(i.cryptKey)}}),d=a.parseTypeHash("pad",l);return u.form_auditorHash=d.getHash({auditorKey:f}),u}},a.hrefToHexChannelId=function(e,n){var t=a.parsePadUrl(e);if(t&&t.hash)return a.getSecrets(t.type,t.hash,n).channel},a.getBlobPathFromHex=function(e){return"/blob/"+e.slice(0,2)+"/"+e},a.serializeHash=function(e){return e&&"/"!==e.slice(-1)&&(e+="/"),e},a.createInviteUrl=function(e,t){return t=t||a.createChannelId(),n.location.origin+"/invite/#/1/"+t+"/"+e.replace(/\//g,"-")+"/"},a.isValidChannel=function(e){return/^[a-zA-Z0-9]{32,48}$/.test(e)},a.isValidHref=function(e){if(e){var n=a.parsePadUrl(e);if(n&&n.type){if(n.hash){if(!n.hashData)return;if(void 0===n.hashData.version)return;if("pad"===n.hashData.type||"file"===n.hashData.type){if(!n.hashData.key&&!n.hashData.channel)return;if(n.hashData.key&&!/^[a-zA-Z0-9+-/=]+$/.test(n.hashData.key))return}}return n}}},a.decodeDataOptions=function(n){var t=decodeURIComponent(n),r=e.encodeUTF8(e.decodeBase64(t));return e.tryParse(r)||{}},a.encodeDataOptions=function(n){var t=JSON.stringify(n),r=e.encodeBase64(e.decodeUTF8(t));return encodeURIComponent(r)},a.getNewPadURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.newPadOpts=a.encodeDataOptions(n),t.getUrl(r)},a.getLoginURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.loginOpts=a.encodeDataOptions(n),t.getUrl(r)},a}(Z(),M(),ne(),N()))}("undefined"!=typeof window?window:{})}(W)),W.exports}var re,oe,ae=te(),ie=Z(),se={exports:{}},ce={exports:{}};function ue(){return re||(re=1,function(e){e.exports=function e(n,t,r){function o(i,s){if(!t[i]){if(!n[i]){if(!s&&b)return b(i);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=t[i]={exports:{}};n[i][0].call(u.exports,(function(e){var t=n[i][1][e];return o(t||e)}),u,u.exports,e,n,t,r)}return t[i].exports}for(var a=b,i=0;i=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof v?u.resolve(v):O(e).then((function(e){return v=e}))}function w(e){var n=y[e.name],t={};t.promise=new u((function(e,n){t.resolve=e,t.reject=n})),n.deferredOperations.push(t),n.dbReady?n.dbReady=n.dbReady.then((function(){return t.promise})):n.dbReady=t.promise}function D(e){var n=y[e.name].deferredOperations.pop();if(n)return n.resolve(),n.promise}function _(e,n){var t=y[e.name].deferredOperations.pop();if(t)return t.reject(n),t.promise}function T(e,n){return new u((function(t,r){if(y[e.name]=y[e.name]||F(),e.db){if(!n)return t(e.db);w(e),e.db.close()}var o=[e.name];n&&o.push(e.version);var a=i.open.apply(i,o);n&&(a.onupgradeneeded=function(n){var t=a.result;try{t.createObjectStore(e.storeName),n.oldVersion<=1&&t.createObjectStore(p)}catch(t){if("ConstraintError"!==t.name)throw t;console.warn('The database "'+e.name+'" has been upgraded from version '+n.oldVersion+" to version "+n.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){var n=a.result;n.onversionchange=function(e){e.target.close()},t(n),D(e)}}))}function S(e){return T(e,!1)}function x(e){return T(e,!0)}function N(e,n){if(!e.db)return!0;var t=!e.db.objectStoreNames.contains(e.storeName),r=e.versione.db.version;if(r&&(e.version!==n&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||t){if(t){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function I(e){return new u((function(n,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");n({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)}))}function C(e){return c([b(atob(e.data))],{type:e.type})}function R(e){return e&&e.__local_forage_encoded_blob}function P(e){var n=this,t=n._initReady().then((function(){var e=y[n._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return l(t,e,e),t}function k(e){w(e);for(var n=y[e.name],t=n.forages,r=0;r0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)})).then((function(){return k(e).then((function(){M(e,n,t,r-1)}))})).catch(t);t(o)}}function F(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function L(e){var n=this,t={db:null};if(e)for(var r in e)t[r]=e[r];var o=y[t.name];o||(o=F(),y[t.name]=o),o.forages.push(n),n._initReady||(n._initReady=n.ready,n.ready=P);var a=[];function i(){return u.resolve()}for(var s=0;s>4,f[c++]=(15&r)<<4|o>>2,f[c++]=(3&o)<<6|63&a;return u}function pe(e){var n,t=new Uint8Array(e),r="";for(n=0;n>2],r+=z[(3&t[n])<<4|t[n+1]>>4],r+=z[(15&t[n+1])<<2|t[n+2]>>6],r+=z[63&t[n+2]];return t.length%3==2?r=r.substring(0,r.length-1)+"=":t.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function ve(e,n){var t="";if(e&&(t=de.call(e)),e&&("[object ArrayBuffer]"===t||e.buffer&&"[object ArrayBuffer]"===de.call(e.buffer))){var r,o=X;e instanceof ArrayBuffer?(r=e,o+=ee):(r=e.buffer,"[object Int8Array]"===t?o+=te:"[object Uint8Array]"===t?o+=re:"[object Uint8ClampedArray]"===t?o+=oe:"[object Int16Array]"===t?o+=ae:"[object Uint16Array]"===t?o+=se:"[object Int32Array]"===t?o+=ie:"[object Uint32Array]"===t?o+=ce:"[object Float32Array]"===t?o+=ue:"[object Float64Array]"===t?o+=fe:n(new Error("Failed to get type for BinaryArray"))),n(o+pe(r))}else if("[object Blob]"===t){var a=new FileReader;a.onload=function(){var t=Q+e.type+"~"+pe(this.result);n(X+ne+t)},a.readAsArrayBuffer(e)}else try{n(JSON.stringify(e))}catch(t){console.error("Couldn't convert value into a JSON string: ",e),n(null,t)}}function ye(e){if(e.substring(0,$)!==X)return JSON.parse(e);var n,t=e.substring(le),r=e.substring($,le);if(r===ne&&Z.test(t)){var o=t.match(Z);n=o[1],t=t.substring(o[0].length)}var a=he(t);switch(r){case ee:return a;case ne:return c([a],{type:n});case te:return new Int8Array(a);case re:return new Uint8Array(a);case oe:return new Uint8ClampedArray(a);case ae:return new Int16Array(a);case se:return new Uint16Array(a);case ie:return new Int32Array(a);case ce:return new Uint32Array(a);case ue:return new Float32Array(a);case fe:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}}var me={serialize:ve,deserialize:ye,stringToBuffer:he,bufferToString:pe};function ge(e,n,t,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+n.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],t,r)}function Ee(e){var n=this,t={db:null};if(e)for(var r in e)t[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new u((function(e,r){try{t.db=openDatabase(t.name,String(t.version),t.description,t.size)}catch(e){return r(e)}t.db.transaction((function(o){ge(o,t,(function(){n._dbInfo=t,e()}),(function(e,n){r(n)}))}),r)}));return t.serializer=me,o}function be(e,n,t,r,o,a){e.executeSql(t,r,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[n.storeName],(function(e,s){s.rows.length?a(e,i):ge(e,n,(function(){e.executeSql(t,r,o,a)}),a)}),a):a(e,i)}),a)}function Oe(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,t){var r=t.rows.length?t.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ae(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName,[],(function(t,r){for(var a=r.rows,i=a.length,s=0;s0)return void a(we.apply(o,[e,s,t,r-1]));i(n)}}))}))})).catch(i)}));return f(a,t),a}function De(e,n,t){return we.apply(this,[e,n,t,1])}function _e(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){n()}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Te(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function Se(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(n,t){var r=t.rows.item(0).c;e(r)}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function xe(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,t){var r=t.rows.length?t.rows.item(0).key:null;n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ne(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT key FROM "+r.storeName,[],(function(n,t){for(var r=[],o=0;o '__WebKitDatabaseInfoTable__'",[],(function(t,r){for(var o=[],a=0;a0}function Le(e){var n=this,t={};if(e)for(var r in e)t[r]=e[r];return t.keyPrefix=ke(e,n._defaultConfig),Fe()?(n._dbInfo=t,t.serializer=me,u.resolve()):u.reject()}function He(e){var n=this,t=n.ready().then((function(){for(var e=n._dbInfo.keyPrefix,t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return f(t,e),t}function je(e,n){var t=this;e=d(e);var r=t.ready().then((function(){var n=t._dbInfo,r=localStorage.getItem(n.keyPrefix+e);return r&&(r=n.serializer.deserialize(r)),r}));return f(r,n),r}function Ke(e,n){var t=this,r=t.ready().then((function(){for(var n=t._dbInfo,r=n.keyPrefix,o=r.length,a=localStorage.length,i=1,s=0;s=0;n--){var t=localStorage.key(n);0===t.indexOf(e)&&localStorage.removeItem(t)}})):u.reject("Invalid arguments"),f(r,n),r}var qe={_driver:"localStorageWrapper",_initStorage:Le,_support:Pe(),iterate:Ke,getItem:je,setItem:Ge,removeItem:Ye,clear:He,length:Ve,key:Ue,keys:Be,dropInstance:Je},We=function(e,n){return e===n||"number"==typeof e&&"number"==typeof n&&isNaN(e)&&isNaN(n)},ze=function(e,n){for(var t=e.length,r=0;r{const n=(e,n)=>{let t=globalThis,r=globalThis;var o=t.CryptPad_Cache={},a=e.mkEvent(!0),i=!1,s=!1,c=!1;try{var u=t.indexedDB.open("test_db",1);u.onsuccess=function(){i=(c=!0)&&!s,a.fire()},u.onerror=function(){a.fire()}}catch(e){a.fire()}o.enable=function(){s=!1,i=c&&!s},o.disable=function(){s=!0,i=c&&!s},o.isEnabled=()=>i;var f=n.createInstance({driver:n.INDEXEDDB,name:"cp_cache"});o.getBlobCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&o.c?(t(null,o.c),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))},o.setBlobCache=function(n,t,r){r=e.once(e.mkAsync(r||function(){})),a.reg((function(){i?t?f.setItem(n,{c:t,t:+new Date},(function(n){r(e.serializeError(n))})):r("EINVAL"):r("NOCACHE")}))},o.getChannelCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&Array.isArray(o.c)?(t(null,o),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))};var l={};return o.storeCache=function(n,t,r,o){o=e.once(e.mkAsync(o||function(){})),a.reg((function(){l[n]=l[n]||e.throttle((function(t,r,o){var a,s;i?Array.isArray(r)&&t?(a=r,Array.isArray(a)&&(a.length>100&&a.splice(0,a.length-100),a.some((function(e,n){if(e.isCheckpoint)return s=n,!0})),a.splice(0,s)),f.setItem(n,{k:t,c:r,t:+new Date},(function(n){n&&o(e.serializeError(n))}))):o("EINVAL"):o("NOCACHE")}),50),l[n](t,r,o)}))},o.leaveChannel=function(e){delete l[e]},o.clearChannel=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.removeItem(n,(function(){t()})):t("NOCACHE")}))},o.clear=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.clear(n):n("NOCACHE")}))},o.getKeys=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.keys().then((function(e){n(null,e)})).catch((function(e){n(e)})):n("NOCACHE")}))},o.getTime=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(n,r){!n&&r&&r.c?t(null,r.t):t(e.serializeError(n||"EINVAL"))})):t("NOCACHE")}))},r.CryptPad_clearIndexedDB=o.clear,o};e.exports&&(e.exports=n(Z(),ue()))})()}(se)),se.exports}var le=fe(),de=n({__proto__:null,default:r(le)},[le]);const he=ie.mkEvent(!0),pe=ie.mkEvent(!0),ve=ie.mkEvent(),ye=ie.mkEvent();let me={};const ge={setCustomize:e=>{me=e.ApiConfig},init:e=>{var n,t;const{broadcast:r,userHash:o,anonHash:a}=e,i=o||a||ae.createRandomHash("drive"),s=e.store,c=ae.getSecrets("drive",i),u={data:{},websocketURL:U.getWebsocketURL(),network:null===(n=e.store)||void 0===n?void 0:n.network,channel:c.channel,readOnly:!1,validateKey:(null===(t=c.keys)||void 0===t?void 0:t.validateKey)||void 0,crypto:L.createEncryptor(c.keys),Cache:de,userName:"fs",logLevel:1,ChainPad:T,updateProgress:function(e){e.type="drive",r([],"LOADING_DRIVE",e)},classic:!0},f=globalThis.CP_account_rt=E.create(u);s.driveSecret=c,s.proxy=f.proxy,s.onRpcReadyEvt=ie.mkEvent(!0),s.loggedIn=void 0!==e.userHash;const l={loggedIn:s.loggedIn};return f.proxy.on("create",(function(e){s.realtime=e.realtime,s.network=e.network,s.loggedIn||(l.anonHash=ae.getEditHashFromKeys(c))})).on("cacheready",(function(n){if(s.realtime=n.realtime,s.offline=!0,s.networkPromise=n.networkPromise,s.cacheReturned=l,s.networkPromise&&s.networkPromise.then){const e=setTimeout((function(){s.networkTimeout=!0,r([],"LOADING_DRIVE",{type:"offline"})}),5e3);s.networkPromise.then((function(n){s.network||(s.network=n),clearTimeout(e)}),(function(n){console.error(n),clearTimeout(e)}))}e.cache&&(l.edPublic=f.proxy.edPublic,he.fire(l))})).on("ready",(function(n){delete s.networkTimeout,s.ready||(s.driveMetadata=n.metadata,f.proxy.drive||(f.proxy.drive={}),!f.proxy[J.displayNameKey]&&s.noDriveName&&(f.proxy[J.displayNameKey]=s.noDriveName),!f.proxy.uid&&s.noDriveUid&&(f.proxy.uid=s.noDriveUid),!f.proxy.form_seed&&e.form_seed&&(f.proxy.form_seed=e.form_seed),f.proxy.edPublic&&Array.isArray(me.adminKeys)&&-1!==me.adminKeys.indexOf(f.proxy.edPublic)&&(s.isAdmin=!0),l.edPublic=f.proxy.edPublic,pe.fire(l))})).on("error",(function(e){"EDELETED"===e.error&&(s.ownDeletion||(s.isDeleted=!0,r([],"DRIVE_DELETED",e.message)))})).on("disconnect",(function(){s.offline=!0,ve.fire(),r([],"UPDATE_METADATA")})).on("reconnect",(function(){s.offline=!1,ye.fire(),r([],"UPDATE_METADATA")})),{channel:c.channel,onAccountCacheReady:he.reg,onAccountReady:pe.reg,onDisconnect:ve.reg,onReconnect:ye.reg}}};var Ee,be=Object.freeze({__proto__:null,Account:ge}),Oe={exports:{}};function Ae(){return Ee||(Ee=1,function(e){(()=>{const n=(e={},n={})=>{var t={setCustomize:t=>{n=t.Messages,e=t.AppConfig},init:function(e){t.state=e}};return t.send=function(n,r,o){("function"!=typeof o&&(o=function(){}),e.disableFeedback)?o():n&&(!0===r||t.state)?function(e,n){var t=new XMLHttpRequest;t.open("HEAD",e),t.onreadystatechange=function(){this.readyState===this.DONE&&n&&n()},t.send()}("/common/feedback.html?"+n+"="+Math.random().toString(16).replace(/0./,""),o):o()},t.reportAppUsage=function(){var e=window.location.pathname.split("/").filter((function(e){return e})).join(".");/^#\/1\/view\//.test(window.location.hash)?t.send(e+"_VIEW"):t.send(e)},t.reportScreenDimensions=function(){var e=window.innerHeight,n=window.innerWidth;t.send("DIMENSIONS:"+e+"x"+n)},t.reportLanguage=function(){n&&t.send("LANG_"+n._languageUsed)},t};e.exports&&(e.exports=n(void 0,void 0))})()}(Oe)),Oe.exports}var we,De,_e=Ae(),Te=n({__proto__:null,default:r(_e)},[_e]),Se={exports:{}},xe={exports:{}};function Ne(){return De||(De=1,function(e){e.exports&&(e.exports=function(e={},n){var t={setCustomize:n=>{e=n.AppConfig}};t.MINIMUM_PASSWORD_LENGTH="number"==typeof e.minimumPasswordLength?e.minimumPasswordLength:8,t.MINIMUM_NAME_LENGTH=1,t.MAXIMUM_NAME_LENGTH=64,t.isEmail=function(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())},t.isLongEnoughPassword=function(e){return e.length>=t.MINIMUM_PASSWORD_LENGTH};var r=t.isString=function(e){return"string"==typeof e};return t.isValidUsername=function(e){return!!(r(e)&&e.length>=t.MINIMUM_NAME_LENGTH)},t.isValidPassword=function(e){return!(!e||!r(e))},t.passwordsMatch=function(e,n){return r(e)&&r(n)&&e===n},t.customSalt=function(){return"string"==typeof e.loginSalt?e.loginSalt:""},t.deriveFromPassphrase=function(e,r,o,a){n(r,e+t.customSalt(),8,1024,o||128,200,a,void 0)},t.dispenser=function(e){var n={used:0};return function(t){if(n.used+t>e.length)throw new Error("exceeded available entropy");if("number"!=typeof t)throw new Error("expected a number");if(t<=0)throw new Error("expected to consume a positive number of bytes");var r;return r=e.slice?e.slice(n.used,n.used+t):e.subarray(n.used,n.used+t),n.used+=t,r}},t}(void 0,(we||(we=1,function(e){e.exports=function(e,n,t,r,o,a,i,s){function c(e){var n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],t=1779033703,r=3144134277,o=1013904242,a=2773480762,i=1359893119,s=2600822924,c=528734635,u=1541459225,f=new Array(64);function l(e){for(var l=0,d=e.length;d>=64;){var h,p,v,y,m,g=t,E=r,b=o,O=a,A=i,w=s,D=c,_=u;for(p=0;p<16;p++)v=l+4*p,f[p]=(255&e[v])<<24|(255&e[v+1])<<16|(255&e[v+2])<<8|255&e[v+3];for(p=16;p<64;p++)y=((h=f[p-2])>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,m=((h=f[p-15])>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,f[p]=(y+f[p-7]|0)+(m+f[p-16]|0)|0;for(p=0;p<64;p++)y=(((A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))+(A&w^~A&D)|0)+(_+(n[p]+f[p]|0)|0)|0,m=((g>>>2|g<<30)^(g>>>13|g<<19)^(g>>>22|g<<10))+(g&E^g&b^E&b)|0,_=D,D=w,w=A,A=O+y|0,O=b,b=E,E=g,g=y+m|0;t=t+g|0,r=r+E|0,o=o+b|0,a=a+O|0,i=i+A|0,s=s+w|0,c=c+D|0,u=u+_|0,l+=64,d-=64}}l(e);var d,h=e.length%64,p=e.length/536870912|0,v=e.length<<3,y=h<56?56:120,m=e.slice(e.length-h,e.length);for(m.push(128),d=h+1;d>>24&255),m.push(p>>>16&255),m.push(p>>>8&255),m.push(p>>>0&255),m.push(v>>>24&255),m.push(v>>>16&255),m.push(v>>>8&255),m.push(v>>>0&255),l(m),[t>>>24&255,t>>>16&255,t>>>8&255,t>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255]}function u(e,n,t){e=e.length<=64?e:c(e);var r,o=64+n.length+4,a=new Array(o),i=new Array(64),s=[];for(r=0;r<64;r++)a[r]=54;for(r=0;r=o-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;t>=32;)u(),s=s.concat(c(i.concat(c(a)))),t-=32;return t>0&&(u(),s=s.concat(c(i.concat(c(a))).slice(0,t))),s}function f(e,n,t,r){var o,a,i=e[0]^n[t++],s=e[1]^n[t++],c=e[2]^n[t++],u=e[3]^n[t++],f=e[4]^n[t++],l=e[5]^n[t++],d=e[6]^n[t++],h=e[7]^n[t++],p=e[8]^n[t++],v=e[9]^n[t++],y=e[10]^n[t++],m=e[11]^n[t++],g=e[12]^n[t++],E=e[13]^n[t++],b=e[14]^n[t++],O=e[15]^n[t++],A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=O;for(a=0;a<8;a+=2)A^=(o=(k^=(o=(I^=(o=(T^=(o=A+k)<<7|o>>>25)+A)<<9|o>>>23)+T)<<13|o>>>19)+I)<<18|o>>>14,S^=(o=(w^=(o=(M^=(o=(C^=(o=S+w)<<7|o>>>25)+S)<<9|o>>>23)+C)<<13|o>>>19)+M)<<18|o>>>14,R^=(o=(x^=(o=(D^=(o=(F^=(o=R+x)<<7|o>>>25)+R)<<9|o>>>23)+F)<<13|o>>>19)+D)<<18|o>>>14,L^=(o=(P^=(o=(N^=(o=(_^=(o=L+P)<<7|o>>>25)+L)<<9|o>>>23)+_)<<13|o>>>19)+N)<<18|o>>>14,A^=(o=(_^=(o=(D^=(o=(w^=(o=A+_)<<7|o>>>25)+A)<<9|o>>>23)+w)<<13|o>>>19)+D)<<18|o>>>14,S^=(o=(T^=(o=(N^=(o=(x^=(o=S+T)<<7|o>>>25)+S)<<9|o>>>23)+x)<<13|o>>>19)+N)<<18|o>>>14,R^=(o=(C^=(o=(I^=(o=(P^=(o=R+C)<<7|o>>>25)+R)<<9|o>>>23)+P)<<13|o>>>19)+I)<<18|o>>>14,L^=(o=(F^=(o=(M^=(o=(k^=(o=L+F)<<7|o>>>25)+L)<<9|o>>>23)+k)<<13|o>>>19)+M)<<18|o>>>14;n[r++]=e[0]=A+i|0,n[r++]=e[1]=w+s|0,n[r++]=e[2]=D+c|0,n[r++]=e[3]=_+u|0,n[r++]=e[4]=T+f|0,n[r++]=e[5]=S+l|0,n[r++]=e[6]=x+d|0,n[r++]=e[7]=N+h|0,n[r++]=e[8]=I+p|0,n[r++]=e[9]=C+v|0,n[r++]=e[10]=R+y|0,n[r++]=e[11]=P+m|0,n[r++]=e[12]=k+g|0,n[r++]=e[13]=M+E|0,n[r++]=e[14]=F+b|0,n[r++]=e[15]=L+O|0}function l(e,n,t,r,o){for(;o--;)e[n++]=t[r++]}function d(e,n,t,r,o){for(;o--;)e[n++]^=t[r++]}function h(e,n,t,r,o){l(e,0,n,t+16*(2*o-1),16);for(var a=0;a<2*o;a+=2)f(e,n,t+16*a,r+8*a),f(e,n,t+16*a+16,r+8*a+16*o)}function p(e,n,t){return e[n+16*(2*t-1)]}function v(e){for(var n=[],t=0;t127&&r<2048?(n.push(r>>6|192),n.push(63&r|128)):(n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128))}return n}if(t<1||t>31)throw new Error("scrypt: logN not be between 1 and 31");var y,m,g,E,b=1<>>0;if(1*r>=1<<30||r>16777216||r>8388608||b>16777216/r)throw new Error("scrypt: parameters are too large");"string"==typeof e&&(e=v(e)),"string"==typeof n&&(n=v(n)),"undefined"!=typeof Int32Array?(y=new Int32Array(64*r),m=new Int32Array(32*b*r),E=new Int32Array(16)):(y=[],m=[],E=new Array(16)),g=u(e,n,128*r);var O=32*r;function A(){for(var e=0;e<32*r;e++){var n=4*e;y[0+e]=(255&g[n+3])<<24|(255&g[n+2])<<16|(255&g[n+1])<<8|255&g[n+0]}}function w(e,n){for(var t=e;t>>0&255,g[4*e+1]=n>>>8&255,g[4*e+2]=n>>>16&255,g[4*e+3]=n>>>24&255}}var T="undefined"!=typeof setImmediate?setImmediate:setTimeout;function S(e,n,t,r,o){!function a(){T((function(){r(e,e+t>>18&63]),o.push(t[n>>>12&63]),o.push(t[n>>>6&63]),o.push(t[n>>>0&63]);return r%3>0&&(o[o.length-1]="=",r%3==1&&(o[o.length-2]="=")),o.join("")}(t):"hex"===n?function(e){for(var n="0123456789abcdef".split(""),t=e.length,r=[],o=0;o>>4&15]),r.push(n[e[o]>>>0&15]);return r.join("")}(t):t}"function"==typeof a&&(s=i,i=a,a=1e3),a<=0?(A(),w(0,b),D(0,b),_(),i(x(s))):(A(),S(0,b,2*a,w,(function(){S(0,b,2*a,D,(function(){_(),i(x(s))}))})))}}(xe)),xe.exports)))}(Se)),Se.exports}var Ie,Ce,Re,Pe=Ne(),ke=n({__proto__:null,default:r(Pe)},[Pe]),Me={exports:{}},Fe={exports:{}},Le={exports:{}},He={exports:{}};function je(){return Ie||(Ie=1,function(e){e.exports&&(e.exports={whenRealtimeSyncs:function(e,n){"function"==typeof e.getAuthDoc?setTimeout((function(){e.getAuthDoc()!==e.getUserDoc()?e.onSettle(n):n()}),0):console.error("improper use of this function")}})}(He)),He.exports}function Ke(){return Ce||(Ce=1,function(e){(()=>{const n=(e,n,t)=>{let r=globalThis;var o={setCustomize:()=>{}},a=function(e){try{return JSON.parse(JSON.stringify(e))}catch(e){return}};return o.init=function(o,i,s){var c=o.loggedIn,u=o.sharedFolder,f=o.readOnly,l=o.Messages||{},d=i.ROOT,h=i.FILES_DATA,p=i.STATIC_DATA,v=i.OLD_FILES_DATA,y=i.UNSORTED,m=i.TRASH,g=i.TEMPLATE,E=i.SHARED_FOLDERS,b=i.SHARED_FOLDERS_TEMP,O=i.debug;i._setReadOnly=function(e){(f=e)||i.fixFiles()},i.setHref=function(e,n,t){(n||e)&&(f||(n?[n]:i.findChannels([e])).forEach((function(e){var n=i.getFileData(e,!0);i.getHref(n)!==t&&(n.href=i.cryptor.encrypt(t))})))},i.setPadAttribute=function(e,n,t,r){if(r=r||function(){},f)r("EFORBIDDEN");else{var o=i.getIdFromHref(e);if(o)if(n&&n.trim()){var s=i.getFileData(o,!0);"href"===n?i.setHref(null,o,t):s[n]=a(t),r(null)}else r("E_INVAL_ATTR");else r("E_INVAL_HREF")}},i.getPadAttribute=function(e,n,t){t=t||function(){};var r=i.getIdFromHref(e);if(r){var o=i.getFileData(r);t(null,a(o[n]))}else t(null,void 0)},i.pushData=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);o.href&&-1!==o.href.indexOf("#")&&(o.href=i.cryptor.encrypt(o.href)),s[h][r]=o,t(null,r)}},i.pushLink=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);s[p][r]=o,t(null,r)}},i.pushSharedFolder=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r,u=a(n);if(Object.keys(s[E]).some((function(e){if(s[E][e].channel===u.channel)return u.href&&!s[E][e].href&&(s[E][e].href=u.href),r=e,!0})))t("EEXISTS",r);else if(c&&!o.testMode){var l=e.createRandomInteger();u.href&&-1!==u.href.indexOf("#")&&(u.href=i.cryptor.encrypt(u.href)),s[E][l]=u,t(null,l)}else t("EAUTH")}},i.deprecateSharedFolder=function(e,n){if(!f){var t=s[E][e];if(t){if(!(!t.href||-1===i.cryptor.decrypt(t.href).indexOf("#")))(s[b][e]=JSON.parse(JSON.stringify(t))).legacy="PASSWORD_CHANGE"!==n;var r=i.findFile(Number(e));i.delete(r,null,!0),delete s[E][e]}}};var A=function(e){f||delete s[h][e]};i.checkDeletedFiles=function(e){if(c||o.testMode)if(f)e("EFORBIDDEN");else{var t=i.getFiles([d,"hrefArray",m]),r=[];i.getFiles([h,E,p]).forEach((function(e){if(-1===t.indexOf(e)){var a=i.isSharedFolder(e)?s[E][e]:i.getFileData(e),c=a.channel;a.lastVersion&&r.push(n.hrefToHexChannelId(a.lastVersion)),a.rtChannel&&r.push(a.rtChannel),c&&r.push(c),i.isSharedFolder(e)?(delete s[E][e],o.removeProxy&&o.removeProxy(e)):s[p][e]?delete s[p][e]:A(e)}})),r.length?e(null,r):e()}else e()};i.deleteMultiplePermanently=function(e,n,t){if(f)t("EFORBIDDEN");else{var r=e.filter((function(e){return i.isPathIn(e,[h])}));if(!c&&!o.testMode)return r.forEach((function(e){var n=e[1];n&&A(n)})),void t();var a=e.filter((function(e){return i.isPathIn(e,["hrefArray"])})),u=e.filter((function(e){return i.isPathIn(e,[d])})),l=e.filter((function(e){return i.isPathIn(e,[m])})),p=[];a.forEach((function(e){var n=i.find(e);p.push({root:e[0],id:n})})),function(e){f||e.forEach((function(e){var n=s[e.root].indexOf(e.id);s[e.root].splice(n,1)}))}(p),u.forEach((function(e){var n=e.slice(),t=n.pop();delete i.find(n)[t]}));var v,y=[];l.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);4!==e.length?delete r[t]:y.push({name:e[1],el:r})})),v=y,f||v.forEach((function(e){var n=s[m][e.name].indexOf(e.el);s[m][e.name].splice(n,1)})),n?t():i.checkDeletedFiles(t)}},i.copyFromOtherDrive=function(e,t,r,o){if(!f){var a=[];if(Object.keys(r).forEach((function(e){e=Number(e);var n=r[e];if(n.static)return delete n.static,void(s[p][e]=n);n.href&&(n.href=i.cryptor.encrypt(n.href));var t=!1;for(var o in s[h])if(s[h][o].channel===n.channel){s[h][o].href||(s[h][o].href=n.href),t=!0;break}t?a.push(e):s[h][e]=n})),i.isFile(t)&&-1!==a.indexOf(t))i.log(l.sharedFolders_duplicate);else{if(i.isFolder(t)){var c=function(e){for(var n in e)i.isFile(e[n])?-1!==a.indexOf(e[n])&&(i.log(l.sharedFolders_duplicate),delete e[n]):i.isFolder(e[n])&&c(e[n])};c(t)}var u=i.find(e),d=i.isFile(t)?n.createChannelId():o,v=i.getAvailableName(u,d);Array.isArray(u)?u.push(t):u[v]=t}}};i.copyElement=function(e,t){if(!f&&!i.comparePath(e,t)){var r=i.find(e),o=i.find(t);if(i.isPathIn(t,[m])){if(!e||e.length<2||e[0]===m)return void O("Can't move an element from the trash to the trash: ",e);var a=e[e.length-1],c=i.isPathIn(e,["hrefArray"])?i.getTitle(r):a,u=e.slice();return u.pop(),function(e,n,t){if(!f){var r=s[m];void 0===r[e]&&(r[e]=[]);var o={element:n,path:t};r[e].push(o)}}(c,r,u),!0}if(i.isPathIn(t,["hrefArray"])){if(i.isFolder(r))return void i.log(l.fo_moveUnsortedError);if(e[0]===t[0])return;var d=t[0];return-1===s[d].indexOf(r)&&s[d].push(r),!0}var h=i.isFile(r)?i.getAvailableName(o,n.createChannelId()):i.isInTrashRoot(e)?e[1]:e.pop();if(void 0===o[h])return o[h]=r,!0;i.log(l.fo_unavailableName)}},i.forget=function(e){if(!f){var n=i.getIdFromHref(e);if(n){if(!c&&!o.testMode)return A(n),!0;var t=i.findFile(n);return i.move(t,[m]),!0}}},i.restoreHref=function(e){if(!f){var n=i.getIdFromHref(e);if(n&&i.isFile(n)){var t=i.findFile(n),r=!0;t.forEach((function(e){e[0]!==m?r=!1:i.delete(e,null,!0)})),r&&i.add(n)}}},i.add=function(e,t){if(!f&&(c||o.testMode)){e=Number(e);var r=s[h][e]||s[p][e]||s[E][e];if(r&&"object"==typeof r){var a,u=t;if(t&&!Array.isArray(t)&&(u=decodeURIComponent(t).split(",")),t&&i.isPathIn(u,["hrefArray"]))(a=i.find(u)).push(e);else if(-1!==i.getFiles([d,m,"hrefArray"]).indexOf(e)||u||(u=[d]),t&&i.isPathIn(u,[d])){if(a=i.find(u)){var l=i.getAvailableName(a,n.createChannelId());return void(a[l]=e)}a=i.find([d]),u.slice(1).forEach((function(e){a=a[e]=a[e]||{}})),a[n.createChannelId()]=e}}}},i.setFolderData=function(e,t,r,o){if(!f){var a=i.find(e);if(i.isFolder(a)&&!i.isSharedFolder(a)){if(!i.hasFolderData(a))a["000"+n.createChannelId().slice(0,-3)]={metadata:!0};i.getFolderData(a)[t]=r,o()}}};var w=function(e){i.rt?(i.rt.sync(),t.whenRealtimeSyncs(i.rt,e)):r.setTimeout(e,1e3)};return i.migrateReadOnly=function(e){if(!f&&o.editKey)if(s.version>=2)e();else{s.migrateRo=1;w((function(){var n=JSON.parse(JSON.stringify(s));i.reencrypt(o.editKey,o.editKey,n),setTimeout((function(){s.version>=2?e():(Object.keys(n).forEach((function(e){s[e]=n[e]})),s.version=2,delete s.migrateRo,w(e))}),1e3)}))}else e({error:"EFORBIDDEN"})},i.migrate=function(t){if(f)t();else{!function(){if(s[y]&&s[v]){O("UNSORTED still exists in the object, removing it...");var e=s[y];0!==e.length?(e.forEach((function(e){"string"==typeof e&&(0===s[v].filter((function(n){return n.href===e})).length&&s[v].push({href:e}))})),delete s[y]):delete s[y]}}(),function(t){if(s[v])try{O("Migrating file system..."),s.migrate=1;w((function(){var r=s[v].slice();s[h]||(s[h]={});var o=s[h];r.forEach((function(t){if(t&&t.href){var r=t.href,a=e.createRandomInteger(),s=i.findFile(r),c=t,u=n.createChannelId();o[a]=c||{href:r},s.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);if(i.isInTrashRoot(e))return r.element=a,void(o[a].filename=e[1]);i.isPathIn(e,["hrefArray"])?r[t]=a:(r[u]=a,o[a].filename=t,delete r[t])}))}})),delete s[v],delete s.migrate,t()}))}catch(e){console.error(e),t()}else t()}(t)}},i.fixFiles=function(t){if(!f){t&&(O=function(){});var r=+new Date;O("Cleaning file system...");var a=JSON.stringify(s),l=function(t){"object"!=typeof s[d]&&(O("ROOT was not an object"),s[d]={});var r=t||s[d];if(!r)return console.error("Invalid element in root");var o,a=0,c=s[p],u=s[h];for(var f in r)if(null!==(o=r[f]))if(i.isFolderData(o))0!==a&&(O("Multiple metadata files in folder"),delete r[f]),a++;else if(i.isFile(o,!0)||i.isFolder(o))if(i.isFolder(o))l(o);else{if("string"==typeof o){var v=e.createRandomInteger(),y=n.createChannelId();u[v]={href:i.cryptor.encrypt(o),filename:f},r[y]=v,delete r[f]}if("number"==typeof o)u[o]||c[o]||(O("An element in ROOT doesn't have associated data",o,f),delete r[f])}else O("An element in ROOT was not a folder nor a file. ",o),delete r[f];else console.error("element[%s] is null",f),delete r[f]};e.isObject(s[p])||(O("STATIC_DATA was not an object"),s[p]={}),l(),function(){if(!u){"object"!=typeof s[m]&&(O("TRASH was not an object"),s[m]={});var n,t=s[m],r=function(t,r,o){if("object"==typeof t){if(!i.isSharedFolder(t.element))if(i.isFile(t.element,!0)||i.isFolder(t.element))if(Array.isArray(t.path)){if("string"==typeof t.element){var a=e.createRandomInteger();s[h][a]={href:i.cryptor.encrypt(t.element),filename:o},t.element=a}if(i.isFolder(t.element)&&l(t.element),"number"==typeof t.element)s[h][t.element]||s[p][t.element]||(O("An element in TRASH doesn't have associated data",t.element,o),n.push(r))}else n.push(r);else n.push(r)}else n.push(r)};for(var o in t)if(Array.isArray(t[o]))if(0===t[o].length)O("Empty array in TRASH root. ",t[o]),delete t[o];else{n=[];for(var a=0;a=0;c--)t[o].splice(n[c],1)}else O("An element in TRASH root is not an array. ",t[o]),delete t[o]}}(),function(){if(!u){Array.isArray(s[g])||(O("TEMPLATE was not an array"),s[g]=[]);var n=e.deduplicateString(s[g]);n.length!==s[g].length&&(s[g]=n);var t=s[g],r=i.getFiles([d]),o=[];t.forEach((function(n,a){if(i.isFile(n,!0)&&-1===r.indexOf(n)){if("string"==typeof n){var c=e.createRandomInteger();return s[h][c]={href:i.cryptor.encrypt(n)},void(t[a]=c)}if("number"==typeof n)s[h][n]||(O("An element in TEMPLATE doesn't have associated data",n),o.push(n))}else o.push(n)})),o.forEach((function(e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}))}}(),function(){"object"!=typeof s[h]&&(O("FILES_DATA was not an object"),s[h]={});var e=s[h],t=i.getFiles([d,m,"hrefArray"]),r=i.find([d]),a=[];for(var u in e)if(String(u)===String(Number(u))){var l=e[u=Number(u)];if(l&&"object"==typeof l)if(l.href||l.roHref){var v;try{v=l.href&&(-1!==l.href.indexOf("#")?l.href:i.cryptor.decrypt(l.href))}catch(e){}if(!v||-1!==v.indexOf("#")){var y,g=n.parsePadUrl(v||l.roHref);if(g.hash)if(g.type){if(v&&"pad"===g.hashData.type&&g.hashData.version)if("view"===g.hashData.mode)l.roHref=v,delete l.href;else if(l.roHref){var E=n.parsePadUrl(l.roHref);E.hash&&E.type||(y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y))}else y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y);if(0===g.hashData.version&&delete l.roHref,v&&"/"!==v.slice(0,1)&&(l.href=i.cryptor.encrypt(n.getRelativeHref(v))),l.ctime||(l.ctime=l.atime),l.title||(l.title=i.getDefaultName(g)),!l.channel)try{y||(y=n.getSecrets(g.type,g.hash,l.password)),l.channel=y.channel,console.log(l),O("Adding missing channel in filesData ",l.channel)}catch(e){console.error(e)}if(n.isValidChannel(l.channel)||console.error("Remove invalid channel",l.channel,l),!c&&!o.testMode||-1!==t.indexOf(u));else O("An element in filesData was not in ROOT, TEMPLATE or TRASH.",u,l),r[n.createChannelId()]=u}else O("Removing an element in filesData with a invalid type.",l),a.push(u);else O("Removing an element in filesData with a invalid href.",l),a.push(u)}}else O("Removing an element in filesData with a missing href.",l),a.push(u);else O("An element in filesData was not an object.",l),a.push(u)}else O("Invalid file ID in filesData.",u),a.push(u);a.forEach((function(e){A(e)}));var b=s[p],w=[];for(var D in b){var _=b[D=Number(D)];_&&"object"==typeof _&&_.href?!c&&!o.testMode||-1!==t.indexOf(D)||w.push(D):w.push(D)}w.forEach((function(e){f||delete s[p][e]}))}(),Object.keys(s).forEach((function(e){"/"===e.slice(0,1)&&delete s[e]})),function(){if(!u){"object"!=typeof s[E]&&(O("SHARED_FOLDER was not an object"),s[E]={});var e,t,r=s[E],o=i.getFiles([d,m]),a=i.find([d]);for(var c in r){var f;t=r[c],c=Number(c);try{f=t.href&&(-1!==t.href.indexOf("#")?t.href:i.cryptor.decrypt(t.href))}catch(e){}if((e=n.parsePadUrl(f||t.roHref))&&e.hash&&"undefined"!==e.hash){if(-1===o.indexOf(c))console.log("missing"+c),a[n.createChannelId()]=c}else delete r[c]}}}(),function(){if(!u){"object"!=typeof s[b]&&(O("SHARED_FOLDER_TEMP was not an object"),s[b]={});var e=s[b],n=s[E];for(var t in e)n[t]&&delete e[t]}}();var v=+new Date-r+"ms";JSON.stringify(s)===a?O("File system was clean.",v):O("Your file system was corrupted. It has been cleaned so that the pads you visit can be stored safely.",v)}},i},o};e.exports&&(e.exports=n(Z(),te(),je()))})()}(Le)),Le.exports}function Ue(){return Re||(Re=1,function(e){(()=>{const n=(e,n,t,r,o,a={})=>{let i=globalThis;var s={setCustomize:e=>{a=e.Messages,r.setCustomize(e)}},c=s.ROOT="root",u=s.UNSORTED="unsorted",f=s.TRASH="trash",l=s.TEMPLATE="template",d=s.SHARED_FOLDERS="sharedFolders",h=s.SHARED_FOLDERS_TEMP="sharedFoldersTemp",p=s.FILES_DATA=t.storageKey,v=s.OLD_FILES_DATA=t.oldStorageKey,y=s.STATIC_DATA="static";s.getDefaultName=function(e){var n=e.type;return a.type[n]+" - "+function(){if(i.Intl&&i.Intl.DateTimeFormat)return new i.Intl.DateTimeFormat(void 0,{weekday:"short",year:"numeric",month:"long",day:"numeric"}).format(new Date);return(new Date).toString().split(" ").slice(0,4).join(" ")}()};var m=s.createCryptor=function(e){var n={};if(!e)return n.encrypt=function(e){return e},n.decrypt=function(e){return e},n;try{var t=o.createEncryptor(e);n.encrypt=function(e){try{return"/file/#"===e.slice(0,7)?e:t.encrypt(e)}catch(e){return}},n.decrypt=function(e){try{return t.decrypt(e)}catch(e){return}}}catch(e){console.error(e)}return n};return s.getHref=function(e,n){if(e.href&&-1!==e.href.indexOf("#"))return e.href;if(e.href&&n){var t=n.decrypt(e.href);if(t&&-1!==t.indexOf("#"))return t}return e.roHref},s.reencrypt=function(e,n,t){if(t){var r=m(e),o=m(n);Object.keys(t[p]).forEach((function(e){var n=t[p][e]||{};if(n.href&&n.roHref&&!n.fileType){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[d]||{}).forEach((function(e){var n=t[d][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[h]||{}).forEach((function(e){var n=t[h][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}}))}else console.error("Nothing to reencrypt")},s.init=function(t,o){var i={};i.cryptor=m(o.editKey),i.setReadOnly=function(e,n){o.editKey=n,i.cryptor=m(n),i.cryptor.k=Math.random(),i.readOnly=e,i._setReadOnly&&i._setReadOnly(e)},i.readOnly=o.readOnly,i.reencrypt=s.reencrypt,i.getDefaultName=s.getDefaultName;var g=o.sframeChan,E=a.fm_newFolder||"New folder",b=a.fm_newFile||"New file";i.ROOT=c,i.STATIC_DATA=y,i.UNSORTED=u,i.TRASH=f,i.TEMPLATE=l,i.SHARED_FOLDERS=d,i.SHARED_FOLDERS_TEMP=h,i.FILES_DATA=p,i.OLD_FILES_DATA=v;var O=i.sharedFolder=o.sharedFolder;i.id=o.id;var A=function(){console.debug.apply(console,arguments)},w=i.log=o.log||A,D=o.logError||A,_=i.debug=o.debug||A;i.fixFiles=function(){};var T=i.error=function(){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"fixFiles",data:{}},(function(){})):("function"==typeof i.fixFiles&&i.fixFiles(),console.error.apply(console,arguments),i.fixFiles())};o.outer&&r.init(o,i,t),i.getStructure=function(){var e={};return e[c]={},e[f]={},e[p]={},e[l]=[],e[d]={},e};var S=i.getHref=function(e){return s.getHref(e,i.cryptor)},x=function(e){return null===e?"null":Array.isArray(e)?"array":typeof e};i.isValidDrive=function(e){var n=i.getStructure();return"object"==typeof e&&Object.keys(n).every((function(t){return e[t]&&x(n[t])===x(e[t])}))};var N=function(){return[l]},I=function(e,n){return e===n},C=i.isSharedFolder=function(e){return!O&&Boolean(t[d]&&t[d][e])},R=i.isFile=function(e,n){return!C(e)&&("number"==typeof e||(void 0!==t[v]||n)&&"string"==typeof e)},P=i.isFolderData=function(e){return"object"==typeof e&&!0===e.metadata};i.isReadOnlyFile=function(e){if(!R(e))return!1;var n=i.getFileData(e);return n.roHref?Boolean(n.roHref&&!n.href):void 0},i.isStaticFile=function(e){return Boolean(t[y]&&t[y][e])};var k=i.isFolder=function(e){return!P(e)&&("object"==typeof e&&!e.channel||C(e))};i.isFolderEmpty=function(e){return!!k(e)&&(0===Object.keys(e).length||!(1!==Object.keys(e).length||!P(e[Object.keys(e)[0]])))},i.hasSubfolder=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=k(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=k(e[o])?1:0;return t},i.hasFile=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=R(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=R(e[o])?1:0;return t},i.hasFolderData=function(e){for(var n in e)if(P(e[n]))return!0};var M=i.hasSubSharedFolder=function(e){for(var n in e){if(C(e[n]))return!0;if(k(e[n])&&M(e[n]))return!0}return!1},F=i.getFileData=function(n,r){if(n){var a,s;try{a=(t[y]||{})[n]}catch(e){console.error(e)}if(a){var c=r?a:e.clone(a);return r||(c.static=!0),c}try{s=t[p][n]||{}}catch(e){console.error(e),s={}}if(!r&&(s=JSON.parse(JSON.stringify(s))).href&&-1===s.href.indexOf("#"))if(o.editKey)try{s.href=i.cryptor.decrypt(s.href)}catch(e){delete s.href}else delete s.href;return s}};i.getFolderData=function(e){for(var n in e)if(P(e[n]))return e[n];return{}};var L=i.getTitle=function(e,n){if(C(e))return"??";var t=F(e);if(t){if(t.static)return t.name;if(e&&(t.href||t.roHref))return"title"===n?t.title:"name"===n?t.filename:t.filename||t.title||b;T("getTitle called with a non-existing file id: ",e,t)}else T("unable to retrieve data about the requested file: ",e,t)},H=i.comparePath=function(e,n){if(!(e&&n&&Array.isArray(e)&&Array.isArray(n)))return!1;if(e.length!==n.length)return!1;for(var t=!0,r=e.length-1;t&&r>=0;)t=e[r]===n[r],r--;return t},j=i.isSubpath=function(e,n){var t=n.slice(),r=e.slice(0,t.length);return H(t,r)},K=i.isPathIn=function(e,n){if(n){var t=n.indexOf("hrefArray");return-1!==t&&(n.splice(t,1),n=n.concat(N())),n.some((function(n){return Array.isArray(e)&&e[0]===n}))}},U=i.isInTrashRoot=function(e){return e[0]===f&&4===e.length},B=function(e,n){if(n){if(0===n.length)return e;var t=n.slice(),r=t.shift();if(void 0!==e[r])return B(e[r],t);_("Unable to find the key '"+r+"' in the root object provided:",e)}else T("Invalid path:\n",n,"\nin root\n",e)},V=i.find=function(e){return B(t,e)},Y=i.getFilesRecursively=function(e,n){for(var t in n=n||[],e)R(e[t])||C(e[t])?-1===n.indexOf(e[t])&&n.push(e[t]):P(e[t])||Y(e[t],n);return n},G={array:function(e){return t[e]||(t[e]=[]),t[e].slice()}};N().forEach((function(e){G[e]=function(){return G.array(e)}})),G.hrefArray=function(){var n=[];return O?n:(N().forEach((function(e){n=n.concat(G[e]())})),e.deduplicateString(n))},G[c]=function(){var e=[];return Y(t[c],e),e},G[f]=function(){var e=t[f],n=[],r=function(e){R(e.element)||C(e.element)?-1===n.indexOf(e.element)&&n.push(e.element):Y(e.element,n)};for(var o in e){if(!Array.isArray(e[o]))return void T("Trash contains a non-array element");e[o].forEach(r)}return n},G[v]=function(){var e=[];return t[v]?(t[v].forEach((function(n){n.href&&-1===e.indexOf(n.href)&&e.push(n.href)})),e):e},G[y]=function(){return t[y]?Object.keys(t[y]).map(Number).filter(Boolean):[]},G[p]=function(){return t[p]?Object.keys(t[p]).map(Number).filter(Boolean):[]},G[d]=function(){return t[d]?Object.keys(t[d]).map(Number).filter(Boolean):[]};var J=i.getFiles=function(n){var t=[];return n&&n.length||(n=[c,"hrefArray",f,v,p,d]),n.forEach((function(e){"function"==typeof G[e]&&(t=t.concat(G[e]()))})),e.deduplicateString(t)},q=i.getIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([p]).some((function(e){if(o(S(t[p][e]))===a||o(t[p][e].roHref)===a)return r=e,!0})),r};i.getSFIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([d]).some((function(e){if(o(S(t[d][e]))===a||o(t[d][e].roHref)===a)return r=e,!0})),r};var W=function(e,n){if(!K(e,[c,f]))return[];n=Array.isArray(n)?n:[n];var t={},r=V(e),o=function(e){Object.keys(e).forEach((n=>{t[n]||=[],Array.prototype.push.apply(t[n],e[n])}))};if(R(r)||C(r))return n.some((n=>{I(n,r)&&(t[n]||=[],t[n].push(e))})),t;if(k(r))for(var a in r){let t=e.slice();t.push(a),o(W(t,n))}return t},z=function(e,n){if(O)return{};if(!t[e])return{};var r=t[e].slice(),o={},a=-1;return n.forEach((n=>{for(;-1!==(a=r.indexOf(n,a+1));)o[n]||=[],o[n].push([e,a])})),o},Q=function(e,n){if(O)return[];var t=V(e),r={},o=function(e){Object.keys(e).forEach((n=>{r[n]||=[],Array.prototype.push.apply(r[n],e[n])}))};if(1===e.length&&"object"==typeof t&&Object.keys(t).forEach((function(r){var a=t[r];if(Array.isArray(a)){var i=e.slice();i.push(r),o(Q(i,n))}})),2===e.length){if(!Array.isArray(t))return[];t.forEach((function(t,a){var i=e.slice();i.push(a),i.push("element"),R(t.element)?n.some((e=>{I(e,t.element)&&(r[e]||=[],r[e].push(i))})):o(Q(i,n))}))}return e.length>=4&&o(W(e,n)),r},Z=i.findFiles=function(e){var n=W([c],e),t=z(l,e),r=Q([f],e);let o={};return e.forEach((e=>{o[e]=[]})),[n,t,r].forEach((e=>{Object.keys(e).forEach((n=>{o[n]||=[],Array.prototype.push.apply(o[n],e[n])}))})),o},X=i.findFile=function(e){return Z([e])[e]||[]};i.findChannels=function(e,n){var r=t[p],o=t[d],a=[p];return n&&a.push(d),J(a).filter((function(n){var t=r[n]||o[n]||{};return-1!==e.indexOf(t.channel)}))},i.search=function(r){if("string"!=typeof r)return[];r=r.trim();var o,a=[],s=t[p],u=t[d],f=r.toLowerCase();/^#/.test(f)&&(o=[f.slice(1).trim()]);J([p,d]).forEach((function(e){var n=s[e]||u[e];if(n)if(Array.isArray(n.tags)&&(t=n.tags,o&&t.length&&(t=t.map((function(e){return e.toLowerCase()})),o.some((function(e){return t.some((function(n){return n===e}))})))))a.push(e);else{var t,r=n.title||n.lastTitle;(r&&-1!==r.toLowerCase().indexOf(f)||n.filename&&-1!==n.filename.toLowerCase().indexOf(f))&&a.push(e)}}));var l=n.getRelativeHref(r);if(l){var h=q(l);h&&a.push(h)}a=e.deduplicateString(a);var v=[];a.forEach((function(e){v.push({id:e,paths:X(e),data:i.getFileData(e)})}));var y=[],m=function(e,n){for(var t in e)k(e[t])&&!C(e[t])&&(-1!==t.toLowerCase().indexOf(f)&&y.push({id:null,paths:[n.concat(t)],data:{title:t}}),m(e[t],n.concat(t)))};return m(t[c],[c]),y=y.sort((function(e,n){return e.data.title.toLowerCase()>n.data.title.toLowerCase()})),v=y.concat(v)},i.getRecentPads=function(){var e=t[p];return Object.keys(e).filter((function(n){return e[n]})).sort((function(n,t){return e[t].atime-e[n].atime})).map((function(e){return Number(e)}))},i.getOwnedPads=function(e){var n=t[p];return Object.keys(n).filter((function(t){return n[t].owners&&-1!==n[t].owners.indexOf(e)})).map((function(e){return Number(e)}))};var $=i.getAvailableName=function(e,n){if(void 0===e[n])return n;for(var t=n,r=1;void 0!==e[t];)t=n+"_"+r,r++;return t},ee=i.move=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"move",data:{paths:e,newPath:n}},t);else{var r=[];e.forEach((function(e){var t=e.slice();t.pop(),H(t,n)||(j(n,e)?w(a.fo_moveFolderToChildError):i.copyElement(e.slice(),n)&&r.push(e))})),i.delete(r,t)}};return i.restore=function(e,n){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"restore",data:{path:e}},n);else if(U(e)){var t=e.slice();t.pop();var r=V(t).path;ee([e],r,n)}},i.addFolder=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"addFolder",data:{path:e,name:n}},t);else{var r=V(e),o=$(r,n||E);r[o]={};var a=e.slice();a.push(o),t({newPath:a})}},i.delete=function(e,n,t){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"delete",data:{paths:e,nocheck:t}},n):(n=n||function(){},i.deleteMultiplePermanently(e,t,n))},i.emptyTrash=function(e){e=e||function(){},g?g.query("Q_DRIVE_USEROBJECT",{cmd:"emptyTrash"},e):(t[f]={},i.checkDeletedFiles(e))},i.ownedInTrash=function(e){return J([f]).map((function(n){var r=C(n)?t[d][n]:i.getFileData(n);if(r)return e(r.owners)?r.channel:void 0})).filter(Boolean)},i.rename=function(e,n,r){if(r=r||function(){},g)g.query("Q_DRIVE_USEROBJECT",{cmd:"rename",data:{path:e,newName:n}},r);else if(e.length<=1)D("Renaming `root` is forbidden");else{var o,i=V(e);if(k(i)&&!C(i)){var s=e.slice(),c=s.pop();if(!n||!n.trim()||c===n)return;var u=V(s);return void 0!==u[n]?void w(a.fo_existingNameError):(u[n]=i,delete u[c],void("function"==typeof r&&r()))}if(o=C(i)?t[d][i]:t[p][i]||t[y][i])return t[y][i]?n&&n.trim()?(o.name=n,void r()):void r():n&&""!==n.trim()?void(L(i,"name")!==n&&(o.filename=n,"function"==typeof r&&r())):(delete o.filename,void("function"==typeof r&&r()))}},i.getTagsList=function(){var e,n={},r=function(e){n[e]=n[e]?++n[e]:1};for(var o in t[p])(e=t[p][o]).tags&&Array.isArray(e.tags)&&e.tags.forEach(r);return n},i},s};e.exports&&(e.exports=n(Z(),te(),Y(),Ke(),M(),void 0))})()}(Fe)),Fe.exports}var Be,Ve,Ye,Ge={exports:{}},Je={exports:{}};function qe(){return Be||(Be=1,function(e){e.exports=function(e){var n,t=[],r=[],o=0,a=function(e){return o++,function(){for(e&&e.apply(null,arguments),o=(o||1)-1;!o&&t.length&&!n;)t.shift()(a)}};a.abort=function(){r.forEach(clearTimeout),n=1};var i={nThen:function(e){return n||(o?t.push(e):e(a)),i},orTimeout:function(e,s){if(n)return i;if(!s)throw Error("Must specify milliseconds to orTimeout()");var c,u=setTimeout((function(){for(;t.shift()!==c;);for(e(a),o=(o||1)-1;!o&&t.length;)t.shift()(a)}),s);return t.push(c=function(){var e=r.indexOf(u);if(e>-1)return r.splice(e,1),void clearTimeout(u);throw new Error("timeout not listed in array")}),r.push(u),i}};return i.nThen(e)}}(Je)),Je.exports}function We(){return Ve||(Ve=1,function(e){e.exports&&(e.exports=((e,n,t,r,o,a,i,s)=>{var c={},u={};return c.checkMigration=function(e,t,r,o){var a=n.once(n.mkAsync(o));if(t)if(e)if(t.version>=2)a();else if(t.migrateRo){var i,s=!1,c=setInterval((function(){if(t.version>=2)return s=!0,clearTimeout(i),clearInterval(c),void a()}),100);i=setTimeout((function(){clearInterval(c),r.migrateReadOnly((function(){s=!0,a()}))}),2e4),t.on("change",["version"],(function(){s||t.version>=2&&(s=!0,clearTimeout(i),clearInterval(c),a())}))}else r.migrateReadOnly(a);else a();else a()},c.migrate=function(e){var t=u[e];if(t){var r=t.teams;if(Array.isArray(r)&&r.length){var o=r[0];if(o.secondaryKey){var a=n.find(o,["store","manager","folders",o.id]);a&&a.proxy&&!a.proxy.version&&a.userObject.migrateReadOnly((function(){r.forEach((function(e){n.find(e,["store","manager","folders",e.id,"userObject"]).setReadOnly(!1,e.secondarykey)}))}))}}}},c.load=function(t,f,l,d){var h=n.once(n.mkAsync(d)),p=t.network,v=t.store,y=t.isNew,m=t.isNewChannel,g=v.id,E=v.handleSharedFolder,b=v.manager.user.userObject.getHref(l),O=e.parsePadUrl(b),A=e.getSecrets("drive",O.hash,l.password);if(!A.keys)return v.manager.deprecateProxy(f),void h(null);var w=A.keys.secondaryKey;o((function(e){t.cache&&r.getChannelCache(A.channel,e((function(n){if("EINVAL"===n)return e.abort(),v.manager.restrictedProxy(f,A.channel),void h(null)})))})).nThen((function(e){m(null,{channel:A.channel},e((function(n){if(n.isNew&&!y)return v.manager.deprecateProxy(f,A.channel,n.reason),e.abort(),void h(null)})))})).nThen((function(){var e=u[A.channel];if(e&&e.readOnly&&w&&c.upgrade(A.channel,A),e&&e.ready&&e.rt)return setTimeout((function(){v.manager.addProxy(f,e.rt,(function(){c.leave(A.channel,g)}),w),h(e.rt)})),e.teams.push({cb:h,store:v,id:f}),void(E&&E(f,e.rt));if(e&&!e.ready&&e.rt)return e.teams.push({cb:h,store:v,secondaryKey:w,id:f}),void(E&&E(f,e.rt));e=u[A.channel]={teams:[{cb:h,store:v,secondaryKey:w,id:f}],readOnly:!Boolean(w)};var n=l.owners,o={data:{},channel:A.channel,readOnly:!Boolean(w),crypto:a.createEncryptor(A.keys),userName:"sharedFolder",logLevel:1,ChainPad:s,classic:!0,network:p,Cache:r,metadata:{validateKey:A.keys.validateKey||void 0,owners:n},onRejected:t.Store&&t.Store.onRejected},d=e.rt=i.create(o);d.proxy.on("cacheready",(function(){e.teams&&(e.teams.forEach((function(n){d.cache=!0,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),t.updatePassword=!1,n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("ready",(function(){y&&!Object.keys(d.proxy).length&&(d.proxy.version=2),e.teams&&(e.teams.forEach((function(n){d.cache=!1,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("error",(function(n){if(n&&n.error){if("EDELETED"===n.error){try{e.teams.forEach((function(e){e.store.manager.deprecateProxy(e.id,A.channel,n.message),e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),e.cb()}))}catch(e){}return delete u[A.channel],void h()}if("ERESTRICTED"===n.error)return e.teams.forEach((function(e){e.store.manager.restrictedProxy(e.id,A.channel),e.cb()})),delete u[A.channel],void h()}})),E&&E(f,d)}))},c.upgrade=function(e,n){var t=u[e];if(t&&t.readOnly&&t.rt.setReadOnly&&n.keys&&n.keys.editKeyStr){var r=a.createEncryptor(n.keys);t.readOnly=!1,t.rt.setReadOnly(!1,r)}},c.leave=function(e,n){var t=u[e];if(t){var r,o=t.teams;Array.isArray(o)&&(o.some((function(e,t){if(e.store.id===n)return e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),r=t,!0})),void 0!==r&&(o.splice(r,1),o.length||t.rt&&t.rt.stop&&t.rt.stop()))}},c.updatePassword=function(r,a,i,s){var f=a.oldChannel,l=a.href,d=a.password,h=e.parsePadUrl(l),p=e.getSecrets(h.type,h.hash,d),v=u[f];if(v){if(v.rt&&v.rt.stop)try{v.rt.stop()}catch(e){}var y=o;v.teams.forEach((function(e){y=y((function(o){var a=e.store,s=e.id,u=n.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};if(s&&u[s]){var l=JSON.parse(JSON.stringify(u[s]));l.password=d,c.load({network:i,store:a,updatePassword:!0,Store:r,isNewChannel:r.isNewChannel},s,l,o()),a.rpc&&(a.rpc.unpin([f],o()),a.rpc.pin([p.channel],o()))}})).nThen})),y((function(){s()}))}else s({error:"ENOTFOUND"})},c.loadSharedFolders=function(e,n,r,a,i,s,u,f){var l=a[t.SHARED_FOLDERS]||{},d=Object.keys(l).length,h=1,p=s();u=u||function(){},o((function(t){Object.keys(l).forEach((function(o){var a=l[o];c.load({network:n,store:r,Store:e,cache:f,isNewChannel:e.isNewChannel},o,a,t((function(){u({progress:h,max:d}),h++})))}))})).nThen((function(){setTimeout(p)}))},c.isSharedFolderChannel=function(e){return Object.keys(u).includes(e)},c})(te(),Z(),Ue(),fe(),qe(),M(),g(),w()))}(Ge)),Ge.exports}function ze(){return Ye||(Ye=1,function(e){(()=>{const n=(e,n,t,r,o={},a,i)=>{var s=function(n,t,r,o,a,i){if(!n.folders[t]||i||n.folders[t].restricted){var s=function(e){var n={};for(var t in e.cfg)n[t]=e.cfg[t];return n}(n);s.sharedFolder=!0,s.id=t,s.editKey=a,s.rt=r.realtime,s.readOnly=Boolean(!a);var c=e.init(r.proxy,s);c.fixFiles&&c.fixFiles();var u=r.proxy;if(u.metadata&&u.metadata.title){var f=n.user.proxy[e.SHARED_FOLDERS][t];f&&(f.lastTitle=u.metadata.title)}return n.folders[t]={proxy:r.proxy,userObject:c,leave:o,restricted:u.restricted,offline:Boolean(r.cache)},u.on&&(u.on("disconnect",(function(){n.folders[t].offline=!0})),u.on("reconnect",(function(){n.folders[t].offline=!1}))),c}n.folders[t].offline&&!r.cache&&n.Store&&(n.folders[t].offline=!1,n.folders[t].userObject.fixFiles&&n.folders[t].userObject.fixFiles(),n.Store.refreshDriveUI())},c=function(e,n){var t=e.folders[n];t&&(t.leave(),delete e.folders[n])},u=function(t,r,o,a){if(!t.folders[r]||!t.folders[r].deleting){if(t.user.userObject.readOnly){return c(t,r),s(t,r,{proxy:{deprecated:!0}},(function(){})),void t.Store.refreshDriveUI()}if(o&&t.unpinPads([o],(function(){})),a&&"PASSWORD_CHANGE"!==a){let o=n.find(t,["user","proxy",e.SHARED_FOLDERS]),a=o[r]&&o[r].lastTitle;return a&&((e,n,t)=>{var r=e.store.mailbox;if(r){var o,a=e.cfg.teamId;o=a?e.store.modules.team.getTeamsData()[a]:e.Store.getMetadata(null,null,(()=>{})).user,r.sendTo("SF_DELETED",{sfId:n,team:a,title:t},{curvePublic:o.curvePublic,channel:o.notifications},(e=>{console.error(e)}))}})(t,r,a),delete o[r],void(t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI())}t.user.userObject.deprecateSharedFolder(r,a),c(t,r),t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI()}},f=function(e,n){c(e,n),s(e,n,{proxy:{restricted:!0,root:{},filesData:{}}},(function(){})),e.Store.refreshDriveUI()},l=function(e,n){return Array.isArray(n)&&-1!==n.indexOf(e.edPublic)},d=function(e){var n=[e.user.userObject],t=Object.keys(e.folders).map((function(n){return e.folders[n].userObject}));return Array.prototype.push.apply(n,t),n},h=function(e,n){var t=d(e),r=e.user.userObject;return t.some((function(e){if(Object.keys(e.getFileData(n)).length)return r=e,!0})),r},p=function(e,n){var t=Number(n.id);if(t)return e.user.userObject.findFile(t)[0]},v=function(n,t,r){var o=[];return n.user.userObject.findChannels([t],!0).forEach((function(t){var a=n.user.proxy[e.SHARED_FOLDERS][t];a&&!r&&(a=JSON.parse(JSON.stringify(a))),a||(a=n.user.userObject.getFileData(t,r)),o.push({id:t,data:a,userObject:n.user.userObject})})),Object.keys(n.folders).forEach((function(e){n.folders[e].userObject.findChannels([t]).forEach((function(t){o.push({id:t,fId:e,data:n.folders[e].userObject.getFileData(t,r),userObject:n.folders[e].userObject})}))})),o},y=function(e,n){var t=[],r=e.user.userObject.getIdFromHref(n);return r&&t.push({data:e.user.userObject.getFileData(r),userObject:e.user.userObject}),Object.keys(e.folders).forEach((function(r){var o=e.folders[r].userObject.getIdFromHref(n);o&&t.push({fId:r,data:e.folders[r].userObject.getFileData(o),userObject:e.folders[r].userObject})})),t},m=function(e,n){var t=[],r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);let i;if(a){i=e.findFile(n);let t=(o[a]||[])[0];if(!t)return;i.forEach((function(e){Array.prototype.unshift.apply(e,t)}))}else{let t=[n],a=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(t,a),o=e.findFiles(t),i=o[n]}Array.prototype.push.apply(t,i)})),t},g=function(e,n){var t={},r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);if(!e.id){let e=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(n,e)}var i=e.findFiles(n);if(e.id||(o=i),a){let e=(o[a]||[])[0];if(!e)return;Object.keys(i).forEach((n=>{i[n].forEach((n=>{Array.prototype.unshift.apply(n,e)}))}))}Object.keys(i).forEach((e=>{t[e]||=[],Array.prototype.push.apply(t[e],i[e])}))})),t},E=function(e,t,r){if(r)return e.user.userObject.findChannels(t);var o=[];return d(e).forEach((function(e){var n=e.findChannels(t);Array.prototype.push.apply(o,n)})),o=n.deduplicateString(o)},b=function(e,n,t){var r=d(e),o={};return r.some((function(e){if((o=e.getFileData(n,t))&&Object.keys(o).length)return!0})),o},O=function(t,r){var o;if(t.isHistoryMode&&!t.folders[r])o=!0;else if(!t.folders[r])return{};var a=o?{}:t.folders[r].proxy;Object.keys(a.metadata||{}).length>1&&(a.metadata={title:a.metadata.title});var i=n.clone(a.metadata||{});for(var s in t.user.proxy[e.SHARED_FOLDERS][r]||{})if(void 0!==t.user.proxy[e.SHARED_FOLDERS][r][s]){var c=n.clone(t.user.proxy[e.SHARED_FOLDERS][r][s]);if("href"===s&&-1===c.indexOf("#"))try{c=t.user.userObject.cryptor.decrypt(c)}catch(e){}"href"===s&&-1===c.indexOf("#")&&(c=void 0),i[s]=c}return i},A=function(e,n){var t,r={id:null,userObject:e.user.userObject,path:n};if(!Array.isArray(n)||n.length<=1)return r;for(var o=e.user.userObject,a=2;a{o=n.Messages,e.setCustomize(n)},create:function(n,t,r){var o={pinPads:t.pin,unpinPads:t.unpin,onSync:t.onSync,Store:t.Store,store:t.store,removeOwnedChannel:t.removeOwnedChannel,loadSharedFolder:t.loadSharedFolder,cfg:r,edPublic:t.edPublic,settings:t.settings,user:{proxy:n},folders:{}};r.removeProxy=function(e){c(o,e)},o.user.userObject=e.init(n,r);var a=function(e){return function(){return[].unshift.call(arguments,o),e.apply(null,arguments)}};return{addProxy:a(s),removeProxy:a(c),deprecateProxy:a(u),restrictedProxy:a(f),addSharedFolder:a(N),addPin:function(e,n){o.pinPads=e,o.unpinPads=n},removePin:function(){delete o.pinPads,delete o.unpinPads},command:a(P),getPadAttribute:a(M),setPadAttribute:a(k),getTagsList:a(F),getSecureFilesList:a(L),getSharedFolderData:a(O),getChannelsList:a(j),addPad:a(K),delete:a(I),deleteOwned:a(C),findChannel:a(v),findHref:a(y),findFile:a(m),getEditHash:a(S),user:o.user,folders:o.folders}},createInner:function(n,t,r,o){var a={cfg:o,sframeChan:t,edPublic:r,user:{proxy:n,userObject:e.init(n,o)},folders:{}},i=function(e){return function(){return[].unshift.call(arguments,a),e.apply(null,arguments)}};return{addProxy:i(s),removeProxy:i(c),setHistoryMode:i(le),rename:i(U),move:i(B),emptyTrash:i(V),addFolder:i(Y),addSharedFolder:i(G),addLink:i(J),restoreSharedFolder:i(q),convertFolderToSharedFolder:i(W),delete:i(z),deleteOwned:i(Q),restore:i(Z),setFolderData:i(X),updateStaticAccess:i($),getFileData:i(ne),find:i(re),getTitle:i(oe),isReadOnlyFile:i(ie),isStaticFile:i(ae),getFiles:i(se),search:i(ce),getRecentPads:i(ue),getOwnedPads:i(fe),getTagsList:i(F),findFile:i(m),findFiles:i(g),findChannels:i(ee),getSharedFolderData:i(O),getFolderData:i(de),isInSharedFolder:i(he),getUserObjectPath:i(te),isDuplicateOwned:i(Se),ownedInTrash:i(Te),isValidDrive:i(pe),isFile:i(ve),isFolder:i(ye),isSharedFolder:i(me),isFolderEmpty:i(ge),isPathIn:i(Ee),isSubpath:i(be),isInTrashRoot:i(Oe),comparePath:i(Ae),hasSubfolder:i(we),hasSubSharedFolder:i(De),hasFile:i(_e),user:a.user,folders:a.folders}}}};e.exports&&(e.exports=n(Ue(),Z(),te(),We(),void 0,Ae(),qe()))})()}(Me)),Me.exports}var Qe,Ze,Xe=ze(),$e=n({__proto__:null,default:r(Xe)},[Xe]),en=Ue(),nn=n({__proto__:null,default:r(en)},[en]),tn={exports:{}},rn={exports:{}};function on(){return Ze||(Ze=1,function(e){e.exports&&(e.exports=((e={},n={},t)=>{let r=[];const o=["sheet","doc","presentation"],a=a=>{e=a.AppConfig;const i=(n=a.ApiConfig).onlyOffice&&n.onlyOffice.availableVersions.includes(t.currentVersion);r=e.availablePadTypes.filter((e=>i||!o.includes(e)))};Object.keys(e).length&&a({AppConfig:e,ApiConfig:n});const i={setCustomize:a};return i.__defineGetter__("availableTypes",(function(){return n.appsToDisable?r.filter((e=>!n.appsToDisable.includes(e))):r})),i.__defineGetter__("appsToSelect",(function(){return r.filter((e=>!["drive","teams","file","contacts","convert"].includes(e)))})),i.isAvailable=e=>Array.isArray(i.availableTypes)&&i.availableTypes.includes(e),i})(void 0,void 0,(Qe||(Qe=1,function(e){e.exports&&(e.exports={currentVersion:"v7"})}(rn)),rn.exports)))}(tn)),tn.exports}var an,sn,cn=on(),un=n({__proto__:null,default:r(cn)},[cn]),fn={exports:{}},ln={exports:{}};function dn(){return an||(an=1,function(e){(()=>{const n=(e,n,t={},r)=>{const o=function(){if(Object.keys(t).length){var e,n=new URL(t.httpUnsafeOrigin);try{return(e=new URL(t.websocketPath,t.httpUnsafeOrigin)).protocol=n.protocol,e.origin}catch(e){return console.error(e),t.httpUnsafeOrigin}}};var a=o();var i=e=>JSON.parse(JSON.stringify(e)),s=function(e,t,r){var o=n.once(n.mkAsync(r));fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then((e=>{e.ok?e.text().then((e=>{o(void 0,n.tryParse(e))})):e.json().then().then((n=>{o(e.status,n)}))})).catch((e=>{o(e)}))},c=function(t,o,c){var u=i(o);u.publicKey=n.encodeBase64(t.publicKey),u.nonce=n.encodeBase64(r.randomBytes(24));var f,l,d=new URL("/api/auth/",a);e((function(e){s(d,u,e(((n,t)=>n?(e.abort(),console.error(n),t&&console.error(t),void c(n)):t.date&&t.txid?(f=t.txid,void(l=t.date)):(e.abort(),void c("REQUEST_REJECTED")))))})).nThen((function(e){var o=i(u);o.txid=f,o.date=l;var a=n.decodeUTF8(JSON.stringify(o)),h=r.sign.detached(a,t.secretKey),p=n.encodeBase64(h);s(d,{sig:p,txid:f},e(((n,t)=>{if(n)return e.abort(),console.error(n),t&&console.error(t),void c("RESPONSE_REJECTED",t);c(void 0,t)})))}))};return c.setCustomize=e=>{t=e.ApiConfig,a=o()},c};e.exports&&(e.exports=n(qe(),Z(),void 0,N()))})()}(ln)),ln.exports}function hn(){return sn||(sn=1,function(e){e.exports&&(e.exports=((e,n={},t,r)=>{var o={setCustomize:e=>{n=e.ApiConfig,t.setCustomize(e)}};o.join=e.uint8ArrayJoin,o.seed=function(){return r.hash(e.decodeUTF8("pewpewpew"))},o.genkeys=function(e){if(!(e instanceof Uint8Array))throw new Error("INVALID_SEED_FORMAT");if(!e||"number"!=typeof e.length||e.length<64)throw new Error("INVALID_SEED_LENGTH");var n=e.subarray(0,r.sign.seedLength),t=e.subarray(r.sign.seedLength,r.sign.seedLength+r.secretbox.keyLength);return{sign:r.sign.keyPair.fromSeed(n),symmetric:t}},o.keysToRPCFormat=function(n){try{var t=n.sign;return{edPrivate:e.encodeBase64(t.secretKey),edPublic:e.encodeBase64(t.publicKey)}}catch(e){return void console.error(e)}},o.encrypt=function(n,t,a){var i=e.decodeUTF8(t),s=r.randomBytes(r.secretbox.nonceLength);return o.join([[0],s,r.secretbox(i,s,a.symmetric)])},o.decrypt=function(n,t){var o=n.subarray(1,1+r.secretbox.nonceLength),a=n.subarray(1+r.secretbox.nonceLength),i=r.secretbox.open(a,o,t.symmetric);try{return JSON.parse(e.encodeUTF8(i))}catch(e){return void console.error(e)}},o.sign=function(e,n){return r.sign.detached(r.hash(e),n.sign.secretKey)},o.serialize=function(n,t){var r=o.encrypt(0,n,t),a=o.sign(r,t);return{publicKey:e.encodeBase64(t.sign.publicKey),signature:e.encodeBase64(a),ciphertext:e.encodeBase64(r)}},o.proveAncestor=function(n){var t=e.find(n,["sign","publicKey"]),o=e.find(n,["sign","secretKey"]);try{var a=r.sign.detached(t,o);return JSON.stringify([t,a].map(e.encodeBase64))}catch(e){return void console.error(e)}};var a=function(n){return e.encodeBase64(n).replace(/\//g,"-")};o.getBlockUrl=function(e){var t=a(e.sign.publicKey);return(n.fileHost||n.httpUnsafeOrigin||window.location.origin)+"/block/"+t.slice(0,2)+"/"+t},o.getBlockHash=function(e){return o.getBlockUrl(e)+"#"+a(e.symmetric)};var i=function(n){try{return e.decodeBase64(n.replace(/\-/g,"/"))}catch(e){return void console.error(e)}};return o.parseBlockHash=function(e){if("string"==typeof e){var n=e.split("#");if(2===n.length)try{return{href:n[0],keys:{symmetric:i(n[1])}}}catch(e){return void console.error(e)}}},o.checkRights=function(n,r){const o=e.mkAsync(r),{blockKeys:a,auth:i}=n;var s="MFA_CHECK";i&&i.type&&(s=`${i.type.toUpperCase()}_`+s),t(a.sign,{command:s,auth:i&&i.data},o)},o.writeLoginBlock=function(e,n){const{content:r,blockKeys:a,oldBlockKeys:i,auth:s,pw:c,session:u,token:f,userData:l}=e;var d="WRITE_BLOCK";s&&s.type&&(d=`${s.type.toUpperCase()}_`+d);var h=o.serialize(JSON.stringify(r),a);h.auth=s&&s.data,h.hasPassword=c,h.registrationProof=i&&o.proveAncestor(i),f&&(h.inviteToken=f),l&&(h.userData=l),t(a.sign,{command:d,content:h,session:u},n)},o.removeLoginBlock=function(e,n){const{reason:r,blockKeys:o,auth:a,edPublic:i}=e;var s="REMOVE_BLOCK";a&&a.type&&(s=`${a.type.toUpperCase()}_`+s),t(o.sign,{command:s,auth:a&&a.data,edPublic:i,reason:r},n)},o.updateSSOBlock=function(e,n){const{blockKeys:r,oldBlockKeys:a}=e;var i=a&&o.proveAncestor(a);t(r.sign,{command:"SSO_UPDATE_BLOCK",ancestorProof:i},n)},o})(Z(),void 0,dn(),N()))}(fn)),fn.exports}var pn,vn=hn(),yn=n({__proto__:null,default:r(vn)},[vn]),mn={exports:{}},gn={exports:{}};function En(){return pn||(pn=1,function(e){var n;n=function(){var e=function(n){if(Array.isArray(n))return n.map(e);if(n instanceof Object){var t=[],r=[];return Object.keys(n).forEach((function(e){/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce((function(t,r){return t[r]=e(n[r]),t}),{})}return n},n=JSON.stringify.bind(JSON);return function(t,r,o){var a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;var i=JSON.parse(a);return n(e(i),null,o)}},e.exports?e.exports=n():JSON.sortify=n()}(gn)),gn.exports}var bn,On={exports:{}},An={exports:{}};function wn(){return bn||(bn=1,function(e){e.exports&&(e.exports=((e,n,t,r,o)=>{var a={},i=a.createData=function(e,r){var o={channel:r||n.createChannelId(),displayName:e["cryptpad.username"],profile:e.profile&&e.profile.view,edPublic:e.edPublic,curvePublic:e.curvePublic,notifications:t.find(e,["mailboxes","notifications","channel"]),avatar:e.profile&&e.profile.avatar,badge:e.profile&&e.profile.badge,uid:e.uid};return!1===r&&delete o.channel,o},s=a.getFriend=function(e,n){if(n){if(n===e.curvePublic){var t=i(e);return delete t.channel,t}return e.friends?e.friends[n]:void 0}},c=a.getFriendList=function(e){return e.friends||(e.friends={}),e.friends},u=function(e,n){Object.keys(e).forEach((function(t){"me"!==t&&n(e[t],t,e)}))};return a.getFriendChannelsList=function(e){var n=[];return u(e.friends,(function(e){n.push(e.channel)})),n},a.declineFriendRequest=function(e,n,t){e.mailbox.sendTo("DECLINE_FRIEND_REQUEST",{},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},a.acceptFriendRequest=function(e,n,t){var r=s(e.proxy,n.curvePublic)||{},o=i(e.proxy,r.channel||n.channel);e.mailbox.sendTo("ACCEPT_FRIEND_REQUEST",{user:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},a.addToFriendList=function(e,n,t){var r=e.proxy,a=c(r),i=n.curvePublic;i!==r.curvePublic?(a[i]=n,o.whenRealtimeSyncs(e.realtime,(function(){t(),e.pinPads([n.channel],(function(e){e.error&&console.error(e.error)}))}))):t("E_MYKEY")},a.updateMyData=function(e,n){var r=i(e.proxy,!1);e.proxy.friends&&(e.proxy.friends.me=t.clone(r),delete e.proxy.friends.me.channel),e.modules.team&&e.modules.team.updateMyData(r);var o=function(n){n&&n.notifications&&(delete n.user,r.channel=n.channel,e.mailbox.sendTo("UPDATE_DATA",r,{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)})))};n?o(s(e.proxy,n)):u(e.proxy.friends||{},o)},a.removeFriend=function(e,n,t){var r=e.proxy,a=r.friends[n];a?a.notifications?e.mailbox.sendTo("UNFRIEND",{curvePublic:r.curvePublic},{channel:a.notifications,curvePublic:a.curvePublic},(function(i){i&&i.error?t(i):(e.messenger.onFriendRemoved(n,a.channel),delete r.friends[n],o.whenRealtimeSyncs(e.realtime,(function(){t(i)})))})):t({error:"EINVAL"}):t({error:"ENOENT"})},a})(M(),te(),Z(),Y(),je()))}(An)),An.exports}var Dn,_n,Tn,Sn={exports:{}},xn={exports:{}},Nn={exports:{}};function In(){return Dn||(Dn=1,function(e){e.exports&&(e.exports=function(e,n){var t=e.uid,r=e.tryParse,o=function(t,r){var o=e.decodeUTF8(JSON.stringify(t));return e.encodeBase64(n.sign.detached(o,r))},a=function(e,n,r){if("function"!=typeof r)throw new Error("expected callback");var o=e.network,a=o.historyKeeper;if("string"==typeof a){var i=t(),s=e.pending[i]=function(e,n){r(e,n)};return s.data=n,s.called=0,o.sendto(a,JSON.stringify([i,n]))}r("NO_HISTORY_KEEPER")},i=[],s=[],c=function(e){var n={network:e,connected:!0,anon:void 0,authenticated:[]};return i.push(e),s.push(n),e.on("message",(function(t,o){o===e.historyKeeper&&function(e,n){"string"!=typeof n&&console.error("received non-string message [%s]",n);var t=r(n);if(t){if(Array.isArray(t)&&!/(FULL_HISTORY|HISTORY_RANGE)/.test(t[0])){var o=t[0];"string"==typeof o&&(function(e,n){return!!e.anon&&"function"==typeof e.anon.pending[n]}(e,o)?function(e,n,t){var r=e.pending[n];"ERROR"===t[0]?r(t[1]):r(void 0,t.slice(1)),delete e.pending[n]}(e.anon,o,t.slice(1)):e.authenticated.some((function(e){var n=e.pending[o];return"function"==typeof n&&("ERROR"!==t[1]?(/\|/.test(t[1])&&e.cookie!==t[1]&&(e.cookie=t[1]),n(void 0,t.slice(2)),delete e.pending[o],!0):"NO_COOKIE"===t[2]?(e.send("COOKIE","",(function(t){if(t)return console.error(t),void n(t);e.resend(o)&&delete e.pending[o]})),!0):(n(t[2]),delete e.pending[o],!0))}))||console.error("UNHANDLED RPC MESSAGE",n))}}else console.error(new Error("could not parse message: %s",n))}(n,t)})),e.on("disconnect",(function(){n.connected=!1,n.anon&&(n.anon.connected=!1),n.authenticated.forEach((function(e){e.connected=!1}))})),e.on("reconnect",(function(){n.anon&&(n.anon.connected=!0),n.authenticated.forEach((function(e){e.connected=!0}))})),n},u=function(e){var n;return i.some((function(t,r){return e===t&&(n=r,!0)})),s[n]?s[n]:c(e)},f=function(n,r){if(!n)throw new Error("expected network context");var i,s=r.publicKeyString;return n.authenticated.some((function(e,n){return e.publicKey===s&&(i=n,!0)})),n.authenticated[i]?n.authenticated[i]:function(n,r){var i={network:n.network,publicKey:r.publicKeyString,timeouts:{},pending:{},cookie:null,connected:!0},s=i.send=function(n,t,s){var c=e.mkAsync(s);if(i.connected||"COOKIE"===n){var u=[n,t];i.cookie&&i.cookie.join?u.unshift(i.cookie.join("|")):u.unshift(i.cookie);var f=o(u,r.signKey);return u.unshift(r.publicKeyString),u.unshift(f),a(i,u,c)}c("DISCONNECTED")};return i.resend=function(e){var n=i.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++,n.data[2]=i.cookie,n.data[0]=o(n.data.slice(2),r.signKey);var a=t();i.pending[a]=n,delete i.pending[e];try{return i.network.sendto(i.network.historyKeeper,JSON.stringify([a,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},s.unauthenticated=function(n,t,o){var s=e.mkAsync(o);if(i.connected){var c=[null,r.publicKeyString,null,n,t];return i.cookie&&i.cookie.join?c[2]=i.cookie.join("|"):c[2]=i.cookie,a(i,c,s)}s("DISCONNECTED")},i.destroy=function(){Object.keys(i.timeouts).forEach((function(e){clearTimeout(e)}));var e=n.authenticated.indexOf(i);-1!==e&&n.authenticated.splice(e,1)},n.authenticated.push(i),i}(n,r)},l=function(n){return n.anon||function(n){var t={network:n.network,timeouts:{},pending:{},connected:!0};return n.anon=t,t.send=function(n,r,o){var i=e.mkAsync(o);if(t.connected)return a(t,[n,r],i);i("DISCONNECTED")},t.resend=function(e){var n=t.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++;try{return t.network.sendto(t.network.historyKeeper,JSON.stringify([e,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},t.destroy=function(){Object.keys(t.timeouts).forEach((function(e){clearTimeout(e)})),n.anon=void 0},t}(n)};return{create:function(n,t,r,o){if("function"!=typeof o)throw new Error("expected callback");var a,i=e.mkAsync(o);try{if(64!==(a=e.decodeBase64(t)).length)throw new Error("private key did not match expected length of 64")}catch(e){return void i(e)}try{if(32!==e.decodeBase64(r).length)return void i("expected public key to be 32 uint")}catch(e){return void i(e)}if(n){var s=u(n),c=f(s,{publicKeyString:r,signKey:a});c.send("COOKIE","",(function(e){e?i(e):i(void 0,{send:c.send,destroy:c.destroy})}))}else i("NO_NETWORK")},createAnonymous:function(n,t){var r=e.mkAsync(t);if("function"!=typeof r)throw new Error("expected callback");if(n){var o=l(u(n));r(void 0,{send:o.send,destroy:o.destroy})}else r("NO_NETWORK")}}}(Z(),N()))}(Nn)),Nn.exports}function Cn(){return _n||(_n=1,function(e){e.exports&&(e.exports=function(e,n){return{create:function(t,r,o,a){if("function"!=typeof o)throw new Error("Expected callback");var i=e.once(e.mkAsync(o));if(t)if(r){var s=r.edPrivate,c=r.edPublic;s&&c?n.create(t,s,c,(function(n,t){if(n)i(n);else{var r={};r.destroy=t.destroy,r.publicKey=c,r.send=t.send,r.pin=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("PIN",n,o):o("[TypeError] pin expects an array")},r.unpin=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("UNPIN",n,o):o("[TypeError] pin expects an array")},r.adminRpc=function(e,n){if(e.cmd){var r=[e.cmd,e.data];t.send("ADMIN",r,n)}else setTimeout((function(){n("[TypeError] admin rpc expects a command")}))},r.getServerHash=function(e){t.send("GET_HASH",c,(function(n,t){t&&t[0]?e(n,Array.isArray(t)&&t[0]||void 0):e("NO_HASH_RETURNED")}))},r.reset=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("RESET",n,o):o("[TypeError] pin expects an array")},r.getFileListSize=function(e){t.send("GET_TOTAL_SIZE",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0]):e("INVALID_RESPONSE")}))},r.updatePinLimits=function(e){t.send("UPDATE_LIMITS",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.getLimit=function(e){t.send("GET_LIMIT",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.trimHistory=function(n,r){var o=e.once(e.mkAsync(r));"object"==typeof n&&n.channel&&n.hash?t.send("TRIM_HISTORY",n,(function(e){if(e)return o(e);o()})):o("INVALID_ARGUMENTS")},r.clearOwnedChannel=function(e,n){"string"==typeof e&&32===e.length?t.send("CLEAR_OWNED_CHANNEL",e,(function(e){if(e)return n(e);n()})):n("INVALID_ARGUMENTS")},r.removeOwnedChannel=function(e,n,r){if("string"!=typeof e||-1===[32,48].indexOf(e.length))return console.error("invalid channel to remove",e),void n("INVALID_ARGUMENTS");t.send("REMOVE_OWNED_CHANNEL",{channel:e,reason:r},(function(t,r){t?n(t):r&&r.length&&"OK"===r[0]?(n(),a&&a.clearChannel&&a.clearChannel(e)):n("INVALID_RESPONSE")}))},r.removePins=function(e){t.send("REMOVE_PINS",void 0,(function(n,t){n?e(n):t&&t.length&&"OK"===t[0]?e():e("INVALID_RESPONSE")}))},r.uploadComplete=function(e,n){t.send("UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.ownedUploadComplete=function(e,n){t.send("OWNED_UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.uploadStatus=function(e,n){"number"==typeof e?t.send("UPLOAD_STATUS",e,(function(e,t){if(e)n(e);else{var r=t[0];"boolean"==typeof r?n(void 0,r):n("INVALID_RESPONSE")}})):setTimeout((function(){n("INVALID_SIZE")}))},r.uploadCancel=function(e,n){t.send("UPLOAD_CANCEL",e,(function(e){e?n(e):n()}))},r.setMetadata=function(e,n){t.send("SET_METADATA",{channel:e.channel,command:e.command,value:e.value},n)},i(n,r)}})):i("INVALID_KEYS")}else i("INVALID_PROXY");else i("INVALID_NETWORK")}}}(Z(),In()))}(xn)),xn.exports}function Rn(){return Tn||(Tn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u)=>{var f=function(e,n,t){if(!e.done){if(e.cb(n&&n.error,t,n),e.done=!0,!e.hasNetwork){var o=r.find(e,["network","disconnect"]);"function"==typeof o&&o()}if(e.realtime&&e.realtime.stop)try{e.realtime.stop()}catch(e){console.error(e)}var a=r.find(e,["session","realtime","abort"]);"function"==typeof a&&(e.session.realtime.sync(),a())}},l=function(e,r){u((function(n){var o,a;e.hasNetwork||(o=n((function(e,n){e||(r.network=n)})),a=i.getWebsocketURL(),t.connect(a).then((function(e){o(null,e)}),(function(e){o(e)})))})).nThen((function(){e.realtime=n.start(r)}))},d=function(e,n,t,r){Array.isArray(t)&&t.length&&16===t[0].length&&Array.isArray(n.accessKeys)?(e.network.historyKeeper=t[0],u((function(t){n.accessKeys.forEach((function(n){c.create(e.network,n,t((function(e){console.log("done",n),e&&console.error(e)})))}))})).nThen((function(){r()}))):r(!0)},h=function(n,t){var r;return"string"==typeof n?r=o.getSecrets("pad",n,t.password):"object"==typeof n&&(r=n),r.keys||(r.keys=r.key),{websocketURL:i.getWebsocketURL(t.origin),channel:r.channel,validateKey:r.keys.validateKey||void 0,crypto:e.createEncryptor(r.keys),logLevel:0,initialState:t.initialState,Cache:s}},p=function(e){return"object"==typeof e},v=function(e,n){p(e)&&p(n)&&Object.keys(n).forEach((function(t){e[t]=n[t]}))};return{get:function(e,n,t,r){if("function"!=typeof n)throw new Error("Cryptget expects a callback");r=r||function(){};var o=h(e,t=t||{}),a={cb:n,accessKeys:t.accessKeys,hasNetwork:Boolean(t.network)};o.onRejected=function(e,n){d(o,a,e,n)},o.onReady=function(e){var n=a.session=e.realtime;a.network=e.network,r(1),f(a,void 0,n.getUserDoc())},o.onError=function(e){console.warn(e),f(a,e)},o.onChannelError=function(e){console.error(e),f(a,e)},o.onCacheReady=t.onCacheReady;var i=0;o.onMessage=function(){i++,r(Math.min(.99,i/100))},v(o,t),l(a,o)},put:function(e,n,t,r){if("function"!=typeof t)throw new Error("Cryptput expects a callback");var o=h(e,r=r||{}),i={cb:t,accessKeys:r.accessKeys,hasNetwork:Boolean(r.network)};o.onRejected=function(e,n){d(o,i,e,n)},o.onReady=function(e){var r=i.session=e.realtime;i.network=e.network,r.contentUpdate(n);var o=setTimeout((function(){t(new Error("Timeout"))}),15e3);a.whenRealtimeSyncs(r,(function(){clearTimeout(o);var e=r.getAuthDoc();r.abort(),f(i,void 0,e)}))},o.onChannelError=function(e){f(i,e)},v(o,r),l(i,o)}}};e.exports&&(e.exports=n(M(),y(),v(),Z(),te(),je(),j(),fe(),Cn(),qe(),w()))})()}(Sn)),Sn.exports}var Pn,kn={exports:{}},Mn={exports:{}};var Fn,Ln,Hn,jn={exports:{}};function Kn(){return Fn||(Fn=1,function(e){e.exports&&(e.exports=((e,n,t,r,o)=>{var a=function(e){var n=e.store.realtime.getLag().lag||0;return 20*(Math.max(0,n)+300)*(.5+Math.random())},i={},s={},c=function(e,n){var r=e.store.proxy.mutedUsers||{},o=t.find(n,["msg","author"]);return!!o&&Boolean(r[o])},u={};i.FRIEND_REQUEST=function(n,t,r,o){var a=r.msg.content.user||r.msg.content;if(c(n,r))o(!0);else if(u[r.msg.author])o(!0);else{if(u[r.msg.author]={type:t.type,hash:r.hash},e.getFriend(n.store.proxy,r.msg.author)||n.store.proxy.friends_pending[r.msg.author])return delete n.store.proxy.friends_pending[r.msg.author],void e.acceptFriendRequest(n.store,a,(function(t){t&&t.error?o():e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},a,(function(e){if(e)return console.error(e),void o(!0);n.store.messenger&&n.store.messenger.onFriendAdded(a),n.updateMetadata(),o(!0)}))}));o()}},s.FRIEND_REQUEST=function(e,n,t){var r=t.content.user||t.content;u[r.curvePublic]&&delete u[r.curvePublic]};var f={},l={};i.DECLINE_FRIEND_REQUEST=function(e,n,t,r){var o=t.msg.content.user||t.msg.content;o.curvePublic||(o.curvePublic=t.msg.author),setTimeout((function(){r(!0),e.store.proxy.friends_pending[t.msg.author]&&(delete e.store.proxy.friends_pending[t.msg.author],e.updateMetadata(),f[t.msg.author]||n.sendMessage({type:"FRIEND_REQUEST_DECLINED",content:{user:o}},(function(e){f[t.msg.author]={type:n.type,hash:e}})))}),a(e))},i.FRIEND_REQUEST_DECLINED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=l[o];delete l[o],f[o]?r(!0,a):(f[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_DECLINED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;f[r]&&delete f[r]},i.ACCEPT_FRIEND_REQUEST=function(n,t,r,o){var i=r.msg.content.user||r.msg.content;setTimeout((function(){o(!0),n.store.proxy.friends_pending[r.msg.author]&&(delete n.store.proxy.friends_pending[r.msg.author],e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},i,(function(e){e?console.error(e):(n.store.messenger&&n.store.messenger.onFriendAdded(i),n.updateMetadata(),n.store.modules.profile&&n.store.modules.profile.update(),l[r.msg.author]||t.sendMessage({type:"FRIEND_REQUEST_ACCEPTED",content:{user:i}},(function(e){l[r.msg.author]={type:t.type,hash:e}})))})))}),a(n))},i.FRIEND_REQUEST_ACCEPTED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=f[o];delete f[o],l[o]?r(!0,a):(l[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_ACCEPTED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;l[r]&&delete l[r]},i.CANCEL_FRIEND_REQUEST=function(e,n,t,r){var o=u[t.msg.author];o?r(!0,o):r(!0)},i.UNFRIEND=function(n,t,r,o){var a=r.msg.author,i=e.getFriend(n.store.proxy,a);i?(delete n.store.proxy.friends[a],delete n.store.proxy.friends_pending[a],n.store.messenger&&n.store.messenger.onFriendRemoved(a,i.channel),n.updateMetadata(),o(!0)):o(!0)},i.UPDATE_DATA=function(e,n,t,r){var o=t.msg,a=o.author,i=e.store.proxy.friends&&e.store.proxy.friends[a];i&&"object"==typeof o.content?(Object.keys(o.content).forEach((function(e){i[e]=o.content[e]})),e.store.messenger&&e.store.messenger.onFriendUpdate(a),e.updateMetadata(),r(!0)):r(!0)};var d=function(e,n){let t=e.store.data.blockHash,a=o.parseBlockHash(t).keys.symmetric;return r.encrypt(n,a)},h={};i.SHARE_PAD=function(e,t,r,o){var a=r.msg,i=r.hash,s=a.content;if(c(e,r))o(!0);else{var u,f=s.isStatic?s.href:n.hrefToHexChannelId(s.href,s.password),l=n.parsePadUrl(s.href),p=l.hashData&&l.hashData.mode||"n/a",v=h[f];if(v){if("edit"===v.mode&&"view"===p)return void o(!0);u=v.data}s.password&&(s.password=d(e,s.password)),h[f]={mode:p,data:{type:t.type,hash:i}},o(!1,u)}},s.SHARE_PAD=function(e,t,r,o){var a=r.content,i=n.hrefToHexChannelId(a.href,a.password),s=h[i];s&&s.data&&s.data.hash===o&&delete h[i]};var p=!1;i.SUPPORT_MESSAGE=function(e,n,t,r){p?r(!0):(p=!0,r())},s.SUPPORT_MESSAGE=function(){p=!1},i.REQUEST_PAD_ACCESS=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{var a=o.channel,i=e.store.manager.findChannel(a);if(i.length){var s,u,f=e.store.proxy.edPublic;i.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(f)&&e.data.href)return u=e.data.href,s=e.data.filename||e.data.title,!0}))?(o.title=s,o.href=u,r(!1)):r(!0)}else r(!0)}},i.GIVE_PAD_ACCESS=function(e,n,t,r){var o,a=t.msg.content,i=a.channel;e.store.manager.findChannel(i,!0).forEach((function(e){e.data&&!e.data.href&&(o||(o=e.data.filename||e.data.title),e.userObject.setHref(i,null,a.href))})),a.title=o||a.title,r(!1)},i.ADD_TO_ACCESS_LIST=function(e,n,t,r){var o=t.msg.content.channel;e.Store.getAllStores().forEach((function(n){var t=n.manager.findChannel(o);if(t.length){var r=t[0].data,a=t[0].id,i=n.id;e.Store.loadSharedFolder(i,a,r,(function(){}),!1)}})),r(!0)};var v={};i.ADD_OWNER=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{if(!(o.teamChannel||o.href&&o.title&&o.channel))return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;o.password&&(o.pw=o.password,o.password=d(e,o.password)),v[a]?r(!0):(v[a]={type:n.type,hash:t.hash},r(!1))}},s.ADD_OWNER=function(e,n,t){var r=t.content.channel||t.content.teamChannel;v[r]&&delete v[r]},i.RM_OWNER=function(e,n,t,r){var o=t.msg.content;if(!o.channel&&!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;if(o.teamChannel){var i=e.store.proxy.teams||{};Object.keys(i).some((function(e){if(i[e].channel===a)return i[e].owner=!1,!0}))}v[a]&&o.pending?r(!1,v[a]):r(!1)};var y={};i.INVITE_TO_TEAM=function(e,n,r,o){var a=r.msg.content;if(c(e,r))o(!0);else{if(!a.team)return console.log("Remove invalid notification"),void o(!0);var i=y[a.team.channel];if(i)return console.log("removing old invitation"),o(!1,i),void(y[a.team.channel]={type:n.type,hash:r.hash});var s=t.find(e,["store","proxy","teams"])||{};Object.keys(s).some((function(e){return s[e].channel===a.team.channel}))?o(!0):(y[a.team.channel]={type:n.type,hash:r.hash},o(!1))}},s.INVITE_TO_TEAM=function(e,n,r){var o=t.find(r,["content","team","channel"]);delete y[o]},i.KICKED_FROM_TEAM=function(e,n,t,r){var o=t.msg.content;if(!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);y[o.teamChannel]&&o.pending?r(!0,y[o.teamChannel]):r(!1)},i.INVITE_TO_TEAM_ANSWER=function(e,n,r,o){var a=r.msg,i=a.content;if(!i.teamChannel)return console.log("Remove invalid notification"),void o(!0);var s,c,u=t.find(e,["store","proxy","teams"])||{};if(Object.keys(u).some((function(e){var n=u[e];if(n.channel===i.teamChannel)return s=e,c=n,!0})),s){if(i.team=c,!i.answer)try{e.store.modules.team.removeFromTeam(s,a.author,!0)}catch(e){console.error(e)}var f=i.user||i;n.sendMessage({type:"INVITE_TO_TEAM_ANSWERED",content:{user:f,team:c,answer:i.answer}},(function(){})),o(!0)}else o(!0)},i.TEAM_EDIT_RIGHTS=function(e,n,r,o){var a=r.msg.content;if(!a.teamData)return console.log("Remove invalid notification"),void o(!0);var i,s=t.find(e,["store","proxy","teams"])||{};if(Object.keys(s).some((function(e){if(s[e].channel===a.teamData.channel)return i=e,!0})),i)try{e.store.modules.team.changeMyRights(i,a.state,a.teamData,(function(e){e||console.error("Can't update team rights"),o(!0)}))}catch(e){console.error(e)}else o(!0)},i.OWNED_PAD_REMOVED=function(e,n,t,r){var o=t.msg.content;if(!o.channel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel;e.store.manager.findChannel(a).forEach((function(n){var t=e.store.manager.findFile(n.id);e.store.manager.delete({paths:t},(function(){e.updateDrive()}))})),r(!0)},i.MOVE_TODO=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)},i.SAFE_LINKS_DEFAULT=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)};var m={};i.FORM_RESPONSE=function(e,n,t,r){var o,a,i=t.msg,s=t.hash,c=i.content,u=c.channel;if(u)if(function(e,n){return(e.store.proxy.mutedChannels||[]).includes(n)}(e,u))r(!0);else if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(u).some((function(e){if(e.data&&(!a||e.data.href))return a=e.data.href||e.data.roHref,o=e.data.filename||e.data.title,!!e.data.href||void 0}))})),a){c.href=a,c.title=o;var f=m[u],l=f?f.data:void 0;m[u]={data:{type:n.type,hash:s}},r(!1,l)}else r(!0);else r(!0)},s.FORM_RESPONSE=function(e,n,t,r){var o=t.content.channel,a=m[o];a&&a.data&&a.data.hash===r&&delete m[o]};var g={};i.COMMENT_REPLY=function(e,n,r,o){var a=r.msg,i=r.hash,s=a.content;if(t.find(e.store.proxy,["settings","pad","disableNotif"]))o(!0);else{var c,u,f=s.channel;if(f)if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(f).some((function(e){if(e.data&&(!u||e.data.href))return u=e.data.href||e.data.roHref,c=e.data.filename||e.data.title,!!e.data.href||void 0}))})),u){s.href=u,s.title=c;var l=g[f],d=l?l.data:void 0;g[f]={data:{type:n.type,hash:i}},o(!1,d)}else o(!0);else o(!0)}},s.COMMENT_REPLY=function(e,n,t,r){var o=t.content.channel,a=g[o];a&&a.data&&a.data.hash===r&&delete g[o]};var E,b,O={};i.MENTION=function(e,n,t,r){var o=t.msg,a=t.hash,i=o.content;if(c(e,t))r(!0);else{var s=i.channel;if(s){var u,f;e.Store.getAllStores().some((function(e){return e.manager.findChannel(s).some((function(e){if(e.data&&(!f||e.data.href))return f=e.data.href||e.data.roHref,u=e.data.filename||e.data.title,!!e.data.href||void 0}))})),i.href=f,i.title=u;var l=O[s],d=l?l.data:void 0;O[s]={data:{type:n.type,hash:a}},r(!1,d)}else r(!0)}},s.MENTION=function(e,n,t,r){var o=t.content.channel,a=O[o];a&&a.data&&a.data.hash===r&&delete O[o]},i.BROADCAST_MAINTENANCE=function(e,n,t,r){var o=t.msg.uid;e.Store.onMaintenanceUpdate(o),r(!0)},i.BROADCAST_SURVEY=function(e,n,t,r){var o=t.msg,a=o.content,i=o.uid,s=E;E={type:n.type,hash:t.hash},e.Store.onSurveyUpdate(i),r(!a.url,s)},i.BROADCAST_CUSTOM=function(e,n,t,r){var o=t.msg.uid,a=b;b={uid:o,type:n.type,hash:t.hash},r(!1,a)},i.BROADCAST_DELETE=function(e,n,t,r){var o=t.msg.content.uid;if(b&&b.uid===o)return r(!0,b),void(b=void 0);r(!0)};var A,w,D={};return i.SF_DELETED=function(e,n,t,r){var o=t.msg.content,a=o.team,i=o.sfId;if(D[i])r(!0);else if(D[i]=1,a){var s=e.store.proxy.teams[a];o.teamName=s.metadata&&s.metadata.name,r(!1)}else r(!1)},s.SF_DELETED=function(e,n,t){var r=t.content.sfId;delete D[r]},i.NEW_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);a.isAdmin&&i.addUserTicket(a,o),i.addAdminTicket(a,o)},i.NOTIF_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);if(a.isAdmin)return t.find(e,["store","proxy","support",a.channel])?(i.updateUserTicket(a),A?void o(!1,A):(A={channel:a.channel,type:n.type,hash:r.hash},void o(!1))):void o(!0);i.checkAdminTicket(a,(s=>{s?(i.updateAdminTicket(a),t.find(e.store.proxy,["settings","general","disableSupportNotif"])?o(!0):w?o(!1,w):(w={channel:a.channel,type:n.type,hash:r.hash},o(!1))):o(!0)}))},s.NOTIF_TICKET=function(e,n,t){var r=t.content.channel;A&&A.channel===r&&(A=void 0),w&&w.channel===r&&(w=void 0)},i.ADD_MODERATOR=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,o)},i.MODERATOR_NEW_KEY=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,(function(){o(!0)}))},{add:function(e,n,r,o){if(r.msg){var a=t.find(e,["store","proxy","curvePublic"]),s=t.find(r,["msg","content","user","curvePublic"])||t.find(r,["msg","content","curvePublic"]);if(s&&r.msg.author!==s&&r.msg.author!==a)return console.error("blocked"),void o(null,null,!0);var c=r.msg.type;if(i[c])try{i[c](e,n,r,o)}catch(e){console.error(e),o()}else o()}else o(null,null,!0)},remove:function(e,n,t,r){if(t){var o=t.type;if(s[o])try{s[o](e,n,t,r)}catch(e){console.error(e)}}}}})(wn(),te(),Z(),M(),hn()))}(jn)),jn.exports}function Un(){return Ln||(Ln=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c)=>{var u={setCustomize:n=>{e=n.Broadcast}},f=["notifications","supportteam","broadcast"],l=[],d="000000000000000000000000000000000",h=function(e,n,t,r,o){e.emit("MESSAGE",{type:n,content:t},r?[r]:e.clients,o)},p=function(e,n,t,r){e.emit("VIEWED",{type:n,hash:t},r||e.clients)},v=function(e){var n=e.store&&e.store.proxy;if(n.curvePrivate&&n.curvePublic)return{curvePrivate:n.curvePrivate,curvePublic:n.curvePublic}},y=u.sendTo=function(e,t,r,a,i){a=a||{};var s=i||function(e){e&&e.error&&console.error(e.error)};if(c.Mailbox){var u=n.find(e,["store","anon_rpc"]);if(u){var f={encrypt:function(e){return e}},l=d,h={uid:n.uid(),type:t,content:r};if(!/^BROADCAST/.test(t)){var p=v(e);if(!p)return void s({error:"missing asymmetric encryption keys"});if(!a||!a.channel||!a.curvePublic)return void s({error:"no notification channel"});if(l=a.channel,f=c.Mailbox.createEncryptor(p),"object"==typeof r&&!r.user){var y=o.createData(e.store.proxy,!1);r.user=y}h={type:t,content:r}}var m=JSON.stringify(h),g=f.encrypt(m,a.curvePublic);if(a.viewed){var E=n.find(e,["store","proxy","teams",a.viewed]);if(E){var b=g.slice(0,64),O=n.find(E,["keys","mailbox","viewed"]);Array.isArray(O)&&O.push(b)}}u.send("WRITE_PRIVATE_MESSAGE",[l,g],(function(e){s(e?{error:e}:{hash:g.slice(0,64)})}))}else s({error:"anonymous rpc session not ready"})}else s({error:"chainpad-crypto is outdated and doesn't support mailboxes."})};u.sendToAnon=function(e,t,r,o,a){var i=c.Nacl,s=i.randomBytes(32),u=i.box.keyPair.fromSecretKey(new Uint8Array(s)),f=n.encodeBase64(u.secretKey),l=n.encodeBase64(u.publicKey);y({store:{anon_rpc:e,proxy:{curvePrivate:f,curvePublic:l}}},t,r,o,a)};var m=function(e,t,o,a){var s=t.type,c=t.hash;if(/^REMINDER\|/.test(c)){a(),delete e.boxes.reminders.content[c],p(e,s,c,e.clients.filter((function(e){return e!==o})));var u=c.slice(9).split("-")[0],f=n.find(e,["store","proxy","hideReminders",u]);if(!f){var l=e.store.proxy.hideReminders=e.store.proxy.hideReminders||{};f=l[u]=l[u]||[]}var d=c.split("-")[1];d&&!f.includes(d)&&f.push(Number(d))}else{var h=e.boxes[s];if(h){var v,y,m=h.data||{},g=h.history.indexOf(c);-1!==g&&(0===g?(m.lastKnownHash=c,h.history.shift()):-1===m.viewed.indexOf(c)&&m.viewed.push(c));var E=[];h.history.some((function(e,n){if(-1===m.viewed.indexOf(e))return!0;v=n+1,E.push(e),y=e})),m.viewed=m.viewed.filter((function(e){return-1===E.indexOf(e)})),v&&(h.history=h.history.slice(v),m.lastKnownHash=y),Object.keys(h.content).forEach((function(n){-1!==h.history.indexOf(n)&&-1===m.viewed.indexOf(n)||(i.remove(e,h,h.content[n],n),delete h.content[n])})),r.whenRealtimeSyncs(e.store.realtime,(function(){a(),p(e,s,c,e.clients.filter((function(e){return e!==o})))}))}else a({error:"NOT_LOADED"})}},g=function(e,n,t,r,u){u=u||{};var f=e.boxes[n]={channel:t.channel,type:n,queue:[],history:[],content:{},sendMessage:function(n){if("object"==typeof n&&!n.user){var t=o.createData(e.store.proxy,!1);n.user=t}try{n=JSON.stringify(n)}catch(e){console.error(e)}f.queue.push(n)},data:t};if(c.Mailbox){var l=t.keys||v(e);if(l||t.decrypted){var d=t.decrypted?{encrypt:function(e){return e},decrypt:function(e){return e}}:c.Mailbox.createEncryptor(l);f.encryptor=d;var y,g={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:d,owners:"broadcast"===n?[]:u.owners||[e.store.proxy.edPublic],lastKnownHash:t.lastKnownHash};g.onConnectionChange=function(){},g.onConnect=function(t,r){f.sendMessage=function(t,o){var a;o=o||function(){};try{a=JSON.stringify(t)}catch(e){console.error(e)}r(a,(function(r,a){r?console.error(r):(f.history.push(a),t.ctime=+new Date,f.content[a]=t,h(e,n,{msg:t,hash:a}),o(a))}),l.curvePublic)},f.queue.forEach((function(e){f.sendMessage(e)})),f.queue=[]},f.onMessage=g.onMessage=function(r,o,s,c,l,d,p){if(l!==t.lastKnownHash&&l!==y){var v=p&&p.time;y=l;try{r=JSON.parse(r)}catch(e){console.error(e)}if(d&&(r.author=d),f.history.push(l),function(e,n){return-1===(n.viewed||[]).indexOf(e)&&e!==n.lastKnownHash}(l,t)){var g={msg:r,hash:l,time:v},E=f.ready;i.add(e,f,g,(function(t,o,i){o&&m(e,o,"",(function(){console.log("Notification handled automatically")})),i||t?m(e,{type:n,hash:l},"",(function(){console.log("Notification handled automatically")})):(r.ctime=v||0,f.content[l]=r,u.dump||h(e,n,g,null,(function(e){e&&e.msg&&E&&a.system(void 0,e.msg)})))}))}else if(0===Object.keys(f.content).length){t.lastKnownHash=l,f.history=[];var b=t.viewed.indexOf(l);-1!==b&&t.viewed.splice(b,1)}}},g.onReady=function(){var o=[];t.viewed.forEach((function(e,n){-1===f.history.indexOf(e)&&o.push(n)}));for(var a=o.length-1;a>=0;a--)t.viewed.splice(o[a],1);var s=function(t){i.remove(e,f,f.content[t],t),delete f.content[t],p(e,n,t)};e.store.proxy.on("change",["mailboxes",n],(function(e,n,t){var r;"lastKnownHash"===t[2]&&(f.history.some((function(e,t){if(r=t+1,s(e),e===n)return!0})),f.history=f.history.slice(r));"viewed"===t[2]&&s(n)})),f.ready=!0,r(f.content)},f.cpNf=s.start(g)}else console.error("missing asymmetric encryption keys")}else console.error("chainpad-crypto is outdated and doesn't support mailboxes.")};return u.init=function(r,o,s){var c={},u=r.store,v=u.proxy.mailboxes=u.proxy.mailboxes||{},E={Store:r.Store,store:u,pinPads:r.pinPads,updateMetadata:r.updateMetadata,updateDrive:r.updateDrive,mailboxes:v,emit:s,clients:[],boxes:{},req:{},loggedIn:u.loggedIn&&u.proxy.edPublic};return function(n,r){!r.notifications&&n.loggedIn&&(r.notifications={channel:t.createChannelId(),lastKnownHash:"",viewed:[]},n.pinPads([r.notifications.channel],(function(e){e.error&&console.error(e)}))),r.support&&delete r.support,r.broadcast||(r.broadcast={channel:d,lastKnownHash:e.lastBroadcastHash,decrypted:!0,viewed:[]})}(E,v),E.loggedIn&&function(e){var t=e.store.network;t.on("message",(function(r,o){if(o===t.historyKeeper){var a=JSON.parse(r);if(/HISTORY_RANGE/.test(a[0])){var i=a[1],s=e.req[i];if(s){var c=a[0],u=a[2],f=s.box;if("HISTORY_RANGE"===c){if(!Array.isArray(u))return;var l;if("broadcast"===s.box.type)l=n.tryParse(u[4]);else try{var d=f.encryptor.decrypt(u[4]);(l=JSON.parse(d.content)).author=d.author}catch(e){console.log(e)}var h=u[4].slice(0,64);e.emit("HISTORY",{txid:i,time:u[5],message:l,hash:h},[s.cId])}else"HISTORY_RANGE_END"===c&&(e.emit("HISTORY",{txid:i,complete:!0},[s.cId]),delete e.req[i])}}}}))}(E),E.boxes.reminders={content:{}},Object.keys(v).forEach((function(e){if(-1!==f.indexOf(e)){var n=v[e];-1===l.indexOf(e)?g(E,e,n,(function(){})):g(E,e,n,o((function(){})))}})),E.loggedIn&&Object.keys(u.proxy.teams||{}).forEach((function(e){var t=u.proxy.teams[e];if(t){var r=t.keys.mailbox||{};if(r.channel){var o={owners:[n.find(t,["keys","drive","edPublic"])]};g(E,"team-"+e,r,(function(){}),o)}}})),c.post=function(e,n,t){var r=E.boxes[e];r&&r.sendMessage({type:n,content:t,sender:u.proxy.curvePublic})},c.hideMessage=function(e,n){p(E,e,n.hash,E.clients)},c.showMessage=function(e,n,t,r){"reminders"===e&&n&&(E.boxes.reminders.content[n.hash]=n.msg,E.clients.length||(E.boxes.reminders.content[n.hash].requiresNotif=!0),p(E,e,n.hash,E.clients)),h(E,e,n,t,(function(e){a.system(void 0,e.msg),r&&r()}))},c.open=function(e,n,t,r,o){(-1!==f.indexOf(e)||r)&&g(E,e,n,t,o)},c.close=function(e,n){!function(e,n,t){t=t||function(){};var r=e.boxes[n];r?r.cpNf&&"function"==typeof r.cpNf.stop?(r.cpNf.stop(),Object.keys(r.content).forEach((function(t){i.remove(e,r,r.content[t],t),p(e,n,t,e.clients)})),delete e.boxes[n]):t("EINVAL"):t()}(E,e,n)},c.dismiss=function(e,n){m(E,e,"",n)},c.sendTo=function(e,n,t,r){E.loggedIn?y(E,e,n,t,r):r({error:"NOT_LOGGED_IN"})},c.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);e.clients.splice(t,1)}(E,e)},c.execCommand=function(e,n,t){var r=n.cmd,o=n.data;"SUBSCRIBE"!==r?"DISMISS"!==r?"SENDTO"!==r?"LOAD_HISTORY"!==r||function(e,n,t,r){var o=e.boxes[t.type];if(o){var a=["GET_HISTORY_RANGE",o.channel,{from:t.lastKnownHash,count:t.count,txid:t.txid}];"broadcast"===t.type&&(a=["GET_HISTORY_RANGE",o.channel,{to:t.lastKnownHash,txid:t.txid}]),e.req[t.txid]={cId:n,box:o};var i=e.store.network;i.sendto(i.historyKeeper,JSON.stringify(a)).then((function(){}),(function(e){console.error(e)}))}else r({error:"ENOENT"})}(E,e,o,t):y(E,o.type,o.msg,o.user,t):m(E,o,e,t):function(e,n,t,r){Object.keys(e.boxes).forEach((function(n){Object.keys(e.boxes[n].content).forEach((function(r){var o={msg:e.boxes[n].content[r],hash:r};h(e,n,o,t,(function(e){e.error||o.msg&&o.msg.requiresNotif&&(a.system(void 0,e.msg),delete o.msg.requiresNotif)}))}))})),-1===e.clients.indexOf(t)&&e.clients.push(t),r()}(E,0,e,t)},c},u};e.exports&&(e.exports=n(void 0,Z(),te(),je(),wn(),(Pn||(Pn=1,function(e){(()=>{const n=(e={})=>{let n=globalThis;var t={};e.requireConf=e.requireConf||{},t.setCustomize=n=>{e=n.ApiConfig};var r=n.location&&n.location.pathname.slice(1,-1),o=-1!==["code","slide","pad","kanban","whiteboard","diagram","sheet","poll","teams","form","doc","presentation"].indexOf(r)?"-"+r:"",a="/customize/favicon/main-favicon"+o+".png?"+e.requireConf.urlArgs,i="/customize/favicon/alt-favicon"+o+".png?"+e.requireConf.urlArgs,s="/customize/favicon/main-favicon"+o+".ico?"+e.requireConf.urlArgs,c="/customize/favicon/alt-favicon"+o+".ico?"+e.requireConf.urlArgs,u=n.document,f=t.isSupported=function(){return"function"==typeof n.Notification&&n.isSecureContext},l=t.hasPermission=function(){return"granted"===Notification.permission},d=t.getPermission=function(e){e=e||function(){},Notification&&"function"==typeof Notification.requestPermission?Notification.requestPermission((function(n){e("granted"===n)})):e(!1)},h=t.create=function(e,t,r){u&&!r?r=u.getElementById("favicon").getAttribute("data-main-favicon")||i:r||(r=i);var o=new Notification(t,{icon:r,body:e});return o.onclick=function(){if(u)try{parent.focus(),n.focus(),this.close()}catch(e){}},o};return t.system=function(e,n,t){if(f())return l()?h(e,n,t):void("denied"!==Notification.permission&&d((function(r){r&&h(e,n,t)})))},u&&!u.getElementById("favicon")&&function(){if(u){console.debug("creating favicon");var e={id:"favicon",type:"image/png",rel:"icon","data-main-favicon":a,"data-alt-favicon":i,href:a};if(!u.getElementById("favicon")){var n=u.createElement("link");Object.keys(e).forEach((function(t){n.setAttribute(t,e[t])})),u.head.appendChild(n)}if(!u.getElementById("favicon-ico")){var t=u.createElement("link");e.href=e.href.replace(/\.png/g,".ico"),e.id="favicon-ico",e.type="image/x-icon",Object.keys(e).forEach((function(n){t.setAttribute(n,e[n])})),u.head.appendChild(t)}}else console.error("document is not available in this context")}(),t.tab=function(e,r){if(u){var o="_pendingTabNotification",f=u.getElementById("favicon"),l=u.getElementById("favicon-ico"),d=a,h=i,p=s,v=c;f&&(d=f.getAttribute("data-main-favicon")||a,h=f.getAttribute("data-alt-favicon")||i,f.setAttribute("href",d)),l&&(p=l.getAttribute("data-main-favicon")||s,v=l.getAttribute("data-alt-favicon")||c,l.setAttribute("href",p));var y=function(e){return!!t[o]&&(n.clearInterval(t[o]),f&&f.setAttribute("href",e?h:d),l&&l.setAttribute("href",e?v:p),!0)};y();var m=function(){f&&f.setAttribute("href",f.getAttribute("href")===d?h:d),l&&l.setAttribute("href",l.getAttribute("href")===p?v:p),--r};return t[o]=n.setInterval((function(){if(r>0)return m();y(!0)}),e),m(),{cancel:y}}console.error("document is not available in this context")},t};e.exports&&(e.exports=n(void 0))})()}(Mn)),Mn.exports),Kn(),y(),M()))})()}(kn)),kn.exports}function Bn(){return Hn||(Hn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c,u)=>{let f=function(f,l,d,h){var p=f.version||0;c((function(){})).nThen((function(){var n,t,r,o,a;p<2&&(n="cryptpad.userlist-drawer",t="cryptpad.hide_poll_text",r="cryptpad.indentUnit",o="cryptpad.indentWithTabs",a=f.settings=f.settings||{},void 0!==f[r]&&(a.codemirror=a.codemirror||{},a.codemirror.indentUnit=f[r],delete f[r]),void 0!==f[o]&&(a.codemirror=a.codemirror||{},a.codemirror.indentWithTabs=f[o],delete f[o]),void 0!==f[n]&&(a.toolbar=a.toolbar||{},a.toolbar["userlist-drawer"]=f[n],delete f[n]),void 0!==f[t]&&(a.poll=a.poll||{},a.poll["hide-text"]=f[t],delete f[t]),e.send("Migrate-2",!0),f.version=p=2)})).nThen((function(){p<3&&(!function(){if(localStorage.CRYPTPAD_LANG){var e=localStorage.CRYPTPAD_LANG;f.settings.language=e}}(),e.send("Migrate-3",!0),f.version=p=3)})).nThen((function(){var n;p<4&&(n=f.settings=f.settings||{},void 0!==f.allowUserFeedback&&(n.general=n.general||{},n.general.allowUserFeedback=f.allowUserFeedback,delete f.allowUserFeedback),e.send("Migrate-4",!0),f.version=p=4)})).nThen((function(){p<5&&(!function(){var e=f.drive&&f.drive.filesData;if(e)for(var n in e)"number"!=typeof e[n].ctime&&(e[n].ctime=+new Date(e[n].ctime)),"number"!=typeof e[n].atime&&(e[n].atime=+new Date(e[n].atime))}(),e.send("Migrate-5",!0),f.version=p=5)})).nThen((function(t){var r,o,a,i,s;p<6&&(a=f.drive.filesData||{},i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if(r=a[e],o=n.parsePadUrl(r.href),r.href&&!r.channel){var i=n.getSecrets(o.type,o.hash,r.password);r.channel=i.channel,d(6,Math.round(100*t/s)),console.log("Adding missing channel in filesData ",r.channel)}})))}))})),i.nThen(t((function(){e.send("Migrate-6",!0),f.version=p=6}))))})).nThen((function(t){var r,o,a,i,s;p<7&&(a=f.drive.filesData,i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if((r=a[e]).href)if(-1!==r.href.indexOf("#"))if("pad"===(o=n.parsePadUrl(r.href)).hashData.type){if("view"===o.hashData.mode)r.roHref=r.href,delete r.href,console.log("Move href to roHref in filesData ",r.roHref);else{var i=n.getSecrets(o.type,o.hash,r.password),c=n.getViewHashFromKeys(i);c&&(r.roHref="/"+o.type+"/#"+c,console.log("Adding missing roHref in filesData ",r.href))}d(6,Math.round(100*t/s))}else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s))})))}))})),i.nThen(t((function(){e.send("Migrate-7",!0),f.version=p=7}))))})).nThen((function(){p<8&&(f.FS_hashes=t.deduplicateString(f.FS_hashes||[]),e.send("Migrate-8",!0),f.version=p=8)})).nThen((function(){p<9&&(!function(){var e=h.network,n={},t={store:h},o=r.createData(f),i=function(e){var t=n[e];if(t){try{t.wc.leave()}catch(e){}delete n[e]}};e.on("message",(function(r,s){try{!function(r,s){if(s===e.historyKeeper){var c=JSON.parse(r);if(!c.validateKey&&!c.owners||!c.channel){if(c.channel&&n[c.channel]){if(c.error&&"EINVAL"===c.error){var u=["GET_HISTORY",c.channel,{}];return void e.sendto(e.historyKeeper,JSON.stringify(u)).then((function(){}),(function(){}))}if(c.state&&1===c.state){o.channel=c.channel;var f=["UPDATE",o.curvePublic,+new Date,o],l=n[c.channel].encrypt(JSON.stringify(f));return n[c.channel].wc.bcast(l).then((function(){}),(function(e){console.error("Can't migrate this friend",n[c.channel].friend,e)})),void i(c.channel)}}else if(c.channel)return;var d=c[3];if(d&&n[d]){var h=n[d],p=h.decrypt(c[4]),v=JSON.parse(p);if("UPDATE"===v[0]){if(v[1]===o.curvePublic)return;var y=v[3];if(!y.notifications)return;h.friend.notifications=y.notifications,o.channel=d,a.sendTo(t,"UPDATE_DATA",o,{channel:y.notifications,curvePublic:y.curvePublic},(function(e){e&&e.error?console.error(e):console.log("friend migrated",h.friend)})),i(d)}}}}}(r,s)}catch(e){console.error(e)}}));var s=f.friends||{};Object.keys(s).forEach((function(t){if(44===t.length){var r=s[t];r.notifications||e.join(r.channel).then((function(t){var o=u.Curve.deriveKeys(r.curvePublic,f.curvePrivate),a=u.Curve.createEncryptor(o);n[r.channel]={wc:t,friend:r,decrypt:a.decrypt,encrypt:a.encrypt};var i={lastKnownHash:r.lastKnownHash},s=["GET_HISTORY",r.channel,i];e.sendto(e.historyKeeper,JSON.stringify(s)).then((function(){}),(function(e){console.error("Can't migrate this friend",r,e)}))}),(function(e){console.error("Can't migrate this friend",r,e)}))}}))}(),e.send("Migrate-9",!0),f.version=p=9)})).nThen((function(t){p<10&&function(){var s=h.proxy.todo;if(s){var u,l=t((function(){e.send("Migrate-10",!0),f.version=p=10})),d={network:h.network,initialState:"{}",metadata:{owners:h.proxy.edPublic?[h.proxy.edPublic]:[]}};c((function(e){o.get(s,e((function(n,t){if(n||!t)return e.abort(),void l();try{u=JSON.parse(t)}catch(e){}})),d)})).nThen((function(e){if(!u||"object"!=typeof u)return e.abort(),void l();var t={content:{data:{1:{id:"1",color:"color6",item:[],title:i.kanban_todo},2:{id:"2",color:"color3",item:[],title:i.kanban_working},3:{id:"3",color:"color5",item:[],title:i.kanban_done}},items:{},list:[1,2,3]},metadata:{title:i.type.todo,defaultTitle:i.type.todo,type:"kanban"}},c=4,p=!1;if((u.order||[]).forEach((function(e){var n=u.data[e];if(n&&n.task){p=!0;var r=n.state?"3":"1";t.content.data[r].item.push(c),t.content.items[c]={id:c,title:n.task},c++}})),!p)return e.abort(),void l();var v=n.createRandomHash("kanban"),y=n.getSecrets("kanban",v),m=n.getSecrets("todo",s);o.put(v,JSON.stringify(t),e((function(t){if(t)return e.abort(),void l();h.rpc&&(h.rpc.pin([y.channel],(function(){})),h.rpc.unpin([m.channel],(function(){})));var o=n.hashToHref(v,"kanban");h.manager.addPad(["root"],{title:i.type.todo,owners:d.metadata.owners,channel:y.channel,href:o,roHref:n.hashToHref(n.getViewHashFromKeys(y),"kanban"),atime:+new Date,ctime:+new Date},e((function(e){if(e)console.error(e);else{delete h.proxy.todo;var n=r.createData(f),t={store:h};a.sendTo(t,"MOVE_TODO",{user:n,href:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)}))}})))})),d)})).nThen((function(){l()}))}}()})).nThen((function(n){if(!(p>=11)){var o=function(){e.send("Migrate-11",!0),f.version=p=11};if(void 0===t.find(f,["settings","security","unsafeLinks"])){var i={store:h},s=r.createData(f);s.curvePublic?a.sendTo(i,"SAFE_LINKS_DEFAULT",{user:s},{channel:s.notifications,curvePublic:s.curvePublic},n((function(e){e&&e.error?console.error(e):o()}))):o()}else o()}})).nThen((function(){s.whenRealtimeSyncs(h.realtime,t.mkAsync(t.bake(l)))}))};return f.setCustomize=e=>{i=e.Messages},f};e.exports&&(e.exports=n(Ae(),te(),Z(),wn(),Rn(),Un(),void 0,je(),qe(),M()))})()}(On)),On.exports}var Vn,Yn={exports:{}};function Gn(){return Vn||(Vn=1,function(e){var n,t,r;e.exports&&(e.exports=(n=Rn(),t=Ue(),te(),r=je(),{anonDriveIntoUser:function(e,o,a){o&&e.loggedIn||"function"!=typeof a?n.get(o,(function(n,i){var s;if(n)console.error("Cannot migrate recent pads",n);else if(i){try{s=JSON.parse(i)}catch(e){return"function"==typeof a&&a(),void console.error("Cannot parsed recent pads",e)}if(s){var c=e.proxy,u=t.init(s.drive,{readOnly:!1,loggedIn:!0,outer:!0}),f=function(){u.fixFiles(!0);var n=e.manager;u.getFiles([u.FILES_DATA]).forEach((function(e){var t=u.getFileData(e),r=t.channel,o=n.findChannel(r);if(0===o.length)t&&n.addPad(null,t,(function(e){e&&console.error("Cannot import file:",t,e)}));else{if(!t.href)return;o.forEach((function(e){e.data&&!e.data.href&&e.userObject.setHref(r,null,t.href)}))}})),c.FS_hashes&&Array.isArray(c.FS_hashes)||(c.FS_hashes=[]),-1===c.FS_hashes.indexOf(o)&&c.FS_hashes.push(o),"function"==typeof a&&r.whenRealtimeSyncs(e.realtime,a)};u&&"function"==typeof u.migrate?u.migrate(f):(console.log("oldFo.migrate is not a function"),f())}else"function"==typeof a&&a()}else"function"==typeof a&&a()})):a()}}))}(Yn)),Yn.exports}var Jn=o(be);const qn=ie.mkEvent(!0),Wn=ie.mkEvent(!0),zn=ie.mkEvent(),Qn=ie.mkEvent(),Zn={init:e=>{var n;const{broadcast:t,store:r,account:o}=e,a=r.drive=r.drive||{};let i=null===(n=r.proxy)||void 0===n?void 0:n.drive;if((null==i?void 0:i.hash)||ae.createRandomHash("drive"),!i.hash)return a.proxy=i,o.onAccountCacheReady((()=>{qn.fire()})),o.onAccountReady((()=>{Wn.fire()})),{channel:"",onDriveCacheReady:qn.reg,onDriveReady:Wn.reg,onDisconnect:zn.reg,onReconnect:Qn.reg};throw new Error("NOT IMPLEMENTED")}};var Xn,$n=o(Object.freeze({__proto__:null,Drive:Zn})),et={exports:{}};function nt(){return Xn||(Xn=1,function(e){(()=>{const n=(e,n,t={},r={},o)=>{var a={setCustomize:e=>{t=e.Messages,r=e.AppConfig}},i=r.degradedLimit||8,s=function(e,n){n.degraded||n.clients.forEach((function(t){var r=e.clients[t];if(r){var o={id:r.id,cursor:r.cursor};n.sendMsg(JSON.stringify(o))}}))},c=function(e,n,t){var r=n.members;t.degraded=r.length-1>=i,e.emit("DEGRADED",{degraded:t.degraded},t.clients)},u=function(e,n,t,r){var a=n.channel,i=n.secret;i.keys.cryptKey&&(i.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=(e={},n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:n=>{e=n.ApiConfig}},d=s.Nacl,h=function(e,n,t,r){let o=Object.keys(e.clients).filter((t=>Boolean(e.clients[t].admin)===n));o.length&&e.emit(t,{channel:r},[o])},p=function(t,r,o,a){var i=n.mkAsync(a);if(r&&!t.adminRdyEvt)return void i("EFORBIDDEN");let s=e.httpUnsafeOrigin;n.fetchApi(s,"config",!0,(e=>{t.moderatorKeys=e.moderatorKeys,t.adminKeys=e.adminKeys;var a=e.supportMailboxKey;if(a){if(!r||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePublic"])===a)return r?t.adminRdyEvt.reg((()=>{i(null,{supportKey:a,myCurve:o.adminCurvePrivate||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePrivate"]),theirPublic:o.curvePublic,notifKey:o.curvePublic})})):void i(null,{supportKey:a,myCurve:t.store.proxy.curvePrivate,theirPublic:o.curvePublic||a,notifKey:a});i("EFORBIDDEN")}else i("E_NOT_INIT")}))},v=function(e,t,r,o){var a,c,u=n.once(n.mkAsync(o));i((n=>{p(e,r,t,n(((e,t)=>{if(e)return n.abort(),void u({error:e});a=t.theirPublic,c=t.myCurve})))})).nThen((()=>{var r,o=s.Curve.deriveKeys(a,c),i=s.Curve.createEncryptor(o),l={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:i,owners:[]},d=[];u=n.both((function(){r&&"function"==typeof r.stop&&r.stop()}),u),l.onMessage=function(e,n,t,r,o,a,i){var s=i&&i.time;try{e=JSON.parse(e)}catch(e){return void console.error(e)}e.time=s,a&&(e.author=a),d.push(e)},l.onError=u,l.onChannelError=u,l.onReady=function(){u(null,d)},r=f.start(l)}))},y=function(e,r,o,a){var c=n.find(e,["store","mailbox"]),u=n.find(e,["store","anon_rpc"]);if(c)if(u){var f,l,d,h=r.channel,v=r.title,y=r.ticket,m=+new Date;i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a({error:e});f=t.supportKey,l=t.theirPublic,d=t.myCurve})))})).nThen((e=>{var n=s.Curve.deriveKeys(l,d),t=s.Curve.createEncryptor(n),r=JSON.stringify(y),o=t.encrypt(r);u.send("WRITE_PRIVATE_MESSAGE",[h,o],e(((n,t)=>{if(n)return e.abort(),void a({error:n});m=t&&t[0]})))})).nThen((n=>{if(o){var t=e.adminDoc.proxy.tickets.active;if(t[h])return n.abort(),void a({error:"EEXISTS"});t[h]={title:y.title,restored:y.legacy,premium:!1,time:m,author:r.name,supportKey:f,lastAdmin:!0,authorKey:r.curvePublic,notifications:r.notifications}}})).nThen((n=>{o||(e.supportData[h]={time:+new Date,title:v,curvePublic:f},e.Store.onSync(null,n()))})).nThen((()=>{var i=o?r.notifications:t.getChannelIdFromKey(f);c.sendTo("NEW_TICKET",{title:v,channel:h,time:m,isAdmin:o,supportKey:f,premium:o?"":n.find(e,["store","account","plan"]),user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(n=>{console.error(n),n&&n.error&&delete e.supportData[h],a(n)})),c.sendTo("NOTIF_TICKET",{title:v,channel:h,time:m,isAdmin:o,isNewTicket:!0,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(()=>{}))}))}else a({error:"anonymous rpc session not ready"});else a({error:"E_NOT_READY"})},m=function(e,r,o,a){var c,u,f,l,d=n.find(e,["store","mailbox"]),h=n.find(e,["store","anon_rpc"]);d?h?r?.ticket?i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a(e);c=t.theirPublic,u=t.myCurve,f=t.notifKey})))})).nThen((e=>{var n=s.Curve.deriveKeys(c,u),t=s.Curve.createEncryptor(n),o=JSON.stringify(r.ticket),i=t.encrypt(o);h.send("WRITE_PRIVATE_MESSAGE",[r.channel,i],e(((n,t)=>{if(n)return e.abort(),void a(n);l=t&&t[0],a(void 0,l)})))})).nThen((()=>{var e=o?r.notifChannel:t.getChannelIdFromKey(f);e&&d.sendTo("NOTIF_TICKET",{isAdmin:o,title:r.ticket.title,isClose:r.ticket.close,channel:r.channel,time:l,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:e,curvePublic:f},(()=>{}))})):a("E_NO_DATA"):a("anonymous rpc session not ready"):a("E_NOT_READY")},g=function(e,r,o){var a=t.getSecrets("support",r),i={data:{},channel:a.channel,crypto:s.createEncryptor(a.keys),userName:"support",ChainPad:u,classic:!0,network:e.store.network,metadata:{validateKey:a.keys.validateKey||void 0}},f=e.adminDoc=c.create(i);f.proxy.on("ready",(function(){var r=f.proxy;if(r.tickets=r.tickets||{},r.tickets.active=r.tickets.active||{},r.tickets.closed=r.tickets.closed||{},r.tickets.pending=r.tickets.pending||{},e.adminRdyEvt.fire(),o(),!e.supportRpc)return;let a=function(e){if(!e.adminDoc||!e.supportRpc)return;let t=e.adminDoc.metadata&&e.adminDoc.metadata.channel,r=e.adminDoc.proxy.tickets,o=[t,...Object.keys(r.active),...Object.keys(r.pending),...Object.keys(r.closed)];return n.deduplicateString(o).sort()}(e),i=t.hashChannelList(a);e.supportRpc.getServerHash((function(n,t){n?console.warn(n):t!==i&&e.supportRpc.reset(a,(function(e){e&&console.warn(e)}))}))})),f.proxy.on("change",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")})),f.proxy.on("remove",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")}))},E=function(e,r,a){let s=a(),c=e.store.proxy,u=n.find(c,["mailboxes","supportteam","keys","curvePublic"]),f=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]);r||(e.adminRdyEvt=n.mkEvent(!0)),i((n=>{p(e,!1,{},n(((t,r)=>{if(setTimeout(s),t)n.abort();else if(r.theirPublic!==u){try{delete c.mailboxes.supportteam,e.store.mailbox.close("supportteam")}catch(e){}return delete e.adminRdyEvt,void n.abort()}})))})).nThen((t=>{!function(e,t){let r,a,i=n.mkAsync(t),s=e.store.proxy,c=n.find(s,["mailboxes","supportteam","keys","curvePrivate"]);if(c){try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(c));r=n.encodeBase64(e.secretKey),a=n.encodeBase64(e.publicKey)}catch(e){return void i(e)}o.create(e.store.network,{edPublic:a,edPrivate:r},((n,t)=>{n?i(n):(console.log("Support RPC ready, public key is ",a),e.supportRpc=t,i())}))}else i("EFORBIDDEN")}(e,t((e=>{e&&console.error("Support RPC not ready",e)})))})).nThen((n=>{let r=f.slice(0,24),o=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:r}});g(e,o,n())})).nThen((()=>{console.log("Support admin loaded")}))};var b=function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);i?e.store.mailbox.open("supportadmin",i,(function(t){e.store.mailbox.close("supportadmin",(function(){}));let r=n.clone(t||{}),a=[];Object.keys(r).forEach((n=>{let t=r[n];if("CLOSE"===t.type)return void(a.includes(t.content.id)||a.push(t.content.id));let o=t.author,i=t.content&&t.content.title;((e,n,t)=>{let r=e.adminDoc.proxy;return["active","pending","closed"].some((e=>{let o=r.tickets[e];return Object.keys(o).some((e=>{let r=o[e];return r.authorKey===n&&r.title===t&&r.restored}))}))})(e,o,i)&&(a.includes(t.content.id)||a.push(t.content.id))})),Object.keys(r).forEach((e=>{let n=r[e];n.content&&a.includes(n.content.id)&&delete r[e]})),o(r)}),!0,{dump:!0}):o({error:"ENOENT"})};let O=(e,t,r,o)=>{let a;try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(r));a=n.encodeBase64(e.publicKey)}catch(e){return void o(e)}e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",[t,a]]},o)},A=(e,n,t,r)=>{e.Store.adminRpc(null,{cmd:"GET_MODERATORS",data:{}},r)};return l.init=function(o,s,c){var u={};if(o.store&&o.store.modules&&o.store.modules.support)return o.store.modules.support;var f=o.store,l=f.proxy.support=f.proxy.support||{},g={moderatorKeys:e.moderatorKeys,adminKeys:e.adminKeys,supportData:l,store:o.store,Store:o.Store,emit:c,clients:{}};return n.find(f,["proxy","mailboxes","supportteam"])&&E(g,!1,s),u.ctx=g,u.removeClient=function(e){delete g.clients[e]},u.leavePad=function(){},u.addAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let o;i((r=>{p(e,!0,n,r(((e,n)=>{if(e)return r.abort(),void t(!0);o=n.supportKey})))})).nThen((()=>{var a=Math.floor(2e3*Math.random());setTimeout((()=>{var a=e.adminDoc.proxy;a.tickets.active[n.channel]||a.tickets.closed[n.channel]||a.tickets.pending[n.channel]?t(!0):(a.tickets.active[n.channel]={title:n.title,premium:n.premium,time:n.time,author:n.user&&n.user.displayName,supportKey:n.supportKey||o,authorKey:n.user&&n.user.curvePublic},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){t(!0)})),h(e,!0,"NEW_TICKET",n.channel),e.supportRpc&&e.supportRpc.pin([n.channel],(()=>{})))}),a)}))})):t(!0)}(g,e,n)},u.updateAdminTicket=function(e){!function(e,n){e.adminRdyEvt&&e.adminRdyEvt.reg((()=>{var t=Math.floor(2e3*Math.random());setTimeout((()=>{var t=e.adminDoc.proxy;let r=t.tickets.active[n.channel]||t.tickets.pending[n.channel];r&&(n.time<=r.time||(n.isClose&&(t.tickets.closed[n.channel]=r,delete t.tickets.active[n.channel],delete t.tickets.pending[n.channel]),r.time=n.time,r.lastAdmin=!1,h(e,!0,"UPDATE_TICKET",n.channel)))}),t)}))}(g,e)},u.updateAdminKey=function(e,r){((e,r,o)=>{let a=r.supportKey,s=t.getBoxPublicFromSecret(a),c=e.store.proxy;const u=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]),f=n.find(c,["mailboxes","supportteam","keys","curvePublic"]);p(e,!1,{},((t,r)=>{if(t)return void o(!0);if(s!==r.theirPublic)return void o(!0);if(u===a||f===s)return void o(!0);let c=n.find(e,["store","mailbox"]);try{e.adminDoc&&e.adminDoc.stop(),c&&c.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)}catch(e){console.error(e)}e.Store.addAdminMailbox(null,{version:2,priv:a},(n=>{n&&n.error?o(!0):i((n=>{E(e,!0,n),e.adminRdyEvt.reg((()=>{h(e,!0,"UPDATE_RIGHTS"),o(!1)}))}))}))}))})(g,e,r)},u.checkAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy,o=r.tickets.active[n.channel]||r.tickets.pending[n.channel];t(o)})):t(!0)}(g,e,n)},u.addUserTicket=function(e,n){!function(e,n,t){if(!e.supportData)return void t(!0);let r=n.channel;e.supportData[r]={time:n.time,title:n.title,curvePublic:n.supportKey},e.Store.onSync(null,(function(){t(!0)}))}(g,e,n)},u.updateUserTicket=function(e){!function(e,n){if(h(e,!1,"UPDATE_TICKET",n.channel),n.isClose){let t=e.supportData[n.channel];if(!t)return;t.closed=!0}}(g,e)},u.execCommand=function(e,o,s){var c=o.cmd,u=o.data;"MAKE_TICKET"!==c?"GET_MY_TICKETS"!==c?"REPLY_TICKET"!==c?"CLOSE_TICKET"!==c?"DELETE_TICKET"!==c?"MAKE_TICKET_ADMIN"!==c?"LIST_TICKETS_ADMIN"!==c?"LOAD_TICKET_ADMIN"!==c?"REPLY_TICKET_ADMIN"!==c?"CLOSE_TICKET_ADMIN"!==c?"MOVE_TICKET_ADMIN"!==c?"GET_RECORDED"!==c?"SET_RECORDED"!==c?"USE_RECORDED"!==c?"SEARCH_ADMIN"!==c?"FILTER_TAGS_ADMIN"!==c?"SET_TAGS_ADMIN"!==c?"GET_LEGACY"!==c?"DUMP_LEGACY"!==c?"CLEAR_LEGACY"!==c?"RESTORE_LEGACY"!==c?"GET_PRIVATE_KEY"!==c?"DISABLE_SUPPORT"!==c?"ROTATE_KEYS"!==c?"ADD_MODERATOR"!==c?s({error:"NOT_SUPPORTED"}):function(e,t,r,o){let a=e.store.proxy;var i=n.find(e,["store","mailbox"]);let s=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),c=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]),u=n.find(a,["mailboxes","supportteam","lastKnownHash"]),f=a.edPublic;p(e,!1,{},((n,r)=>{n?o({error:n}):r.theirPublic===s&&e.moderatorKeys.includes(f)?i.sendTo("ADD_MODERATOR",{supportKey:c,lastKnownHash:u},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{o()})):o({error:"EFORBIDDEN"})}))}(g,u,0,s):function(e,r,o,s){let c,u=n.once(n.mkAsync(s)),f=e.store.proxy,l=f.edPublic;const h=d.box.keyPair(),v=n.encodeBase64(h.publicKey),y=n.encodeBase64(h.secretKey),m=n.find(f,["mailboxes","supportteam","keys","curvePrivate"]),g=n.find(f,["mailboxes","supportteam","keys","curvePublic"]);if(!y||!v)return void u({error:"INVALID_KEY"});let b;i((n=>{p(e,!1,{},n(((e,t)=>{if("E_NOT_INIT"!==e)return e?(u({error:e}),void n.abort()):void(c=t.theirPublic)})))})).nThen((n=>{if(!e.adminKeys.includes(l))return n.abort(),void u({error:"EFORBIDDEN"})})).nThen((n=>{if(c)return e.moderatorKeys.includes(l)?g!==c?(n.abort(),void u({error:"EFORBIDDEN"})):void 0:(n.abort(),void u({error:"EINVAL"}))})).nThen((n=>{c&&e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;b=e.adminDoc.metadata&&e.adminDoc.metadata.channel;let o=y.slice(0,24),i=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:o}}),s={network:e.store.network,initialState:"{}"};(r.oldKeys=r.oldKeys||{})[g]={curvePrivate:m,rotatedOn:+new Date,rotatedBy:l},a.put(i,JSON.stringify(r),n((e=>{if(e)return n.abort(),void u({error:e})})),s)}))})).nThen((n=>{O(e,v,y,n((e=>{if(e&&e.error)return n.abort(),void u(e)})))})).nThen((()=>{if(!c)return;e.adminDoc&&e.adminDoc.stop();let t=n.find(e,["store","mailbox"]);t&&t.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)})).nThen((n=>{e.Store.addAdminMailbox(null,{version:2,priv:y},n((t=>{if(t&&t.error)return n.abort(),c?O(e,g,m,(()=>{u(t)})):void u(t)})))})).nThen((t=>{if(!c)return;let r=n.find(e,["store","mailbox"]);A(e,0,0,t((e=>{if(e&&e.error)return void u({success:!0,noNotify:!0});let n=e&&e[0];Object.keys(n||{}).forEach((e=>{let t=n[e];r.sendTo("MODERATOR_NEW_KEY",{supportKey:y},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{}))}))})))})).nThen((n=>{E(e,!0,n)})).nThen((n=>{b&&e.Store.adminRpc(null,{cmd:"ARCHIVE_DOCUMENT",data:{id:b,reason:"Deprecated support pad"}},n())})).nThen((()=>{u({success:!0})}))}(g,0,0,s):function(e,t,r,o){let a,s=n.once(n.mkAsync(o)),c=e.store.proxy.edPublic;i((n=>{p(e,!1,{},n((e=>{if(e)return s({error:e}),void n.abort()})))})).nThen((n=>{if(!e.adminKeys.includes(c))return n.abort(),void s({error:"EFORBIDDEN"})})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ARCHIVE_SUPPORT",data:{}},n((e=>{if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",["",""]]},n((function(e){if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{A(e,0,0,n((e=>{if(!e||e.error)return n.abort(),void s();a=e[0]||{}})))})).nThen((()=>{let n=i;Object.keys(a).forEach((t=>{n=n((n=>{e.Store.adminRpc(null,{cmd:"REMOVE_MODERATOR",data:t},n((e=>{e&&e.error&&console.error("Error removing moderator data",t,e.error)})))})).nThen})),n((()=>{s()}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),s=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]);p(e,!1,{},((e,n)=>{e?o({error:e}):(i&&n.theirPublic!==i&&(s=void 0),o({curvePrivate:s,curvePublic:n.theirPublic}))}))}(g,0,0,s):function(e,r,o,a){let i=e.store.proxy,s=n.find(i,["mailboxes","supportadmin"]);if(!s)return void a({error:"ENOENT"});if(!e.adminRdyEvt)return void a({error:"EFORBIDDEN"});let c=r.messages,u=r.hashes,f=c[0],l=c[c.length-1];f?e.adminRdyEvt.reg((()=>{let r={name:n.find(f,["sender","name"]),notifications:n.find(f,["sender","notifications"]),curvePublic:n.find(f,["sender","curvePublic"]),channel:t.createChannelId(),title:f.title,time:l.time,ticket:{legacy:!0,title:f.title,sender:f.sender,messages:c}};y(e,r,!0,(n=>{n&&n.error?a(n):(u.forEach((e=>{s.viewed.push(e)})),e.Store.onSync(null,(function(){a({done:!0})})))}))})):a({error:"EINVAL"})}(g,u,0,s):function(e,n,t,r){let o=e.store.proxy;e.store.mailbox.close("supportadmin",(function(){delete o.mailboxes.supportadmin,e.Store.onSync(null,(function(){r({done:!0})}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);if(!i)return void o({error:"ENOENT"});let s=n.clone(i);s.lastKnownHash=void 0,s.viewed=[],e.store.mailbox.open("supportadmin",s,(function(n){e.store.mailbox.close("supportadmin",(function(){})),o(n)}),!0,{dump:!0})}(g,0,0,s):b(g,0,0,s):((e,n,t,o)=>{e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,a=n.channel;(t.active[a]||t.pending[a]||t.closed[a]).tags=n.tags||[],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){let e=[];["active","pending","closed"].forEach((n=>{let r=t[n];Object.keys(r).forEach((n=>{(r[n].tags||[]).forEach((n=>{e.includes(n)||e.push(n)}))}))})),o({done:!0,allTags:e})}))})):o({error:"EFORBIDDEN"})})(g,u,0,s):((e,n,t,r)=>{if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.tags||[];e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy.tickets;if(!o.length)return void r({all:!0});let t=[];["active","pending","closed"].forEach((e=>{let r=n[e];Object.keys(r).forEach((e=>{(r[e].tags||[]).some((e=>o.includes(e)))||t.push(e)}))})),r({tickets:t})}))})(g,u,0,s):((e,t,r,o)=>{if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=t.tags||[],i=(t.text||"").toLowerCase();e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,r={},s=(e,t,o)=>{let a=n.clone(t);a.category=o,r[e]=a};["active","pending","closed"].some((e=>{let o=t[e];return Object.keys(o).some((t=>{let c=o[t];if(a.length&&!(c.tags||[]).some((e=>a.includes(e))))return;let u=n.hexToBase64(t).slice(0,10);if(i===u)return r={},s(t,c,e),!0;(!i||c.title.toLowerCase().includes(i))&&s(t,c,e)}))})),o({tickets:r})}))})(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.id;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=(n.recorded=n.recorded||{})[o];t&&(t.count=(t.count||0)+1),r()}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.id,i=n.content,s=Boolean(n.remove);e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.recorded=n.recorded||{};s?delete t[a]:t[a]={content:i,count:0},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({done:!0})}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy,r=t.recorded=t.recorded||{};o({messages:n.clone(r)})})):o({error:"EFORBIDDEN"})}(g,0,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.channel,i=n.from,s=n.to;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.tickets[i],c=n.tickets[s];if(!i||!s)return void o({error:"EINVAL"});let u=t[a];u&&!c[a]?(c[a]=u,delete t[a],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({moved:!0})}))):o({error:"CANT_MOVE"})}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[a]&&(n.adminCurvePrivate=t.oldKeys[a].curvePrivate),m(e,n,!0,(t=>{if(t)o({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=+new Date,i.lastAdmin=!0,a.tickets.closed[n.channel]=i,delete a.tickets.active[n.channel],delete a.tickets.pending[n.channel],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({closed:!0})}))}}))}))}(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[o]&&(n.adminCurvePrivate=t.oldKeys[o].curvePrivate),m(e,n,!0,((t,o)=>{if(t)r({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=o,i.lastAdmin=!0,r({sent:!0})}}))}))}(g,u,0,s):function(e,t,r,o){let a=t.supportKey;e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;r.oldKeys&&r.oldKeys[a]&&(t.adminCurvePrivate=r.oldKeys[a].curvePrivate),v(e,t,!0,(function(r,a){if(r)return void o({error:r});var i=e.adminDoc.proxy;if(!Array.isArray(a)||!a.length)return void o(a);a.sort(((e,n)=>e.time-n.time));let s=a[a.length-1],c=a.some((e=>{let r=n.find(e,["sender","curvePublic"]);if(t.curvePublic===r)return n.find(e,["sender","quota","plan"])}));var u=i.tickets.active[t.channel];u&&(s.legacy&&(s=Array.isArray(s.messages)&&s.messages[s.messages.length-1]),u.time=s.time,u.premium=c,s.sender&&(u.lastAdmin=!s.sender.blockLocation),s.close&&(i.tickets.closed[t.channel]=u,delete i.tickets.active[t.channel],h(e,!0,"UPDATE_TICKET",t.channel))),o(a)}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?(e.clients[r]||(e.clients[r]={admin:!0}),e.adminRdyEvt.reg((()=>{var r=e.adminDoc.proxy;return"pending"===t.type?o(n.clone(r.tickets.pending)):"closed"===t.type?o(n.clone(r.tickets.closed)):void o(n.clone(r.tickets.active))}))):o({error:"EFORBIDDEN"})}(g,u,e,s):function(e,n,t,r){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{y(e,n,!0,r)})):r({error:"EFORBIDDEN"})}(g,u,0,s):function(e,n,t,r){let o=e.supportData,a=n.channel;o[a]&&o[a].closed?(delete o[a],r({deleted:!0})):r({error:"ENOTCLOSED"})}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{closed:!0})}))}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{sent:!0})}))}(g,u,0,s):function(e,t,r,o){var a=[],s=i;e.clients[r]||(e.clients[r]={admin:!1}),Object.keys(e.supportData).forEach((function(t){s=s((r=>{var o=n.clone(e.supportData[t]);v(e,{channel:t,curvePublic:o.curvePublic},!1,r(((n,r)=>{if(n){if("EDELETED"===n.type)return void delete e.supportData[t];o.error=n}else o.messages=r,r.length&&r[r.length-1].close&&(e.supportData[t].closed=!0,o.closed=!0);o.id=t,a.push(o)})))})).nThen})),s((()=>{a.sort(((e,n)=>e.closed&&n.closed?e.time-n.time:e.closed?1:n.closed?-1:e.time-n.time)),o({tickets:a})}))}(g,0,e,s):function(e,n,t,r){y(e,n,!1,r)}(g,u,0,s)},u},l};e.exports&&(e.exports=n(void 0,Z(),te(),je(),Cn(),Rn(),qe(),M(),g(),w(),y()))})()}(rt)),rt.exports}var at,it={exports:{}};function st(){return at||(at=1,function(e){(()=>{const n=e=>{var n={},t=function(n,t,r,o){var a=t.channel,i=t.secret;i.keys.cryptKey&&(i.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=()=>{var e={},n=function(e,n,t){var r=e.clients[n];if(r){var o=e.channels[r.channel];o?(t(),o.history.forEach((function(t){e.emit("MESSAGE",{msg:t,validateKey:o.validateKey},[n])})),e.emit("HISTORY_SYNCED",{},[n])):t({error:"ENOCHAN"})}else t({error:"ENOENT"})};return e.init=function(e,t){var r={},o={store:e,emit:t,channels:{},clients:{}};return r.removeClient=function(e){!function(e,n){var t,r=function(e){return e!==n};for(var o in e.channels)(t=e.channels[o]).clients=t.clients.filter(r),0===t.clients.length&&(t.wc&&t.wc.leave(),delete e.channels[o]);if(e.clients[n]){var a=e.clients[n].channel,i=e.channels[a];i&&e.emit("LEAVE",{id:n},[i.clients[0]]),delete e.clients[n]}}(o,e)},r.leavePad=function(e){!function(e,n){Object.keys(e.channels).some((function(t){var r=e.channels[t];if(r.padChan===n)return r.wc&&r.wc.leave(),delete e.channels[t],!0}))}(o,e)},r.execCommand=function(e,t,r){var a=t.cmd,i=t.data;"SEND_MESSAGE"!==a?"UPDATE_HASH"!==a?"OPEN_CHANNEL"!==a?"GET_HISTORY"!==a?"REENCRYPT"!==a||function(e,n,t,r){var o=n.channel,a=e.store.network,i=function(e){var t=a.historyKeeper,o={metadata:n.metadata},i=["GET_HISTORY",e.id,o];a.sendto(t,JSON.stringify(i)),n.msgs.forEach((function(n){e.bcast(n)})),e.leave(),r()};e.store.anon_rpc.send("IS_NEW_CHANNEL",o,(function(e,n){var t;e?r({error:e}):(n&&n.length&&"object"==typeof n[0]?t=n[0].isNew:r({error:"INVALID_RESPONSE"}),t?a.join(o).then(i,(function(e){r({error:e})})):r({error:"EEXISTS"}))}))}(o,i,0,r):n(o,e,r):function(e,t,r,o){var a=t.channel,i=t.padChan,s=e.store.network,c=!0,u=e.clients[r];if(u)o();else{u=e.clients[r]={channel:a};var f=e.channels[a];if(f)return u.id||(u.id=f.wc.myID+"-"+r),n(e,r,(function(){e.emit("READY",f.clients,[r])})),f.clients.push(r),void o();var l=Math.floor(1e6*Math.random()),d=function(n){e.channels[a]=e.channels[a]||{history:[],validateKey:t.validateKey},(f=e.channels[a]).padChan=i,u.id||(u.id=n.myID+"-"+r),f.clients&&f.clients.forEach((function(t){e.clients[t]&&(e.clients[t].id=n.myID+"-"+t)})),n.on("join",(function(){})),n.on("leave",(function(){})),n.on("message",(function(n){f.history.push(n),e.emit("MESSAGE",{msg:n,validateKey:f.validateKey},f.clients)})),f.wc=n,f.sendMsg=function(e,t){t=t||function(){};var r=e.slice(0,64);n.bcast(e).then((function(){f.history.push(e),f.lastKnownHash=r,t()}),(function(e){t({error:e})}))},c&&(f.clients=[r],f.lastCpHash=t.lastCpHash,c=!1,o());var d=s.historyKeeper,h={txid:l,lastKnownHash:f.lastKnownHash||f.lastCpHash,metadata:{validateKey:t.validateKey,owners:t.owners,expire:t.expire}},p=["GET_HISTORY",n.id,h];d&&s.sendto(d,JSON.stringify(p)).then((function(){}),(function(e){console.error(e)}))};s.on("message",(function(n,t){if(e.channels[a]&&t===s.historyKeeper){var r;try{r=JSON.parse(n)}catch(e){}if(r&&!(r.txid&&r.txid!==l||r.channel&&r.channel!==a))if(r.validateKey&&r.channel)f.validateKey||(f.validateKey=r.validateKey);else if(r.state&&1===r.state&&r.channel)e.emit("READY",f.clients,f.clients);else if(!(r.error&&r.channel||Array.isArray(r)&&r[0]&&r[0]!==l||(n=r[4],r[3]!==a))){var o=n.slice(0,64);o!==f.lastKnownHash&&o!==f.lastCpHash&&(f.lastKnownHash=o,e.emit("MESSAGE",{msg:n},f.clients),f.history.push(n))}}})),s.join(a).then(d,(function(e){o({error:e})})),s.on("reconnect",(function(){e.channels[a]&&s.join(a).then(d,(function(e){console.error(e)}))}))}}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=n,s=-1;a.history.some((function(e,n){if(e.slice(0,64)===i)return s=n+1,!0})),-1!==s&&(a.history=a.history.slice(s)),r()}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=function(o){o&&o.error?r(o):(e.emit("MESSAGE",{msg:n.msg},a.clients.filter((function(e){return e!==t}))),r())};n.isCp?a.sendMsg(n.isCp,i):a.sendMsg(n.msg,i)}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r)},r},e};e.exports&&(e.exports=n())})()}(ut)),ut.exports}var lt,dt={exports:{}};function ht(){return lt||(lt=1,function(e){(()=>{const n=(e,n,t,r,o,a,i)=>{var s={};return s.init=function(s,c,u){var f={},l=s.store;if(l.loggedIn&&l.proxy.edPublic){var d={Store:s.Store,store:l,pinPads:s.pinPads,updateMetadata:s.updateMetadata,emit:u,onReadyHandlers:[],clients:[]};return d.profile=l.proxy.profile=l.proxy.profile||{},function(e,t){var r=e.profile;if(r.edit&&r.view)setTimeout(t);else{var o=n.createRandomHash("profile"),a=n.getSecrets("profile",o);e.pinPads([a.channel],(function(e){e.error?t(e.error):(r.edit=n.getEditHashFromKeys(a),r.view=n.getViewHashFromKeys(a),setTimeout(t))}))}}(d,c((function(r){r||function(r){var s=r.profile,c=n.getSecrets("profile",s.edit),u=a.createEncryptor(c.keys),f={data:{},network:r.store.network,channel:c.channel,crypto:u,owners:[r.store.proxy.edPublic],ChainPad:i,validateKey:c.keys.validateKey||void 0,userName:"profile",classic:!0},l=o.create(f);l.proxy.on("create",(function(){})).on("ready",(function(){l.proxy.name=r.store.proxy[t.displayNameKey]||"",r.listmap=l,l.proxy.curvePublic||(l.proxy.curvePublic=r.store.proxy.curvePublic),l.proxy.notifications||(l.proxy.notifications=e.find(r.store.proxy,["mailboxes","notifications","channel"])),l.proxy.edPublic||(l.proxy.edPublic=r.store.proxy.edPublic),r.onReadyHandlers.length&&(r.onReadyHandlers.forEach((function(e){try{e(l.proxy)}catch(e){console.error(e)}})),r.onReadyHandlers=[])})).on("change",[],(function(){r.emit("UPDATE",l.proxy,r.clients)}))}(d)}))),f.setName=function(e){!function(e,n){e.listmap.proxy.name=n,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.listmap&&e.emit("UPDATE",e.listmap.proxy,e.clients)}))}(d,e)},f.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1)}(d,e)},f.update=function(){d.listmap&&d.emit("UPDATE",d.listmap.proxy,d.clients)},f.execCommand=function(e,n,t){console.log(n);var o=n.cmd,a=n.data;"SUBSCRIBE"!==o?"SET"!==o||function(e,n,t,o){var a=n.key,i=n.value;a&&(e.listmap.proxy[a]=i,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.emit("UPDATE",e.listmap.proxy,e.clients.filter((function(e){return e!==t}))),"badge"===a&&e.Store.set(null,{key:["profile","badge"],value:i||void 0},(()=>{})),o(e.listmap.proxy)})))}(d,a,e,t):function(e,n,t,r){-1===e.clients.indexOf(t)&&e.clients.push(t),e.listmap?r(e.listmap.proxy):e.onReadyHandlers.push((function(e){r(e)}))}(d,0,e,t)},f}},s};e.exports&&(e.exports=n(Z(),te(),Y(),je(),g(),M(),w()))})()}(dt)),dt.exports}var pt,vt={exports:{}},yt={exports:{}};function mt(){return pt||(pt=1,function(e){e.exports&&(e.exports=function(e,n,t,r,o,a){var i={},s=function(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))},c=function(e){return e.slice(0,64)},u=function(n,t){var r=e.find(t,[n,"role"]);return-1!==["OWNER","ADMIN"].indexOf(r)},f=function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&!!function(e){return-1!==["OWNER","ADMIN","MEMBER","VIEWER"].indexOf(e)}(t)&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))},l=function(e){return"string"==typeof e&&44===e.length},d=i.commands={};d.ADD=function(e,n,t){if(!s(e))throw new Error("INVALID ARGS");if(!t.internal.initialized)throw new Error("UNITIALIZED");if(void 0===t.state.members)throw new Error("CANNOT_ADD_TO_UNITIALIZED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ALREADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="MEMBER"),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if("string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.RM=function(n,t,r){if(!Array.isArray(n))throw new Error("INVALID_ARGS");if(void 0===r.state.members)throw new Error("CANNOT_RM_FROM_UNITIALIZED_ROSTER");var o=r.state.members;n.forEach((function(n){if(!l(n))throw new Error("INVALID_CURVE_KEY");if(n!==t){var r=o[n].role;if(!function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))}(t,r,o))throw new Error("INSUFFICIENT_PERMISSIONS")}}));var a=!1;return n.forEach((function(e){o[e]&&(a=!0,delete o[e])})),a},d.DESCRIBE=function(n,t,o){if(!n||"object"!=typeof n||Array.isArray(n))throw new Error("INVALID_ARGUMENTS");if(void 0===o.state.members)throw new Error("NOT_READY");var a=o.state.members;Object.keys(n).forEach((function(r){if(!l(r))throw new Error("INVALID_ID");if(!a[r])throw new Error("NOT_PRESENT");if(!function(n,t,r){if(!r[t])return!1;if(n===t&&r[t])return!0;var o=e.find(r,[n,"role"]),a=e.find(r,[t,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&"OWNER"!==a)}(t,r,a))throw new Error("INSUFFICIENT_PERMISSIONS");var o=n[r];if(!s(o))throw new Error("INVALID_ARGUMENTS");var i=e.clone(a[r]);if("string"==typeof o.role&&!function(n,t,r,o){return!(n!==t||!o[t])&&("MEMBER"===e.find(o,[n,"role"])?"VIEWER"===r:void 0)}(t,r,o.role,a)&&!f(t,o.role,a))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof i.displayName&&"string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.displayName))throw new Error("INVALID_DISPLAYNAME");if("string"!=typeof i.notifications&&"string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.notifications))throw new Error("INVALID_NOTIFICATIONS")}));var i=!1;return Object.keys(n).forEach((function(t){var o=e.clone(a[t]),s=n[t];Object.keys(s).forEach((function(e){void 0===o[e]||null!==s[e]?o[e]=s[e]:delete o[e]})),r(o)!==r(a[t])&&(i=!0,a[t]=o)})),i},d.CHECKPOINT=function(e,n,t){if(!s(e))throw new Error("INVALID_CHECKPOINT_STATE");if(!t.internal.initialized){t.state=e;var o=t.state.metadata=t.state.metadata||{};return o.topic=o.topic||"",o.name=o.name||"",o.avatar=o.avatar||"",t.internal.initialized=!0,!0}if(r(e)!==r(t.state))throw new Error("CHECKPOINT_DOES_NOT_MATCH_PREVIOUS_STATE");if(!u(n,t.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");return t.state=e,!0};var h=["avatar","name","topic"];d.METADATA=function(n,t,r){if(!s(n))throw new Error("INVALID_ARGS");if(!function(n,t){var r=e.find(t,[n,"role"]);return Boolean(r&&-1!==["OWNER","ADMIN"].indexOf(r))}(t,r.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");Object.keys(n).forEach((function(e){if(null===n[e]){if(-1===h.indexOf(e))return;throw new Error("CANNOT_REMOVE_MANDATORY_METADATA")}if("string"!=typeof n[e])throw new Error("INVALID_ARGUMENTS")}));var o=!1;return Object.keys(n).forEach((function(e){void 0!==r.state.metadata[e]&&null===n[e]&&(o=!0,delete r.state.metadata[e]),n[e]!==r.state.metadata[e]&&(o=!0,r.state.metadata[e]=n[e])})),o},d.INVITE=function(e,n,t){if(!s(e))throw new Error("INVALID_ARGS");if(!t.internal.initialized)throw new Error("UNINITIALIED");if(void 0===t.state.members)throw new Error("CANNOT+INVITE_TO_UNINITIALIED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ARLEADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="VIEWER"),void 0===o.pending&&(o.pending=!0),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName||!o.displayName)throw new Error("DISPLAYNAME_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.ACCEPT=function(n,t,r){if(!r.internal.initialized)throw new Error("UNINITIALIED");if(void 0===r.state.members)throw new Error("CANNOT_ADD_TO_UNINITIALIED_ROSTER");var o=r.state.members;if(!s(o[t]))throw new Error("INSUFFICIENT_PERMISSIONS");if(!o[t].pending)throw new Error("ALREADY_PRESENT");if("string"!=typeof n)throw new Error("INVALID_ARGS");if(!l(n))throw new Error("INVALID_CURVE_KEY");var a=n;if(void 0!==o[a])throw new Error("MEMBER_ALREADY_PRESENT");var i=e.clone(o[t]);delete i.remaining,delete i.totalUses,delete i.inviteChannel,delete i.previewChannel,o[a]=i;var c=o[t].remaining||1;return-1===c||(c>1?o[t].remaining=c-1:delete o[t]),!0};var p=function(e,n,t){if(!Array.isArray(e)||"string"!=typeof n)throw new Error("INVALID ARGUMENTS");var r=e[0];if("function"!=typeof d[r])throw new Error("INVALID_COMMAND");return d[r](e[1],n,t)},v=function(n,t,r){return p(n,t,e.clone(r))};return i.create=function(n,i){if("function"!=typeof i)throw new Error("EXPECTED_CALLBACK");var f=e.once(e.mkAsync(i));if(n.network)if(n.channel&&"string"==typeof n.channel&&32===n.channel.length)if(n.keys&&"object"==typeof n.keys)if(n.store){var d=e.response((function(e,n){console.error("ROSTER_RESPONSE__"+e,n)})),h=n.store,y=n.keys,m=y.myCurvePublic,g=n.channel,E=n.lastKnownHash||-1;n.newTeam&&(E=void 0);var b={state:{members:{},metadata:{}},internal:{initialized:!1,sinceLastCheckpoint:0,lastCheckpointHash:E}},O={},A={change:e.mkEvent(),checkpoint:e.mkEvent()};O.on=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].reg(n),O},O.off=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].unreg(n),O},O.once=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");var t=function(){n.apply(null,Array.prototype.slice.call(arguments)),A[e].unreg(t)};return A[e].reg(t),O},O.getState=function(){return e.clone(b.state)},O.getLastCheckpointHash=function(){return b.internal.lastCheckpointHash||-1};var w=function(){b.internal.pendingCheckpointId&&(d.clear(b.internal.pendingCheckpointId),delete b.internal.pendingCheckpointId),clearTimeout(b.internal.checkpointTimeout),delete b.internal.checkpointTimeout};O.stop=function(){b.internal.cpNetflux&&"function"==typeof b.internal.cpNetflux.stop?(b.internal.cpNetflux.stop(),w()):console.log("FAILED TO LEAVE")};var D,_,T,S=!1,x=function(){if(n.onCacheReady){var e=b.state;if(Object.keys(e.members||{}).length)n.onCacheReady(O);else{try{b.internal.cpNetflux.resetCache()}catch(e){console.error(e)}n.onCacheReady({error:"CORRUPTED"})}}},N=function(){S=!0,f(void 0,O)},I=function(e){e&&"EUNKNOWN"===e.type||(S?console.error("CHANNEL_ERROR",e):f(e))},C=function(e){e.state||(S=!1)},R=function(){console.log("ROSTER CONNECTED")},P=function(){return Boolean(S&&m)},k=function(n,t,r,o,a,i){D!==a&&b.internal.sinceLastCheckpoint++,D=a;var s=e.tryParse(n);if(s){var f,l;try{f=p(s,i,b)}catch(e){l=e.message}var h=c(a);if(d.expected(h)){if(l)return void d.handle(h,[l]);try{f?d.handle(h,[void 0,O.getState()]):(d.handle(h,["NO_CHANGE"]),console.log(n))}catch(e){console.log("CAUGHT",e)}}if("CHECKPOINT"===s[0]&&f?(P()&&A.checkpoint.fire(a),b.internal.sinceLastCheckpoint=0,b.internal.lastCheckpointHash=a):f&&P()&&A.change.fire(),w(),P()&&function(e,n){if(!u(e,n.state.members))return!1;var t=n.internal.sinceLastCheckpoint;return!(!t||"number"!=typeof t||t<25)}(m,b)){var v=1e3*Math.floor(20*Math.random())+5e3;b.internal.checkpointTimeout=setTimeout((function(){b.internal.pendingCheckpointId=O.checkpoint((function(e){e&&console.error(e)}))}),v)}}else console.error("could not parse")},M=function(n,t){var r=e.tryParse(n);return"CHECKPOINT"===r[0]&&v(r,t,b)},F=function(e,n){if(P()){var t=h.anon_rpc;if(t){var o=!1;try{o=v(e,y.myCurvePublic,b)}catch(e){return void n(e.message)}if(o){var a=T.encrypt(r(e)),i=c(a);return d.expect(i,(function(e,t){e?n(e):n(void 0,t,i)}),3e4),t.send("WRITE_PRIVATE_MESSAGE",[g,a],(function(e){if(e)return d.handle(i,[e.message||e])})),i}n("NO_CHANGE")}else n("ANON_RPC_NOT_READY")}else n("NOT_READY")};O.init=function(n,t){var r=e.once(e.mkAsync(t));if(b.internal.initialized)r("ALREADY_INITIALIZED");else if(s(n)){var o=e.clone(n);o.role="OWNER";var a={};a[m]=o,F(["CHECKPOINT",{members:a}],r)}else r("INVALID_ARGUMENTS")},O.checkpoint=function(n){var t=e.once(e.mkAsync(n));F(["CHECKPOINT",e.clone(b.state)],t)},O.add=function(n,t){var r=e.once(e.mkAsync(t));if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["ADD",o],r)}else r("INVALID_ARGUMENTS")},O.remove=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(Array.isArray(n)){var a=e.clone(n),i=[],s=Object.keys(o.members);a.forEach((function(e){-1!==s.indexOf(e)&&i.push(e)})),F(["RM",i],r)}else r("INVALID_ARGUMENTS")},O.describe=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(s(n)){var a=e.clone(n);Object.keys(a).some((function(e){var n=a[e];if(s(n)||delete a[e],!s(o.members[e]))return!0;Object.keys(n).forEach((function(t){n[t]===o.members[e][t]&&delete n[t]}))}))?r("INVALID_ARGUMENTS"):F(["DESCRIBE",a],r)}else r("INVALID_ARGUMENTS")},O.metadata=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state.metadata;if(s(n)){var a=e.clone(n);Object.keys(a).forEach((function(e){a[e]===o[e]&&delete a[e]})),F(["METADATA",a],r)}else r("INVALID_ARGUMENTS")},O.invite=function(n,t){var r=e.once(e.mkAsync(t));if(!b.state)return r("UNINITIALIZED");if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["INVITE",o],r)}else r("INVALID_ARGUMENTS")},O.accept=function(n,t){var r=e.once(e.mkAsync(t));"string"==typeof n&&l(n)?F(["ACCEPT",n],r):r("INVALID_ARGUMENTS")},o((function(e){h.anon_rpc&&h.anon_rpc.send("GET_METADATA",g,(function(n,t){if(n)return e.abort(),void console.error(n);_=b.internal.metadata=t&&t[0]||void 0}))})).nThen((function(e){if(!n.keys.teamEdPublic&&_&&_.validateKey&&(n.keys.teamEdPublic=_.validateKey),!n.keys.teamEdPublic)return e.abort(),void f("NO_VALIDATE_KEY");try{T=a.Team.createEncryptor(n.keys)}catch(n){return e.abort(),void f(n)}})).nThen((function(){"string"==typeof E&&console.log("Synchronizing from checkpoint"),b.internal.cpNetflux=t.start({lastKnownHash:E,network:n.network,channel:n.channel,crypto:T,validateKey:n.keys.teamEdPublic,owners:n.owners,Cache:n.Cache,isCacheCheckpoint:M,onCacheReady:x,onChannelError:I,onReady:N,onConnect:R,onConnectionChange:C,onMessage:k,noChainPad:!0})}))}else f("EXPECTED_STORE");else f("EXPECTED_CRYPTO_KEYS");else f("EXPECTED_CHANNEL");else f("EXPECTED_NETWORK")},i}(Z(),te(),y(),En(),qe(),M()))}(yt)),yt.exports}var gt,Et,bt={exports:{}};function Ot(){return Et||(Et=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E)=>{var b={};E=E||"undefined"!=typeof window&&window.nacl;var O=e.mkEvent(!0),A=function(){},w=function(e,t,r,o){t&&(o||(r.on("change",["drive",a.SHARED_FOLDERS],(function(o,s,c){if(c.length>3&&"password"===c[3]){var u=c[2],f=r.drive[a.SHARED_FOLDERS][u],l=t.manager.user.userObject.getHref?t.manager.user.userObject.getHref(f):f.href,d=n.parsePadUrl(l),h=n.getSecrets(d.type,d.hash,o);return setTimeout((function(){i.updatePassword(e.Store,{oldChannel:h.channel,password:s,href:l},e.store.network,(function(){console.log("Shared folder password changed")}))})),!1}})),r.on("disconnect",(function(){t.offline=!0,t.sendEvent("NETWORK_DISCONNECT",t.id)})),r.on("reconnect",(function(){t.offline=!1,t.sendEvent("NETWORK_RECONNECT",t.id)}))),r.on("change",[],(function(n,r,i){if(o){if(i[0]===a.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var s=[r.channel];r.rtChannel&&s.push(r.rtChannel),r.lastVersion&&s.push(r.lastVersion),t.pin(s,(function(e){e&&e.error&&console.error(e.error)}))}if(i[0]===a.FILES_DATA&&"object"==typeof n&&n.channel&&!r){var c=[n.channel];t.manager.findChannel(n.channel).some((function(e){return e.fId!==o}))||(n.rtChannel&&c.push(n.rtChannel),n.lastVersion&&c.push(n.lastVersion),t.unpin(c,(function(e){e&&e.error&&console.error(e)})))}}n&&!r&&Array.isArray(i)&&(i[0]===a.FILES_DATA||"drive"===i[0]&&i[1]===a.FILES_DATA)&&setTimeout((function(){e.Store.checkDeletedPad(n&&n.channel)})),t.sendEvent("DRIVE_CHANGE",{id:o,old:n,new:r,path:i})})),r.on("remove",[],(function(e,n){t.sendEvent("DRIVE_REMOVE",{id:o,old:e,path:n})})))},D=function(e,n){var t=e.teams[n];if(t){try{t.listmap.stop()}catch(e){}try{t.roster.stop()}catch(e){}t.proxy={},t.stopped=!0,delete e.teams[n],delete e.cache[n],delete e.store.proxy.teams[n],e.emit("LEAVE_TEAM",n,t.clients),e.updateMetadata(),e.store.calendar&&e.store.calendar.closeTeam(n),e.store.mailbox&&e.store.mailbox.close("team-"+n,(function(){}))}},_=function(e,n,t,r){n.rpc?r():t.edPrivate&&t.edPublic?h.create(e.store.network,t,(function(e,t){e?r(e):(n.rpc=t,n&&n.onRpcReadyEvt&&n.onRpcReadyEvt.fire(),r())}),d):r("EFORBIDDEN")},T=function(t,r,a,s,c,u,f){var l=e.once(e.mkAsync(f));if(t.cache[r])l();else{var d=a.proxy,h={id:r,proxy:d,listmap:a,clients:[],realtime:a.realtime,handleSharedFolder:function(e,n){!function(e,n,t,r){var o=e.teams[n];o&&(r?(o.sharedFolders[t]=r,w(e,o,r.proxy,t)):delete o.sharedFolders[t])}(t,r,e,n)},sharedFolders:{},roster:s,onRpcReadyEvt:e.mkEvent(!0),offline:!0};t.cache[r]=h,u&&h.clients.push(u),s.on("change",(function(){var n=s.getState(),o=e.find(t,["store","proxy","curvePublic"]);if(n.members&&Object.keys(n.members).length)if(n.members[o]){var a=e.find(t,["store","proxy","teams",r]);a&&(a.metadata=n.metadata),t.updateMetadata(),t.emit("ROSTER_CHANGE",r,h.clients)}else D(t,r);else console.error(JSON.stringify(n))})),s.on("checkpoint",(function(n){e.find(t,["store","proxy","teams",r,"keys","roster"]).lastKnownHash=n})),h.sendEvent=function(e,n,r){t.emit(e,n,h.clients.filter((function(e){return e!==r})))},h.getChatData=function(){var e=c.chat||{},t=e.edit||e.view;if(!t)return{};var o=n.getSecrets("chat",t);return{teamId:r,channel:o.channel,secret:o,validateKey:e.validateKey}},h.pin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.pin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})},h.unpin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.unpin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})};var p=t.store.proxy.teams[h.id],v=p.hash||p.roHash,y=n.getSecrets("team",v,p.password),m=h.manager=o.create(d.drive,{onSync:function(e){t.Store.onSync(r,e)},edPublic:c.drive.edPublic,pin:h.pin,unpin:h.unpin,loadSharedFolder:function(e,n,r,o){i.load({isNew:o,network:t.store.network||t.store.networkPromise,store:h,isNewChannel:t.Store.isNewChannel,Store:t.Store},e,n,r)},settings:{drive:e.find(t.store,["proxy","settings","drive"])},removeOwnedChannel:function(e,n){var o;"object"==typeof e?(e.teamId=r,o=e):o={channel:e,teamId:r},t.Store.removeOwnedChannel("",o,n)},Store:t.Store,store:t.store},{teamId:h.id,outer:!0,edPublic:c.drive.edPublic,loggedIn:!0,log:function(e){h.sendEvent("DRIVE_LOG",e)},rt:h.realtime,editKey:y.keys.secondaryKey,readOnly:Boolean(!y.keys.secondaryKey)});h.secondaryKey=y&&y.keys.secondaryKey,h.userObject=m.user.userObject,g((function(e){t.teams[r]=h,w(t,h,d);var n=t.store.network||t.store.networkPromise;i.loadSharedFolders(t.Store,n,h,h.proxy.drive,h.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}),!0)})).nThen((function(){t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),l()}))}},S=function(t,r,o,a,s,c,u){var f,l=a.getState(),d=e.find(t,["store","proxy","teams",r]);d&&(d.metadata=l.metadata),delete t.nocache[r],t.store.proxy.teams[r]&&g((function(e){T(t,r,o,a,s,c,e()),f=t.teams[r]||t.cache[r],s.drive.edPrivate&&_(t,f,s.drive,e((function(){})))})).nThen((function(e){f.userObject.fixFiles(),i.checkMigration(f.secondaryKey,f.proxy?.drive,f.userObject,e()),i.loadSharedFolders(t.Store,t.store.network,f,f.proxy?.drive,f.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}))})).nThen((function(){if(f.rpc){var o=function(n,t){var r=n.teams[t];if(!r)return null;var o=r.manager.getChannelsList("pin"),a=n.store.proxy.teams[t];o.push(`${a.channel}#drive`);var i=e.find(a,["keys","chat","channel"]),s=e.find(a,["keys","roster","channel"]),c=e.find(a,["keys","mailbox","channel"]);if(i&&o.push(i),s&&o.push(s),c&&o.push(c),r.proxy.calendars){var u=Object.keys(r.proxy.calendars).map((function(e){return r.proxy.calendars[e].channel}));o=o.concat(u)}var f=r.roster.getState();return f.members&&Object.keys(f.members).forEach((function(e){var n=f.members[e];n.inviteChannel&&n.pending&&o.push(n.inviteChannel),n.previewChannel&&n.pending&&o.push(n.previewChannel)})),o.sort(),o}(t,r),a=n.hashChannelList(o);f.rpc.getServerHash((function(e,n){e?console.warn(e):n!==a&&f.rpc.reset(o,(function(e){e&&console.warn(e)}))}))}})).nThen((function(){f.offline=!1,t.onReadyHandlers[r]&&t.onReadyHandlers[r].forEach((function(e){("function"==typeof e.cb&&e.cb(),e.cId)&&(-1===f.clients.indexOf(e.cId)&&f.clients.push(e.cId))})),delete t.onReadyHandlers[r],t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),u()}))},x=function(e,n,t,r,o,a){var i=function(){(e.cache[n]||e.teams[n])&&D(e,n),delete e.store.proxy.teams[n],delete e.onReadyHandlers[n],o.abort(),a({error:"ENOENT"})};t&&e.store.anon_rpc.send("IS_NEW_CHANNEL",t,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()}))),r&&e.store.anon_rpc.send("IS_NEW_CHANNEL",r,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()})))},N=function(t,r,o,a,i){var f=e.once(e.mkAsync(a)),l=r.hash||r.roHash,h=n.getSecrets("team",l,r.password),y=v.createEncryptor(h.keys);r.roHash||(r.roHash=n.getViewHashFromKeys(h));var E,b,A=r.keys;if(!A.chat.validateKey&&A.chat.edit){var w=n.getSecrets("chat",A.chat.edit);A.chat.validateKey=w.keys.validateKey}var _={curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate},N=A.roster||{},I=N.edit?v.Team.deriveMemberKeys(N.edit,_):v.Team.deriveGuestKeys(N.view||"");g((function(e){if(i)return d.getChannelCache(h.channel,e((function(n,t){t&&t.c||(e.abort(),f({error:"NOCACHE"}))}))),void d.getChannelCache(I.channel,e((function(n,t){var r=t&&t.c,o=t&&t.k;o&&!I.teamEdPublic&&(I.teamEdPublic=o),r||(e.abort(),f({error:"NOCACHE"}))})));t.Store.onReadyEvt.reg((()=>{x(t,o,h.channel,I.channel,e,f)}))})).nThen((function(n){var a={lm:!1,roster:!1,check:function(){this.lm&&this.roster&&i&&(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress}),T(t,o,b,E,A,null,n(f)),this.check=function(){})}},u={data:{},readOnly:!Boolean(h.keys.signKey),network:t.store.network||t.store.networkPromise,channel:h.channel,crypto:y,ChainPad:m,Cache:d,metadata:{validateKey:h.keys.validateKey||void 0},userName:"team",classic:!0,onMetadataUpdate:function(){var e=t.teams[o];e&&t.emit("ROSTER_CHANGE",o,e.clients)}};(b=p.create(u)).proxy.on("cacheready",(function(){a.lm=!0,a.check()})),b.proxy.on("ready",n()),b.proxy.on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,o)})),s.create({network:t.store.network||t.store.networkPromise,channel:I.channel,keys:I,store:t.store,lastKnownHash:N.lastKnownHash,onCacheReady:function(e){if(i){if(e&&"CORRUPTED"===e.error)return console.error("Corrupted roster cache, cant load this team offline",r),b&&"function"==typeof b.stop&&b.stop(),n.abort(),void f({error:"CACHE_CORRUPTED_ROSTER"});E=e,a.roster=!0,a.check()}},Cache:d},n((function(r,o){if(r)return n.abort(),console.error(r),void f({error:"ROSTER_ERROR"});E=o,N.lastKnownHash=E.getLastCheckpointHash();var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);a.members[i]&&O.reg((function(){if(N.edit){var e={},n=c.createData(t.store.proxy,!1);n.pending=!1,e[t.store.proxy.curvePublic]=n,E.describe(e,(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}}))})))})).nThen((function(n){var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);if(!a.members||!Object.keys(a.members).length)return b.stop(),E.stop(),b.proxy={},f({error:"EINVAL"}),n.abort(),console.error(JSON.stringify(a)),void u.send("ROSTER_CORRUPTED");if(!a.members[i])return b.stop(),E.stop(),b.proxy={},delete t.store.proxy.teams[o],t.updateMetadata(),f({error:"EFORBIDDEN"}),void n.abort();var s=a.members[i],c=e.find(r,["keys","drive","edPrivate"]);if(r.hash&&c||-1===["ADMIN","MEMBER"].indexOf(s.role))r.hash&&c||"OWNER"!==s.role||u.send("TEAM_RIGHTS_OWNER");else{console.warn("Missing edit rights: demote to viewer");var l={};l[t.store.proxy.curvePublic]={role:"VIEWER"},E.describe(l,(function(e){u.send("TEAM_RIGHTS_FIXED"),delete r.hash,delete r.keys.drive.edPrivate,delete r.keys.chat.edit,e&&"NO_CHANGE"!==e&&console.error(e)}))}})).nThen((function(){i||(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress})),S(t,o,b,E,A,null,f)}))},I=function(n,t,r,o){var a=t.team;if(!((a.hash||a.roHash)&&a.channel&&a.password&&a.keys&&a.metadata))return void o({error:"EINVAL"});let i=n.store.proxy.teams;if(Object.values(i).some((e=>e.channel===a.channel)))o({error:"EEXISTS"});else{var s=e.createRandomInteger();n.store.proxy.teams[s]=a,n.onReadyHandlers[s]=[],N(n,a,s,(function(e){e&&e.error||console.debug("Team joined:"+s);var t=n.store.proxy.teams[s];n.store.mailbox.open("team-"+s,t.keys.mailbox,(function(){}),!0,{owners:t.keys.drive.edPublic}),n.updateMetadata(),o(e)}))}},C=function(n,t,r){var o=e.find(n,["store","proxy","teams",t]);if(!o)return{};var a=e.clone(o);return r||(delete a.hash,delete a.keys.drive.edPrivate,delete a.keys.chat.edit),delete a.owner,a},R=function(t,r,o){if(!r)return!0;var a=e.find(t,["store","proxy","teams",r]);if(!a)return!0;var s=t.teams[r];if(!s)return!0;var c=n.getSecrets("team",o||a.roHash,a.password);if(i.upgrade(a.channel,c),s.userObject&&s.userObject.setReadOnly(!c.keys.secondaryKey,c.keys.secondaryKey),c.keys.secondaryKey)try{t.store.modules.calendar.upgradeTeam(r)}catch(e){console.error(e)}!c.keys.secondaryKey&&s.rpc&&s.rpc.destroy();var u=e.find(s,["proxy","drive","sharedFolders"]);Object.keys(u||{}).forEach((function(t){var r=s.manager.getSharedFolderData(t),o=n.parsePadUrl(r.href||r.roHref),a=n.getSecrets(o.type,o.hash,r.password);i.upgrade(a.channel,a);var c=e.find(s,["manager","folders",t,"userObject"]);c&&c.setReadOnly(!a.keys.secondaryKey,a.keys.secondaryKey)})),t.updateMetadata(),t.emit("ROSTER_CHANGE_RIGHTS",r,s.clients)},P=function(t,r,o,a,i){if(r){var s=e.find(t,["store","proxy","teams",r]);if(s){var c=t.onReadyHandlers[r],u=t.teams[r];if(s.channel===a.channel&&s.password===a.password)if(o?(s.hash=a.hash,s.keys.drive.edPrivate=a.keys.drive.edPrivate,s.keys.chat.edit=a.keys.chat.edit):(delete s.hash,delete s.keys.drive.edPrivate,delete s.keys.chat.edit),u||!Array.isArray(c))if(u){if(o){_(t,u,s.keys.drive,(function(){u.manager.addPin(u.pin,u.unpin)}));var f=n.getSecrets("team",a.hash,s.password);u.secondaryKey=f&&f.keys.secondaryKey;var l=v.createEncryptor(f.keys);u.listmap.setReadOnly(!1,l)}else delete u.secondaryKey,u.rpc&&u.rpc.destroy&&u.rpc.destroy(),u.manager.removePin(),u.listmap.setReadOnly(!0);R(t,r,a.hash),i(!0)}else i(!1);else c.push({cb:function(){P(t,r,o,a,i)}});else i(!1)}else i(!1)}else i(!1)},k=function(n,t,r,o,a){t?e.find(n,["store","proxy","teams",t])&&n.teams[t]?n.store.mailbox.sendTo("TEAM_EDIT_RIGHTS",{state:o,teamData:C(n,t,o)},{channel:r.notifications,curvePublic:r.curvePublic},a):a({error:"ENOENT"}):a({error:"EINVAL"})},M=function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]),s=n.teams[a];if(i&&s)if(s.roster)if(t.curvePublic&&t.data){var c,u=s.roster.getState().members[t.curvePublic];g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(u.pendingOwner=Array.isArray(c.pending_owners)&&-1!==c.pending_owners.indexOf(u.edPublic),"OWNER"!==u.role||"OWNER"===t.data.role){"VIEWER"===u.role&&"VIEWER"!==t.data.role&&k(n,a,u,!0,(function(e){o(e)})),"VIEWER"!==u.role&&"VIEWER"===t.data.role&&k(n,a,u,!1,(function(e){o(e)}));var r={};r[t.curvePublic]=t.data,s.roster.describe(r,(function(e){e?o({error:e}):o()}))}else!function(n,t,r,o){var a=e.once(o);if(t){var i=e.find(n,["store","proxy","teams",t]);if(i){var s=n.teams[t];if(s){var c=r.pendingOwner;g((function(t){var o=c?"RM_PENDING_OWNERS":"RM_OWNERS",s=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a(n)},u=function(e){n.Store.setPadMetadata(null,{channel:e,command:o,value:[r.edPublic]},t(s))};u(i.channel),u(e.find(i,["keys","roster","channel"])),u(e.find(i,["keys","chat","channel"]))})).nThen((function(e){var n={};n[r.curvePublic]={role:"ADMIN",pendingOwner:!1},s.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(e){n.store.mailbox.sendTo("RM_OWNER",{teamChannel:i.channel,title:i.metadata.name,pending:c},{channel:r.notifications,curvePublic:r.curvePublic},e())})).nThen((function(){a()}))}else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(n,a,u,(function(e){e?(console.error(e),o({error:e})):o()}))}))}else o({error:"MISSING_DATA"});else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"EINVAL"})},F=function(e,n){Object.keys(e.onReadyHandlers).forEach((function(t){var r=-1;e.onReadyHandlers[t].some((function(e,t){if(e.cId===n)return r=t,!0})),-1!==r&&e.onReadyHandlers[t].splice(r,1)})),Object.keys(e.teams).forEach((function(t){var r=e.teams[t].clients,o=r.indexOf(n);-1!==o&&r.splice(o,1)}))},L=function(n,t,r,o){var a,i=t.seeds;try{a=f.derivePreviewKeys(i.preview)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})},H=function(n,t,r,o){var a,i;g((function(r){!function(n,t,r,o){var a,i=t.bytes64;try{a=f.deriveInviteKeys(i)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})}(n,t,0,r((function(e){if(e&&e.error)return r.abort(),void o(e);a=e})))})).nThen((function(t){var r=e.find(a,["teamData","channel"]),u=n.store.proxy.teams||{};if(Object.keys(u).some((function(e){return u[e].channel===r})))return t.abort(),void o({error:"ALREADY_MEMBER"});var f=e.find(a,["teamData","keys","roster"]),l=a.ephemeral;if(!f||!l)return t.abort(),void o({error:"INVALID_INVITE_CONTENT"});var h=v.Team.deriveMemberKeys(f.edit,l);s.create({network:n.store.network||n.store.networkPromise,channel:f.channel,keys:h,store:n.store,Cache:d},t((function(e,r){if(e)return t.abort(),console.error(e),void o({error:"ROSTER_ERROR"});var a=c.createData(n.store.proxy,!1),s=r.getState();i=s.members[l.curvePublic],r.accept(a.curvePublic,t((function(e){if(r.stop(),e)return t.abort(),console.error(e),void o({error:"ACCEPT_ERROR"})})))})))})).nThen((function(){var e={};i.remaining&&1!==i.remaining||_(n,e,a.ephemeral,(function(n){if(!n){var t=e.rpc;i.inviteChannel&&t.removeOwnedChannel(i.inviteChannel,(function(e){e&&console.error(e)})),i.previewChannel&&t.removeOwnedChannel(i.previewChannel,(function(e){e&&console.error(e)}))}})),I(n,{team:a.teamData},0,o)}))},j=function(n){if(n){if(n.keys&&n.keys.mailbox)return n.keys.mailbox;var t=e.find(n,["keys","roster","edit"]);if(t){var r=E.hash(e.decodeUTF8(t)),o=r.slice(0,32),a=e.uint8ArrayToHex(r.slice(32,48)),i=E.box.keyPair.fromSecretKey(o);return{channel:a,viewed:[],keys:{curvePrivate:e.encodeBase64(i.secretKey),curvePublic:e.encodeBase64(i.publicKey)}}}}};return b.init=function(t,r,o){var a={},i=t.store;if(i.loggedIn&&i.proxy.edPublic&&!i.modules?.team){var h={store:i,Store:t.Store,pinPads:t.pinPads,emit:o,onReadyHandlers:{},teams:{},cache:{},nocache:{},updateMetadata:t.updateMetadata,updateProgress:t.updateLoadingProgress,progress:0};i.proxy.teams||(i.proxy.teams={});var b=i.proxy.teams;h.numberOfTeams=Object.keys(b).length,h.store.proxy.on("change",["teams"],(function(e,n,t){"hash"===t[2]&&R(h,t[1],n)})),h.store.proxy.on("remove",["teams"],(function(e,n){"hash"===n[2]&&R(h,n[1])}));var w=function(n,t){if(!n||!t)return!0;try{var r=e.decodeBase64(n),o=E.sign.keyPair.fromSecretKey(r);return e.encodeBase64(o.publicKey)===t}catch(e){return!1}};Object.keys(b).forEach((function(n){h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,r((function(e){if(e){delete h.onReadyHandlers[n],delete h.cache[n],"NOCACHE"===e?.error&&(h.nocache[n]=!0);var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" cache ready")})),d.isEnabled())})),a.onReady=function(t){var r;r={},Object.keys(b).forEach((function(t){try{var o=b[t],a=r[o.channel],i=e.find(o,["keys","drive","edPrivate"]),s=e.find(o,["keys","drive","edPublic"]);if(s?i&&s&&!w(i,s)&&(u.send("TEAM_CORRUPTED_EDPRIVATE"),delete b[t].keys.drive.edPrivate,i=void 0):u.send("TEAM_CORRUPTED_EDPUBLIC"),o.hash&&2===n.parseTypeHash("drive",o.hash).version&&40!==o.hash.length&&u.send("TEAM_CORRUPTED_HASH"),!a)return void(r[o.channel]=t);var c=b[a],f=e.find(c,["keys","drive","edPrivate"]),l=e.find(c,["keys","chat","edit"]),d=e.find(o,["keys","chat","edit"]);!c.hash&&o.hash&&(c.hash=o.hash),!f&&i&&(c.keys.drive.edPrivate=i),!l&&d&&(c.keys.chat.edit=d),h.store.proxy.duplicateTeams=h.store.proxy.duplicateTeams||{},h.store.proxy.duplicateTeams[t]=b[t],delete b[t]}catch(e){console.error(e)}}));var o=function(e){return!b[e]&&(D(h,e),delete h.onReadyHandlers[e],!0)};Object.keys(h.teams).forEach(o),Object.keys(h.onReadyHandlers).forEach((function(n){if(!o(n)){var r=h.store.proxy.teams[n],a=e.find(r,["keys","roster","channel"]),i=e.once(e.mkAsync(t()));g((function(e){x(h,n,r.channel,a,e,i)})),h.onReadyHandlers[n].push({cb:i})}})),Object.keys(b).forEach((function(n){h.onReadyHandlers[n]||h.teams[n]||(h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,t((function(e){if(e){var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" ready")}))))})),A(),O.fire()},a.getTeam=function(e){return h.teams[e]},a.getTeamsData=function(n){var t={},r=!1;return-1!==["drive","teams","settings"].indexOf(n)&&(r=!0),Object.keys(b).forEach((function(n){if(h.teams[n]){var o=h.teams[n].proxy||{},a=o.drive&&Object.keys(o.drive.filesData||{}).length,i=o.drive&&Object.keys(o.drive.sharedFolders||{}).length;t[n]={owner:b[n].owner,name:b[n].metadata.name,channel:b[n].channel,numberPads:a,numberSf:i,roster:e.find(b[n],["keys","roster","channel"]),edPublic:e.find(b[n],["keys","drive","edPublic"]),avatar:e.find(b[n],["metadata","avatar"]),viewer:!e.find(b[n],["keys","drive","edPrivate"]),notifications:e.find(b[n],["keys","mailbox","channel"]),curvePublic:e.find(b[n],["keys","mailbox","keys","curvePublic"]),validKeys:w(e.find(b[n],["keys","drive","edPrivate"]),e.find(b[n],["keys","drive","edPublic"]))},r&&h.teams[n]&&(t[n].secondaryKey=h.teams[n].secondaryKey),h.teams[n]&&(t[n].hasSecondaryKey=Boolean(h.teams[n].secondaryKey))}})),t},a.getTeams=function(){return Object.keys(h.teams)};a.removeFromTeam=function(e,n,t){if(b[e]&&(!t||function(e,n){var t=h.teams[e];if(t){var r=t.roster&&t.roster.getState();if(r.members)return(r.members[n]||{}).pending}}(e,n)))if(h.onReadyHandlers[e])h.onReadyHandlers[e].push({cb:function(){h.teams[e].roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}});else{var r=h.teams[e];r?r.roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)})):console.error("TEAM MODULE ERROR")}},a.changeMyRights=function(e,n,t,r){P(h,e,n,t,r)},a.updateMyData=function(e){Object.keys(h.teams).forEach((function(n){var t=h.teams[n];if(t.roster){var r={};r[e.curvePublic]=e,t.roster.describe(r,(function(e){e&&console.error(e)}))}}))},a.removeClient=function(e){F(h,e)};return a.execCommand=function(t,r,o){var a=r.cmd,i=r.data;if("SUBSCRIBE"!==a)if("LIST_TEAMS"!==a)if("OPEN_TEAM_CHAT"!==a)if("GET_TEAM_ROSTER"!==a)if("GET_TEAM_METADATA"!==a)if("SET_TEAM_METADATA"!==a){if("OFFER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=e.once(o),i=t.teamId;if(i){var s=e.find(n,["store","proxy","teams",i]);if(s){var c=n.teams[i];if(c)if(c.roster)if(t.curvePublic){var u=c.roster.getState().members[t.curvePublic];g((function(t){var r=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a({error:n})},o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"ADD_PENDING_OWNERS",value:[u.edPublic]},t(r))};o(s.channel),o(e.find(s,["keys","roster","channel"])),o(e.find(s,["keys","chat","channel"]))})).nThen((function(e){var n={};n[u.curvePublic]={role:"OWNER"},c.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(t){n.store.mailbox.sendTo("ADD_OWNER",{teamChannel:s.channel,chatChannel:e.find(s,["keys","chat","channel"]),rosterChannel:e.find(s,["keys","roster","channel"]),title:s.metadata.name},{channel:u.notifications,curvePublic:u.curvePublic},t())})).nThen((function(){a()}))}else a({error:"MISSING_DATA"});else a({error:"NO_ROSTER"});else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(h,i,0,o);if("ANSWER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a,i=n.store.proxy.teams;if(Object.keys(i).forEach((function(e){if(i[e].channel===t.teamChannel)return a=e,!0})),a){var s=e.find(n,["store","proxy","teams",a]);if(s){var c=n.teams[a];if(c)if(c.roster){var u={};t.answer?s.owner=!0:(u[n.store.proxy.curvePublic]={role:"ADMIN"},c.roster.describe(u,(function(e){e?o({error:e}):o()})))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("DESCRIBE_USER"!==a){if("INVITE_TO_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=n.user;if(i&&i.curvePublic&&i.notifications){delete i.channel,delete i.lastKnownHash,i.pending=!0;var s={};s[i.curvePublic]=i,s[i.curvePublic].role="VIEWER",a.roster.add(s,(function(n){n&&"NO_CHANGE"!==n?r({error:n}):e.store.mailbox.sendTo("INVITE_TO_TEAM",{team:C(e,o)},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)}))}))}else r({error:"MISSING_DATA"})}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);if("LEAVE_TEAM"!==a){if("JOIN_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void I(h,i,0,o);if("REMOVE_USER"!==a){if("DELETE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a],s=e.find(n,["store","proxy","teams",a]);if(i&&s){var c=i.roster.getState(),f=e.find(n,["store","proxy","curvePublic"]),l=c.members[f];if(!l||"OWNER"!==l.role)return o({error:"EFORBIDDEN"});var d=e.find(n,["store","proxy","edPublic"]),h=e.find(s,["keys","drive","edPublic"]);g((function(e){n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:s.channel},e((function(n){if(n&&n.error)return e.abort(),o({error:n.error});var t=n[0];t&&Array.isArray(t.owners)&&-1!==t.owners.indexOf(d)||(e.abort(),o({error:"EFORBIDDEN"}))})))})).nThen((function(t){i.proxy.delete=!0;var r=i.manager.getChannelsList("owned"),o=e.Saferphore.create(10);r.forEach((function(e){var r=t();o.take((function(t){var o=!1;g((function(r){32===e.length&&n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:e},r((function(e){if(e&&e.error)return t(),void r.abort();var n=e[0];if(!n||!Array.isArray(n.owners)||-1===n.owners.indexOf(h))return t(),void r.abort();o=n.owners.some((function(e){return e!==h}))})))})).nThen((function(t){o?n.Store.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[h]},t()):i.rpc.removeOwnedChannel(e,t((function(e){e&&console.error(e)})))})).nThen((function(){t(),r()}))}))}))})).nThen((function(t){i.rpc.removePins(t((function(e){e&&console.error(e)})));var r=e.find(s,["keys","mailbox","channel"]);i.rpc.removeOwnedChannel(r,t((function(e){e&&console.error(e)})));var o=e.find(s,["keys","roster","channel"]);n.store.rpc.removeOwnedChannel(o,t((function(e){e&&console.error(e)})));var a=e.find(s,["keys","chat","channel"]);n.store.rpc.removeOwnedChannel(a,t((function(e){e&&console.error(e)}))),n.store.rpc.removeOwnedChannel(s.channel,t((function(e){e&&console.error(e)})))})).nThen((function(){u.send("TEAM_DELETION"),D(n,a),o()}))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("CREATE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(t,r,o,a){var i,f=e.once(a),l=n.createChannelId(),h=n.createRandomHash("team",l),b=n.getSecrets("team",h,l),O=n.getViewHashFromKeys(b),A=E.sign.keyPair(),w=E.box.keyPair(),_=v.Team.createSeed(),T=v.Team.deriveMemberKeys(_,{curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate}),x=n.getSecrets("chat"),N=n.getHashes(x),I={network:t.store.network,channel:b.channel,data:{},validateKey:b.keys.validateKey,crypto:v.createEncryptor(b.keys),logLevel:1,classic:!0,ChainPad:m,Cache:d,owners:[t.store.proxy.edPublic]};g((function(e){s.create({network:t.store.network||t.store.networkPromise,channel:T.channel,owners:[t.store.proxy.edPublic],keys:T,store:t.store,lastKnownHash:void 0,newTeam:!0,Cache:d},e((function(n,r){if(n)return e.abort(),console.error(n),void f({error:"ROSTER_ERROR"});i=r;var o=c.createData(t.store.proxy);delete o.channel,i.init(o,e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})));var n,r=v.createEncryptor(x.keys),o={network:t.store.network,channel:x.channel,noChainPad:!0,crypto:r,metadata:{validateKey:x.keys.validateKey,owners:[t.store.proxy.edPublic]}},a=e();o.onReady=function(){n&&n.stop(),a()},o.onError=function(){e.abort(),f({error:"CHAT_INIT_ERROR"})},n=y.start(o)})).nThen((function(e){i.metadata({name:r.name},e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})).nThen((function(){var a=e.createRandomInteger();I.onMetadataUpdate=function(){var e=t.teams[a];e&&t.emit("ROSTER_CHANGE",a,e.clients)};var s=p.create(I),c=s.proxy;c.version=2,c.on("ready",(function(){var d={mailbox:{channel:n.createChannelId(),viewed:[],keys:{curvePrivate:e.encodeBase64(w.secretKey),curvePublic:e.encodeBase64(w.publicKey)}},drive:{edPrivate:e.encodeBase64(A.secretKey),edPublic:e.encodeBase64(A.publicKey)},chat:{edit:N.editHash,view:N.viewHash,validateKey:x.keys.validateKey,channel:x.channel},roster:{channel:T.channel,edit:_,view:T.viewKeyStr}},p=t.store.proxy.teams[a]={owner:!0,channel:b.channel,hash:h,roHash:O,password:l,keys:d,metadata:{name:r.name}};c.drive={},S(t,a,s,i,d,o,(function(){u.send("TEAM_CREATION"),t.store.mailbox.open("team-"+a,p.keys.mailbox,(function(){}),!0,{owners:p.keys.drive.edPublic}),t.updateMetadata(),f()}))})).on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,a)}))}))}(h,i,t,o);if("GET_EDITABLE_FOLDERS"!==a)if("CREATE_INVITE_LINK"!==a){if("GET_PREVIEW_CONTENT"!==a)return"ACCEPT_LINK_INVITATION"===a?h.store.offline?void o({error:"OFFLINE"}):void H(h,i,0,o):void 0;L(h,i,0,o)}else!function(n,t,r,o){var a=e.mkAsync(e.once(o)),i=t.teamId,s=n.teams[t.teamId],u=t.seeds,d=t.bytes64;if(i&&s){var h,p=s.roster;try{h=p.getState().metadata.name}catch(e){return void a({error:"TEAM_NAME_ERR"})}var v=t.message,y=t.name,m=t.hash,E=e.find(n,["store","proxy","teams",i]);try{var b=f.encryptHash(m,E.hash)}catch(e){console.error(e)}var O=f.derivePreviewKeys(u.preview),A=f.deriveInviteKeys(d),w=f.generateKeys(),D=t.role||"VIEWER",_=t.uses||1;g((function(e){!function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamName:h,message:v,author:c.createData(n.store.proxy,!1),displayName:y},i={channel:O.channel,type:"pad",version:2,keys:{cryptKey:O.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(i,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}(),function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamData:C(n,i,"MEMBER"===D),ephemeral:{edPublic:w.edPublic,edPrivate:w.edPrivate,curvePublic:w.curvePublic,curvePrivate:w.curvePrivate}},s={channel:A.channel,type:"pad",version:2,keys:{cryptKey:A.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(s,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}()})).nThen((function(e){s.pin([A.channel,O.channel],(function(e){e&&e.error&&console.error(e.error)})),f.createRosterEntry(s.roster,{curvePublic:w.curvePublic,content:{curvePublic:w.curvePublic,displayName:t.name,pending:!0,remaining:_,totalUses:_,role:D,hash:b,inviteChannel:A.channel,previewChannel:O.channel}},e((function(n){n&&(e.abort(),a(n))})))})).nThen((function(){a()}))}else a({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a];if(i){var s=i.manager.folders||{};o(Object.keys(s).filter((function(e){return!s[e].proxy.version})).map((function(n){var t=e.find(i,["user","userObject"]);return{name:e.find(s,[n,"proxy","metadata","title"]),path:t?t.findFile(n)[0]:[]}})))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster)if(n.curvePublic){var i=a.roster.getState().members[n.curvePublic];a.roster.remove([n.curvePublic],(function(t){if(!t)return i&&i.notifications?void e.store.mailbox.sendTo("KICKED_FROM_TEAM",{pending:n.pending,teamChannel:C(e,o).channel,teamName:C(e,o).metadata.name},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)})):r();r({error:t})}))}else r({error:"MISSING_DATA"});else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=e.store.proxy.curvePublic;a.roster.remove([i],(function(n){n?r({error:n}):(D(e,o),r())}))}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else M(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];a?a.offline?r({error:"OFFLINE"}):a.roster?(n.metadata&&delete n.metadata.offline,a.roster.metadata(n.metadata,(function(t){if(t)r({error:t});else{var a=e.store.proxy.teams[o];a&&(a.metadata=n.metadata),r()}}))):r({error:"NO_ROSTER"}):r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=(a.roster.getState()||{}).metadata||{};i.offline=a.offline,r(i)}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]);if(i){var s=n.teams[a];if(s)if(s.roster){var c,u=(s.roster.getState()||{}).members||{};g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(n.pending_owners=c.pending_owners,Array.isArray(c.pending_owners)&&c.pending_owners.forEach((function(t){var r;if(Object.keys(u).some((function(e){if(u[e].edPublic===t)return r=u[e],!0})),!r&&i.owner){var o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"RM_PENDING_OWNERS",value:[t]},(function(){}))};return o(i.channel),o(e.find(i,["keys","roster","channel"])),void o(e.find(i,["keys","chat","channel"]))}r.pendingOwner=!0})),n.store.messenger){var t=s.getChatData();(n.store.messenger.getOnlineList(t.channel)||[]).forEach((function(e){u[e]&&(u[e].online=!0)}))}Object.keys(u).forEach((function(e){var n=u[e];if(n.inviteChannel&&n.hash)if(i.hash)try{n.hash=f.decryptHash(n.hash,i.hash)}catch(e){console.error(e)}else delete n.hash})),o(u)}))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=e.teams[n.teamId];if(o){var a=function(){e.emit("ROSTER_CHANGE",n.teamId,o.clients)};e.store.messenger?e.store.messenger.openTeamChat(o.getChatData(),a,t,r):A=function(){e.store.messenger.openTeamChat(o.getChatData(),a,t,r)}}else r({error:"ENOENT"})}(h,i,t,o);else!function(n){var t=e.clone(b);Object.keys(t).forEach((function(e){h.teams[e]?t[e].offline=h.teams[e].offline:(t[e].error=!0,h.nocache[e]&&(t[e].offline=!0))})),n(t)}(o);else!function(e,n,t,r){F(e,t);try{e.store.messenger.removeClient(t)}catch(e){}if(A=function(){},n)if(!e.onReadyHandlers[n]||e.teams[n])if(e.teams[n]){var o=e.teams[n].clients;-1===o.indexOf(t)&&o.push(t),r()}else r({error:"EINVAL"});else-1===e.onReadyHandlers[n].indexOf(t)&&e.onReadyHandlers[n].push({cId:t,cb:r});else r()}(h,i,t,o)},a}},b.anonGetPreviewContent=function(e,n,t){L(e,n,0,t)},b};e.exports&&(e.exports=n(Z(),te(),Y(),je(),ze(),Ue(),We(),mt(),wn(),Ae(),(gt||(gt=1,function(e){e.exports&&(e.exports=function(e,n,t,r){var o={},a=e.encodeBase64,i=e.decodeBase64;o.generateKeys=function(){var e=t.sign.keyPair(),n=t.box.keyPair();return{edPublic:a(e.publicKey),edPrivate:a(e.secretKey),curvePublic:a(n.publicKey),curvePrivate:a(n.secretKey)}},o.generateSignPair=function(){var e=t.sign.keyPair();return{validateKey:a(e.publicKey),signKey:a(e.secretKey)}};var s=function(r){var o=n.dispenser(i(r));return{channel:e.uint8ArrayToHex(o(16)),cryptKey:o(t.secretbox.keyLength)}};o.deriveInviteKeys=s,o.derivePreviewKeys=s,o.createRosterEntry=function(e,n,t){var r={};r[n.curvePublic]=n.content,e.invite(r,t)};var c=e.decodeUTF8;return o.encryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.encrypt(e,a)},o.decryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.decrypt(e,a)},o}(Z(),Ne(),N(),M()))}(bt)),bt.exports),Rn(),fe(),Cn(),g(),M(),y(),w(),qe(),N()))})()}(vt)),vt.exports}var At,wt={exports:{}};function Dt(){return At||(At=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c)=>{var u=e.Curve,f={setCustomize:e=>{i=e.Messages}},l="MSG",d="UNFRIEND",h="MAP_ID",p="MAP_ID_ACK",v=function(e){return JSON.parse(JSON.stringify(e))},y=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=p.store.network||e;n.on("message",(function(e,n){N(p,e,n)})),n.on("disconnect",(function(){p.emit("DISCONNECT",null,C(p))})),n.on("reconnect",(function(){p.emit("RECONNECT",null,C(p))}))}));return h.networkPromise?.then(b),p.store.network&&b(),f.onFriendUpdate=function(e){var n=g(h.proxy,e);if(n&&n.channel){var t=p.channels[n.channel];t&&p.emit("UPDATE_DATA",{info:v(n),channel:n.channel},t.clients)}},f.onFriendAdded=function(e){if(p.friendsClients.length){var n=g(p.store.proxy,e.curvePublic);if("object"==typeof n)if(n.channel){var t=n.channel;p.channels[t]||P(p,null,n,(function(){u("FRIEND",{curvePublic:n.curvePublic},p.friendsClients)}))}}},f.onFriendRemoved=function(e,n){I(p,e,n)},f.getOnlineList=function(e){return function(e,n){var t=e.channels[n];if(t){var r=[],o=m(e.store.proxy,!1);return r.push(o.curvePublic),t.wc.members.forEach((function(n){if(n!==e.store.network.historyKeeper){var o=t.mapId[n]||{};o.curvePublic&&-1===r.indexOf(o.curvePublic)&&r.push(o.curvePublic)}})),r}}(p,e)},f.storeValidateKey=function(e,n){p.validateKeys[e]=n},f.leavePad=function(e){delete p.validateKeys[e],Object.keys(p.channels).some((function(n){var t=p.channels[n];if(t.padChan===e){t.wc&&t.wc.leave();var r=p.store.network;return t.onReconnect&&r.off("reconnect",t.onReconnect),t.stopped=!0,delete p.channels[n],!0}}))},f.openTeamChat=function(n,r,o,a){!function(n,r,o,a,i){var s=o,c=s.channel,u=s.secret;if(c&&u){var f=t.once(t.mkAsync((function(){n.emit("TEAMCHAT_READY",c,[r]),i({readOnly:"object"==typeof u.keys&&!u.keys.validateKey,channel:c})}))),l=n.channels[c];if(l)l.onReady.reg((function(){-1===l.clients.indexOf(r)&&l.clients.push(r),f()}));else{u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var d=e.createEncryptor(u.keys),h=u.keys&&u.keys.validateKey||s.validateKey,p={teamId:o.teamId,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:d,channel:c,isTeamChat:!0,decrypt:function(e){return d.decrypt(e,h)},clients:[r],onUserlistUpdate:a,onReady:f};R(n,p)}}else i({error:"EINVAL"})}(p,o,n,r,a)},f.removeClient=function(e){!function(e,n){var t=e.friendsClients.indexOf(n);-1!==t&&e.friendsClients.splice(t,1),Object.keys(e.channels).forEach((function(t){var r=e.channels[t],o=r.clients,a=o.indexOf(n);if(-1!==a&&o.splice(a,1),0===o.length){r.wc&&r.wc.leave();var i=e.store.network;return r.onReconnect&&i.off("reconnect",r.onReconnect),r.stopped=!0,delete e.channels[t],!0}}))}(p,e)},f.execCommand=function(n,r,s){var u=r.cmd,f=r.data;"INIT_FRIENDS"!==u?"GET_ROOMS"!==u?"GET_MUTED_USERS"!==u?"GET_USERLIST"!==u?"OPEN_PAD_CHAT"!==u?"GET_MY_INFO"!==u?"REMOVE_FRIEND"!==u?"CANCEL_FRIEND"!==u?"MUTE_USER"!==u?"UNMUTE_USER"!==u?"GET_STATUS"!==u?"GET_MORE_HISTORY"!==u?"SEND_MESSAGE"!==u?"SET_CHANNEL_HEAD"!==u?"CLEAR_OWNED_CHANNEL"!==u||function(e,n,t){var r=e.channels[n];r?e.store.rpc?e.store.rpc.clearOwnedChannel(n,(function(o){t({error:o}),o||(r.messages=[],e.emit("CLEAR_CHANNEL",n,r.clients))})):t({error:"RPC_NOT_READY"}):t({error:"NO_CHANNEL"})}(p,f,s):_(p,f.id,f.sig,s):function(e,n,t,r){var o=e.channels[n];if(o)if(o.readOnly)r({error:"FORBIDDEN"});else if(e.store.network.webChannels.some((function(e){if(e.id===o.wc.id)return!0}))){var s=e.store.proxy||{},c=[l,s.curvePublic,+new Date,t];if(!o.isFriendChat){var u=s[a.displayNameKey]||i.anonymous+"#"+(s.uid||e.store.noDriveUid).slice(0,5);c.push(u)}var f=JSON.stringify(c),d=o.encrypt(f);o.wc.bcast(d).then((function(){x(e,o,d),r()}),(function(e){r({error:e})}))}else r({error:"NO_SUCH_CHANNEL"});else r({error:"NO_CHANNEL"})}(p,f.id,f.content,s):function(e,n,r,o,a){if("function"==typeof a)if("string"==typeof r){var i=e.channels[n];if(void 0!==i){var s=t.uid();A(e,s,n,a);var c=["GET_HISTORY_RANGE",i.id,{from:r,count:o,txid:s}],u=e.store.network;u.sendto(u.historyKeeper,JSON.stringify(c)).then((function(){}),(function(e){console.error(e)}))}else console.error("chan is undefined. we're going to have a problem here")}else a([])}(p,f.id,f.sig,f.count,s):function(e,n,t){var r=e.channels[n];if(r){r.onUserlistUpdate&&r.onUserlistUpdate();var o=e.store.proxy||{};t(r.wc.members.some((function(n){if(n!==e.store.network.historyKeeper){var t=r.mapId[n]||void 0;return!!t&&t.curvePublic!==o.curvePublic}})))}else t("NO_SUCH_CHANNEL")}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};delete i[n],e.emit("UPDATE_MUTED",null,C(e)),o(Object.keys(i).length)}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};i[n.curvePublic]||(i[n.curvePublic]=n,e.emit("UPDATE_MUTED",null,C(e))),o()}(p,f,s):function(e,n,r){var o=t.once(r);"function"==typeof o?e.Store.cancelFriendRequest(n,o):console.error("NO_CALLBACK")}(p,f,s):function(e,n,r){var a=t.once(r);if("function"==typeof a){var i=e.store.proxy,s=g(i,n);if(!s)return console.error("friend is not valid"),void a({error:"INVALID_FRIEND"});var c=e.channels[s.channel];if(e.store.mailbox&&s.curvePublic&&s.notifications)o.removeFriend(e.store,n,(function(n){n&&n.error?a({error:n.error}):(e.updateMetadata(),a(n))}));else if(c)try{var u=[d,i.curvePublic,+new Date],f=JSON.stringify(u),l=c.encrypt(f);c.wc.bcast(l).then((function(){I(e,n,s.channel),S(e,n,(function(){a()}))}),(function(t){t?a({error:t}):(I(e,n,s.channel),S(e,n,(function(){a()})))}))}catch(e){a({error:e})}else a({error:"NO_SUCH_CHANNEL"})}else console.error("NO_CALLBACK")}(p,f,s):function(e,n){var t=e.store.proxy||{};n({curvePublic:t.curvePublic,displayName:t[a.displayNameKey]})}(p,s):function(n,r,o,a){var i=o.channel,s=t.once(t.mkAsync((function(){n.emit("PADCHAT_READY",i,[r]),a()}))),c=n.channels[i];if(c)c.onReady.reg((function(){-1===c.clients.indexOf(r)&&c.clients.push(r),s()}));else{var u=o.secret;u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var f=e.createEncryptor(u.keys),l=u.keys&&u.keys.validateKey||n.validateKeys[u.channel],d={padChan:o.secret&&o.secret.channel,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:f,channel:o.channel,isPadChat:!0,decrypt:function(e){return f.decrypt(e,l)},clients:[r],onReady:s};R(n,d)}}(p,n,f,s):function(e,n,t){var r=e.channels[n.id];if(r)if(r.isFriendChat){var o=O(e,n.id);if(!o)return void t({error:"NO_SUCH_FRIEND"});t([o])}else t([]);else t({error:"NO_SUCH_CHANNEL"})}(p,f,s):function(e,n){var t=e.store.proxy;if(!n)return t.mutedUsers||{};n(t.mutedUsers||{})}(p,s):function(e,n,t){var r=e.store.proxy;if(n&&n.curvePublic){var o=n.curvePublic,a=g(r,o);if(!a)return void t({error:"NO_SUCH_FRIEND"});var i=e.channels[a.channel];return i?void t([{id:i.id,isFriendChat:!0,name:a.displayName,lastKnownHash:a.lastKnownHash,curvePublic:a.curvePublic,messages:i.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.padChat){var s=e.channels[n.padChat];return s?void t([{id:s.id,isPadChat:!0,messages:s.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.teamChat){var c=e.channels[n.teamChat];return c?void t([{id:c.id,isTeamChat:!0,messages:c.messages}]):void t({error:"NO_SUCH_CHANNEL"})}var u=Object.keys(e.channels).map((function(n){var t,r,o,a=e.channels[n];if(a.isFriendChat){var i=O(e,n);if(!i)return null;t=i.displayName,r=i.lastKnownHash,o=i.curvePublic}else{if(a.isPadChat)return;if(a.isTeamChat)return}return{id:a.id,isFriendChat:a.isFriendChat,name:t,lastKnownHash:r,curvePublic:o,messages:a.messages}})).filter((function(e){return e}));t(u)}(p,f,s):function(e,n,t){var r=E(e.store.proxy);c((function(t){Object.keys(r).forEach((function(o){if("me"!==o){var a=v(r[o]);"object"==typeof a&&a.channel&&P(e,n,a,t())}else delete r.me.channel}))})).nThen((function(){-1===e.friendsClients.indexOf(n)&&e.friendsClients.push(n),t()}))}(p,n,s)},f},f};e.exports&&(e.exports=n(M(),te(),Z(),je(),wn(),Y(),void 0,on(),qe()))})()}(wt)),wt.exports}var _t,Tt={exports:{}};function St(){return _t||(_t=1,function(e){(()=>{const n=(e,n,t,r)=>{var o={},a={};var i=function(n,t,o,a,i){var s,c=e.once(e.mkAsync(i)),u=function(n,t){if(!t)return e.find(n.store,["proxy","edPublic"]);var r=e.find(n,["store","proxy","teams",t]);return e.find(r,["keys","drive","edPublic"])}(n,a),f=n.Store,l=0,d=0,h=0;r((function(e){f.getFileSize(null,{channel:t},e((function(n){return n&&n.error?(e.abort(),void c(n)):void 0===n.size?(e.abort(),void c({error:"ENOENT"})):void(l=n.size)}))),f.getHistory(null,{channel:t,lastKnownHash:o},e((function(n){if(n&&n.error)return e.abort(),void c(n);if(!Array.isArray(n))return e.abort(),void c({error:"EINVAL"});if(n.length){s=n[0].hash;var t=n.map((function(e){return e.msg}));d=t.join("\n").length}})),!0),f.getPadMetadata(null,{channel:t},e((function(n){if((!n||!n.error)&&n&&"object"==typeof n)return h=JSON.stringify(n).length,n&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(u)?void 0:(e.abort(),void c({error:"INSUFFICIENT_PERMISSIONS"}))})))})).nThen((function(){c({size:l-h-d,hash:s})}))};return a.GET_HISTORY_SIZE=function(o,a,s,c){if(o.store.loggedIn&&o.store.rpc){var u=a.channels;if(Array.isArray(u)){var f=[];a.account?u=function(r){var o=[],a=e.find(r.store,["proxy","edPublic"]);-1!==(e.find(r.store,["driveMetadata","owners"])||[]).indexOf(a)&&o.push(r.store.driveChannel);var i=r.store.proxy.profile;if(i){var s=i.edit?n.hrefToHexChannelId("/profile/#"+i.edit,null):null;s&&o.push(s)}r.store.proxy.todo&&o.push(n.hrefToHexChannelId("/todo/#"+r.store.proxy.todo,null));var c=r.store.proxy.mailboxes;if(c){var u=Object.keys(c).map((function(e){return{lastKnownHash:c[e].lastKnownHash,channel:c[e].channel}}));Array.prototype.push.apply(o,u)}var f=r.store.proxy[t.SHARED_FOLDERS];if(f){var l=Object.keys(f).map((function(e){var n=f[e];if(n&&n.owners&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(a))return n.channel})).filter(Boolean);Array.prototype.push.apply(o,l)}return o}(o):a.team&&(u=function(n,t){let r=e.find(n.store,["proxy","teams",t]);if(!r)return[];let o=[r.channel],a=r.keys.roster;return o.push({channel:a.channel,lastKnownHash:a.lastKnownHash}),o}(o,a.team));var l=0,d=[];r((function(e){u.forEach((function(n){var t,r=n;"object"==typeof n&&n.channel&&(r=n.channel,t=n.lastKnownHash),i(o,r,t,a.teamId,e((function(e){e&&e.error?f.push(e.error):(l+=e.size,e.hash&&d.push({channel:r,hash:e.hash}))})))}))})).nThen((function(){c({warning:f.length?f:void 0,channels:d,size:l})}))}else c({error:"EINVAL"})}else c({error:"INSUFFICIENT_PERMISSIONS"})},a.TRIM_HISTORY=function(e,n,t,o){if(e.store.loggedIn&&e.store.rpc){var a=n.channels;if(Array.isArray(a)){var i=function(e,n){if(!n)return e.store.rpc;var t=e.store.modules.team;if(t){var r=t.getTeam(n);if(r)return r.rpc}}(e,n.teamId);if(i){var s=[];r((function(e){a.forEach((function(n){i.trimHistory(n,e((function(e){e&&s.push(e)})))}))})).nThen((function(){1===a.length&&s.length?o({error:s[0]}):o({warning:s.length?s:void 0})}))}else o({error:"ENORPC"})}else o({error:"EINVAL"})}else o({error:"INSUFFICIENT_PERMISSIONS"})},o.init=function(e,n,t){var r={};if(e.store){var o={store:e.store,Store:e.Store,pinPads:e.pinPads,updateMetadata:e.updateMetadata,emit:t};return r.execCommand=function(e,n,t){var r=n.cmd,i=n.data;try{a[r](o,i,e,t)}catch(e){console.error(e)}},r}},o};e.exports&&(e.exports=n(Z(),te(),Ue(),qe()))})()}(Tt)),Tt.exports}var xt,Nt={exports:{}},It={exports:{}};function Ct(){return xt||(xt=1,function(e){(()=>{const n=e=>{var n={};const t=globalThis;var r=function(){},o=n.getWeekNo=function(e,n){"number"!=typeof n&&(n=1);var t=new Date(e.getFullYear(),0,1),r=t.getDay()-n;r=r>=0?r:r+7;var o,a=Math.floor((e.getTime()-t.getTime())/864e5)+1;if(r<4){if((o=Math.floor((a+r-1)/7)+1)>52){var i=new Date(e.getFullYear()+1,0,1).getDay()-n;o=(i=i>=0?i:i+7)<4?1:53}}else o=Math.floor((a+r-1)/7);return o},a=function(e){var n=new Date(e.getFullYear(),0,0),t=e-n+60*(n.getTimezoneOffset()-e.getTimezoneOffset())*1e3;return Math.floor(t/864e5)},i=n.DAYORDER=["SU","MO","TU","WE","TH","FR","SA"],s=function(e){var n=Number(e.slice(0,-2)),t=i.indexOf(e.slice(-2));return n?[n,t]:t},c=function(e,n){var t=e.getDay();t>=(n="number"==typeof n?n:1)?e.setDate(e.getDate()-(t-n)):e.setDate(e.getDate()-(7+t-n))},u=function(e){return e.getFullYear()+"-"+(e.getMonth()+1)+"-"+e.getDate()},f={daily:function(e,n){e.setDate(e.getDate()+n)},weekly:function(e,n){e.setDate(e.getDate()+7*n)},monthly:function(e,n){e.setMonth(e.getMonth()+n)},yearly:function(e,n){e.setFullYear(e.getFullYear()+n)}},l={month:function(e,n,t){var r=new Date(n.start),o=(t-(e.getMonth()+1)+12)%12,a=e.getMonth()+o;if(e.setMonth(a),e.setDate(r.getDate()),e.getMonth()===a)return!0},weekno:function(e,n,t,r){var a=r&&r.wkst;"number"!=typeof a&&(a=1);var i=new Date(n.start),s=new Date(e.getFullYear(),11,31),u=o(s,a),f=1===u;1===u&&(u=52);var l=o(e,a);if(!t||t>u)return!1;t<0&&(t=u+t+1);var d=t-l,h=new Date(+e);h.setDate(h.getDate()+7*d),c(h,a);var p="aaaaaaa".split("").map((function(n,t){var r=new Date(+h);if(r.setDate(r.getDate()+t),r.getFullYear()===e.getFullYear())return r.toLocaleDateString()!==i.toLocaleDateString()&&r})).filter(Boolean);return 1===t&&f&&(c(s,a),"aaaaaaa".split("").some((function(n,t){var r=new Date(+s);if(r.setDate(r.getDate()+t),r.toLocaleDateString()!==i.toLocaleDateString())return r.getFullYear()>e.getFullYear()||void p.push(r)}))),p.length?p:void 0}};l.yearday=function(e,n,t){var r=e.getFullYear();if(function(e,n){if(!("number"!=typeof n||Math.abs(n)<1||Math.abs(n)>366))return n<0&&(n=a(new Date(e.getFullYear(),11,31))+n+1),e.setMonth(0),e.setDate(n),!0}(e,t)&&e.getFullYear()===r)return!0},l.monthday=function(e,n,t,r){if("number"!=typeof t||Math.abs(t)<1||Math.abs(t)>31)return!1;var o=function(e,n){var t=e.getMonth();n<0&&(n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate()+n+1);return e.setDate(n),e.getMonth()===t};if("monthly"===r.freq)return o(e,t);var a="aaaaaaaaaaaa".split("").map((function(n,r){var a=new Date(e.getFullYear(),r,1);return o(a,t)?a:void 0})).filter(Boolean);return a.length?a:void 0},l.day=function(e,n,t,r){var o,a=s(t);Array.isArray(a)&&(o=a[0],a=a[1]);var i=[];if(![0,1,2,3,4,5,6].includes(a))return!1;var c,u=function(e){if(o){var n=[];"aaaaaaaaaaaa".split("").some((function(t,r){if(void 0===e||r===e){var a,s=i.filter((function(e){return e.getMonth()===r}));return a=o<0?s.length+o:o-1,n.push(s[a]),void 0!==e&&r===e}})),i=n.filter(Boolean)}};if("yearly"===r.freq){c=new Date(+e);for(var f=e.getFullYear();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getFullYear()===f;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(),i}if("monthly"===r.freq){c=new Date(+e);for(var l=e.getMonth();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getMonth()===l;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(l),i}if("weekly"===r.freq)for(;e.getDay()!==a;)e.setDate(e.getDate()+1);return!0};var d={month:function(e,n){return e.filter((function(e){return n.includes(e.getMonth()+1)}))},weekno:function(e,n,t){return e.filter((function(e){var r=t&&t.wkst;"number"!=typeof r&&(r=1);var a=new Date(e.getFullYear(),11,31),i=o(a,r);1===i&&(i=52);var s=o(e,r);return n.some((function(e){return e>0?e===s:s===i+e+1}))}))},yearday:function(e,n){return e.filter((function(e){var t=a(e),r=a(new Date(e.getFullYear(),11,31));return n.some((function(e){return e>0?e===t:t===r+e+1}))}))},monthday:function(n,t){return n.filter((function(n){var r=e.clone(t);return(r=r.map((function(e){e<0&&(e=new Date(n.getFullYear(),n.getMonth()+1,0).getDate()+e+1);return e}))).includes(n.getDate())}))},day:function(e,n,t){return e.filter((function(e){var r=e.toLocaleDateString(),o="yearly";return("monthly"===t.freq||"yearly"===t.freq&&t.by&&t.by.month)&&(o="monthly"),n.some((function(n){var t,a=s(n);if(Array.isArray(a)&&(t=a[0],a=a[1]),!t)return e.getDay()===a;var i=new Date(e.getFullYear(),e.getMonth(),1);return"yearly"===o&&i.setMonth(0),l.day(i,{},n,{freq:o}).some((function(e){return e.toLocaleDateString()===r}))}))}))},setpos:function(n,t){var r=n.slice(),o=e.deduplicateString(t.slice().map((function(e){return e>0?e-1:0!==e?r.length+e:void 0})));return n.filter((function(e){var n=r.indexOf(e);return o.includes(n)}))}},h=["month","weekno","yearday","monthday","day"],p=["month","monthday","day"];n.getMonthId=function(e){return e.getFullYear()+"-"+e.getMonth()};var v=t.CP_calendar_cache={},y={};n.resetCache=function(){v=t.CP_calendar_cache={},y={}};var m=function(n){if(!n.recUpdate)return[];var t={},r=n.recUpdate.from;return Object.keys(r||{}).forEach((function(e){var n=r[e];n.recurrenceRule&&(t[e]=n.recurrenceRule)})),Object.keys(t).sort((function(e,n){return Number(e)-Number(n)})).map((function(n){var r=e.clone(t[n]);if(f[r.freq]&&!(r.interval&&r.interval<1))return r._start=Number(n),r})).filter(Boolean)};n.getRecurring=function(n,o){t.CP_DEV_MODE&&(r=console.warn);var i=[];return n.forEach((function(n){var t=n.split("-"),s=new Date(t[0],t[1]),g=new Date(+s);g.setMonth(g.getMonth()+1),g.setMilliseconds(-1),r("Compute month",s.toLocaleDateString()),(o||[]).forEach((function(n){var t=new Date(n.start),o=new Date(n.end),E=n,b=n.recurrenceRule;if(b){var O=m(n),A=O.shift();if(!(t>=g)){for(var w=b.until,D=O.slice(),_=A;_&&_._start&&_._startn)){var t;if(n.getFullYear()===e.getFullYear())t=a(n)-a(e);else{var r=new Date(e.getFullYear(),11,31);for(t=a(r)-a(e)+a(n);r.getFullYear()+1=S)){r("Start iteration",a.toLocaleDateString());var m=function(n,t,o){var a=e.clone(t),i=new Date(a.start),s=a.id.split("|")[0],u=o.toLocaleDateString();v[s]=v[s]||{};var y=n.interval||1,m=n.freq,g=[],E=function(e,t){g=d[e](g,t,n)},b=function(e){return function(t){var r=new Date(+o);"yearly"===n.freq?(r.setMonth(0),r.setDate(1)):"monthly"===n.freq?r.setDate(1):"weekly"===n.freq?c(r,n.wkst):n.freq;var s=l[e](r,a,t,n);if(s)if(Array.isArray(s))s=s.filter((function(e){return e.toLocaleDateString()!==i.toLocaleDateString()})),Array.prototype.push.apply(g,s);else{if(r.toLocaleDateString()===i.toLocaleDateString())return;g.push(r)}}},O=e.once((function(){f[m](o,y)})),A=function(){"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O();var e=new Date(+o);if("monthly"===m||"yearly"===m){if(e.setDate(i.getDate()),e.getDate()!==i.getDate())return;if("yearly"===m&&e.getMonth()!==i.getMonth())return}g.push(e)};if(Array.isArray(v[s][u]))return r("Get cache",s,u),"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O(),v[s][u];if(n.by&&"yearly"===m){var w=h.slice(),D=!1;(n.by.weekno||n.by.yearday||n.by.monthday||n.by.day)&&(w.shift(),D=!0);var _=!0;w.forEach((function(e){var t=n.by[e];t&&(_?(t.forEach(b(e)),_=!1):"day"===e?n.by.yearday||n.by.monthday||n.by.weekno?E("day",n.by.day):n.by.day.forEach(b("day")):E(e,t))})),n.by.month&&D&&E("month",n.by.month)}n.by&&"monthly"===m&&(n.by.monthday||n.by.day?n.by.monthday?n.by.monthday.forEach(b("monthday")):n.by.day&&n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month),n.by.day&&n.by.monthday&&E("day",n.by.day)),n.by&&"weekly"===m&&(n.by.day?n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month)),n.by&&"daily"===m&&(A(),p.forEach((function(e){var t=n.by[e];t&&E(e,t)}))),g.sort((function(e,n){return e-n})),n.by&&n.by.setpos&&E("setpos",n.by.setpos),n.by&&Object.keys(n.by).length?O():A();var T=[];return g=g.filter((function(e){var n=new Date(+e).toLocaleDateString();return!T.includes(n)&&(T.push(n),!0)})),r("Set cache",s,u),v[s][u]=g,g}(b,n,a);if(r("Iteration results",JSON.stringify(m.map((function(e){return new Date(e).toLocaleDateString()})))),!m.length)return a.getFullYear()=S)return r(h.toLocaleDateString(),"count"),w=!0,!0;if(h>=g)return r(h.toLocaleDateString(),"endMonth"),w=!0,!0;if(b.until&&h>b.until)return r(h.toLocaleDateString(),"until"),w=!0,!0;if(!(h=g||h=s){if(y[c.id]&&y[c.id].includes(c.start))return;y[c.id]=y[c.id]||[],y[c.id].push(c.start)}if(E.timeZone&&!c.isAllDay){var m=function(e,n,t){var r=function(e,n){let t=e.toLocaleString("en-CA",{timeZone:n,hour12:!1}).replace(", ","T");return t+="."+e.getMilliseconds().toString().padStart(3,"0"),-(new Date(t+"Z")-e)},o=Intl.DateTimeFormat().resolvedOptions().timeZone,a=r(n,e)-r(t,e);return r(n,o)-r(t,o)-a}(E.timeZone,t,h);c.start+=m,c.end+=m}return i.push(c),D?(v(),!0):void 0}r(h.toLocaleDateString(),"start")})),w||N(a)}};N(t),r("Added this month (all events)",i.map((function(e){return new Date(e.start).toLocaleDateString()})))}}}}}))})),i},n.getAllOccurrences=function(e){if(!e.recurrenceRule)return[e.start];var t=e.recurrenceRule;if(!t.until&&!t.count)return!1;var r=[e.start],o=new Date(e.start);o.setDate(15);for(var a=[],i=0;(a=n.getRecurring([n.getMonthId(o)],[e]))&&(t.count?r.length=1e4;)t.setDate(t.getDate()-a),o++;return{d:o*=a,h:(t=new Date(n)).getHours()-r.getHours(),m:t.getMinutes()-r.getMinutes()}};return n.applyUpdates=function(e){return e.forEach((function(e){if(e.raw={start:e.start,end:e.end},e.recUpdate){var n,t=e.recUpdate.from||{},r=e.recUpdate.one||{},o=e.start,a=m(e).filter((function(e){return e._start>o})).shift(),i=function(n,t){var r=n[t],o=new Date(e.raw[t]);o.setDate(o.getDate()+r.d),o.setHours(o.getHours()+r.h),o.setMinutes(o.getMinutes()+r.m),e[t]=+o};(n=t,Object.keys(n).sort((function(e,n){return Number(e)-Number(n)}))).forEach((function(n){o",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},o={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var n=e%100;if(n>3&&n<21)return"th";switch(n%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},a=function(e,n){return void 0===n&&(n=2),("000"+e).slice(-1*n)},i=function(e){return!0===e?1:0};function s(e,n){var t;return function(){var r=this;clearTimeout(t),t=setTimeout((function(){return e.apply(r,arguments)}),n)}}var c=function(e){return e instanceof Array?e:[e]};function u(e,n,t){if(!0===t)return e.classList.add(n);e.classList.remove(n)}function f(e,n,t){var r=window.document.createElement(e);return n=n||"",t=t||"",r.className=n,void 0!==t&&(r.textContent=t),r}function l(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function d(e,n){return n(e)?e:e.parentNode?d(e.parentNode,n):void 0}function h(e,n){var t=f("div","numInputWrapper"),r=f("input","numInput "+e),o=f("span","arrowUp"),a=f("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?r.type="number":(r.type="text",r.pattern="\\d*"),void 0!==n)for(var i in n)r.setAttribute(i,n[i]);return t.appendChild(r),t.appendChild(o),t.appendChild(a),t}function p(e){try{return"function"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(n){return e.target}}var v=function(){},y=function(e,n,t){return t.months[n?"shorthand":"longhand"][e]},m={D:v,F:function(e,n,t){e.setMonth(t.months.longhand.indexOf(n))},G:function(e,n){e.setHours(parseFloat(n))},H:function(e,n){e.setHours(parseFloat(n))},J:function(e,n){e.setDate(parseFloat(n))},K:function(e,n,t){e.setHours(e.getHours()%12+12*i(new RegExp(t.amPM[1],"i").test(n)))},M:function(e,n,t){e.setMonth(t.months.shorthand.indexOf(n))},S:function(e,n){e.setSeconds(parseFloat(n))},U:function(e,n){return new Date(1e3*parseFloat(n))},W:function(e,n,t){var r=parseInt(n),o=new Date(e.getFullYear(),0,2+7*(r-1),0,0,0,0);return o.setDate(o.getDate()-o.getDay()+t.firstDayOfWeek),o},Y:function(e,n){e.setFullYear(parseFloat(n))},Z:function(e,n){return new Date(n)},d:function(e,n){e.setDate(parseFloat(n))},h:function(e,n){e.setHours(parseFloat(n))},i:function(e,n){e.setMinutes(parseFloat(n))},j:function(e,n){e.setDate(parseFloat(n))},l:v,m:function(e,n){e.setMonth(parseFloat(n)-1)},n:function(e,n){e.setMonth(parseFloat(n)-1)},s:function(e,n){e.setSeconds(parseFloat(n))},u:function(e,n){return new Date(parseFloat(n))},w:v,y:function(e,n){e.setFullYear(2e3+parseFloat(n))}},g={D:"(\\w+)",F:"(\\w+)",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"(\\w+)",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"(\\w+)",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},E={Z:function(e){return e.toISOString()},D:function(e,n,t){return n.weekdays.shorthand[E.w(e,n,t)]},F:function(e,n,t){return y(E.n(e,n,t)-1,!1,n)},G:function(e,n,t){return a(E.h(e,n,t))},H:function(e){return a(e.getHours())},J:function(e,n){return void 0!==n.ordinal?e.getDate()+n.ordinal(e.getDate()):e.getDate()},K:function(e,n){return n.amPM[i(e.getHours()>11)]},M:function(e,n){return y(e.getMonth(),!0,n)},S:function(e){return a(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,n,t){return t.getWeek(e)},Y:function(e){return a(e.getFullYear(),4)},d:function(e){return a(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return a(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,n){return n.weekdays.longhand[e.getDay()]},m:function(e){return a(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a,s=e.isMobile,c=void 0!==s&&s;return function(e,n,r){var o=r||i;return void 0===t.formatDate||c?n.split("").map((function(n,r,a){return E[n]&&"\\"!==a[r-1]?E[n](e,o,t):"\\"!==n?n:""})).join(""):t.formatDate(e,n,o)}},O=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a;return function(e,n,o,a){if(0===e||e){var s,c=a||i,u=e;if(e instanceof Date)s=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)s=new Date(e);else if("string"==typeof e){var f=n||(t||r).dateFormat,l=String(e).trim();if("today"===l)s=new Date,o=!0;else if(/Z$/.test(l)||/GMT$/.test(l))s=new Date(e);else if(t&&t.parseDate)s=t.parseDate(e,f);else{s=t&&t.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var d=void 0,h=[],p=0,v=0,y="";p=0?new Date:new Date(E.config.minDate.getTime()),t=D(E.config);n.setHours(t.hours,t.minutes,t.seconds,n.getMilliseconds()),E.selectedDates=[n],E.latestSelectedDateObj=n}void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var n="keydown"===e.type,t=p(e),r=t;void 0!==E.amPM&&t===E.amPM&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]);var o=parseFloat(r.getAttribute("min")),s=parseFloat(r.getAttribute("max")),c=parseFloat(r.getAttribute("step")),u=parseInt(r.value,10),f=u+c*(e.delta||(n?38===e.which?1:-1:0));if(void 0!==r.value&&2===r.value.length){var l=r===E.hourElement,d=r===E.minuteElement;fs&&(f=r===E.hourElement?f-s-i(!E.amPM):o,d&&L(void 0,1,E.hourElement)),E.amPM&&l&&(1===c?f+u===23:Math.abs(f-u)>c)&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]),r.value=a(f)}}(e);var r=E._input.value;N(),be(),E._input.value!==r&&E._debouncedChange()}function N(){if(void 0!==E.hourElement&&void 0!==E.minuteElement){var e,n,t=(parseInt(E.hourElement.value.slice(-2),10)||0)%24,r=(parseInt(E.minuteElement.value,10)||0)%60,o=void 0!==E.secondElement?(parseInt(E.secondElement.value,10)||0)%60:0;void 0!==E.amPM&&(e=t,n=E.amPM.textContent,t=e%12+12*i(n===E.l10n.amPM[1]));var a=void 0!==E.config.minTime||E.config.minDate&&E.minDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.minDate,!0);if(void 0!==E.config.maxTime||E.config.maxDate&&E.maxDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.maxDate,!0)){var s=void 0!==E.config.maxTime?E.config.maxTime:E.config.maxDate;(t=Math.min(t,s.getHours()))===s.getHours()&&(r=Math.min(r,s.getMinutes())),r===s.getMinutes()&&(o=Math.min(o,s.getSeconds()))}if(a){var c=void 0!==E.config.minTime?E.config.minTime:E.config.minDate;(t=Math.max(t,c.getHours()))===c.getHours()&&r=12)]),void 0!==E.secondElement&&(E.secondElement.value=a(t)))}function R(e){var n=p(e),t=parseInt(n.value)+(e.delta||0);(t/1e3>1||"Enter"===e.key&&!/[^\d]/.test(t.toString()))&&X(t)}function P(e,n,t,r){return n instanceof Array?n.forEach((function(n){return P(e,n,t,r)})):e instanceof Array?e.forEach((function(e){return P(e,n,t,r)})):(e.addEventListener(n,t,r),void E._handlers.push({remove:function(){return e.removeEventListener(n,t)}}))}function k(){ve("onChange")}function M(e,n){var t=void 0!==e?E.parseDate(e):E.latestSelectedDateObj||(E.config.minDate&&E.config.minDate>E.now?E.config.minDate:E.config.maxDate&&E.config.maxDate=0&&A(e,E.selectedDates[1])<=0}(n)&&!me(n)&&a.classList.add("inRange"),E.weekNumbers&&1===E.config.showMonths&&"prevMonthDay"!==e&&t%7==1&&E.weekNumbers.insertAdjacentHTML("beforeend",""+E.config.getWeek(n)+""),ve("onDayCreate",a),a}function j(e){e.focus(),"range"===E.config.mode&&re(e)}function K(e){for(var n=e>0?0:E.config.showMonths-1,t=e>0?E.config.showMonths:-1,r=n;r!=t;r+=e)for(var o=E.daysContainer.children[r],a=e>0?0:o.children.length-1,i=e>0?o.children.length:-1,s=a;s!=i;s+=e){var c=o.children[s];if(-1===c.className.indexOf("hidden")&&$(c.dateObj))return c}}function U(e,n){var t=ee(document.activeElement||document.body),r=void 0!==e?e:t?document.activeElement:void 0!==E.selectedDateElem&&ee(E.selectedDateElem)?E.selectedDateElem:void 0!==E.todayDateElem&&ee(E.todayDateElem)?E.todayDateElem:K(n>0?1:-1);void 0===r?E._input.focus():t?function(e,n){for(var t=-1===e.className.indexOf("Month")?e.dateObj.getMonth():E.currentMonth,r=n>0?E.config.showMonths:-1,o=n>0?1:-1,a=t-E.currentMonth;a!=r;a+=o)for(var i=E.daysContainer.children[a],s=t-E.currentMonth===a?e.$i+n:n<0?i.children.length-1:0,c=i.children.length,u=s;u>=0&&u0?c:-1);u+=o){var f=i.children[u];if(-1===f.className.indexOf("hidden")&&$(f.dateObj)&&Math.abs(e.$i-u)>=Math.abs(n))return j(f)}E.changeMonth(o),U(K(o),0)}(r,n):j(r)}function B(e,n){for(var t=(new Date(e,n,1).getDay()-E.l10n.firstDayOfWeek+7)%7,r=E.utils.getDaysInMonth((n-1+12)%12,e),o=E.utils.getDaysInMonth(n,e),a=window.document.createDocumentFragment(),i=E.config.showMonths>1,s=i?"prevMonthDay hidden":"prevMonthDay",c=i?"nextMonthDay hidden":"nextMonthDay",u=r+1-t,l=0;u<=r;u++,l++)a.appendChild(H(s,new Date(e,n-1,u),u,l));for(u=1;u<=o;u++,l++)a.appendChild(H("",new Date(e,n,u),u,l));for(var d=o+1;d<=42-t&&(1===E.config.showMonths||l%7!=0);d++,l++)a.appendChild(H(c,new Date(e,n+1,d%o),d,l));var h=f("div","dayContainer");return h.appendChild(a),h}function V(){if(void 0!==E.daysContainer){l(E.daysContainer),E.weekNumbers&&l(E.weekNumbers);for(var e=document.createDocumentFragment(),n=0;n1||"dropdown"!==E.config.monthSelectorType)){var e=function(e){return!(void 0!==E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&eE.config.maxDate.getMonth())};E.monthsDropdownContainer.tabIndex=-1,E.monthsDropdownContainer.innerHTML="";for(var n=0;n<12;n++)if(e(n)){var t=f("option","flatpickr-monthDropdown-month");t.value=new Date(E.currentYear,n).getMonth().toString(),t.textContent=y(n,E.config.shorthandCurrentMonth,E.l10n),t.tabIndex=-1,E.currentMonth===n&&(t.selected=!0),E.monthsDropdownContainer.appendChild(t)}}}function G(){var e,n=f("div","flatpickr-month"),t=window.document.createDocumentFragment();E.config.showMonths>1||"static"===E.config.monthSelectorType?e=f("span","cur-month"):(E.monthsDropdownContainer=f("select","flatpickr-monthDropdown-months"),E.monthsDropdownContainer.setAttribute("aria-label",E.l10n.monthAriaLabel),P(E.monthsDropdownContainer,"change",(function(e){var n=p(e),t=parseInt(n.value,10);E.changeMonth(t-E.currentMonth),ve("onMonthChange")})),Y(),e=E.monthsDropdownContainer);var r=h("cur-year",{tabindex:"-1"}),o=r.getElementsByTagName("input")[0];o.setAttribute("aria-label",E.l10n.yearAriaLabel),E.config.minDate&&o.setAttribute("min",E.config.minDate.getFullYear().toString()),E.config.maxDate&&(o.setAttribute("max",E.config.maxDate.getFullYear().toString()),o.disabled=!!E.config.minDate&&E.config.minDate.getFullYear()===E.config.maxDate.getFullYear());var a=f("div","flatpickr-current-month");return a.appendChild(e),a.appendChild(r),t.appendChild(a),n.appendChild(t),{container:n,yearElement:o,monthElement:e}}function J(){l(E.monthNav),E.monthNav.appendChild(E.prevMonthNav),E.config.showMonths&&(E.yearElements=[],E.monthElements=[]);for(var e=E.config.showMonths;e--;){var n=G();E.yearElements.push(n.yearElement),E.monthElements.push(n.monthElement),E.monthNav.appendChild(n.container)}E.monthNav.appendChild(E.nextMonthNav)}function q(){E.weekdayContainer?l(E.weekdayContainer):E.weekdayContainer=f("div","flatpickr-weekdays");for(var e=E.config.showMonths;e--;){var n=f("div","flatpickr-weekdaycontainer");E.weekdayContainer.appendChild(n)}return W(),E.weekdayContainer}function W(){if(E.weekdayContainer){var e=E.l10n.firstDayOfWeek,t=n(E.l10n.weekdays.shorthand);e>0&&e\n "+t.join("")+"\n \n "}}function z(e,n){void 0===n&&(n=!0);var t=n?e:e-E.currentMonth;t<0&&!0===E._hidePrevMonthArrow||t>0&&!0===E._hideNextMonthArrow||(E.currentMonth+=t,(E.currentMonth<0||E.currentMonth>11)&&(E.currentYear+=E.currentMonth>11?1:-1,E.currentMonth=(E.currentMonth+12)%12,ve("onYearChange"),Y()),V(),ve("onMonthChange"),ge())}function Q(e){return!(!E.config.appendTo||!E.config.appendTo.contains(e))||E.calendarContainer.contains(e)}function Z(e){if(E.isOpen&&!E.config.inline){var n=p(e),t=Q(n),r=n===E.input||n===E.altInput||E.element.contains(n)||e.path&&e.path.indexOf&&(~e.path.indexOf(E.input)||~e.path.indexOf(E.altInput)),o="blur"===e.type?r&&e.relatedTarget&&!Q(e.relatedTarget):!r&&!t&&!Q(e.relatedTarget),a=!E.config.ignoredFocusElements.some((function(e){return e.contains(n)}));o&&a&&(void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement&&""!==E.input.value&&void 0!==E.input.value&&x(),E.close(),E.config&&"range"===E.config.mode&&1===E.selectedDates.length&&(E.clear(!1),E.redraw()))}}function X(e){if(!(!e||E.config.minDate&&eE.config.maxDate.getFullYear())){var n=e,t=E.currentYear!==n;E.currentYear=n||E.currentYear,E.config.maxDate&&E.currentYear===E.config.maxDate.getFullYear()?E.currentMonth=Math.min(E.config.maxDate.getMonth(),E.currentMonth):E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&(E.currentMonth=Math.max(E.config.minDate.getMonth(),E.currentMonth)),t&&(E.redraw(),ve("onYearChange"),Y())}}function $(e,n){var t;void 0===n&&(n=!0);var r=E.parseDate(e,void 0,n);if(E.config.minDate&&r&&A(r,E.config.minDate,void 0!==n?n:!E.minDateHasTime)<0||E.config.maxDate&&r&&A(r,E.config.maxDate,void 0!==n?n:!E.maxDateHasTime)>0)return!1;if(!E.config.enable&&0===E.config.disable.length)return!0;if(void 0===r)return!1;for(var o=!!E.config.enable,a=null!==(t=E.config.enable)&&void 0!==t?t:E.config.disable,i=0,s=void 0;i=s.from.getTime()&&r.getTime()<=s.to.getTime())return o}return!o}function ee(e){return void 0!==E.daysContainer&&-1===e.className.indexOf("hidden")&&-1===e.className.indexOf("flatpickr-disabled")&&E.daysContainer.contains(e)}function ne(e){e.target!==E._input||!(E.selectedDates.length>0||E._input.value.length>0)||e.relatedTarget&&Q(e.relatedTarget)||E.setDate(E._input.value,!0,e.target===E.altInput?E.config.altFormat:E.config.dateFormat)}function te(e){var n=p(e),t=E.config.wrap?v.contains(n):n===E._input,r=E.config.allowInput,o=E.isOpen&&(!r||!t),a=E.config.inline&&t&&!r;if(13===e.keyCode&&t){if(r)return E.setDate(E._input.value,!0,n===E.altInput?E.config.altFormat:E.config.dateFormat),n.blur();E.open()}else if(Q(n)||o||a){var i=!!E.timeContainer&&E.timeContainer.contains(n);switch(e.keyCode){case 13:i?(e.preventDefault(),x(),fe()):le(e);break;case 27:e.preventDefault(),fe();break;case 8:case 46:t&&!E.config.allowInput&&(e.preventDefault(),E.clear());break;case 37:case 39:if(i||t)E.hourElement&&E.hourElement.focus();else if(e.preventDefault(),void 0!==E.daysContainer&&(!1===r||document.activeElement&&ee(document.activeElement))){var s=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),z(s),U(K(1),0)):U(void 0,s)}break;case 38:case 40:e.preventDefault();var c=40===e.keyCode?1:-1;E.daysContainer&&void 0!==n.$i||n===E.input||n===E.altInput?e.ctrlKey?(e.stopPropagation(),X(E.currentYear-c),U(K(1),0)):i||U(void 0,7*c):n===E.currentYearElement?X(E.currentYear-c):E.config.enableTime&&(!i&&E.hourElement&&E.hourElement.focus(),x(e),E._debouncedChange());break;case 9:if(i){var u=[E.hourElement,E.minuteElement,E.secondElement,E.amPM].concat(E.pluginElements).filter((function(e){return e})),f=u.indexOf(n);if(-1!==f){var l=u[f+(e.shiftKey?-1:1)];e.preventDefault(),(l||E._input).focus()}}else!E.config.noCalendar&&E.daysContainer&&E.daysContainer.contains(n)&&e.shiftKey&&(e.preventDefault(),E._input.focus())}}if(void 0!==E.amPM&&n===E.amPM)switch(e.key){case E.l10n.amPM[0].charAt(0):case E.l10n.amPM[0].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[0],N(),be();break;case E.l10n.amPM[1].charAt(0):case E.l10n.amPM[1].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[1],N(),be()}(t||Q(n))&&ve("onKeyDown",e)}function re(e){if(1===E.selectedDates.length&&(!e||e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled"))){for(var n=e?e.dateObj.getTime():E.days.firstElementChild.dateObj.getTime(),t=E.parseDate(E.selectedDates[0],void 0,!0).getTime(),r=Math.min(n,E.selectedDates[0].getTime()),o=Math.max(n,E.selectedDates[0].getTime()),a=!1,i=0,s=0,c=r;cr&&ci)?i=c:c>t&&(!s||c0&&h0&&h>s;return p?(d.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach((function(e){d.classList.remove(e)})),"continue"):a&&!p?"continue":(["startRange","inRange","endRange","notAllowed"].forEach((function(e){d.classList.remove(e)})),void(void 0!==e&&(e.classList.add(n<=E.selectedDates[0].getTime()?"startRange":"endRange"),tn&&h===t&&d.classList.add("endRange"),h>=i&&(0===s||h<=s)&&(u=t,l=n,(c=h)>Math.min(u,l)&&c0||t.getMinutes()>0||t.getSeconds()>0),E.selectedDates&&(E.selectedDates=E.selectedDates.filter((function(e){return $(e)})),E.selectedDates.length||"min"!==e||I(t),be()),E.daysContainer&&(ue(),void 0!==t?E.currentYearElement[e]=t.getFullYear().toString():E.currentYearElement.removeAttribute(e),E.currentYearElement.disabled=!!r&&void 0!==t&&r.getFullYear()===t.getFullYear())}}function ie(){return E.config.wrap?v.querySelector("[data-input]"):v}function se(){"object"!=typeof E.config.locale&&void 0===S.l10ns[E.config.locale]&&E.config.errorHandler(new Error("flatpickr: invalid locale "+E.config.locale)),E.l10n=e(e({},S.l10ns.default),"object"==typeof E.config.locale?E.config.locale:"default"!==E.config.locale?S.l10ns[E.config.locale]:void 0),g.K="("+E.l10n.amPM[0]+"|"+E.l10n.amPM[1]+"|"+E.l10n.amPM[0].toLowerCase()+"|"+E.l10n.amPM[1].toLowerCase()+")",void 0===e(e({},m),JSON.parse(JSON.stringify(v.dataset||{}))).time_24hr&&void 0===S.defaultConfig.time_24hr&&(E.config.time_24hr=E.l10n.time_24hr),E.formatDate=b(E),E.parseDate=O({config:E.config,l10n:E.l10n})}function ce(e){if("function"!=typeof E.config.position){if(void 0!==E.calendarContainer){ve("onPreCalendarPosition");var n=e||E._positionElement,t=Array.prototype.reduce.call(E.calendarContainer.children,(function(e,n){return e+n.offsetHeight}),0),r=E.calendarContainer.offsetWidth,o=E.config.position.split(" "),a=o[0],i=o.length>1?o[1]:null,s=n.getBoundingClientRect(),c=window.innerHeight-s.bottom,f="above"===a||"below"!==a&&ct,l=window.pageYOffset+s.top+(f?-t-2:n.offsetHeight+2);if(u(E.calendarContainer,"arrowTop",!f),u(E.calendarContainer,"arrowBottom",f),!E.config.inline){var d=window.pageXOffset+s.left,h=!1,p=!1;"center"===i?(d-=(r-s.width)/2,h=!0):"right"===i&&(d-=r-s.width,p=!0),u(E.calendarContainer,"arrowLeft",!h&&!p),u(E.calendarContainer,"arrowCenter",h),u(E.calendarContainer,"arrowRight",p);var v=window.document.body.offsetWidth-(window.pageXOffset+s.right),y=d+r>window.document.body.offsetWidth,m=v+r>window.document.body.offsetWidth;if(u(E.calendarContainer,"rightMost",y),!E.config.static)if(E.calendarContainer.style.top=l+"px",y)if(m){var g=function(){for(var e=null,n=0;nE.currentMonth+E.config.showMonths-1)&&"range"!==E.config.mode;if(E.selectedDateElem=t,"single"===E.config.mode)E.selectedDates=[r];else if("multiple"===E.config.mode){var a=me(r);a?E.selectedDates.splice(parseInt(a),1):E.selectedDates.push(r)}else"range"===E.config.mode&&(2===E.selectedDates.length&&E.clear(!1,!1),E.latestSelectedDateObj=r,E.selectedDates.push(r),0!==A(r,E.selectedDates[0],!0)&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()})));if(N(),o){var i=E.currentYear!==r.getFullYear();E.currentYear=r.getFullYear(),E.currentMonth=r.getMonth(),i&&(ve("onYearChange"),Y()),ve("onMonthChange")}if(ge(),V(),be(),o||"range"===E.config.mode||1!==E.config.showMonths?void 0!==E.selectedDateElem&&void 0===E.hourElement&&E.selectedDateElem&&E.selectedDateElem.focus():j(t),void 0!==E.hourElement&&void 0!==E.hourElement&&E.hourElement.focus(),E.config.closeOnSelect){var s="single"===E.config.mode&&!E.config.enableTime,c="range"===E.config.mode&&2===E.selectedDates.length&&!E.config.enableTime;(s||c)&&fe()}k()}}E.parseDate=O({config:E.config,l10n:E.l10n}),E._handlers=[],E.pluginElements=[],E.loadedPlugins=[],E._bind=P,E._setHoursFromDate=I,E._positionCalendar=ce,E.changeMonth=z,E.changeYear=X,E.clear=function(e,n){if(void 0===e&&(e=!0),void 0===n&&(n=!0),E.input.value="",void 0!==E.altInput&&(E.altInput.value=""),void 0!==E.mobileInput&&(E.mobileInput.value=""),E.selectedDates=[],E.latestSelectedDateObj=void 0,!0===n&&(E.currentYear=E._initialDate.getFullYear(),E.currentMonth=E._initialDate.getMonth()),!0===E.config.enableTime){var t=D(E.config);C(t.hours,t.minutes,t.seconds)}E.redraw(),e&&ve("onChange")},E.close=function(){E.isOpen=!1,E.isMobile||(void 0!==E.calendarContainer&&E.calendarContainer.classList.remove("open"),void 0!==E._input&&E._input.classList.remove("active")),ve("onClose")},E._createElement=f,E.destroy=function(){void 0!==E.config&&ve("onDestroy");for(var e=E._handlers.length;e--;)E._handlers[e].remove();if(E._handlers=[],E.mobileInput)E.mobileInput.parentNode&&E.mobileInput.parentNode.removeChild(E.mobileInput),E.mobileInput=void 0;else if(E.calendarContainer&&E.calendarContainer.parentNode)if(E.config.static&&E.calendarContainer.parentNode){var n=E.calendarContainer.parentNode;if(n.lastChild&&n.removeChild(n.lastChild),n.parentNode){for(;n.firstChild;)n.parentNode.insertBefore(n.firstChild,n);n.parentNode.removeChild(n)}}else E.calendarContainer.parentNode.removeChild(E.calendarContainer);E.altInput&&(E.input.type="text",E.altInput.parentNode&&E.altInput.parentNode.removeChild(E.altInput),delete E.altInput),E.input&&(E.input.type=E.input._type,E.input.classList.remove("flatpickr-input"),E.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach((function(e){try{delete E[e]}catch(e){}}))},E.isEnabled=$,E.jumpToDate=M,E.open=function(e,n){if(void 0===n&&(n=E._positionElement),!0===E.isMobile){if(e){e.preventDefault();var t=p(e);t&&t.blur()}return void 0!==E.mobileInput&&(E.mobileInput.focus(),E.mobileInput.click()),void ve("onOpen")}if(!E._input.disabled&&!E.config.inline){var r=E.isOpen;E.isOpen=!0,r||(E.calendarContainer.classList.add("open"),E._input.classList.add("active"),ve("onOpen"),ce(n)),!0===E.config.enableTime&&!0===E.config.noCalendar&&(!1!==E.config.allowInput||void 0!==e&&E.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return E.hourElement.select()}),50))}},E.redraw=ue,E.set=function(e,n){if(null!==e&&"object"==typeof e)for(var r in Object.assign(E.config,e),e)void 0!==de[r]&&de[r].forEach((function(e){return e()}));else E.config[e]=n,void 0!==de[e]?de[e].forEach((function(e){return e()})):t.indexOf(e)>-1&&(E.config[e]=c(n));E.redraw(),be(!0)},E.setDate=function(e,n,t){if(void 0===n&&(n=!1),void 0===t&&(t=E.config.dateFormat),0!==e&&!e||e instanceof Array&&0===e.length)return E.clear(n);he(e,t),E.latestSelectedDateObj=E.selectedDates[E.selectedDates.length-1],E.redraw(),M(void 0,n),I(),0===E.selectedDates.length&&E.clear(!1),be(n),n&&ve("onChange")},E.toggle=function(e){if(!0===E.isOpen)return E.close();E.open(e)};var de={locale:[se,W],showMonths:[J,T,q],minDate:[M],maxDate:[M],clickOpens:[function(){!0===E.config.clickOpens?(P(E._input,"focus",E.open),P(E._input,"click",E.open)):(E._input.removeEventListener("focus",E.open),E._input.removeEventListener("click",E.open))}]};function he(e,n){var t=[];if(e instanceof Array)t=e.map((function(e){return E.parseDate(e,n)}));else if(e instanceof Date||"number"==typeof e)t=[E.parseDate(e,n)];else if("string"==typeof e)switch(E.config.mode){case"single":case"time":t=[E.parseDate(e,n)];break;case"multiple":t=e.split(E.config.conjunction).map((function(e){return E.parseDate(e,n)}));break;case"range":t=e.split(E.l10n.rangeSeparator).map((function(e){return E.parseDate(e,n)}))}else E.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));E.selectedDates=E.config.allowInvalidPreload?t:t.filter((function(e){return e instanceof Date&&$(e,!1)})),"range"===E.config.mode&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()}))}function pe(e){return e.slice().map((function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?E.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:E.parseDate(e.from,void 0),to:E.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function ve(e,n){if(void 0!==E.config){var t=E.config[e];if(void 0!==t&&t.length>0)for(var r=0;t[r]&&r1||"static"===E.config.monthSelectorType?E.monthElements[n].textContent=y(t.getMonth(),E.config.shorthandCurrentMonth,E.l10n)+" ":E.monthsDropdownContainer.value=t.getMonth().toString(),e.value=t.getFullYear().toString()})),E._hidePrevMonthArrow=void 0!==E.config.minDate&&(E.currentYear===E.config.minDate.getFullYear()?E.currentMonth<=E.config.minDate.getMonth():E.currentYearE.config.maxDate.getMonth():E.currentYear>E.config.maxDate.getFullYear()))}function Ee(e){return E.selectedDates.map((function(n){return E.formatDate(n,e)})).filter((function(e,n,t){return"range"!==E.config.mode||E.config.enableTime||t.indexOf(e)===n})).join("range"!==E.config.mode?E.config.conjunction:E.l10n.rangeSeparator)}function be(e){void 0===e&&(e=!0),void 0!==E.mobileInput&&E.mobileFormatStr&&(E.mobileInput.value=void 0!==E.latestSelectedDateObj?E.formatDate(E.latestSelectedDateObj,E.mobileFormatStr):""),E.input.value=Ee(E.config.dateFormat),void 0!==E.altInput&&(E.altInput.value=Ee(E.config.altFormat)),!1!==e&&ve("onValueUpdate")}function Oe(e){var n=p(e),t=E.prevMonthNav.contains(n),r=E.nextMonthNav.contains(n);t||r?z(t?-1:1):E.yearElements.indexOf(n)>=0?n.select():n.classList.contains("arrowUp")?E.changeYear(E.currentYear+1):n.classList.contains("arrowDown")&&E.changeYear(E.currentYear-1)}return function(){E.element=E.input=v,E.isOpen=!1,function(){var n=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],o=e(e({},JSON.parse(JSON.stringify(v.dataset||{}))),m),a={};E.config.parseDate=o.parseDate,E.config.formatDate=o.formatDate,Object.defineProperty(E.config,"enable",{get:function(){return E.config._enable},set:function(e){E.config._enable=pe(e)}}),Object.defineProperty(E.config,"disable",{get:function(){return E.config._disable},set:function(e){E.config._disable=pe(e)}});var i="time"===o.mode;if(!o.dateFormat&&(o.enableTime||i)){var s=S.defaultConfig.dateFormat||r.dateFormat;a.dateFormat=o.noCalendar||i?"H:i"+(o.enableSeconds?":S":""):s+" H:i"+(o.enableSeconds?":S":"")}if(o.altInput&&(o.enableTime||i)&&!o.altFormat){var u=S.defaultConfig.altFormat||r.altFormat;a.altFormat=o.noCalendar||i?"h:i"+(o.enableSeconds?":S K":" K"):u+" h:i"+(o.enableSeconds?":S":"")+" K"}Object.defineProperty(E.config,"minDate",{get:function(){return E.config._minDate},set:ae("min")}),Object.defineProperty(E.config,"maxDate",{get:function(){return E.config._maxDate},set:ae("max")});var f=function(e){return function(n){E.config["min"===e?"_minTime":"_maxTime"]=E.parseDate(n,"H:i:S")}};Object.defineProperty(E.config,"minTime",{get:function(){return E.config._minTime},set:f("min")}),Object.defineProperty(E.config,"maxTime",{get:function(){return E.config._maxTime},set:f("max")}),"time"===o.mode&&(E.config.noCalendar=!0,E.config.enableTime=!0),Object.assign(E.config,a,o);for(var l=0;l-1?E.config[h]=c(d[h]).map(_).concat(E.config[h]):void 0===o[h]&&(E.config[h]=d[h])}o.altInputClass||(E.config.altInputClass=ie().className+" "+E.config.altInputClass),ve("onParseConfig")}(),se(),E.input=ie(),E.input?(E.input._type=E.input.type,E.input.type="text",E.input.classList.add("flatpickr-input"),E._input=E.input,E.config.altInput&&(E.altInput=f(E.input.nodeName,E.config.altInputClass),E._input=E.altInput,E.altInput.placeholder=E.input.placeholder,E.altInput.disabled=E.input.disabled,E.altInput.required=E.input.required,E.altInput.tabIndex=E.input.tabIndex,E.altInput.type="text",E.input.setAttribute("type","hidden"),!E.config.static&&E.input.parentNode&&E.input.parentNode.insertBefore(E.altInput,E.input.nextSibling)),E.config.allowInput||E._input.setAttribute("readonly","readonly"),E._positionElement=E.config.positionElement||E._input):E.config.errorHandler(new Error("Invalid input element specified")),function(){E.selectedDates=[],E.now=E.parseDate(E.config.now)||new Date;var e=E.config.defaultDate||("INPUT"!==E.input.nodeName&&"TEXTAREA"!==E.input.nodeName||!E.input.placeholder||E.input.value!==E.input.placeholder?E.input.value:null);e&&he(e,E.config.dateFormat),E._initialDate=E.selectedDates.length>0?E.selectedDates[0]:E.config.minDate&&E.config.minDate.getTime()>E.now.getTime()?E.config.minDate:E.config.maxDate&&E.config.maxDate.getTime()0&&(E.latestSelectedDateObj=E.selectedDates[0]),void 0!==E.config.minTime&&(E.config.minTime=E.parseDate(E.config.minTime,"H:i")),void 0!==E.config.maxTime&&(E.config.maxTime=E.parseDate(E.config.maxTime,"H:i")),E.minDateHasTime=!!E.config.minDate&&(E.config.minDate.getHours()>0||E.config.minDate.getMinutes()>0||E.config.minDate.getSeconds()>0),E.maxDateHasTime=!!E.config.maxDate&&(E.config.maxDate.getHours()>0||E.config.maxDate.getMinutes()>0||E.config.maxDate.getSeconds()>0)}(),E.utils={getDaysInMonth:function(e,n){return void 0===e&&(e=E.currentMonth),void 0===n&&(n=E.currentYear),1===e&&(n%4==0&&n%100!=0||n%400==0)?29:E.l10n.daysInMonth[e]}},E.isMobile||function(){var e=window.document.createDocumentFragment();if(E.calendarContainer=f("div","flatpickr-calendar"),E.calendarContainer.tabIndex=-1,!E.config.noCalendar){if(e.appendChild((E.monthNav=f("div","flatpickr-months"),E.yearElements=[],E.monthElements=[],E.prevMonthNav=f("span","flatpickr-prev-month"),E.prevMonthNav.innerHTML=E.config.prevArrow,E.nextMonthNav=f("span","flatpickr-next-month"),E.nextMonthNav.innerHTML=E.config.nextArrow,J(),Object.defineProperty(E,"_hidePrevMonthArrow",{get:function(){return E.__hidePrevMonthArrow},set:function(e){E.__hidePrevMonthArrow!==e&&(u(E.prevMonthNav,"flatpickr-disabled",e),E.__hidePrevMonthArrow=e)}}),Object.defineProperty(E,"_hideNextMonthArrow",{get:function(){return E.__hideNextMonthArrow},set:function(e){E.__hideNextMonthArrow!==e&&(u(E.nextMonthNav,"flatpickr-disabled",e),E.__hideNextMonthArrow=e)}}),E.currentYearElement=E.yearElements[0],ge(),E.monthNav)),E.innerContainer=f("div","flatpickr-innerContainer"),E.config.weekNumbers){var n=function(){E.calendarContainer.classList.add("hasWeeks");var e=f("div","flatpickr-weekwrapper");e.appendChild(f("span","flatpickr-weekday",E.l10n.weekAbbreviation));var n=f("div","flatpickr-weeks");return e.appendChild(n),{weekWrapper:e,weekNumbers:n}}(),t=n.weekWrapper,r=n.weekNumbers;E.innerContainer.appendChild(t),E.weekNumbers=r,E.weekWrapper=t}E.rContainer=f("div","flatpickr-rContainer"),E.rContainer.appendChild(q()),E.daysContainer||(E.daysContainer=f("div","flatpickr-days"),E.daysContainer.tabIndex=-1),V(),E.rContainer.appendChild(E.daysContainer),E.innerContainer.appendChild(E.rContainer),e.appendChild(E.innerContainer)}E.config.enableTime&&e.appendChild(function(){E.calendarContainer.classList.add("hasTime"),E.config.noCalendar&&E.calendarContainer.classList.add("noCalendar");var e=D(E.config);E.timeContainer=f("div","flatpickr-time"),E.timeContainer.tabIndex=-1;var n=f("span","flatpickr-time-separator",":"),t=h("flatpickr-hour",{"aria-label":E.l10n.hourAriaLabel});E.hourElement=t.getElementsByTagName("input")[0];var r=h("flatpickr-minute",{"aria-label":E.l10n.minuteAriaLabel});if(E.minuteElement=r.getElementsByTagName("input")[0],E.hourElement.tabIndex=E.minuteElement.tabIndex=-1,E.hourElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getHours():E.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),E.minuteElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getMinutes():e.minutes),E.hourElement.setAttribute("step",E.config.hourIncrement.toString()),E.minuteElement.setAttribute("step",E.config.minuteIncrement.toString()),E.hourElement.setAttribute("min",E.config.time_24hr?"0":"1"),E.hourElement.setAttribute("max",E.config.time_24hr?"23":"12"),E.hourElement.setAttribute("maxlength","2"),E.minuteElement.setAttribute("min","0"),E.minuteElement.setAttribute("max","59"),E.minuteElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(t),E.timeContainer.appendChild(n),E.timeContainer.appendChild(r),E.config.time_24hr&&E.timeContainer.classList.add("time24hr"),E.config.enableSeconds){E.timeContainer.classList.add("hasSeconds");var o=h("flatpickr-second");E.secondElement=o.getElementsByTagName("input")[0],E.secondElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getSeconds():e.seconds),E.secondElement.setAttribute("step",E.minuteElement.getAttribute("step")),E.secondElement.setAttribute("min","0"),E.secondElement.setAttribute("max","59"),E.secondElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(f("span","flatpickr-time-separator",":")),E.timeContainer.appendChild(o)}return E.config.time_24hr||(E.amPM=f("span","flatpickr-am-pm",E.l10n.amPM[i((E.latestSelectedDateObj?E.hourElement.value:E.config.defaultHour)>11)]),E.amPM.title=E.l10n.toggleTitle,E.amPM.tabIndex=-1,E.timeContainer.appendChild(E.amPM)),E.timeContainer}()),u(E.calendarContainer,"rangeMode","range"===E.config.mode),u(E.calendarContainer,"animate",!0===E.config.animate),u(E.calendarContainer,"multiMonth",E.config.showMonths>1),E.calendarContainer.appendChild(e);var o=void 0!==E.config.appendTo&&void 0!==E.config.appendTo.nodeType;if((E.config.inline||E.config.static)&&(E.calendarContainer.classList.add(E.config.inline?"inline":"static"),E.config.inline&&(!o&&E.element.parentNode?E.element.parentNode.insertBefore(E.calendarContainer,E._input.nextSibling):void 0!==E.config.appendTo&&E.config.appendTo.appendChild(E.calendarContainer)),E.config.static)){var s=f("div","flatpickr-wrapper");E.element.parentNode&&E.element.parentNode.insertBefore(s,E.element),s.appendChild(E.element),E.altInput&&s.appendChild(E.altInput),s.appendChild(E.calendarContainer)}E.config.static||E.config.inline||(void 0!==E.config.appendTo?E.config.appendTo:window.document.body).appendChild(E.calendarContainer)}(),function(){if(E.config.wrap&&["open","close","toggle","clear"].forEach((function(e){Array.prototype.forEach.call(E.element.querySelectorAll("[data-"+e+"]"),(function(n){return P(n,"click",E[e])}))})),E.isMobile)!function(){var e=E.config.enableTime?E.config.noCalendar?"time":"datetime-local":"date";E.mobileInput=f("input",E.input.className+" flatpickr-mobile"),E.mobileInput.tabIndex=1,E.mobileInput.type=e,E.mobileInput.disabled=E.input.disabled,E.mobileInput.required=E.input.required,E.mobileInput.placeholder=E.input.placeholder,E.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",E.selectedDates.length>0&&(E.mobileInput.defaultValue=E.mobileInput.value=E.formatDate(E.selectedDates[0],E.mobileFormatStr)),E.config.minDate&&(E.mobileInput.min=E.formatDate(E.config.minDate,"Y-m-d")),E.config.maxDate&&(E.mobileInput.max=E.formatDate(E.config.maxDate,"Y-m-d")),E.input.getAttribute("step")&&(E.mobileInput.step=String(E.input.getAttribute("step"))),E.input.type="hidden",void 0!==E.altInput&&(E.altInput.type="hidden");try{E.input.parentNode&&E.input.parentNode.insertBefore(E.mobileInput,E.input.nextSibling)}catch(e){}P(E.mobileInput,"change",(function(e){E.setDate(p(e).value,!1,E.mobileFormatStr),ve("onChange"),ve("onClose")}))}();else{var e=s(oe,50);if(E._debouncedChange=s(k,300),E.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&P(E.daysContainer,"mouseover",(function(e){"range"===E.config.mode&&re(p(e))})),P(window.document.body,"keydown",te),E.config.inline||E.config.static||P(window,"resize",e),void 0!==window.ontouchstart?P(window.document,"touchstart",Z):P(window.document,"mousedown",Z),P(window.document,"focus",Z,{capture:!0}),!0===E.config.clickOpens&&(P(E._input,"focus",E.open),P(E._input,"click",E.open)),void 0!==E.daysContainer&&(P(E.monthNav,"click",Oe),P(E.monthNav,["keyup","increment"],R),P(E.daysContainer,"click",le)),void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement){var n=function(e){return p(e).select()};P(E.timeContainer,["increment"],x),P(E.timeContainer,"blur",x,{capture:!0}),P(E.timeContainer,"click",F),P([E.hourElement,E.minuteElement],["focus","click"],n),void 0!==E.secondElement&&P(E.secondElement,"focus",(function(){return E.secondElement&&E.secondElement.select()})),void 0!==E.amPM&&P(E.amPM,"click",(function(e){x(e),k()}))}E.config.allowInput&&P(E._input,"blur",ne)}}(),(E.selectedDates.length||E.config.noCalendar)&&(E.config.enableTime&&I(E.config.noCalendar?E.latestSelectedDateObj:void 0),be(!1)),T();var n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!E.isMobile&&n&&ce(),ve("onReady")}(),E}function T(e,n){for(var t=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),r=[],o=0;o{const n=(e,n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:()=>{}},d=function(e,n){if(!n||1===n)return e.store;var t=e.store.modules&&e.store.modules.team;return t?t.getTeam(n):void 0},h=function(n,t){n.emit("UPDATE",{teams:t.stores,roTeams:t.roStores,id:t.channel,loading:!t.ready&&!t.cacheready,readOnly:t.readOnly||!t.ready&&t.cacheready||t.offline,offline:t.offline,deleted:!t.stores.length,restricted:t.restricted,owned:n.Store.isOwned(t.owners),content:e.clone(t.proxy),hashes:t.hashes},n.clients)},p=function(e,n){var t=e.calendars[n];t&&t.reminders&&Object.keys(t.reminders).forEach((function(e){Array.isArray(t.reminders[e])&&t.reminders[e].forEach((function(e){clearTimeout(e)}))}))},v=function(e,n){var t=e.calendars[n];t&&(t.stores.length||(t.lm.stop(),p(e,n),delete e.calendars[n]))},y=function(e,n,t){n.stores.forEach((function(r){var o=d(e,r);if(o&&o.proxy&&o.rpc&&o.proxy.calendars){var a=o.proxy.calendars[n.channel];a&&(a.color!==t.color&&(a.color=t.color),a.title!==t.title&&(a.title=t.title))}}))},m=function(n,t,r,o){var a=+new Date,i=e.clone(r),s=i.id;if(Array.isArray(t[s])&&t[s].forEach((function(e){clearTimeout(e)})),t[s]=[],!r.deleted){var u=e.find(n,["store","proxy","hideReminders",s])||[],f=n.store.data.lastVisit;if(i.isAllDay&&(i.startDay&&(i.start=+c.parseDate(i.startDay)),i.endDay)){var l=c.parseDate(i.endDay);l.setHours(23),l.setMinutes(59),l.setSeconds(59),i.end=+l}var d=a-6048e5,h=o&&i.start>f&&i.end<=a&&i.end>d;if(i.end<=a&&!h)return delete t[s],void function(n,t){var r=e.find(n,["store","proxy","hideReminders"])||{};Object.keys(r).filter((function(e){return e===t})).forEach((function(e){delete r[e]}))}(n,s);var p=!1,v=function(t){p=!0,n.Store.onReadyEvt.reg((function(){!function(t){if(!e.find(n,["store","proxy","settings","general","calendar","hideNotif"])){var r=i.start<=a?i.start:+new Date;n.store.mailbox.showMessage("reminders",{msg:{ctime:r,type:"REMINDER",missed:Boolean(h),content:i},hash:"REMINDER|"+s+"-"+t},null,(function(){}))}}(t)}))},y=i.reminders||[];y.sort((function(e,n){return e-n})),y.some((function(e){var n=a+6e4*e;if(!u.some((function(n){return e>=n})))return i.start-n>=2147483647||(i.start<=n?(v(e),!0):void t[s].push(setTimeout((function(){v(e)}),i.start-n)))})),p||n.Store.onReadyEvt.reg((function(){n.store.mailbox.hideMessage("reminders",{hash:"REMINDER|"+s},null,(function(){}))}))}},g=function(n,t,r,o){var i=function(e){var n=new Date,t=new Date(n.getFullYear(),n.getMonth()-1,15),r=new Date(n.getFullYear(),n.getMonth()+1,15),o=a.getMonthId(t),i=a.getMonthId(n),s=a.getMonthId(r),c=a.getRecurring([o,i,s],[e]),u=[e];return Array.prototype.push.apply(u,c),a.applyUpdates(u)}(e.clone(r));i.forEach((function(e){m(n,t,e,o)}))},E=function(e,n,t){var r=e.calendars[n];t&&r&&r.reminders&&(1===r.stores.length&&0===r.stores[0]||g(e,r.reminders,t))},b=function(n,t,r){var o=n.calendars[t];if(o&&o.reminders&&!Object.keys(o.reminders).length&&(1!==o.stores.length||0!==o.stores[0])){var a=e.find(o,["proxy","content"]);a&&Object.keys(a).forEach((function(e){g(n,o.reminders,a[e],r)}))}},O=function(t,r,a){var c=e.once(e.mkAsync(a||function(){})),l=r.storeId,v=r.data,m=v.channel;if(m){var g=t.calendars[m],O=function(){h(t,g)};if(g){if(g.readOnly&&v.href){var A=n.parsePadUrl(v.href),w=n.getSecrets("calendar",A.hash,v.password),D=u.createEncryptor(w.keys);g.hashes.editHash=n.getEditHashFromKeys(w),g.lm.setReadOnly(!1,D),g.readOnly=!1}else if(0===l)return 1===g.stores.length&&0===g.stores[0]&&g.tempId.length&&r.cId&&g.tempId.push(r.cId),void c();return-1!==g.roStores.indexOf(l)&&v.href&&(g.roStores.splice(g.roStores.indexOf(l),1),-1!==g.stores.indexOf(0)&&g.stores.splice(g.stores.indexOf(0),1),O()),g.stores&&-1!==g.stores.indexOf(l)?void c():(-1!==g.stores.indexOf(0)&&(g.stores.splice(g.stores.indexOf(0),1),g.tempId=[]),g.stores.push(l),v.href||g.roStores.push(l),O(),void c())}g=t.calendars[m]={ready:!1,channel:m,readOnly:!v.href,tempId:[],stores:[l],roStores:v.href?[]:[l],reminders:{},hashes:{}},0===l&&g.tempId.push(r.cId);var _=n.parsePadUrl(v.href||v.roHref),T=n.getSecrets("calendar",_.hash,v.password),S=u.createEncryptor(T.keys);g.hashes.viewHash=n.getViewHashFromKeys(T),v.href&&(g.hashes.editHash=n.getEditHashFromKeys(T)),g.proxy={metadata:{color:v.color,title:v.title}},O();var x=function(){g.stores.forEach((function(e){var n=d(t,e);n&&n.rpc&&n.proxy.calendars&&(delete n.proxy.calendars[m],(n.unpin||t.unpinPads)([m],(function(e){e&&e.error&&console.error(e.error)})))})),g.lm&&g.lm.stop(),g.stores=[],h(t,g),p(t,m),delete t.calendars[m]};i((function(e){t.store.network&&!r.isNew&&t.Store.isNewChannel(null,m,e((function(n){if(!n||!n.error)return n&&"boolean"==typeof n.isNew&&n.isNew?(x(),c({error:"EDELETED"}),void e.abort()):void 0})))})).nThen((function(){var e;if(1!==l&&l){var n=t.store.modules.team&&t.store.modules.team.getTeamsData(),a=n&&n[l];e=a?a.edPublic:void 0}else e=t.store.proxy.edPublic;var i={data:{},network:t.store.network||t.store.networkPromise,channel:T.channel,crypto:S,owners:[e],ChainPad:f,validateKey:T.keys.validateKey||void 0,userName:"calendar",Cache:o,classic:!0,onRejected:t.Store&&t.Store.onRejected},u=s.create(i);g.lm=u;var d=g.proxy=u.proxy,h=!1,p=function(){h||(h=!0,setTimeout((function(){h=!1,O()})))};u.proxy.on("cacheready",(function(){d.metadata&&(g.cacheready=!0,p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif))})).on("ready",(function(e){var n=e.metadata;if(g.owners=n.owners||[],g.ready=!0,!d.metadata){if(!r.isNew)return void x();d.metadata={color:v.color,title:v.title}}p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif)})).on("change",[],(function(){g.ready&&p()})).on("change",["content"],(function(e,n,r){2!==r.length||!n||e?2!==r.length||n||!e?(r.length>=3&&["start","reminders","isAllDay"].includes(r[2])||r.length>=6&&["start","reminders","isAllDay"].includes(r[5]))&&setTimeout((function(){E(t,m,d.content[r[1]])})):E(t,m,{id:r[1],start:0}):E(t,m,n)})).on("remove",["content"],(function(e,n){p(),(n.length>=3&&"reminders"===n[2]||n.length>=6&&"reminders"===n[5])&&setTimeout((function(){E(t,m,d.content[n[1]])}))})).on("change",["metadata"],(function(){var e=d.metadata;e&&e.title&&e.color&&y(t,g,e)})).on("disconnect",(function(){g.offline=!0,p()})).on("reconnect",(function(){g.offline=!1,p()})).on("error",(function(e){e&&e.error&&("EDELETED"!==e.error?("ERESTRICTED"===e.error&&(g.restricted=!0,p()),c(e)):x())}))}))}},A=function(e,n){if(n.href&&-1===n.href.indexOf("#"))if(e.secondaryKey)try{n.href=e.userObject.cryptor.decrypt(n.href)}catch(e){console.error(e),delete n.href}else delete n.href},w=function(n,t){var r=t.proxy.calendars,o=t.id||1;t.proxy.on("change",["calendars"],(function(r,a,i){i.length<2||(r&&!a&&function(){var e=i[1],t=n.calendars[e];if(t){var r=t.stores.indexOf(o);if(-1!==r){t.stores.splice(r,1);var a=t.roStores.indexOf(o);-1!==a&&t.roStores.splice(a,1),v(n,e),h(n,t)}}}(),!r&&a&&function(){var r=i[1],a=t.proxy.calendars[r];if(a){var s=e.clone(a);A(t,s),O(n,{storeId:o,data:s})}}())})),Object.keys(r||{}).forEach((function(a){var i=e.clone(r[a]);A(t,i),O(n,{storeId:o,lastVisitNotif:!0,data:i})}))},D=function(e,t,o,a){var i=d(e,t.teamId);if(i)if(i.rpc){var s,c,u,f=i.proxy.calendars=i.proxy.calendars||{},l=(s=n.createRandomHash("calendar"),c=n.getSecrets("calendar",s),u=n.getViewHashFromKeys(c),{href:n.hashToHref(s,"calendar"),roHref:n.hashToHref(u,"calendar"),channel:c.channel});l.color=t.color,l.title=t.title,O(e,{storeId:i.id||1,data:l,isNew:!0},(function(n){if(n)return console.error(n),void a({error:n.error});var t=e.calendars[l.channel];r.whenRealtimeSyncs(t.lm.realtime,(function(){f[l.channel]=l,(i.pin||e.pinPads)([l.channel],(function(e){e&&e.error&&console.error(e.error)})),e.Store.onSync(i.id,a)}))}))}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})};return l.init=function(t,o,a){var s={},c=t.store,u={loggedIn:c.loggedIn&&c.proxy.edPublic,store:c,Store:t.Store,pinPads:t.pinPads,unpinPads:t.unpinPads,updateMetadata:t.updateMetadata,emit:a,onReady:e.mkEvent(!0),calendars:{},clients:[]};return function(e,n){var t=e.store.proxy;t.calendars=t.calendars||{},setTimeout(n)}(u,o((function(e){e||function(e){w(e,e.store);var n=e.store.modules.team&&e.store.modules.team.getTeamsData();n&&Object.keys(n).forEach((function(n){var t=d(e,n);w(e,t)}))}(u)}))),u.store.proxy.on("change",["hideReminders"],(function(e,n,t){var r=t[1].split("|")[0];Object.keys(u.calendars).some((function(e){var n=u.calendars[e];if(n&&n.proxy&&n.proxy.content)return n.proxy.content[r]?(setTimeout((function(){E(u,e,n.proxy.content[r])})),!0):void 0}))})),s.closeTeam=function(e){Object.keys(u.calendars).forEach((function(n){var t=u.calendars[n],r=t.stores.indexOf(e);if(-1!==r){t.stores.splice(r,1);var o=t.roStores.indexOf(e);-1!==o&&t.roStores.splice(o,1),v(u,n),h(u,t)}}))},s.openTeam=function(e){var n=d(u,e);n&&w(u,n)},s.upgradeTeam=function(n){if(n){var t=d(u,n);t&&Object.keys(u.calendars).forEach((function(r){var o=u.calendars[r];if(-1!==o.stores.indexOf(n)){var a=t.proxy.calendars[r],i=e.clone(a);A(t,i),O(u,{storeId:n,data:i}),h(u,o)}}))}},s.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1),Object.keys(e.calendars).forEach((function(t){var r=e.calendars[t];if(1===r.stores.length&&0===r.stores[0]&&r.tempId.length){var o=r.tempId.indexOf(n);-1!==o&&r.tempId.splice(o,1),r.tempId.length||(r.stores=[],v(e,t))}}))}(u,e)},s.execCommand=function(t,o,a){var s=o.cmd,c=o.data;if("SUBSCRIBE"!==s){if("OPEN"!==s)return"IMPORT"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=r.id,s=t.calendars[i];if(s)if(Array.isArray(s.stores)&&-1!==s.stores.indexOf(r.teamId)){var c=t.store,u=c.proxy.calendars=c.proxy.calendars||{},f=s.hashes.editHash,l=s.hashes.viewHash;u[i]={href:f&&n.hashToHref(f,"calendar"),roHref:l&&n.hashToHref(l,"calendar"),channel:i,color:e.find(s,["proxy","metadata","color"])||e.getRandomColor(),title:e.find(s,["proxy","metadata","title"])||"..."},t.Store.onSync(null,a),O(t,{storeId:1,data:{href:u[i].href,toHref:u[i].roHref,channel:i}})}else a({error:"EINVAL"});else a({error:"ENOENT"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"IMPORT_ICS"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.id,i=e.calendars[a];if(i&&i.proxy){var s=n.json;i.proxy.content=i.proxy.content||{},Object.keys(s).forEach((function(n){i.proxy.content[n]=s[n],E(e,a,s[n])})),r.whenRealtimeSyncs(i.lm.realtime,(function(){h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"ADD"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=d(t,r.teamId);if(i)if(i.rpc){var s=i.proxy.calendars=i.proxy.calendars||{},c=n.parsePadUrl(r.href),u=n.getSecrets(c.type,c.hash,r.password);if(u.channel===r.channel){var f=n.getEditHashFromKeys(u),l=n.getViewHashFromKeys(u),h=f&&n.hashToHref(f,"calendar"),p={href:h,roHref:l&&n.hashToHref(l,"calendar"),color:r.color,title:r.title,channel:r.channel};!s[r.channel]||!s[r.channel].href&&p.href?(p.color=r.color,p.title=r.title,O(t,{storeId:i.id||1,data:e.clone(p)},(function(e){if(e)return console.error(e),void a({error:e.error});if(h&&i.id&&i.secondaryKey)try{p.href=i.userObject.cryptor.encrypt(h)}catch(e){console.error(e)}s[p.channel]=p,(i.pin||t.pinPads)([p.channel],(function(e){e&&e.error&&console.error(e.error)})),t.Store.onSync(i.id,a)}))):a()}else a({error:"EINVAL"})}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE"===s?u.loggedIn?c.initialCalendar?void u.Store.onReadyEvt.reg((function(){D(u,c,0,a)})):u.store.offline?void a({error:"OFFLINE"}):void D(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"UPDATE"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){var i=t.id,s=n.calendars[i];if(s){var c=e.find(s,["proxy","metadata"]);c?(c.title=t.title,c.color=t.color,r.whenRealtimeSyncs(s.lm.realtime,a),h(n,s),y(n,s,t)):a({error:"EINVAL"})}else a({error:"ENOENT"})}(u,c,0,a):"DELETE"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(e,n,t,r){var o=d(e,n.teamId);if(o)if(o.rpc){if(o.proxy.calendars){var a=n.id;if(o.proxy.calendars[a]){delete o.proxy.calendars[a],(o.unpin||e.unpinPads)([a],(function(e){e&&e.error&&console.error(e.error)}));var i=e.calendars[a],s=i.stores.indexOf(o.id||1);i.stores.splice(s,1),v(e,a),e.Store.onSync(o.id,(function(){h(e,i),r()}))}else r()}}else r({error:"EFORBIDDEN"});else r({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.calendarId,i=e.calendars[a];if(i){var s=new Date(n.start),c=new Date(n.end);n.isAllDay?(n.startDay=s.getFullYear()+"-"+(s.getMonth()+1)+"-"+s.getDate(),n.endDay=c.getFullYear()+"-"+(c.getMonth()+1)+"-"+c.getDate()):(delete n.startDay,delete n.endDay),i.proxy.content=i.proxy.content||{},i.proxy.content[n.id]=n,r.whenRealtimeSyncs(i.lm.realtime,(function(){E(e,a,n),h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"UPDATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){if(t&&t.ev){var s=t.ev.calendarId,c=n.calendars[s];if(c&&c.proxy&&c.proxy.content){var u=c.proxy.content[t.ev.id];if(u){t.rawData=t.rawData||{};var f,l=t.changes||{},d=t.type||{};if(l.calendarId){if(!(f=n.calendars[l.calendarId])||!f.proxy)return void a({error:"ENOENT"});f.proxy.content=f.proxy.content||{}}var p={one:{},from:{}};["one","from","all"].includes(d.which)&&(u.recUpdate=u.recUpdate||p,u.recUpdate.one||(u.recUpdate.one={}),u.recUpdate.from||(u.recUpdate.from={}));var v=u.recUpdate,y=["calendarId"],m=Object.keys(l).filter((function(e){return!y.includes(e)})),g=function(e){[v.from,v.one].forEach((function(n){Object.keys(n).forEach((function(t){Number(t){const r=[],o=null==jt?void 0:jt.httpUnsafeOrigin;ie.fetchApi(o,"config",!0,(e=>{var o,a;(null===(o=null==e?void 0:e.adminKeys)||void 0===o?void 0:o.includes(n))&&r.push("admin");(null===(a=null==e?void 0:e.moderatorKeys)||void 0===a?void 0:a.includes(n))&&r.push("moderator"),t(r)}))},Ut=(e,n,t)=>{e.Store.anonRpcMsg("",{msg:"IS_PREMIUM",data:n},(e=>{let n=Array.isArray(e)&&e[0];t(n?["premium"]:[])}))},Bt={admin:Kt,moderator:Kt,premium:Ut},Vt={init:(e,n,t)=>{const r={store:e.store,Store:e.Store,updateMetadata:e.updateMetadata};return{removeClient:()=>{},execCommand:(e,n,t)=>{console.log("Exex command",e,n);const o=n.cmd,a=n.data;"LIST_BADGES"!==o?"CHECK_BADGE"!==o?t():((e,n,t,r)=>{const{badge:o,channel:a,user:i}=n,s=ie.decodeBase64(i),c=ie.decodeBase64(o),u=Lt.sign.open(c,s);if(!u)return void r({verified:!1});const f=ie.encodeUTF8(u).split("-");if(f[1]!==a)return void r({verified:!1});const l=f[0];let d=Bt[l];d?d(e,i,(e=>{r({verified:e.includes(l),badge:l})})):r({verified:!1})})(r,a,0,t):((e,n,t,r)=>{var o,a;const i=[];null==jt||jt.httpUnsafeOrigin;const s=n.edPublic||(null===(a=null===(o=e.store)||void 0===o?void 0:o.proxy)||void 0===a?void 0:a.edPublic);Ht((e=>{Kt(0,s,e((e=>{Array.prototype.push.apply(i,e)})))})).nThen((n=>{Ut(e,s,n((e=>{Array.prototype.push.apply(i,e)})))})).nThen((()=>{r(i)}))})(r,a,0,t)}}},setCustomize:e=>{jt=null==e?void 0:e.ApiConfig}};var Yt,Gt=o(Object.freeze({__proto__:null,Badge:Vt}));function Jt(){return Yt||(Yt=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A,w,D,_,T,S,x,N,I,C={},R,P,k,M,F,L)=>{const H=y.Account,j=m.Drive,K=x.Badge,U=globalThis;globalThis.nacl=globalThis.nacl||R.Nacl;const B=i.Saferphore;var V=i.mkEvent(!0),Y=i.mkEvent(!0),G=i.mkEvent(!0),J=i.mkEvent(!0);var q={drive:{hideDuplicate:!0},pad:{width:!0,spellcheck:!0},security:{unsafeLinks:!1},general:{allowUserFeedback:!0}};return{setCustomize:n=>{e=n.ApiConfig,C=n.AppConfig},create:function(y){var m=U.Cryptpad_Store={};let x=y.query||function(){},P=y.broadcast||function(){};var M=U.CryptPad_AsyncStore={modules:{}};m.onReadyEvt=V;var W=[],z=function(e,n,t){W.forEach((function(r){r!==t&&x(r,e,n)}))},Q=function(e){if(!e)return M;try{var n=M.modules.team.getTeam(e);return n||void console.error("Team not found",e)}catch(n){return console.error(n),void console.error("Team not found",e)}},Z=m.onSync=function(e,n){var t=Q(e);t?L((function(e){if(t.realtime&&u.whenRealtimeSyncs(t.realtime,e()),!t.id&&t.drive?.realtime&&u.whenRealtimeSyncs(t.drive.realtime,e()),t.sharedFolders&&"object"==typeof t.sharedFolders)for(var n in t.sharedFolders)t.sharedFolders[n].realtime&&u.whenRealtimeSyncs(t.sharedFolders[n].realtime,e())})).nThen((function(){n()})):n({error:"ENOTFOUND"})};m.get=function(e,n,t){var r=Q(n.teamId);r?r.proxy?t(i.find(r.proxy,n.key)):t({error:"ENODRIVE"}):t({error:"ENOTFOUND"})},m.set=function(e,n,t){var r=Q(n.teamId);if(r)if(r.proxy){var o=n.key.slice(),a=o.pop(),s=i.find(r.proxy,o);s&&"object"==typeof s?(void 0===n.value?delete s[a]:s[a]=n.value,n.teamId||(P([e],"UPDATE_METADATA"),Array.isArray(o)&&"profile"===o[0]&&M.messenger&&f.updateMyData(M)),Z(n.teamId,t)):t({error:"INVALID_PATH"})}else t({error:"ENODRIVE"});else t({error:"ENOTFOUND"})};const X=e=>{let n;if(e){const t=Q(e);n=t?.drive?.proxy}else n=M.drive?.proxy;return n};m.drive={get:(e,n,t)=>{let r=X(n.teamId);t(r||{error:"ENOTFOUND"})},set:(e,n,t)=>{let r=X(n.teamId);var o,a;r?(o=r,a=n.value,Object.keys(o).forEach((e=>{delete o[e]})),Object.keys(a).forEach((e=>{o[e]=i.clone(a[e])})),Z(n.teamId,t)):t({error:"ENOTFOUND"})}},m.getSharedFolder=function(e,n,r){var o,a=Q(n.teamId),s=n.id;if(a&&a.manager){if(a.manager.folders[s])return(o=i.clone(a.manager.folders[s].proxy)).offline=Boolean(a.manager.folders[s].offline),void r(o);var c=i.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};c[s]?m.loadSharedFolder(n.teamId,s,c[s],(function(){r(a.manager.folders[s].proxy)})):r({})}else r({error:"ENOTFOUND"})},m.restoreSharedFolder=function(e,n,t){if(n.sfId&&n.drive){var r=Q(n.teamId);r.sharedFolders[n.sfId]&&(Object.keys(n.drive).forEach((function(e){r.sharedFolders[n.sfId].proxy[e]=n.drive[e]})),Object.keys(r.sharedFolders[n.sfId].proxy).forEach((function(e){n.drive[e]||delete r.sharedFolders[n.sfId].proxy[e]}))),Z(n.teamId,t)}else t({error:"EINVAL"})},m.hasSigningKeys=function(){if(M.proxy)return"string"==typeof M.proxy.edPrivate&&"string"==typeof M.proxy.edPublic},m.hasCurveKeys=function(){if(M.proxy)return"string"==typeof M.proxy.curvePrivate&&"string"==typeof M.proxy.curvePublic},m.isOwned=function(e){var n=M.proxy.edPublic;if(!n)return!1;if(!Array.isArray(e)||!e.length)return!1;if(-1!==e.indexOf(n))return!0;var t=M.proxy.teams;return!!t&&Object.keys(t).some((function(n){var r=i.find(t[n],["keys","drive","edPublic"]);return r&&-1!==e.indexOf(r)}))};var $=function(e){var n=e?M.manager.getChannelsList("expirable"):function(){var e=`${M.driveChannel}#drive`;if(!e)return null;var n=M.manager.getChannelsList("pin"),t=M.proxy.profile;if(t){var r=t.edit?a.hrefToHexChannelId("/profile/#"+t.edit,null):null;r&&n.push(r);var o=t.avatar?a.hrefToHexChannelId(t.avatar,null):null;o&&n.push(o)}if(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.friends){var i=f.getFriendChannelsList(M.proxy);n=n.concat(i)}if(M.proxy.mailboxes){var s=Object.keys(M.proxy.mailboxes).map((function(e){if("broadcast"!==e||M.isAdmin)return M.proxy.mailboxes[e].channel})).filter(Boolean);n=n.concat(s)}if(M.proxy.calendars){var c=Object.keys(M.proxy.calendars).map((function(e){return M.proxy.calendars[e].channel}));n=n.concat(c)}return n.push(e),M.data&&M.data.blockId&&n.push(`${M.data.blockId}#block`),n.sort(),n}();return i.deduplicateString(n).sort()};m.pinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){"function"!=typeof t&&(console.error("expected a callback"),t=function(){});var o=n.pads||n;r.rpc.pin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})},m.unpinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){var o=n.pads||n;r.rpc.unpin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})};var ee=M.account={};m.getPinnedUsage=function(e,n,t){var r=Q(n&&n.teamId);r&&r.rpc?r.rpc.getFileListSize((function(e,n){r.id||"number"!=typeof n||(ee.usage=n),t({bytes:n})})):t({error:"RPC_NOT_READY"})},m.updatePinLimit=function(e,n,t){M.rpc?M.rpc.updatePinLimits((function(e,n,r,o){e?t({error:e}):(ee.limit=n,ee.plan=r,ee.note=o,t(ee))})):t({error:"RPC_NOT_READY"})},m.getPinLimit=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.getLimit((function(e,n,o,a){if(e)t({error:e});else{var i=r.id?{}:ee;i.limit=n,i.plan=o,i.note=a,t(i)}})):t({error:"RPC_NOT_READY"})},m.clearOwnedChannel=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.clearOwnedChannel(n.channel,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})};var ne={};m.removeOwnedChannel=function(e,n,t){var r,o,a=n,i=!1;if(n&&"object"==typeof n&&(a=n.channel,i=n.force,r=n.teamId,o=n.reason),a!==M.driveChannel||i){var s=Q(r);s?s.rpc?(m.channels[a]&&(ne[a]=!0),s.rpc.removeOwnedChannel(a,(function(e){e&&delete ne[a],t({error:e})}),o)):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})}else t({error:"User drive removal blocked!"})};m.uploadComplete=function(e,n,t){var r=Q(n.teamId);r?r.rpc?n.owned?r.rpc.ownedUploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):r.rpc.uploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadStatus=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadStatus(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadCancel=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadCancel(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadChunk=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.send.unauthenticated("UPLOAD",n.chunk,(function(e,n){t({error:e,msg:n})})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})};m.anonRpcMsg=function(e,n,t){M.anon_rpc?M.anon_rpc.send(n.msg,n.data,(function(e,n){t(e?{error:e}:n)})):t({error:"ANON_RPC_NOT_READY"})},m.getFileSize=function(e,n,t){var r=i.once(i.mkAsync(t));if(M.anon_rpc){var o=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("GET_FILE_SIZE",o,(function(e,n){if(!e)return n&&n.length&&"number"==typeof n[0]?(0===n[0]&&p.clearChannel(o),void r({size:n[0]})):void r({error:"INVALID_RESPONSE"});r({error:e})}))}else r({error:"ANON_RPC_NOT_READY"})},m.isNewChannel=function(e,n,t){if(M.anon_rpc){var r=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("IS_NEW_CHANNEL",r,(function(e,n){if(!e)return n&&n.length&&"object"==typeof n[0]?(n[0].isNew&&p.clearChannel(r),void t(n[0])):void t({error:"INVALID_RESPONSE"});t({error:e})}))}else t({error:"ANON_RPC_NOT_READY"})},m.getMultipleFileSize=function(e,n,t){M.anon_rpc?Array.isArray(n.files)?M.anon_rpc.send("GET_MULTIPLE_FILE_SIZE",n.files,(function(e,n){e?t({error:e}):n&&n.length&&"object"==typeof n[0]?t({size:n[0]}):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"}):t({error:"ANON_RPC_NOT_READY"})},m.getDeletedPads=function(e,n,t){if(M.anon_rpc){var r=n&&n.list||$(!0);Array.isArray(r)?M.anon_rpc.send("GET_DELETED_PADS",r,(function(e,n){e?t({error:e}):n&&n.length&&Array.isArray(n[0])?t(n[0]):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"})}else t({error:"ANON_RPC_NOT_READY"})};var te=function(e,n,t){M.anon_rpc?t():d.createAnonymous(M.network,(function(e,n){e?t({error:e}):(M.anon_rpc=n,t())}))},re=m.getAllStores=function(){if(!M.proxy||!M.manager)return[];var e=[M],n=M.modules.team;if(n){var t=n.getTeams().map((function(e){return n.getTeam(e)}));Array.prototype.push.apply(e,t)}return e};m.getUserColor=function(){var e=i.find(M,["proxy","settings","general","cursor","color"]);return e||(e=i.getRandomColor(!0),m.setAttribute(null,{attr:["general","cursor","color"],value:e},(function(){}))),e},m.getMetadata=function(e,n,t){var r=M.proxy||{},o=i.find(r,["settings","general","disableThumbnails"]),c=M.modules.team&&M.modules.team.getTeamsData(n)||{};r.uid||(M.noDriveUid=M.noDriveUid||a.createChannelId());var u={user:{name:r[s.displayNameKey]||M.noDriveName||"",uid:r.uid||M.noDriveUid,avatar:i.find(r,["profile","avatar"]),profile:i.find(r,["profile","view"]),color:m.getUserColor(),notifications:i.find(r,["mailboxes","notifications","channel"]),curvePublic:r.curvePublic,edPublic:r.edPublic,badge:i.find(r,["profile","badge"])},priv:{clientId:e,edPublic:r.edPublic,edPrivate:r.edPrivate,friends:r.friends||{},settings:r.settings||q,thumbnails:!1===o,isDriveOwned:Boolean(i.find(M,["driveMetadata","owners"])),driveChannel:M.driveChannel,pendingFriends:r.friends_pending||{},supportPrivateKey:i.find(r,["mailboxes","supportadmin","keys","curvePrivate"]),accountName:r.login_name||"",offline:M.proxy&&M.offline,teams:c,plan:M.ready?ee.plan||"":void 0,mutedChannels:r.mutedChannels}};return t(JSON.parse(JSON.stringify(u))),u},m.onMaintenanceUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{e&&P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"MAINTENANCE",data:e.maintenance}})}))},m.onSurveyUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"SURVEY",data:e.surveyURL}})}))};m.addPad=function(e,n,r){if(n.href||n.roHref){var o;if(!n.roHref){var i=a.parsePadUrl(n.href);"pad"===i.hashData.type&&(o=a.getSecrets(i.type,i.hash,n.password),n.roHref="/"+i.type+"/#"+a.getViewHashFromKeys(o))}var s,c,u,f,l=(s=n.href,c=n.roHref,u=n.title,f=+new Date,{href:s,roHref:c,atime:f,ctime:f,title:u||t.getDefaultName(a.parsePadUrl(s))});n.owners&&(l.owners=n.owners),n.expire&&(l.expire=n.expire),n.password&&(l.password=n.password),(n.channel||o)&&(l.channel=n.channel||o.channel),n.readme&&(l.readme=1),-1===n.teamId&&(n.teamId=void 0);var d=Q(n.teamId);d&&d.manager?d.manager.addPad(n.path,l,(function(o){o?r({error:o}):(re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,r))})):r({error:"ENOTFOUND"})}else r({error:"NO_HREF"})};var oe=function(e,n){var t=i.find(M,["proxy","edPublic"]),r=function(e){var n=[];return e?(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.profile&&M.proxy.profile.edit&&n.push(a.hrefToHexChannelId("/profile/#"+M.proxy.profile.edit,null)),M.proxy.mailboxes&&Object.keys(M.proxy.mailboxes||{}).forEach((function(e){if("supportadmin"!==e){var t=M.proxy.mailboxes[e];n.push(t.channel)}}))):n=M.manager.getChannelsList("owned"),n.filter((function(e){if("string"==typeof e)return-1!==[32,48].indexOf(e.length)}))}(e),o=B.create(10),s=function(n){e||M.manager.findChannel(n).forEach((function(e){var n=M.manager.findFile(e.id);M.manager.delete({paths:n})}))};r.forEach((function(e){var r=n();o.take((function(n){var o=!1;L((function(a){32===e.length&&m.anonRpcMsg(null,{msg:"GET_METADATA",data:e},a((function(i){if(i&&i.error)return n(),r(),void a.abort();var c=i[0];return Object.keys(c||{}).length?c&&Array.isArray(c.owners)&&-1!==c.owners.indexOf(t)?void(o=c.owners.some((function(e){return e!==t}))):(n(),r(),void a.abort()):(s(e),n(),r(),void a.abort())})))})).nThen((function(n){o?m.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[t]},n()):M.rpc.removeOwnedChannel(e,n((function(n){n?console.error(n):s(e)})))})).nThen((function(){n(),r()}))}))}))};m.removeOwnedPads=function(e,n,t){M.proxy.edPublic?L((function(e){oe(!1,e)})).nThen(t):t({error:"NOT_LOGGED_IN"})},m.deleteAccount=function(e,t,r){var o=M.proxy.edPublic,a=t&&t.keys,c=t&&t.auth;m.anonRpcMsg(e,{msg:"GET_METADATA",data:M.driveChannel},(function(t){var u=t[0];if(u&&u.owners&&1===u.owners.length&&-1!==u.owners.indexOf(o))L((function(e){N.checkRights({auth:c,blockKeys:a},e((function(n){if(n)return e.abort(),console.error(n),void r({error:"INVALID_CODE"})})))})).nThen((function(n){globalThis.accountDeletion=e,M.proxy[s.tokenKey]="DELETED",Z(null,n())})).nThen((function(e){M.rpc.removePins(e((function(e){e&&console.error(e)})))})).nThen((function(n){M.ownDeletion=!0,m.removeOwnedChannel(e,{channel:M.driveChannel,force:!0},n())})).nThen((function(e){a&&N.removeLoginBlock({reason:"ARCHIVE_OWNED",auth:c,edPublic:o,blockKeys:a},e((function(e){e&&console.error(e)})))})).nThen((function(e){oe(!0,e)})).nThen((function(){P([e],"DRIVE_DELETED","ARCHIVE_OWNED"),x(e,"DELETE_ACCOUNT","DELETED",(function(){})),M.network.disconnect(),r({state:!0})}));else{var f={intent:"Please delete my account."};f.drive=M.driveChannel,f.edPublic=o;var l=i.decodeBase64(M.proxy.edPrivate),d=R.Nacl.sign.detached(i.decodeUTF8(n(f)),l);R.Nacl.sign.detached.verify(i.decodeUTF8(n(f)),d,i.decodeBase64(o))||console.error("signed message failed verification");var h=i.encodeBase64(d);r({proof:h,toSign:JSON.parse(n(f))})}}))},m.migrateAnonDrive=function(e,n,t){var r=n.anonHash;h.anonDriveIntoUser(M,r,t)},m.setDisplayName=function(e,n,t){if(!M.proxy)return M.noDriveName=n,P([e],"UPDATE_METADATA"),void t();M.modules.profile&&M.modules.profile.setName(n),M.proxy[s.displayNameKey]=n,P([e],"UPDATE_METADATA"),f.updateMyData(M),Z(null,t)},m.resetDrive=function(e,n,t){L((function(e){oe(e)})).nThen((function(){M.proxy.drive=M.userObject.getStructure(),z("DRIVE_CHANGE",{path:["drive","filesData"]},e),Z(null,t)}))},m.setPadAttribute=function(e,n,r){L((function(r){re().forEach((function(o){o.manager.setPadAttribute(n,r((function(){(o.id?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),Z(o.id,r())})))}))})).nThen(r)},m.getPadAttribute=function(e,n,t){var r={};L((function(e){re().forEach((function(t){t.manager.getPadAttribute(n,e((function(e,n){e||(n&&"object"==typeof n?(!r.value||r.atime{if(M.loggedIn&&M.proxy.edPublic){var n,r=M.modules.team,o=r&&r.getTeams()||[];-1!==e.indexOf(M.proxy.edPublic)?n=M:o.some((function(t){var o=i.find(M,["proxy","teams",t,"keys","drive","edPublic"]),a=i.find(M,["proxy","teams",t,"keys","drive","edPrivate"]);if(-1===e.indexOf(o))return!1;if(!a)return!1;var s=r.getTeam(t);return n=s,!0}));var a=function(){if(n){var e=n.rpc;e?e.send("COOKIE","",(function(e){t(e)})):t("ERESTRICTED")}else t("ERESTRICTED")};n&&n.onRpcReadyEvt?n.onRpcReadyEvt.reg((function(){a()})):a()}else t("ERESTRICTED")}))):t("ERESTRICTED")},m.joinPad=function(e,n){if(n.versionHash)!function(e,n){var t,r=a.createChannelId();L((function(r){m.getPadMetadata(null,{channel:n.channel},r((function(n){if(n&&n.rejected)return x(e,"PAD_ERROR",{type:"ERESTRICTED"}),void r.abort();t=n.validateKey})))})).nThen((function(){m.getHistoryRange(e,{cpCount:1,channel:n.channel,lastKnownHash:n.versionHash},(function(o){if(o&&o.error)x(e,"PAD_ERROR",o.error);else{var a=o.messages||[];a.length&&a[a.length-1].serverHash!==n.versionHash?x(e,"PAD_ERROR",{type:"HASH_NOT_FOUND"}):(x(e,"PAD_CONNECT",{myID:r,id:n.channel,members:[r]}),(o.messages||[]).forEach((function(n){x(e,"PAD_MESSAGE",{msg:n.msg,time:n.time,user:r.slice(0,16)})})),t&&M.messenger&&M.messenger.storeValidateKey(n.channel,t),x(e,"PAD_READY"))}}))}))}(e,n);else if(a.isValidChannel(n.channel)){var r=void 0===se[n.channel],o=se[n.channel]=se[n.channel]||{queue:[],data:{},clients:[],bcast:function(e,n,t){o.clients.forEach((function(r){r!==t&&x(r,e,n)}))},history:[],pushHistory:function(e,n){if(n){var t;for(o.history.push("cp|"+e),t=o.history.length-101;t>0&&!/^cp\|/.test(o.history[t]);t--);o.history=o.history.slice(Math.max(t,0))}else o.history.push(e)}};if(-1===o.clients.indexOf(e)&&o.clients.push(e),!r&&o.wc)return x(e,"PAD_CONNECT",{myID:o.wc.myID,id:o.wc.id,members:o.wc.members}),o.wc.members.forEach((function(n){x(e,"PAD_JOIN",n)})),o.history.forEach((function(n){x(e,"PAD_MESSAGE",{msg:k.removeCp(n),user:o.wc.myID,validateKey:o.data.validateKey})})),void x(e,"PAD_READY");var i=function(e){e&&"EDELETED"===e.type&&ne[n.channel]&&(delete ne[o],e.ownDeletion=!0),o.bcast("PAD_ERROR",e),e&&"EDELETED"===e.type&&p&&p.clearChannel&&p.clearChannel(n.channel),-1!==["EDELETED","EEXPIRED","ERESTRICTED"].indexOf(e.type)&&m.leavePad(null,n,(function(){}))},s={Cache:M.neverCache?void 0:p,priority:1,onCacheStart:function(){x(e,"PAD_CACHE")},onCacheReady:function(){x(e,"PAD_CACHE_READY")},onReady:function(t){var r=t.metadata||{};o.data=r,r&&r.validateKey&&M.messenger&&M.messenger.storeValidateKey(n.channel,r.validateKey),x(e,"PAD_READY",t.noCache)},onMessage:function(e,n,t,r,a){o.lastHash=a,o.pushHistory(e,r),o.bcast("PAD_MESSAGE",{user:n,msg:e,validateKey:t})},onJoin:function(e){o.bcast("PAD_JOIN",e)},onLeave:function(e){o.bcast("PAD_LEAVE",e)},onError:i,onChannelError:i,onRejected:m.onRejected,onConnectionChange:function(e){e.state||o.bcast("PAD_DISCONNECT")},onMetadataUpdate:function(e){o.data=e||{},re().forEach((function(r){r.manager.findChannel(n.channel,!0).forEach((function(n){n.data.owners=e.owners,n.data.atime=+new Date,e.expire&&(n.data.expire=+e.expire)})),(r.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})})),o.bcast("PAD_METADATA",e)},crypto:{encrypt:function(e){return e},decrypt:function(e){return e}},noChainPad:!0,channel:n.channel,metadata:n.metadata,network:M.network||M.networkPromise,websocketURL:I.getWebsocketURL(),onInit:function(){G.fire()},onConnect:function(n,t){o.sendMessage=function(e,r,a){t(e,(function(t){t?a({error:t}):(o.lastHash=e.slice(0,64),o.pushHistory(k.removeCp(e),/^cp\|/.test(e)),o.bcast("PAD_MESSAGE",{user:n.myID,msg:k.removeCp(e),validateKey:o.data.validateKey},r),a())}))},o.wc=n,o.queue.forEach((function(n){o.sendMessage(n.message,e)})),o.queue=[],o.bcast("PAD_CONNECT",{myID:n.myID,id:n.id,members:n.members})}};o.cpNf=k.start(s)}else x(e,"PAD_ERROR","INVALID_CHAN")},m.leavePad=function(e,n,t){var r=se[n.channel];r&&r.cpNf?(m.dropChannel(n.channel),t()):t({error:"EINVAL"})},m.sendPadMsg=function(e,n,t){var r=n.msg,o=se[n.channel];if(o)return o.wc?void o.sendMessage(r,e,t):(o.queue.push(r),void t())},m.corruptedCache=function(e,n){var t=se[n];t&&t.cpNf&&(p.clearChannel(n),t.cpNf.resetCache&&t.cpNf.resetCache())},m.changePadPasswordPin=function(e,n,t){var r=n.oldChannel,o=n.channel;L((function(e){re().forEach((function(n){n.manager.findChannel(o).length&&(n.rpc.unpin([r],e()),n.rpc.pin([o],e()))}))})).nThen(t)},m.contactPadOwner=function(e,n,t){var r=n.owners;if(!Array.isArray(r)||!r.length)return t({state:!1});n.send?L((function(e){r.forEach((function(t){!function(e,t,r,o){if(M.mailbox&&!n.anon)return M.mailbox.sendTo(e,t,r,o);A.sendToAnon(M.anon_rpc,e,t,r,o)}(n.query,{channel:n.channel,data:n.msgData},{channel:t.notifications,curvePublic:t.curvePublic},e())}))})).nThen((function(){t({state:!0})})):t({state:!0})},m.givePadAccess=function(e,n,t){var r,o,a=M.proxy.edPublic,i=n.channel,s=M.manager.findChannel(i);n.user&&n.user.notifications&&n.user.curvePublic?s.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(a)&&e.data.href)return r=e.data.href,o=e.data.title,!0}))?(M.mailbox.sendTo("GIVE_PAD_ACCESS",{channel:i,href:r,title:o},{channel:n.user.notifications,curvePublic:n.user.curvePublic}),t()):t({error:"ENOTFOUND"}):t({error:"EINVAL"})},m.getLastHash=function(e,n,t){var r=se[n.channel];r?r.lastHash?t({hash:r.lastHash}):t({error:"EINVAL"}):t({error:"ENOCHAN"})};m.burnPad=function(e,n){var t=n.channel,r=R.b64AddSlashes(n.ownerKey||"");if(t&&r)try{var o=a.decodeBase64(r),i=R.Nacl.sign.keyPair.fromSecretKey(o);l.create(M.network,{edPublic:a.encodeBase64(i.publicKey),edPrivate:a.encodeBase64(i.secretKey)},(function(e,r){e?console.error(e):m.getPadMetadata(null,{channel:t},(function(e){r.removeOwnedChannel(t,(function(t){t?console.error(t):function(e,n){var t=e.channel,r=e.href,o=a.parsePadUrl(r),i=a.getSecrets(o.type,o.hash,e.password);if((!n||!n.error)&&n.mailbox){var s,c=R.createEncryptor(i.keys),u=[];try{"string"==typeof n.mailbox?u.push(c.decrypt(n.mailbox,!0,!0)):Object.keys(n.mailbox).forEach((function(e){u.push(c.decrypt(n.mailbox[e],!0,!0))}))}catch(e){console.error(e)}try{s=M.proxy.curvePublic}catch(e){return void console.error(e)}u.forEach((function(e){var n=JSON.parse(e);n.curvePublic!==s&&M.mailbox.sendTo("OWNED_PAD_REMOVED",{channel:t},{channel:n.notifications,curvePublic:n.curvePublic},(function(){}))}))}}(n,e)}))}))}))}catch(e){console.error(e)}else console.error("Can't delete BAR pad")},m.getPadMetadata=function(e,r,o){var s=i.once(i.mkAsync(o));if(!M.offline&&M.anon_rpc)if(r.channel){if(32===r.channel.length)return a.isValidChannel(r.channel)?void M.anon_rpc.send("GET_METADATA",r.channel,(function(e,o){if(e)s({error:e});else{var a=o&&o[0]||{};s(a),a.rejected||re().forEach((function(e){var o=e.manager.findChannel(r.channel,!0),i=!1;(o.forEach((function(e){n(e.data.owners)!==n(a.owners)&&(i=!0),e.data.owners=a.owners,e.data.atime=+new Date,a.expire&&(e.data.expire=+a.expire)})),i)&&(e.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))}})):(c.send("METADATA_INVALID_CHAN"),void s({error:"EINVAL"}));s({error:"EINVAL"})}else s({error:"ENOTFOUND"});else s({error:"OFFLINE"})},m.setPadMetadata=function(e,n,t){if(n.channel)if(n.command){var r=Q(n.teamId);if(r){var o=n.channels;delete n.channels,r.rpc.setMetadata(n,(function(e,n){e?t({error:e}):Array.isArray(n)&&n.length?t(n[0]):t({})})),Array.isArray(o)&&o.forEach((function(t){var r=i.clone(n);r.channel=t,m.setPadMetadata(e,r,(function(){}))}))}else t({error:"ENOTFOUND"})}else t({error:"EINVAL"});else t({error:"ENOTFOUND"})},m.deleteMailboxMessage=function(e,n,t){M.anon_rpc?M.anon_rpc.send("DELETE_MAILBOX_MESSAGE",n,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})},m.getFullHistory=function(e,n,t){var r=M.network,o=r.historyKeeper,a=[],i=!1,s=function(e){if(!i){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o)return"FULL_HISTORY_END"===o[0]?(t(a),r.off("message",s),void(i=!0)):void("FULL_HISTORY"===o[0]&&(o[1]&&o[1].validateKey||o[1][3]===n.channel&&(e=o[1][4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),n.debug?a.push({serverHash:e.slice(0,64),msg:e,author:o[1][1],time:o[1][5]}):a.push(e))))}};r.on("message",s),r.sendto(o,JSON.stringify(["GET_FULL_HISTORY",n.channel,n.validateKey]))},m.getHistory=function(e,n,t,r){var o=i.once(i.mkAsync(t)),a=M.network,s=a.historyKeeper,c=Math.floor(1e6*Math.random()),u=[],f=!1,l=function(e,t){if(!f&&t===s){var i=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(i&&!(i.txid&&i.txid!==c||i.validateKey&&i.channel))if(i.error&&i.channel)i.channel===n.channel&&(a.off("message",l),f=!0,o({error:i.error}));else{if(1===i.state&&i.channel){if(i.channel!==n.channel)return;return o(u),a.off("message",l),void(f=!0)}Array.isArray(i)&&i[0]&&i[0]!==c||i[3]===n.channel&&(i[4]&&r?u.push({msg:e,hash:i[4].slice(0,64)}):(e=i[4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),u.push(e)))}}};a.on("message",l);var d={txid:c,lastKnownHash:n.lastKnownHash},h=["GET_HISTORY",n.channel,d];a.sendto(s,JSON.stringify(h))},m.getHistoryRange=function(e,n,t){var r,o=M.network,a=o.historyKeeper,s=[],c=!0,u=!1,f=!1,l=i.uid();o.on("message",(function(e){if(!f){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o[1]===l){if("HISTORY_RANGE_ERROR"!==o[0])return"HISTORY_RANGE_END"===o[0]?(t({messages:s,isFull:u,lastKnownHash:r}),void(f=!0)):void("HISTORY_RANGE"===o[0]&&(o[2]&&o[1].validateKey||o[2][3]===n.channel&&(e=o[2][4])&&(c&&(/^cp\|/.test(e)||n.toHash||(u=!0),r=e.slice(0,64),c=!1),e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),s.push({serverHash:e.slice(0,64),msg:e,author:o[2][1],time:o[2][5]}))));t({error:o[2]})}else console.log("bad txid")}})),o.sendto(a,JSON.stringify(["GET_HISTORY_RANGE",n.channel,{from:n.lastKnownHash,to:n.toHash,cpCount:n.cpCount||2,txid:l}]))};var ce=function(e,n){e&&(e.deprecated||e.restricted||(n||e.on("change",["drive",t.SHARED_FOLDERS],(function(n,r,o){if(o.length>3&&"password"===o[3]){var i=o[2],s=e.drive[t.SHARED_FOLDERS][i],c=M.manager.user.userObject.getHref?M.manager.user.userObject.getHref(s):s.href,u=a.parsePadUrl(c),f=a.getSecrets(u.type,u.hash,n);return v.updatePassword(m,{oldChannel:f.channel,password:r,href:c},M.network,(function(){console.log("Shared folder password changed")})),!1}})),e.on("change",[],(function(e,r,o){if(n){if(o[0]===t.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var a=[r.channel];r.rtChannel&&a.push(r.rtChannel),r.lastVersion&&a.push(r.lastVersion),m.pinPads(null,a,(function(e){console.error(e)}))}if(o[0]===t.FILES_DATA&&"object"==typeof e&&e.channel&&!r){var i=[e.channel];M.manager.findChannel(e.channel).some((function(e){return e.fId!==n}))||(e.rtChannel&&i.push(e.rtChannel),e.lastVersion&&i.push(e.lastVersion),m.unpinPads(null,i,(function(e){console.error(e)})))}}e&&!r&&Array.isArray(o)&&(o[0]===t.FILES_DATA||"drive"===o[0]&&o[1]===t.FILES_DATA)&&setTimeout((function(){m.checkDeletedPad(e&&e.channel)})),z("DRIVE_CHANGE",{id:n,old:e,new:r,path:o})})),e.on("remove",[],(function(e,t){z("DRIVE_REMOVE",{id:n,old:e,path:t})}))))};m.loadSharedFolder=function(e,n,t,r,o){var i=Q(e);if(i){var s=a.parsePadUrl(t.href||t.roHref);s||s.hashData?v.load({isNew:o,network:M.network||M.networkPromise,store:i,Store:m,isNewChannel:m.isNewChannel},n,t,r):r({error:"EINVAL"})}else r({error:"ENOTFOUND"})};var ue=function(e,n,t,r){m.loadSharedFolder(null,e,n,t,r)};m.loadSharedFolderAnon=function(e,n,t){m.loadSharedFolder(null,n.id,n.data,(function(e){t({error:e?void 0:"EDELETED"})}))},m.addSharedFolder=function(e,n,r){V.reg((function(){var o=Q(n.teamId);o.manager.addSharedFolder(n,(function(a){a&&"object"==typeof a&&a.error?r(a):((n.teamId?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),r(a))}))}))},m.updateSharedFolderPassword=function(e,n,t){v.updatePassword(m,n,M.network,t)},m.userObjectCommand=function(e,n,r){if(n&&n.cmd){var o=Q(n.teamId);if(o.offline)return(o.id?o.sendEvent:z)("NETWORK_DISCONNECT"),void r({error:"OFFLINE"});o.manager.command(n,(function(o){re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,(function(){r(o)}))}))}};var fe=m.dropChannel=function(e){console.error("Drop channel",e);try{M.messenger.leavePad(e)}catch(e){console.error(e)}try{M.modules.cursor.leavePad(e)}catch(e){console.error(e)}try{M.modules.integration.leavePad(e)}catch(e){console.error(e)}try{M.onlyoffice.leavePad(e)}catch(e){console.error(e)}try{if(function(e){if(M){if(M.driveChannel===e)return!0;if(v.isSharedFolderChannel(e))return!0;if(i.find(M,["proxy","teams"])){var n=i.find(M,["proxy","teams"])||{};return Object.keys(n).some((function(t){return n[t].channel===e}))}return i.find(M,["proxy","profile","href"])?a.hrefToHexChannelId(i.find(M,["proxy","profile","href"]))===e:void 0}}(e))return void delete m.channels[e]}catch(e){console.error(e)}try{p.leaveChannel(e)}catch(e){console.error(e)}m.channels[e]&&(m.channels[e].cpNf&&m.channels[e].cpNf.stop(),delete m.channels[e])};m._removeClient=function(e){var n=W.indexOf(e);-1!==n&&W.splice(n,1);try{M.onlyoffice?.removeClient(e)}catch(e){console.error(e)}try{M.mailbox?.removeClient(e)}catch(e){console.error(e)}Object.keys(M.modules).forEach((function(n){if(M.modules[n]&&M.modules[n].removeClient)try{M.modules[n].removeClient(e)}catch(e){console.error(e)}})),Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients.indexOf(e);-1!==t&&m.channels[n].clients.splice(t,1),0===m.channels[n].clients.length&&fe(n)}))};m.refreshDriveUI=function(){re().forEach((function(e){(e.id?e.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))};var le=function(e,n){const t=i.mkAsync(n);var o=M.proxy,a=M.drive;if(M.manager)t();else{var s=M.manager=r.create(a.proxy,{onSync:function(e){Z(null,e)},edPublic:o.edPublic,pin:function(e,n){M.loggedIn?m.pinPads(null,e,n):n()},unpin:function(e,n){M.loggedIn?m.unpinPads(null,e,n):n()},loadSharedFolder:ue,settings:o.settings,removeOwnedChannel:function(e,n){m.removeOwnedChannel("",e,n)},store:M,Store:m},{outer:!0,edPublic:M.proxy.edPublic,loggedIn:M.loggedIn,log:function(e){z("DRIVE_LOG",e)},rt:a.realtime}),c=M.userObject=s.user.userObject;L((function(e){M.sharedFolders={},M.handleSharedFolder=function(e,n){n?(M.sharedFolders[e]=n,M.driveEvents&&ce(n.proxy,e)):delete M.sharedFolders[e]},c.migrate(e())})).nThen((function(n){var t=M.network||M.networkPromise;v.loadSharedFolders(m,t,M,a.proxy,c,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)}),!0)})).nThen((function(n){ie(D,"team",n,e)})).nThen((function(e){ie(S,"calendar",e)})).nThen((function(){t()}))}};const de=(e=function(){})=>{ie(g,"cursor",e),ie(b,"integration",e),ie(_,"messenger",e),ie(T,"history",e),ie(K,"badge",e),M.onlyoffice||(M.onlyoffice=O.init(M,(function(e,n,t){t.forEach((function(t){x(t,"OO_EVENT",{ev:e,data:n})}))}))),M&&(M.messenger=M.modules.messenger)};var he=function(e,n,t){M.ready=!0;var r=M.proxy,u=M.manager,f=M.userObject;L((function(n){r.settings||(r.settings=q),r.forms||(r.forms={}),r.friends_pending||(r.friends_pending={}),r.form_seed||(r.form_seed=a.createChannelId()),u||(le(e,n()),u=M.manager,f=M.userObject),te(0,0,n()),function(e,n,t){if(!M.loggedIn)return t();M.rpc?t(ee):l.create(M.network,M.proxy,(function(e,n){e?t({error:e}):(M.rpc=n,M.onRpcReadyEvt.fire(),m.getPinLimit(null,null,(function(e){e.error&&console.error(e.error),ee.limit=e.limit,ee.plan=e.plan,ee.note=e.note,t(e)})))}),p)}(0,0,n()),x(e,"LOADING_DRIVE",{type:"migrate",progress:0})})).nThen((function(n){void 0===r.version&&(r.version=11),o(r,n(),(function(n,t){x(e,"LOADING_DRIVE",{type:"migrate",progress:t})}),M)})).nThen((function(n){x(e,"LOADING_DRIVE",{type:"sf",progress:0}),f.fixFiles(),v.loadSharedFolders(m,M.network,M,M.drive.proxy,f,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)})),de(n),ie(w,"profile",n),ie(S,"calendar",n),ie(E,"support",n),L((e=>{M.modules.team&&M.modules.team.onReady(e)}))})).nThen((function(){var e,o=function(){P([],"REQUEST_LOGIN")};M.loggedIn&&(function(e){if(M.rpc){var n=$(!1),t=a.hashChannelList(n);M.rpc.getServerHash((function(n,r){n?e(n):e(null,r===t)}))}else e({error:"RPC_NOT_READY"})}((function(e,n){n||function(e){if(M.rpc){var n=$(!1);M.rpc.reset(n,(function(n){e(n||null)}))}else e({error:"RPC_NOT_READY"})}((function(e){if(e)return console.error(e);console.log("RESET DONE")}))})),"number"!=typeof r.loginToken&&(r[s.tokenKey]=M.data.localToken||Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),n[s.tokenKey]=r[s.tokenKey],M.data.localToken&&M.data.localToken!==r[s.tokenKey])?o():(n.feedback=i.find(r,["settings","general","allowUserFeedback"]),c.init(n.feedback),M.returned=n,"function"==typeof t&&t(n),M.offline=!1,z("NETWORK_RECONNECT"),P([],"UPDATE_METADATA"),P([],"STORE_READY",n),"string"==typeof r.uid&&32===r.uid.length||(console.log("generating a persistent identifier"),r.uid=a.createChannelId()),!M.loggedIn||m.hasSigningKeys()&&m.hasCurveKeys()?(r.on("change",[s.displayNameKey],(function(e,n){"string"==typeof n&&P([],"UPDATE_METADATA")})),r.on("change",["profile"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["friends"],(function(e,n,t){if(P([],"UPDATE_METADATA"),M.messenger&&void 0===e){var o=t.slice(-1)[0],a=r.friends&&r.friends[o];M.messenger.onFriendAdded(a)}})),r.on("remove",["friends"],(function(e,n){if(P([],"UPDATE_METADATA"),M.messenger){var t=n[1];t&&"channel"===n[2]&&M.messenger.onFriendRemoved(t,e)}})),r.on("change",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("remove",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["settings"],(function(){P([],"UPDATE_METADATA")})),r.on("change",[s.tokenKey],(function(){M.isDeleted||"DELETED"===r[s.tokenKey]||P([],"UPDATE_TOKEN",{token:r[s.tokenKey]})})),M.mailbox=A.init({Store:m,store:M,updateMetadata:function(){P([],"UPDATE_METADATA")},updateDrive:function(){z("DRIVE_CHANGE",{path:["drive","filesData"]})},pinPads:function(e,n){m.pinPads(null,e,n)}},e,(function(e,n,t,r){var o=i.once(r||function(){});t.forEach((function(t){x(t,"MAILBOX_EVENT",{ev:e,data:n},o)}))})),V.fire()):o())}))};const pe=(e,n,t,r)=>{if(M.accountModule)return M.accountModule;const o=H.init({userHash:n.userHash,anonHash:n.anonHash,cache:n.cache,form_seed:n.form_seed,store:M,broadcast:P,postMessage:x});M.accountModule=o;const{channel:a,onAccountReady:s,onAccountCacheReady:c,onDisconnect:u,onReconnect:f}=o;M.driveChannel=a,c((e=>{M.returned||=e,t(e)})),s((e=>{M.returned||=e,r(e)})),u((()=>{z("NETWORK_DISCONNECT")})),f((()=>{z("NETWORK_RECONNECT")}));return setInterval((function(){var e=[];Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients;Array.prototype.push.apply(e,t)})),(e=i.deduplicateString(e)).forEach((function(e){var n=0,t=function(){if(n>=2)return m._removeClient(e),x(e,"TIMEOUT"),void console.error("TIMEOUT",e);n++;var r=setTimeout(t,3e4);x(e,"PING",null,(function(e){e&&console.error(e),clearTimeout(r)}))};t()}))}),12e4),o},ve=(e,n,t,r)=>{const o=i.once((e=>{const n=j.init({account:e,store:M,broadcast:P,postMessage:x}),{onDriveReady:o,onDriveCacheReady:a,onDisconnect:i,onReconnect:s}=n;a((()=>{t(M.returned)})),o((()=>{r(M.returned)})),i((()=>{})),s((()=>{}))})),a=()=>{},s=pe(0,n,a,a);s.onAccountCacheReady((()=>{o(s)})),s.onAccountReady((()=>{o(s)}))};m.disableCache=function(e,n,t){n?p.disable():p.enable(),t()};var ye=!1;m.hasDrive=function(e,n,t){t({state:Boolean(M.proxy)})};const me=e=>{if(M?.network?.historyKeeper)return setTimeout(e);const n=n=>{M.network||=n;n.join("0000000000000000000000000000000000").then((function(t){let r;t.members.forEach((e=>{16===e.length&&(r=e)})),n.historyKeeper=r,t.leave(),e()}),(function(n){console.error(n),e({error:"GET_HK"})}))};if(M.network)return n(M.network);M.networkPromise?.then(n)};var ge=function(e,n,t){var r=function(){de();let e=()=>{te(0,0,(function(){c.send("NO_DRIVE",!0),n({})}))};if(t)return((e,n)=>{if(M.rpc)n(M.rpc);else{var t=R.Nacl.sign.keyPair(),r={edPublic:i.encodeBase64(t.publicKey),edPrivate:i.encodeBase64(t.secretKey)};l.create(M.network,r,(function(e,t){e?n({error:e}):(M.rpc=t,n(t))}))}})(0,e);e()};if(M.network)r();else{var o=I.getWebsocketURL();F.connect(o).then((function(e){M.network?(e.disconnect(),e=M.network):M.network=e,me((e=>{e?n(e):r()}))}),(function(e){console.error(e),n({error:"OFFLINE"})}))}};const Ee=(e,n,t)=>{le(e,(function(){t(n),Y.fire()}))},be=(e,n,t)=>{M.manager?Y.reg((function(){me((r=>{M.network||=r,he(e,n,(()=>{t(n)}))}))})):he(e,n,(()=>{t(n)}))};return m.init=function(e,n,t){var r=i.once((function(r){n.driveEvents&&function(e){Y.reg((()=>{-1===W.indexOf(e)&&W.push(e),M.driveEvents||(M.driveEvents=!0,ce(M.proxy),Object.keys(M.manager.folders).forEach((function(e){var n=M.manager.folders[e].proxy;ce(n,e)})))}))}(e),t(r)}));if(ye&&!M.returned&&n.cache)Y.reg((function(){r({state:"ALREADY_INIT",returned:M.cacheReturned})}));else{if(ye)return M.networkTimeout&&x(e,"LOADING_DRIVE",{type:"offline"}),void V.reg((function(){r({state:"ALREADY_INIT",returned:M.returned})}));n.disableCache&&p.disable(),n.noDrive&&!n.requires&&(n.requires="pad"),((e,n,t)=>{if(n.neverDrive||n.noDrive&&!n.userHash&&!n.anonHash)return n.neverDrive&&(M.neverCache=!0),void ge(0,(e=>{e?.error&&c.send("NO_DRIVE_ERROR",!0),t(e)}),!!n.neverDrive);const r=n.requires;ye=!0,M.data=n;let o=e=>{1===Object.keys(M.proxy).length&&c.send("FIRST_APP_USE",!0),e&&e.error&&(ye=!1)};if("pad"===r)return void ge(0,(function(r){if(r&&r.error)return;t(r);let a=i.once((()=>{ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))}));G.reg(a),J.reg(a)}));if("file"===r)return void ge(0,(function(r){r&&r.error||(t(r),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)})))}));if("team"===r){let r=!1;const a=a=>i=>{r||(r=!0,L((e=>{a||te(0,0,e())})).nThen((n=>{ie(D,"team",n,e)})).nThen((e=>{!a&&M.modules.team&&M.modules.team.onReady(e)})).nThen((()=>{t(i),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))})))};return void pe(0,n,a(!0),a(!1))}if("drive"===r)return void ve(0,n,(n=>{t(n),Ee(e,n,o)}),(n=>{t(n),be(e,n,o)}));let a=e=>{o(e);const n=s.prefersDriveRedirectKey,r=i.find(M,["proxy","settings","general",n]);e[n]=r,t(e)};ve(0,n,(n=>{Ee(e,n,a)}),(n=>{be(e,n,a)}))})(e,n,i.once((e=>{"GET_HK"!==e.error?r(e):r({error:"ERROR"})})))}},V.reg((function(){var e=+new Date-7776e6;p.getKeys((function(n,t){if(n)console.error(n);else{var r=function(){if(t.length){var n=t.pop();p.getTime(n,(function(t,o){t?r():!o||o{const n=(e,n={})=>({create:function(t,r,o){var a,i=[],s=e.mkEvent(!0);t.reg((function(e){if(!a){var n=e.data;if("_READY"===n)return r("_READY"),a=!0,s.fire(),void i.forEach((function(e){t.fire(e)}));i.push(n)}}));var c={},u={},f={},l=[],d={},h={};h.query=function(e,n,t,o){var a,i=Math.random().toString(16).replace("0.","")+Math.random().toString(16).replace("0.",""),c=(o=o||{}).timeout||3e4;c>0&&(a=setTimeout((function(){delete u[i],t("TIMEOUT")}),c)),f[i]=function(e){clearTimeout(a),delete f[i],e&&(delete u[i],t("UNHANDLED"))},u[i]=function(e,n){delete u[i],t(void 0,e.content,n)},s.reg((function(){var t={txid:i,content:n,q:e,raw:o.raw};r(o.raw?t:JSON.stringify(t))}))};var p=h.event=function(e,n,t){t=t||{},s.reg((function(){var o={content:n,q:e,raw:t.raw};r(t.raw?o:JSON.stringify(o))}))};h.on=function(e,n,t){var o=function(e,t,o){n(e.content,(function(n){var t={txid:e.txid,content:n};r(o?t:JSON.stringify(t))}),t)};return(c[e]=c[e]||[]).push(o),t||p("EV_REGISTER_HANDLER",e),{stop:function(){var n=c[e].indexOf(o);-1!==n&&c[e].splice(n,1)}}},h.whenReg=function(e,n,t){var r=t;l.indexOf(e)>-1?n():r=!0,r&&(d[e]=d[e]||[]).push(n)},h.onReg=function(e,n){h.whenReg(e,n,!0)},h.on("EV_REGISTER_HANDLER",(function(e){d[e]&&(d[e].forEach((function(e){e()})),delete d[e]),l.push(e)}));var v=!1;h.onReady=function(e){v?e():"function"==typeof e&&h.on("EV_RPC_READY",(function(){v=!0,e()}))},h.ready=function(){h.whenReg("EV_RPC_READY",(function(){h.event("EV_RPC_READY")}))};var y=[""];n.httpUnsafeOrigin?(y.push(n.httpUnsafeOrigin),y.push(n.httpSafeOrigin)):globalThis.location&&y.push(globalThis.location.origin),t.reg((function(e){if(a&&e.data&&"_READY"!==e.data&&y.includes(e.origin)){var n;try{n="object"==typeof e.data?e.data:JSON.parse(e.data)}catch(e){return void console.warn(e)}void 0!==n.ack?f[n.txid]&&f[n.txid](!n.ack):"string"==typeof n.q?c[n.q]?(n.txid&&r(JSON.stringify({txid:n.txid,ack:!0})),c[n.q].forEach((function(t){t(n||JSON.parse(e.data),e,n&&n.raw),n=void 0}))):n.txid&&r(JSON.stringify({txid:n.txid,ack:!1})):void 0===n.q&&u[n.txid]&&u[n.txid](n,e)}})),r("_READY"),o(h)}});e.exports&&(e.exports=n(Z()))})()}(rr)),rr.exports}function ar(){return er||(er=1,function(e){e.exports&&(e.exports=((e,n,t)=>{const r={};let o,a,i={},s=()=>{};return r.init=n=>{a||(a=e.create({query:(e,n,t,r)=>{r=r||function(){},i[e].chan.query(n,t,(function(e,n){r(e?{error:e}:n)}))},broadcast:(e,n,t,r)=>{r=r||function(){},Object.keys(i).forEach((o=>{-1===e.indexOf(+o)&&i[o].chan.query(n,t,((e,n)=>{r(e?{error:e}:n)}))}))}}),s=n)},r.initClient=(e,r)=>{if(!a)return console.error("Not initialized"),void r("NOT_INIT");const{postMsg:c}=e,u=t.mkEvent(),f=Number(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),l=()=>{a._removeClient(f)};n.create(u,c,(function(e){let n=i[f]={chan:e};console.debug("SharedW Channel created"),Object.keys(a.queries).forEach((function(t){"CONNECT"!==t&&"JOIN_PAD"!==t&&"SEND_PAD_MSG"!==t&&"STOPWORKER"!==t&&e.on(t,(function(e,r){try{a.queries[t](f,e,r)}catch(n){console.error("Error in webworker when executing query "+t),console.error(n),console.log(e)}"DISCONNECT"===t&&(l(),globalThis.accountDeletion&&globalThis.accountDeletion===n.id&&(a=void 0,o=void 0))}))})),e.on("STOPWORKER",(function(e,n){s(),a.queries.DISCONNECT(f,e,n)})),e.on("CONNECT",(function(e,n){console.debug("Connecting to store..."),a.queries.CONNECT(f,e,(function(e){if(e&&"ALREADY_INIT"===e.state)return console.debug("Store already exists!"),o=o||e.returned,void n(e);o=e,n(e)}))})),e.on("JOIN_PAD",(function(e,t){n.channelId=e.channel;try{a.queries.JOIN_PAD(f,e,t)}catch(n){console.error("Error in webworker when executing query JOIN_PAD"),console.error(n),console.log(e)}})),e.on("SEND_PAD_MSG",(function(e,t){var r={msg:e,channel:n.channelId};try{a.queries.SEND_PAD_MSG(f,r,t)}catch(e){console.error("Error in webworker when executing query SEND_PAD_MSG"),console.error(e),console.log(r)}})),r(u,l)}),!0)},r})(Xt(),or(),Z()))}(Qt)),Qt.exports}var ir,sr,cr=function(){if(tr)return nr;tr=1;const e=ar();return nr={start:n=>{let t=!1,r=()=>{globalThis.close()};globalThis.window=globalThis,addEventListener("connect",(o=>{console.debug("New SharedWorker client");const a=o.ports[0],i=e=>{a.postMessage(e)};let s,c=!1,u=()=>{};a.onmessage=function(o){if("INIT"===o.data?.type){if((o=>{t||(n(o),e.init(r),t=!0)})(o.data.cfg),c)return;c=!0,e.initClient({postMsg:i},(function(e,n){s=e,u=n,i("SW_READY")}))}else"CLOSE"===o.data?(console.debug("leave"),u()):s&&s.fire(o)}}))}}}();var ur,fr,lr=function(){if(sr)return ir;sr=1;const e=ar();return ir={start:n=>{let t,r=!1;const o=()=>{globalThis.close()},a=e=>{postMessage(e)};globalThis.window=globalThis,onmessage=function(i){if("INIT"===i.data?.type){let s=i.data.cfg;if(r)return;return n(s),e.init(o),r=!0,void e.initClient({postMsg:a},(function(e){t=e,a("WW_READY")}))}t&&t.fire(i)}}}}();var dr=function(){if(fr)return ur;fr=1;const e=ar(),n=Z();return ur={start:t=>{let r,o=!1,a=!1;const i=n.mkEvent(),s=()=>{a=!0},c=e=>{a||i.fire(e)};return{init:n=>{o||(t(n),e.init(s),o=!0,e.initClient({postMsg:c},(function(e){r=e,c("STORE_READY")})))},onMessage:e=>{i.reg((n=>{setTimeout((()=>{e(n)}))}))},query:e=>{r&&!a&&r.fire({data:e,origin:""})}}}}}(),hr=Bn(),pr=n({__proto__:null,default:r(hr)},[hr]),vr=Un(),yr=n({__proto__:null,default:r(vr)},[vr]),mr=nt(),gr=n({__proto__:null,default:r(mr)},[mr]),Er=ot(),br=n({__proto__:null,default:r(Er)},[Er]),Or=Ft(),Ar=n({__proto__:null,default:r(Or)},[Or]);let wr=e=>{[Te,nn,q,$e,B,pr,yn,un,ke,gr,br,Ar,zt,ge,yr,Vt].forEach((n=>{"function"==typeof n.setCustomize&&n.setCustomize(e)}))},Dr="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,_r="undefined"!=typeof SharedWorkerGlobalScope&&self instanceof SharedWorkerGlobalScope;e.store={},_r?cr.start(wr):Dr?lr.start(wr):("undefined"!=typeof module&&module.exports,e.store=dr.start(wr)),e.start=wr})); diff --git a/www/profile/inner.js b/www/profile/inner.js index 78e945361..1f4723e4b 100644 --- a/www/profile/inner.js +++ b/www/profile/inner.js @@ -378,7 +378,7 @@ define([ var displayAvatar = function (val) { var sframeChan = common.getSframeChannel(); var $span = APP.$avatar; - $span.html(''); + $span.empty(); if (!val) { $('', { src: '/customize/images/avatar.png', @@ -408,12 +408,6 @@ define([ }); }); }); - - // XXX badge temp - APP.module.execCommand("SET", { - key: 'badge', - value: "administrator" - }, function () {}); }; var addAvatar = function ($container) { var $block = $('
', {id: AVATAR_ID}).appendTo($container); @@ -457,18 +451,23 @@ define([ }; const addBadges = $container => { - if (APP.readOnly) { return; } var $block = $('
', {id: BADGES_ID, class:'cp-sidebarlayout-element'}).appendTo($container); APP.$badges = $(h('span')).appendTo($block); }; const refreshBadges = (obj) => { if (!APP.$badges) { return; } - APP.badge.execCommand('LIST_BADGES', {}, data => { + const metadataMgr = APP.common.getMetadataMgr(); + const privateData = metadataMgr.getPrivateData(); + let args = {}; + if (!privateData.isOwnProfile) { args.edPublic = obj.edPublic; } + APP.badge.execCommand('LIST_BADGES', args, data => { APP.$badges.empty(); let spinner; + APP.$badges.toggle(!!data.length); let all = data.map(str => { const i = Badges.render(str); const $i = $(i).attr('tabindex', 0); + if (APP.readOnly) { return i; } const selected = obj?.badge === str; if (selected) { $i.addClass('cp-selected'); } Util.onClickEnter($i, () => { @@ -485,7 +484,7 @@ define([ return i; }); let content = h('div.cp-profile-badges', [ - h('span', 'Badges'), + h('span', Messages.profile_badges), h('div.cp-profile-badges-list', all) ]); APP.$badges.append(content); @@ -748,14 +747,14 @@ define([ return; } + APP.badge = common.makeUniversal('badge', { + onEvent: onEvent + }); if (privateData.isOwnProfile) { APP.module = common.makeUniversal('profile', { onEvent: onEvent }); - APP.badge = common.makeUniversal('badge', { - onEvent: onEvent - }); var execCommand = APP.module.execCommand; init(); From 55a87f801b9152b72415fc9de0ef0f2be6c7092a Mon Sep 17 00:00:00 2001 From: yflory Date: Thu, 10 Apr 2025 19:43:16 +0200 Subject: [PATCH 06/14] Use minified build --- www/common/store-interface.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/store-interface.js b/www/common/store-interface.js index 5ecf2c679..4988e9fa0 100644 --- a/www/common/store-interface.js +++ b/www/common/store-interface.js @@ -4,7 +4,7 @@ (() => { const factory = function () { - let USE_MIN = false; + let USE_MIN = true; let path = '/common/worker.bundle.js?'; if (USE_MIN) { path = '/common/worker.bundle.min.js?'; } From bc510b9013933ad117795b783b125ff53ea83b1c Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 15 Apr 2025 14:38:16 +0200 Subject: [PATCH 07/14] Guard badges against replay attacks --- customize.dist/messages.js | 1 + customize.dist/src/less2/include/toolbar.less | 8 +++++++ src/worker/async-store.js | 1 + src/worker/modules/badge.ts | 24 +++++++++---------- www/common/inner/badges.js | 14 +++++------ www/common/sframe-common-outer.js | 17 +++++++------ www/common/toolbar.js | 19 +++++++++------ www/common/worker.bundle.min.js | 2 +- 8 files changed, 50 insertions(+), 36 deletions(-) diff --git a/customize.dist/messages.js b/customize.dist/messages.js index 003f6ac57..4d62fc52e 100755 --- a/customize.dist/messages.js +++ b/customize.dist/messages.js @@ -138,6 +138,7 @@ define(req, function(AppConfig, Default, Language) { Messages.badges_admin = "Instance administrator"; Messages.badges_moderator = "Instance moderator"; Messages.badges_premium = "Premium user"; + Messages.badges_error = "Error while validating this user's data"; Messages.profile_badges = "Badges"; return Messages; diff --git a/customize.dist/src/less2/include/toolbar.less b/customize.dist/src/less2/include/toolbar.less index d78fccade..b904d26d8 100644 --- a/customize.dist/src/less2/include/toolbar.less +++ b/customize.dist/src/less2/include/toolbar.less @@ -263,6 +263,14 @@ .cp-toolbar-userlist-friend { padding: 0; } + .cp-userlist-badge { + i { + color: @cryptpad_color_brand; + } + i.cp-badge-error { + color: @cryptpad_color_warn_red; + } + } } } } diff --git a/src/worker/async-store.js b/src/worker/async-store.js index ec6bf6122..9582d70c8 100644 --- a/src/worker/async-store.js +++ b/src/worker/async-store.js @@ -661,6 +661,7 @@ const factory = (ApiConfig = {}, Sortify, UserObject, ProxyManager, notifications: Util.find(proxy, ['mailboxes', 'notifications', 'channel']), curvePublic: proxy.curvePublic, edPublic: proxy.edPublic, + netfluxId: store?.network?.webChannels?.[0]?.myID, badge: Util.find(proxy, ['profile', 'badge']) }, // "priv" is not shared with other users but is needed by the apps diff --git a/src/worker/modules/badge.ts b/src/worker/modules/badge.ts index 2ee48de17..59c2d43dd 100644 --- a/src/worker/modules/badge.ts +++ b/src/worker/modules/badge.ts @@ -54,27 +54,27 @@ const allBadges = { }; const checkBadge:Callback = (ctx, data, clientId, cb) => { - const { badge, channel, user } = data; + const { badge, ed, sig, nid/*, channel*/ } = data; - const ed = Util.decodeBase64(user); // Public key uint8 - const b = Util.decodeBase64(badge); // badge uint8 + const publicKey = Util.decodeBase64(ed); // Public key uint8 + const signature = Util.decodeBase64(sig); // badge uint8 // Check signature - const msg = nacl.sign.open(b, ed); + const msg = nacl.sign.open(signature, publicKey); if (!msg) { return void cb({verified: false}); } // Check channel (replay attack) - const msgArr = Util.encodeUTF8(msg).split('-'); - if (msgArr[1] !== channel) { return void cb({verified: false}); } + const msgStr:string = Util.encodeUTF8(msg); + const expected:string = nid; // + channel; + if (msgStr !== expected) { return void cb({verified: false}); } - const badgeStr = msgArr[0]; - let f = allBadges[badgeStr]; - if (!f) { return void cb({verified: false}); } + let f = allBadges[badge]; + if (!f) { return void cb({verified: false, error: 'EINVAL'}); } - f(ctx, user, list => { + f(ctx, ed, list => { cb({ - verified: list.includes(badgeStr), - badge: badgeStr + verified: list.includes(badge), + badge: badge }); }); }; diff --git a/www/common/inner/badges.js b/www/common/inner/badges.js index f6d0057e2..2030f2362 100644 --- a/www/common/inner/badges.js +++ b/www/common/inner/badges.js @@ -3,26 +3,26 @@ // SPDX-License-Identifier: AGPL-3.0-or-later define([ - 'jquery', - '/common/common-interface.js', '/common/hyperscript.js', '/customize/messages.js', -], function ($, UI, h, Messages, nThen) { +], function (h, Messages) { var Badges = {}; const badges = { - admin: 'fa-star-o', + admin: 'fa-star', moderator: 'fa-life-ring', - premium: 'fa-check-circle' - } + premium: 'fa-check-circle', + error: 'fa-exclamation-circle' + }; Badges.render = id => { let icon = badges[id]; if (!icon) { return; } let cls = icon.indexOf('cptools') === 0 ? 'cptools '+icon : 'fa '+icon; + if (id === 'error') { cls += ' cp-badge-error'; } return h('i', { 'class': `cp-badge ${cls}`, - 'title': Messages[`badges_${id}`] || 'id' + 'title': Messages[`badges_${id}`] || id }); }; diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index bdcaac226..09eb6e23e 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -761,7 +761,7 @@ define([ if (isDeleted) { Utils.Cache.clearChannel(secret.channel); } - const signed = {}; + let signature; var updateMeta = function () { //console.log('EV_METADATA_UPDATE'); @@ -861,17 +861,16 @@ define([ } } - if (metaObj?.user?.badge) { - let b = metaObj?.user?.badge +'-'+ secret.channel; - if (!signed[b]) { - let bu8 = Utils.Util.decodeUTF8(b); - console.log(edPrivate); + if (metaObj?.user?.edPublic) { + let str = metaObj?.user?.netfluxId;// + secret.channel; + if (!signature && str) { + let myIDu8 = Utils.Util.decodeUTF8(str); let k = Utils.Util.decodeBase64(edPrivate); let nacl = Utils.Crypto.Nacl; - let s = nacl.sign(bu8, k); - signed[b] = Utils.Util.encodeBase64(s); + let s = nacl.sign(myIDu8, k); + signature = Utils.Util.encodeBase64(s); } - metaObj.user.badge = signed[b]; + metaObj.user.signature = signature; } // Early access diff --git a/www/common/toolbar.js b/www/common/toolbar.js index 396e12f37..a74bd9d77 100644 --- a/www/common/toolbar.js +++ b/www/common/toolbar.js @@ -194,16 +194,14 @@ MessengerUI, Messages, Pages, PadTypes) { // Display only one time each user (if he is connected in multiple tabs) var uids = []; Object.keys(userData).forEach(function(user) { - //if (user !== userNetfluxId) { var data = userData[user] || {}; var userId = data.uid; if (!userId) { return; } - //data.netfluxId = user; - if (uids.indexOf(userId) === -1) {// && (!myUid || userId !== myUid)) { + if (user !== data.netfluxId) { return; } + if (uids.indexOf(userId) === -1) { uids.push(userId); list.push(data); } else { i++; } - //} }); return { list: list, @@ -435,19 +433,26 @@ MessengerUI, Messages, Pages, PadTypes) { if (!i) { return; } $rightCol.append(h('div.cp-userlist-badge', i)); }; - const key = data.edPublic + '-' + data.badge; + const key = data.signature + '-' + data.badge; const v = validatedBadges[key]; if (typeof (v) === "string") { addBadge(v); + } else if (v === false) { + addBadge('error'); } else { let ev = validatedBadges[key] ||= Util.mkEvent(true); ev.reg(badge => { addBadge(badge); }); toolbar.badges.execCommand('CHECK_BADGE', { badge: data.badge, channel: priv.channel, - user: data.edPublic + ed: data.edPublic, + sig: data.signature, + nid: data.netfluxId }, res => { - if (!res?.verified) { return; } + if (!res?.verified) { + validatedBadges[key] = false; + return void addBadge('error'); + } validatedBadges[key] = res.badge; ev.fire(res.badge); }); diff --git a/www/common/worker.bundle.min.js b/www/common/worker.bundle.min.js index bc1a893f3..f0e2d7712 100644 --- a/www/common/worker.bundle.min.js +++ b/www/common/worker.bundle.min.js @@ -1 +1 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["cryptpad-worker-min"]={})}(this,(function(e){"use strict";function n(e,n){return n.forEach((function(n){n&&"string"!=typeof n&&!Array.isArray(n)&&Object.keys(n).forEach((function(t){if("default"!==t&&!(t in e)){var r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:function(){return n[t]}})}}))})),Object.freeze(e)}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function o(e){if(e.__esModule)return e;var n=e.default;if("function"==typeof n){var t=function e(){return this instanceof e?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};t.prototype=n.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t}var a,i,s,c,u,f,l,d={exports:{}},h={exports:{}},p={exports:{}};function v(){return a||(a=1,function(e){var n;n=function(){var e=function(){},n=function(){return(new Date).getTime()},t=function(e,n,t){e.timeouts.push(setTimeout(n,t))},r=function(n,r){n.ws&&(n.ws.onmessage=e,n.ws.onopen=e,n.ws.close(),r?n.ws.onclose({reason:"offline"}):t(n,(function(){n.ws&&n.ws.onclose({reason:"forced closed because websocket failed to close"})}),1e4))},o=function(e,n){return!!e.ws&&(e.ws.send(JSON.stringify(n)),!0)},a=function(e,n){return function(e,t){var r=n[e];if(!r)throw new Error("no such event "+e);r.push(t)}},i=function(e,n,t,r){var o=r[n];if(!o)throw new Error("no such event "+n);var a=o.indexOf(t);-1!==a&&o.splice(a,1)},s=function(e,t,r){if(e.channels[t])return new Promise((function(n){n(e.channels[t])}));var s=e.queues.p2;1===r?s=e.queues.p1:3===r&&(s=e.queues.p3);var c={queue:s,onMessage:[],onJoin:[],onLeave:[],members:[],jSeq:e.seq++},u={message:c.onMessage,join:c.onJoin,leave:c.onLeave},f={_:c,time:n(),id:t,members:c.members,bcast:function(t){return function(e,t,r){var a=e.channels[t],i=e.seq++,s=[i,"MSG",t,r];if(!a)return new Promise((function(e,n){n({type:"NO_SUCH_CHANNEL",message:JSON.stringify(s)})}));var c=o(e,s);return new Promise((function(t,r){c?e.requests[i]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(s)})}))}(e,f.id,t)},leave:function(t){return function(e,t,r){if(e.channels[t]){if(delete e.channels[t],e.ws&&1===e.ws.readyState){var a=e.seq++;o(e,[a,"LEAVE",t,r]);var i=function(){};e.requests[a]={reject:i,resolve:i,time:n()}}}else console.debug("no such channel",t)}(e,f.id,t)},on:a(0,u),off:function(e,n){i(0,e,n,u)}};e.requests[c.jSeq]=f;var l=[c.jSeq,"JOIN",t],d=o(e,l);return new Promise((function(e,n){d?(f._.resolve=e,f._.reject=n):n({type:"DISCONNECTED",message:JSON.stringify(l)})}))},c=function(t){var r={message:t.onMessage,disconnect:t.onDisconnect,reconnect:t.onReconnect},c={webChannels:t.channels,getLag:function(){return function(e){return e.ws?e.pingOutstanding?Math.max(n()-e.timeOfLastPingSent,e.lastObservedLag):e.lastObservedLag:null}(t)},sendto:function(e,r){return function(e,t,r){var a=e.seq++,i=[a,"MSG",t,r],s=o(e,i);return new Promise((function(t,r){s?e.requests[a]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(i)})}))}(t,e,r)},join:function(e,n){return s(t,e,n)},disconnect:function(){return function(n){if(n.ws){var t=n.ws.onclose;n.ws.onclose=e,n.ws.close(),t({reason:"network.disconnect() called"})}n.timeouts.forEach(clearTimeout),n.timeouts=[]}(t)},on:a(0,r),off:function(e,n){i(0,e,n,r)}};return c.__defineGetter__("webChannels",(function(){return Object.keys(t.channels).map((function(e){return t.channels[e]}))})),c},u=function(e,t){var a=void 0;try{a=JSON.parse(t.data)}catch(e){return void console.log(e.stack)}if(e.timeOfLastMsgReceived=n(),0===a[0]){if("IDENT"===a[2])return e.uid=a[3],e.ws._onident(),void(e.pingInterval=setInterval((function(){if(!(n()-e.timeOfLastPingReceived<15e3||(n()-e.timeOfLastMsgReceived>6e4&&r(e),e.pingOutstanding))){var t=e.seq++,a=n();e.timeOfLastPingSent=a,e.pingOutstanding++,e.requests[t]={time:a,ping:a},o(e,[t,"PING"])}}),5e3));if(e.uid){if("PING"===a[2])return a[2]="PONG",void o(e,a);if("MSG"===a[2]){var i=void 0,s=e.queues.p2;if(a[3]===e.uid)i=e.onMessage,"number"==typeof a[5]&&(1===a[5]&&(s=e.queues.p1),3===a[5]&&(s=e.queues.p3));else{var c=e.channels[a[3]];if(!c)return void console.log("message to non-existent chan "+JSON.stringify(a));i=c._.onMessage,c._.queue&&(s=c._.queue)}s.push({msg:a,h:i}),function(e){if(!e.queues.busy){var n=function(){var t=e.queues.p1.shift()||e.queues.p2.shift()||e.queues.p3.shift();if(t){e.queues.busy=!0;var r=t.h,o=t.msg;r.forEach((function(e){setTimeout((function(){try{e(o[4],o[1])}catch(e){console.error(e)}}))})),setTimeout((function(){n()}))}else e.queues.busy=!1};n()}}(e)}if("LEAVE"===a[2]){var u=e.channels[a[3]];if(!u)return void(a[1]!==e.uid&&console.log("leaving non-existent chan "+JSON.stringify(a)));var f=u._.members.indexOf(a[1]);-1!==f&&u._.members.splice(f,1),u._.onLeave.forEach((function(e){try{e(a[1],a[4])}catch(e){console.log(e.stack)}}))}if("JOIN"===a[2]){var l=e.channels[a[3]];if(!l)return void console.log("ERROR: join to non-existent chan "+JSON.stringify(a));if(-1!==l._.members.indexOf(a[1]))return;var d=-1!==l._.members.indexOf(e.uid);l._.members.push(a[1]),d||a[1]!==e.uid||(l.myID=e.uid,l._.resolve(l)),d&&l._.onJoin.forEach((function(e){try{e(a[1])}catch(e){console.log(e.stack)}}))}}}else{var h=e.requests[a[0]];if(!h)return void console.log("error: "+JSON.stringify(a));if(delete e.requests[a[0]],"ACK"===a[1]){if(h.ping)return e.lastObservedLag=n()-Number(h.ping),e.timeOfLastPingReceived=n(),void e.pingOutstanding--;h.resolve()}else if("JACK"===a[1]){if(h._){if(!a[2])throw new Error("wrong type of ACK for channel join");return h.id=a[2],void(e.channels[h.id]=h)}h.resolve()}else if("ERROR"===a[1])if("function"==typeof h.reject)h.reject({type:a[2],message:a[3]});else if(h._&&"function"==typeof h._.reject){if("EJOINED"===a[2]&&!e.channels[a[3]])return h.id=a[3],void(e.channels[h.id]=h);h._.reject({type:a[2],message:a[3]})}else console.error(a);else h.reject({type:"UNKNOWN",message:JSON.stringify(a)})}};return{connect:function(o,a){a=a||function(e){return new window.WebSocket(e)};var i={ws:null,seq:1,uid:null,network:null,channels:{},onMessage:[],onDisconnect:[],onReconnect:[],timeouts:[],requests:{},pingInterval:null,queues:{p1:[],p2:[],p3:[]},timeOfLastPingSent:-1,timeOfLastPingReceived:-1,timeOfLastMsgReceived:-1,lastObservedLag:0,pingOutstanding:0};i.network=c(i);var s=e,f=e;"undefined"!=typeof window&&window.addEventListener("offline",(function(){-1===["localhost","127.0.0.1",""].indexOf(window.location.hostname)&&r(i,!0)}));var l=function(){var c=i.ws=a(o);i.timeOfLastPingSent=i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),c.onmessage=function(e){return u(i,e)},c.onclose=function(n){c.onclose=e,clearInterval(i.pingInterval),i.timeouts.forEach(clearTimeout),i.ws=null,i.uid&&(i.uid=null,i.onDisconnect.forEach((function(e){try{e(n.reason)}catch(e){console.log(e.stack)}}))),t(i,l,i.uid?0:7e3)},c.onopen=function(){t(i,(function(){i.uid||(f({type:"TIMEOUT",message:"waited 30000ms"}),s=f=e,r(i))}),3e4)},i.ws._onident=function(){i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),i.lastObservedLag=n()-i.timeOfLastPingSent,s!==e?(s(i.network),s=f=e):(i.channels={},i.requests={},i.pingOutstanding=0,i.onReconnect.forEach((function(e){try{e(i.uid)}catch(e){console.log(e.stack)}})))}};return new Promise((function(e,n){s=e,f=n,l()}))}}},e.exports?e.exports=n():window.netflux_websocket=n()}(p)),p.exports}function y(){return i||(i=1,function(e){var n,t,r,o;e.exports&&(e.exports=(n=v(),r=function(e){return e.replace(/^\d+:/,"")},o=(t={}).removeCp=function(e){return e.replace(/^cp\|([A-Za-z0-9+\/=]{0,20}\|)?/,"")},t.start=function(e){var t,a=(e=e||{}).network,i=e.websocketURL,s=e.userName,c=e.channel,u=e.crypto,f=e.readOnly||!1,l=!e.noChainPad&&(e.ChainPad||window.ChainPad),d=void 0===e.useHistory||!!e.useHistory,h=!1,p=e.lastKnownHash,v={},y=[],m=e.priority||2,g=e.Cache,E=!1,b=Math.floor(1e6*Math.random()),O=e.metadata||{},A=O.validateKey=e.validateKey||O.validateKey;O.owners=e.owners||O.owners,O.expire=e.expire||O.expire;var w,D,_=!0,T=!1,S={setReadOnly:function(e,n){f=e,n&&(u=n)}},x=function(){},N=[],I={send:function(){}},C=function(){w&&"function"==typeof w.abort&&w.abort();var n=l.create({userName:s,initialState:e.initialState,transformFunction:e.transformFunction,patchTransformer:e.patchTransformer,validateContent:e.validateContent,avgSyncMilliseconds:e.avgSyncMilliseconds,logLevel:void 0!==e.logLevel?e.logLevel:1});return g&&Array.isArray(t)&&t.length&&(t.forEach((function(e){var t=e.patch;if(!/^\[/.test(t)){try{t=u.decrypt(t,A,!0)}catch(e){console.error(t,A,c),console.error(e)}t=r(t)}n.message(t)})),""===n.getUserDoc())?(n.abort(),t=[],g.clearChannel(c),C()):(n.onMessage((function(e,n,t){I.send(e,n,t)})),n.onPatch((function(t){e.onRemote&&e.onRemote({realtime:n,patch:t})})),n)},R={change:[],onChange:function(e){R.change.forEach((function(n){n(e)}))},users:[]},P=function(n){e.onJoin&&e.onJoin(n),32===n.length&&(-1===R.users.indexOf(n)&&R.users.push(n),R.onChange())},k=function(){},M=function(n){e.onLeave&&e.onLeave(n);var t=R.users.indexOf(n);-1!==t&&R.users.splice(t,1),R.onChange()},F=function(n,t){if(_){try{var r=w&&w.getUserDoc();if(E&&w&&(""===r||r===e.initialState))return void S.resetCache()}catch(e){console.error(e)}w&&w.start(),e.setMyID&&e.setMyID({myID:n.myID}),_=!1,e.onReady&&e.onReady({realtime:w,network:t,userList:R,myId:n.myID,leave:n.leave,metadata:O}),y.length&&(y.forEach((function(e){"function"==typeof e&&e()})),y=[])}},L=function(n,r){if(e.onChannelError&&e.onChannelError({channel:r.id,type:n.error,loaded:!_,error:n.error,message:n.message}),"EUNKNOWN"===n.error)return p=void 0,r&&r.leave(),g?(t=[],void g.clearChannel(c,(function(){l&&(S.realtime=w=C()),x(a,k)}))):void x(a,k);if("function"==typeof S.stop)try{S.stop()}catch(e){}},H=!0,j=function(e){g&&(t.length&&t[t.length-1].hash===e.hash||(!t.length&&H&&(e.isCheckpoint=!0,H=!1),(t.length||e.isCheckpoint)&&(t.push(e),g.storeCache(c,A,t,(function(e){if(e){g.clearChannel(c,(function(){console.warn("Cache cleared",c)}));var n=t;return t=[],void console.error(e,c,n,A)}})))))},K=function(n,t,a,i,s){var f=i.historyKeeper,l=n===f;if(!a||0!==t&&"0"!==t){if(!s||n===f){if(s){var d=JSON.parse(t);if(d.txid&&d.txid!==b)return;if(d.validateKey&&d.channel)return d.channel!==a.id||A||(A=d.validateKey),void(d.channel===a.id&&(O=d,e.onMetadataUpdate&&!_&&e.onMetadataUpdate(O)));if(d.state&&1===d.state&&d.channel)return void(d.channel===a.id&&(Object.keys(v).forEach((function(e){"function"==typeof v[e]&&v[e]("FAILED")})),v={},F(a,i)))}if(l){var h=JSON.parse(t);if(Array.isArray(h)&&h[0]&&h[0]!==b)return;if(h.channel===a.id&&h.error)return void L(h,a);if(t=h[4],h[3]!==a.id)return}if(p=t.slice(0,64),"function"==typeof v[p])return v[p](null,p),void delete v[p];var m,g=/^cp\|/.test(t);t=o(t);try{t=u.decrypt(t,A,l)}catch(e){console.error(t,A,c),console.error(e)}var E="string"==typeof t;!E&&t.content&&(m=t.author,t=t.content),_||e.onLocal&&e.onLocal(!0);var D=E?r(t):t,T=function(){try{if(w&&E&&w.message(D),e.onMessage){var t={time:h?h[5]:+new Date};e.onMessage(D,n,A,g,p,m,t)}var r=g;e.isCacheCheckpoint&&(r=e.isCacheCheckpoint(D,m)),j({patch:D,hash:p,isCheckpoint:r,author:m,time:h?h[5]:+new Date})}catch(e){console.error(e)}};_&&n!==f?y.push(T):T()}}else F(a,i)},U=function(n,r,a){I.wc=n,c=n.id,n.members.forEach(P);var i,s=function(e,t){K(t,e,n,r)};n.on("message",s),n.on("join",P),n.on("leave",M),I.stop=function(){n.off("message",s),n.off("join",P),n.off("leave",M),n.leave(),w&&w.abort()},a&&(I.send=function(n,t,a){var i=function(e,n){if(!f)try{var t=u.encrypt(e,n);if(0===e.indexOf("[4")){var r="";if(window.nacl){var o=window.nacl.hash(window.nacl.util.decodeUTF8(e));r=window.nacl.util.encodeBase64(o.slice(0,8))+"|"}else console.log("Checkpoint sent without an ID. Nacl is missing.");t="cp|"+r+t}return t}catch(n){throw console.log(e),n}}(n,a);if(i){var s=i.slice(0,64),l=/^cp\|/.test(i);e.isCacheCheckpoint&&(l=e.isCacheCheckpoint(n,a)),v[s]=function(e,r){!e&&r&&j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(e,r)},I.wc.bcast(i).then((function(){p=s,delete v[s],j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(null,s)}),(function(e){if(console.error(e),!e||"enoent"!==e.type&&"ENOENT"!==e.type)delete v[s],t(e&&e.type||e);else{if(I.wc.leave(),h)return delete v[s],void t("STOPPED");_=!0,r.join(c,m).then((function(e){U(e,r,!1),I.send(n,t,a)}))}}))}},l&&!w&&(S.realtime=w=C()),e.onInit&&e.onInit({myID:n.myID,realtime:w,getLag:r.getLag,userList:R,network:r,channel:c})),e.onConnect&&e.onConnect(n,I.send),d?(n.members.forEach((function(e){16===e.length&&(i=e)})),D!==i&&(r.historyKeeper=i,D=i,N.forEach((function(e){e(i)}))),function(){var e={txid:b,priority:m,lastKnownHash:p,metadata:O};g&&Array.isArray(t)&&t.length&&(e.lastKnownHash=t[t.length-1].hash),y=[];var o=["GET_HISTORY",n.id,e];i&&r.sendto(i,JSON.stringify(o))}(),S.resetCache=function(){_=!0,t=[],g&&g.clearChannel(c),b=Math.floor(1e6*Math.random()),L({error:"EUNKNOWN",message:"Corrupted cache"},n)}):F(n,r)},B=!1;"undefined"!=typeof window&&window.addEventListener("beforeunload",(function(){B=!0}));var V=function(e,n){var t;return e.some((function(e){if(e.id===n)return t=e,!0})),t},Y=function(n){e.onError&&e.onError({type:n.type||n,message:n.message,error:n.type,loaded:!_})};x=function(r,o){var a;"string"==typeof r&&(a=n.connect(r));var i=function(){T=!1,"string"==typeof r?a.then(o,Y):"function"==typeof r.then?r.then(o,Y):o(r)};if(g&&!T)return g.getChannelCache(c,(function(n,r){A=r?r.k:void 0,(t=r?r.c:[]).length?(E=!0,e.onCacheStart&&e.onCacheStart(),l&&(S.realtime=w=C()),t.length?(e.onMessage&&t.forEach((function(n){var t={time:n.time};e.onMessage(n.patch,"cache",A,n.isCheckpoint,n.hash,n.author,t)})),e.onCacheReady&&e.onCacheReady({id:c,realtime:w,networkPromise:a}),i()):i()):i()})),void(S.resetCache=function(){g&&g.clearChannel(c),t=[]});i()};var G=!0;return k=function(n,t){h||n.join(c||null,m).then((function(e){if(h)try{e.leave()}catch(e){}else U(e,n,t)}),(function(r){r&&"ERESTRICTED"===r.type&&Array.isArray(r.message)&&e.onRejected?e.onRejected(r.message,(function(e){e?Y(r):k(n,t)})):Y(r)}))},S.stop=function(){h=!0},x(a||i,(function(n){if(a=n,G){if(G=!1,h)return;var t=function(n){B||"network.disconnect() called"!==n&&(e.onConnectionChange?e.onConnectionChange({state:!1}):e.onAbort&&e.onAbort({reason:n}))},r=function(n){if(e.onConnectionChange){e.onConnectionChange({state:!0,myId:n});var t=function(){_=!0,T=!0,R.users=[],x(a,k)};if(e.beforeReconnecting)return void e.beforeReconnecting((function(n,r){c=n,e.initialState=r,t()}));t()}},o=function(e,n){var t=V(a.webChannels,c);t&&K(n,e,t,a,!0)};a.on("disconnect",t),a.on("reconnect",r),a.on("message",o),S.network=a,S.stop=function(){I&&I.stop&&I.stop();var e=V(a.webChannels,c);if(e)try{e.leave("")}catch(e){}a.off("disconnect",t),a.off("reconnect",r),a.off("message",o),h=!0},a.onHistoryKeeperChange=function(e){N.push(e)}}k(a,!0)})),S},t))}(h)),h.exports}function m(){return f?u:(f=1,u=function(){if(c)return s;c=1;const e=n=>{if(Array.isArray(n))return n.map(e);if(n instanceof Object){let t=[],r=[];return Object.keys(n).forEach((e=>{/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce(((t,r)=>(t[r]=e(n[r]),t)),{})}return n},n=JSON.stringify.bind(JSON);return s=(t,r,o)=>{let a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;let i=JSON.parse(a);return n(e(i),null,o)}}())}function g(){return l||(l=1,function(e){e.exports&&(e.exports=function(e,n){const t=globalThis;var r,o={},a=void 0===t.Proxy,i=o.DeepProxy=function(){var e={},r=e.isArray=Array.isArray||function(e){return"[object Array]"===Object.toString(e)},o=e.type=function(e){return null===e?"null":r(e)?"array":typeof e},i=e.isProxyable=function(e,n){return(void 0!==n||!a)&&-1!==["object","array"].indexOf(o(e))},s=e.set=function(n){return function(t,r,o){if("on"===r)throw new Error("'on' is a reserved attribute name for realtime lists and maps");return i(o)?t[r]=e.create(o,n):t[r]=o,n(),t[r]||!0}},c=e.pathMatches=function(e,n){return!n.some((function(n,t){return n!==e[t]}))},u=function(e,n){return n.pattern.length-e.pattern.length},f=function(e){return function(n,t,r){switch(n){case"change":t="array"===o(t)?t:[t],e.change.push({cb:function(e,n,o,a){if(c(o,t))return r(e,n,o,a)},pattern:t}),e.change.sort(u);break;case"remove":t="array"===o(t)?t:[t],e.remove.push({cb:function(e,n,o){if(c(n,t))return r(e,n,o)},pattern:t}),e.remove.sort(u);break;case"ready":e.ready.push({cb:function(e){t(e)}});break;case"cacheready":e.cacheready.push({cb:function(e){t(e)}});break;case"disconnect":e.disconnect.push({cb:function(e){t(e)}});break;case"reconnect":e.reconnect.push({cb:function(e){t(e)}});break;case"create":e.create.push({cb:function(e){t(e)}});break;case"error":e.error.push({cb:function(e){t(e)}})}return this}},l=e.get=function(){var e={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};return function(n,t){return"on"===t?f(e):"_isProxy"===t||("_events"===t?e:n[t])}},d=e.delete=function(e){return function(n,t){return void 0===n[t]||(delete n[t],e()),!0}},h=e.handlers=function(e,n){return n?{set:s(e),get:l(e),deleteProperty:d(e)}:{set:s(e),get:function(e,n){return"_isProxy"===n||e[n]},deleteProperty:d(e)}},p=e.remoteChangeFlag=!1,v=e.stringifyFakeProxy=function(e){var t=JSON.parse(n(e));return delete t._events,delete t._isProxy,n(t)};e.checkLocalChange=function(n,r){if(a&&!e.interval){var o=v(n);e.interval=t.setInterval((function(){var e=v(n);e!==o&&(o=e,p?p=!1:r())}),300)}};var y=e.create=function(e,n,r){var s="function"===o(n)?h(n,r):n;switch(o(e)){case"object":Object.keys(e).forEach((function(t){i(e[t])&&!e[t]._isProxy&&(e[t]=y(e[t],n))}));break;case"array":e.forEach((function(t,r){i(t)&&!t._isProxy&&(e[r]=y(e[r],n))}));break;default:throw new Error("attempted to make a proxy of an unproxyable object")}if(!a)return e._isProxy?e:new t.Proxy(e,s);var c=JSON.parse(JSON.stringify(e));if(r){var u={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};c.on=f(u),c._events=u}return c},m=function(e,n,t,r,o){var a=e.slice(0);a.push(n),t._events.change.some((function(e){return!1===e.cb(r,o,a,t)}))},g=e.find=function(e,n){for(var t=n.length,r=0;rs)for(var c,u=s;u<=s;u++)c=e[u],E(r,u,a,c,!0);e.length=s}};return e.update=function(e,n,t){var r=o(e),a=o(n);if(r!==a)throw new Error("Proxy updates can't result in type changes");switch(a){case"array":O.call(e,e,n,(function(e){return y(e,t)}),[],e);break;case"object":b.call(e,e,n,(function(e){return y(e,t)}),[],e);break;default:throw new Error("unsupported realtime datatype:"+a)}},e}();return o.create=function(o){if(!i.isProxyable(o.data,!0))throw new Error("unsupported datatype: "+i.type(o.data));if("function"!=typeof(r=o.ChainPad||t.ChainPad).SmartJSONTransformer)throw new Error("Please update ChainPad");o.classic&&!o.crypto&&(console.error("[chainpad-listmap] no crypto module provided. messages will not be encrypted"),o.crypto={encrypt:function(e){return e},decrypt:function(e){return e}});var s=o.readOnly,c={initialState:n(o.data),patchTransformer:r.SmartJSONTransformer,validateContent:o.validateContent||function(e){try{return JSON.parse(e),!0}catch(n){return console.log(e),console.error("Failed to parse, rejecting patch"),!1}},readOnly:o.readOnly,userName:o.userName||"listmap",Cache:o.Cache,logLevel:void 0===o.logLevel?0:o.logLevel};o.classic&&(c.channel=o.channel,c.crypto=o.crypto,c.network=o.network,c.websocketURL=o.websocketURL,c.metadata=o.metadata||{validateKey:o.validateKey,owners:o.owners,expire:o.expire},c.onRejected=o.onRejected);var u,f,l,d={metadata:{}},h=!0,p=!1,v=a?i.stringifyFakeProxy:n,y=function(){var e=v(f);try{u.contentUpdate(e)}catch(e){f._events.error.forEach((function(n){n.cb({type:"CHAINPAD",error:e.message})}))}o.onLocal&&o.onLocal()},m=c.onLocal=function(e){h||s||(clearTimeout(l),e?y():l=setTimeout(y))},g=function(){i.remoteChangeFlag||m()};f=i.create(o.data,g,!0),c.onInit=function(e){f._events.create.forEach((function(n){n.cb(e)}))},c.onCacheReady=function(e){u&&u===e.realtime||(u=d.realtime=e.realtime);var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),p||f._events.cacheready.forEach((function(n){n.cb(e)}))};var E=0;c.onReady=function(e){if(E=-1,p)return h=!1,c.onRemote(),void f._events.reconnect.forEach((function(n){n.cb(e)}));u&&u===e.realtime||(u=d.realtime=e.realtime),d.metadata=e.metadata;var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),h=!1,p=!0,f._events.ready.forEach((function(n){n.cb(e)}))},c.onRemote=function(){if(!h){var e=u.getUserDoc(),n=JSON.parse(e);i.remoteChangeFlag=!0,i.update(f,n,g),i.remoteChangeFlag=!1}},c.onMessage=function(){-1!==E&&o.updateProgress&&o.updateProgress({progress:E++})},c.onAbort=function(e){f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onConnectionChange=function(e){e.state?h=!0:f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onMetadataUpdate=function(e){d.metadata=e,"function"==typeof o.onMetadataUpdate&&o.onMetadataUpdate(e)},c.onError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},c.onChannelError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},o.common&&"function"==typeof o.common.startRealtime?u=d.cpCnInner=o.common.startRealtime(c):d=e.start(c),d.proxy=f,d.realtime=u;var b=d.setReadOnly;return d.setReadOnly=function(e,n){s=e,b&&b(e,n)},d},o}(y(),m()))}(d)),d.exports}var E=g();function b(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var O,A={exports:{}};function w(){return O||(O=1,function(e){var n,r,o,a;a=function(){var e=b,n=function(t,r,o){r||(r=0);var a=n.resolve(t,r),i=n.m[r][a];if(!i&&e){if(i=e(a))return i}else if(i&&i.c&&(r=i.c,a=i.m,!(i=n.m[r][i.m])))throw new Error('failed to require "'+a+'" from '+r);if(!i)throw new Error('failed to require "'+t+'" from '+o);return i.exports||(i.exports={},i.call(i.exports,i,i.exports,n.relative(a,r))),i.exports};return n.resolve=function(e,t){var r=e,o=e+".js",a=e+"/index.js";return n.m[t][o]&&o?o:n.m[t][a]&&a?a:r},n.relative=function(e,t){return function(r){if("."!=r.charAt(0))return n(r,t,e);var o=e.split("/"),a=r.split("/");o.pop();for(var i=0;i=0;t--)o.check(e.operations[t],n),t>0&&r.assert(!o.shouldMerge(e.operations[t],e.operations[t-1])),"number"==typeof n&&(n+=o.lengthChange(e.operations[t]));return e.isCheckpoint&&(r.assert(1===e.operations.length),r.assert(0===e.operations[0].offset),"number"==typeof n&&r.assert(!n||e.operations[0].toRemove===n)),e};i.toObj=function(e){r.PARANOIA&&c(e);var n,t=new Array(e.operations.length+1);for(n=0;n0);var t,i=s(a.check(e[e.length-1]),n);for(t=0;t=0;t--)f(e,n.operations[t]);return e},i.apply=function(e,n){r.PARANOIA&&(c(e),r.assert("string"==typeof n),r.assert(a.hex_sha256(n)===e.parentHash));for(var t=n,i=e.operations.length-1;i>=0;i--)t=o.apply(e.operations[i],t);return t},i.lengthChange=function(e){r.PARANOIA&&c(e);for(var n=0,t=0;t=0;u--)i[u]=o.invert(e.operations[u],t),t=o.apply(e.operations[u],t);var f=new Array(e.operations.length);!function(){for(var e=i.length-1;e>=0;e--){f[e]=i[e].offset;for(var n=e-1;n>=0;n--)f[e]+=i[n].toRemove-i[n].toInsert.length}}();var l=s(a.hex_sha256(t),e.isCheckpoint);l.operations.splice(0,l.operations.length);for(var d=0;d=0;d--){var h=t(e.operations[d],u,o.simplify);h&&(u=o.apply(h,u),f[l++]=h)}return Array.prototype.push.apply(i.operations,f.reverse()),i.operations[0]||i.operations.shift(),r.PARANOIA&&c(i),i},i.equals=function(e,n){if(e.operations.length!==n.operations.length)return!1;for(var t=0;t0;){var u=o.random(i);i+=o.lengthChange(u),f(t,u)}return c(t),t},Object.freeze(e.exports)},"SHA256.js":function(e,n,t){!function(){function n(e,n){var t=(65535&e)+(65535&n);return(e>>16)+(n>>16)+(t>>16)<<16|65535&t}function t(e,n){return e>>>n|e<<32-n}function r(e,n){return e>>>n}function o(e,n,t){return e&n^~e&t}function a(e,n,t){return e&n^e&t^n&t}function i(e){return t(e,2)^t(e,13)^t(e,22)}function s(e){return t(e,6)^t(e,11)^t(e,25)}function c(e){return t(e,7)^t(e,18)^r(e,3)}e.exports.hex_sha256=function(e){return function(e){for(var n="0123456789abcdef",t="",r=0;r<4*e.length;r++)t+=n.charAt(e[r>>2]>>8*(3-r%4)+4&15)+n.charAt(e[r>>2]>>8*(3-r%4)&15);return t}(function(e,u){var f,l,d,h,p,v,y,m,g,E,b,O=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],A=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],w=function(e){for(var n=[];e>0;e--)n.push(void 0);return n}(64);e[u>>5]|=128<<24-u%32,e[15+(u+64>>9<<4)]=u;for(var D=0;D>5]|=(255&e.charCodeAt(t/8))<<24-t%32;return n}(e),8*e.length))}}()},"Common.js":function(e,n,r){e.exports.global=function(){if("undefined"!=typeof self)return self;if(void 0!==t)return t;if("undefined"!=typeof window)return window;throw new Error("no self, nor global, nor window")}();var o=function(n){return"undefined"!=typeof localStorage&&localStorage[n]?localStorage[n]:e.exports.global[n]},a=e.exports.PARANOIA=o("ChainPad_PARANOIA");e.exports.VALIDATE_ENTIRE_CHAIN_EACH_MSG=o("ChainPad_VALIDATE_ENTIRE_CHAIN_EACH_MSG"),e.exports.TESTING=o("ChainPad_TESTING"),e.exports.assert=function(e){if(!e)throw new Error("Failed assertion")},e.exports.isUint=function(e){return"number"==typeof e&&Math.floor(e)===e&&e>=0},e.exports.randomASCII=function(e){for(var n=[],t=0;tn?1:-1},Object.freeze(e.exports)},"sha256.js":function(e,n,t){var r=t("./sha256/exports.js"),o=t("./SHA256.js"),a=t("./Common");e.exports.check=function(e){if("string"!=typeof e)throw new Error;if(!/[a-f0-9]{64}/.test(e))throw new Error;return e},e.exports.hex_sha256=function(e){e+="";var n=r.hex(function(e){for(var n=new Uint8Array(e.length),t=0;t1&&console.log("["+e.userName+"] "+n)},d=function(e,n){e.logLevel>0&&console.error("["+e.userName+"] "+n)},h=function(e,n,t){if(!e.aborted){t||(t=Math.floor(2*Math.random()*e.config.avgSyncMilliseconds));var r=setTimeout((function(){e.schedules.splice(e.schedules.indexOf(r),1),n()}),t);return e.schedules.push(r),r}},p=function(e,n){var t=e.schedules.indexOf(n);t>-1&&e.schedules.splice(t,1),clearTimeout(n)},v=function(e,n,t,o){var a=i.toStr(n);if(function(e,n,t){e.messageHandlers.length||t("no onMessage() handler registered");try{e.messageHandlers.forEach((function(e){e(n,(function(){t.apply(null,arguments),t=function(){}}))}))}catch(e){t(e.stack)}}(e,a,(function(t){if(t)l(e,"Posting to server failed ["+t+"]"),e.pending=null,e.syncSchedule=h(e,(function(){g(e)}));else{var o=e.pending;if(e.pending=null,!o)throw new Error;r.assert(o.hash===n.hashOf),R(e,a,!0)?(e.timeOfLastSuccess=+new Date,e.lag=+new Date-o.timeSent):l(e,"Our message ["+n.hashOf+"] failed validation"),o.callback()}})),e.pending)throw new Error("there is already a pending message");-1===e.timeOfLastSuccess&&(e.timeOfLastSuccess=+new Date),e.pending={hash:n.hashOf,timeSent:+new Date,callback:function(){e.syncSchedule=h(e,(function(){g(e)}),0),t()}},r.PARANOIA&&A(e)},y=function(e){var n=e.onSettle;e.onSettle=[],n.forEach((function(n){try{n()}catch(n){d(e,"Error in onSettle handler ["+n.stack+"]")}}))},m=function(e){if(!e.mut.inverseOf)throw new Error;return e.mut.inverseOf},g=function(e,n){if(r.PARANOIA&&A(e),e.syncSchedule&&!e.pending){if(p(e,e.syncSchedule),e.syncSchedule=null,e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify),0===e.uncommitted.operations.length)return y(e),e.timeOfLastSuccess=+new Date,void(e.syncSchedule=h(e,(function(){g(e)})));var t=_(e,e.best)+1;if(t%e.config.checkpointInterval!=0){var o;o=e.setContentPatch?e.setContentPatch:i.create(i.PATCH,e.uncommitted,e.best.hashOf),v(e,o,(function(){e.setContentPatch&&(l(e,"initial Ack received ["+o.hashOf+"]"),e.setContentPatch=null)}))}else{var s=e.best;if(l(e,"Sending checkpoint (interval ["+e.config.checkpointInterval+"]) patch no ["+t+"]"),l(e,_(e,e.best)),!s||!s.content||!m(s.content))throw new Error;var c=a.createCheckpoint(e.authDoc,e.authDoc,m(s.content).parentHash),u=i.create(i.CHECKPOINT,c,s.hashOf);v(e,u,(function(){l(e,"Checkpoint sent and accepted")}))}}},E=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),e.messages[n.hashOf]=n,(e.messagesByParent[n.lastMsgHash]=e.messagesByParent[n.lastMsgHash]||[]).push(n)},b=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),delete e.messages[n.hashOf];var t=e.messagesByParent[n.lastMsgHash];r.assert(t.indexOf(n)>-1),t.splice(t.indexOf(n),1),0===t.length&&delete e.messagesByParent[n.lastMsgHash];var o=e.messagesByParent[n.hashOf];if(o)for(var a=0;a_(e,t)&&(t=o)})),t},x=function(e,n){n.operations.length&&(e.patchHandlers.forEach((function(e){e(n)})),e.changeHandlers.forEach((function(e){n.operations.forEach((function(n){e(n.offset,n.toRemove,n.toInsert)}))})))},N=function(e,n){try{return e.config.validateContent(n())}catch(n){d(e,"Error in content validator ["+n.stack+"]")}return!1},I=function(e,n,t){for(var r=O(e,n);r;r=O(e,r))if(!1===t(r))return},C=function(e,n){e.mut.inverseOf||((e.mut.inverseOf=a.invert(e,n)).mut.inverseOf=e)},R=function(e,n,t){r.PARANOIA&&A(e);var c=i.fromString(n);if(l(e,JSON.stringify([c.hashOf,c.content.operations])),e.messages[c.hashOf]){if(e.setContentPatch&&e.setContentPatch.hashOf===c.hashOf)e.setContentPatch=null;else{if(c.content.isCheckpoint)return l(e,"["+(t?"our":"their")+"] Checkpoint ["+c.hashOf+"] is already known"),!0;l(e,"Patch ["+c.hashOf+"] is already known")}r.PARANOIA&&A(e)}else if(!c.content.isCheckpoint||N(e,(function(){return c.content.operations[0].toInsert}))){if(E(e,c),!D(e,e.rootMessage,c)){if(c.content.isCheckpoint&&e.best.mut.isInitialMessage){l(e,"applying checkpoint ["+c.hashOf+"]");var u=a.apply(e.uncommitted,e.authDoc);r.assert(!r.PARANOIA||e.userInterfaceContent===u);var f=a.invert(e.uncommitted,e.authDoc);return a.addOperation(f,o.create(0,e.authDoc.length,c.content.operations[0].toInsert)),f=a.simplify(f,u,e.config.operationSimplify),c.mut.parentCount=0,e.rootMessage=e.best=c,e.authDoc=c.content.operations[0].toInsert,e.uncommitted=a.create(s.hex_sha256(e.authDoc)),x(e,f),r.PARANOIA&&(e.userInterfaceContent=e.authDoc),!0}return l(e,"Patch ["+c.hashOf+"] not connected to root (parent: ["+c.lastMsgHash+"])"),void(r.PARANOIA&&A(e))}(c=S(e,c)).mut.isFromMe=t;var d=c.content,h=[],p=e.best;if(!D(e,e.best,c)){var v=_(e,e.best),g=_(e,c);if(!(v0))return l(e,"Patch ["+c.hashOf+"] chain is ["+g+"] best chain is ["+v+"]"),r.PARANOIA&&A(e),!0;for(;p&&!D(e,p,c);)h.push(p),p=O(e,p);r.assert(p),l(e,"Patch ["+c.hashOf+"] better than best chain, switching")}var R=[],P=c;do{R.unshift(P),P=O(e,P),r.assert(P)}while(P!==p);var k=e.authDoc;h.forEach((function(e){k=a.apply(m(e.content),k)})),R.forEach((function(e,n){n!==R.length-1&&(C(e.content,k),k=a.apply(e.content,k))}));var M=e.best;if(R.length>1?(M=R[R.length-2],r.assert(M)):h.length&&(M=O(e,h[h.length-1]),r.assert(M)),r.assert(m(M.content).parentHash),r.assert(!r.PARANOIA||m(M.content).parentHash===s.hex_sha256(k)),m(M.content).parentHash===d.parentHash){if(d.isCheckpoint&&e.config.noPrune);else if(d.isCheckpoint){var F;if(I(e,c,(function(e){if(e.content.isCheckpoint){if(F)return F=e,!1;F=e}})),F&&F!==e.rootMessage){var L=_(e,F);if(e.config.strictCheckpointValidation&&L%e.config.checkpointInterval!=0){if(l(e,"checkpoint ["+c.hashOf+"] at invalid point ["+L+"]"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}l(e,"checkpoint ["+c.hashOf+"]"),I(e,F,(function(n){l(e,"pruning ["+n.hashOf+"]"),b(e,n)})),e.rootMessage=F}}else{var H=a.simplify(d,k,e.config.operationSimplify);if(!a.equals(H,d)){if(l(e,"patch ["+c.hashOf+"] can be simplified"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}if(!N(e,(function(){return a.apply(d,k)})))return void l(e,"Patch ["+c.hashOf+"] failed content validation")}C(d,k),e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify);var j=a.apply(e.uncommitted,e.authDoc);r.PARANOIA&&r.assert(j===e.userInterfaceContent);var K=a.invert(e.uncommitted,e.authDoc);if(h.forEach((function(n){l(e,"reverting ["+n.hashOf+"]"),n.mut.isFromMe&&l(e,"reverting patch 'from me' ["+JSON.stringify(n.content.operations)+"]"),K=a.merge(K,m(n.content)),function(e,n,t){T(e,n,m(t))}(e,n.mut.isFromMe,n.content)})),R.forEach((function(n){l(e,"applying ["+n.hashOf+"]"),K=a.merge(K,n.content),T(e,n.mut.isFromMe,n.content)})),K=a.merge(K,e.uncommitted),K=a.simplify(K,j,e.config.operationSimplify),e.best=c,r.PARANOIA){var U=a.apply(K,j);r.assert(e.userInterfaceContent.length===w(e)),r.assert(U===e.userInterfaceContent)}return x(e,K),e.uncommitted.operations.length||y(e),r.PARANOIA&&A(e),!0}if(l(e,"patch ["+c.hashOf+"] parentHash is not valid"),r.PARANOIA&&A(e),r.TESTING)throw new Error;b(e,c)}else l(e,"Checkpoint ["+c.hashOf+"] failed content validation")},P=function(e,n){return Object.freeze({type:"Block",hashOf:n.hashOf,lastMsgHash:n.lastMsgHash,isCheckpoint:!!n.content.isCheckpoint,isFromMe:n.mut&&n.mut.isFromMe,author:n.mut&&n.mut.author,serverHash:n.mut&&n.mut.serverHash,time:n.mut&&n.mut.time,getParent:function(){var t=O(e,n);if(t)return P(e,t)},getContent:function(){return function(e,n){for(var t=[n];t[0]!==e.rootMessage;){var o=O(e,t[0]);if(!o)return{error:"not connected to root",doc:void 0};t.unshift(o)}var i="";e.rootMessage.content.operations.length&&(r.assert(1===e.rootMessage.content.operations.length),i=e.rootMessage.content.operations[0].toInsert);for(var s=1;s=0;t--)n=s(e[t],n);return n};var c=o.invert=function(e,n){return r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length)),i(e.offset,e.toInsert.length,(" "+n.substring(e.offset,e.offset+e.toRemove)).slice(1))},u=/[\uD800-\uDBFF]|[\uDC00-\uDFFF]/,f=o.hasSurrogate=function(e){return u.test(e)};o.simplify=function(e,n){r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length));for(var t=c(e,n),o=Math.min(e.toInsert.length,t.toInsert.length),s=0;s=0&&h[s]===d[s];s--);d=d.substring(0,s+1),l=s+1}return 0===l&&0===d.length?null:i(u,l,d)},o.equals=function(e,n){return e.toRemove===n.toRemove&&e.toInsert===n.toInsert&&e.offset===n.offset},o.lengthChange=function(e){return r.PARANOIA&&a(e),e.toInsert.length-e.toRemove},o.merge=function(e,n){r.PARANOIA&&(a(n),a(e));var t=e.offset,o=e.toRemove,s=e.toInsert,c=n.offset,u=n.toRemove,f=n.toInsert,l=c-t;if(u>0){var d=s;s=s.substring(0,l)+s.substring(l+u),(u-=d.length-s.length)<0&&(u=0),o+=u,u=0}if(l<0)t+=l,s=f+s;else if(s.length===l)s+=f;else{if(!(s.length>l))throw new Error("should never happen\n"+JSON.stringify([e,n],null," "));s=s.substring(0,l)+f+s.substring(l)}return""===s&&0===o?null:i(t,o,s)},o.shouldMerge=function(e,n){return r.PARANOIA&&(a(e),a(n)),n.offset0;)a+=c=r._heap_write(t,o+a,e,i,s),i+=c,s-=c,o+=c=n.process(o,a),(a-=c)||(o=0);return this.pos=o,this.len=a,this},e.exports.hash_finish=function(){if(null!==this.result)throw new IllegalStateError("state must be reset before processing new data");return this.asm.finish(this.pos,this.len,0),this.result=new Uint8Array(this.HASH_SIZE),this.result.set(this.heap.subarray(0,this.HASH_SIZE)),this.pos=0,this.len=0,this}},"sha256/utils.js":function(e,n,t){var r=e.exports.string_to_bytes=function(e,n){n=!!n;for(var t=e.length,r=new Uint8Array(n?4*t:t),o=0,a=0;o=t)throw new Error("Malformed string, low surrogate expected at position "+o);i=(55296^i)<<10|65536|56320^e.charCodeAt(o)}else if(!n&&i>>>8)throw new Error("Wide characters are not allowed.");!n||i<=127?r[a++]=i:i<=2047?(r[a++]=192|i>>6,r[a++]=128|63&i):i<=65535?(r[a++]=224|i>>12,r[a++]=128|i>>6&63,r[a++]=128|63&i):(r[a++]=240|i>>18,r[a++]=128|i>>12&63,r[a++]=128|i>>6&63,r[a++]=128|63&i)}return r.subarray(0,a)};e.exports.hex_to_bytes=function(e){var n=e.length;1&n&&(e="0"+e,n++);for(var t=new Uint8Array(n>>1),r=0;r>1]=parseInt(e.substr(r,2),16);return t},e.exports.base64_to_bytes=function(e){return r(atob(e))};var o=e.exports.bytes_to_string=function(e,n){n=!!n;for(var t=e.length,r=new Array(t),o=0,a=0;o=192&&i<224&&o+1=224&&i<240&&o+2=240&&i<248&&o+3>10,r[a++]=56320|1023&s)}}for(var c="",u=16384,f=0;f>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+=1},e.exports.is_number=function(e){return"number"==typeof e},e.exports.is_string=function(e){return"string"==typeof e},e.exports.is_buffer=function(e){return e instanceof ArrayBuffer},e.exports.is_bytes=function(e){return e instanceof Uint8Array},e.exports.is_typed_array=function(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array},e.exports._heap_init=function(e,n){var t=n.heap,r=t?t.byteLength:n.heapSize||65536;if(4095&r||r<=0)throw new Error("heap size must be a positive integer and a multiple of 4096");return t=t||new e(new ArrayBuffer(r))},e.exports._heap_write=function(e,n,t,r,o){var a=e.length-n,i=a>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x428a2f98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=n+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x71374491|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=t+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb5c0fbcf|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=l+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe9b5dba5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=d+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x3956c25b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=h+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x59f111f1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=p+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x923f82a4|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=v+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xab1c5ed5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=y+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd807aa98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=m+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x12835b01|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=g+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x243185be|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=E+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x550c7dc3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=b+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x72be5d74|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=O+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x80deb1fe|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=A+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x9bdc06a7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=w+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc19bf174|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe49b69c1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xefbe4786|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x0fc19dc6|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x240ca1cc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2de92c6f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4a7484aa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5cb0a9dc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x76f988da|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x983e5152|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa831c66d|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb00327c8|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbf597fc7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc6e00bf3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd5a79147|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x06ca6351|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x14292967|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x27b70a85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2e1b2138|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4d2c6dfc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x53380d13|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x650a7354|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x766a0abb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x81c2c92e|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x92722c85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa2bfe8a1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa81a664b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc24b8b70|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc76c51a3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd192e819|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd6990624|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xf40e3585|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x106aa070|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x19a4c116|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x1e376c08|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2748774c|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x34b0bcb5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x391c0cb3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4ed8aa4a|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5b9cca4f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x682e6ff3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x748f82ee|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x78a5636f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x84c87814|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x8cc70208|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x90befffa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa4506ceb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbef9a3f7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc67178f2|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;r=r+D|0;o=o+_|0;a=a+T|0;i=i+S|0;s=s+x|0;c=c+N|0;u=u+I|0;f=f+C|0}function C(e){e=e|0;I(N[e|0]<<24|N[e|1]<<16|N[e|2]<<8|N[e|3],N[e|4]<<24|N[e|5]<<16|N[e|6]<<8|N[e|7],N[e|8]<<24|N[e|9]<<16|N[e|10]<<8|N[e|11],N[e|12]<<24|N[e|13]<<16|N[e|14]<<8|N[e|15],N[e|16]<<24|N[e|17]<<16|N[e|18]<<8|N[e|19],N[e|20]<<24|N[e|21]<<16|N[e|22]<<8|N[e|23],N[e|24]<<24|N[e|25]<<16|N[e|26]<<8|N[e|27],N[e|28]<<24|N[e|29]<<16|N[e|30]<<8|N[e|31],N[e|32]<<24|N[e|33]<<16|N[e|34]<<8|N[e|35],N[e|36]<<24|N[e|37]<<16|N[e|38]<<8|N[e|39],N[e|40]<<24|N[e|41]<<16|N[e|42]<<8|N[e|43],N[e|44]<<24|N[e|45]<<16|N[e|46]<<8|N[e|47],N[e|48]<<24|N[e|49]<<16|N[e|50]<<8|N[e|51],N[e|52]<<24|N[e|53]<<16|N[e|54]<<8|N[e|55],N[e|56]<<24|N[e|57]<<16|N[e|58]<<8|N[e|59],N[e|60]<<24|N[e|61]<<16|N[e|62]<<8|N[e|63])}function R(e){e=e|0;N[e|0]=r>>>24;N[e|1]=r>>>16&255;N[e|2]=r>>>8&255;N[e|3]=r&255;N[e|4]=o>>>24;N[e|5]=o>>>16&255;N[e|6]=o>>>8&255;N[e|7]=o&255;N[e|8]=a>>>24;N[e|9]=a>>>16&255;N[e|10]=a>>>8&255;N[e|11]=a&255;N[e|12]=i>>>24;N[e|13]=i>>>16&255;N[e|14]=i>>>8&255;N[e|15]=i&255;N[e|16]=s>>>24;N[e|17]=s>>>16&255;N[e|18]=s>>>8&255;N[e|19]=s&255;N[e|20]=c>>>24;N[e|21]=c>>>16&255;N[e|22]=c>>>8&255;N[e|23]=c&255;N[e|24]=u>>>24;N[e|25]=u>>>16&255;N[e|26]=u>>>8&255;N[e|27]=u&255;N[e|28]=f>>>24;N[e|29]=f>>>16&255;N[e|30]=f>>>8&255;N[e|31]=f&255}function P(){r=0x6a09e667;o=0xbb67ae85;a=0x3c6ef372;i=0xa54ff53a;s=0x510e527f;c=0x9b05688c;u=0x1f83d9ab;f=0x5be0cd19;l=d=0}function k(e,n,t,h,p,v,y,m,g,E){e=e|0;n=n|0;t=t|0;h=h|0;p=p|0;v=v|0;y=y|0;m=m|0;g=g|0;E=E|0;r=e;o=n;a=t;i=h;s=p;c=v;u=y;f=m;l=g;d=E}function M(e,n){e=e|0;n=n|0;var t=0;if(e&63)return-1;while((n|0)>=64){C(e);e=e+64|0;n=n-64|0;t=t+64|0}l=l+t|0;if(l>>>0>>0)d=d+1|0;return t|0}function F(e,n,t){e=e|0;n=n|0;t=t|0;var r=0,o=0;if(e&63)return-1;if(~t)if(t&31)return-1;if((n|0)>=64){r=M(e,n)|0;if((r|0)==-1)return-1;e=e+r|0;n=n-r|0}r=r+n|0;l=l+n|0;if(l>>>0>>0)d=d+1|0;N[e|n]=0x80;if((n|0)>=56){for(o=n+1|0;(o|0)<64;o=o+1|0)N[e|o]=0x00;C(e);n=0;N[e|0]=0}for(o=n+1|0;(o|0)<59;o=o+1|0)N[e|o]=0;N[e|56]=d>>>21&255;N[e|57]=d>>>13&255;N[e|58]=d>>>5&255;N[e|59]=d<<3&255|l>>>29;N[e|60]=l>>>21&255;N[e|61]=l>>>13&255;N[e|62]=l>>>5&255;N[e|63]=l<<3&255;C(e);if(~t)R(t);return r|0}function L(){r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;l=64;d=0}function H(){r=O;o=A;a=w;i=D;s=_;c=T;u=S;f=x;l=64;d=0}function j(e,n,t,N,C,R,k,M,F,L,H,j,K,U,B,V){e=e|0;n=n|0;t=t|0;N=N|0;C=C|0;R=R|0;k=k|0;M=M|0;F=F|0;L=L|0;H=H|0;j=j|0;K=K|0;U=U|0;B=B|0;V=V|0;P();I(e^0x5c5c5c5c,n^0x5c5c5c5c,t^0x5c5c5c5c,N^0x5c5c5c5c,C^0x5c5c5c5c,R^0x5c5c5c5c,k^0x5c5c5c5c,M^0x5c5c5c5c,F^0x5c5c5c5c,L^0x5c5c5c5c,H^0x5c5c5c5c,j^0x5c5c5c5c,K^0x5c5c5c5c,U^0x5c5c5c5c,B^0x5c5c5c5c,V^0x5c5c5c5c);O=r;A=o;w=a;D=i;_=s;T=c;S=u;x=f;P();I(e^0x36363636,n^0x36363636,t^0x36363636,N^0x36363636,C^0x36363636,R^0x36363636,k^0x36363636,M^0x36363636,F^0x36363636,L^0x36363636,H^0x36363636,j^0x36363636,K^0x36363636,U^0x36363636,B^0x36363636,V^0x36363636);h=r;p=o;v=a;y=i;m=s;g=c;E=u;b=f;l=64;d=0}function K(e,n,t){e=e|0;n=n|0;t=t|0;var l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0;if(e&63)return-1;if(~t)if(t&31)return-1;E=F(e,n,-1)|0;l=r,d=o,h=a,p=i,v=s,y=c,m=u,g=f;H();I(l,d,h,p,v,y,m,g,0x80000000,0,0,0,0,0,0,768);if(~t)R(t);return E|0}function U(e,n,t,l,d){e=e|0;n=n|0;t=t|0;l=l|0;d=d|0;var h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0;if(e&63)return-1;if(~d)if(d&31)return-1;N[e+n|0]=t>>>24;N[e+n+1|0]=t>>>16&255;N[e+n+2|0]=t>>>8&255;N[e+n+3|0]=t&255;K(e,n+4|0,-1)|0;h=O=r,p=A=o,v=w=a,y=D=i,m=_=s,g=T=c,E=S=u,b=x=f;l=l-1|0;while((l|0)>0){L();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;H();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;h=h^r;p=p^o;v=v^a;y=y^i;m=m^s;g=g^c;E=E^u;b=b^f;l=l-1|0}r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;if(~d)R(d);return 0}return{reset:P,init:k,process:M,finish:F,hmac_reset:L,hmac_init:j,hmac_finish:K,pbkdf2_generate_block:U}}},"transform/TextTransformer.js":function(e,n,t){var r=t("../Operation"),o=t("../Common"),a=function(e,n){o.PARANOIA&&(r.check(e),r.check(n));var t=function(e,n){if(e.offset>n.offset){if(e.offset>n.offset+n.toRemove)return r.create(e.offset-n.toRemove+n.toInsert.length,e.toRemove,e.toInsert);var t=e.toRemove-(n.offset+n.toRemove-e.offset);return t<0&&(t=0),0===t&&0===e.toInsert.length?null:r.create(n.offset+n.toInsert.length,t,e.toInsert)}if(e.offset+e.toRemove=0;i--)s=r.apply(n[i],s);var c=[];for(i=e.length-1;i>=0;i--){for(var u=e[i],f=n.length-1;f>=0;f--){try{u=a(u,n[f])}catch(e){return console.error("The pluggable transform function threw an error, failing operational transformation"),console.error(e.stack),[]}if(!u)break}u&&(o.PARANOIA&&r.check(u,s.length),c.unshift(u))}return c}},"transform/NaiveJSONTransformer.js":function(e,n,t){var r=t("./TextTransformer"),o=t("../Operation"),a=t("../Common");e.exports=function(e,n,t){var i,s,c,u=a.global.REALTIME_DEBUG=a.global.REALTIME_DEBUG||{};try{i=r(e,n,t),s=o.applyMulti(n,t),c=o.applyMulti(i,s);try{return JSON.parse(c),i}catch(r){console.error(r),u.ot_parseError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_parseError`")}}catch(r){console.error(r),u.ot_applyError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_applyError`")}return[]}},"transform/SmartJSONTransformer.js":function(e,n,t){var r,o,a,i=t("json.sortify"),s=t("../Diff"),c=t("../Operation"),u=t("./TextTransformer"),f=function(e){return null===e?"null":(n=e,"[object Array]"===Object.prototype.toString.call(n)?"array":typeof e);var n},l=function(e,n){for(var t=n.length,r=0;r1)return!0}))&&("splice"!==n.type||!e.some((function(e){if("splice"===e.type&&y(e.path,n.path)&&e.path.length-n.path.length<0){if(!e.removals)return;for(var t=e.offset,r=e.offset+e.removals;te.offset+n.removals)return void(n.offset+=e.value.length-e.removals);if(n.offseti)){var d=n.slice(0,l);if((y=n.slice(l))===u){var p=Math.min(s,l);if((g=c.slice(0,p))===(b=d.slice(0,p)))return h(g,c.slice(p),d.slice(p),u)}}if(null===f||f===s){var v=s,y=(d=n.slice(0,v),n.slice(v));if(d===c){var m=Math.min(a-v,i-v);if((E=u.slice(u.length-m))===(O=y.slice(y.length-m)))return h(c,u.slice(0,u.length-m),y.slice(0,y.length-m),E)}}}if(r.length>0&&o&&0===o.length){var g=e.slice(0,r.index),E=e.slice(r.index+r.length);if(!(i<(p=g.length)+(m=E.length))){var b=n.slice(0,p),O=n.slice(i-m);if(g===b&&E===O)return h(g,e.slice(p,a-m),n.slice(p,i-m),E)}}return null}(e,n,t);if(f)return f}var l=i(e,n),d=e.substring(0,l);l=s(e=e.substring(l),n=n.substring(l));var p=e.substring(e.length-l),v=function(e,n){var t;if(!e)return[[1,n]];if(!n)return[[r,e]];var c=e.length>n.length?e:n,u=e.length>n.length?n:e,f=c.indexOf(u);if(-1!==f)return t=[[1,c.substring(0,f)],[0,u],[1,c.substring(f+u.length)]],e.length>n.length&&(t[0][0]=t[2][0]=r),t;if(1===u.length)return[[r,e],[1,n]];var l=function(e,n){var t=e.length>n.length?e:n,r=e.length>n.length?n:e;if(t.length<4||2*r.length=e.length?[r,o,a,c,l]:null}var a,c,u,f,l,d=o(t,r,Math.ceil(t.length/4)),h=o(t,r,Math.ceil(t.length/2));if(!d&&!h)return null;a=h?d&&d[4].length>h[4].length?d:h:d,e.length>n.length?(c=a[0],u=a[1],f=a[2],l=a[3]):(f=a[0],l=a[1],c=a[2],u=a[3]);var p=a[4];return[c,u,f,l,p]}(e,n);if(l){var d=l[0],h=l[1],p=l[2],v=l[3],y=l[4],m=o(d,p),g=o(h,v);return m.concat([[0,y]],g)}return function(e,n){for(var t=e.length,o=n.length,i=Math.ceil((t+o)/2),s=i,c=2*i,u=new Array(c),f=new Array(c),l=0;lt)v+=2;else if(O>o)p+=2;else if(h&&(D=s+d-E)>=0&&D=(w=t-f[D]))return a(e,n,T,O)}for(var A=-g+y;A<=g-m;A+=2){for(var w,D=s+A,_=(w=A===-g||A!==g&&f[D-1]t)m+=2;else if(_>o)y+=2;else if(!h){var T;if((b=s+d-A)>=0&&b=(w=t-w))return a(e,n,T,O)}}}return[[r,e],[1,n]]}(e,n)}(e=e.substring(0,e.length-l),n=n.substring(0,n.length-l));return d&&v.unshift([0,d]),p&&v.push([0,p]),c(v,u),v}function a(e,n,t,r){var a=e.substring(0,t),i=n.substring(0,r),s=e.substring(t),c=n.substring(r),u=o(a,i),f=o(s,c);return u.concat(f)}function i(e,n){if(!e||!n||e.charAt(0)!==n.charAt(0))return 0;for(var t=0,r=Math.min(e.length,n.length),o=r,a=0;t=0&&d(e[p][1])){var v=e[p][1].slice(-1);if(e[p][1]=e[p][1].slice(0,-1),f=v+f,h=v+h,!e[p][1]){e.splice(p,1),o--;var y=p-1;e[y]&&1===e[y][0]&&(u++,h=e[y][1]+h,y--),e[y]&&e[y][0]===r&&(a++,f=e[y][1]+f,y--),p=y}}l(e[o][1])&&(v=e[o][1].charAt(0),e[o][1]=e[o][1].slice(1),f+=v,h+=v)}if(o0||h.length>0){f.length>0&&h.length>0&&(0!==(t=i(h,f))&&(p>=0?e[p][1]+=h.substring(0,t):(e.splice(0,0,[0,h.substring(0,t)]),o++),h=h.substring(t),f=f.substring(t)),0!==(t=s(h,f))&&(e[o][1]=h.substring(h.length-t)+e[o][1],h=h.substring(0,h.length-t),f=f.substring(0,f.length-t)));var m=u+a;0===f.length&&0===h.length?(e.splice(o-m,m),o-=m):0===f.length?(e.splice(o-m,m,[1,h]),o=o-m+1):0===h.length?(e.splice(o-m,m,[r,f]),o=o-m+1):(e.splice(o-m,m,[r,f],[1,h]),o=o-m+2)}0!==o&&0===e[o-1][0]?(e[o-1][1]+=e[o][1],e.splice(o,1)):o++,u=0,a=0,f="",h=""}""===e[e.length-1][1]&&e.pop();var g=!1;for(o=1;o=55296&&e<=56319}function f(e){return e>=56320&&e<=57343}function l(e){return f(e.charCodeAt(0))}function d(e){return u(e.charCodeAt(e.length-1))}function h(e,n,t,o){return d(e)||l(o)?null:function(e){for(var n=[],t=0;t0&&n.push(e[t]);return n}([[0,e],[r,n],[1,t],[0,o]])}function p(e,n,t){return o(e,n,t,!0)}p.INSERT=1,p.DELETE=r,p.EQUAL=0,e.exports=p}},n=a("ChainPad.js"),r="ChainPad",e.exports=n,"undefined"!=typeof window?o=window:void 0!==t?o=t:"undefined"!=typeof self&&(o=self),o[r]=n}(A)),A.exports}var D,_=w(),T=n({__proto__:null,default:r(_)},[_]),S={exports:{}},x={exports:{}};function N(){return D||(D=1,function(e){!function(e){var n=function(e){var n,t=new Float64Array(16);if(e)for(n=0;n>24&255,e[n+1]=t>>16&255,e[n+2]=t>>8&255,e[n+3]=255&t,e[n+4]=r>>24&255,e[n+5]=r>>16&255,e[n+6]=r>>8&255,e[n+7]=255&r}function p(e,n,t,r,o){var a,i=0;for(a=0;a>>8)-1}function v(e,n,t,r){return p(e,n,t,r,16)}function y(e,n,t,r){return p(e,n,t,r,32)}function m(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=a,A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=0;L<20;L+=2)O^=(o=(P^=(o=(N^=(o=(_^=(o=O+P|0)<<7|o>>>25)+O|0)<<9|o>>>23)+_|0)<<13|o>>>19)+N|0)<<18|o>>>14,T^=(o=(A^=(o=(k^=(o=(I^=(o=T+A|0)<<7|o>>>25)+T|0)<<9|o>>>23)+I|0)<<13|o>>>19)+k|0)<<18|o>>>14,C^=(o=(S^=(o=(w^=(o=(M^=(o=C+S|0)<<7|o>>>25)+C|0)<<9|o>>>23)+M|0)<<13|o>>>19)+w|0)<<18|o>>>14,F^=(o=(R^=(o=(x^=(o=(D^=(o=F+R|0)<<7|o>>>25)+F|0)<<9|o>>>23)+D|0)<<13|o>>>19)+x|0)<<18|o>>>14,O^=(o=(D^=(o=(w^=(o=(A^=(o=O+D|0)<<7|o>>>25)+O|0)<<9|o>>>23)+A|0)<<13|o>>>19)+w|0)<<18|o>>>14,T^=(o=(_^=(o=(x^=(o=(S^=(o=T+_|0)<<7|o>>>25)+T|0)<<9|o>>>23)+S|0)<<13|o>>>19)+x|0)<<18|o>>>14,C^=(o=(I^=(o=(N^=(o=(R^=(o=C+I|0)<<7|o>>>25)+C|0)<<9|o>>>23)+R|0)<<13|o>>>19)+N|0)<<18|o>>>14,F^=(o=(M^=(o=(k^=(o=(P^=(o=F+M|0)<<7|o>>>25)+F|0)<<9|o>>>23)+P|0)<<13|o>>>19)+k|0)<<18|o>>>14;O=O+a|0,A=A+i|0,w=w+s|0,D=D+c|0,_=_+u|0,T=T+f|0,S=S+l|0,x=x+d|0,N=N+h|0,I=I+p|0,C=C+v|0,R=R+y|0,P=P+m|0,k=k+g|0,M=M+E|0,F=F+b|0,e[0]=O>>>0&255,e[1]=O>>>8&255,e[2]=O>>>16&255,e[3]=O>>>24&255,e[4]=A>>>0&255,e[5]=A>>>8&255,e[6]=A>>>16&255,e[7]=A>>>24&255,e[8]=w>>>0&255,e[9]=w>>>8&255,e[10]=w>>>16&255,e[11]=w>>>24&255,e[12]=D>>>0&255,e[13]=D>>>8&255,e[14]=D>>>16&255,e[15]=D>>>24&255,e[16]=_>>>0&255,e[17]=_>>>8&255,e[18]=_>>>16&255,e[19]=_>>>24&255,e[20]=T>>>0&255,e[21]=T>>>8&255,e[22]=T>>>16&255,e[23]=T>>>24&255,e[24]=S>>>0&255,e[25]=S>>>8&255,e[26]=S>>>16&255,e[27]=S>>>24&255,e[28]=x>>>0&255,e[29]=x>>>8&255,e[30]=x>>>16&255,e[31]=x>>>24&255,e[32]=N>>>0&255,e[33]=N>>>8&255,e[34]=N>>>16&255,e[35]=N>>>24&255,e[36]=I>>>0&255,e[37]=I>>>8&255,e[38]=I>>>16&255,e[39]=I>>>24&255,e[40]=C>>>0&255,e[41]=C>>>8&255,e[42]=C>>>16&255,e[43]=C>>>24&255,e[44]=R>>>0&255,e[45]=R>>>8&255,e[46]=R>>>16&255,e[47]=R>>>24&255,e[48]=P>>>0&255,e[49]=P>>>8&255,e[50]=P>>>16&255,e[51]=P>>>24&255,e[52]=k>>>0&255,e[53]=k>>>8&255,e[54]=k>>>16&255,e[55]=k>>>24&255,e[56]=M>>>0&255,e[57]=M>>>8&255,e[58]=M>>>16&255,e[59]=M>>>24&255,e[60]=F>>>0&255,e[61]=F>>>8&255,e[62]=F>>>16&255,e[63]=F>>>24&255}(e,n,t,r)}function g(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=0;O<20;O+=2)a^=(o=(m^=(o=(h^=(o=(u^=(o=a+m|0)<<7|o>>>25)+a|0)<<9|o>>>23)+u|0)<<13|o>>>19)+h|0)<<18|o>>>14,f^=(o=(i^=(o=(g^=(o=(p^=(o=f+i|0)<<7|o>>>25)+f|0)<<9|o>>>23)+p|0)<<13|o>>>19)+g|0)<<18|o>>>14,v^=(o=(l^=(o=(s^=(o=(E^=(o=v+l|0)<<7|o>>>25)+v|0)<<9|o>>>23)+E|0)<<13|o>>>19)+s|0)<<18|o>>>14,b^=(o=(y^=(o=(d^=(o=(c^=(o=b+y|0)<<7|o>>>25)+b|0)<<9|o>>>23)+c|0)<<13|o>>>19)+d|0)<<18|o>>>14,a^=(o=(c^=(o=(s^=(o=(i^=(o=a+c|0)<<7|o>>>25)+a|0)<<9|o>>>23)+i|0)<<13|o>>>19)+s|0)<<18|o>>>14,f^=(o=(u^=(o=(d^=(o=(l^=(o=f+u|0)<<7|o>>>25)+f|0)<<9|o>>>23)+l|0)<<13|o>>>19)+d|0)<<18|o>>>14,v^=(o=(p^=(o=(h^=(o=(y^=(o=v+p|0)<<7|o>>>25)+v|0)<<9|o>>>23)+y|0)<<13|o>>>19)+h|0)<<18|o>>>14,b^=(o=(E^=(o=(g^=(o=(m^=(o=b+E|0)<<7|o>>>25)+b|0)<<9|o>>>23)+m|0)<<13|o>>>19)+g|0)<<18|o>>>14;e[0]=a>>>0&255,e[1]=a>>>8&255,e[2]=a>>>16&255,e[3]=a>>>24&255,e[4]=f>>>0&255,e[5]=f>>>8&255,e[6]=f>>>16&255,e[7]=f>>>24&255,e[8]=v>>>0&255,e[9]=v>>>8&255,e[10]=v>>>16&255,e[11]=v>>>24&255,e[12]=b>>>0&255,e[13]=b>>>8&255,e[14]=b>>>16&255,e[15]=b>>>24&255,e[16]=l>>>0&255,e[17]=l>>>8&255,e[18]=l>>>16&255,e[19]=l>>>24&255,e[20]=d>>>0&255,e[21]=d>>>8&255,e[22]=d>>>16&255,e[23]=d>>>24&255,e[24]=h>>>0&255,e[25]=h>>>8&255,e[26]=h>>>16&255,e[27]=h>>>24&255,e[28]=p>>>0&255,e[29]=p>>>8&255,e[30]=p>>>16&255,e[31]=p>>>24&255}(e,n,t,r)}var E=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function O(e,n,t,r,o,a,i){var s,c,u=new Uint8Array(16),f=new Uint8Array(64);for(c=0;c<16;c++)u[c]=0;for(c=0;c<8;c++)u[c]=a[c];for(;o>=64;){for(m(f,u,i,E),c=0;c<64;c++)e[n+c]=t[r+c]^f[c];for(s=1,c=8;c<16;c++)s=s+(255&u[c])|0,u[c]=255&s,s>>>=8;o-=64,n+=64,r+=64}if(o>0)for(m(f,u,i,E),c=0;c=64;){for(m(c,s,o,E),i=0;i<64;i++)e[n+i]=c[i];for(a=1,i=8;i<16;i++)a=a+(255&s[i])|0,s[i]=255&a,a>>>=8;t-=64,n+=64}if(t>0)for(m(c,s,o,E),i=0;i>>13|t<<3),r=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(t>>>10|r<<6),o=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(r>>>7|o<<9),a=255&e[8]|(255&e[9])<<8,this.r[4]=255&(o>>>4|a<<12),this.r[5]=a>>>1&8190,i=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(a>>>14|i<<2),s=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(i>>>11|s<<5),c=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(s>>>8|c<<8),this.r[9]=c>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function T(e,n,t,r,o,a){var i=new _(a);return i.update(t,r,o),i.finish(e,n),0}function S(e,n,t,r,o,a){var i=new Uint8Array(16);return T(i,0,t,r,o,a),v(e,n,i,0)}function x(e,n,t,r,o){var a;if(t<32)return-1;for(D(e,0,n,0,t,r,o),T(e,16,e,32,t-32,e),a=0;a<16;a++)e[a]=0;return 0}function N(e,n,t,r,o){var a,i=new Uint8Array(32);if(t<32)return-1;if(w(i,0,32,r,o),0!==S(n,16,n,32,t-32,i))return-1;for(D(e,0,n,0,t,r,o),a=0;a<32;a++)e[a]=0;return 0}function I(e,n){var t;for(t=0;t<16;t++)e[t]=0|n[t]}function C(e){var n,t,r=1;for(n=0;n<16;n++)t=e[n]+r+65535,r=Math.floor(t/65536),e[n]=t-65536*r;e[0]+=r-1+37*(r-1)}function R(e,n,t){for(var r,o=~(t-1),a=0;a<16;a++)r=o&(e[a]^n[a]),e[a]^=r,n[a]^=r}function P(e,t){var r,o,a,i=n(),s=n();for(r=0;r<16;r++)s[r]=t[r];for(C(s),C(s),C(s),o=0;o<2;o++){for(i[0]=s[0]-65517,r=1;r<15;r++)i[r]=s[r]-65535-(i[r-1]>>16&1),i[r-1]&=65535;i[15]=s[15]-32767-(i[14]>>16&1),a=i[15]>>16&1,i[14]&=65535,R(s,i,1-a)}for(r=0;r<16;r++)e[2*r]=255&s[r],e[2*r+1]=s[r]>>8}function k(e,n){var t=new Uint8Array(32),r=new Uint8Array(32);return P(t,e),P(r,n),y(t,0,r,0)}function M(e){var n=new Uint8Array(32);return P(n,e),1&n[0]}function F(e,n){var t;for(t=0;t<16;t++)e[t]=n[2*t]+(n[2*t+1]<<8);e[15]&=32767}function L(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]+t[r]}function H(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]-t[r]}function j(e,n,t){var r,o,a=0,i=0,s=0,c=0,u=0,f=0,l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0,N=0,I=0,C=0,R=0,P=0,k=0,M=0,F=t[0],L=t[1],H=t[2],j=t[3],K=t[4],U=t[5],B=t[6],V=t[7],Y=t[8],G=t[9],J=t[10],q=t[11],W=t[12],z=t[13],Q=t[14],Z=t[15];a+=(r=n[0])*F,i+=r*L,s+=r*H,c+=r*j,u+=r*K,f+=r*U,l+=r*B,d+=r*V,h+=r*Y,p+=r*G,v+=r*J,y+=r*q,m+=r*W,g+=r*z,E+=r*Q,b+=r*Z,i+=(r=n[1])*F,s+=r*L,c+=r*H,u+=r*j,f+=r*K,l+=r*U,d+=r*B,h+=r*V,p+=r*Y,v+=r*G,y+=r*J,m+=r*q,g+=r*W,E+=r*z,b+=r*Q,O+=r*Z,s+=(r=n[2])*F,c+=r*L,u+=r*H,f+=r*j,l+=r*K,d+=r*U,h+=r*B,p+=r*V,v+=r*Y,y+=r*G,m+=r*J,g+=r*q,E+=r*W,b+=r*z,O+=r*Q,A+=r*Z,c+=(r=n[3])*F,u+=r*L,f+=r*H,l+=r*j,d+=r*K,h+=r*U,p+=r*B,v+=r*V,y+=r*Y,m+=r*G,g+=r*J,E+=r*q,b+=r*W,O+=r*z,A+=r*Q,w+=r*Z,u+=(r=n[4])*F,f+=r*L,l+=r*H,d+=r*j,h+=r*K,p+=r*U,v+=r*B,y+=r*V,m+=r*Y,g+=r*G,E+=r*J,b+=r*q,O+=r*W,A+=r*z,w+=r*Q,D+=r*Z,f+=(r=n[5])*F,l+=r*L,d+=r*H,h+=r*j,p+=r*K,v+=r*U,y+=r*B,m+=r*V,g+=r*Y,E+=r*G,b+=r*J,O+=r*q,A+=r*W,w+=r*z,D+=r*Q,_+=r*Z,l+=(r=n[6])*F,d+=r*L,h+=r*H,p+=r*j,v+=r*K,y+=r*U,m+=r*B,g+=r*V,E+=r*Y,b+=r*G,O+=r*J,A+=r*q,w+=r*W,D+=r*z,_+=r*Q,T+=r*Z,d+=(r=n[7])*F,h+=r*L,p+=r*H,v+=r*j,y+=r*K,m+=r*U,g+=r*B,E+=r*V,b+=r*Y,O+=r*G,A+=r*J,w+=r*q,D+=r*W,_+=r*z,T+=r*Q,S+=r*Z,h+=(r=n[8])*F,p+=r*L,v+=r*H,y+=r*j,m+=r*K,g+=r*U,E+=r*B,b+=r*V,O+=r*Y,A+=r*G,w+=r*J,D+=r*q,_+=r*W,T+=r*z,S+=r*Q,x+=r*Z,p+=(r=n[9])*F,v+=r*L,y+=r*H,m+=r*j,g+=r*K,E+=r*U,b+=r*B,O+=r*V,A+=r*Y,w+=r*G,D+=r*J,_+=r*q,T+=r*W,S+=r*z,x+=r*Q,N+=r*Z,v+=(r=n[10])*F,y+=r*L,m+=r*H,g+=r*j,E+=r*K,b+=r*U,O+=r*B,A+=r*V,w+=r*Y,D+=r*G,_+=r*J,T+=r*q,S+=r*W,x+=r*z,N+=r*Q,I+=r*Z,y+=(r=n[11])*F,m+=r*L,g+=r*H,E+=r*j,b+=r*K,O+=r*U,A+=r*B,w+=r*V,D+=r*Y,_+=r*G,T+=r*J,S+=r*q,x+=r*W,N+=r*z,I+=r*Q,C+=r*Z,m+=(r=n[12])*F,g+=r*L,E+=r*H,b+=r*j,O+=r*K,A+=r*U,w+=r*B,D+=r*V,_+=r*Y,T+=r*G,S+=r*J,x+=r*q,N+=r*W,I+=r*z,C+=r*Q,R+=r*Z,g+=(r=n[13])*F,E+=r*L,b+=r*H,O+=r*j,A+=r*K,w+=r*U,D+=r*B,_+=r*V,T+=r*Y,S+=r*G,x+=r*J,N+=r*q,I+=r*W,C+=r*z,R+=r*Q,P+=r*Z,E+=(r=n[14])*F,b+=r*L,O+=r*H,A+=r*j,w+=r*K,D+=r*U,_+=r*B,T+=r*V,S+=r*Y,x+=r*G,N+=r*J,I+=r*q,C+=r*W,R+=r*z,P+=r*Q,k+=r*Z,b+=(r=n[15])*F,i+=38*(A+=r*H),s+=38*(w+=r*j),c+=38*(D+=r*K),u+=38*(_+=r*U),f+=38*(T+=r*B),l+=38*(S+=r*V),d+=38*(x+=r*Y),h+=38*(N+=r*G),p+=38*(I+=r*J),v+=38*(C+=r*q),y+=38*(R+=r*W),m+=38*(P+=r*z),g+=38*(k+=r*Q),E+=38*(M+=r*Z),a=(r=(a+=38*(O+=r*L))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a=(r=(a+=o-1+37*(o-1))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a+=o-1+37*(o-1),e[0]=a,e[1]=i,e[2]=s,e[3]=c,e[4]=u,e[5]=f,e[6]=l,e[7]=d,e[8]=h,e[9]=p,e[10]=v,e[11]=y,e[12]=m,e[13]=g,e[14]=E,e[15]=b}function K(e,n){j(e,n,n)}function U(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=253;r>=0;r--)K(o,o),2!==r&&4!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function B(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=250;r>=0;r--)K(o,o),1!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function V(e,t,r){var o,a,i=new Uint8Array(32),c=new Float64Array(80),u=n(),f=n(),l=n(),d=n(),h=n(),p=n();for(a=0;a<31;a++)i[a]=t[a];for(i[31]=127&t[31]|64,i[0]&=248,F(c,r),a=0;a<16;a++)f[a]=c[a],d[a]=u[a]=l[a]=0;for(u[0]=d[0]=1,a=254;a>=0;--a)R(u,f,o=i[a>>>3]>>>(7&a)&1),R(l,d,o),L(h,u,l),H(u,u,l),L(l,f,d),H(f,f,d),K(d,h),K(p,u),j(u,l,u),j(l,f,h),L(h,u,l),H(u,u,l),K(f,u),H(l,d,p),j(u,l,s),L(u,u,d),j(l,l,u),j(u,d,p),j(d,f,c),K(f,h),R(u,f,o),R(l,d,o);for(a=0;a<16;a++)c[a+16]=u[a],c[a+32]=l[a],c[a+48]=f[a],c[a+64]=d[a];var v=c.subarray(32),y=c.subarray(16);return U(v,v),j(y,y,v),P(e,y),0}function Y(e,n){return V(e,n,o)}function G(e,n){return t(n,32),Y(e,n)}function J(e,n,t){var o=new Uint8Array(32);return V(o,t,n),g(e,r,o,E)}_.prototype.blocks=function(e,n,t){for(var r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A=this.fin?0:2048,w=this.h[0],D=this.h[1],_=this.h[2],T=this.h[3],S=this.h[4],x=this.h[5],N=this.h[6],I=this.h[7],C=this.h[8],R=this.h[9],P=this.r[0],k=this.r[1],M=this.r[2],F=this.r[3],L=this.r[4],H=this.r[5],j=this.r[6],K=this.r[7],U=this.r[8],B=this.r[9];t>=16;)d=l=0,d+=(w+=8191&(r=255&e[n+0]|(255&e[n+1])<<8))*P,d+=(D+=8191&(r>>>13|(o=255&e[n+2]|(255&e[n+3])<<8)<<3))*(5*B),d+=(_+=8191&(o>>>10|(a=255&e[n+4]|(255&e[n+5])<<8)<<6))*(5*U),d+=(T+=8191&(a>>>7|(i=255&e[n+6]|(255&e[n+7])<<8)<<9))*(5*K),l=(d+=(S+=8191&(i>>>4|(s=255&e[n+8]|(255&e[n+9])<<8)<<12))*(5*j))>>>13,d&=8191,d+=(x+=s>>>1&8191)*(5*H),d+=(N+=8191&(s>>>14|(c=255&e[n+10]|(255&e[n+11])<<8)<<2))*(5*L),d+=(I+=8191&(c>>>11|(u=255&e[n+12]|(255&e[n+13])<<8)<<5))*(5*F),d+=(C+=8191&(u>>>8|(f=255&e[n+14]|(255&e[n+15])<<8)<<8))*(5*M),h=l+=(d+=(R+=f>>>5|A)*(5*k))>>>13,h+=w*k,h+=D*P,h+=_*(5*B),h+=T*(5*U),l=(h+=S*(5*K))>>>13,h&=8191,h+=x*(5*j),h+=N*(5*H),h+=I*(5*L),h+=C*(5*F),l+=(h+=R*(5*M))>>>13,h&=8191,p=l,p+=w*M,p+=D*k,p+=_*P,p+=T*(5*B),l=(p+=S*(5*U))>>>13,p&=8191,p+=x*(5*K),p+=N*(5*j),p+=I*(5*H),p+=C*(5*L),v=l+=(p+=R*(5*F))>>>13,v+=w*F,v+=D*M,v+=_*k,v+=T*P,l=(v+=S*(5*B))>>>13,v&=8191,v+=x*(5*U),v+=N*(5*K),v+=I*(5*j),v+=C*(5*H),y=l+=(v+=R*(5*L))>>>13,y+=w*L,y+=D*F,y+=_*M,y+=T*k,l=(y+=S*P)>>>13,y&=8191,y+=x*(5*B),y+=N*(5*U),y+=I*(5*K),y+=C*(5*j),m=l+=(y+=R*(5*H))>>>13,m+=w*H,m+=D*L,m+=_*F,m+=T*M,l=(m+=S*k)>>>13,m&=8191,m+=x*P,m+=N*(5*B),m+=I*(5*U),m+=C*(5*K),g=l+=(m+=R*(5*j))>>>13,g+=w*j,g+=D*H,g+=_*L,g+=T*F,l=(g+=S*M)>>>13,g&=8191,g+=x*k,g+=N*P,g+=I*(5*B),g+=C*(5*U),E=l+=(g+=R*(5*K))>>>13,E+=w*K,E+=D*j,E+=_*H,E+=T*L,l=(E+=S*F)>>>13,E&=8191,E+=x*M,E+=N*k,E+=I*P,E+=C*(5*B),b=l+=(E+=R*(5*U))>>>13,b+=w*U,b+=D*K,b+=_*j,b+=T*H,l=(b+=S*L)>>>13,b&=8191,b+=x*F,b+=N*M,b+=I*k,b+=C*P,O=l+=(b+=R*(5*B))>>>13,O+=w*B,O+=D*U,O+=_*K,O+=T*j,l=(O+=S*H)>>>13,O&=8191,O+=x*L,O+=N*F,O+=I*M,O+=C*k,w=d=8191&(l=(l=((l+=(O+=R*P)>>>13)<<2)+l|0)+(d&=8191)|0),D=h+=l>>>=13,_=p&=8191,T=v&=8191,S=y&=8191,x=m&=8191,N=g&=8191,I=E&=8191,C=b&=8191,R=O&=8191,n+=16,t-=16;this.h[0]=w,this.h[1]=D,this.h[2]=_,this.h[3]=T,this.h[4]=S,this.h[5]=x,this.h[6]=N,this.h[7]=I,this.h[8]=C,this.h[9]=R},_.prototype.finish=function(e,n){var t,r,o,a,i=new Uint16Array(10);if(this.leftover){for(a=this.leftover,this.buffer[a++]=1;a<16;a++)this.buffer[a]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(t=this.h[1]>>>13,this.h[1]&=8191,a=2;a<10;a++)this.h[a]+=t,t=this.h[a]>>>13,this.h[a]&=8191;for(this.h[0]+=5*t,t=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=t,t=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=t,i[0]=this.h[0]+5,t=i[0]>>>13,i[0]&=8191,a=1;a<10;a++)i[a]=this.h[a]+t,t=i[a]>>>13,i[a]&=8191;for(i[9]-=8192,r=(1^t)-1,a=0;a<10;a++)i[a]&=r;for(r=~r,a=0;a<10;a++)this.h[a]=this.h[a]&r|i[a];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,a=1;a<8;a++)o=(this.h[a]+this.pad[a]|0)+(o>>>16)|0,this.h[a]=65535&o;e[n+0]=this.h[0]>>>0&255,e[n+1]=this.h[0]>>>8&255,e[n+2]=this.h[1]>>>0&255,e[n+3]=this.h[1]>>>8&255,e[n+4]=this.h[2]>>>0&255,e[n+5]=this.h[2]>>>8&255,e[n+6]=this.h[3]>>>0&255,e[n+7]=this.h[3]>>>8&255,e[n+8]=this.h[4]>>>0&255,e[n+9]=this.h[4]>>>8&255,e[n+10]=this.h[5]>>>0&255,e[n+11]=this.h[5]>>>8&255,e[n+12]=this.h[6]>>>0&255,e[n+13]=this.h[6]>>>8&255,e[n+14]=this.h[7]>>>0&255,e[n+15]=this.h[7]>>>8&255},_.prototype.update=function(e,n,t){var r,o;if(this.leftover){for((o=16-this.leftover)>t&&(o=t),r=0;r=16&&(o=t-t%16,this.blocks(e,n,o),n+=o,t-=o),t){for(r=0;r=128;){for(A=0;A<16;A++)w=8*A+W,I[A]=t[w+0]<<24|t[w+1]<<16|t[w+2]<<8|t[w+3],C[A]=t[w+4]<<24|t[w+5]<<16|t[w+6]<<8|t[w+7];for(A=0;A<80;A++)if(o=R,a=P,i=k,s=M,c=F,u=L,f=H,j,d=K,h=U,p=B,v=V,y=Y,m=G,g=J,q,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,T+=65535&(_=(Y>>>14|F<<18)^(Y>>>18|F<<14)^(F>>>9|Y<<23)),S+=_>>>16,x+=65535&(D=(F>>>14|Y<<18)^(F>>>18|Y<<14)^(Y>>>9|F<<23)),N+=D>>>16,T+=65535&(_=Y&G^~Y&J),S+=_>>>16,x+=65535&(D=F&L^~F&H),N+=D>>>16,T+=65535&(_=z[2*A+1]),S+=_>>>16,x+=65535&(D=z[2*A]),N+=D>>>16,D=I[A%16],S+=(_=C[A%16])>>>16,x+=65535&D,N+=D>>>16,x+=(S+=(T+=65535&_)>>>16)>>>16,T=65535&(_=O=65535&T|S<<16),S=_>>>16,x=65535&(D=b=65535&x|(N+=x>>>16)<<16),N=D>>>16,T+=65535&(_=(K>>>28|R<<4)^(R>>>2|K<<30)^(R>>>7|K<<25)),S+=_>>>16,x+=65535&(D=(R>>>28|K<<4)^(K>>>2|R<<30)^(K>>>7|R<<25)),N+=D>>>16,S+=(_=K&U^K&B^U&B)>>>16,x+=65535&(D=R&P^R&k^P&k),N+=D>>>16,l=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,E=65535&T|S<<16,T=65535&(_=v),S=_>>>16,x=65535&(D=s),N=D>>>16,S+=(_=O)>>>16,x+=65535&(D=b),N+=D>>>16,P=o,k=a,M=i,F=s=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,L=c,H=u,j=f,R=l,U=d,B=h,V=p,Y=v=65535&T|S<<16,G=y,J=m,q=g,K=E,A%16==15)for(w=0;w<16;w++)D=I[w],T=65535&(_=C[w]),S=_>>>16,x=65535&D,N=D>>>16,D=I[(w+9)%16],T+=65535&(_=C[(w+9)%16]),S+=_>>>16,x+=65535&D,N+=D>>>16,b=I[(w+1)%16],T+=65535&(_=((O=C[(w+1)%16])>>>1|b<<31)^(O>>>8|b<<24)^(O>>>7|b<<25)),S+=_>>>16,x+=65535&(D=(b>>>1|O<<31)^(b>>>8|O<<24)^b>>>7),N+=D>>>16,b=I[(w+14)%16],S+=(_=((O=C[(w+14)%16])>>>19|b<<13)^(b>>>29|O<<3)^(O>>>6|b<<26))>>>16,x+=65535&(D=(b>>>19|O<<13)^(O>>>29|b<<3)^b>>>6),N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,I[w]=65535&x|N<<16,C[w]=65535&T|S<<16;T=65535&(_=K),S=_>>>16,x=65535&(D=R),N=D>>>16,D=e[0],S+=(_=n[0])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[0]=R=65535&x|N<<16,n[0]=K=65535&T|S<<16,T=65535&(_=U),S=_>>>16,x=65535&(D=P),N=D>>>16,D=e[1],S+=(_=n[1])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[1]=P=65535&x|N<<16,n[1]=U=65535&T|S<<16,T=65535&(_=B),S=_>>>16,x=65535&(D=k),N=D>>>16,D=e[2],S+=(_=n[2])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[2]=k=65535&x|N<<16,n[2]=B=65535&T|S<<16,T=65535&(_=V),S=_>>>16,x=65535&(D=M),N=D>>>16,D=e[3],S+=(_=n[3])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[3]=M=65535&x|N<<16,n[3]=V=65535&T|S<<16,T=65535&(_=Y),S=_>>>16,x=65535&(D=F),N=D>>>16,D=e[4],S+=(_=n[4])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[4]=F=65535&x|N<<16,n[4]=Y=65535&T|S<<16,T=65535&(_=G),S=_>>>16,x=65535&(D=L),N=D>>>16,D=e[5],S+=(_=n[5])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[5]=L=65535&x|N<<16,n[5]=G=65535&T|S<<16,T=65535&(_=J),S=_>>>16,x=65535&(D=H),N=D>>>16,D=e[6],S+=(_=n[6])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[6]=H=65535&x|N<<16,n[6]=J=65535&T|S<<16,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,D=e[7],S+=(_=n[7])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[7]=j=65535&x|N<<16,n[7]=q=65535&T|S<<16,W+=128,r-=128}return r}function Z(e,n,t){var r,o=new Int32Array(8),a=new Int32Array(8),i=new Uint8Array(256),s=t;for(o[0]=1779033703,o[1]=3144134277,o[2]=1013904242,o[3]=2773480762,o[4]=1359893119,o[5]=2600822924,o[6]=528734635,o[7]=1541459225,a[0]=4089235720,a[1]=2227873595,a[2]=4271175723,a[3]=1595750129,a[4]=2917565137,a[5]=725511199,a[6]=4215389547,a[7]=327033209,Q(o,a,n,t),t%=128,r=0;r=0;--o)$(e,n,r=t[o/8|0]>>(7&o)&1),X(n,e),X(e,e),$(e,n,r)}function te(e,t){var r=[n(),n(),n(),n()];I(r[0],f),I(r[1],l),I(r[2],i),j(r[3],f,l),ne(e,r,t)}function re(e,r,o){var a,i=new Uint8Array(64),s=[n(),n(),n(),n()];for(o||t(r,32),Z(i,r,32),i[0]&=248,i[31]&=127,i[31]|=64,te(s,i),ee(e,s),a=0;a<32;a++)r[a+32]=e[a];return 0}var oe=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function ae(e,n){var t,r,o,a;for(r=63;r>=32;--r){for(t=0,o=r-32,a=r-12;o>4)*oe[o],t=n[o]>>8,n[o]&=255;for(o=0;o<32;o++)n[o]-=t*oe[o];for(r=0;r<32;r++)n[r+1]+=n[r]>>8,e[r]=255&n[r]}function ie(e){var n,t=new Float64Array(64);for(n=0;n<64;n++)t[n]=e[n];for(n=0;n<64;n++)e[n]=0;ae(e,t)}function se(e,t,r,o){var a,i,s=new Uint8Array(64),c=new Uint8Array(64),u=new Uint8Array(64),f=new Float64Array(64),l=[n(),n(),n(),n()];Z(s,o,32),s[0]&=248,s[31]&=127,s[31]|=64;var d=r+64;for(a=0;a>7&&H(e[0],a,e[0]),j(e[3],e[0],e[1]),0)}(h,o))return-1;for(s=0;s=0},e.sign.keyPair=function(){var e=new Uint8Array(le),n=new Uint8Array(de);return re(e,n),{publicKey:e,secretKey:n}},e.sign.keyPair.fromSecretKey=function(e){if(pe(e),e.length!==de)throw new Error("bad secret key size");for(var n=new Uint8Array(le),t=0;t{let t;return(t=e.length%4)&&(e+="=".repeat(4-t)),n.decodeBase64(e)},a=n.decodeUTF8,i=n.encodeUTF8,s=function(e){for(var n="",t=0;t{var n={setCustomize:n=>{e=n.ApiConfig},getWebsocketURL:function(n){var t=e.websocketPath||"/cryptpad_websocket";if(/^ws{1,2}:\/\//.test(t))return t;var r=new URL(n||self?.location?.href);return n&&(r.href=n),r.protocol.replace(/http/,"ws")+"//"+r.host+t}};return n})())}(H)),H.exports}var K,U=j(),B=n({__proto__:null,default:r(U)},[U]),V={exports:{}};function Y(){return K||(K=1,function(e){e.exports&&(e.exports=function(e={}){return{setCustomize:n=>{e=n.AppConfig},userHashKey:"User_hash",userNameKey:"User_name",blockHashKey:"Block_hash",fileHashKey:"FS_hash",sessionJWT:"Session_JWT",ssoSeed:"SSO_seed",displayNameKey:"cryptpad.username",oldStorageKey:"CryptPad_RECENTPADS",storageKey:"filesData",tokenKey:"loginToken",prefersDriveRedirectKey:"prefersDriveRedirect",isPremiumKey:"isPremiumUser",displayPadCreationScreen:"displayPadCreationScreen",deprecatedKey:"deprecated",MAX_TEAMS_SLOTS:e.maxTeamsSlots||5,MAX_TEAMS_OWNED:e.maxOwnedTeams||5,MAX_PREMIUM_TEAMS_SLOTS:Math.max(e.maxTeamsSlots||0,e.maxPremiumTeamsSlots||0)||5,MAX_PREMIUM_TEAMS_OWNED:Math.max(e.maxOwnedTeams||0,e.maxPremiumTeamsOwned||0)||5,criticalApps:["profile","settings","debug","admin","support","notifications","calendar","moderation","oldadmin"],earlyAccessApps:[]}}(void 0))}(V)),V.exports}var G,J=Y(),q=n({__proto__:null,default:r(J)},[J]),W={exports:{}},z={exports:{}},Q=z.exports;function Z(){return G||(G=1,function(e){!function(n){const t=e=>{var t={};n.atob=n.atob||function(e){return Buffer.from(e,"base64").toString("binary")},n.btoa=n.btoa||function(e){return Buffer.from(e,"binary").toString("base64")},t.encodeBase64=e.encodeBase64,t.decodeBase64=n=>{let t;return(t=n.length%4)&&(n+="=".repeat(4-t)),e.decodeBase64(n)},t.encodeUTF8=e.encodeUTF8,t.decodeUTF8=e.decodeUTF8,t.slice=function(e,n,t){return Array.prototype.slice.call(e,n,t)},t.u8ToBase64=(e,n)=>{const t=new FileReader;t.onload=()=>{let e=t.result,r=e.slice(e.indexOf(",")+1);n(r)},t.readAsDataURL(new Blob([e]))},t.shuffleArray=function(e){for(var n=e.length-1;n>0;n--){var t=Math.floor(Math.random()*(n+1)),r=e[n];e[n]=e[t],e[t]=r}},t.bake=function(e,n){return void 0===n&&(n=[]),Array.isArray(n)||(n=[n]),function(){return e.apply(null,n)}},t.both=function(e,n){if("function"!=typeof e)throw new Error("INVALID_USAGE");return"function"!=typeof n&&(n=function(e){return e}),function(){return e.apply(null,arguments),n.apply(null,arguments)}},t.clone=function(e){return null==e?e:JSON.parse(JSON.stringify(e))},t.serializeError=function(e){if(!(e instanceof Error))return e;var n={};return Object.getOwnPropertyNames(e).forEach((function(t){n[t]=e[t]})),n},t.tryParse=function(e){try{return JSON.parse(e)}catch(e){return}},t.mkAsync=function(e,n){if("function"!=typeof e)throw new Error("EXPECTED_FUNCTION");return function(){var t=Array.prototype.slice.call(arguments);setTimeout((function(){e.apply(null,t)}),n)}},t.mkEvent=function(e){var n=[],t=!1;let r;return{reg:function(r){e&&t?setTimeout(r):n.push(r)},unreg:function(e){-1!==n.indexOf(e)?n.splice(n.indexOf(e),1):console.log("event handler was already unregistered")},fire:function(){if(!e||!t){var o=Array.prototype.slice.call(arguments);t||r.apply(null,o),t=!0,n.forEach((function(e){e.apply(null,o)}))}},promise:new Promise((e=>{r=e}))}},t.mkTimeout=function(e,n){n=n||0;var r=t.once(e),o=setTimeout((function(){r("TIMEOUT")}),n);return t.both(r,(function(){clearTimeout(o)}))},t.onClickEnter=function(e,n,t){e.on("click keydown",(function(e){var r="click"===e.type,o="keydown"===e.type&&13===e.which,a="keydown"===e.type&&32===e.which&&t&&t.space;(r||o||a)&&("keydown"===e.type&&e.preventDefault(),n(e))}))},t.response=function(e){var n={},t={};"function"!=typeof e&&(e=function(e){throw new Error(e)});var r=function(e){clearTimeout(t[e]),delete t[e],delete n[e]};return{clear:r,expected:function(e){return Boolean(n[e])},expectation:function(e){return n[e]},expect:function(o,a,i){"string"!=typeof o&&e("EXPECTED_STRING"),"function"!=typeof a&&e("EXPECTED_CALLBACK"),n[o]=a,"number"==typeof i&&i&&(t[o]=setTimeout((function(){"function"==typeof n[o]&&n[o]("TIMEOUT"),r(o)}),i))},handle:function(t,o){var a=n[t];if("function"==typeof a){try{a.apply(null,Array.isArray(o)?o:[o])}catch(n){e("HANDLER_ERROR",{error:n,id:t,args:o})}r(t)}else e("MISSING_CALLBACK",{id:t,args:o})},_pending:n}},t.inc=function(e,n,t){e[n]=(e[n]||0)+("number"==typeof t?t:1)},t.values=function(e){return Object.keys(e).map((function(n){return e[n]}))},t.find=function(e,n){for(var t=n.length,r=0;r&"']/g,(function(e){return{"<":"<",">":">","&":"&",'"':""","'":"'"}[e]})):""},t.hexToBase64=function(e){var t=e.replace(/\r|\n/g,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" "),r=String.fromCharCode.apply(null,t);return n.btoa(r).replace(/\//g,"-").replace(/=+$/,"")},t.base64ToHex=function(e){var t=[];return n.atob(e.replace(/-/g,"/")).split("").forEach((function(e){var n=e.charCodeAt(0).toString(16);1===n.length&&(n="0"+n),t.push(n)})),t.join("")},t.uint8ArrayToHex=function(e){for(var n="",t=0;t=o?"GB":e>=r?"MB":"KB"};t.getBlock=function(e,n,r){var o=t.once(t.mkAsync(r)),a={};"string"==typeof n.bearer&&n.bearer&&(a.authorization=`Bearer ${n.bearer}`),fetch(e,{method:"GET",credentials:"include",headers:a}).then((e=>{e.ok?o(void 0,e):401!==e.status&&404!==e.status?o(e.status,e):e.json().then((n=>{o(e.status,n)})).catch((()=>{o(e.status)}))})).catch((e=>{o(e)}))},t.fetchApi=function(e,n,t,r){const o=new URL(e);o.pathname=`api/${n}`;let a=o.href+(t?"?"+ +new Date:"");if("undefined"!=typeof self&&self.crypto)fetch(a).then((e=>{if(!e.ok)throw new Error(`Fetch error: ${e.status}`);return e.text()})).then((e=>{r(JSON.parse(e.slice(27,-5)))})).catch((e=>{console.error(e.message),r({})}));else if(void 0!==b){("http:"===o.protocol?require("node:http"):require("node:https")).get(o.href,(e=>{let n="";e.on("data",(e=>{n+=e})),e.on("end",(()=>{try{r(JSON.parse(n.slice(27,-5)))}catch(e){console.error(e),r({})}}))}))}},t.fetch=function(e,n,r,o){var a,i=t.once(t.mkAsync(n)),s=function(e){var n=e.replace(/(\/)*$/,""),t=n.lastIndexOf("/"),r=n.slice(t+1);return/^[a-f0-9]{48}$/.test(r)||(r=void 0),r}(e),c=function(){(a=new XMLHttpRequest).open("GET",e,!0),r&&a.addEventListener("progress",(function(e){if(e.lengthComputable){var n=e.loaded/e.total;r(n)}}),!1),a.responseType="arraybuffer",a.onerror=function(e){i(e)},a.onload=function(){if(/^4/.test(""+this.status))return i("XHR_ERROR");var e=a.response;if(e){var n=new Uint8Array(e);return s?void function(e,n,t){o&&"function"==typeof o.setBlobCache?o.setBlobCache(e,n,t):t("EINVAL")}(s,n,(function(){i(null,n)})):void i(void 0,n)}i("ENOENT")},a.send(null)};if(s)return function(e,n){o&&"function"==typeof o.getBlobCache?o.getBlobCache(e,n):n("EINVAL")}(s,(function(e,n){!e&&n?i(void 0,n):c()})),{cancel:function(){a&&a.abort&&a.abort()}};c()},t.dataURIToBlob=function(e){for(var n=atob(e.split(",")[1]),t=e.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(n.length),o=new Uint8Array(r),a=0;aparseInt(e,10).toString(16).padStart(2,"0"))).join("")}`},t.isSmallScreen=function(){return n.innerHeight<800||n.innerWidth<800},t.stripTags=function(e){var n=document.createElement("div");return n.innerHTML=e,n.innerText},t.parseFilename=function(e){if(!e||!e.trim())return{};var n=/^(\.?.+?)(\.[^.]+)?$/.exec(e)||[];return{name:n[1],ext:n[2]}},t.isPlainTextFile=function(e,n){if(e&&0===e.indexOf("text/"))return!0;var r=t.parseFilename(n);return!(e||!n||r.ext)||("application/x-javascript"===e||"application/xml"===e)},t.isSpreadsheet=function(e,n){return e&&("application/vnd.oasis.opendocument.spreadsheet"===e||"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"===e)||n&&(n.endsWith(".xlsx")||n.endsWith(".ods"))},t.isOfficeDoc=function(e,n){return e&&("application/vnd.oasis.opendocument.text"===e||"application/vnd.openxmlformats-officedocument.wordprocessingml.document"===e)||n&&(n.endsWith(".docx")||n.endsWith(".odt"))},t.isPresentation=function(e,n){return e&&("application/vnd.oasis.opendocument.presentation"===e||"application/vnd.openxmlformats-officedocument.presentationml.presentation"===e)||n&&(n.endsWith(".pptx")||n.endsWith(".odp"))},t.isValidURL=function(e){return!!new RegExp("^(https?:\\/\\/)((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?").test(e)};var a=/([\uD800-\uDBFF][\uDC00-\uDFFF])/;t.getFirstCharacter=function(e){if(!e||!e.trim())return"?";var n=function(e){for(var n=e.split(a),t=[],r=0;r{let n=/ver=([0-9.]+)(-[0-9]*)?/.exec(e);return Array.isArray(n)&&n[1]||void 0},t.Saferphore={create:e=>{var n,t=[];return n=function(){if(e<0)throw new Error("(resourceCount < 0) should never happen");var r;0!==e&&0!==t.length&&(e--,t.shift()((r=0,function(t){if(r++)throw new Error("returnAfter() called multiple times");var o=0;return function(){if(o++)throw new Error("returnAfter wrapped callback called multiple times");t&&t.apply(null,arguments),e++,n()}})))},{take:function(e){t.push(e),n()}}}},t};e.exports?e.exports=t(k()):n.CryptPad_Util=Util}("undefined"!=typeof self?self:Q)}(z)),z.exports}var X,$,ee={exports:{}};function ne(){return X||(X=1,function(e){e.exports&&(e.exports=function(){var e={},n=function(e){return e.replace(/-/g,"/")};return e.parseUser=function(e){var t,r,o,a=function(e){if(/^\[.*?@.*\]$/.test(e)){var t,r=e.slice(1,-1);if(r=r.replace(/\/([a-zA-Z0-9+-]{43}=)$/,(function(e,r){return t=n(r),""})),t){var o=r.lastIndexOf("@");if(!(o<1))return{domain:r.slice(o+1),user:r.slice(0,o),pubkey:t}}}}(e);if(function(e){if(e&&e.domain&&e.user&&e.pubkey)return!0}(a))return a;if(e.replace(/^https*:\/\/([^\/]+)\/user\/#\/1\/([^\/]+)\/([a-zA-Z0-9+-]{43}=)$/,(function(e,a,i,s){return t=a,r=i,o=n(s),""})),!t)throw new Error("Could not parse user id ["+e+"]");return{domain:t,user:r,pubkey:o}},e.serialize=function(e,n,t){return"["+n+"@"+e.replace(/https*:\/\//,"")+"/"+t.replace(/\//g,"-")+"]"},e.canonicalize=function(t){if("string"==typeof t){if(44===t.length)return n(t);try{return e.parseUser(t).pubkey}catch(e){return}}},e}())}(ee)),ee.exports}function te(){return $||($=1,function(e){!function(n){e.exports&&(e.exports=function(e,t,r,o){var a=n.CryptPad_Hash={},i=e.uint8ArrayToHex,s=e.hexToBase64,c=e.base64ToHex;a.encodeBase64=e.encodeBase64,a.decodeBase64=e.decodeBase64,a.hashChannelList=function(n){return e.encodeBase64(o.hash(e.decodeUTF8(JSON.stringify(n))))},a.generateSignPair=function(){var e=o.sign.keyPair(),n=function(e){return t.b64RemoveSlashes(e).replace(/=+$/g,"")};return{validateKey:a.encodeBase64(e.publicKey),signKey:a.encodeBase64(e.secretKey),safeValidateKey:n(a.encodeBase64(e.publicKey)),safeSignKey:n(a.encodeBase64(e.secretKey))}},a.getSignPublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.sign.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)},a.getCurvePublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.box.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)};var u=a.getEditHashFromKeys=function(e){var n=e.version,r=e.keys;if(0===n)return e.channel+e.key;if(1===n){if(!r.editKeyStr)return;return"/1/edit/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.editKeyStr)+"/"}if(2===n){if(!r.editKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/edit/"+t.b64RemoveSlashes(r.editKeyStr)+"/"+o}},f=a.getViewHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n){if(!r.viewKeyStr)return;return"/1/view/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"}if(2===n){if(!r.viewKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/view/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"+o}}};a.getHiddenHashFromKeys=function(e,n,t){t=t||{};var r=n.keys&&n.keys.editKeyStr||n.key,o=!t.view&&r?"edit/":"view/",i=n.password?"p/":"";n.keys&&n.keys.fileKeyStr&&(o="");var s="/3/"+e+"/"+o+n.channel+"/"+i,c=a.parseTypeHash(e,s);return c&&c.getHash?c.getHash(t||{}):s};var l=a.getFileHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n)return"/1/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/";if(2===n){if(!r.fileKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/"+o}}};a.getPublicSigningKeyString=r.serialize,a.ephemeralChannelLength=34,a.createChannelId=function(e){var n=i(t.Nacl.randomBytes(e?17:16));if(-1===[32,34].indexOf(n.length)||/[^a-f0-9]/.test(n))throw new Error("channel ids must consist of 32 hex characters");return n},a.getChannelIdFromKey=function(e){if(e)return i(a.decodeBase64(e).subarray(0,16))},a.getBoxPublicFromSecret=function(e){if(e){var n=a.decodeBase64(e),t=o.box.keyPair.fromSecretKey(n);return a.encodeBase64(t.publicKey)}},a.checkBoxKeyPair=function(e,n){if(!n||!e)return!1;var t=a.decodeBase64(e),r=o.box.keyPair.fromSecretKey(t);return n===a.encodeBase64(r.publicKey)},a.createRandomHash=function(e,n){var r;return"file"===e?(r=t.createFileCryptor2(void 0,n),l({password:Boolean(n),version:2,type:e,keys:r})):(r=t.createEditCryptor2(void 0,void 0,n),u({password:Boolean(n),version:2,type:e,keys:r}))};var d=a.parseTypeHash=function(e,n){if(n){var r,o=[],a={},i=(r=n,r.replace(/\/+/g,"/")).split("/"),s=function(){a.password=-1!==o.indexOf("p"),a.present=-1!==o.indexOf("present"),a.embed=-1!==o.indexOf("embed"),a.versionHash=function(e){var n;return e.some((function(e){if(/^hash=/.test(e))return n=e.slice(5),!0})),n?t.b64AddSlashes(n):""}(o),a.auditorKey=function(e){var n;return e.some((function(e){if(/^auditor=/.test(e))return n=e.slice(8),!0})),n?t.b64AddSlashes(n):""}(o),a.newPadOpts=function(e){var n;return e.some((function(e){if(/^newpad=/.test(e))return n=e.slice(7),!0})),n||""}(o),a.loginOpts=function(e){var n;return e.some((function(e){if(/^login=/.test(e))return n=e.slice(6),!0})),n||""}(o),a.ownerKey=function(e){var n;return e.some((function(e){if(86===e.length)return n=e,!0})),n}(o)};return i[1]&&"4"===i[1]?(a.getHash=function(n){if(!n||!Object.keys(n).length)return"";var t="/4/"+e+"/";return n.newPadOpts&&(t+="newpad="+n.newPadOpts+"/"),n.loginOpts&&(t+="login="+n.loginOpts+"/"),t},a.getOptions=function(){var e={};return a.newPadOpts&&(e.newPadOpts=a.newPadOpts),a.loginOpts&&(e.loginOpts=a.loginOpts),e},a.version=4,a.app=i[2],o=i.slice(3),s(),a):-1===["media","file","user","invite"].indexOf(e)?(a.type="pad",a.getHash=function(){return n},a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,versionHash:a.versionHash,auditorKey:a.auditorKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},"/"!==n.slice(0,1)&&n.length>=56?(a.channel=n.slice(0,32),a.key=n.slice(32,56),a.version=0,a):(a.getHash=function(e){var n=i.slice(0,5).join("/")+"/",r=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;r&&(n+=r+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/");var o=void 0!==e.versionHash?e.versionHash:a.versionHash;o&&(n+="hash="+t.b64RemoveSlashes(o)+"/");var s=void 0!==e.auditorKey?e.auditorKey:a.auditorKey;return s&&(n+="auditor="+t.b64RemoveSlashes(s)+"/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.mode=i[2],a.channel=i[3],a.key=t.b64AddSlashes(i[4]),o=i.slice(5),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.mode=i[3],a.channel=i[4],o=i.slice(5),s(),a):a)):(a.getHash=function(){return i.join("/")},-1!==["media","file"].indexOf(e)?(a.type="file",a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},a.getHash=function(e){var n=i.slice(0,4).join("/")+"/",t=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;return t&&(n+=t+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.channel=i[2].replace(/-/g,"/"),a.key=i[3].replace(/-/g,"/"),o=i.slice(4),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.key=i[3],o=i.slice(4),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.channel=i[3],o=i.slice(4),s(),a):a):-1!==["user"].indexOf(e)?(a.type="user",i[1]&&"1"===i[1]?(a.version=1,a.user=i[2],a.pubkey=i[3].replace(/-/g,"/"),a):a):-1!==["invite"].indexOf(e)?(a.type="invite",i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),a.password=-1!==o.indexOf("p"),a):a):void 0)}},h=a.parsePadUrl=function(e){var n,t={};return e?("/"!==e.slice(-1)&&"#"!==e.slice(-1)&&(e+="/"),e=e.replace(/\/\?[^#]+#/,"/#"),t.getUrl=function(e){e=e||{};var n="/";return t.type?(n+=t.type+"/",!t.hashData&&e&&Object.keys(e).length?n+"#"+function(e){if(!e||!Object.keys(e).length)return"";var n="/4/"+t.type+"/";return e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n}(e):t.hashData?n+="#"+t.hashData.getHash(e):n):n},t.getOptions=function(){return t.hashData&&t.hashData.getOptions?t.hashData.getOptions():{}},/^https*:\/\//.test(e)?(e.replace(/^https*:\/\/([^\/]*)\/(.*?)\//i,(function(e,n,r){return t.domain=n,t.type=r,""})),-1===(n=e.indexOf("/#"))||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):/^\/($|[^\/])/.test(e)?(n=e.indexOf("/#"),t.type=e.slice(1,n),-1===n||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):t):t};return a.hashToHref=function(e,n){return"/"+n+"/#"+e},a.hrefToHash=function(e){return a.parsePadUrl(e).hash},a.getRelativeHref=function(e){if(e&&-1!==e.indexOf("#")){var n=h(e);return"/"+n.type+"/#"+n.hash}},a.getSecrets=function(n,r,o){var a,i,s={},u=function(){s.keys=t.createEditCryptor2(void 0,void 0,o),s.channel=c(s.keys.chanId),s.version=2,s.type=n};if(!r)return u(),s;if(r){if(!n)throw new Error("getSecrets with a hash requires a type parameter");a=d(n,r),i=r}if(0===i.length)return u(),s;if(0===a.version)s.channel=a.channel,s.key=a.key,s.version=0;else if(1===a.version){if(s.version=1,"pad"===a.type){if(s.channel=c(a.channel),"edit"===a.mode){if(s.keys=t.createEditCryptor(a.key),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor(a.key),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type)s.channel=c(a.channel),s.keys={fileKeyStr:a.key,cryptKey:e.decodeBase64(a.key)};else if("user"===a.type)throw new Error("User hashes can't be opened (yet)")}else if(2===a.version)if(s.version=2,s.type=n,s.password=o,"pad"===a.type){if("edit"===a.mode){if(s.keys=t.createEditCryptor2(a.key,void 0,o),s.channel=c(s.keys.chanId),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor2(a.key,o),s.channel=c(s.keys.chanId),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type){if(s.keys=t.createFileCryptor2(a.key,o),s.channel=c(s.keys.chanId),s.key=s.keys.fileKeyStr,48!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("user"===a.type)throw new Error("User hashes can't be opened (yet)");return s},a.getHashes=function(e){var n={};return(e=JSON.parse(JSON.stringify(e))).keys||e.key?(e.keys||(e.keys={}),(e.keys.editKeyStr||0===e.version&&e.key)&&(n.editHash=u(e)),e.keys.viewKeyStr&&(n.viewHash=f(e)),e.keys.fileKeyStr&&(n.fileHash=l(e)),n):n},a.getFormData=function(n,t,r){var i=(n=n||a.getSecrets("form",t,r))&&n.keys,s=i&&i.secondaryKey;if(s){var c=o.box.keyPair.fromSecretKey(e.decodeUTF8(s).slice(0,32)),u={};u.form_public=e.encodeBase64(c.publicKey);var f=u.form_private=e.encodeBase64(c.secretKey),l=a.getViewHashFromKeys({version:1,channel:n.channel,keys:{viewKeyStr:e.encodeBase64(i.cryptKey)}}),d=a.parseTypeHash("pad",l);return u.form_auditorHash=d.getHash({auditorKey:f}),u}},a.hrefToHexChannelId=function(e,n){var t=a.parsePadUrl(e);if(t&&t.hash)return a.getSecrets(t.type,t.hash,n).channel},a.getBlobPathFromHex=function(e){return"/blob/"+e.slice(0,2)+"/"+e},a.serializeHash=function(e){return e&&"/"!==e.slice(-1)&&(e+="/"),e},a.createInviteUrl=function(e,t){return t=t||a.createChannelId(),n.location.origin+"/invite/#/1/"+t+"/"+e.replace(/\//g,"-")+"/"},a.isValidChannel=function(e){return/^[a-zA-Z0-9]{32,48}$/.test(e)},a.isValidHref=function(e){if(e){var n=a.parsePadUrl(e);if(n&&n.type){if(n.hash){if(!n.hashData)return;if(void 0===n.hashData.version)return;if("pad"===n.hashData.type||"file"===n.hashData.type){if(!n.hashData.key&&!n.hashData.channel)return;if(n.hashData.key&&!/^[a-zA-Z0-9+-/=]+$/.test(n.hashData.key))return}}return n}}},a.decodeDataOptions=function(n){var t=decodeURIComponent(n),r=e.encodeUTF8(e.decodeBase64(t));return e.tryParse(r)||{}},a.encodeDataOptions=function(n){var t=JSON.stringify(n),r=e.encodeBase64(e.decodeUTF8(t));return encodeURIComponent(r)},a.getNewPadURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.newPadOpts=a.encodeDataOptions(n),t.getUrl(r)},a.getLoginURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.loginOpts=a.encodeDataOptions(n),t.getUrl(r)},a}(Z(),M(),ne(),N()))}("undefined"!=typeof window?window:{})}(W)),W.exports}var re,oe,ae=te(),ie=Z(),se={exports:{}},ce={exports:{}};function ue(){return re||(re=1,function(e){e.exports=function e(n,t,r){function o(i,s){if(!t[i]){if(!n[i]){if(!s&&b)return b(i);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=t[i]={exports:{}};n[i][0].call(u.exports,(function(e){var t=n[i][1][e];return o(t||e)}),u,u.exports,e,n,t,r)}return t[i].exports}for(var a=b,i=0;i=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof v?u.resolve(v):O(e).then((function(e){return v=e}))}function w(e){var n=y[e.name],t={};t.promise=new u((function(e,n){t.resolve=e,t.reject=n})),n.deferredOperations.push(t),n.dbReady?n.dbReady=n.dbReady.then((function(){return t.promise})):n.dbReady=t.promise}function D(e){var n=y[e.name].deferredOperations.pop();if(n)return n.resolve(),n.promise}function _(e,n){var t=y[e.name].deferredOperations.pop();if(t)return t.reject(n),t.promise}function T(e,n){return new u((function(t,r){if(y[e.name]=y[e.name]||F(),e.db){if(!n)return t(e.db);w(e),e.db.close()}var o=[e.name];n&&o.push(e.version);var a=i.open.apply(i,o);n&&(a.onupgradeneeded=function(n){var t=a.result;try{t.createObjectStore(e.storeName),n.oldVersion<=1&&t.createObjectStore(p)}catch(t){if("ConstraintError"!==t.name)throw t;console.warn('The database "'+e.name+'" has been upgraded from version '+n.oldVersion+" to version "+n.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){var n=a.result;n.onversionchange=function(e){e.target.close()},t(n),D(e)}}))}function S(e){return T(e,!1)}function x(e){return T(e,!0)}function N(e,n){if(!e.db)return!0;var t=!e.db.objectStoreNames.contains(e.storeName),r=e.versione.db.version;if(r&&(e.version!==n&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||t){if(t){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function I(e){return new u((function(n,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");n({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)}))}function C(e){return c([b(atob(e.data))],{type:e.type})}function R(e){return e&&e.__local_forage_encoded_blob}function P(e){var n=this,t=n._initReady().then((function(){var e=y[n._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return l(t,e,e),t}function k(e){w(e);for(var n=y[e.name],t=n.forages,r=0;r0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)})).then((function(){return k(e).then((function(){M(e,n,t,r-1)}))})).catch(t);t(o)}}function F(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function L(e){var n=this,t={db:null};if(e)for(var r in e)t[r]=e[r];var o=y[t.name];o||(o=F(),y[t.name]=o),o.forages.push(n),n._initReady||(n._initReady=n.ready,n.ready=P);var a=[];function i(){return u.resolve()}for(var s=0;s>4,f[c++]=(15&r)<<4|o>>2,f[c++]=(3&o)<<6|63&a;return u}function pe(e){var n,t=new Uint8Array(e),r="";for(n=0;n>2],r+=z[(3&t[n])<<4|t[n+1]>>4],r+=z[(15&t[n+1])<<2|t[n+2]>>6],r+=z[63&t[n+2]];return t.length%3==2?r=r.substring(0,r.length-1)+"=":t.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function ve(e,n){var t="";if(e&&(t=de.call(e)),e&&("[object ArrayBuffer]"===t||e.buffer&&"[object ArrayBuffer]"===de.call(e.buffer))){var r,o=X;e instanceof ArrayBuffer?(r=e,o+=ee):(r=e.buffer,"[object Int8Array]"===t?o+=te:"[object Uint8Array]"===t?o+=re:"[object Uint8ClampedArray]"===t?o+=oe:"[object Int16Array]"===t?o+=ae:"[object Uint16Array]"===t?o+=se:"[object Int32Array]"===t?o+=ie:"[object Uint32Array]"===t?o+=ce:"[object Float32Array]"===t?o+=ue:"[object Float64Array]"===t?o+=fe:n(new Error("Failed to get type for BinaryArray"))),n(o+pe(r))}else if("[object Blob]"===t){var a=new FileReader;a.onload=function(){var t=Q+e.type+"~"+pe(this.result);n(X+ne+t)},a.readAsArrayBuffer(e)}else try{n(JSON.stringify(e))}catch(t){console.error("Couldn't convert value into a JSON string: ",e),n(null,t)}}function ye(e){if(e.substring(0,$)!==X)return JSON.parse(e);var n,t=e.substring(le),r=e.substring($,le);if(r===ne&&Z.test(t)){var o=t.match(Z);n=o[1],t=t.substring(o[0].length)}var a=he(t);switch(r){case ee:return a;case ne:return c([a],{type:n});case te:return new Int8Array(a);case re:return new Uint8Array(a);case oe:return new Uint8ClampedArray(a);case ae:return new Int16Array(a);case se:return new Uint16Array(a);case ie:return new Int32Array(a);case ce:return new Uint32Array(a);case ue:return new Float32Array(a);case fe:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}}var me={serialize:ve,deserialize:ye,stringToBuffer:he,bufferToString:pe};function ge(e,n,t,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+n.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],t,r)}function Ee(e){var n=this,t={db:null};if(e)for(var r in e)t[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new u((function(e,r){try{t.db=openDatabase(t.name,String(t.version),t.description,t.size)}catch(e){return r(e)}t.db.transaction((function(o){ge(o,t,(function(){n._dbInfo=t,e()}),(function(e,n){r(n)}))}),r)}));return t.serializer=me,o}function be(e,n,t,r,o,a){e.executeSql(t,r,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[n.storeName],(function(e,s){s.rows.length?a(e,i):ge(e,n,(function(){e.executeSql(t,r,o,a)}),a)}),a):a(e,i)}),a)}function Oe(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,t){var r=t.rows.length?t.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ae(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName,[],(function(t,r){for(var a=r.rows,i=a.length,s=0;s0)return void a(we.apply(o,[e,s,t,r-1]));i(n)}}))}))})).catch(i)}));return f(a,t),a}function De(e,n,t){return we.apply(this,[e,n,t,1])}function _e(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){n()}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Te(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function Se(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(n,t){var r=t.rows.item(0).c;e(r)}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function xe(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,t){var r=t.rows.length?t.rows.item(0).key:null;n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ne(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT key FROM "+r.storeName,[],(function(n,t){for(var r=[],o=0;o '__WebKitDatabaseInfoTable__'",[],(function(t,r){for(var o=[],a=0;a0}function Le(e){var n=this,t={};if(e)for(var r in e)t[r]=e[r];return t.keyPrefix=ke(e,n._defaultConfig),Fe()?(n._dbInfo=t,t.serializer=me,u.resolve()):u.reject()}function He(e){var n=this,t=n.ready().then((function(){for(var e=n._dbInfo.keyPrefix,t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return f(t,e),t}function je(e,n){var t=this;e=d(e);var r=t.ready().then((function(){var n=t._dbInfo,r=localStorage.getItem(n.keyPrefix+e);return r&&(r=n.serializer.deserialize(r)),r}));return f(r,n),r}function Ke(e,n){var t=this,r=t.ready().then((function(){for(var n=t._dbInfo,r=n.keyPrefix,o=r.length,a=localStorage.length,i=1,s=0;s=0;n--){var t=localStorage.key(n);0===t.indexOf(e)&&localStorage.removeItem(t)}})):u.reject("Invalid arguments"),f(r,n),r}var qe={_driver:"localStorageWrapper",_initStorage:Le,_support:Pe(),iterate:Ke,getItem:je,setItem:Ge,removeItem:Ye,clear:He,length:Ve,key:Ue,keys:Be,dropInstance:Je},We=function(e,n){return e===n||"number"==typeof e&&"number"==typeof n&&isNaN(e)&&isNaN(n)},ze=function(e,n){for(var t=e.length,r=0;r{const n=(e,n)=>{let t=globalThis,r=globalThis;var o=t.CryptPad_Cache={},a=e.mkEvent(!0),i=!1,s=!1,c=!1;try{var u=t.indexedDB.open("test_db",1);u.onsuccess=function(){i=(c=!0)&&!s,a.fire()},u.onerror=function(){a.fire()}}catch(e){a.fire()}o.enable=function(){s=!1,i=c&&!s},o.disable=function(){s=!0,i=c&&!s},o.isEnabled=()=>i;var f=n.createInstance({driver:n.INDEXEDDB,name:"cp_cache"});o.getBlobCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&o.c?(t(null,o.c),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))},o.setBlobCache=function(n,t,r){r=e.once(e.mkAsync(r||function(){})),a.reg((function(){i?t?f.setItem(n,{c:t,t:+new Date},(function(n){r(e.serializeError(n))})):r("EINVAL"):r("NOCACHE")}))},o.getChannelCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&Array.isArray(o.c)?(t(null,o),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))};var l={};return o.storeCache=function(n,t,r,o){o=e.once(e.mkAsync(o||function(){})),a.reg((function(){l[n]=l[n]||e.throttle((function(t,r,o){var a,s;i?Array.isArray(r)&&t?(a=r,Array.isArray(a)&&(a.length>100&&a.splice(0,a.length-100),a.some((function(e,n){if(e.isCheckpoint)return s=n,!0})),a.splice(0,s)),f.setItem(n,{k:t,c:r,t:+new Date},(function(n){n&&o(e.serializeError(n))}))):o("EINVAL"):o("NOCACHE")}),50),l[n](t,r,o)}))},o.leaveChannel=function(e){delete l[e]},o.clearChannel=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.removeItem(n,(function(){t()})):t("NOCACHE")}))},o.clear=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.clear(n):n("NOCACHE")}))},o.getKeys=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.keys().then((function(e){n(null,e)})).catch((function(e){n(e)})):n("NOCACHE")}))},o.getTime=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(n,r){!n&&r&&r.c?t(null,r.t):t(e.serializeError(n||"EINVAL"))})):t("NOCACHE")}))},r.CryptPad_clearIndexedDB=o.clear,o};e.exports&&(e.exports=n(Z(),ue()))})()}(se)),se.exports}var le=fe(),de=n({__proto__:null,default:r(le)},[le]);const he=ie.mkEvent(!0),pe=ie.mkEvent(!0),ve=ie.mkEvent(),ye=ie.mkEvent();let me={};const ge={setCustomize:e=>{me=e.ApiConfig},init:e=>{var n,t;const{broadcast:r,userHash:o,anonHash:a}=e,i=o||a||ae.createRandomHash("drive"),s=e.store,c=ae.getSecrets("drive",i),u={data:{},websocketURL:U.getWebsocketURL(),network:null===(n=e.store)||void 0===n?void 0:n.network,channel:c.channel,readOnly:!1,validateKey:(null===(t=c.keys)||void 0===t?void 0:t.validateKey)||void 0,crypto:L.createEncryptor(c.keys),Cache:de,userName:"fs",logLevel:1,ChainPad:T,updateProgress:function(e){e.type="drive",r([],"LOADING_DRIVE",e)},classic:!0},f=globalThis.CP_account_rt=E.create(u);s.driveSecret=c,s.proxy=f.proxy,s.onRpcReadyEvt=ie.mkEvent(!0),s.loggedIn=void 0!==e.userHash;const l={loggedIn:s.loggedIn};return f.proxy.on("create",(function(e){s.realtime=e.realtime,s.network=e.network,s.loggedIn||(l.anonHash=ae.getEditHashFromKeys(c))})).on("cacheready",(function(n){if(s.realtime=n.realtime,s.offline=!0,s.networkPromise=n.networkPromise,s.cacheReturned=l,s.networkPromise&&s.networkPromise.then){const e=setTimeout((function(){s.networkTimeout=!0,r([],"LOADING_DRIVE",{type:"offline"})}),5e3);s.networkPromise.then((function(n){s.network||(s.network=n),clearTimeout(e)}),(function(n){console.error(n),clearTimeout(e)}))}e.cache&&(l.edPublic=f.proxy.edPublic,he.fire(l))})).on("ready",(function(n){delete s.networkTimeout,s.ready||(s.driveMetadata=n.metadata,f.proxy.drive||(f.proxy.drive={}),!f.proxy[J.displayNameKey]&&s.noDriveName&&(f.proxy[J.displayNameKey]=s.noDriveName),!f.proxy.uid&&s.noDriveUid&&(f.proxy.uid=s.noDriveUid),!f.proxy.form_seed&&e.form_seed&&(f.proxy.form_seed=e.form_seed),f.proxy.edPublic&&Array.isArray(me.adminKeys)&&-1!==me.adminKeys.indexOf(f.proxy.edPublic)&&(s.isAdmin=!0),l.edPublic=f.proxy.edPublic,pe.fire(l))})).on("error",(function(e){"EDELETED"===e.error&&(s.ownDeletion||(s.isDeleted=!0,r([],"DRIVE_DELETED",e.message)))})).on("disconnect",(function(){s.offline=!0,ve.fire(),r([],"UPDATE_METADATA")})).on("reconnect",(function(){s.offline=!1,ye.fire(),r([],"UPDATE_METADATA")})),{channel:c.channel,onAccountCacheReady:he.reg,onAccountReady:pe.reg,onDisconnect:ve.reg,onReconnect:ye.reg}}};var Ee,be=Object.freeze({__proto__:null,Account:ge}),Oe={exports:{}};function Ae(){return Ee||(Ee=1,function(e){(()=>{const n=(e={},n={})=>{var t={setCustomize:t=>{n=t.Messages,e=t.AppConfig},init:function(e){t.state=e}};return t.send=function(n,r,o){("function"!=typeof o&&(o=function(){}),e.disableFeedback)?o():n&&(!0===r||t.state)?function(e,n){var t=new XMLHttpRequest;t.open("HEAD",e),t.onreadystatechange=function(){this.readyState===this.DONE&&n&&n()},t.send()}("/common/feedback.html?"+n+"="+Math.random().toString(16).replace(/0./,""),o):o()},t.reportAppUsage=function(){var e=window.location.pathname.split("/").filter((function(e){return e})).join(".");/^#\/1\/view\//.test(window.location.hash)?t.send(e+"_VIEW"):t.send(e)},t.reportScreenDimensions=function(){var e=window.innerHeight,n=window.innerWidth;t.send("DIMENSIONS:"+e+"x"+n)},t.reportLanguage=function(){n&&t.send("LANG_"+n._languageUsed)},t};e.exports&&(e.exports=n(void 0,void 0))})()}(Oe)),Oe.exports}var we,De,_e=Ae(),Te=n({__proto__:null,default:r(_e)},[_e]),Se={exports:{}},xe={exports:{}};function Ne(){return De||(De=1,function(e){e.exports&&(e.exports=function(e={},n){var t={setCustomize:n=>{e=n.AppConfig}};t.MINIMUM_PASSWORD_LENGTH="number"==typeof e.minimumPasswordLength?e.minimumPasswordLength:8,t.MINIMUM_NAME_LENGTH=1,t.MAXIMUM_NAME_LENGTH=64,t.isEmail=function(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())},t.isLongEnoughPassword=function(e){return e.length>=t.MINIMUM_PASSWORD_LENGTH};var r=t.isString=function(e){return"string"==typeof e};return t.isValidUsername=function(e){return!!(r(e)&&e.length>=t.MINIMUM_NAME_LENGTH)},t.isValidPassword=function(e){return!(!e||!r(e))},t.passwordsMatch=function(e,n){return r(e)&&r(n)&&e===n},t.customSalt=function(){return"string"==typeof e.loginSalt?e.loginSalt:""},t.deriveFromPassphrase=function(e,r,o,a){n(r,e+t.customSalt(),8,1024,o||128,200,a,void 0)},t.dispenser=function(e){var n={used:0};return function(t){if(n.used+t>e.length)throw new Error("exceeded available entropy");if("number"!=typeof t)throw new Error("expected a number");if(t<=0)throw new Error("expected to consume a positive number of bytes");var r;return r=e.slice?e.slice(n.used,n.used+t):e.subarray(n.used,n.used+t),n.used+=t,r}},t}(void 0,(we||(we=1,function(e){e.exports=function(e,n,t,r,o,a,i,s){function c(e){var n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],t=1779033703,r=3144134277,o=1013904242,a=2773480762,i=1359893119,s=2600822924,c=528734635,u=1541459225,f=new Array(64);function l(e){for(var l=0,d=e.length;d>=64;){var h,p,v,y,m,g=t,E=r,b=o,O=a,A=i,w=s,D=c,_=u;for(p=0;p<16;p++)v=l+4*p,f[p]=(255&e[v])<<24|(255&e[v+1])<<16|(255&e[v+2])<<8|255&e[v+3];for(p=16;p<64;p++)y=((h=f[p-2])>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,m=((h=f[p-15])>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,f[p]=(y+f[p-7]|0)+(m+f[p-16]|0)|0;for(p=0;p<64;p++)y=(((A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))+(A&w^~A&D)|0)+(_+(n[p]+f[p]|0)|0)|0,m=((g>>>2|g<<30)^(g>>>13|g<<19)^(g>>>22|g<<10))+(g&E^g&b^E&b)|0,_=D,D=w,w=A,A=O+y|0,O=b,b=E,E=g,g=y+m|0;t=t+g|0,r=r+E|0,o=o+b|0,a=a+O|0,i=i+A|0,s=s+w|0,c=c+D|0,u=u+_|0,l+=64,d-=64}}l(e);var d,h=e.length%64,p=e.length/536870912|0,v=e.length<<3,y=h<56?56:120,m=e.slice(e.length-h,e.length);for(m.push(128),d=h+1;d>>24&255),m.push(p>>>16&255),m.push(p>>>8&255),m.push(p>>>0&255),m.push(v>>>24&255),m.push(v>>>16&255),m.push(v>>>8&255),m.push(v>>>0&255),l(m),[t>>>24&255,t>>>16&255,t>>>8&255,t>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255]}function u(e,n,t){e=e.length<=64?e:c(e);var r,o=64+n.length+4,a=new Array(o),i=new Array(64),s=[];for(r=0;r<64;r++)a[r]=54;for(r=0;r=o-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;t>=32;)u(),s=s.concat(c(i.concat(c(a)))),t-=32;return t>0&&(u(),s=s.concat(c(i.concat(c(a))).slice(0,t))),s}function f(e,n,t,r){var o,a,i=e[0]^n[t++],s=e[1]^n[t++],c=e[2]^n[t++],u=e[3]^n[t++],f=e[4]^n[t++],l=e[5]^n[t++],d=e[6]^n[t++],h=e[7]^n[t++],p=e[8]^n[t++],v=e[9]^n[t++],y=e[10]^n[t++],m=e[11]^n[t++],g=e[12]^n[t++],E=e[13]^n[t++],b=e[14]^n[t++],O=e[15]^n[t++],A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=O;for(a=0;a<8;a+=2)A^=(o=(k^=(o=(I^=(o=(T^=(o=A+k)<<7|o>>>25)+A)<<9|o>>>23)+T)<<13|o>>>19)+I)<<18|o>>>14,S^=(o=(w^=(o=(M^=(o=(C^=(o=S+w)<<7|o>>>25)+S)<<9|o>>>23)+C)<<13|o>>>19)+M)<<18|o>>>14,R^=(o=(x^=(o=(D^=(o=(F^=(o=R+x)<<7|o>>>25)+R)<<9|o>>>23)+F)<<13|o>>>19)+D)<<18|o>>>14,L^=(o=(P^=(o=(N^=(o=(_^=(o=L+P)<<7|o>>>25)+L)<<9|o>>>23)+_)<<13|o>>>19)+N)<<18|o>>>14,A^=(o=(_^=(o=(D^=(o=(w^=(o=A+_)<<7|o>>>25)+A)<<9|o>>>23)+w)<<13|o>>>19)+D)<<18|o>>>14,S^=(o=(T^=(o=(N^=(o=(x^=(o=S+T)<<7|o>>>25)+S)<<9|o>>>23)+x)<<13|o>>>19)+N)<<18|o>>>14,R^=(o=(C^=(o=(I^=(o=(P^=(o=R+C)<<7|o>>>25)+R)<<9|o>>>23)+P)<<13|o>>>19)+I)<<18|o>>>14,L^=(o=(F^=(o=(M^=(o=(k^=(o=L+F)<<7|o>>>25)+L)<<9|o>>>23)+k)<<13|o>>>19)+M)<<18|o>>>14;n[r++]=e[0]=A+i|0,n[r++]=e[1]=w+s|0,n[r++]=e[2]=D+c|0,n[r++]=e[3]=_+u|0,n[r++]=e[4]=T+f|0,n[r++]=e[5]=S+l|0,n[r++]=e[6]=x+d|0,n[r++]=e[7]=N+h|0,n[r++]=e[8]=I+p|0,n[r++]=e[9]=C+v|0,n[r++]=e[10]=R+y|0,n[r++]=e[11]=P+m|0,n[r++]=e[12]=k+g|0,n[r++]=e[13]=M+E|0,n[r++]=e[14]=F+b|0,n[r++]=e[15]=L+O|0}function l(e,n,t,r,o){for(;o--;)e[n++]=t[r++]}function d(e,n,t,r,o){for(;o--;)e[n++]^=t[r++]}function h(e,n,t,r,o){l(e,0,n,t+16*(2*o-1),16);for(var a=0;a<2*o;a+=2)f(e,n,t+16*a,r+8*a),f(e,n,t+16*a+16,r+8*a+16*o)}function p(e,n,t){return e[n+16*(2*t-1)]}function v(e){for(var n=[],t=0;t127&&r<2048?(n.push(r>>6|192),n.push(63&r|128)):(n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128))}return n}if(t<1||t>31)throw new Error("scrypt: logN not be between 1 and 31");var y,m,g,E,b=1<>>0;if(1*r>=1<<30||r>16777216||r>8388608||b>16777216/r)throw new Error("scrypt: parameters are too large");"string"==typeof e&&(e=v(e)),"string"==typeof n&&(n=v(n)),"undefined"!=typeof Int32Array?(y=new Int32Array(64*r),m=new Int32Array(32*b*r),E=new Int32Array(16)):(y=[],m=[],E=new Array(16)),g=u(e,n,128*r);var O=32*r;function A(){for(var e=0;e<32*r;e++){var n=4*e;y[0+e]=(255&g[n+3])<<24|(255&g[n+2])<<16|(255&g[n+1])<<8|255&g[n+0]}}function w(e,n){for(var t=e;t>>0&255,g[4*e+1]=n>>>8&255,g[4*e+2]=n>>>16&255,g[4*e+3]=n>>>24&255}}var T="undefined"!=typeof setImmediate?setImmediate:setTimeout;function S(e,n,t,r,o){!function a(){T((function(){r(e,e+t>>18&63]),o.push(t[n>>>12&63]),o.push(t[n>>>6&63]),o.push(t[n>>>0&63]);return r%3>0&&(o[o.length-1]="=",r%3==1&&(o[o.length-2]="=")),o.join("")}(t):"hex"===n?function(e){for(var n="0123456789abcdef".split(""),t=e.length,r=[],o=0;o>>4&15]),r.push(n[e[o]>>>0&15]);return r.join("")}(t):t}"function"==typeof a&&(s=i,i=a,a=1e3),a<=0?(A(),w(0,b),D(0,b),_(),i(x(s))):(A(),S(0,b,2*a,w,(function(){S(0,b,2*a,D,(function(){_(),i(x(s))}))})))}}(xe)),xe.exports)))}(Se)),Se.exports}var Ie,Ce,Re,Pe=Ne(),ke=n({__proto__:null,default:r(Pe)},[Pe]),Me={exports:{}},Fe={exports:{}},Le={exports:{}},He={exports:{}};function je(){return Ie||(Ie=1,function(e){e.exports&&(e.exports={whenRealtimeSyncs:function(e,n){"function"==typeof e.getAuthDoc?setTimeout((function(){e.getAuthDoc()!==e.getUserDoc()?e.onSettle(n):n()}),0):console.error("improper use of this function")}})}(He)),He.exports}function Ke(){return Ce||(Ce=1,function(e){(()=>{const n=(e,n,t)=>{let r=globalThis;var o={setCustomize:()=>{}},a=function(e){try{return JSON.parse(JSON.stringify(e))}catch(e){return}};return o.init=function(o,i,s){var c=o.loggedIn,u=o.sharedFolder,f=o.readOnly,l=o.Messages||{},d=i.ROOT,h=i.FILES_DATA,p=i.STATIC_DATA,v=i.OLD_FILES_DATA,y=i.UNSORTED,m=i.TRASH,g=i.TEMPLATE,E=i.SHARED_FOLDERS,b=i.SHARED_FOLDERS_TEMP,O=i.debug;i._setReadOnly=function(e){(f=e)||i.fixFiles()},i.setHref=function(e,n,t){(n||e)&&(f||(n?[n]:i.findChannels([e])).forEach((function(e){var n=i.getFileData(e,!0);i.getHref(n)!==t&&(n.href=i.cryptor.encrypt(t))})))},i.setPadAttribute=function(e,n,t,r){if(r=r||function(){},f)r("EFORBIDDEN");else{var o=i.getIdFromHref(e);if(o)if(n&&n.trim()){var s=i.getFileData(o,!0);"href"===n?i.setHref(null,o,t):s[n]=a(t),r(null)}else r("E_INVAL_ATTR");else r("E_INVAL_HREF")}},i.getPadAttribute=function(e,n,t){t=t||function(){};var r=i.getIdFromHref(e);if(r){var o=i.getFileData(r);t(null,a(o[n]))}else t(null,void 0)},i.pushData=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);o.href&&-1!==o.href.indexOf("#")&&(o.href=i.cryptor.encrypt(o.href)),s[h][r]=o,t(null,r)}},i.pushLink=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);s[p][r]=o,t(null,r)}},i.pushSharedFolder=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r,u=a(n);if(Object.keys(s[E]).some((function(e){if(s[E][e].channel===u.channel)return u.href&&!s[E][e].href&&(s[E][e].href=u.href),r=e,!0})))t("EEXISTS",r);else if(c&&!o.testMode){var l=e.createRandomInteger();u.href&&-1!==u.href.indexOf("#")&&(u.href=i.cryptor.encrypt(u.href)),s[E][l]=u,t(null,l)}else t("EAUTH")}},i.deprecateSharedFolder=function(e,n){if(!f){var t=s[E][e];if(t){if(!(!t.href||-1===i.cryptor.decrypt(t.href).indexOf("#")))(s[b][e]=JSON.parse(JSON.stringify(t))).legacy="PASSWORD_CHANGE"!==n;var r=i.findFile(Number(e));i.delete(r,null,!0),delete s[E][e]}}};var A=function(e){f||delete s[h][e]};i.checkDeletedFiles=function(e){if(c||o.testMode)if(f)e("EFORBIDDEN");else{var t=i.getFiles([d,"hrefArray",m]),r=[];i.getFiles([h,E,p]).forEach((function(e){if(-1===t.indexOf(e)){var a=i.isSharedFolder(e)?s[E][e]:i.getFileData(e),c=a.channel;a.lastVersion&&r.push(n.hrefToHexChannelId(a.lastVersion)),a.rtChannel&&r.push(a.rtChannel),c&&r.push(c),i.isSharedFolder(e)?(delete s[E][e],o.removeProxy&&o.removeProxy(e)):s[p][e]?delete s[p][e]:A(e)}})),r.length?e(null,r):e()}else e()};i.deleteMultiplePermanently=function(e,n,t){if(f)t("EFORBIDDEN");else{var r=e.filter((function(e){return i.isPathIn(e,[h])}));if(!c&&!o.testMode)return r.forEach((function(e){var n=e[1];n&&A(n)})),void t();var a=e.filter((function(e){return i.isPathIn(e,["hrefArray"])})),u=e.filter((function(e){return i.isPathIn(e,[d])})),l=e.filter((function(e){return i.isPathIn(e,[m])})),p=[];a.forEach((function(e){var n=i.find(e);p.push({root:e[0],id:n})})),function(e){f||e.forEach((function(e){var n=s[e.root].indexOf(e.id);s[e.root].splice(n,1)}))}(p),u.forEach((function(e){var n=e.slice(),t=n.pop();delete i.find(n)[t]}));var v,y=[];l.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);4!==e.length?delete r[t]:y.push({name:e[1],el:r})})),v=y,f||v.forEach((function(e){var n=s[m][e.name].indexOf(e.el);s[m][e.name].splice(n,1)})),n?t():i.checkDeletedFiles(t)}},i.copyFromOtherDrive=function(e,t,r,o){if(!f){var a=[];if(Object.keys(r).forEach((function(e){e=Number(e);var n=r[e];if(n.static)return delete n.static,void(s[p][e]=n);n.href&&(n.href=i.cryptor.encrypt(n.href));var t=!1;for(var o in s[h])if(s[h][o].channel===n.channel){s[h][o].href||(s[h][o].href=n.href),t=!0;break}t?a.push(e):s[h][e]=n})),i.isFile(t)&&-1!==a.indexOf(t))i.log(l.sharedFolders_duplicate);else{if(i.isFolder(t)){var c=function(e){for(var n in e)i.isFile(e[n])?-1!==a.indexOf(e[n])&&(i.log(l.sharedFolders_duplicate),delete e[n]):i.isFolder(e[n])&&c(e[n])};c(t)}var u=i.find(e),d=i.isFile(t)?n.createChannelId():o,v=i.getAvailableName(u,d);Array.isArray(u)?u.push(t):u[v]=t}}};i.copyElement=function(e,t){if(!f&&!i.comparePath(e,t)){var r=i.find(e),o=i.find(t);if(i.isPathIn(t,[m])){if(!e||e.length<2||e[0]===m)return void O("Can't move an element from the trash to the trash: ",e);var a=e[e.length-1],c=i.isPathIn(e,["hrefArray"])?i.getTitle(r):a,u=e.slice();return u.pop(),function(e,n,t){if(!f){var r=s[m];void 0===r[e]&&(r[e]=[]);var o={element:n,path:t};r[e].push(o)}}(c,r,u),!0}if(i.isPathIn(t,["hrefArray"])){if(i.isFolder(r))return void i.log(l.fo_moveUnsortedError);if(e[0]===t[0])return;var d=t[0];return-1===s[d].indexOf(r)&&s[d].push(r),!0}var h=i.isFile(r)?i.getAvailableName(o,n.createChannelId()):i.isInTrashRoot(e)?e[1]:e.pop();if(void 0===o[h])return o[h]=r,!0;i.log(l.fo_unavailableName)}},i.forget=function(e){if(!f){var n=i.getIdFromHref(e);if(n){if(!c&&!o.testMode)return A(n),!0;var t=i.findFile(n);return i.move(t,[m]),!0}}},i.restoreHref=function(e){if(!f){var n=i.getIdFromHref(e);if(n&&i.isFile(n)){var t=i.findFile(n),r=!0;t.forEach((function(e){e[0]!==m?r=!1:i.delete(e,null,!0)})),r&&i.add(n)}}},i.add=function(e,t){if(!f&&(c||o.testMode)){e=Number(e);var r=s[h][e]||s[p][e]||s[E][e];if(r&&"object"==typeof r){var a,u=t;if(t&&!Array.isArray(t)&&(u=decodeURIComponent(t).split(",")),t&&i.isPathIn(u,["hrefArray"]))(a=i.find(u)).push(e);else if(-1!==i.getFiles([d,m,"hrefArray"]).indexOf(e)||u||(u=[d]),t&&i.isPathIn(u,[d])){if(a=i.find(u)){var l=i.getAvailableName(a,n.createChannelId());return void(a[l]=e)}a=i.find([d]),u.slice(1).forEach((function(e){a=a[e]=a[e]||{}})),a[n.createChannelId()]=e}}}},i.setFolderData=function(e,t,r,o){if(!f){var a=i.find(e);if(i.isFolder(a)&&!i.isSharedFolder(a)){if(!i.hasFolderData(a))a["000"+n.createChannelId().slice(0,-3)]={metadata:!0};i.getFolderData(a)[t]=r,o()}}};var w=function(e){i.rt?(i.rt.sync(),t.whenRealtimeSyncs(i.rt,e)):r.setTimeout(e,1e3)};return i.migrateReadOnly=function(e){if(!f&&o.editKey)if(s.version>=2)e();else{s.migrateRo=1;w((function(){var n=JSON.parse(JSON.stringify(s));i.reencrypt(o.editKey,o.editKey,n),setTimeout((function(){s.version>=2?e():(Object.keys(n).forEach((function(e){s[e]=n[e]})),s.version=2,delete s.migrateRo,w(e))}),1e3)}))}else e({error:"EFORBIDDEN"})},i.migrate=function(t){if(f)t();else{!function(){if(s[y]&&s[v]){O("UNSORTED still exists in the object, removing it...");var e=s[y];0!==e.length?(e.forEach((function(e){"string"==typeof e&&(0===s[v].filter((function(n){return n.href===e})).length&&s[v].push({href:e}))})),delete s[y]):delete s[y]}}(),function(t){if(s[v])try{O("Migrating file system..."),s.migrate=1;w((function(){var r=s[v].slice();s[h]||(s[h]={});var o=s[h];r.forEach((function(t){if(t&&t.href){var r=t.href,a=e.createRandomInteger(),s=i.findFile(r),c=t,u=n.createChannelId();o[a]=c||{href:r},s.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);if(i.isInTrashRoot(e))return r.element=a,void(o[a].filename=e[1]);i.isPathIn(e,["hrefArray"])?r[t]=a:(r[u]=a,o[a].filename=t,delete r[t])}))}})),delete s[v],delete s.migrate,t()}))}catch(e){console.error(e),t()}else t()}(t)}},i.fixFiles=function(t){if(!f){t&&(O=function(){});var r=+new Date;O("Cleaning file system...");var a=JSON.stringify(s),l=function(t){"object"!=typeof s[d]&&(O("ROOT was not an object"),s[d]={});var r=t||s[d];if(!r)return console.error("Invalid element in root");var o,a=0,c=s[p],u=s[h];for(var f in r)if(null!==(o=r[f]))if(i.isFolderData(o))0!==a&&(O("Multiple metadata files in folder"),delete r[f]),a++;else if(i.isFile(o,!0)||i.isFolder(o))if(i.isFolder(o))l(o);else{if("string"==typeof o){var v=e.createRandomInteger(),y=n.createChannelId();u[v]={href:i.cryptor.encrypt(o),filename:f},r[y]=v,delete r[f]}if("number"==typeof o)u[o]||c[o]||(O("An element in ROOT doesn't have associated data",o,f),delete r[f])}else O("An element in ROOT was not a folder nor a file. ",o),delete r[f];else console.error("element[%s] is null",f),delete r[f]};e.isObject(s[p])||(O("STATIC_DATA was not an object"),s[p]={}),l(),function(){if(!u){"object"!=typeof s[m]&&(O("TRASH was not an object"),s[m]={});var n,t=s[m],r=function(t,r,o){if("object"==typeof t){if(!i.isSharedFolder(t.element))if(i.isFile(t.element,!0)||i.isFolder(t.element))if(Array.isArray(t.path)){if("string"==typeof t.element){var a=e.createRandomInteger();s[h][a]={href:i.cryptor.encrypt(t.element),filename:o},t.element=a}if(i.isFolder(t.element)&&l(t.element),"number"==typeof t.element)s[h][t.element]||s[p][t.element]||(O("An element in TRASH doesn't have associated data",t.element,o),n.push(r))}else n.push(r);else n.push(r)}else n.push(r)};for(var o in t)if(Array.isArray(t[o]))if(0===t[o].length)O("Empty array in TRASH root. ",t[o]),delete t[o];else{n=[];for(var a=0;a=0;c--)t[o].splice(n[c],1)}else O("An element in TRASH root is not an array. ",t[o]),delete t[o]}}(),function(){if(!u){Array.isArray(s[g])||(O("TEMPLATE was not an array"),s[g]=[]);var n=e.deduplicateString(s[g]);n.length!==s[g].length&&(s[g]=n);var t=s[g],r=i.getFiles([d]),o=[];t.forEach((function(n,a){if(i.isFile(n,!0)&&-1===r.indexOf(n)){if("string"==typeof n){var c=e.createRandomInteger();return s[h][c]={href:i.cryptor.encrypt(n)},void(t[a]=c)}if("number"==typeof n)s[h][n]||(O("An element in TEMPLATE doesn't have associated data",n),o.push(n))}else o.push(n)})),o.forEach((function(e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}))}}(),function(){"object"!=typeof s[h]&&(O("FILES_DATA was not an object"),s[h]={});var e=s[h],t=i.getFiles([d,m,"hrefArray"]),r=i.find([d]),a=[];for(var u in e)if(String(u)===String(Number(u))){var l=e[u=Number(u)];if(l&&"object"==typeof l)if(l.href||l.roHref){var v;try{v=l.href&&(-1!==l.href.indexOf("#")?l.href:i.cryptor.decrypt(l.href))}catch(e){}if(!v||-1!==v.indexOf("#")){var y,g=n.parsePadUrl(v||l.roHref);if(g.hash)if(g.type){if(v&&"pad"===g.hashData.type&&g.hashData.version)if("view"===g.hashData.mode)l.roHref=v,delete l.href;else if(l.roHref){var E=n.parsePadUrl(l.roHref);E.hash&&E.type||(y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y))}else y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y);if(0===g.hashData.version&&delete l.roHref,v&&"/"!==v.slice(0,1)&&(l.href=i.cryptor.encrypt(n.getRelativeHref(v))),l.ctime||(l.ctime=l.atime),l.title||(l.title=i.getDefaultName(g)),!l.channel)try{y||(y=n.getSecrets(g.type,g.hash,l.password)),l.channel=y.channel,console.log(l),O("Adding missing channel in filesData ",l.channel)}catch(e){console.error(e)}if(n.isValidChannel(l.channel)||console.error("Remove invalid channel",l.channel,l),!c&&!o.testMode||-1!==t.indexOf(u));else O("An element in filesData was not in ROOT, TEMPLATE or TRASH.",u,l),r[n.createChannelId()]=u}else O("Removing an element in filesData with a invalid type.",l),a.push(u);else O("Removing an element in filesData with a invalid href.",l),a.push(u)}}else O("Removing an element in filesData with a missing href.",l),a.push(u);else O("An element in filesData was not an object.",l),a.push(u)}else O("Invalid file ID in filesData.",u),a.push(u);a.forEach((function(e){A(e)}));var b=s[p],w=[];for(var D in b){var _=b[D=Number(D)];_&&"object"==typeof _&&_.href?!c&&!o.testMode||-1!==t.indexOf(D)||w.push(D):w.push(D)}w.forEach((function(e){f||delete s[p][e]}))}(),Object.keys(s).forEach((function(e){"/"===e.slice(0,1)&&delete s[e]})),function(){if(!u){"object"!=typeof s[E]&&(O("SHARED_FOLDER was not an object"),s[E]={});var e,t,r=s[E],o=i.getFiles([d,m]),a=i.find([d]);for(var c in r){var f;t=r[c],c=Number(c);try{f=t.href&&(-1!==t.href.indexOf("#")?t.href:i.cryptor.decrypt(t.href))}catch(e){}if((e=n.parsePadUrl(f||t.roHref))&&e.hash&&"undefined"!==e.hash){if(-1===o.indexOf(c))console.log("missing"+c),a[n.createChannelId()]=c}else delete r[c]}}}(),function(){if(!u){"object"!=typeof s[b]&&(O("SHARED_FOLDER_TEMP was not an object"),s[b]={});var e=s[b],n=s[E];for(var t in e)n[t]&&delete e[t]}}();var v=+new Date-r+"ms";JSON.stringify(s)===a?O("File system was clean.",v):O("Your file system was corrupted. It has been cleaned so that the pads you visit can be stored safely.",v)}},i},o};e.exports&&(e.exports=n(Z(),te(),je()))})()}(Le)),Le.exports}function Ue(){return Re||(Re=1,function(e){(()=>{const n=(e,n,t,r,o,a={})=>{let i=globalThis;var s={setCustomize:e=>{a=e.Messages,r.setCustomize(e)}},c=s.ROOT="root",u=s.UNSORTED="unsorted",f=s.TRASH="trash",l=s.TEMPLATE="template",d=s.SHARED_FOLDERS="sharedFolders",h=s.SHARED_FOLDERS_TEMP="sharedFoldersTemp",p=s.FILES_DATA=t.storageKey,v=s.OLD_FILES_DATA=t.oldStorageKey,y=s.STATIC_DATA="static";s.getDefaultName=function(e){var n=e.type;return a.type[n]+" - "+function(){if(i.Intl&&i.Intl.DateTimeFormat)return new i.Intl.DateTimeFormat(void 0,{weekday:"short",year:"numeric",month:"long",day:"numeric"}).format(new Date);return(new Date).toString().split(" ").slice(0,4).join(" ")}()};var m=s.createCryptor=function(e){var n={};if(!e)return n.encrypt=function(e){return e},n.decrypt=function(e){return e},n;try{var t=o.createEncryptor(e);n.encrypt=function(e){try{return"/file/#"===e.slice(0,7)?e:t.encrypt(e)}catch(e){return}},n.decrypt=function(e){try{return t.decrypt(e)}catch(e){return}}}catch(e){console.error(e)}return n};return s.getHref=function(e,n){if(e.href&&-1!==e.href.indexOf("#"))return e.href;if(e.href&&n){var t=n.decrypt(e.href);if(t&&-1!==t.indexOf("#"))return t}return e.roHref},s.reencrypt=function(e,n,t){if(t){var r=m(e),o=m(n);Object.keys(t[p]).forEach((function(e){var n=t[p][e]||{};if(n.href&&n.roHref&&!n.fileType){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[d]||{}).forEach((function(e){var n=t[d][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[h]||{}).forEach((function(e){var n=t[h][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}}))}else console.error("Nothing to reencrypt")},s.init=function(t,o){var i={};i.cryptor=m(o.editKey),i.setReadOnly=function(e,n){o.editKey=n,i.cryptor=m(n),i.cryptor.k=Math.random(),i.readOnly=e,i._setReadOnly&&i._setReadOnly(e)},i.readOnly=o.readOnly,i.reencrypt=s.reencrypt,i.getDefaultName=s.getDefaultName;var g=o.sframeChan,E=a.fm_newFolder||"New folder",b=a.fm_newFile||"New file";i.ROOT=c,i.STATIC_DATA=y,i.UNSORTED=u,i.TRASH=f,i.TEMPLATE=l,i.SHARED_FOLDERS=d,i.SHARED_FOLDERS_TEMP=h,i.FILES_DATA=p,i.OLD_FILES_DATA=v;var O=i.sharedFolder=o.sharedFolder;i.id=o.id;var A=function(){console.debug.apply(console,arguments)},w=i.log=o.log||A,D=o.logError||A,_=i.debug=o.debug||A;i.fixFiles=function(){};var T=i.error=function(){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"fixFiles",data:{}},(function(){})):("function"==typeof i.fixFiles&&i.fixFiles(),console.error.apply(console,arguments),i.fixFiles())};o.outer&&r.init(o,i,t),i.getStructure=function(){var e={};return e[c]={},e[f]={},e[p]={},e[l]=[],e[d]={},e};var S=i.getHref=function(e){return s.getHref(e,i.cryptor)},x=function(e){return null===e?"null":Array.isArray(e)?"array":typeof e};i.isValidDrive=function(e){var n=i.getStructure();return"object"==typeof e&&Object.keys(n).every((function(t){return e[t]&&x(n[t])===x(e[t])}))};var N=function(){return[l]},I=function(e,n){return e===n},C=i.isSharedFolder=function(e){return!O&&Boolean(t[d]&&t[d][e])},R=i.isFile=function(e,n){return!C(e)&&("number"==typeof e||(void 0!==t[v]||n)&&"string"==typeof e)},P=i.isFolderData=function(e){return"object"==typeof e&&!0===e.metadata};i.isReadOnlyFile=function(e){if(!R(e))return!1;var n=i.getFileData(e);return n.roHref?Boolean(n.roHref&&!n.href):void 0},i.isStaticFile=function(e){return Boolean(t[y]&&t[y][e])};var k=i.isFolder=function(e){return!P(e)&&("object"==typeof e&&!e.channel||C(e))};i.isFolderEmpty=function(e){return!!k(e)&&(0===Object.keys(e).length||!(1!==Object.keys(e).length||!P(e[Object.keys(e)[0]])))},i.hasSubfolder=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=k(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=k(e[o])?1:0;return t},i.hasFile=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=R(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=R(e[o])?1:0;return t},i.hasFolderData=function(e){for(var n in e)if(P(e[n]))return!0};var M=i.hasSubSharedFolder=function(e){for(var n in e){if(C(e[n]))return!0;if(k(e[n])&&M(e[n]))return!0}return!1},F=i.getFileData=function(n,r){if(n){var a,s;try{a=(t[y]||{})[n]}catch(e){console.error(e)}if(a){var c=r?a:e.clone(a);return r||(c.static=!0),c}try{s=t[p][n]||{}}catch(e){console.error(e),s={}}if(!r&&(s=JSON.parse(JSON.stringify(s))).href&&-1===s.href.indexOf("#"))if(o.editKey)try{s.href=i.cryptor.decrypt(s.href)}catch(e){delete s.href}else delete s.href;return s}};i.getFolderData=function(e){for(var n in e)if(P(e[n]))return e[n];return{}};var L=i.getTitle=function(e,n){if(C(e))return"??";var t=F(e);if(t){if(t.static)return t.name;if(e&&(t.href||t.roHref))return"title"===n?t.title:"name"===n?t.filename:t.filename||t.title||b;T("getTitle called with a non-existing file id: ",e,t)}else T("unable to retrieve data about the requested file: ",e,t)},H=i.comparePath=function(e,n){if(!(e&&n&&Array.isArray(e)&&Array.isArray(n)))return!1;if(e.length!==n.length)return!1;for(var t=!0,r=e.length-1;t&&r>=0;)t=e[r]===n[r],r--;return t},j=i.isSubpath=function(e,n){var t=n.slice(),r=e.slice(0,t.length);return H(t,r)},K=i.isPathIn=function(e,n){if(n){var t=n.indexOf("hrefArray");return-1!==t&&(n.splice(t,1),n=n.concat(N())),n.some((function(n){return Array.isArray(e)&&e[0]===n}))}},U=i.isInTrashRoot=function(e){return e[0]===f&&4===e.length},B=function(e,n){if(n){if(0===n.length)return e;var t=n.slice(),r=t.shift();if(void 0!==e[r])return B(e[r],t);_("Unable to find the key '"+r+"' in the root object provided:",e)}else T("Invalid path:\n",n,"\nin root\n",e)},V=i.find=function(e){return B(t,e)},Y=i.getFilesRecursively=function(e,n){for(var t in n=n||[],e)R(e[t])||C(e[t])?-1===n.indexOf(e[t])&&n.push(e[t]):P(e[t])||Y(e[t],n);return n},G={array:function(e){return t[e]||(t[e]=[]),t[e].slice()}};N().forEach((function(e){G[e]=function(){return G.array(e)}})),G.hrefArray=function(){var n=[];return O?n:(N().forEach((function(e){n=n.concat(G[e]())})),e.deduplicateString(n))},G[c]=function(){var e=[];return Y(t[c],e),e},G[f]=function(){var e=t[f],n=[],r=function(e){R(e.element)||C(e.element)?-1===n.indexOf(e.element)&&n.push(e.element):Y(e.element,n)};for(var o in e){if(!Array.isArray(e[o]))return void T("Trash contains a non-array element");e[o].forEach(r)}return n},G[v]=function(){var e=[];return t[v]?(t[v].forEach((function(n){n.href&&-1===e.indexOf(n.href)&&e.push(n.href)})),e):e},G[y]=function(){return t[y]?Object.keys(t[y]).map(Number).filter(Boolean):[]},G[p]=function(){return t[p]?Object.keys(t[p]).map(Number).filter(Boolean):[]},G[d]=function(){return t[d]?Object.keys(t[d]).map(Number).filter(Boolean):[]};var J=i.getFiles=function(n){var t=[];return n&&n.length||(n=[c,"hrefArray",f,v,p,d]),n.forEach((function(e){"function"==typeof G[e]&&(t=t.concat(G[e]()))})),e.deduplicateString(t)},q=i.getIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([p]).some((function(e){if(o(S(t[p][e]))===a||o(t[p][e].roHref)===a)return r=e,!0})),r};i.getSFIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([d]).some((function(e){if(o(S(t[d][e]))===a||o(t[d][e].roHref)===a)return r=e,!0})),r};var W=function(e,n){if(!K(e,[c,f]))return[];n=Array.isArray(n)?n:[n];var t={},r=V(e),o=function(e){Object.keys(e).forEach((n=>{t[n]||=[],Array.prototype.push.apply(t[n],e[n])}))};if(R(r)||C(r))return n.some((n=>{I(n,r)&&(t[n]||=[],t[n].push(e))})),t;if(k(r))for(var a in r){let t=e.slice();t.push(a),o(W(t,n))}return t},z=function(e,n){if(O)return{};if(!t[e])return{};var r=t[e].slice(),o={},a=-1;return n.forEach((n=>{for(;-1!==(a=r.indexOf(n,a+1));)o[n]||=[],o[n].push([e,a])})),o},Q=function(e,n){if(O)return[];var t=V(e),r={},o=function(e){Object.keys(e).forEach((n=>{r[n]||=[],Array.prototype.push.apply(r[n],e[n])}))};if(1===e.length&&"object"==typeof t&&Object.keys(t).forEach((function(r){var a=t[r];if(Array.isArray(a)){var i=e.slice();i.push(r),o(Q(i,n))}})),2===e.length){if(!Array.isArray(t))return[];t.forEach((function(t,a){var i=e.slice();i.push(a),i.push("element"),R(t.element)?n.some((e=>{I(e,t.element)&&(r[e]||=[],r[e].push(i))})):o(Q(i,n))}))}return e.length>=4&&o(W(e,n)),r},Z=i.findFiles=function(e){var n=W([c],e),t=z(l,e),r=Q([f],e);let o={};return e.forEach((e=>{o[e]=[]})),[n,t,r].forEach((e=>{Object.keys(e).forEach((n=>{o[n]||=[],Array.prototype.push.apply(o[n],e[n])}))})),o},X=i.findFile=function(e){return Z([e])[e]||[]};i.findChannels=function(e,n){var r=t[p],o=t[d],a=[p];return n&&a.push(d),J(a).filter((function(n){var t=r[n]||o[n]||{};return-1!==e.indexOf(t.channel)}))},i.search=function(r){if("string"!=typeof r)return[];r=r.trim();var o,a=[],s=t[p],u=t[d],f=r.toLowerCase();/^#/.test(f)&&(o=[f.slice(1).trim()]);J([p,d]).forEach((function(e){var n=s[e]||u[e];if(n)if(Array.isArray(n.tags)&&(t=n.tags,o&&t.length&&(t=t.map((function(e){return e.toLowerCase()})),o.some((function(e){return t.some((function(n){return n===e}))})))))a.push(e);else{var t,r=n.title||n.lastTitle;(r&&-1!==r.toLowerCase().indexOf(f)||n.filename&&-1!==n.filename.toLowerCase().indexOf(f))&&a.push(e)}}));var l=n.getRelativeHref(r);if(l){var h=q(l);h&&a.push(h)}a=e.deduplicateString(a);var v=[];a.forEach((function(e){v.push({id:e,paths:X(e),data:i.getFileData(e)})}));var y=[],m=function(e,n){for(var t in e)k(e[t])&&!C(e[t])&&(-1!==t.toLowerCase().indexOf(f)&&y.push({id:null,paths:[n.concat(t)],data:{title:t}}),m(e[t],n.concat(t)))};return m(t[c],[c]),y=y.sort((function(e,n){return e.data.title.toLowerCase()>n.data.title.toLowerCase()})),v=y.concat(v)},i.getRecentPads=function(){var e=t[p];return Object.keys(e).filter((function(n){return e[n]})).sort((function(n,t){return e[t].atime-e[n].atime})).map((function(e){return Number(e)}))},i.getOwnedPads=function(e){var n=t[p];return Object.keys(n).filter((function(t){return n[t].owners&&-1!==n[t].owners.indexOf(e)})).map((function(e){return Number(e)}))};var $=i.getAvailableName=function(e,n){if(void 0===e[n])return n;for(var t=n,r=1;void 0!==e[t];)t=n+"_"+r,r++;return t},ee=i.move=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"move",data:{paths:e,newPath:n}},t);else{var r=[];e.forEach((function(e){var t=e.slice();t.pop(),H(t,n)||(j(n,e)?w(a.fo_moveFolderToChildError):i.copyElement(e.slice(),n)&&r.push(e))})),i.delete(r,t)}};return i.restore=function(e,n){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"restore",data:{path:e}},n);else if(U(e)){var t=e.slice();t.pop();var r=V(t).path;ee([e],r,n)}},i.addFolder=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"addFolder",data:{path:e,name:n}},t);else{var r=V(e),o=$(r,n||E);r[o]={};var a=e.slice();a.push(o),t({newPath:a})}},i.delete=function(e,n,t){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"delete",data:{paths:e,nocheck:t}},n):(n=n||function(){},i.deleteMultiplePermanently(e,t,n))},i.emptyTrash=function(e){e=e||function(){},g?g.query("Q_DRIVE_USEROBJECT",{cmd:"emptyTrash"},e):(t[f]={},i.checkDeletedFiles(e))},i.ownedInTrash=function(e){return J([f]).map((function(n){var r=C(n)?t[d][n]:i.getFileData(n);if(r)return e(r.owners)?r.channel:void 0})).filter(Boolean)},i.rename=function(e,n,r){if(r=r||function(){},g)g.query("Q_DRIVE_USEROBJECT",{cmd:"rename",data:{path:e,newName:n}},r);else if(e.length<=1)D("Renaming `root` is forbidden");else{var o,i=V(e);if(k(i)&&!C(i)){var s=e.slice(),c=s.pop();if(!n||!n.trim()||c===n)return;var u=V(s);return void 0!==u[n]?void w(a.fo_existingNameError):(u[n]=i,delete u[c],void("function"==typeof r&&r()))}if(o=C(i)?t[d][i]:t[p][i]||t[y][i])return t[y][i]?n&&n.trim()?(o.name=n,void r()):void r():n&&""!==n.trim()?void(L(i,"name")!==n&&(o.filename=n,"function"==typeof r&&r())):(delete o.filename,void("function"==typeof r&&r()))}},i.getTagsList=function(){var e,n={},r=function(e){n[e]=n[e]?++n[e]:1};for(var o in t[p])(e=t[p][o]).tags&&Array.isArray(e.tags)&&e.tags.forEach(r);return n},i},s};e.exports&&(e.exports=n(Z(),te(),Y(),Ke(),M(),void 0))})()}(Fe)),Fe.exports}var Be,Ve,Ye,Ge={exports:{}},Je={exports:{}};function qe(){return Be||(Be=1,function(e){e.exports=function(e){var n,t=[],r=[],o=0,a=function(e){return o++,function(){for(e&&e.apply(null,arguments),o=(o||1)-1;!o&&t.length&&!n;)t.shift()(a)}};a.abort=function(){r.forEach(clearTimeout),n=1};var i={nThen:function(e){return n||(o?t.push(e):e(a)),i},orTimeout:function(e,s){if(n)return i;if(!s)throw Error("Must specify milliseconds to orTimeout()");var c,u=setTimeout((function(){for(;t.shift()!==c;);for(e(a),o=(o||1)-1;!o&&t.length;)t.shift()(a)}),s);return t.push(c=function(){var e=r.indexOf(u);if(e>-1)return r.splice(e,1),void clearTimeout(u);throw new Error("timeout not listed in array")}),r.push(u),i}};return i.nThen(e)}}(Je)),Je.exports}function We(){return Ve||(Ve=1,function(e){e.exports&&(e.exports=((e,n,t,r,o,a,i,s)=>{var c={},u={};return c.checkMigration=function(e,t,r,o){var a=n.once(n.mkAsync(o));if(t)if(e)if(t.version>=2)a();else if(t.migrateRo){var i,s=!1,c=setInterval((function(){if(t.version>=2)return s=!0,clearTimeout(i),clearInterval(c),void a()}),100);i=setTimeout((function(){clearInterval(c),r.migrateReadOnly((function(){s=!0,a()}))}),2e4),t.on("change",["version"],(function(){s||t.version>=2&&(s=!0,clearTimeout(i),clearInterval(c),a())}))}else r.migrateReadOnly(a);else a();else a()},c.migrate=function(e){var t=u[e];if(t){var r=t.teams;if(Array.isArray(r)&&r.length){var o=r[0];if(o.secondaryKey){var a=n.find(o,["store","manager","folders",o.id]);a&&a.proxy&&!a.proxy.version&&a.userObject.migrateReadOnly((function(){r.forEach((function(e){n.find(e,["store","manager","folders",e.id,"userObject"]).setReadOnly(!1,e.secondarykey)}))}))}}}},c.load=function(t,f,l,d){var h=n.once(n.mkAsync(d)),p=t.network,v=t.store,y=t.isNew,m=t.isNewChannel,g=v.id,E=v.handleSharedFolder,b=v.manager.user.userObject.getHref(l),O=e.parsePadUrl(b),A=e.getSecrets("drive",O.hash,l.password);if(!A.keys)return v.manager.deprecateProxy(f),void h(null);var w=A.keys.secondaryKey;o((function(e){t.cache&&r.getChannelCache(A.channel,e((function(n){if("EINVAL"===n)return e.abort(),v.manager.restrictedProxy(f,A.channel),void h(null)})))})).nThen((function(e){m(null,{channel:A.channel},e((function(n){if(n.isNew&&!y)return v.manager.deprecateProxy(f,A.channel,n.reason),e.abort(),void h(null)})))})).nThen((function(){var e=u[A.channel];if(e&&e.readOnly&&w&&c.upgrade(A.channel,A),e&&e.ready&&e.rt)return setTimeout((function(){v.manager.addProxy(f,e.rt,(function(){c.leave(A.channel,g)}),w),h(e.rt)})),e.teams.push({cb:h,store:v,id:f}),void(E&&E(f,e.rt));if(e&&!e.ready&&e.rt)return e.teams.push({cb:h,store:v,secondaryKey:w,id:f}),void(E&&E(f,e.rt));e=u[A.channel]={teams:[{cb:h,store:v,secondaryKey:w,id:f}],readOnly:!Boolean(w)};var n=l.owners,o={data:{},channel:A.channel,readOnly:!Boolean(w),crypto:a.createEncryptor(A.keys),userName:"sharedFolder",logLevel:1,ChainPad:s,classic:!0,network:p,Cache:r,metadata:{validateKey:A.keys.validateKey||void 0,owners:n},onRejected:t.Store&&t.Store.onRejected},d=e.rt=i.create(o);d.proxy.on("cacheready",(function(){e.teams&&(e.teams.forEach((function(n){d.cache=!0,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),t.updatePassword=!1,n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("ready",(function(){y&&!Object.keys(d.proxy).length&&(d.proxy.version=2),e.teams&&(e.teams.forEach((function(n){d.cache=!1,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("error",(function(n){if(n&&n.error){if("EDELETED"===n.error){try{e.teams.forEach((function(e){e.store.manager.deprecateProxy(e.id,A.channel,n.message),e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),e.cb()}))}catch(e){}return delete u[A.channel],void h()}if("ERESTRICTED"===n.error)return e.teams.forEach((function(e){e.store.manager.restrictedProxy(e.id,A.channel),e.cb()})),delete u[A.channel],void h()}})),E&&E(f,d)}))},c.upgrade=function(e,n){var t=u[e];if(t&&t.readOnly&&t.rt.setReadOnly&&n.keys&&n.keys.editKeyStr){var r=a.createEncryptor(n.keys);t.readOnly=!1,t.rt.setReadOnly(!1,r)}},c.leave=function(e,n){var t=u[e];if(t){var r,o=t.teams;Array.isArray(o)&&(o.some((function(e,t){if(e.store.id===n)return e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),r=t,!0})),void 0!==r&&(o.splice(r,1),o.length||t.rt&&t.rt.stop&&t.rt.stop()))}},c.updatePassword=function(r,a,i,s){var f=a.oldChannel,l=a.href,d=a.password,h=e.parsePadUrl(l),p=e.getSecrets(h.type,h.hash,d),v=u[f];if(v){if(v.rt&&v.rt.stop)try{v.rt.stop()}catch(e){}var y=o;v.teams.forEach((function(e){y=y((function(o){var a=e.store,s=e.id,u=n.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};if(s&&u[s]){var l=JSON.parse(JSON.stringify(u[s]));l.password=d,c.load({network:i,store:a,updatePassword:!0,Store:r,isNewChannel:r.isNewChannel},s,l,o()),a.rpc&&(a.rpc.unpin([f],o()),a.rpc.pin([p.channel],o()))}})).nThen})),y((function(){s()}))}else s({error:"ENOTFOUND"})},c.loadSharedFolders=function(e,n,r,a,i,s,u,f){var l=a[t.SHARED_FOLDERS]||{},d=Object.keys(l).length,h=1,p=s();u=u||function(){},o((function(t){Object.keys(l).forEach((function(o){var a=l[o];c.load({network:n,store:r,Store:e,cache:f,isNewChannel:e.isNewChannel},o,a,t((function(){u({progress:h,max:d}),h++})))}))})).nThen((function(){setTimeout(p)}))},c.isSharedFolderChannel=function(e){return Object.keys(u).includes(e)},c})(te(),Z(),Ue(),fe(),qe(),M(),g(),w()))}(Ge)),Ge.exports}function ze(){return Ye||(Ye=1,function(e){(()=>{const n=(e,n,t,r,o={},a,i)=>{var s=function(n,t,r,o,a,i){if(!n.folders[t]||i||n.folders[t].restricted){var s=function(e){var n={};for(var t in e.cfg)n[t]=e.cfg[t];return n}(n);s.sharedFolder=!0,s.id=t,s.editKey=a,s.rt=r.realtime,s.readOnly=Boolean(!a);var c=e.init(r.proxy,s);c.fixFiles&&c.fixFiles();var u=r.proxy;if(u.metadata&&u.metadata.title){var f=n.user.proxy[e.SHARED_FOLDERS][t];f&&(f.lastTitle=u.metadata.title)}return n.folders[t]={proxy:r.proxy,userObject:c,leave:o,restricted:u.restricted,offline:Boolean(r.cache)},u.on&&(u.on("disconnect",(function(){n.folders[t].offline=!0})),u.on("reconnect",(function(){n.folders[t].offline=!1}))),c}n.folders[t].offline&&!r.cache&&n.Store&&(n.folders[t].offline=!1,n.folders[t].userObject.fixFiles&&n.folders[t].userObject.fixFiles(),n.Store.refreshDriveUI())},c=function(e,n){var t=e.folders[n];t&&(t.leave(),delete e.folders[n])},u=function(t,r,o,a){if(!t.folders[r]||!t.folders[r].deleting){if(t.user.userObject.readOnly){return c(t,r),s(t,r,{proxy:{deprecated:!0}},(function(){})),void t.Store.refreshDriveUI()}if(o&&t.unpinPads([o],(function(){})),a&&"PASSWORD_CHANGE"!==a){let o=n.find(t,["user","proxy",e.SHARED_FOLDERS]),a=o[r]&&o[r].lastTitle;return a&&((e,n,t)=>{var r=e.store.mailbox;if(r){var o,a=e.cfg.teamId;o=a?e.store.modules.team.getTeamsData()[a]:e.Store.getMetadata(null,null,(()=>{})).user,r.sendTo("SF_DELETED",{sfId:n,team:a,title:t},{curvePublic:o.curvePublic,channel:o.notifications},(e=>{console.error(e)}))}})(t,r,a),delete o[r],void(t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI())}t.user.userObject.deprecateSharedFolder(r,a),c(t,r),t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI()}},f=function(e,n){c(e,n),s(e,n,{proxy:{restricted:!0,root:{},filesData:{}}},(function(){})),e.Store.refreshDriveUI()},l=function(e,n){return Array.isArray(n)&&-1!==n.indexOf(e.edPublic)},d=function(e){var n=[e.user.userObject],t=Object.keys(e.folders).map((function(n){return e.folders[n].userObject}));return Array.prototype.push.apply(n,t),n},h=function(e,n){var t=d(e),r=e.user.userObject;return t.some((function(e){if(Object.keys(e.getFileData(n)).length)return r=e,!0})),r},p=function(e,n){var t=Number(n.id);if(t)return e.user.userObject.findFile(t)[0]},v=function(n,t,r){var o=[];return n.user.userObject.findChannels([t],!0).forEach((function(t){var a=n.user.proxy[e.SHARED_FOLDERS][t];a&&!r&&(a=JSON.parse(JSON.stringify(a))),a||(a=n.user.userObject.getFileData(t,r)),o.push({id:t,data:a,userObject:n.user.userObject})})),Object.keys(n.folders).forEach((function(e){n.folders[e].userObject.findChannels([t]).forEach((function(t){o.push({id:t,fId:e,data:n.folders[e].userObject.getFileData(t,r),userObject:n.folders[e].userObject})}))})),o},y=function(e,n){var t=[],r=e.user.userObject.getIdFromHref(n);return r&&t.push({data:e.user.userObject.getFileData(r),userObject:e.user.userObject}),Object.keys(e.folders).forEach((function(r){var o=e.folders[r].userObject.getIdFromHref(n);o&&t.push({fId:r,data:e.folders[r].userObject.getFileData(o),userObject:e.folders[r].userObject})})),t},m=function(e,n){var t=[],r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);let i;if(a){i=e.findFile(n);let t=(o[a]||[])[0];if(!t)return;i.forEach((function(e){Array.prototype.unshift.apply(e,t)}))}else{let t=[n],a=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(t,a),o=e.findFiles(t),i=o[n]}Array.prototype.push.apply(t,i)})),t},g=function(e,n){var t={},r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);if(!e.id){let e=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(n,e)}var i=e.findFiles(n);if(e.id||(o=i),a){let e=(o[a]||[])[0];if(!e)return;Object.keys(i).forEach((n=>{i[n].forEach((n=>{Array.prototype.unshift.apply(n,e)}))}))}Object.keys(i).forEach((e=>{t[e]||=[],Array.prototype.push.apply(t[e],i[e])}))})),t},E=function(e,t,r){if(r)return e.user.userObject.findChannels(t);var o=[];return d(e).forEach((function(e){var n=e.findChannels(t);Array.prototype.push.apply(o,n)})),o=n.deduplicateString(o)},b=function(e,n,t){var r=d(e),o={};return r.some((function(e){if((o=e.getFileData(n,t))&&Object.keys(o).length)return!0})),o},O=function(t,r){var o;if(t.isHistoryMode&&!t.folders[r])o=!0;else if(!t.folders[r])return{};var a=o?{}:t.folders[r].proxy;Object.keys(a.metadata||{}).length>1&&(a.metadata={title:a.metadata.title});var i=n.clone(a.metadata||{});for(var s in t.user.proxy[e.SHARED_FOLDERS][r]||{})if(void 0!==t.user.proxy[e.SHARED_FOLDERS][r][s]){var c=n.clone(t.user.proxy[e.SHARED_FOLDERS][r][s]);if("href"===s&&-1===c.indexOf("#"))try{c=t.user.userObject.cryptor.decrypt(c)}catch(e){}"href"===s&&-1===c.indexOf("#")&&(c=void 0),i[s]=c}return i},A=function(e,n){var t,r={id:null,userObject:e.user.userObject,path:n};if(!Array.isArray(n)||n.length<=1)return r;for(var o=e.user.userObject,a=2;a{o=n.Messages,e.setCustomize(n)},create:function(n,t,r){var o={pinPads:t.pin,unpinPads:t.unpin,onSync:t.onSync,Store:t.Store,store:t.store,removeOwnedChannel:t.removeOwnedChannel,loadSharedFolder:t.loadSharedFolder,cfg:r,edPublic:t.edPublic,settings:t.settings,user:{proxy:n},folders:{}};r.removeProxy=function(e){c(o,e)},o.user.userObject=e.init(n,r);var a=function(e){return function(){return[].unshift.call(arguments,o),e.apply(null,arguments)}};return{addProxy:a(s),removeProxy:a(c),deprecateProxy:a(u),restrictedProxy:a(f),addSharedFolder:a(N),addPin:function(e,n){o.pinPads=e,o.unpinPads=n},removePin:function(){delete o.pinPads,delete o.unpinPads},command:a(P),getPadAttribute:a(M),setPadAttribute:a(k),getTagsList:a(F),getSecureFilesList:a(L),getSharedFolderData:a(O),getChannelsList:a(j),addPad:a(K),delete:a(I),deleteOwned:a(C),findChannel:a(v),findHref:a(y),findFile:a(m),getEditHash:a(S),user:o.user,folders:o.folders}},createInner:function(n,t,r,o){var a={cfg:o,sframeChan:t,edPublic:r,user:{proxy:n,userObject:e.init(n,o)},folders:{}},i=function(e){return function(){return[].unshift.call(arguments,a),e.apply(null,arguments)}};return{addProxy:i(s),removeProxy:i(c),setHistoryMode:i(le),rename:i(U),move:i(B),emptyTrash:i(V),addFolder:i(Y),addSharedFolder:i(G),addLink:i(J),restoreSharedFolder:i(q),convertFolderToSharedFolder:i(W),delete:i(z),deleteOwned:i(Q),restore:i(Z),setFolderData:i(X),updateStaticAccess:i($),getFileData:i(ne),find:i(re),getTitle:i(oe),isReadOnlyFile:i(ie),isStaticFile:i(ae),getFiles:i(se),search:i(ce),getRecentPads:i(ue),getOwnedPads:i(fe),getTagsList:i(F),findFile:i(m),findFiles:i(g),findChannels:i(ee),getSharedFolderData:i(O),getFolderData:i(de),isInSharedFolder:i(he),getUserObjectPath:i(te),isDuplicateOwned:i(Se),ownedInTrash:i(Te),isValidDrive:i(pe),isFile:i(ve),isFolder:i(ye),isSharedFolder:i(me),isFolderEmpty:i(ge),isPathIn:i(Ee),isSubpath:i(be),isInTrashRoot:i(Oe),comparePath:i(Ae),hasSubfolder:i(we),hasSubSharedFolder:i(De),hasFile:i(_e),user:a.user,folders:a.folders}}}};e.exports&&(e.exports=n(Ue(),Z(),te(),We(),void 0,Ae(),qe()))})()}(Me)),Me.exports}var Qe,Ze,Xe=ze(),$e=n({__proto__:null,default:r(Xe)},[Xe]),en=Ue(),nn=n({__proto__:null,default:r(en)},[en]),tn={exports:{}},rn={exports:{}};function on(){return Ze||(Ze=1,function(e){e.exports&&(e.exports=((e={},n={},t)=>{let r=[];const o=["sheet","doc","presentation"],a=a=>{e=a.AppConfig;const i=(n=a.ApiConfig).onlyOffice&&n.onlyOffice.availableVersions.includes(t.currentVersion);r=e.availablePadTypes.filter((e=>i||!o.includes(e)))};Object.keys(e).length&&a({AppConfig:e,ApiConfig:n});const i={setCustomize:a};return i.__defineGetter__("availableTypes",(function(){return n.appsToDisable?r.filter((e=>!n.appsToDisable.includes(e))):r})),i.__defineGetter__("appsToSelect",(function(){return r.filter((e=>!["drive","teams","file","contacts","convert"].includes(e)))})),i.isAvailable=e=>Array.isArray(i.availableTypes)&&i.availableTypes.includes(e),i})(void 0,void 0,(Qe||(Qe=1,function(e){e.exports&&(e.exports={currentVersion:"v7"})}(rn)),rn.exports)))}(tn)),tn.exports}var an,sn,cn=on(),un=n({__proto__:null,default:r(cn)},[cn]),fn={exports:{}},ln={exports:{}};function dn(){return an||(an=1,function(e){(()=>{const n=(e,n,t={},r)=>{const o=function(){if(Object.keys(t).length){var e,n=new URL(t.httpUnsafeOrigin);try{return(e=new URL(t.websocketPath,t.httpUnsafeOrigin)).protocol=n.protocol,e.origin}catch(e){return console.error(e),t.httpUnsafeOrigin}}};var a=o();var i=e=>JSON.parse(JSON.stringify(e)),s=function(e,t,r){var o=n.once(n.mkAsync(r));fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then((e=>{e.ok?e.text().then((e=>{o(void 0,n.tryParse(e))})):e.json().then().then((n=>{o(e.status,n)}))})).catch((e=>{o(e)}))},c=function(t,o,c){var u=i(o);u.publicKey=n.encodeBase64(t.publicKey),u.nonce=n.encodeBase64(r.randomBytes(24));var f,l,d=new URL("/api/auth/",a);e((function(e){s(d,u,e(((n,t)=>n?(e.abort(),console.error(n),t&&console.error(t),void c(n)):t.date&&t.txid?(f=t.txid,void(l=t.date)):(e.abort(),void c("REQUEST_REJECTED")))))})).nThen((function(e){var o=i(u);o.txid=f,o.date=l;var a=n.decodeUTF8(JSON.stringify(o)),h=r.sign.detached(a,t.secretKey),p=n.encodeBase64(h);s(d,{sig:p,txid:f},e(((n,t)=>{if(n)return e.abort(),console.error(n),t&&console.error(t),void c("RESPONSE_REJECTED",t);c(void 0,t)})))}))};return c.setCustomize=e=>{t=e.ApiConfig,a=o()},c};e.exports&&(e.exports=n(qe(),Z(),void 0,N()))})()}(ln)),ln.exports}function hn(){return sn||(sn=1,function(e){e.exports&&(e.exports=((e,n={},t,r)=>{var o={setCustomize:e=>{n=e.ApiConfig,t.setCustomize(e)}};o.join=e.uint8ArrayJoin,o.seed=function(){return r.hash(e.decodeUTF8("pewpewpew"))},o.genkeys=function(e){if(!(e instanceof Uint8Array))throw new Error("INVALID_SEED_FORMAT");if(!e||"number"!=typeof e.length||e.length<64)throw new Error("INVALID_SEED_LENGTH");var n=e.subarray(0,r.sign.seedLength),t=e.subarray(r.sign.seedLength,r.sign.seedLength+r.secretbox.keyLength);return{sign:r.sign.keyPair.fromSeed(n),symmetric:t}},o.keysToRPCFormat=function(n){try{var t=n.sign;return{edPrivate:e.encodeBase64(t.secretKey),edPublic:e.encodeBase64(t.publicKey)}}catch(e){return void console.error(e)}},o.encrypt=function(n,t,a){var i=e.decodeUTF8(t),s=r.randomBytes(r.secretbox.nonceLength);return o.join([[0],s,r.secretbox(i,s,a.symmetric)])},o.decrypt=function(n,t){var o=n.subarray(1,1+r.secretbox.nonceLength),a=n.subarray(1+r.secretbox.nonceLength),i=r.secretbox.open(a,o,t.symmetric);try{return JSON.parse(e.encodeUTF8(i))}catch(e){return void console.error(e)}},o.sign=function(e,n){return r.sign.detached(r.hash(e),n.sign.secretKey)},o.serialize=function(n,t){var r=o.encrypt(0,n,t),a=o.sign(r,t);return{publicKey:e.encodeBase64(t.sign.publicKey),signature:e.encodeBase64(a),ciphertext:e.encodeBase64(r)}},o.proveAncestor=function(n){var t=e.find(n,["sign","publicKey"]),o=e.find(n,["sign","secretKey"]);try{var a=r.sign.detached(t,o);return JSON.stringify([t,a].map(e.encodeBase64))}catch(e){return void console.error(e)}};var a=function(n){return e.encodeBase64(n).replace(/\//g,"-")};o.getBlockUrl=function(e){var t=a(e.sign.publicKey);return(n.fileHost||n.httpUnsafeOrigin||window.location.origin)+"/block/"+t.slice(0,2)+"/"+t},o.getBlockHash=function(e){return o.getBlockUrl(e)+"#"+a(e.symmetric)};var i=function(n){try{return e.decodeBase64(n.replace(/\-/g,"/"))}catch(e){return void console.error(e)}};return o.parseBlockHash=function(e){if("string"==typeof e){var n=e.split("#");if(2===n.length)try{return{href:n[0],keys:{symmetric:i(n[1])}}}catch(e){return void console.error(e)}}},o.checkRights=function(n,r){const o=e.mkAsync(r),{blockKeys:a,auth:i}=n;var s="MFA_CHECK";i&&i.type&&(s=`${i.type.toUpperCase()}_`+s),t(a.sign,{command:s,auth:i&&i.data},o)},o.writeLoginBlock=function(e,n){const{content:r,blockKeys:a,oldBlockKeys:i,auth:s,pw:c,session:u,token:f,userData:l}=e;var d="WRITE_BLOCK";s&&s.type&&(d=`${s.type.toUpperCase()}_`+d);var h=o.serialize(JSON.stringify(r),a);h.auth=s&&s.data,h.hasPassword=c,h.registrationProof=i&&o.proveAncestor(i),f&&(h.inviteToken=f),l&&(h.userData=l),t(a.sign,{command:d,content:h,session:u},n)},o.removeLoginBlock=function(e,n){const{reason:r,blockKeys:o,auth:a,edPublic:i}=e;var s="REMOVE_BLOCK";a&&a.type&&(s=`${a.type.toUpperCase()}_`+s),t(o.sign,{command:s,auth:a&&a.data,edPublic:i,reason:r},n)},o.updateSSOBlock=function(e,n){const{blockKeys:r,oldBlockKeys:a}=e;var i=a&&o.proveAncestor(a);t(r.sign,{command:"SSO_UPDATE_BLOCK",ancestorProof:i},n)},o})(Z(),void 0,dn(),N()))}(fn)),fn.exports}var pn,vn=hn(),yn=n({__proto__:null,default:r(vn)},[vn]),mn={exports:{}},gn={exports:{}};function En(){return pn||(pn=1,function(e){var n;n=function(){var e=function(n){if(Array.isArray(n))return n.map(e);if(n instanceof Object){var t=[],r=[];return Object.keys(n).forEach((function(e){/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce((function(t,r){return t[r]=e(n[r]),t}),{})}return n},n=JSON.stringify.bind(JSON);return function(t,r,o){var a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;var i=JSON.parse(a);return n(e(i),null,o)}},e.exports?e.exports=n():JSON.sortify=n()}(gn)),gn.exports}var bn,On={exports:{}},An={exports:{}};function wn(){return bn||(bn=1,function(e){e.exports&&(e.exports=((e,n,t,r,o)=>{var a={},i=a.createData=function(e,r){var o={channel:r||n.createChannelId(),displayName:e["cryptpad.username"],profile:e.profile&&e.profile.view,edPublic:e.edPublic,curvePublic:e.curvePublic,notifications:t.find(e,["mailboxes","notifications","channel"]),avatar:e.profile&&e.profile.avatar,badge:e.profile&&e.profile.badge,uid:e.uid};return!1===r&&delete o.channel,o},s=a.getFriend=function(e,n){if(n){if(n===e.curvePublic){var t=i(e);return delete t.channel,t}return e.friends?e.friends[n]:void 0}},c=a.getFriendList=function(e){return e.friends||(e.friends={}),e.friends},u=function(e,n){Object.keys(e).forEach((function(t){"me"!==t&&n(e[t],t,e)}))};return a.getFriendChannelsList=function(e){var n=[];return u(e.friends,(function(e){n.push(e.channel)})),n},a.declineFriendRequest=function(e,n,t){e.mailbox.sendTo("DECLINE_FRIEND_REQUEST",{},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},a.acceptFriendRequest=function(e,n,t){var r=s(e.proxy,n.curvePublic)||{},o=i(e.proxy,r.channel||n.channel);e.mailbox.sendTo("ACCEPT_FRIEND_REQUEST",{user:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},a.addToFriendList=function(e,n,t){var r=e.proxy,a=c(r),i=n.curvePublic;i!==r.curvePublic?(a[i]=n,o.whenRealtimeSyncs(e.realtime,(function(){t(),e.pinPads([n.channel],(function(e){e.error&&console.error(e.error)}))}))):t("E_MYKEY")},a.updateMyData=function(e,n){var r=i(e.proxy,!1);e.proxy.friends&&(e.proxy.friends.me=t.clone(r),delete e.proxy.friends.me.channel),e.modules.team&&e.modules.team.updateMyData(r);var o=function(n){n&&n.notifications&&(delete n.user,r.channel=n.channel,e.mailbox.sendTo("UPDATE_DATA",r,{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)})))};n?o(s(e.proxy,n)):u(e.proxy.friends||{},o)},a.removeFriend=function(e,n,t){var r=e.proxy,a=r.friends[n];a?a.notifications?e.mailbox.sendTo("UNFRIEND",{curvePublic:r.curvePublic},{channel:a.notifications,curvePublic:a.curvePublic},(function(i){i&&i.error?t(i):(e.messenger.onFriendRemoved(n,a.channel),delete r.friends[n],o.whenRealtimeSyncs(e.realtime,(function(){t(i)})))})):t({error:"EINVAL"}):t({error:"ENOENT"})},a})(M(),te(),Z(),Y(),je()))}(An)),An.exports}var Dn,_n,Tn,Sn={exports:{}},xn={exports:{}},Nn={exports:{}};function In(){return Dn||(Dn=1,function(e){e.exports&&(e.exports=function(e,n){var t=e.uid,r=e.tryParse,o=function(t,r){var o=e.decodeUTF8(JSON.stringify(t));return e.encodeBase64(n.sign.detached(o,r))},a=function(e,n,r){if("function"!=typeof r)throw new Error("expected callback");var o=e.network,a=o.historyKeeper;if("string"==typeof a){var i=t(),s=e.pending[i]=function(e,n){r(e,n)};return s.data=n,s.called=0,o.sendto(a,JSON.stringify([i,n]))}r("NO_HISTORY_KEEPER")},i=[],s=[],c=function(e){var n={network:e,connected:!0,anon:void 0,authenticated:[]};return i.push(e),s.push(n),e.on("message",(function(t,o){o===e.historyKeeper&&function(e,n){"string"!=typeof n&&console.error("received non-string message [%s]",n);var t=r(n);if(t){if(Array.isArray(t)&&!/(FULL_HISTORY|HISTORY_RANGE)/.test(t[0])){var o=t[0];"string"==typeof o&&(function(e,n){return!!e.anon&&"function"==typeof e.anon.pending[n]}(e,o)?function(e,n,t){var r=e.pending[n];"ERROR"===t[0]?r(t[1]):r(void 0,t.slice(1)),delete e.pending[n]}(e.anon,o,t.slice(1)):e.authenticated.some((function(e){var n=e.pending[o];return"function"==typeof n&&("ERROR"!==t[1]?(/\|/.test(t[1])&&e.cookie!==t[1]&&(e.cookie=t[1]),n(void 0,t.slice(2)),delete e.pending[o],!0):"NO_COOKIE"===t[2]?(e.send("COOKIE","",(function(t){if(t)return console.error(t),void n(t);e.resend(o)&&delete e.pending[o]})),!0):(n(t[2]),delete e.pending[o],!0))}))||console.error("UNHANDLED RPC MESSAGE",n))}}else console.error(new Error("could not parse message: %s",n))}(n,t)})),e.on("disconnect",(function(){n.connected=!1,n.anon&&(n.anon.connected=!1),n.authenticated.forEach((function(e){e.connected=!1}))})),e.on("reconnect",(function(){n.anon&&(n.anon.connected=!0),n.authenticated.forEach((function(e){e.connected=!0}))})),n},u=function(e){var n;return i.some((function(t,r){return e===t&&(n=r,!0)})),s[n]?s[n]:c(e)},f=function(n,r){if(!n)throw new Error("expected network context");var i,s=r.publicKeyString;return n.authenticated.some((function(e,n){return e.publicKey===s&&(i=n,!0)})),n.authenticated[i]?n.authenticated[i]:function(n,r){var i={network:n.network,publicKey:r.publicKeyString,timeouts:{},pending:{},cookie:null,connected:!0},s=i.send=function(n,t,s){var c=e.mkAsync(s);if(i.connected||"COOKIE"===n){var u=[n,t];i.cookie&&i.cookie.join?u.unshift(i.cookie.join("|")):u.unshift(i.cookie);var f=o(u,r.signKey);return u.unshift(r.publicKeyString),u.unshift(f),a(i,u,c)}c("DISCONNECTED")};return i.resend=function(e){var n=i.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++,n.data[2]=i.cookie,n.data[0]=o(n.data.slice(2),r.signKey);var a=t();i.pending[a]=n,delete i.pending[e];try{return i.network.sendto(i.network.historyKeeper,JSON.stringify([a,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},s.unauthenticated=function(n,t,o){var s=e.mkAsync(o);if(i.connected){var c=[null,r.publicKeyString,null,n,t];return i.cookie&&i.cookie.join?c[2]=i.cookie.join("|"):c[2]=i.cookie,a(i,c,s)}s("DISCONNECTED")},i.destroy=function(){Object.keys(i.timeouts).forEach((function(e){clearTimeout(e)}));var e=n.authenticated.indexOf(i);-1!==e&&n.authenticated.splice(e,1)},n.authenticated.push(i),i}(n,r)},l=function(n){return n.anon||function(n){var t={network:n.network,timeouts:{},pending:{},connected:!0};return n.anon=t,t.send=function(n,r,o){var i=e.mkAsync(o);if(t.connected)return a(t,[n,r],i);i("DISCONNECTED")},t.resend=function(e){var n=t.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++;try{return t.network.sendto(t.network.historyKeeper,JSON.stringify([e,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},t.destroy=function(){Object.keys(t.timeouts).forEach((function(e){clearTimeout(e)})),n.anon=void 0},t}(n)};return{create:function(n,t,r,o){if("function"!=typeof o)throw new Error("expected callback");var a,i=e.mkAsync(o);try{if(64!==(a=e.decodeBase64(t)).length)throw new Error("private key did not match expected length of 64")}catch(e){return void i(e)}try{if(32!==e.decodeBase64(r).length)return void i("expected public key to be 32 uint")}catch(e){return void i(e)}if(n){var s=u(n),c=f(s,{publicKeyString:r,signKey:a});c.send("COOKIE","",(function(e){e?i(e):i(void 0,{send:c.send,destroy:c.destroy})}))}else i("NO_NETWORK")},createAnonymous:function(n,t){var r=e.mkAsync(t);if("function"!=typeof r)throw new Error("expected callback");if(n){var o=l(u(n));r(void 0,{send:o.send,destroy:o.destroy})}else r("NO_NETWORK")}}}(Z(),N()))}(Nn)),Nn.exports}function Cn(){return _n||(_n=1,function(e){e.exports&&(e.exports=function(e,n){return{create:function(t,r,o,a){if("function"!=typeof o)throw new Error("Expected callback");var i=e.once(e.mkAsync(o));if(t)if(r){var s=r.edPrivate,c=r.edPublic;s&&c?n.create(t,s,c,(function(n,t){if(n)i(n);else{var r={};r.destroy=t.destroy,r.publicKey=c,r.send=t.send,r.pin=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("PIN",n,o):o("[TypeError] pin expects an array")},r.unpin=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("UNPIN",n,o):o("[TypeError] pin expects an array")},r.adminRpc=function(e,n){if(e.cmd){var r=[e.cmd,e.data];t.send("ADMIN",r,n)}else setTimeout((function(){n("[TypeError] admin rpc expects a command")}))},r.getServerHash=function(e){t.send("GET_HASH",c,(function(n,t){t&&t[0]?e(n,Array.isArray(t)&&t[0]||void 0):e("NO_HASH_RETURNED")}))},r.reset=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("RESET",n,o):o("[TypeError] pin expects an array")},r.getFileListSize=function(e){t.send("GET_TOTAL_SIZE",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0]):e("INVALID_RESPONSE")}))},r.updatePinLimits=function(e){t.send("UPDATE_LIMITS",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.getLimit=function(e){t.send("GET_LIMIT",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.trimHistory=function(n,r){var o=e.once(e.mkAsync(r));"object"==typeof n&&n.channel&&n.hash?t.send("TRIM_HISTORY",n,(function(e){if(e)return o(e);o()})):o("INVALID_ARGUMENTS")},r.clearOwnedChannel=function(e,n){"string"==typeof e&&32===e.length?t.send("CLEAR_OWNED_CHANNEL",e,(function(e){if(e)return n(e);n()})):n("INVALID_ARGUMENTS")},r.removeOwnedChannel=function(e,n,r){if("string"!=typeof e||-1===[32,48].indexOf(e.length))return console.error("invalid channel to remove",e),void n("INVALID_ARGUMENTS");t.send("REMOVE_OWNED_CHANNEL",{channel:e,reason:r},(function(t,r){t?n(t):r&&r.length&&"OK"===r[0]?(n(),a&&a.clearChannel&&a.clearChannel(e)):n("INVALID_RESPONSE")}))},r.removePins=function(e){t.send("REMOVE_PINS",void 0,(function(n,t){n?e(n):t&&t.length&&"OK"===t[0]?e():e("INVALID_RESPONSE")}))},r.uploadComplete=function(e,n){t.send("UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.ownedUploadComplete=function(e,n){t.send("OWNED_UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.uploadStatus=function(e,n){"number"==typeof e?t.send("UPLOAD_STATUS",e,(function(e,t){if(e)n(e);else{var r=t[0];"boolean"==typeof r?n(void 0,r):n("INVALID_RESPONSE")}})):setTimeout((function(){n("INVALID_SIZE")}))},r.uploadCancel=function(e,n){t.send("UPLOAD_CANCEL",e,(function(e){e?n(e):n()}))},r.setMetadata=function(e,n){t.send("SET_METADATA",{channel:e.channel,command:e.command,value:e.value},n)},i(n,r)}})):i("INVALID_KEYS")}else i("INVALID_PROXY");else i("INVALID_NETWORK")}}}(Z(),In()))}(xn)),xn.exports}function Rn(){return Tn||(Tn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u)=>{var f=function(e,n,t){if(!e.done){if(e.cb(n&&n.error,t,n),e.done=!0,!e.hasNetwork){var o=r.find(e,["network","disconnect"]);"function"==typeof o&&o()}if(e.realtime&&e.realtime.stop)try{e.realtime.stop()}catch(e){console.error(e)}var a=r.find(e,["session","realtime","abort"]);"function"==typeof a&&(e.session.realtime.sync(),a())}},l=function(e,r){u((function(n){var o,a;e.hasNetwork||(o=n((function(e,n){e||(r.network=n)})),a=i.getWebsocketURL(),t.connect(a).then((function(e){o(null,e)}),(function(e){o(e)})))})).nThen((function(){e.realtime=n.start(r)}))},d=function(e,n,t,r){Array.isArray(t)&&t.length&&16===t[0].length&&Array.isArray(n.accessKeys)?(e.network.historyKeeper=t[0],u((function(t){n.accessKeys.forEach((function(n){c.create(e.network,n,t((function(e){console.log("done",n),e&&console.error(e)})))}))})).nThen((function(){r()}))):r(!0)},h=function(n,t){var r;return"string"==typeof n?r=o.getSecrets("pad",n,t.password):"object"==typeof n&&(r=n),r.keys||(r.keys=r.key),{websocketURL:i.getWebsocketURL(t.origin),channel:r.channel,validateKey:r.keys.validateKey||void 0,crypto:e.createEncryptor(r.keys),logLevel:0,initialState:t.initialState,Cache:s}},p=function(e){return"object"==typeof e},v=function(e,n){p(e)&&p(n)&&Object.keys(n).forEach((function(t){e[t]=n[t]}))};return{get:function(e,n,t,r){if("function"!=typeof n)throw new Error("Cryptget expects a callback");r=r||function(){};var o=h(e,t=t||{}),a={cb:n,accessKeys:t.accessKeys,hasNetwork:Boolean(t.network)};o.onRejected=function(e,n){d(o,a,e,n)},o.onReady=function(e){var n=a.session=e.realtime;a.network=e.network,r(1),f(a,void 0,n.getUserDoc())},o.onError=function(e){console.warn(e),f(a,e)},o.onChannelError=function(e){console.error(e),f(a,e)},o.onCacheReady=t.onCacheReady;var i=0;o.onMessage=function(){i++,r(Math.min(.99,i/100))},v(o,t),l(a,o)},put:function(e,n,t,r){if("function"!=typeof t)throw new Error("Cryptput expects a callback");var o=h(e,r=r||{}),i={cb:t,accessKeys:r.accessKeys,hasNetwork:Boolean(r.network)};o.onRejected=function(e,n){d(o,i,e,n)},o.onReady=function(e){var r=i.session=e.realtime;i.network=e.network,r.contentUpdate(n);var o=setTimeout((function(){t(new Error("Timeout"))}),15e3);a.whenRealtimeSyncs(r,(function(){clearTimeout(o);var e=r.getAuthDoc();r.abort(),f(i,void 0,e)}))},o.onChannelError=function(e){f(i,e)},v(o,r),l(i,o)}}};e.exports&&(e.exports=n(M(),y(),v(),Z(),te(),je(),j(),fe(),Cn(),qe(),w()))})()}(Sn)),Sn.exports}var Pn,kn={exports:{}},Mn={exports:{}};var Fn,Ln,Hn,jn={exports:{}};function Kn(){return Fn||(Fn=1,function(e){e.exports&&(e.exports=((e,n,t,r,o)=>{var a=function(e){var n=e.store.realtime.getLag().lag||0;return 20*(Math.max(0,n)+300)*(.5+Math.random())},i={},s={},c=function(e,n){var r=e.store.proxy.mutedUsers||{},o=t.find(n,["msg","author"]);return!!o&&Boolean(r[o])},u={};i.FRIEND_REQUEST=function(n,t,r,o){var a=r.msg.content.user||r.msg.content;if(c(n,r))o(!0);else if(u[r.msg.author])o(!0);else{if(u[r.msg.author]={type:t.type,hash:r.hash},e.getFriend(n.store.proxy,r.msg.author)||n.store.proxy.friends_pending[r.msg.author])return delete n.store.proxy.friends_pending[r.msg.author],void e.acceptFriendRequest(n.store,a,(function(t){t&&t.error?o():e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},a,(function(e){if(e)return console.error(e),void o(!0);n.store.messenger&&n.store.messenger.onFriendAdded(a),n.updateMetadata(),o(!0)}))}));o()}},s.FRIEND_REQUEST=function(e,n,t){var r=t.content.user||t.content;u[r.curvePublic]&&delete u[r.curvePublic]};var f={},l={};i.DECLINE_FRIEND_REQUEST=function(e,n,t,r){var o=t.msg.content.user||t.msg.content;o.curvePublic||(o.curvePublic=t.msg.author),setTimeout((function(){r(!0),e.store.proxy.friends_pending[t.msg.author]&&(delete e.store.proxy.friends_pending[t.msg.author],e.updateMetadata(),f[t.msg.author]||n.sendMessage({type:"FRIEND_REQUEST_DECLINED",content:{user:o}},(function(e){f[t.msg.author]={type:n.type,hash:e}})))}),a(e))},i.FRIEND_REQUEST_DECLINED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=l[o];delete l[o],f[o]?r(!0,a):(f[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_DECLINED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;f[r]&&delete f[r]},i.ACCEPT_FRIEND_REQUEST=function(n,t,r,o){var i=r.msg.content.user||r.msg.content;setTimeout((function(){o(!0),n.store.proxy.friends_pending[r.msg.author]&&(delete n.store.proxy.friends_pending[r.msg.author],e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},i,(function(e){e?console.error(e):(n.store.messenger&&n.store.messenger.onFriendAdded(i),n.updateMetadata(),n.store.modules.profile&&n.store.modules.profile.update(),l[r.msg.author]||t.sendMessage({type:"FRIEND_REQUEST_ACCEPTED",content:{user:i}},(function(e){l[r.msg.author]={type:t.type,hash:e}})))})))}),a(n))},i.FRIEND_REQUEST_ACCEPTED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=f[o];delete f[o],l[o]?r(!0,a):(l[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_ACCEPTED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;l[r]&&delete l[r]},i.CANCEL_FRIEND_REQUEST=function(e,n,t,r){var o=u[t.msg.author];o?r(!0,o):r(!0)},i.UNFRIEND=function(n,t,r,o){var a=r.msg.author,i=e.getFriend(n.store.proxy,a);i?(delete n.store.proxy.friends[a],delete n.store.proxy.friends_pending[a],n.store.messenger&&n.store.messenger.onFriendRemoved(a,i.channel),n.updateMetadata(),o(!0)):o(!0)},i.UPDATE_DATA=function(e,n,t,r){var o=t.msg,a=o.author,i=e.store.proxy.friends&&e.store.proxy.friends[a];i&&"object"==typeof o.content?(Object.keys(o.content).forEach((function(e){i[e]=o.content[e]})),e.store.messenger&&e.store.messenger.onFriendUpdate(a),e.updateMetadata(),r(!0)):r(!0)};var d=function(e,n){let t=e.store.data.blockHash,a=o.parseBlockHash(t).keys.symmetric;return r.encrypt(n,a)},h={};i.SHARE_PAD=function(e,t,r,o){var a=r.msg,i=r.hash,s=a.content;if(c(e,r))o(!0);else{var u,f=s.isStatic?s.href:n.hrefToHexChannelId(s.href,s.password),l=n.parsePadUrl(s.href),p=l.hashData&&l.hashData.mode||"n/a",v=h[f];if(v){if("edit"===v.mode&&"view"===p)return void o(!0);u=v.data}s.password&&(s.password=d(e,s.password)),h[f]={mode:p,data:{type:t.type,hash:i}},o(!1,u)}},s.SHARE_PAD=function(e,t,r,o){var a=r.content,i=n.hrefToHexChannelId(a.href,a.password),s=h[i];s&&s.data&&s.data.hash===o&&delete h[i]};var p=!1;i.SUPPORT_MESSAGE=function(e,n,t,r){p?r(!0):(p=!0,r())},s.SUPPORT_MESSAGE=function(){p=!1},i.REQUEST_PAD_ACCESS=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{var a=o.channel,i=e.store.manager.findChannel(a);if(i.length){var s,u,f=e.store.proxy.edPublic;i.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(f)&&e.data.href)return u=e.data.href,s=e.data.filename||e.data.title,!0}))?(o.title=s,o.href=u,r(!1)):r(!0)}else r(!0)}},i.GIVE_PAD_ACCESS=function(e,n,t,r){var o,a=t.msg.content,i=a.channel;e.store.manager.findChannel(i,!0).forEach((function(e){e.data&&!e.data.href&&(o||(o=e.data.filename||e.data.title),e.userObject.setHref(i,null,a.href))})),a.title=o||a.title,r(!1)},i.ADD_TO_ACCESS_LIST=function(e,n,t,r){var o=t.msg.content.channel;e.Store.getAllStores().forEach((function(n){var t=n.manager.findChannel(o);if(t.length){var r=t[0].data,a=t[0].id,i=n.id;e.Store.loadSharedFolder(i,a,r,(function(){}),!1)}})),r(!0)};var v={};i.ADD_OWNER=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{if(!(o.teamChannel||o.href&&o.title&&o.channel))return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;o.password&&(o.pw=o.password,o.password=d(e,o.password)),v[a]?r(!0):(v[a]={type:n.type,hash:t.hash},r(!1))}},s.ADD_OWNER=function(e,n,t){var r=t.content.channel||t.content.teamChannel;v[r]&&delete v[r]},i.RM_OWNER=function(e,n,t,r){var o=t.msg.content;if(!o.channel&&!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;if(o.teamChannel){var i=e.store.proxy.teams||{};Object.keys(i).some((function(e){if(i[e].channel===a)return i[e].owner=!1,!0}))}v[a]&&o.pending?r(!1,v[a]):r(!1)};var y={};i.INVITE_TO_TEAM=function(e,n,r,o){var a=r.msg.content;if(c(e,r))o(!0);else{if(!a.team)return console.log("Remove invalid notification"),void o(!0);var i=y[a.team.channel];if(i)return console.log("removing old invitation"),o(!1,i),void(y[a.team.channel]={type:n.type,hash:r.hash});var s=t.find(e,["store","proxy","teams"])||{};Object.keys(s).some((function(e){return s[e].channel===a.team.channel}))?o(!0):(y[a.team.channel]={type:n.type,hash:r.hash},o(!1))}},s.INVITE_TO_TEAM=function(e,n,r){var o=t.find(r,["content","team","channel"]);delete y[o]},i.KICKED_FROM_TEAM=function(e,n,t,r){var o=t.msg.content;if(!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);y[o.teamChannel]&&o.pending?r(!0,y[o.teamChannel]):r(!1)},i.INVITE_TO_TEAM_ANSWER=function(e,n,r,o){var a=r.msg,i=a.content;if(!i.teamChannel)return console.log("Remove invalid notification"),void o(!0);var s,c,u=t.find(e,["store","proxy","teams"])||{};if(Object.keys(u).some((function(e){var n=u[e];if(n.channel===i.teamChannel)return s=e,c=n,!0})),s){if(i.team=c,!i.answer)try{e.store.modules.team.removeFromTeam(s,a.author,!0)}catch(e){console.error(e)}var f=i.user||i;n.sendMessage({type:"INVITE_TO_TEAM_ANSWERED",content:{user:f,team:c,answer:i.answer}},(function(){})),o(!0)}else o(!0)},i.TEAM_EDIT_RIGHTS=function(e,n,r,o){var a=r.msg.content;if(!a.teamData)return console.log("Remove invalid notification"),void o(!0);var i,s=t.find(e,["store","proxy","teams"])||{};if(Object.keys(s).some((function(e){if(s[e].channel===a.teamData.channel)return i=e,!0})),i)try{e.store.modules.team.changeMyRights(i,a.state,a.teamData,(function(e){e||console.error("Can't update team rights"),o(!0)}))}catch(e){console.error(e)}else o(!0)},i.OWNED_PAD_REMOVED=function(e,n,t,r){var o=t.msg.content;if(!o.channel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel;e.store.manager.findChannel(a).forEach((function(n){var t=e.store.manager.findFile(n.id);e.store.manager.delete({paths:t},(function(){e.updateDrive()}))})),r(!0)},i.MOVE_TODO=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)},i.SAFE_LINKS_DEFAULT=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)};var m={};i.FORM_RESPONSE=function(e,n,t,r){var o,a,i=t.msg,s=t.hash,c=i.content,u=c.channel;if(u)if(function(e,n){return(e.store.proxy.mutedChannels||[]).includes(n)}(e,u))r(!0);else if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(u).some((function(e){if(e.data&&(!a||e.data.href))return a=e.data.href||e.data.roHref,o=e.data.filename||e.data.title,!!e.data.href||void 0}))})),a){c.href=a,c.title=o;var f=m[u],l=f?f.data:void 0;m[u]={data:{type:n.type,hash:s}},r(!1,l)}else r(!0);else r(!0)},s.FORM_RESPONSE=function(e,n,t,r){var o=t.content.channel,a=m[o];a&&a.data&&a.data.hash===r&&delete m[o]};var g={};i.COMMENT_REPLY=function(e,n,r,o){var a=r.msg,i=r.hash,s=a.content;if(t.find(e.store.proxy,["settings","pad","disableNotif"]))o(!0);else{var c,u,f=s.channel;if(f)if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(f).some((function(e){if(e.data&&(!u||e.data.href))return u=e.data.href||e.data.roHref,c=e.data.filename||e.data.title,!!e.data.href||void 0}))})),u){s.href=u,s.title=c;var l=g[f],d=l?l.data:void 0;g[f]={data:{type:n.type,hash:i}},o(!1,d)}else o(!0);else o(!0)}},s.COMMENT_REPLY=function(e,n,t,r){var o=t.content.channel,a=g[o];a&&a.data&&a.data.hash===r&&delete g[o]};var E,b,O={};i.MENTION=function(e,n,t,r){var o=t.msg,a=t.hash,i=o.content;if(c(e,t))r(!0);else{var s=i.channel;if(s){var u,f;e.Store.getAllStores().some((function(e){return e.manager.findChannel(s).some((function(e){if(e.data&&(!f||e.data.href))return f=e.data.href||e.data.roHref,u=e.data.filename||e.data.title,!!e.data.href||void 0}))})),i.href=f,i.title=u;var l=O[s],d=l?l.data:void 0;O[s]={data:{type:n.type,hash:a}},r(!1,d)}else r(!0)}},s.MENTION=function(e,n,t,r){var o=t.content.channel,a=O[o];a&&a.data&&a.data.hash===r&&delete O[o]},i.BROADCAST_MAINTENANCE=function(e,n,t,r){var o=t.msg.uid;e.Store.onMaintenanceUpdate(o),r(!0)},i.BROADCAST_SURVEY=function(e,n,t,r){var o=t.msg,a=o.content,i=o.uid,s=E;E={type:n.type,hash:t.hash},e.Store.onSurveyUpdate(i),r(!a.url,s)},i.BROADCAST_CUSTOM=function(e,n,t,r){var o=t.msg.uid,a=b;b={uid:o,type:n.type,hash:t.hash},r(!1,a)},i.BROADCAST_DELETE=function(e,n,t,r){var o=t.msg.content.uid;if(b&&b.uid===o)return r(!0,b),void(b=void 0);r(!0)};var A,w,D={};return i.SF_DELETED=function(e,n,t,r){var o=t.msg.content,a=o.team,i=o.sfId;if(D[i])r(!0);else if(D[i]=1,a){var s=e.store.proxy.teams[a];o.teamName=s.metadata&&s.metadata.name,r(!1)}else r(!1)},s.SF_DELETED=function(e,n,t){var r=t.content.sfId;delete D[r]},i.NEW_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);a.isAdmin&&i.addUserTicket(a,o),i.addAdminTicket(a,o)},i.NOTIF_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);if(a.isAdmin)return t.find(e,["store","proxy","support",a.channel])?(i.updateUserTicket(a),A?void o(!1,A):(A={channel:a.channel,type:n.type,hash:r.hash},void o(!1))):void o(!0);i.checkAdminTicket(a,(s=>{s?(i.updateAdminTicket(a),t.find(e.store.proxy,["settings","general","disableSupportNotif"])?o(!0):w?o(!1,w):(w={channel:a.channel,type:n.type,hash:r.hash},o(!1))):o(!0)}))},s.NOTIF_TICKET=function(e,n,t){var r=t.content.channel;A&&A.channel===r&&(A=void 0),w&&w.channel===r&&(w=void 0)},i.ADD_MODERATOR=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,o)},i.MODERATOR_NEW_KEY=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,(function(){o(!0)}))},{add:function(e,n,r,o){if(r.msg){var a=t.find(e,["store","proxy","curvePublic"]),s=t.find(r,["msg","content","user","curvePublic"])||t.find(r,["msg","content","curvePublic"]);if(s&&r.msg.author!==s&&r.msg.author!==a)return console.error("blocked"),void o(null,null,!0);var c=r.msg.type;if(i[c])try{i[c](e,n,r,o)}catch(e){console.error(e),o()}else o()}else o(null,null,!0)},remove:function(e,n,t,r){if(t){var o=t.type;if(s[o])try{s[o](e,n,t,r)}catch(e){console.error(e)}}}}})(wn(),te(),Z(),M(),hn()))}(jn)),jn.exports}function Un(){return Ln||(Ln=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c)=>{var u={setCustomize:n=>{e=n.Broadcast}},f=["notifications","supportteam","broadcast"],l=[],d="000000000000000000000000000000000",h=function(e,n,t,r,o){e.emit("MESSAGE",{type:n,content:t},r?[r]:e.clients,o)},p=function(e,n,t,r){e.emit("VIEWED",{type:n,hash:t},r||e.clients)},v=function(e){var n=e.store&&e.store.proxy;if(n.curvePrivate&&n.curvePublic)return{curvePrivate:n.curvePrivate,curvePublic:n.curvePublic}},y=u.sendTo=function(e,t,r,a,i){a=a||{};var s=i||function(e){e&&e.error&&console.error(e.error)};if(c.Mailbox){var u=n.find(e,["store","anon_rpc"]);if(u){var f={encrypt:function(e){return e}},l=d,h={uid:n.uid(),type:t,content:r};if(!/^BROADCAST/.test(t)){var p=v(e);if(!p)return void s({error:"missing asymmetric encryption keys"});if(!a||!a.channel||!a.curvePublic)return void s({error:"no notification channel"});if(l=a.channel,f=c.Mailbox.createEncryptor(p),"object"==typeof r&&!r.user){var y=o.createData(e.store.proxy,!1);r.user=y}h={type:t,content:r}}var m=JSON.stringify(h),g=f.encrypt(m,a.curvePublic);if(a.viewed){var E=n.find(e,["store","proxy","teams",a.viewed]);if(E){var b=g.slice(0,64),O=n.find(E,["keys","mailbox","viewed"]);Array.isArray(O)&&O.push(b)}}u.send("WRITE_PRIVATE_MESSAGE",[l,g],(function(e){s(e?{error:e}:{hash:g.slice(0,64)})}))}else s({error:"anonymous rpc session not ready"})}else s({error:"chainpad-crypto is outdated and doesn't support mailboxes."})};u.sendToAnon=function(e,t,r,o,a){var i=c.Nacl,s=i.randomBytes(32),u=i.box.keyPair.fromSecretKey(new Uint8Array(s)),f=n.encodeBase64(u.secretKey),l=n.encodeBase64(u.publicKey);y({store:{anon_rpc:e,proxy:{curvePrivate:f,curvePublic:l}}},t,r,o,a)};var m=function(e,t,o,a){var s=t.type,c=t.hash;if(/^REMINDER\|/.test(c)){a(),delete e.boxes.reminders.content[c],p(e,s,c,e.clients.filter((function(e){return e!==o})));var u=c.slice(9).split("-")[0],f=n.find(e,["store","proxy","hideReminders",u]);if(!f){var l=e.store.proxy.hideReminders=e.store.proxy.hideReminders||{};f=l[u]=l[u]||[]}var d=c.split("-")[1];d&&!f.includes(d)&&f.push(Number(d))}else{var h=e.boxes[s];if(h){var v,y,m=h.data||{},g=h.history.indexOf(c);-1!==g&&(0===g?(m.lastKnownHash=c,h.history.shift()):-1===m.viewed.indexOf(c)&&m.viewed.push(c));var E=[];h.history.some((function(e,n){if(-1===m.viewed.indexOf(e))return!0;v=n+1,E.push(e),y=e})),m.viewed=m.viewed.filter((function(e){return-1===E.indexOf(e)})),v&&(h.history=h.history.slice(v),m.lastKnownHash=y),Object.keys(h.content).forEach((function(n){-1!==h.history.indexOf(n)&&-1===m.viewed.indexOf(n)||(i.remove(e,h,h.content[n],n),delete h.content[n])})),r.whenRealtimeSyncs(e.store.realtime,(function(){a(),p(e,s,c,e.clients.filter((function(e){return e!==o})))}))}else a({error:"NOT_LOADED"})}},g=function(e,n,t,r,u){u=u||{};var f=e.boxes[n]={channel:t.channel,type:n,queue:[],history:[],content:{},sendMessage:function(n){if("object"==typeof n&&!n.user){var t=o.createData(e.store.proxy,!1);n.user=t}try{n=JSON.stringify(n)}catch(e){console.error(e)}f.queue.push(n)},data:t};if(c.Mailbox){var l=t.keys||v(e);if(l||t.decrypted){var d=t.decrypted?{encrypt:function(e){return e},decrypt:function(e){return e}}:c.Mailbox.createEncryptor(l);f.encryptor=d;var y,g={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:d,owners:"broadcast"===n?[]:u.owners||[e.store.proxy.edPublic],lastKnownHash:t.lastKnownHash};g.onConnectionChange=function(){},g.onConnect=function(t,r){f.sendMessage=function(t,o){var a;o=o||function(){};try{a=JSON.stringify(t)}catch(e){console.error(e)}r(a,(function(r,a){r?console.error(r):(f.history.push(a),t.ctime=+new Date,f.content[a]=t,h(e,n,{msg:t,hash:a}),o(a))}),l.curvePublic)},f.queue.forEach((function(e){f.sendMessage(e)})),f.queue=[]},f.onMessage=g.onMessage=function(r,o,s,c,l,d,p){if(l!==t.lastKnownHash&&l!==y){var v=p&&p.time;y=l;try{r=JSON.parse(r)}catch(e){console.error(e)}if(d&&(r.author=d),f.history.push(l),function(e,n){return-1===(n.viewed||[]).indexOf(e)&&e!==n.lastKnownHash}(l,t)){var g={msg:r,hash:l,time:v},E=f.ready;i.add(e,f,g,(function(t,o,i){o&&m(e,o,"",(function(){console.log("Notification handled automatically")})),i||t?m(e,{type:n,hash:l},"",(function(){console.log("Notification handled automatically")})):(r.ctime=v||0,f.content[l]=r,u.dump||h(e,n,g,null,(function(e){e&&e.msg&&E&&a.system(void 0,e.msg)})))}))}else if(0===Object.keys(f.content).length){t.lastKnownHash=l,f.history=[];var b=t.viewed.indexOf(l);-1!==b&&t.viewed.splice(b,1)}}},g.onReady=function(){var o=[];t.viewed.forEach((function(e,n){-1===f.history.indexOf(e)&&o.push(n)}));for(var a=o.length-1;a>=0;a--)t.viewed.splice(o[a],1);var s=function(t){i.remove(e,f,f.content[t],t),delete f.content[t],p(e,n,t)};e.store.proxy.on("change",["mailboxes",n],(function(e,n,t){var r;"lastKnownHash"===t[2]&&(f.history.some((function(e,t){if(r=t+1,s(e),e===n)return!0})),f.history=f.history.slice(r));"viewed"===t[2]&&s(n)})),f.ready=!0,r(f.content)},f.cpNf=s.start(g)}else console.error("missing asymmetric encryption keys")}else console.error("chainpad-crypto is outdated and doesn't support mailboxes.")};return u.init=function(r,o,s){var c={},u=r.store,v=u.proxy.mailboxes=u.proxy.mailboxes||{},E={Store:r.Store,store:u,pinPads:r.pinPads,updateMetadata:r.updateMetadata,updateDrive:r.updateDrive,mailboxes:v,emit:s,clients:[],boxes:{},req:{},loggedIn:u.loggedIn&&u.proxy.edPublic};return function(n,r){!r.notifications&&n.loggedIn&&(r.notifications={channel:t.createChannelId(),lastKnownHash:"",viewed:[]},n.pinPads([r.notifications.channel],(function(e){e.error&&console.error(e)}))),r.support&&delete r.support,r.broadcast||(r.broadcast={channel:d,lastKnownHash:e.lastBroadcastHash,decrypted:!0,viewed:[]})}(E,v),E.loggedIn&&function(e){var t=e.store.network;t.on("message",(function(r,o){if(o===t.historyKeeper){var a=JSON.parse(r);if(/HISTORY_RANGE/.test(a[0])){var i=a[1],s=e.req[i];if(s){var c=a[0],u=a[2],f=s.box;if("HISTORY_RANGE"===c){if(!Array.isArray(u))return;var l;if("broadcast"===s.box.type)l=n.tryParse(u[4]);else try{var d=f.encryptor.decrypt(u[4]);(l=JSON.parse(d.content)).author=d.author}catch(e){console.log(e)}var h=u[4].slice(0,64);e.emit("HISTORY",{txid:i,time:u[5],message:l,hash:h},[s.cId])}else"HISTORY_RANGE_END"===c&&(e.emit("HISTORY",{txid:i,complete:!0},[s.cId]),delete e.req[i])}}}}))}(E),E.boxes.reminders={content:{}},Object.keys(v).forEach((function(e){if(-1!==f.indexOf(e)){var n=v[e];-1===l.indexOf(e)?g(E,e,n,(function(){})):g(E,e,n,o((function(){})))}})),E.loggedIn&&Object.keys(u.proxy.teams||{}).forEach((function(e){var t=u.proxy.teams[e];if(t){var r=t.keys.mailbox||{};if(r.channel){var o={owners:[n.find(t,["keys","drive","edPublic"])]};g(E,"team-"+e,r,(function(){}),o)}}})),c.post=function(e,n,t){var r=E.boxes[e];r&&r.sendMessage({type:n,content:t,sender:u.proxy.curvePublic})},c.hideMessage=function(e,n){p(E,e,n.hash,E.clients)},c.showMessage=function(e,n,t,r){"reminders"===e&&n&&(E.boxes.reminders.content[n.hash]=n.msg,E.clients.length||(E.boxes.reminders.content[n.hash].requiresNotif=!0),p(E,e,n.hash,E.clients)),h(E,e,n,t,(function(e){a.system(void 0,e.msg),r&&r()}))},c.open=function(e,n,t,r,o){(-1!==f.indexOf(e)||r)&&g(E,e,n,t,o)},c.close=function(e,n){!function(e,n,t){t=t||function(){};var r=e.boxes[n];r?r.cpNf&&"function"==typeof r.cpNf.stop?(r.cpNf.stop(),Object.keys(r.content).forEach((function(t){i.remove(e,r,r.content[t],t),p(e,n,t,e.clients)})),delete e.boxes[n]):t("EINVAL"):t()}(E,e,n)},c.dismiss=function(e,n){m(E,e,"",n)},c.sendTo=function(e,n,t,r){E.loggedIn?y(E,e,n,t,r):r({error:"NOT_LOGGED_IN"})},c.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);e.clients.splice(t,1)}(E,e)},c.execCommand=function(e,n,t){var r=n.cmd,o=n.data;"SUBSCRIBE"!==r?"DISMISS"!==r?"SENDTO"!==r?"LOAD_HISTORY"!==r||function(e,n,t,r){var o=e.boxes[t.type];if(o){var a=["GET_HISTORY_RANGE",o.channel,{from:t.lastKnownHash,count:t.count,txid:t.txid}];"broadcast"===t.type&&(a=["GET_HISTORY_RANGE",o.channel,{to:t.lastKnownHash,txid:t.txid}]),e.req[t.txid]={cId:n,box:o};var i=e.store.network;i.sendto(i.historyKeeper,JSON.stringify(a)).then((function(){}),(function(e){console.error(e)}))}else r({error:"ENOENT"})}(E,e,o,t):y(E,o.type,o.msg,o.user,t):m(E,o,e,t):function(e,n,t,r){Object.keys(e.boxes).forEach((function(n){Object.keys(e.boxes[n].content).forEach((function(r){var o={msg:e.boxes[n].content[r],hash:r};h(e,n,o,t,(function(e){e.error||o.msg&&o.msg.requiresNotif&&(a.system(void 0,e.msg),delete o.msg.requiresNotif)}))}))})),-1===e.clients.indexOf(t)&&e.clients.push(t),r()}(E,0,e,t)},c},u};e.exports&&(e.exports=n(void 0,Z(),te(),je(),wn(),(Pn||(Pn=1,function(e){(()=>{const n=(e={})=>{let n=globalThis;var t={};e.requireConf=e.requireConf||{},t.setCustomize=n=>{e=n.ApiConfig};var r=n.location&&n.location.pathname.slice(1,-1),o=-1!==["code","slide","pad","kanban","whiteboard","diagram","sheet","poll","teams","form","doc","presentation"].indexOf(r)?"-"+r:"",a="/customize/favicon/main-favicon"+o+".png?"+e.requireConf.urlArgs,i="/customize/favicon/alt-favicon"+o+".png?"+e.requireConf.urlArgs,s="/customize/favicon/main-favicon"+o+".ico?"+e.requireConf.urlArgs,c="/customize/favicon/alt-favicon"+o+".ico?"+e.requireConf.urlArgs,u=n.document,f=t.isSupported=function(){return"function"==typeof n.Notification&&n.isSecureContext},l=t.hasPermission=function(){return"granted"===Notification.permission},d=t.getPermission=function(e){e=e||function(){},Notification&&"function"==typeof Notification.requestPermission?Notification.requestPermission((function(n){e("granted"===n)})):e(!1)},h=t.create=function(e,t,r){u&&!r?r=u.getElementById("favicon").getAttribute("data-main-favicon")||i:r||(r=i);var o=new Notification(t,{icon:r,body:e});return o.onclick=function(){if(u)try{parent.focus(),n.focus(),this.close()}catch(e){}},o};return t.system=function(e,n,t){if(f())return l()?h(e,n,t):void("denied"!==Notification.permission&&d((function(r){r&&h(e,n,t)})))},u&&!u.getElementById("favicon")&&function(){if(u){console.debug("creating favicon");var e={id:"favicon",type:"image/png",rel:"icon","data-main-favicon":a,"data-alt-favicon":i,href:a};if(!u.getElementById("favicon")){var n=u.createElement("link");Object.keys(e).forEach((function(t){n.setAttribute(t,e[t])})),u.head.appendChild(n)}if(!u.getElementById("favicon-ico")){var t=u.createElement("link");e.href=e.href.replace(/\.png/g,".ico"),e.id="favicon-ico",e.type="image/x-icon",Object.keys(e).forEach((function(n){t.setAttribute(n,e[n])})),u.head.appendChild(t)}}else console.error("document is not available in this context")}(),t.tab=function(e,r){if(u){var o="_pendingTabNotification",f=u.getElementById("favicon"),l=u.getElementById("favicon-ico"),d=a,h=i,p=s,v=c;f&&(d=f.getAttribute("data-main-favicon")||a,h=f.getAttribute("data-alt-favicon")||i,f.setAttribute("href",d)),l&&(p=l.getAttribute("data-main-favicon")||s,v=l.getAttribute("data-alt-favicon")||c,l.setAttribute("href",p));var y=function(e){return!!t[o]&&(n.clearInterval(t[o]),f&&f.setAttribute("href",e?h:d),l&&l.setAttribute("href",e?v:p),!0)};y();var m=function(){f&&f.setAttribute("href",f.getAttribute("href")===d?h:d),l&&l.setAttribute("href",l.getAttribute("href")===p?v:p),--r};return t[o]=n.setInterval((function(){if(r>0)return m();y(!0)}),e),m(),{cancel:y}}console.error("document is not available in this context")},t};e.exports&&(e.exports=n(void 0))})()}(Mn)),Mn.exports),Kn(),y(),M()))})()}(kn)),kn.exports}function Bn(){return Hn||(Hn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c,u)=>{let f=function(f,l,d,h){var p=f.version||0;c((function(){})).nThen((function(){var n,t,r,o,a;p<2&&(n="cryptpad.userlist-drawer",t="cryptpad.hide_poll_text",r="cryptpad.indentUnit",o="cryptpad.indentWithTabs",a=f.settings=f.settings||{},void 0!==f[r]&&(a.codemirror=a.codemirror||{},a.codemirror.indentUnit=f[r],delete f[r]),void 0!==f[o]&&(a.codemirror=a.codemirror||{},a.codemirror.indentWithTabs=f[o],delete f[o]),void 0!==f[n]&&(a.toolbar=a.toolbar||{},a.toolbar["userlist-drawer"]=f[n],delete f[n]),void 0!==f[t]&&(a.poll=a.poll||{},a.poll["hide-text"]=f[t],delete f[t]),e.send("Migrate-2",!0),f.version=p=2)})).nThen((function(){p<3&&(!function(){if(localStorage.CRYPTPAD_LANG){var e=localStorage.CRYPTPAD_LANG;f.settings.language=e}}(),e.send("Migrate-3",!0),f.version=p=3)})).nThen((function(){var n;p<4&&(n=f.settings=f.settings||{},void 0!==f.allowUserFeedback&&(n.general=n.general||{},n.general.allowUserFeedback=f.allowUserFeedback,delete f.allowUserFeedback),e.send("Migrate-4",!0),f.version=p=4)})).nThen((function(){p<5&&(!function(){var e=f.drive&&f.drive.filesData;if(e)for(var n in e)"number"!=typeof e[n].ctime&&(e[n].ctime=+new Date(e[n].ctime)),"number"!=typeof e[n].atime&&(e[n].atime=+new Date(e[n].atime))}(),e.send("Migrate-5",!0),f.version=p=5)})).nThen((function(t){var r,o,a,i,s;p<6&&(a=f.drive.filesData||{},i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if(r=a[e],o=n.parsePadUrl(r.href),r.href&&!r.channel){var i=n.getSecrets(o.type,o.hash,r.password);r.channel=i.channel,d(6,Math.round(100*t/s)),console.log("Adding missing channel in filesData ",r.channel)}})))}))})),i.nThen(t((function(){e.send("Migrate-6",!0),f.version=p=6}))))})).nThen((function(t){var r,o,a,i,s;p<7&&(a=f.drive.filesData,i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if((r=a[e]).href)if(-1!==r.href.indexOf("#"))if("pad"===(o=n.parsePadUrl(r.href)).hashData.type){if("view"===o.hashData.mode)r.roHref=r.href,delete r.href,console.log("Move href to roHref in filesData ",r.roHref);else{var i=n.getSecrets(o.type,o.hash,r.password),c=n.getViewHashFromKeys(i);c&&(r.roHref="/"+o.type+"/#"+c,console.log("Adding missing roHref in filesData ",r.href))}d(6,Math.round(100*t/s))}else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s))})))}))})),i.nThen(t((function(){e.send("Migrate-7",!0),f.version=p=7}))))})).nThen((function(){p<8&&(f.FS_hashes=t.deduplicateString(f.FS_hashes||[]),e.send("Migrate-8",!0),f.version=p=8)})).nThen((function(){p<9&&(!function(){var e=h.network,n={},t={store:h},o=r.createData(f),i=function(e){var t=n[e];if(t){try{t.wc.leave()}catch(e){}delete n[e]}};e.on("message",(function(r,s){try{!function(r,s){if(s===e.historyKeeper){var c=JSON.parse(r);if(!c.validateKey&&!c.owners||!c.channel){if(c.channel&&n[c.channel]){if(c.error&&"EINVAL"===c.error){var u=["GET_HISTORY",c.channel,{}];return void e.sendto(e.historyKeeper,JSON.stringify(u)).then((function(){}),(function(){}))}if(c.state&&1===c.state){o.channel=c.channel;var f=["UPDATE",o.curvePublic,+new Date,o],l=n[c.channel].encrypt(JSON.stringify(f));return n[c.channel].wc.bcast(l).then((function(){}),(function(e){console.error("Can't migrate this friend",n[c.channel].friend,e)})),void i(c.channel)}}else if(c.channel)return;var d=c[3];if(d&&n[d]){var h=n[d],p=h.decrypt(c[4]),v=JSON.parse(p);if("UPDATE"===v[0]){if(v[1]===o.curvePublic)return;var y=v[3];if(!y.notifications)return;h.friend.notifications=y.notifications,o.channel=d,a.sendTo(t,"UPDATE_DATA",o,{channel:y.notifications,curvePublic:y.curvePublic},(function(e){e&&e.error?console.error(e):console.log("friend migrated",h.friend)})),i(d)}}}}}(r,s)}catch(e){console.error(e)}}));var s=f.friends||{};Object.keys(s).forEach((function(t){if(44===t.length){var r=s[t];r.notifications||e.join(r.channel).then((function(t){var o=u.Curve.deriveKeys(r.curvePublic,f.curvePrivate),a=u.Curve.createEncryptor(o);n[r.channel]={wc:t,friend:r,decrypt:a.decrypt,encrypt:a.encrypt};var i={lastKnownHash:r.lastKnownHash},s=["GET_HISTORY",r.channel,i];e.sendto(e.historyKeeper,JSON.stringify(s)).then((function(){}),(function(e){console.error("Can't migrate this friend",r,e)}))}),(function(e){console.error("Can't migrate this friend",r,e)}))}}))}(),e.send("Migrate-9",!0),f.version=p=9)})).nThen((function(t){p<10&&function(){var s=h.proxy.todo;if(s){var u,l=t((function(){e.send("Migrate-10",!0),f.version=p=10})),d={network:h.network,initialState:"{}",metadata:{owners:h.proxy.edPublic?[h.proxy.edPublic]:[]}};c((function(e){o.get(s,e((function(n,t){if(n||!t)return e.abort(),void l();try{u=JSON.parse(t)}catch(e){}})),d)})).nThen((function(e){if(!u||"object"!=typeof u)return e.abort(),void l();var t={content:{data:{1:{id:"1",color:"color6",item:[],title:i.kanban_todo},2:{id:"2",color:"color3",item:[],title:i.kanban_working},3:{id:"3",color:"color5",item:[],title:i.kanban_done}},items:{},list:[1,2,3]},metadata:{title:i.type.todo,defaultTitle:i.type.todo,type:"kanban"}},c=4,p=!1;if((u.order||[]).forEach((function(e){var n=u.data[e];if(n&&n.task){p=!0;var r=n.state?"3":"1";t.content.data[r].item.push(c),t.content.items[c]={id:c,title:n.task},c++}})),!p)return e.abort(),void l();var v=n.createRandomHash("kanban"),y=n.getSecrets("kanban",v),m=n.getSecrets("todo",s);o.put(v,JSON.stringify(t),e((function(t){if(t)return e.abort(),void l();h.rpc&&(h.rpc.pin([y.channel],(function(){})),h.rpc.unpin([m.channel],(function(){})));var o=n.hashToHref(v,"kanban");h.manager.addPad(["root"],{title:i.type.todo,owners:d.metadata.owners,channel:y.channel,href:o,roHref:n.hashToHref(n.getViewHashFromKeys(y),"kanban"),atime:+new Date,ctime:+new Date},e((function(e){if(e)console.error(e);else{delete h.proxy.todo;var n=r.createData(f),t={store:h};a.sendTo(t,"MOVE_TODO",{user:n,href:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)}))}})))})),d)})).nThen((function(){l()}))}}()})).nThen((function(n){if(!(p>=11)){var o=function(){e.send("Migrate-11",!0),f.version=p=11};if(void 0===t.find(f,["settings","security","unsafeLinks"])){var i={store:h},s=r.createData(f);s.curvePublic?a.sendTo(i,"SAFE_LINKS_DEFAULT",{user:s},{channel:s.notifications,curvePublic:s.curvePublic},n((function(e){e&&e.error?console.error(e):o()}))):o()}else o()}})).nThen((function(){s.whenRealtimeSyncs(h.realtime,t.mkAsync(t.bake(l)))}))};return f.setCustomize=e=>{i=e.Messages},f};e.exports&&(e.exports=n(Ae(),te(),Z(),wn(),Rn(),Un(),void 0,je(),qe(),M()))})()}(On)),On.exports}var Vn,Yn={exports:{}};function Gn(){return Vn||(Vn=1,function(e){var n,t,r;e.exports&&(e.exports=(n=Rn(),t=Ue(),te(),r=je(),{anonDriveIntoUser:function(e,o,a){o&&e.loggedIn||"function"!=typeof a?n.get(o,(function(n,i){var s;if(n)console.error("Cannot migrate recent pads",n);else if(i){try{s=JSON.parse(i)}catch(e){return"function"==typeof a&&a(),void console.error("Cannot parsed recent pads",e)}if(s){var c=e.proxy,u=t.init(s.drive,{readOnly:!1,loggedIn:!0,outer:!0}),f=function(){u.fixFiles(!0);var n=e.manager;u.getFiles([u.FILES_DATA]).forEach((function(e){var t=u.getFileData(e),r=t.channel,o=n.findChannel(r);if(0===o.length)t&&n.addPad(null,t,(function(e){e&&console.error("Cannot import file:",t,e)}));else{if(!t.href)return;o.forEach((function(e){e.data&&!e.data.href&&e.userObject.setHref(r,null,t.href)}))}})),c.FS_hashes&&Array.isArray(c.FS_hashes)||(c.FS_hashes=[]),-1===c.FS_hashes.indexOf(o)&&c.FS_hashes.push(o),"function"==typeof a&&r.whenRealtimeSyncs(e.realtime,a)};u&&"function"==typeof u.migrate?u.migrate(f):(console.log("oldFo.migrate is not a function"),f())}else"function"==typeof a&&a()}else"function"==typeof a&&a()})):a()}}))}(Yn)),Yn.exports}var Jn=o(be);const qn=ie.mkEvent(!0),Wn=ie.mkEvent(!0),zn=ie.mkEvent(),Qn=ie.mkEvent(),Zn={init:e=>{var n;const{broadcast:t,store:r,account:o}=e,a=r.drive=r.drive||{};let i=null===(n=r.proxy)||void 0===n?void 0:n.drive;if((null==i?void 0:i.hash)||ae.createRandomHash("drive"),!i.hash)return a.proxy=i,o.onAccountCacheReady((()=>{qn.fire()})),o.onAccountReady((()=>{Wn.fire()})),{channel:"",onDriveCacheReady:qn.reg,onDriveReady:Wn.reg,onDisconnect:zn.reg,onReconnect:Qn.reg};throw new Error("NOT IMPLEMENTED")}};var Xn,$n=o(Object.freeze({__proto__:null,Drive:Zn})),et={exports:{}};function nt(){return Xn||(Xn=1,function(e){(()=>{const n=(e,n,t={},r={},o)=>{var a={setCustomize:e=>{t=e.Messages,r=e.AppConfig}},i=r.degradedLimit||8,s=function(e,n){n.degraded||n.clients.forEach((function(t){var r=e.clients[t];if(r){var o={id:r.id,cursor:r.cursor};n.sendMsg(JSON.stringify(o))}}))},c=function(e,n,t){var r=n.members;t.degraded=r.length-1>=i,e.emit("DEGRADED",{degraded:t.degraded},t.clients)},u=function(e,n,t,r){var a=n.channel,i=n.secret;i.keys.cryptKey&&(i.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=(e={},n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:n=>{e=n.ApiConfig}},d=s.Nacl,h=function(e,n,t,r){let o=Object.keys(e.clients).filter((t=>Boolean(e.clients[t].admin)===n));o.length&&e.emit(t,{channel:r},[o])},p=function(t,r,o,a){var i=n.mkAsync(a);if(r&&!t.adminRdyEvt)return void i("EFORBIDDEN");let s=e.httpUnsafeOrigin;n.fetchApi(s,"config",!0,(e=>{t.moderatorKeys=e.moderatorKeys,t.adminKeys=e.adminKeys;var a=e.supportMailboxKey;if(a){if(!r||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePublic"])===a)return r?t.adminRdyEvt.reg((()=>{i(null,{supportKey:a,myCurve:o.adminCurvePrivate||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePrivate"]),theirPublic:o.curvePublic,notifKey:o.curvePublic})})):void i(null,{supportKey:a,myCurve:t.store.proxy.curvePrivate,theirPublic:o.curvePublic||a,notifKey:a});i("EFORBIDDEN")}else i("E_NOT_INIT")}))},v=function(e,t,r,o){var a,c,u=n.once(n.mkAsync(o));i((n=>{p(e,r,t,n(((e,t)=>{if(e)return n.abort(),void u({error:e});a=t.theirPublic,c=t.myCurve})))})).nThen((()=>{var r,o=s.Curve.deriveKeys(a,c),i=s.Curve.createEncryptor(o),l={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:i,owners:[]},d=[];u=n.both((function(){r&&"function"==typeof r.stop&&r.stop()}),u),l.onMessage=function(e,n,t,r,o,a,i){var s=i&&i.time;try{e=JSON.parse(e)}catch(e){return void console.error(e)}e.time=s,a&&(e.author=a),d.push(e)},l.onError=u,l.onChannelError=u,l.onReady=function(){u(null,d)},r=f.start(l)}))},y=function(e,r,o,a){var c=n.find(e,["store","mailbox"]),u=n.find(e,["store","anon_rpc"]);if(c)if(u){var f,l,d,h=r.channel,v=r.title,y=r.ticket,m=+new Date;i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a({error:e});f=t.supportKey,l=t.theirPublic,d=t.myCurve})))})).nThen((e=>{var n=s.Curve.deriveKeys(l,d),t=s.Curve.createEncryptor(n),r=JSON.stringify(y),o=t.encrypt(r);u.send("WRITE_PRIVATE_MESSAGE",[h,o],e(((n,t)=>{if(n)return e.abort(),void a({error:n});m=t&&t[0]})))})).nThen((n=>{if(o){var t=e.adminDoc.proxy.tickets.active;if(t[h])return n.abort(),void a({error:"EEXISTS"});t[h]={title:y.title,restored:y.legacy,premium:!1,time:m,author:r.name,supportKey:f,lastAdmin:!0,authorKey:r.curvePublic,notifications:r.notifications}}})).nThen((n=>{o||(e.supportData[h]={time:+new Date,title:v,curvePublic:f},e.Store.onSync(null,n()))})).nThen((()=>{var i=o?r.notifications:t.getChannelIdFromKey(f);c.sendTo("NEW_TICKET",{title:v,channel:h,time:m,isAdmin:o,supportKey:f,premium:o?"":n.find(e,["store","account","plan"]),user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(n=>{console.error(n),n&&n.error&&delete e.supportData[h],a(n)})),c.sendTo("NOTIF_TICKET",{title:v,channel:h,time:m,isAdmin:o,isNewTicket:!0,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(()=>{}))}))}else a({error:"anonymous rpc session not ready"});else a({error:"E_NOT_READY"})},m=function(e,r,o,a){var c,u,f,l,d=n.find(e,["store","mailbox"]),h=n.find(e,["store","anon_rpc"]);d?h?r?.ticket?i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a(e);c=t.theirPublic,u=t.myCurve,f=t.notifKey})))})).nThen((e=>{var n=s.Curve.deriveKeys(c,u),t=s.Curve.createEncryptor(n),o=JSON.stringify(r.ticket),i=t.encrypt(o);h.send("WRITE_PRIVATE_MESSAGE",[r.channel,i],e(((n,t)=>{if(n)return e.abort(),void a(n);l=t&&t[0],a(void 0,l)})))})).nThen((()=>{var e=o?r.notifChannel:t.getChannelIdFromKey(f);e&&d.sendTo("NOTIF_TICKET",{isAdmin:o,title:r.ticket.title,isClose:r.ticket.close,channel:r.channel,time:l,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:e,curvePublic:f},(()=>{}))})):a("E_NO_DATA"):a("anonymous rpc session not ready"):a("E_NOT_READY")},g=function(e,r,o){var a=t.getSecrets("support",r),i={data:{},channel:a.channel,crypto:s.createEncryptor(a.keys),userName:"support",ChainPad:u,classic:!0,network:e.store.network,metadata:{validateKey:a.keys.validateKey||void 0}},f=e.adminDoc=c.create(i);f.proxy.on("ready",(function(){var r=f.proxy;if(r.tickets=r.tickets||{},r.tickets.active=r.tickets.active||{},r.tickets.closed=r.tickets.closed||{},r.tickets.pending=r.tickets.pending||{},e.adminRdyEvt.fire(),o(),!e.supportRpc)return;let a=function(e){if(!e.adminDoc||!e.supportRpc)return;let t=e.adminDoc.metadata&&e.adminDoc.metadata.channel,r=e.adminDoc.proxy.tickets,o=[t,...Object.keys(r.active),...Object.keys(r.pending),...Object.keys(r.closed)];return n.deduplicateString(o).sort()}(e),i=t.hashChannelList(a);e.supportRpc.getServerHash((function(n,t){n?console.warn(n):t!==i&&e.supportRpc.reset(a,(function(e){e&&console.warn(e)}))}))})),f.proxy.on("change",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")})),f.proxy.on("remove",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")}))},E=function(e,r,a){let s=a(),c=e.store.proxy,u=n.find(c,["mailboxes","supportteam","keys","curvePublic"]),f=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]);r||(e.adminRdyEvt=n.mkEvent(!0)),i((n=>{p(e,!1,{},n(((t,r)=>{if(setTimeout(s),t)n.abort();else if(r.theirPublic!==u){try{delete c.mailboxes.supportteam,e.store.mailbox.close("supportteam")}catch(e){}return delete e.adminRdyEvt,void n.abort()}})))})).nThen((t=>{!function(e,t){let r,a,i=n.mkAsync(t),s=e.store.proxy,c=n.find(s,["mailboxes","supportteam","keys","curvePrivate"]);if(c){try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(c));r=n.encodeBase64(e.secretKey),a=n.encodeBase64(e.publicKey)}catch(e){return void i(e)}o.create(e.store.network,{edPublic:a,edPrivate:r},((n,t)=>{n?i(n):(console.log("Support RPC ready, public key is ",a),e.supportRpc=t,i())}))}else i("EFORBIDDEN")}(e,t((e=>{e&&console.error("Support RPC not ready",e)})))})).nThen((n=>{let r=f.slice(0,24),o=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:r}});g(e,o,n())})).nThen((()=>{console.log("Support admin loaded")}))};var b=function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);i?e.store.mailbox.open("supportadmin",i,(function(t){e.store.mailbox.close("supportadmin",(function(){}));let r=n.clone(t||{}),a=[];Object.keys(r).forEach((n=>{let t=r[n];if("CLOSE"===t.type)return void(a.includes(t.content.id)||a.push(t.content.id));let o=t.author,i=t.content&&t.content.title;((e,n,t)=>{let r=e.adminDoc.proxy;return["active","pending","closed"].some((e=>{let o=r.tickets[e];return Object.keys(o).some((e=>{let r=o[e];return r.authorKey===n&&r.title===t&&r.restored}))}))})(e,o,i)&&(a.includes(t.content.id)||a.push(t.content.id))})),Object.keys(r).forEach((e=>{let n=r[e];n.content&&a.includes(n.content.id)&&delete r[e]})),o(r)}),!0,{dump:!0}):o({error:"ENOENT"})};let O=(e,t,r,o)=>{let a;try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(r));a=n.encodeBase64(e.publicKey)}catch(e){return void o(e)}e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",[t,a]]},o)},A=(e,n,t,r)=>{e.Store.adminRpc(null,{cmd:"GET_MODERATORS",data:{}},r)};return l.init=function(o,s,c){var u={};if(o.store&&o.store.modules&&o.store.modules.support)return o.store.modules.support;var f=o.store,l=f.proxy.support=f.proxy.support||{},g={moderatorKeys:e.moderatorKeys,adminKeys:e.adminKeys,supportData:l,store:o.store,Store:o.Store,emit:c,clients:{}};return n.find(f,["proxy","mailboxes","supportteam"])&&E(g,!1,s),u.ctx=g,u.removeClient=function(e){delete g.clients[e]},u.leavePad=function(){},u.addAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let o;i((r=>{p(e,!0,n,r(((e,n)=>{if(e)return r.abort(),void t(!0);o=n.supportKey})))})).nThen((()=>{var a=Math.floor(2e3*Math.random());setTimeout((()=>{var a=e.adminDoc.proxy;a.tickets.active[n.channel]||a.tickets.closed[n.channel]||a.tickets.pending[n.channel]?t(!0):(a.tickets.active[n.channel]={title:n.title,premium:n.premium,time:n.time,author:n.user&&n.user.displayName,supportKey:n.supportKey||o,authorKey:n.user&&n.user.curvePublic},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){t(!0)})),h(e,!0,"NEW_TICKET",n.channel),e.supportRpc&&e.supportRpc.pin([n.channel],(()=>{})))}),a)}))})):t(!0)}(g,e,n)},u.updateAdminTicket=function(e){!function(e,n){e.adminRdyEvt&&e.adminRdyEvt.reg((()=>{var t=Math.floor(2e3*Math.random());setTimeout((()=>{var t=e.adminDoc.proxy;let r=t.tickets.active[n.channel]||t.tickets.pending[n.channel];r&&(n.time<=r.time||(n.isClose&&(t.tickets.closed[n.channel]=r,delete t.tickets.active[n.channel],delete t.tickets.pending[n.channel]),r.time=n.time,r.lastAdmin=!1,h(e,!0,"UPDATE_TICKET",n.channel)))}),t)}))}(g,e)},u.updateAdminKey=function(e,r){((e,r,o)=>{let a=r.supportKey,s=t.getBoxPublicFromSecret(a),c=e.store.proxy;const u=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]),f=n.find(c,["mailboxes","supportteam","keys","curvePublic"]);p(e,!1,{},((t,r)=>{if(t)return void o(!0);if(s!==r.theirPublic)return void o(!0);if(u===a||f===s)return void o(!0);let c=n.find(e,["store","mailbox"]);try{e.adminDoc&&e.adminDoc.stop(),c&&c.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)}catch(e){console.error(e)}e.Store.addAdminMailbox(null,{version:2,priv:a},(n=>{n&&n.error?o(!0):i((n=>{E(e,!0,n),e.adminRdyEvt.reg((()=>{h(e,!0,"UPDATE_RIGHTS"),o(!1)}))}))}))}))})(g,e,r)},u.checkAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy,o=r.tickets.active[n.channel]||r.tickets.pending[n.channel];t(o)})):t(!0)}(g,e,n)},u.addUserTicket=function(e,n){!function(e,n,t){if(!e.supportData)return void t(!0);let r=n.channel;e.supportData[r]={time:n.time,title:n.title,curvePublic:n.supportKey},e.Store.onSync(null,(function(){t(!0)}))}(g,e,n)},u.updateUserTicket=function(e){!function(e,n){if(h(e,!1,"UPDATE_TICKET",n.channel),n.isClose){let t=e.supportData[n.channel];if(!t)return;t.closed=!0}}(g,e)},u.execCommand=function(e,o,s){var c=o.cmd,u=o.data;"MAKE_TICKET"!==c?"GET_MY_TICKETS"!==c?"REPLY_TICKET"!==c?"CLOSE_TICKET"!==c?"DELETE_TICKET"!==c?"MAKE_TICKET_ADMIN"!==c?"LIST_TICKETS_ADMIN"!==c?"LOAD_TICKET_ADMIN"!==c?"REPLY_TICKET_ADMIN"!==c?"CLOSE_TICKET_ADMIN"!==c?"MOVE_TICKET_ADMIN"!==c?"GET_RECORDED"!==c?"SET_RECORDED"!==c?"USE_RECORDED"!==c?"SEARCH_ADMIN"!==c?"FILTER_TAGS_ADMIN"!==c?"SET_TAGS_ADMIN"!==c?"GET_LEGACY"!==c?"DUMP_LEGACY"!==c?"CLEAR_LEGACY"!==c?"RESTORE_LEGACY"!==c?"GET_PRIVATE_KEY"!==c?"DISABLE_SUPPORT"!==c?"ROTATE_KEYS"!==c?"ADD_MODERATOR"!==c?s({error:"NOT_SUPPORTED"}):function(e,t,r,o){let a=e.store.proxy;var i=n.find(e,["store","mailbox"]);let s=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),c=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]),u=n.find(a,["mailboxes","supportteam","lastKnownHash"]),f=a.edPublic;p(e,!1,{},((n,r)=>{n?o({error:n}):r.theirPublic===s&&e.moderatorKeys.includes(f)?i.sendTo("ADD_MODERATOR",{supportKey:c,lastKnownHash:u},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{o()})):o({error:"EFORBIDDEN"})}))}(g,u,0,s):function(e,r,o,s){let c,u=n.once(n.mkAsync(s)),f=e.store.proxy,l=f.edPublic;const h=d.box.keyPair(),v=n.encodeBase64(h.publicKey),y=n.encodeBase64(h.secretKey),m=n.find(f,["mailboxes","supportteam","keys","curvePrivate"]),g=n.find(f,["mailboxes","supportteam","keys","curvePublic"]);if(!y||!v)return void u({error:"INVALID_KEY"});let b;i((n=>{p(e,!1,{},n(((e,t)=>{if("E_NOT_INIT"!==e)return e?(u({error:e}),void n.abort()):void(c=t.theirPublic)})))})).nThen((n=>{if(!e.adminKeys.includes(l))return n.abort(),void u({error:"EFORBIDDEN"})})).nThen((n=>{if(c)return e.moderatorKeys.includes(l)?g!==c?(n.abort(),void u({error:"EFORBIDDEN"})):void 0:(n.abort(),void u({error:"EINVAL"}))})).nThen((n=>{c&&e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;b=e.adminDoc.metadata&&e.adminDoc.metadata.channel;let o=y.slice(0,24),i=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:o}}),s={network:e.store.network,initialState:"{}"};(r.oldKeys=r.oldKeys||{})[g]={curvePrivate:m,rotatedOn:+new Date,rotatedBy:l},a.put(i,JSON.stringify(r),n((e=>{if(e)return n.abort(),void u({error:e})})),s)}))})).nThen((n=>{O(e,v,y,n((e=>{if(e&&e.error)return n.abort(),void u(e)})))})).nThen((()=>{if(!c)return;e.adminDoc&&e.adminDoc.stop();let t=n.find(e,["store","mailbox"]);t&&t.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)})).nThen((n=>{e.Store.addAdminMailbox(null,{version:2,priv:y},n((t=>{if(t&&t.error)return n.abort(),c?O(e,g,m,(()=>{u(t)})):void u(t)})))})).nThen((t=>{if(!c)return;let r=n.find(e,["store","mailbox"]);A(e,0,0,t((e=>{if(e&&e.error)return void u({success:!0,noNotify:!0});let n=e&&e[0];Object.keys(n||{}).forEach((e=>{let t=n[e];r.sendTo("MODERATOR_NEW_KEY",{supportKey:y},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{}))}))})))})).nThen((n=>{E(e,!0,n)})).nThen((n=>{b&&e.Store.adminRpc(null,{cmd:"ARCHIVE_DOCUMENT",data:{id:b,reason:"Deprecated support pad"}},n())})).nThen((()=>{u({success:!0})}))}(g,0,0,s):function(e,t,r,o){let a,s=n.once(n.mkAsync(o)),c=e.store.proxy.edPublic;i((n=>{p(e,!1,{},n((e=>{if(e)return s({error:e}),void n.abort()})))})).nThen((n=>{if(!e.adminKeys.includes(c))return n.abort(),void s({error:"EFORBIDDEN"})})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ARCHIVE_SUPPORT",data:{}},n((e=>{if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",["",""]]},n((function(e){if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{A(e,0,0,n((e=>{if(!e||e.error)return n.abort(),void s();a=e[0]||{}})))})).nThen((()=>{let n=i;Object.keys(a).forEach((t=>{n=n((n=>{e.Store.adminRpc(null,{cmd:"REMOVE_MODERATOR",data:t},n((e=>{e&&e.error&&console.error("Error removing moderator data",t,e.error)})))})).nThen})),n((()=>{s()}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),s=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]);p(e,!1,{},((e,n)=>{e?o({error:e}):(i&&n.theirPublic!==i&&(s=void 0),o({curvePrivate:s,curvePublic:n.theirPublic}))}))}(g,0,0,s):function(e,r,o,a){let i=e.store.proxy,s=n.find(i,["mailboxes","supportadmin"]);if(!s)return void a({error:"ENOENT"});if(!e.adminRdyEvt)return void a({error:"EFORBIDDEN"});let c=r.messages,u=r.hashes,f=c[0],l=c[c.length-1];f?e.adminRdyEvt.reg((()=>{let r={name:n.find(f,["sender","name"]),notifications:n.find(f,["sender","notifications"]),curvePublic:n.find(f,["sender","curvePublic"]),channel:t.createChannelId(),title:f.title,time:l.time,ticket:{legacy:!0,title:f.title,sender:f.sender,messages:c}};y(e,r,!0,(n=>{n&&n.error?a(n):(u.forEach((e=>{s.viewed.push(e)})),e.Store.onSync(null,(function(){a({done:!0})})))}))})):a({error:"EINVAL"})}(g,u,0,s):function(e,n,t,r){let o=e.store.proxy;e.store.mailbox.close("supportadmin",(function(){delete o.mailboxes.supportadmin,e.Store.onSync(null,(function(){r({done:!0})}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);if(!i)return void o({error:"ENOENT"});let s=n.clone(i);s.lastKnownHash=void 0,s.viewed=[],e.store.mailbox.open("supportadmin",s,(function(n){e.store.mailbox.close("supportadmin",(function(){})),o(n)}),!0,{dump:!0})}(g,0,0,s):b(g,0,0,s):((e,n,t,o)=>{e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,a=n.channel;(t.active[a]||t.pending[a]||t.closed[a]).tags=n.tags||[],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){let e=[];["active","pending","closed"].forEach((n=>{let r=t[n];Object.keys(r).forEach((n=>{(r[n].tags||[]).forEach((n=>{e.includes(n)||e.push(n)}))}))})),o({done:!0,allTags:e})}))})):o({error:"EFORBIDDEN"})})(g,u,0,s):((e,n,t,r)=>{if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.tags||[];e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy.tickets;if(!o.length)return void r({all:!0});let t=[];["active","pending","closed"].forEach((e=>{let r=n[e];Object.keys(r).forEach((e=>{(r[e].tags||[]).some((e=>o.includes(e)))||t.push(e)}))})),r({tickets:t})}))})(g,u,0,s):((e,t,r,o)=>{if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=t.tags||[],i=(t.text||"").toLowerCase();e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,r={},s=(e,t,o)=>{let a=n.clone(t);a.category=o,r[e]=a};["active","pending","closed"].some((e=>{let o=t[e];return Object.keys(o).some((t=>{let c=o[t];if(a.length&&!(c.tags||[]).some((e=>a.includes(e))))return;let u=n.hexToBase64(t).slice(0,10);if(i===u)return r={},s(t,c,e),!0;(!i||c.title.toLowerCase().includes(i))&&s(t,c,e)}))})),o({tickets:r})}))})(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.id;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=(n.recorded=n.recorded||{})[o];t&&(t.count=(t.count||0)+1),r()}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.id,i=n.content,s=Boolean(n.remove);e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.recorded=n.recorded||{};s?delete t[a]:t[a]={content:i,count:0},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({done:!0})}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy,r=t.recorded=t.recorded||{};o({messages:n.clone(r)})})):o({error:"EFORBIDDEN"})}(g,0,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.channel,i=n.from,s=n.to;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.tickets[i],c=n.tickets[s];if(!i||!s)return void o({error:"EINVAL"});let u=t[a];u&&!c[a]?(c[a]=u,delete t[a],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({moved:!0})}))):o({error:"CANT_MOVE"})}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[a]&&(n.adminCurvePrivate=t.oldKeys[a].curvePrivate),m(e,n,!0,(t=>{if(t)o({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=+new Date,i.lastAdmin=!0,a.tickets.closed[n.channel]=i,delete a.tickets.active[n.channel],delete a.tickets.pending[n.channel],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({closed:!0})}))}}))}))}(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[o]&&(n.adminCurvePrivate=t.oldKeys[o].curvePrivate),m(e,n,!0,((t,o)=>{if(t)r({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=o,i.lastAdmin=!0,r({sent:!0})}}))}))}(g,u,0,s):function(e,t,r,o){let a=t.supportKey;e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;r.oldKeys&&r.oldKeys[a]&&(t.adminCurvePrivate=r.oldKeys[a].curvePrivate),v(e,t,!0,(function(r,a){if(r)return void o({error:r});var i=e.adminDoc.proxy;if(!Array.isArray(a)||!a.length)return void o(a);a.sort(((e,n)=>e.time-n.time));let s=a[a.length-1],c=a.some((e=>{let r=n.find(e,["sender","curvePublic"]);if(t.curvePublic===r)return n.find(e,["sender","quota","plan"])}));var u=i.tickets.active[t.channel];u&&(s.legacy&&(s=Array.isArray(s.messages)&&s.messages[s.messages.length-1]),u.time=s.time,u.premium=c,s.sender&&(u.lastAdmin=!s.sender.blockLocation),s.close&&(i.tickets.closed[t.channel]=u,delete i.tickets.active[t.channel],h(e,!0,"UPDATE_TICKET",t.channel))),o(a)}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?(e.clients[r]||(e.clients[r]={admin:!0}),e.adminRdyEvt.reg((()=>{var r=e.adminDoc.proxy;return"pending"===t.type?o(n.clone(r.tickets.pending)):"closed"===t.type?o(n.clone(r.tickets.closed)):void o(n.clone(r.tickets.active))}))):o({error:"EFORBIDDEN"})}(g,u,e,s):function(e,n,t,r){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{y(e,n,!0,r)})):r({error:"EFORBIDDEN"})}(g,u,0,s):function(e,n,t,r){let o=e.supportData,a=n.channel;o[a]&&o[a].closed?(delete o[a],r({deleted:!0})):r({error:"ENOTCLOSED"})}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{closed:!0})}))}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{sent:!0})}))}(g,u,0,s):function(e,t,r,o){var a=[],s=i;e.clients[r]||(e.clients[r]={admin:!1}),Object.keys(e.supportData).forEach((function(t){s=s((r=>{var o=n.clone(e.supportData[t]);v(e,{channel:t,curvePublic:o.curvePublic},!1,r(((n,r)=>{if(n){if("EDELETED"===n.type)return void delete e.supportData[t];o.error=n}else o.messages=r,r.length&&r[r.length-1].close&&(e.supportData[t].closed=!0,o.closed=!0);o.id=t,a.push(o)})))})).nThen})),s((()=>{a.sort(((e,n)=>e.closed&&n.closed?e.time-n.time:e.closed?1:n.closed?-1:e.time-n.time)),o({tickets:a})}))}(g,0,e,s):function(e,n,t,r){y(e,n,!1,r)}(g,u,0,s)},u},l};e.exports&&(e.exports=n(void 0,Z(),te(),je(),Cn(),Rn(),qe(),M(),g(),w(),y()))})()}(rt)),rt.exports}var at,it={exports:{}};function st(){return at||(at=1,function(e){(()=>{const n=e=>{var n={},t=function(n,t,r,o){var a=t.channel,i=t.secret;i.keys.cryptKey&&(i.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=()=>{var e={},n=function(e,n,t){var r=e.clients[n];if(r){var o=e.channels[r.channel];o?(t(),o.history.forEach((function(t){e.emit("MESSAGE",{msg:t,validateKey:o.validateKey},[n])})),e.emit("HISTORY_SYNCED",{},[n])):t({error:"ENOCHAN"})}else t({error:"ENOENT"})};return e.init=function(e,t){var r={},o={store:e,emit:t,channels:{},clients:{}};return r.removeClient=function(e){!function(e,n){var t,r=function(e){return e!==n};for(var o in e.channels)(t=e.channels[o]).clients=t.clients.filter(r),0===t.clients.length&&(t.wc&&t.wc.leave(),delete e.channels[o]);if(e.clients[n]){var a=e.clients[n].channel,i=e.channels[a];i&&e.emit("LEAVE",{id:n},[i.clients[0]]),delete e.clients[n]}}(o,e)},r.leavePad=function(e){!function(e,n){Object.keys(e.channels).some((function(t){var r=e.channels[t];if(r.padChan===n)return r.wc&&r.wc.leave(),delete e.channels[t],!0}))}(o,e)},r.execCommand=function(e,t,r){var a=t.cmd,i=t.data;"SEND_MESSAGE"!==a?"UPDATE_HASH"!==a?"OPEN_CHANNEL"!==a?"GET_HISTORY"!==a?"REENCRYPT"!==a||function(e,n,t,r){var o=n.channel,a=e.store.network,i=function(e){var t=a.historyKeeper,o={metadata:n.metadata},i=["GET_HISTORY",e.id,o];a.sendto(t,JSON.stringify(i)),n.msgs.forEach((function(n){e.bcast(n)})),e.leave(),r()};e.store.anon_rpc.send("IS_NEW_CHANNEL",o,(function(e,n){var t;e?r({error:e}):(n&&n.length&&"object"==typeof n[0]?t=n[0].isNew:r({error:"INVALID_RESPONSE"}),t?a.join(o).then(i,(function(e){r({error:e})})):r({error:"EEXISTS"}))}))}(o,i,0,r):n(o,e,r):function(e,t,r,o){var a=t.channel,i=t.padChan,s=e.store.network,c=!0,u=e.clients[r];if(u)o();else{u=e.clients[r]={channel:a};var f=e.channels[a];if(f)return u.id||(u.id=f.wc.myID+"-"+r),n(e,r,(function(){e.emit("READY",f.clients,[r])})),f.clients.push(r),void o();var l=Math.floor(1e6*Math.random()),d=function(n){e.channels[a]=e.channels[a]||{history:[],validateKey:t.validateKey},(f=e.channels[a]).padChan=i,u.id||(u.id=n.myID+"-"+r),f.clients&&f.clients.forEach((function(t){e.clients[t]&&(e.clients[t].id=n.myID+"-"+t)})),n.on("join",(function(){})),n.on("leave",(function(){})),n.on("message",(function(n){f.history.push(n),e.emit("MESSAGE",{msg:n,validateKey:f.validateKey},f.clients)})),f.wc=n,f.sendMsg=function(e,t){t=t||function(){};var r=e.slice(0,64);n.bcast(e).then((function(){f.history.push(e),f.lastKnownHash=r,t()}),(function(e){t({error:e})}))},c&&(f.clients=[r],f.lastCpHash=t.lastCpHash,c=!1,o());var d=s.historyKeeper,h={txid:l,lastKnownHash:f.lastKnownHash||f.lastCpHash,metadata:{validateKey:t.validateKey,owners:t.owners,expire:t.expire}},p=["GET_HISTORY",n.id,h];d&&s.sendto(d,JSON.stringify(p)).then((function(){}),(function(e){console.error(e)}))};s.on("message",(function(n,t){if(e.channels[a]&&t===s.historyKeeper){var r;try{r=JSON.parse(n)}catch(e){}if(r&&!(r.txid&&r.txid!==l||r.channel&&r.channel!==a))if(r.validateKey&&r.channel)f.validateKey||(f.validateKey=r.validateKey);else if(r.state&&1===r.state&&r.channel)e.emit("READY",f.clients,f.clients);else if(!(r.error&&r.channel||Array.isArray(r)&&r[0]&&r[0]!==l||(n=r[4],r[3]!==a))){var o=n.slice(0,64);o!==f.lastKnownHash&&o!==f.lastCpHash&&(f.lastKnownHash=o,e.emit("MESSAGE",{msg:n},f.clients),f.history.push(n))}}})),s.join(a).then(d,(function(e){o({error:e})})),s.on("reconnect",(function(){e.channels[a]&&s.join(a).then(d,(function(e){console.error(e)}))}))}}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=n,s=-1;a.history.some((function(e,n){if(e.slice(0,64)===i)return s=n+1,!0})),-1!==s&&(a.history=a.history.slice(s)),r()}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=function(o){o&&o.error?r(o):(e.emit("MESSAGE",{msg:n.msg},a.clients.filter((function(e){return e!==t}))),r())};n.isCp?a.sendMsg(n.isCp,i):a.sendMsg(n.msg,i)}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r)},r},e};e.exports&&(e.exports=n())})()}(ut)),ut.exports}var lt,dt={exports:{}};function ht(){return lt||(lt=1,function(e){(()=>{const n=(e,n,t,r,o,a,i)=>{var s={};return s.init=function(s,c,u){var f={},l=s.store;if(l.loggedIn&&l.proxy.edPublic){var d={Store:s.Store,store:l,pinPads:s.pinPads,updateMetadata:s.updateMetadata,emit:u,onReadyHandlers:[],clients:[]};return d.profile=l.proxy.profile=l.proxy.profile||{},function(e,t){var r=e.profile;if(r.edit&&r.view)setTimeout(t);else{var o=n.createRandomHash("profile"),a=n.getSecrets("profile",o);e.pinPads([a.channel],(function(e){e.error?t(e.error):(r.edit=n.getEditHashFromKeys(a),r.view=n.getViewHashFromKeys(a),setTimeout(t))}))}}(d,c((function(r){r||function(r){var s=r.profile,c=n.getSecrets("profile",s.edit),u=a.createEncryptor(c.keys),f={data:{},network:r.store.network,channel:c.channel,crypto:u,owners:[r.store.proxy.edPublic],ChainPad:i,validateKey:c.keys.validateKey||void 0,userName:"profile",classic:!0},l=o.create(f);l.proxy.on("create",(function(){})).on("ready",(function(){l.proxy.name=r.store.proxy[t.displayNameKey]||"",r.listmap=l,l.proxy.curvePublic||(l.proxy.curvePublic=r.store.proxy.curvePublic),l.proxy.notifications||(l.proxy.notifications=e.find(r.store.proxy,["mailboxes","notifications","channel"])),l.proxy.edPublic||(l.proxy.edPublic=r.store.proxy.edPublic),r.onReadyHandlers.length&&(r.onReadyHandlers.forEach((function(e){try{e(l.proxy)}catch(e){console.error(e)}})),r.onReadyHandlers=[])})).on("change",[],(function(){r.emit("UPDATE",l.proxy,r.clients)}))}(d)}))),f.setName=function(e){!function(e,n){e.listmap.proxy.name=n,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.listmap&&e.emit("UPDATE",e.listmap.proxy,e.clients)}))}(d,e)},f.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1)}(d,e)},f.update=function(){d.listmap&&d.emit("UPDATE",d.listmap.proxy,d.clients)},f.execCommand=function(e,n,t){console.log(n);var o=n.cmd,a=n.data;"SUBSCRIBE"!==o?"SET"!==o||function(e,n,t,o){var a=n.key,i=n.value;a&&(e.listmap.proxy[a]=i,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.emit("UPDATE",e.listmap.proxy,e.clients.filter((function(e){return e!==t}))),"badge"===a&&e.Store.set(null,{key:["profile","badge"],value:i||void 0},(()=>{})),o(e.listmap.proxy)})))}(d,a,e,t):function(e,n,t,r){-1===e.clients.indexOf(t)&&e.clients.push(t),e.listmap?r(e.listmap.proxy):e.onReadyHandlers.push((function(e){r(e)}))}(d,0,e,t)},f}},s};e.exports&&(e.exports=n(Z(),te(),Y(),je(),g(),M(),w()))})()}(dt)),dt.exports}var pt,vt={exports:{}},yt={exports:{}};function mt(){return pt||(pt=1,function(e){e.exports&&(e.exports=function(e,n,t,r,o,a){var i={},s=function(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))},c=function(e){return e.slice(0,64)},u=function(n,t){var r=e.find(t,[n,"role"]);return-1!==["OWNER","ADMIN"].indexOf(r)},f=function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&!!function(e){return-1!==["OWNER","ADMIN","MEMBER","VIEWER"].indexOf(e)}(t)&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))},l=function(e){return"string"==typeof e&&44===e.length},d=i.commands={};d.ADD=function(e,n,t){if(!s(e))throw new Error("INVALID ARGS");if(!t.internal.initialized)throw new Error("UNITIALIZED");if(void 0===t.state.members)throw new Error("CANNOT_ADD_TO_UNITIALIZED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ALREADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="MEMBER"),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if("string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.RM=function(n,t,r){if(!Array.isArray(n))throw new Error("INVALID_ARGS");if(void 0===r.state.members)throw new Error("CANNOT_RM_FROM_UNITIALIZED_ROSTER");var o=r.state.members;n.forEach((function(n){if(!l(n))throw new Error("INVALID_CURVE_KEY");if(n!==t){var r=o[n].role;if(!function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))}(t,r,o))throw new Error("INSUFFICIENT_PERMISSIONS")}}));var a=!1;return n.forEach((function(e){o[e]&&(a=!0,delete o[e])})),a},d.DESCRIBE=function(n,t,o){if(!n||"object"!=typeof n||Array.isArray(n))throw new Error("INVALID_ARGUMENTS");if(void 0===o.state.members)throw new Error("NOT_READY");var a=o.state.members;Object.keys(n).forEach((function(r){if(!l(r))throw new Error("INVALID_ID");if(!a[r])throw new Error("NOT_PRESENT");if(!function(n,t,r){if(!r[t])return!1;if(n===t&&r[t])return!0;var o=e.find(r,[n,"role"]),a=e.find(r,[t,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&"OWNER"!==a)}(t,r,a))throw new Error("INSUFFICIENT_PERMISSIONS");var o=n[r];if(!s(o))throw new Error("INVALID_ARGUMENTS");var i=e.clone(a[r]);if("string"==typeof o.role&&!function(n,t,r,o){return!(n!==t||!o[t])&&("MEMBER"===e.find(o,[n,"role"])?"VIEWER"===r:void 0)}(t,r,o.role,a)&&!f(t,o.role,a))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof i.displayName&&"string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.displayName))throw new Error("INVALID_DISPLAYNAME");if("string"!=typeof i.notifications&&"string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.notifications))throw new Error("INVALID_NOTIFICATIONS")}));var i=!1;return Object.keys(n).forEach((function(t){var o=e.clone(a[t]),s=n[t];Object.keys(s).forEach((function(e){void 0===o[e]||null!==s[e]?o[e]=s[e]:delete o[e]})),r(o)!==r(a[t])&&(i=!0,a[t]=o)})),i},d.CHECKPOINT=function(e,n,t){if(!s(e))throw new Error("INVALID_CHECKPOINT_STATE");if(!t.internal.initialized){t.state=e;var o=t.state.metadata=t.state.metadata||{};return o.topic=o.topic||"",o.name=o.name||"",o.avatar=o.avatar||"",t.internal.initialized=!0,!0}if(r(e)!==r(t.state))throw new Error("CHECKPOINT_DOES_NOT_MATCH_PREVIOUS_STATE");if(!u(n,t.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");return t.state=e,!0};var h=["avatar","name","topic"];d.METADATA=function(n,t,r){if(!s(n))throw new Error("INVALID_ARGS");if(!function(n,t){var r=e.find(t,[n,"role"]);return Boolean(r&&-1!==["OWNER","ADMIN"].indexOf(r))}(t,r.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");Object.keys(n).forEach((function(e){if(null===n[e]){if(-1===h.indexOf(e))return;throw new Error("CANNOT_REMOVE_MANDATORY_METADATA")}if("string"!=typeof n[e])throw new Error("INVALID_ARGUMENTS")}));var o=!1;return Object.keys(n).forEach((function(e){void 0!==r.state.metadata[e]&&null===n[e]&&(o=!0,delete r.state.metadata[e]),n[e]!==r.state.metadata[e]&&(o=!0,r.state.metadata[e]=n[e])})),o},d.INVITE=function(e,n,t){if(!s(e))throw new Error("INVALID_ARGS");if(!t.internal.initialized)throw new Error("UNINITIALIED");if(void 0===t.state.members)throw new Error("CANNOT+INVITE_TO_UNINITIALIED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ARLEADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="VIEWER"),void 0===o.pending&&(o.pending=!0),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName||!o.displayName)throw new Error("DISPLAYNAME_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.ACCEPT=function(n,t,r){if(!r.internal.initialized)throw new Error("UNINITIALIED");if(void 0===r.state.members)throw new Error("CANNOT_ADD_TO_UNINITIALIED_ROSTER");var o=r.state.members;if(!s(o[t]))throw new Error("INSUFFICIENT_PERMISSIONS");if(!o[t].pending)throw new Error("ALREADY_PRESENT");if("string"!=typeof n)throw new Error("INVALID_ARGS");if(!l(n))throw new Error("INVALID_CURVE_KEY");var a=n;if(void 0!==o[a])throw new Error("MEMBER_ALREADY_PRESENT");var i=e.clone(o[t]);delete i.remaining,delete i.totalUses,delete i.inviteChannel,delete i.previewChannel,o[a]=i;var c=o[t].remaining||1;return-1===c||(c>1?o[t].remaining=c-1:delete o[t]),!0};var p=function(e,n,t){if(!Array.isArray(e)||"string"!=typeof n)throw new Error("INVALID ARGUMENTS");var r=e[0];if("function"!=typeof d[r])throw new Error("INVALID_COMMAND");return d[r](e[1],n,t)},v=function(n,t,r){return p(n,t,e.clone(r))};return i.create=function(n,i){if("function"!=typeof i)throw new Error("EXPECTED_CALLBACK");var f=e.once(e.mkAsync(i));if(n.network)if(n.channel&&"string"==typeof n.channel&&32===n.channel.length)if(n.keys&&"object"==typeof n.keys)if(n.store){var d=e.response((function(e,n){console.error("ROSTER_RESPONSE__"+e,n)})),h=n.store,y=n.keys,m=y.myCurvePublic,g=n.channel,E=n.lastKnownHash||-1;n.newTeam&&(E=void 0);var b={state:{members:{},metadata:{}},internal:{initialized:!1,sinceLastCheckpoint:0,lastCheckpointHash:E}},O={},A={change:e.mkEvent(),checkpoint:e.mkEvent()};O.on=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].reg(n),O},O.off=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].unreg(n),O},O.once=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");var t=function(){n.apply(null,Array.prototype.slice.call(arguments)),A[e].unreg(t)};return A[e].reg(t),O},O.getState=function(){return e.clone(b.state)},O.getLastCheckpointHash=function(){return b.internal.lastCheckpointHash||-1};var w=function(){b.internal.pendingCheckpointId&&(d.clear(b.internal.pendingCheckpointId),delete b.internal.pendingCheckpointId),clearTimeout(b.internal.checkpointTimeout),delete b.internal.checkpointTimeout};O.stop=function(){b.internal.cpNetflux&&"function"==typeof b.internal.cpNetflux.stop?(b.internal.cpNetflux.stop(),w()):console.log("FAILED TO LEAVE")};var D,_,T,S=!1,x=function(){if(n.onCacheReady){var e=b.state;if(Object.keys(e.members||{}).length)n.onCacheReady(O);else{try{b.internal.cpNetflux.resetCache()}catch(e){console.error(e)}n.onCacheReady({error:"CORRUPTED"})}}},N=function(){S=!0,f(void 0,O)},I=function(e){e&&"EUNKNOWN"===e.type||(S?console.error("CHANNEL_ERROR",e):f(e))},C=function(e){e.state||(S=!1)},R=function(){console.log("ROSTER CONNECTED")},P=function(){return Boolean(S&&m)},k=function(n,t,r,o,a,i){D!==a&&b.internal.sinceLastCheckpoint++,D=a;var s=e.tryParse(n);if(s){var f,l;try{f=p(s,i,b)}catch(e){l=e.message}var h=c(a);if(d.expected(h)){if(l)return void d.handle(h,[l]);try{f?d.handle(h,[void 0,O.getState()]):(d.handle(h,["NO_CHANGE"]),console.log(n))}catch(e){console.log("CAUGHT",e)}}if("CHECKPOINT"===s[0]&&f?(P()&&A.checkpoint.fire(a),b.internal.sinceLastCheckpoint=0,b.internal.lastCheckpointHash=a):f&&P()&&A.change.fire(),w(),P()&&function(e,n){if(!u(e,n.state.members))return!1;var t=n.internal.sinceLastCheckpoint;return!(!t||"number"!=typeof t||t<25)}(m,b)){var v=1e3*Math.floor(20*Math.random())+5e3;b.internal.checkpointTimeout=setTimeout((function(){b.internal.pendingCheckpointId=O.checkpoint((function(e){e&&console.error(e)}))}),v)}}else console.error("could not parse")},M=function(n,t){var r=e.tryParse(n);return"CHECKPOINT"===r[0]&&v(r,t,b)},F=function(e,n){if(P()){var t=h.anon_rpc;if(t){var o=!1;try{o=v(e,y.myCurvePublic,b)}catch(e){return void n(e.message)}if(o){var a=T.encrypt(r(e)),i=c(a);return d.expect(i,(function(e,t){e?n(e):n(void 0,t,i)}),3e4),t.send("WRITE_PRIVATE_MESSAGE",[g,a],(function(e){if(e)return d.handle(i,[e.message||e])})),i}n("NO_CHANGE")}else n("ANON_RPC_NOT_READY")}else n("NOT_READY")};O.init=function(n,t){var r=e.once(e.mkAsync(t));if(b.internal.initialized)r("ALREADY_INITIALIZED");else if(s(n)){var o=e.clone(n);o.role="OWNER";var a={};a[m]=o,F(["CHECKPOINT",{members:a}],r)}else r("INVALID_ARGUMENTS")},O.checkpoint=function(n){var t=e.once(e.mkAsync(n));F(["CHECKPOINT",e.clone(b.state)],t)},O.add=function(n,t){var r=e.once(e.mkAsync(t));if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["ADD",o],r)}else r("INVALID_ARGUMENTS")},O.remove=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(Array.isArray(n)){var a=e.clone(n),i=[],s=Object.keys(o.members);a.forEach((function(e){-1!==s.indexOf(e)&&i.push(e)})),F(["RM",i],r)}else r("INVALID_ARGUMENTS")},O.describe=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(s(n)){var a=e.clone(n);Object.keys(a).some((function(e){var n=a[e];if(s(n)||delete a[e],!s(o.members[e]))return!0;Object.keys(n).forEach((function(t){n[t]===o.members[e][t]&&delete n[t]}))}))?r("INVALID_ARGUMENTS"):F(["DESCRIBE",a],r)}else r("INVALID_ARGUMENTS")},O.metadata=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state.metadata;if(s(n)){var a=e.clone(n);Object.keys(a).forEach((function(e){a[e]===o[e]&&delete a[e]})),F(["METADATA",a],r)}else r("INVALID_ARGUMENTS")},O.invite=function(n,t){var r=e.once(e.mkAsync(t));if(!b.state)return r("UNINITIALIZED");if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["INVITE",o],r)}else r("INVALID_ARGUMENTS")},O.accept=function(n,t){var r=e.once(e.mkAsync(t));"string"==typeof n&&l(n)?F(["ACCEPT",n],r):r("INVALID_ARGUMENTS")},o((function(e){h.anon_rpc&&h.anon_rpc.send("GET_METADATA",g,(function(n,t){if(n)return e.abort(),void console.error(n);_=b.internal.metadata=t&&t[0]||void 0}))})).nThen((function(e){if(!n.keys.teamEdPublic&&_&&_.validateKey&&(n.keys.teamEdPublic=_.validateKey),!n.keys.teamEdPublic)return e.abort(),void f("NO_VALIDATE_KEY");try{T=a.Team.createEncryptor(n.keys)}catch(n){return e.abort(),void f(n)}})).nThen((function(){"string"==typeof E&&console.log("Synchronizing from checkpoint"),b.internal.cpNetflux=t.start({lastKnownHash:E,network:n.network,channel:n.channel,crypto:T,validateKey:n.keys.teamEdPublic,owners:n.owners,Cache:n.Cache,isCacheCheckpoint:M,onCacheReady:x,onChannelError:I,onReady:N,onConnect:R,onConnectionChange:C,onMessage:k,noChainPad:!0})}))}else f("EXPECTED_STORE");else f("EXPECTED_CRYPTO_KEYS");else f("EXPECTED_CHANNEL");else f("EXPECTED_NETWORK")},i}(Z(),te(),y(),En(),qe(),M()))}(yt)),yt.exports}var gt,Et,bt={exports:{}};function Ot(){return Et||(Et=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E)=>{var b={};E=E||"undefined"!=typeof window&&window.nacl;var O=e.mkEvent(!0),A=function(){},w=function(e,t,r,o){t&&(o||(r.on("change",["drive",a.SHARED_FOLDERS],(function(o,s,c){if(c.length>3&&"password"===c[3]){var u=c[2],f=r.drive[a.SHARED_FOLDERS][u],l=t.manager.user.userObject.getHref?t.manager.user.userObject.getHref(f):f.href,d=n.parsePadUrl(l),h=n.getSecrets(d.type,d.hash,o);return setTimeout((function(){i.updatePassword(e.Store,{oldChannel:h.channel,password:s,href:l},e.store.network,(function(){console.log("Shared folder password changed")}))})),!1}})),r.on("disconnect",(function(){t.offline=!0,t.sendEvent("NETWORK_DISCONNECT",t.id)})),r.on("reconnect",(function(){t.offline=!1,t.sendEvent("NETWORK_RECONNECT",t.id)}))),r.on("change",[],(function(n,r,i){if(o){if(i[0]===a.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var s=[r.channel];r.rtChannel&&s.push(r.rtChannel),r.lastVersion&&s.push(r.lastVersion),t.pin(s,(function(e){e&&e.error&&console.error(e.error)}))}if(i[0]===a.FILES_DATA&&"object"==typeof n&&n.channel&&!r){var c=[n.channel];t.manager.findChannel(n.channel).some((function(e){return e.fId!==o}))||(n.rtChannel&&c.push(n.rtChannel),n.lastVersion&&c.push(n.lastVersion),t.unpin(c,(function(e){e&&e.error&&console.error(e)})))}}n&&!r&&Array.isArray(i)&&(i[0]===a.FILES_DATA||"drive"===i[0]&&i[1]===a.FILES_DATA)&&setTimeout((function(){e.Store.checkDeletedPad(n&&n.channel)})),t.sendEvent("DRIVE_CHANGE",{id:o,old:n,new:r,path:i})})),r.on("remove",[],(function(e,n){t.sendEvent("DRIVE_REMOVE",{id:o,old:e,path:n})})))},D=function(e,n){var t=e.teams[n];if(t){try{t.listmap.stop()}catch(e){}try{t.roster.stop()}catch(e){}t.proxy={},t.stopped=!0,delete e.teams[n],delete e.cache[n],delete e.store.proxy.teams[n],e.emit("LEAVE_TEAM",n,t.clients),e.updateMetadata(),e.store.calendar&&e.store.calendar.closeTeam(n),e.store.mailbox&&e.store.mailbox.close("team-"+n,(function(){}))}},_=function(e,n,t,r){n.rpc?r():t.edPrivate&&t.edPublic?h.create(e.store.network,t,(function(e,t){e?r(e):(n.rpc=t,n&&n.onRpcReadyEvt&&n.onRpcReadyEvt.fire(),r())}),d):r("EFORBIDDEN")},T=function(t,r,a,s,c,u,f){var l=e.once(e.mkAsync(f));if(t.cache[r])l();else{var d=a.proxy,h={id:r,proxy:d,listmap:a,clients:[],realtime:a.realtime,handleSharedFolder:function(e,n){!function(e,n,t,r){var o=e.teams[n];o&&(r?(o.sharedFolders[t]=r,w(e,o,r.proxy,t)):delete o.sharedFolders[t])}(t,r,e,n)},sharedFolders:{},roster:s,onRpcReadyEvt:e.mkEvent(!0),offline:!0};t.cache[r]=h,u&&h.clients.push(u),s.on("change",(function(){var n=s.getState(),o=e.find(t,["store","proxy","curvePublic"]);if(n.members&&Object.keys(n.members).length)if(n.members[o]){var a=e.find(t,["store","proxy","teams",r]);a&&(a.metadata=n.metadata),t.updateMetadata(),t.emit("ROSTER_CHANGE",r,h.clients)}else D(t,r);else console.error(JSON.stringify(n))})),s.on("checkpoint",(function(n){e.find(t,["store","proxy","teams",r,"keys","roster"]).lastKnownHash=n})),h.sendEvent=function(e,n,r){t.emit(e,n,h.clients.filter((function(e){return e!==r})))},h.getChatData=function(){var e=c.chat||{},t=e.edit||e.view;if(!t)return{};var o=n.getSecrets("chat",t);return{teamId:r,channel:o.channel,secret:o,validateKey:e.validateKey}},h.pin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.pin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})},h.unpin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.unpin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})};var p=t.store.proxy.teams[h.id],v=p.hash||p.roHash,y=n.getSecrets("team",v,p.password),m=h.manager=o.create(d.drive,{onSync:function(e){t.Store.onSync(r,e)},edPublic:c.drive.edPublic,pin:h.pin,unpin:h.unpin,loadSharedFolder:function(e,n,r,o){i.load({isNew:o,network:t.store.network||t.store.networkPromise,store:h,isNewChannel:t.Store.isNewChannel,Store:t.Store},e,n,r)},settings:{drive:e.find(t.store,["proxy","settings","drive"])},removeOwnedChannel:function(e,n){var o;"object"==typeof e?(e.teamId=r,o=e):o={channel:e,teamId:r},t.Store.removeOwnedChannel("",o,n)},Store:t.Store,store:t.store},{teamId:h.id,outer:!0,edPublic:c.drive.edPublic,loggedIn:!0,log:function(e){h.sendEvent("DRIVE_LOG",e)},rt:h.realtime,editKey:y.keys.secondaryKey,readOnly:Boolean(!y.keys.secondaryKey)});h.secondaryKey=y&&y.keys.secondaryKey,h.userObject=m.user.userObject,g((function(e){t.teams[r]=h,w(t,h,d);var n=t.store.network||t.store.networkPromise;i.loadSharedFolders(t.Store,n,h,h.proxy.drive,h.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}),!0)})).nThen((function(){t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),l()}))}},S=function(t,r,o,a,s,c,u){var f,l=a.getState(),d=e.find(t,["store","proxy","teams",r]);d&&(d.metadata=l.metadata),delete t.nocache[r],t.store.proxy.teams[r]&&g((function(e){T(t,r,o,a,s,c,e()),f=t.teams[r]||t.cache[r],s.drive.edPrivate&&_(t,f,s.drive,e((function(){})))})).nThen((function(e){f.userObject.fixFiles(),i.checkMigration(f.secondaryKey,f.proxy?.drive,f.userObject,e()),i.loadSharedFolders(t.Store,t.store.network,f,f.proxy?.drive,f.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}))})).nThen((function(){if(f.rpc){var o=function(n,t){var r=n.teams[t];if(!r)return null;var o=r.manager.getChannelsList("pin"),a=n.store.proxy.teams[t];o.push(`${a.channel}#drive`);var i=e.find(a,["keys","chat","channel"]),s=e.find(a,["keys","roster","channel"]),c=e.find(a,["keys","mailbox","channel"]);if(i&&o.push(i),s&&o.push(s),c&&o.push(c),r.proxy.calendars){var u=Object.keys(r.proxy.calendars).map((function(e){return r.proxy.calendars[e].channel}));o=o.concat(u)}var f=r.roster.getState();return f.members&&Object.keys(f.members).forEach((function(e){var n=f.members[e];n.inviteChannel&&n.pending&&o.push(n.inviteChannel),n.previewChannel&&n.pending&&o.push(n.previewChannel)})),o.sort(),o}(t,r),a=n.hashChannelList(o);f.rpc.getServerHash((function(e,n){e?console.warn(e):n!==a&&f.rpc.reset(o,(function(e){e&&console.warn(e)}))}))}})).nThen((function(){f.offline=!1,t.onReadyHandlers[r]&&t.onReadyHandlers[r].forEach((function(e){("function"==typeof e.cb&&e.cb(),e.cId)&&(-1===f.clients.indexOf(e.cId)&&f.clients.push(e.cId))})),delete t.onReadyHandlers[r],t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),u()}))},x=function(e,n,t,r,o,a){var i=function(){(e.cache[n]||e.teams[n])&&D(e,n),delete e.store.proxy.teams[n],delete e.onReadyHandlers[n],o.abort(),a({error:"ENOENT"})};t&&e.store.anon_rpc.send("IS_NEW_CHANNEL",t,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()}))),r&&e.store.anon_rpc.send("IS_NEW_CHANNEL",r,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()})))},N=function(t,r,o,a,i){var f=e.once(e.mkAsync(a)),l=r.hash||r.roHash,h=n.getSecrets("team",l,r.password),y=v.createEncryptor(h.keys);r.roHash||(r.roHash=n.getViewHashFromKeys(h));var E,b,A=r.keys;if(!A.chat.validateKey&&A.chat.edit){var w=n.getSecrets("chat",A.chat.edit);A.chat.validateKey=w.keys.validateKey}var _={curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate},N=A.roster||{},I=N.edit?v.Team.deriveMemberKeys(N.edit,_):v.Team.deriveGuestKeys(N.view||"");g((function(e){if(i)return d.getChannelCache(h.channel,e((function(n,t){t&&t.c||(e.abort(),f({error:"NOCACHE"}))}))),void d.getChannelCache(I.channel,e((function(n,t){var r=t&&t.c,o=t&&t.k;o&&!I.teamEdPublic&&(I.teamEdPublic=o),r||(e.abort(),f({error:"NOCACHE"}))})));t.Store.onReadyEvt.reg((()=>{x(t,o,h.channel,I.channel,e,f)}))})).nThen((function(n){var a={lm:!1,roster:!1,check:function(){this.lm&&this.roster&&i&&(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress}),T(t,o,b,E,A,null,n(f)),this.check=function(){})}},u={data:{},readOnly:!Boolean(h.keys.signKey),network:t.store.network||t.store.networkPromise,channel:h.channel,crypto:y,ChainPad:m,Cache:d,metadata:{validateKey:h.keys.validateKey||void 0},userName:"team",classic:!0,onMetadataUpdate:function(){var e=t.teams[o];e&&t.emit("ROSTER_CHANGE",o,e.clients)}};(b=p.create(u)).proxy.on("cacheready",(function(){a.lm=!0,a.check()})),b.proxy.on("ready",n()),b.proxy.on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,o)})),s.create({network:t.store.network||t.store.networkPromise,channel:I.channel,keys:I,store:t.store,lastKnownHash:N.lastKnownHash,onCacheReady:function(e){if(i){if(e&&"CORRUPTED"===e.error)return console.error("Corrupted roster cache, cant load this team offline",r),b&&"function"==typeof b.stop&&b.stop(),n.abort(),void f({error:"CACHE_CORRUPTED_ROSTER"});E=e,a.roster=!0,a.check()}},Cache:d},n((function(r,o){if(r)return n.abort(),console.error(r),void f({error:"ROSTER_ERROR"});E=o,N.lastKnownHash=E.getLastCheckpointHash();var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);a.members[i]&&O.reg((function(){if(N.edit){var e={},n=c.createData(t.store.proxy,!1);n.pending=!1,e[t.store.proxy.curvePublic]=n,E.describe(e,(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}}))})))})).nThen((function(n){var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);if(!a.members||!Object.keys(a.members).length)return b.stop(),E.stop(),b.proxy={},f({error:"EINVAL"}),n.abort(),console.error(JSON.stringify(a)),void u.send("ROSTER_CORRUPTED");if(!a.members[i])return b.stop(),E.stop(),b.proxy={},delete t.store.proxy.teams[o],t.updateMetadata(),f({error:"EFORBIDDEN"}),void n.abort();var s=a.members[i],c=e.find(r,["keys","drive","edPrivate"]);if(r.hash&&c||-1===["ADMIN","MEMBER"].indexOf(s.role))r.hash&&c||"OWNER"!==s.role||u.send("TEAM_RIGHTS_OWNER");else{console.warn("Missing edit rights: demote to viewer");var l={};l[t.store.proxy.curvePublic]={role:"VIEWER"},E.describe(l,(function(e){u.send("TEAM_RIGHTS_FIXED"),delete r.hash,delete r.keys.drive.edPrivate,delete r.keys.chat.edit,e&&"NO_CHANGE"!==e&&console.error(e)}))}})).nThen((function(){i||(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress})),S(t,o,b,E,A,null,f)}))},I=function(n,t,r,o){var a=t.team;if(!((a.hash||a.roHash)&&a.channel&&a.password&&a.keys&&a.metadata))return void o({error:"EINVAL"});let i=n.store.proxy.teams;if(Object.values(i).some((e=>e.channel===a.channel)))o({error:"EEXISTS"});else{var s=e.createRandomInteger();n.store.proxy.teams[s]=a,n.onReadyHandlers[s]=[],N(n,a,s,(function(e){e&&e.error||console.debug("Team joined:"+s);var t=n.store.proxy.teams[s];n.store.mailbox.open("team-"+s,t.keys.mailbox,(function(){}),!0,{owners:t.keys.drive.edPublic}),n.updateMetadata(),o(e)}))}},C=function(n,t,r){var o=e.find(n,["store","proxy","teams",t]);if(!o)return{};var a=e.clone(o);return r||(delete a.hash,delete a.keys.drive.edPrivate,delete a.keys.chat.edit),delete a.owner,a},R=function(t,r,o){if(!r)return!0;var a=e.find(t,["store","proxy","teams",r]);if(!a)return!0;var s=t.teams[r];if(!s)return!0;var c=n.getSecrets("team",o||a.roHash,a.password);if(i.upgrade(a.channel,c),s.userObject&&s.userObject.setReadOnly(!c.keys.secondaryKey,c.keys.secondaryKey),c.keys.secondaryKey)try{t.store.modules.calendar.upgradeTeam(r)}catch(e){console.error(e)}!c.keys.secondaryKey&&s.rpc&&s.rpc.destroy();var u=e.find(s,["proxy","drive","sharedFolders"]);Object.keys(u||{}).forEach((function(t){var r=s.manager.getSharedFolderData(t),o=n.parsePadUrl(r.href||r.roHref),a=n.getSecrets(o.type,o.hash,r.password);i.upgrade(a.channel,a);var c=e.find(s,["manager","folders",t,"userObject"]);c&&c.setReadOnly(!a.keys.secondaryKey,a.keys.secondaryKey)})),t.updateMetadata(),t.emit("ROSTER_CHANGE_RIGHTS",r,s.clients)},P=function(t,r,o,a,i){if(r){var s=e.find(t,["store","proxy","teams",r]);if(s){var c=t.onReadyHandlers[r],u=t.teams[r];if(s.channel===a.channel&&s.password===a.password)if(o?(s.hash=a.hash,s.keys.drive.edPrivate=a.keys.drive.edPrivate,s.keys.chat.edit=a.keys.chat.edit):(delete s.hash,delete s.keys.drive.edPrivate,delete s.keys.chat.edit),u||!Array.isArray(c))if(u){if(o){_(t,u,s.keys.drive,(function(){u.manager.addPin(u.pin,u.unpin)}));var f=n.getSecrets("team",a.hash,s.password);u.secondaryKey=f&&f.keys.secondaryKey;var l=v.createEncryptor(f.keys);u.listmap.setReadOnly(!1,l)}else delete u.secondaryKey,u.rpc&&u.rpc.destroy&&u.rpc.destroy(),u.manager.removePin(),u.listmap.setReadOnly(!0);R(t,r,a.hash),i(!0)}else i(!1);else c.push({cb:function(){P(t,r,o,a,i)}});else i(!1)}else i(!1)}else i(!1)},k=function(n,t,r,o,a){t?e.find(n,["store","proxy","teams",t])&&n.teams[t]?n.store.mailbox.sendTo("TEAM_EDIT_RIGHTS",{state:o,teamData:C(n,t,o)},{channel:r.notifications,curvePublic:r.curvePublic},a):a({error:"ENOENT"}):a({error:"EINVAL"})},M=function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]),s=n.teams[a];if(i&&s)if(s.roster)if(t.curvePublic&&t.data){var c,u=s.roster.getState().members[t.curvePublic];g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(u.pendingOwner=Array.isArray(c.pending_owners)&&-1!==c.pending_owners.indexOf(u.edPublic),"OWNER"!==u.role||"OWNER"===t.data.role){"VIEWER"===u.role&&"VIEWER"!==t.data.role&&k(n,a,u,!0,(function(e){o(e)})),"VIEWER"!==u.role&&"VIEWER"===t.data.role&&k(n,a,u,!1,(function(e){o(e)}));var r={};r[t.curvePublic]=t.data,s.roster.describe(r,(function(e){e?o({error:e}):o()}))}else!function(n,t,r,o){var a=e.once(o);if(t){var i=e.find(n,["store","proxy","teams",t]);if(i){var s=n.teams[t];if(s){var c=r.pendingOwner;g((function(t){var o=c?"RM_PENDING_OWNERS":"RM_OWNERS",s=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a(n)},u=function(e){n.Store.setPadMetadata(null,{channel:e,command:o,value:[r.edPublic]},t(s))};u(i.channel),u(e.find(i,["keys","roster","channel"])),u(e.find(i,["keys","chat","channel"]))})).nThen((function(e){var n={};n[r.curvePublic]={role:"ADMIN",pendingOwner:!1},s.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(e){n.store.mailbox.sendTo("RM_OWNER",{teamChannel:i.channel,title:i.metadata.name,pending:c},{channel:r.notifications,curvePublic:r.curvePublic},e())})).nThen((function(){a()}))}else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(n,a,u,(function(e){e?(console.error(e),o({error:e})):o()}))}))}else o({error:"MISSING_DATA"});else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"EINVAL"})},F=function(e,n){Object.keys(e.onReadyHandlers).forEach((function(t){var r=-1;e.onReadyHandlers[t].some((function(e,t){if(e.cId===n)return r=t,!0})),-1!==r&&e.onReadyHandlers[t].splice(r,1)})),Object.keys(e.teams).forEach((function(t){var r=e.teams[t].clients,o=r.indexOf(n);-1!==o&&r.splice(o,1)}))},L=function(n,t,r,o){var a,i=t.seeds;try{a=f.derivePreviewKeys(i.preview)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})},H=function(n,t,r,o){var a,i;g((function(r){!function(n,t,r,o){var a,i=t.bytes64;try{a=f.deriveInviteKeys(i)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})}(n,t,0,r((function(e){if(e&&e.error)return r.abort(),void o(e);a=e})))})).nThen((function(t){var r=e.find(a,["teamData","channel"]),u=n.store.proxy.teams||{};if(Object.keys(u).some((function(e){return u[e].channel===r})))return t.abort(),void o({error:"ALREADY_MEMBER"});var f=e.find(a,["teamData","keys","roster"]),l=a.ephemeral;if(!f||!l)return t.abort(),void o({error:"INVALID_INVITE_CONTENT"});var h=v.Team.deriveMemberKeys(f.edit,l);s.create({network:n.store.network||n.store.networkPromise,channel:f.channel,keys:h,store:n.store,Cache:d},t((function(e,r){if(e)return t.abort(),console.error(e),void o({error:"ROSTER_ERROR"});var a=c.createData(n.store.proxy,!1),s=r.getState();i=s.members[l.curvePublic],r.accept(a.curvePublic,t((function(e){if(r.stop(),e)return t.abort(),console.error(e),void o({error:"ACCEPT_ERROR"})})))})))})).nThen((function(){var e={};i.remaining&&1!==i.remaining||_(n,e,a.ephemeral,(function(n){if(!n){var t=e.rpc;i.inviteChannel&&t.removeOwnedChannel(i.inviteChannel,(function(e){e&&console.error(e)})),i.previewChannel&&t.removeOwnedChannel(i.previewChannel,(function(e){e&&console.error(e)}))}})),I(n,{team:a.teamData},0,o)}))},j=function(n){if(n){if(n.keys&&n.keys.mailbox)return n.keys.mailbox;var t=e.find(n,["keys","roster","edit"]);if(t){var r=E.hash(e.decodeUTF8(t)),o=r.slice(0,32),a=e.uint8ArrayToHex(r.slice(32,48)),i=E.box.keyPair.fromSecretKey(o);return{channel:a,viewed:[],keys:{curvePrivate:e.encodeBase64(i.secretKey),curvePublic:e.encodeBase64(i.publicKey)}}}}};return b.init=function(t,r,o){var a={},i=t.store;if(i.loggedIn&&i.proxy.edPublic&&!i.modules?.team){var h={store:i,Store:t.Store,pinPads:t.pinPads,emit:o,onReadyHandlers:{},teams:{},cache:{},nocache:{},updateMetadata:t.updateMetadata,updateProgress:t.updateLoadingProgress,progress:0};i.proxy.teams||(i.proxy.teams={});var b=i.proxy.teams;h.numberOfTeams=Object.keys(b).length,h.store.proxy.on("change",["teams"],(function(e,n,t){"hash"===t[2]&&R(h,t[1],n)})),h.store.proxy.on("remove",["teams"],(function(e,n){"hash"===n[2]&&R(h,n[1])}));var w=function(n,t){if(!n||!t)return!0;try{var r=e.decodeBase64(n),o=E.sign.keyPair.fromSecretKey(r);return e.encodeBase64(o.publicKey)===t}catch(e){return!1}};Object.keys(b).forEach((function(n){h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,r((function(e){if(e){delete h.onReadyHandlers[n],delete h.cache[n],"NOCACHE"===e?.error&&(h.nocache[n]=!0);var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" cache ready")})),d.isEnabled())})),a.onReady=function(t){var r;r={},Object.keys(b).forEach((function(t){try{var o=b[t],a=r[o.channel],i=e.find(o,["keys","drive","edPrivate"]),s=e.find(o,["keys","drive","edPublic"]);if(s?i&&s&&!w(i,s)&&(u.send("TEAM_CORRUPTED_EDPRIVATE"),delete b[t].keys.drive.edPrivate,i=void 0):u.send("TEAM_CORRUPTED_EDPUBLIC"),o.hash&&2===n.parseTypeHash("drive",o.hash).version&&40!==o.hash.length&&u.send("TEAM_CORRUPTED_HASH"),!a)return void(r[o.channel]=t);var c=b[a],f=e.find(c,["keys","drive","edPrivate"]),l=e.find(c,["keys","chat","edit"]),d=e.find(o,["keys","chat","edit"]);!c.hash&&o.hash&&(c.hash=o.hash),!f&&i&&(c.keys.drive.edPrivate=i),!l&&d&&(c.keys.chat.edit=d),h.store.proxy.duplicateTeams=h.store.proxy.duplicateTeams||{},h.store.proxy.duplicateTeams[t]=b[t],delete b[t]}catch(e){console.error(e)}}));var o=function(e){return!b[e]&&(D(h,e),delete h.onReadyHandlers[e],!0)};Object.keys(h.teams).forEach(o),Object.keys(h.onReadyHandlers).forEach((function(n){if(!o(n)){var r=h.store.proxy.teams[n],a=e.find(r,["keys","roster","channel"]),i=e.once(e.mkAsync(t()));g((function(e){x(h,n,r.channel,a,e,i)})),h.onReadyHandlers[n].push({cb:i})}})),Object.keys(b).forEach((function(n){h.onReadyHandlers[n]||h.teams[n]||(h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,t((function(e){if(e){var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" ready")}))))})),A(),O.fire()},a.getTeam=function(e){return h.teams[e]},a.getTeamsData=function(n){var t={},r=!1;return-1!==["drive","teams","settings"].indexOf(n)&&(r=!0),Object.keys(b).forEach((function(n){if(h.teams[n]){var o=h.teams[n].proxy||{},a=o.drive&&Object.keys(o.drive.filesData||{}).length,i=o.drive&&Object.keys(o.drive.sharedFolders||{}).length;t[n]={owner:b[n].owner,name:b[n].metadata.name,channel:b[n].channel,numberPads:a,numberSf:i,roster:e.find(b[n],["keys","roster","channel"]),edPublic:e.find(b[n],["keys","drive","edPublic"]),avatar:e.find(b[n],["metadata","avatar"]),viewer:!e.find(b[n],["keys","drive","edPrivate"]),notifications:e.find(b[n],["keys","mailbox","channel"]),curvePublic:e.find(b[n],["keys","mailbox","keys","curvePublic"]),validKeys:w(e.find(b[n],["keys","drive","edPrivate"]),e.find(b[n],["keys","drive","edPublic"]))},r&&h.teams[n]&&(t[n].secondaryKey=h.teams[n].secondaryKey),h.teams[n]&&(t[n].hasSecondaryKey=Boolean(h.teams[n].secondaryKey))}})),t},a.getTeams=function(){return Object.keys(h.teams)};a.removeFromTeam=function(e,n,t){if(b[e]&&(!t||function(e,n){var t=h.teams[e];if(t){var r=t.roster&&t.roster.getState();if(r.members)return(r.members[n]||{}).pending}}(e,n)))if(h.onReadyHandlers[e])h.onReadyHandlers[e].push({cb:function(){h.teams[e].roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}});else{var r=h.teams[e];r?r.roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)})):console.error("TEAM MODULE ERROR")}},a.changeMyRights=function(e,n,t,r){P(h,e,n,t,r)},a.updateMyData=function(e){Object.keys(h.teams).forEach((function(n){var t=h.teams[n];if(t.roster){var r={};r[e.curvePublic]=e,t.roster.describe(r,(function(e){e&&console.error(e)}))}}))},a.removeClient=function(e){F(h,e)};return a.execCommand=function(t,r,o){var a=r.cmd,i=r.data;if("SUBSCRIBE"!==a)if("LIST_TEAMS"!==a)if("OPEN_TEAM_CHAT"!==a)if("GET_TEAM_ROSTER"!==a)if("GET_TEAM_METADATA"!==a)if("SET_TEAM_METADATA"!==a){if("OFFER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=e.once(o),i=t.teamId;if(i){var s=e.find(n,["store","proxy","teams",i]);if(s){var c=n.teams[i];if(c)if(c.roster)if(t.curvePublic){var u=c.roster.getState().members[t.curvePublic];g((function(t){var r=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a({error:n})},o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"ADD_PENDING_OWNERS",value:[u.edPublic]},t(r))};o(s.channel),o(e.find(s,["keys","roster","channel"])),o(e.find(s,["keys","chat","channel"]))})).nThen((function(e){var n={};n[u.curvePublic]={role:"OWNER"},c.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(t){n.store.mailbox.sendTo("ADD_OWNER",{teamChannel:s.channel,chatChannel:e.find(s,["keys","chat","channel"]),rosterChannel:e.find(s,["keys","roster","channel"]),title:s.metadata.name},{channel:u.notifications,curvePublic:u.curvePublic},t())})).nThen((function(){a()}))}else a({error:"MISSING_DATA"});else a({error:"NO_ROSTER"});else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(h,i,0,o);if("ANSWER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a,i=n.store.proxy.teams;if(Object.keys(i).forEach((function(e){if(i[e].channel===t.teamChannel)return a=e,!0})),a){var s=e.find(n,["store","proxy","teams",a]);if(s){var c=n.teams[a];if(c)if(c.roster){var u={};t.answer?s.owner=!0:(u[n.store.proxy.curvePublic]={role:"ADMIN"},c.roster.describe(u,(function(e){e?o({error:e}):o()})))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("DESCRIBE_USER"!==a){if("INVITE_TO_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=n.user;if(i&&i.curvePublic&&i.notifications){delete i.channel,delete i.lastKnownHash,i.pending=!0;var s={};s[i.curvePublic]=i,s[i.curvePublic].role="VIEWER",a.roster.add(s,(function(n){n&&"NO_CHANGE"!==n?r({error:n}):e.store.mailbox.sendTo("INVITE_TO_TEAM",{team:C(e,o)},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)}))}))}else r({error:"MISSING_DATA"})}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);if("LEAVE_TEAM"!==a){if("JOIN_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void I(h,i,0,o);if("REMOVE_USER"!==a){if("DELETE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a],s=e.find(n,["store","proxy","teams",a]);if(i&&s){var c=i.roster.getState(),f=e.find(n,["store","proxy","curvePublic"]),l=c.members[f];if(!l||"OWNER"!==l.role)return o({error:"EFORBIDDEN"});var d=e.find(n,["store","proxy","edPublic"]),h=e.find(s,["keys","drive","edPublic"]);g((function(e){n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:s.channel},e((function(n){if(n&&n.error)return e.abort(),o({error:n.error});var t=n[0];t&&Array.isArray(t.owners)&&-1!==t.owners.indexOf(d)||(e.abort(),o({error:"EFORBIDDEN"}))})))})).nThen((function(t){i.proxy.delete=!0;var r=i.manager.getChannelsList("owned"),o=e.Saferphore.create(10);r.forEach((function(e){var r=t();o.take((function(t){var o=!1;g((function(r){32===e.length&&n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:e},r((function(e){if(e&&e.error)return t(),void r.abort();var n=e[0];if(!n||!Array.isArray(n.owners)||-1===n.owners.indexOf(h))return t(),void r.abort();o=n.owners.some((function(e){return e!==h}))})))})).nThen((function(t){o?n.Store.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[h]},t()):i.rpc.removeOwnedChannel(e,t((function(e){e&&console.error(e)})))})).nThen((function(){t(),r()}))}))}))})).nThen((function(t){i.rpc.removePins(t((function(e){e&&console.error(e)})));var r=e.find(s,["keys","mailbox","channel"]);i.rpc.removeOwnedChannel(r,t((function(e){e&&console.error(e)})));var o=e.find(s,["keys","roster","channel"]);n.store.rpc.removeOwnedChannel(o,t((function(e){e&&console.error(e)})));var a=e.find(s,["keys","chat","channel"]);n.store.rpc.removeOwnedChannel(a,t((function(e){e&&console.error(e)}))),n.store.rpc.removeOwnedChannel(s.channel,t((function(e){e&&console.error(e)})))})).nThen((function(){u.send("TEAM_DELETION"),D(n,a),o()}))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("CREATE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(t,r,o,a){var i,f=e.once(a),l=n.createChannelId(),h=n.createRandomHash("team",l),b=n.getSecrets("team",h,l),O=n.getViewHashFromKeys(b),A=E.sign.keyPair(),w=E.box.keyPair(),_=v.Team.createSeed(),T=v.Team.deriveMemberKeys(_,{curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate}),x=n.getSecrets("chat"),N=n.getHashes(x),I={network:t.store.network,channel:b.channel,data:{},validateKey:b.keys.validateKey,crypto:v.createEncryptor(b.keys),logLevel:1,classic:!0,ChainPad:m,Cache:d,owners:[t.store.proxy.edPublic]};g((function(e){s.create({network:t.store.network||t.store.networkPromise,channel:T.channel,owners:[t.store.proxy.edPublic],keys:T,store:t.store,lastKnownHash:void 0,newTeam:!0,Cache:d},e((function(n,r){if(n)return e.abort(),console.error(n),void f({error:"ROSTER_ERROR"});i=r;var o=c.createData(t.store.proxy);delete o.channel,i.init(o,e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})));var n,r=v.createEncryptor(x.keys),o={network:t.store.network,channel:x.channel,noChainPad:!0,crypto:r,metadata:{validateKey:x.keys.validateKey,owners:[t.store.proxy.edPublic]}},a=e();o.onReady=function(){n&&n.stop(),a()},o.onError=function(){e.abort(),f({error:"CHAT_INIT_ERROR"})},n=y.start(o)})).nThen((function(e){i.metadata({name:r.name},e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})).nThen((function(){var a=e.createRandomInteger();I.onMetadataUpdate=function(){var e=t.teams[a];e&&t.emit("ROSTER_CHANGE",a,e.clients)};var s=p.create(I),c=s.proxy;c.version=2,c.on("ready",(function(){var d={mailbox:{channel:n.createChannelId(),viewed:[],keys:{curvePrivate:e.encodeBase64(w.secretKey),curvePublic:e.encodeBase64(w.publicKey)}},drive:{edPrivate:e.encodeBase64(A.secretKey),edPublic:e.encodeBase64(A.publicKey)},chat:{edit:N.editHash,view:N.viewHash,validateKey:x.keys.validateKey,channel:x.channel},roster:{channel:T.channel,edit:_,view:T.viewKeyStr}},p=t.store.proxy.teams[a]={owner:!0,channel:b.channel,hash:h,roHash:O,password:l,keys:d,metadata:{name:r.name}};c.drive={},S(t,a,s,i,d,o,(function(){u.send("TEAM_CREATION"),t.store.mailbox.open("team-"+a,p.keys.mailbox,(function(){}),!0,{owners:p.keys.drive.edPublic}),t.updateMetadata(),f()}))})).on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,a)}))}))}(h,i,t,o);if("GET_EDITABLE_FOLDERS"!==a)if("CREATE_INVITE_LINK"!==a){if("GET_PREVIEW_CONTENT"!==a)return"ACCEPT_LINK_INVITATION"===a?h.store.offline?void o({error:"OFFLINE"}):void H(h,i,0,o):void 0;L(h,i,0,o)}else!function(n,t,r,o){var a=e.mkAsync(e.once(o)),i=t.teamId,s=n.teams[t.teamId],u=t.seeds,d=t.bytes64;if(i&&s){var h,p=s.roster;try{h=p.getState().metadata.name}catch(e){return void a({error:"TEAM_NAME_ERR"})}var v=t.message,y=t.name,m=t.hash,E=e.find(n,["store","proxy","teams",i]);try{var b=f.encryptHash(m,E.hash)}catch(e){console.error(e)}var O=f.derivePreviewKeys(u.preview),A=f.deriveInviteKeys(d),w=f.generateKeys(),D=t.role||"VIEWER",_=t.uses||1;g((function(e){!function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamName:h,message:v,author:c.createData(n.store.proxy,!1),displayName:y},i={channel:O.channel,type:"pad",version:2,keys:{cryptKey:O.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(i,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}(),function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamData:C(n,i,"MEMBER"===D),ephemeral:{edPublic:w.edPublic,edPrivate:w.edPrivate,curvePublic:w.curvePublic,curvePrivate:w.curvePrivate}},s={channel:A.channel,type:"pad",version:2,keys:{cryptKey:A.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(s,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}()})).nThen((function(e){s.pin([A.channel,O.channel],(function(e){e&&e.error&&console.error(e.error)})),f.createRosterEntry(s.roster,{curvePublic:w.curvePublic,content:{curvePublic:w.curvePublic,displayName:t.name,pending:!0,remaining:_,totalUses:_,role:D,hash:b,inviteChannel:A.channel,previewChannel:O.channel}},e((function(n){n&&(e.abort(),a(n))})))})).nThen((function(){a()}))}else a({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a];if(i){var s=i.manager.folders||{};o(Object.keys(s).filter((function(e){return!s[e].proxy.version})).map((function(n){var t=e.find(i,["user","userObject"]);return{name:e.find(s,[n,"proxy","metadata","title"]),path:t?t.findFile(n)[0]:[]}})))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster)if(n.curvePublic){var i=a.roster.getState().members[n.curvePublic];a.roster.remove([n.curvePublic],(function(t){if(!t)return i&&i.notifications?void e.store.mailbox.sendTo("KICKED_FROM_TEAM",{pending:n.pending,teamChannel:C(e,o).channel,teamName:C(e,o).metadata.name},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)})):r();r({error:t})}))}else r({error:"MISSING_DATA"});else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=e.store.proxy.curvePublic;a.roster.remove([i],(function(n){n?r({error:n}):(D(e,o),r())}))}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else M(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];a?a.offline?r({error:"OFFLINE"}):a.roster?(n.metadata&&delete n.metadata.offline,a.roster.metadata(n.metadata,(function(t){if(t)r({error:t});else{var a=e.store.proxy.teams[o];a&&(a.metadata=n.metadata),r()}}))):r({error:"NO_ROSTER"}):r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=(a.roster.getState()||{}).metadata||{};i.offline=a.offline,r(i)}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]);if(i){var s=n.teams[a];if(s)if(s.roster){var c,u=(s.roster.getState()||{}).members||{};g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(n.pending_owners=c.pending_owners,Array.isArray(c.pending_owners)&&c.pending_owners.forEach((function(t){var r;if(Object.keys(u).some((function(e){if(u[e].edPublic===t)return r=u[e],!0})),!r&&i.owner){var o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"RM_PENDING_OWNERS",value:[t]},(function(){}))};return o(i.channel),o(e.find(i,["keys","roster","channel"])),void o(e.find(i,["keys","chat","channel"]))}r.pendingOwner=!0})),n.store.messenger){var t=s.getChatData();(n.store.messenger.getOnlineList(t.channel)||[]).forEach((function(e){u[e]&&(u[e].online=!0)}))}Object.keys(u).forEach((function(e){var n=u[e];if(n.inviteChannel&&n.hash)if(i.hash)try{n.hash=f.decryptHash(n.hash,i.hash)}catch(e){console.error(e)}else delete n.hash})),o(u)}))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=e.teams[n.teamId];if(o){var a=function(){e.emit("ROSTER_CHANGE",n.teamId,o.clients)};e.store.messenger?e.store.messenger.openTeamChat(o.getChatData(),a,t,r):A=function(){e.store.messenger.openTeamChat(o.getChatData(),a,t,r)}}else r({error:"ENOENT"})}(h,i,t,o);else!function(n){var t=e.clone(b);Object.keys(t).forEach((function(e){h.teams[e]?t[e].offline=h.teams[e].offline:(t[e].error=!0,h.nocache[e]&&(t[e].offline=!0))})),n(t)}(o);else!function(e,n,t,r){F(e,t);try{e.store.messenger.removeClient(t)}catch(e){}if(A=function(){},n)if(!e.onReadyHandlers[n]||e.teams[n])if(e.teams[n]){var o=e.teams[n].clients;-1===o.indexOf(t)&&o.push(t),r()}else r({error:"EINVAL"});else-1===e.onReadyHandlers[n].indexOf(t)&&e.onReadyHandlers[n].push({cId:t,cb:r});else r()}(h,i,t,o)},a}},b.anonGetPreviewContent=function(e,n,t){L(e,n,0,t)},b};e.exports&&(e.exports=n(Z(),te(),Y(),je(),ze(),Ue(),We(),mt(),wn(),Ae(),(gt||(gt=1,function(e){e.exports&&(e.exports=function(e,n,t,r){var o={},a=e.encodeBase64,i=e.decodeBase64;o.generateKeys=function(){var e=t.sign.keyPair(),n=t.box.keyPair();return{edPublic:a(e.publicKey),edPrivate:a(e.secretKey),curvePublic:a(n.publicKey),curvePrivate:a(n.secretKey)}},o.generateSignPair=function(){var e=t.sign.keyPair();return{validateKey:a(e.publicKey),signKey:a(e.secretKey)}};var s=function(r){var o=n.dispenser(i(r));return{channel:e.uint8ArrayToHex(o(16)),cryptKey:o(t.secretbox.keyLength)}};o.deriveInviteKeys=s,o.derivePreviewKeys=s,o.createRosterEntry=function(e,n,t){var r={};r[n.curvePublic]=n.content,e.invite(r,t)};var c=e.decodeUTF8;return o.encryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.encrypt(e,a)},o.decryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.decrypt(e,a)},o}(Z(),Ne(),N(),M()))}(bt)),bt.exports),Rn(),fe(),Cn(),g(),M(),y(),w(),qe(),N()))})()}(vt)),vt.exports}var At,wt={exports:{}};function Dt(){return At||(At=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c)=>{var u=e.Curve,f={setCustomize:e=>{i=e.Messages}},l="MSG",d="UNFRIEND",h="MAP_ID",p="MAP_ID_ACK",v=function(e){return JSON.parse(JSON.stringify(e))},y=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=p.store.network||e;n.on("message",(function(e,n){N(p,e,n)})),n.on("disconnect",(function(){p.emit("DISCONNECT",null,C(p))})),n.on("reconnect",(function(){p.emit("RECONNECT",null,C(p))}))}));return h.networkPromise?.then(b),p.store.network&&b(),f.onFriendUpdate=function(e){var n=g(h.proxy,e);if(n&&n.channel){var t=p.channels[n.channel];t&&p.emit("UPDATE_DATA",{info:v(n),channel:n.channel},t.clients)}},f.onFriendAdded=function(e){if(p.friendsClients.length){var n=g(p.store.proxy,e.curvePublic);if("object"==typeof n)if(n.channel){var t=n.channel;p.channels[t]||P(p,null,n,(function(){u("FRIEND",{curvePublic:n.curvePublic},p.friendsClients)}))}}},f.onFriendRemoved=function(e,n){I(p,e,n)},f.getOnlineList=function(e){return function(e,n){var t=e.channels[n];if(t){var r=[],o=m(e.store.proxy,!1);return r.push(o.curvePublic),t.wc.members.forEach((function(n){if(n!==e.store.network.historyKeeper){var o=t.mapId[n]||{};o.curvePublic&&-1===r.indexOf(o.curvePublic)&&r.push(o.curvePublic)}})),r}}(p,e)},f.storeValidateKey=function(e,n){p.validateKeys[e]=n},f.leavePad=function(e){delete p.validateKeys[e],Object.keys(p.channels).some((function(n){var t=p.channels[n];if(t.padChan===e){t.wc&&t.wc.leave();var r=p.store.network;return t.onReconnect&&r.off("reconnect",t.onReconnect),t.stopped=!0,delete p.channels[n],!0}}))},f.openTeamChat=function(n,r,o,a){!function(n,r,o,a,i){var s=o,c=s.channel,u=s.secret;if(c&&u){var f=t.once(t.mkAsync((function(){n.emit("TEAMCHAT_READY",c,[r]),i({readOnly:"object"==typeof u.keys&&!u.keys.validateKey,channel:c})}))),l=n.channels[c];if(l)l.onReady.reg((function(){-1===l.clients.indexOf(r)&&l.clients.push(r),f()}));else{u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var d=e.createEncryptor(u.keys),h=u.keys&&u.keys.validateKey||s.validateKey,p={teamId:o.teamId,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:d,channel:c,isTeamChat:!0,decrypt:function(e){return d.decrypt(e,h)},clients:[r],onUserlistUpdate:a,onReady:f};R(n,p)}}else i({error:"EINVAL"})}(p,o,n,r,a)},f.removeClient=function(e){!function(e,n){var t=e.friendsClients.indexOf(n);-1!==t&&e.friendsClients.splice(t,1),Object.keys(e.channels).forEach((function(t){var r=e.channels[t],o=r.clients,a=o.indexOf(n);if(-1!==a&&o.splice(a,1),0===o.length){r.wc&&r.wc.leave();var i=e.store.network;return r.onReconnect&&i.off("reconnect",r.onReconnect),r.stopped=!0,delete e.channels[t],!0}}))}(p,e)},f.execCommand=function(n,r,s){var u=r.cmd,f=r.data;"INIT_FRIENDS"!==u?"GET_ROOMS"!==u?"GET_MUTED_USERS"!==u?"GET_USERLIST"!==u?"OPEN_PAD_CHAT"!==u?"GET_MY_INFO"!==u?"REMOVE_FRIEND"!==u?"CANCEL_FRIEND"!==u?"MUTE_USER"!==u?"UNMUTE_USER"!==u?"GET_STATUS"!==u?"GET_MORE_HISTORY"!==u?"SEND_MESSAGE"!==u?"SET_CHANNEL_HEAD"!==u?"CLEAR_OWNED_CHANNEL"!==u||function(e,n,t){var r=e.channels[n];r?e.store.rpc?e.store.rpc.clearOwnedChannel(n,(function(o){t({error:o}),o||(r.messages=[],e.emit("CLEAR_CHANNEL",n,r.clients))})):t({error:"RPC_NOT_READY"}):t({error:"NO_CHANNEL"})}(p,f,s):_(p,f.id,f.sig,s):function(e,n,t,r){var o=e.channels[n];if(o)if(o.readOnly)r({error:"FORBIDDEN"});else if(e.store.network.webChannels.some((function(e){if(e.id===o.wc.id)return!0}))){var s=e.store.proxy||{},c=[l,s.curvePublic,+new Date,t];if(!o.isFriendChat){var u=s[a.displayNameKey]||i.anonymous+"#"+(s.uid||e.store.noDriveUid).slice(0,5);c.push(u)}var f=JSON.stringify(c),d=o.encrypt(f);o.wc.bcast(d).then((function(){x(e,o,d),r()}),(function(e){r({error:e})}))}else r({error:"NO_SUCH_CHANNEL"});else r({error:"NO_CHANNEL"})}(p,f.id,f.content,s):function(e,n,r,o,a){if("function"==typeof a)if("string"==typeof r){var i=e.channels[n];if(void 0!==i){var s=t.uid();A(e,s,n,a);var c=["GET_HISTORY_RANGE",i.id,{from:r,count:o,txid:s}],u=e.store.network;u.sendto(u.historyKeeper,JSON.stringify(c)).then((function(){}),(function(e){console.error(e)}))}else console.error("chan is undefined. we're going to have a problem here")}else a([])}(p,f.id,f.sig,f.count,s):function(e,n,t){var r=e.channels[n];if(r){r.onUserlistUpdate&&r.onUserlistUpdate();var o=e.store.proxy||{};t(r.wc.members.some((function(n){if(n!==e.store.network.historyKeeper){var t=r.mapId[n]||void 0;return!!t&&t.curvePublic!==o.curvePublic}})))}else t("NO_SUCH_CHANNEL")}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};delete i[n],e.emit("UPDATE_MUTED",null,C(e)),o(Object.keys(i).length)}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};i[n.curvePublic]||(i[n.curvePublic]=n,e.emit("UPDATE_MUTED",null,C(e))),o()}(p,f,s):function(e,n,r){var o=t.once(r);"function"==typeof o?e.Store.cancelFriendRequest(n,o):console.error("NO_CALLBACK")}(p,f,s):function(e,n,r){var a=t.once(r);if("function"==typeof a){var i=e.store.proxy,s=g(i,n);if(!s)return console.error("friend is not valid"),void a({error:"INVALID_FRIEND"});var c=e.channels[s.channel];if(e.store.mailbox&&s.curvePublic&&s.notifications)o.removeFriend(e.store,n,(function(n){n&&n.error?a({error:n.error}):(e.updateMetadata(),a(n))}));else if(c)try{var u=[d,i.curvePublic,+new Date],f=JSON.stringify(u),l=c.encrypt(f);c.wc.bcast(l).then((function(){I(e,n,s.channel),S(e,n,(function(){a()}))}),(function(t){t?a({error:t}):(I(e,n,s.channel),S(e,n,(function(){a()})))}))}catch(e){a({error:e})}else a({error:"NO_SUCH_CHANNEL"})}else console.error("NO_CALLBACK")}(p,f,s):function(e,n){var t=e.store.proxy||{};n({curvePublic:t.curvePublic,displayName:t[a.displayNameKey]})}(p,s):function(n,r,o,a){var i=o.channel,s=t.once(t.mkAsync((function(){n.emit("PADCHAT_READY",i,[r]),a()}))),c=n.channels[i];if(c)c.onReady.reg((function(){-1===c.clients.indexOf(r)&&c.clients.push(r),s()}));else{var u=o.secret;u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var f=e.createEncryptor(u.keys),l=u.keys&&u.keys.validateKey||n.validateKeys[u.channel],d={padChan:o.secret&&o.secret.channel,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:f,channel:o.channel,isPadChat:!0,decrypt:function(e){return f.decrypt(e,l)},clients:[r],onReady:s};R(n,d)}}(p,n,f,s):function(e,n,t){var r=e.channels[n.id];if(r)if(r.isFriendChat){var o=O(e,n.id);if(!o)return void t({error:"NO_SUCH_FRIEND"});t([o])}else t([]);else t({error:"NO_SUCH_CHANNEL"})}(p,f,s):function(e,n){var t=e.store.proxy;if(!n)return t.mutedUsers||{};n(t.mutedUsers||{})}(p,s):function(e,n,t){var r=e.store.proxy;if(n&&n.curvePublic){var o=n.curvePublic,a=g(r,o);if(!a)return void t({error:"NO_SUCH_FRIEND"});var i=e.channels[a.channel];return i?void t([{id:i.id,isFriendChat:!0,name:a.displayName,lastKnownHash:a.lastKnownHash,curvePublic:a.curvePublic,messages:i.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.padChat){var s=e.channels[n.padChat];return s?void t([{id:s.id,isPadChat:!0,messages:s.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.teamChat){var c=e.channels[n.teamChat];return c?void t([{id:c.id,isTeamChat:!0,messages:c.messages}]):void t({error:"NO_SUCH_CHANNEL"})}var u=Object.keys(e.channels).map((function(n){var t,r,o,a=e.channels[n];if(a.isFriendChat){var i=O(e,n);if(!i)return null;t=i.displayName,r=i.lastKnownHash,o=i.curvePublic}else{if(a.isPadChat)return;if(a.isTeamChat)return}return{id:a.id,isFriendChat:a.isFriendChat,name:t,lastKnownHash:r,curvePublic:o,messages:a.messages}})).filter((function(e){return e}));t(u)}(p,f,s):function(e,n,t){var r=E(e.store.proxy);c((function(t){Object.keys(r).forEach((function(o){if("me"!==o){var a=v(r[o]);"object"==typeof a&&a.channel&&P(e,n,a,t())}else delete r.me.channel}))})).nThen((function(){-1===e.friendsClients.indexOf(n)&&e.friendsClients.push(n),t()}))}(p,n,s)},f},f};e.exports&&(e.exports=n(M(),te(),Z(),je(),wn(),Y(),void 0,on(),qe()))})()}(wt)),wt.exports}var _t,Tt={exports:{}};function St(){return _t||(_t=1,function(e){(()=>{const n=(e,n,t,r)=>{var o={},a={};var i=function(n,t,o,a,i){var s,c=e.once(e.mkAsync(i)),u=function(n,t){if(!t)return e.find(n.store,["proxy","edPublic"]);var r=e.find(n,["store","proxy","teams",t]);return e.find(r,["keys","drive","edPublic"])}(n,a),f=n.Store,l=0,d=0,h=0;r((function(e){f.getFileSize(null,{channel:t},e((function(n){return n&&n.error?(e.abort(),void c(n)):void 0===n.size?(e.abort(),void c({error:"ENOENT"})):void(l=n.size)}))),f.getHistory(null,{channel:t,lastKnownHash:o},e((function(n){if(n&&n.error)return e.abort(),void c(n);if(!Array.isArray(n))return e.abort(),void c({error:"EINVAL"});if(n.length){s=n[0].hash;var t=n.map((function(e){return e.msg}));d=t.join("\n").length}})),!0),f.getPadMetadata(null,{channel:t},e((function(n){if((!n||!n.error)&&n&&"object"==typeof n)return h=JSON.stringify(n).length,n&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(u)?void 0:(e.abort(),void c({error:"INSUFFICIENT_PERMISSIONS"}))})))})).nThen((function(){c({size:l-h-d,hash:s})}))};return a.GET_HISTORY_SIZE=function(o,a,s,c){if(o.store.loggedIn&&o.store.rpc){var u=a.channels;if(Array.isArray(u)){var f=[];a.account?u=function(r){var o=[],a=e.find(r.store,["proxy","edPublic"]);-1!==(e.find(r.store,["driveMetadata","owners"])||[]).indexOf(a)&&o.push(r.store.driveChannel);var i=r.store.proxy.profile;if(i){var s=i.edit?n.hrefToHexChannelId("/profile/#"+i.edit,null):null;s&&o.push(s)}r.store.proxy.todo&&o.push(n.hrefToHexChannelId("/todo/#"+r.store.proxy.todo,null));var c=r.store.proxy.mailboxes;if(c){var u=Object.keys(c).map((function(e){return{lastKnownHash:c[e].lastKnownHash,channel:c[e].channel}}));Array.prototype.push.apply(o,u)}var f=r.store.proxy[t.SHARED_FOLDERS];if(f){var l=Object.keys(f).map((function(e){var n=f[e];if(n&&n.owners&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(a))return n.channel})).filter(Boolean);Array.prototype.push.apply(o,l)}return o}(o):a.team&&(u=function(n,t){let r=e.find(n.store,["proxy","teams",t]);if(!r)return[];let o=[r.channel],a=r.keys.roster;return o.push({channel:a.channel,lastKnownHash:a.lastKnownHash}),o}(o,a.team));var l=0,d=[];r((function(e){u.forEach((function(n){var t,r=n;"object"==typeof n&&n.channel&&(r=n.channel,t=n.lastKnownHash),i(o,r,t,a.teamId,e((function(e){e&&e.error?f.push(e.error):(l+=e.size,e.hash&&d.push({channel:r,hash:e.hash}))})))}))})).nThen((function(){c({warning:f.length?f:void 0,channels:d,size:l})}))}else c({error:"EINVAL"})}else c({error:"INSUFFICIENT_PERMISSIONS"})},a.TRIM_HISTORY=function(e,n,t,o){if(e.store.loggedIn&&e.store.rpc){var a=n.channels;if(Array.isArray(a)){var i=function(e,n){if(!n)return e.store.rpc;var t=e.store.modules.team;if(t){var r=t.getTeam(n);if(r)return r.rpc}}(e,n.teamId);if(i){var s=[];r((function(e){a.forEach((function(n){i.trimHistory(n,e((function(e){e&&s.push(e)})))}))})).nThen((function(){1===a.length&&s.length?o({error:s[0]}):o({warning:s.length?s:void 0})}))}else o({error:"ENORPC"})}else o({error:"EINVAL"})}else o({error:"INSUFFICIENT_PERMISSIONS"})},o.init=function(e,n,t){var r={};if(e.store){var o={store:e.store,Store:e.Store,pinPads:e.pinPads,updateMetadata:e.updateMetadata,emit:t};return r.execCommand=function(e,n,t){var r=n.cmd,i=n.data;try{a[r](o,i,e,t)}catch(e){console.error(e)}},r}},o};e.exports&&(e.exports=n(Z(),te(),Ue(),qe()))})()}(Tt)),Tt.exports}var xt,Nt={exports:{}},It={exports:{}};function Ct(){return xt||(xt=1,function(e){(()=>{const n=e=>{var n={};const t=globalThis;var r=function(){},o=n.getWeekNo=function(e,n){"number"!=typeof n&&(n=1);var t=new Date(e.getFullYear(),0,1),r=t.getDay()-n;r=r>=0?r:r+7;var o,a=Math.floor((e.getTime()-t.getTime())/864e5)+1;if(r<4){if((o=Math.floor((a+r-1)/7)+1)>52){var i=new Date(e.getFullYear()+1,0,1).getDay()-n;o=(i=i>=0?i:i+7)<4?1:53}}else o=Math.floor((a+r-1)/7);return o},a=function(e){var n=new Date(e.getFullYear(),0,0),t=e-n+60*(n.getTimezoneOffset()-e.getTimezoneOffset())*1e3;return Math.floor(t/864e5)},i=n.DAYORDER=["SU","MO","TU","WE","TH","FR","SA"],s=function(e){var n=Number(e.slice(0,-2)),t=i.indexOf(e.slice(-2));return n?[n,t]:t},c=function(e,n){var t=e.getDay();t>=(n="number"==typeof n?n:1)?e.setDate(e.getDate()-(t-n)):e.setDate(e.getDate()-(7+t-n))},u=function(e){return e.getFullYear()+"-"+(e.getMonth()+1)+"-"+e.getDate()},f={daily:function(e,n){e.setDate(e.getDate()+n)},weekly:function(e,n){e.setDate(e.getDate()+7*n)},monthly:function(e,n){e.setMonth(e.getMonth()+n)},yearly:function(e,n){e.setFullYear(e.getFullYear()+n)}},l={month:function(e,n,t){var r=new Date(n.start),o=(t-(e.getMonth()+1)+12)%12,a=e.getMonth()+o;if(e.setMonth(a),e.setDate(r.getDate()),e.getMonth()===a)return!0},weekno:function(e,n,t,r){var a=r&&r.wkst;"number"!=typeof a&&(a=1);var i=new Date(n.start),s=new Date(e.getFullYear(),11,31),u=o(s,a),f=1===u;1===u&&(u=52);var l=o(e,a);if(!t||t>u)return!1;t<0&&(t=u+t+1);var d=t-l,h=new Date(+e);h.setDate(h.getDate()+7*d),c(h,a);var p="aaaaaaa".split("").map((function(n,t){var r=new Date(+h);if(r.setDate(r.getDate()+t),r.getFullYear()===e.getFullYear())return r.toLocaleDateString()!==i.toLocaleDateString()&&r})).filter(Boolean);return 1===t&&f&&(c(s,a),"aaaaaaa".split("").some((function(n,t){var r=new Date(+s);if(r.setDate(r.getDate()+t),r.toLocaleDateString()!==i.toLocaleDateString())return r.getFullYear()>e.getFullYear()||void p.push(r)}))),p.length?p:void 0}};l.yearday=function(e,n,t){var r=e.getFullYear();if(function(e,n){if(!("number"!=typeof n||Math.abs(n)<1||Math.abs(n)>366))return n<0&&(n=a(new Date(e.getFullYear(),11,31))+n+1),e.setMonth(0),e.setDate(n),!0}(e,t)&&e.getFullYear()===r)return!0},l.monthday=function(e,n,t,r){if("number"!=typeof t||Math.abs(t)<1||Math.abs(t)>31)return!1;var o=function(e,n){var t=e.getMonth();n<0&&(n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate()+n+1);return e.setDate(n),e.getMonth()===t};if("monthly"===r.freq)return o(e,t);var a="aaaaaaaaaaaa".split("").map((function(n,r){var a=new Date(e.getFullYear(),r,1);return o(a,t)?a:void 0})).filter(Boolean);return a.length?a:void 0},l.day=function(e,n,t,r){var o,a=s(t);Array.isArray(a)&&(o=a[0],a=a[1]);var i=[];if(![0,1,2,3,4,5,6].includes(a))return!1;var c,u=function(e){if(o){var n=[];"aaaaaaaaaaaa".split("").some((function(t,r){if(void 0===e||r===e){var a,s=i.filter((function(e){return e.getMonth()===r}));return a=o<0?s.length+o:o-1,n.push(s[a]),void 0!==e&&r===e}})),i=n.filter(Boolean)}};if("yearly"===r.freq){c=new Date(+e);for(var f=e.getFullYear();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getFullYear()===f;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(),i}if("monthly"===r.freq){c=new Date(+e);for(var l=e.getMonth();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getMonth()===l;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(l),i}if("weekly"===r.freq)for(;e.getDay()!==a;)e.setDate(e.getDate()+1);return!0};var d={month:function(e,n){return e.filter((function(e){return n.includes(e.getMonth()+1)}))},weekno:function(e,n,t){return e.filter((function(e){var r=t&&t.wkst;"number"!=typeof r&&(r=1);var a=new Date(e.getFullYear(),11,31),i=o(a,r);1===i&&(i=52);var s=o(e,r);return n.some((function(e){return e>0?e===s:s===i+e+1}))}))},yearday:function(e,n){return e.filter((function(e){var t=a(e),r=a(new Date(e.getFullYear(),11,31));return n.some((function(e){return e>0?e===t:t===r+e+1}))}))},monthday:function(n,t){return n.filter((function(n){var r=e.clone(t);return(r=r.map((function(e){e<0&&(e=new Date(n.getFullYear(),n.getMonth()+1,0).getDate()+e+1);return e}))).includes(n.getDate())}))},day:function(e,n,t){return e.filter((function(e){var r=e.toLocaleDateString(),o="yearly";return("monthly"===t.freq||"yearly"===t.freq&&t.by&&t.by.month)&&(o="monthly"),n.some((function(n){var t,a=s(n);if(Array.isArray(a)&&(t=a[0],a=a[1]),!t)return e.getDay()===a;var i=new Date(e.getFullYear(),e.getMonth(),1);return"yearly"===o&&i.setMonth(0),l.day(i,{},n,{freq:o}).some((function(e){return e.toLocaleDateString()===r}))}))}))},setpos:function(n,t){var r=n.slice(),o=e.deduplicateString(t.slice().map((function(e){return e>0?e-1:0!==e?r.length+e:void 0})));return n.filter((function(e){var n=r.indexOf(e);return o.includes(n)}))}},h=["month","weekno","yearday","monthday","day"],p=["month","monthday","day"];n.getMonthId=function(e){return e.getFullYear()+"-"+e.getMonth()};var v=t.CP_calendar_cache={},y={};n.resetCache=function(){v=t.CP_calendar_cache={},y={}};var m=function(n){if(!n.recUpdate)return[];var t={},r=n.recUpdate.from;return Object.keys(r||{}).forEach((function(e){var n=r[e];n.recurrenceRule&&(t[e]=n.recurrenceRule)})),Object.keys(t).sort((function(e,n){return Number(e)-Number(n)})).map((function(n){var r=e.clone(t[n]);if(f[r.freq]&&!(r.interval&&r.interval<1))return r._start=Number(n),r})).filter(Boolean)};n.getRecurring=function(n,o){t.CP_DEV_MODE&&(r=console.warn);var i=[];return n.forEach((function(n){var t=n.split("-"),s=new Date(t[0],t[1]),g=new Date(+s);g.setMonth(g.getMonth()+1),g.setMilliseconds(-1),r("Compute month",s.toLocaleDateString()),(o||[]).forEach((function(n){var t=new Date(n.start),o=new Date(n.end),E=n,b=n.recurrenceRule;if(b){var O=m(n),A=O.shift();if(!(t>=g)){for(var w=b.until,D=O.slice(),_=A;_&&_._start&&_._startn)){var t;if(n.getFullYear()===e.getFullYear())t=a(n)-a(e);else{var r=new Date(e.getFullYear(),11,31);for(t=a(r)-a(e)+a(n);r.getFullYear()+1=S)){r("Start iteration",a.toLocaleDateString());var m=function(n,t,o){var a=e.clone(t),i=new Date(a.start),s=a.id.split("|")[0],u=o.toLocaleDateString();v[s]=v[s]||{};var y=n.interval||1,m=n.freq,g=[],E=function(e,t){g=d[e](g,t,n)},b=function(e){return function(t){var r=new Date(+o);"yearly"===n.freq?(r.setMonth(0),r.setDate(1)):"monthly"===n.freq?r.setDate(1):"weekly"===n.freq?c(r,n.wkst):n.freq;var s=l[e](r,a,t,n);if(s)if(Array.isArray(s))s=s.filter((function(e){return e.toLocaleDateString()!==i.toLocaleDateString()})),Array.prototype.push.apply(g,s);else{if(r.toLocaleDateString()===i.toLocaleDateString())return;g.push(r)}}},O=e.once((function(){f[m](o,y)})),A=function(){"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O();var e=new Date(+o);if("monthly"===m||"yearly"===m){if(e.setDate(i.getDate()),e.getDate()!==i.getDate())return;if("yearly"===m&&e.getMonth()!==i.getMonth())return}g.push(e)};if(Array.isArray(v[s][u]))return r("Get cache",s,u),"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O(),v[s][u];if(n.by&&"yearly"===m){var w=h.slice(),D=!1;(n.by.weekno||n.by.yearday||n.by.monthday||n.by.day)&&(w.shift(),D=!0);var _=!0;w.forEach((function(e){var t=n.by[e];t&&(_?(t.forEach(b(e)),_=!1):"day"===e?n.by.yearday||n.by.monthday||n.by.weekno?E("day",n.by.day):n.by.day.forEach(b("day")):E(e,t))})),n.by.month&&D&&E("month",n.by.month)}n.by&&"monthly"===m&&(n.by.monthday||n.by.day?n.by.monthday?n.by.monthday.forEach(b("monthday")):n.by.day&&n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month),n.by.day&&n.by.monthday&&E("day",n.by.day)),n.by&&"weekly"===m&&(n.by.day?n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month)),n.by&&"daily"===m&&(A(),p.forEach((function(e){var t=n.by[e];t&&E(e,t)}))),g.sort((function(e,n){return e-n})),n.by&&n.by.setpos&&E("setpos",n.by.setpos),n.by&&Object.keys(n.by).length?O():A();var T=[];return g=g.filter((function(e){var n=new Date(+e).toLocaleDateString();return!T.includes(n)&&(T.push(n),!0)})),r("Set cache",s,u),v[s][u]=g,g}(b,n,a);if(r("Iteration results",JSON.stringify(m.map((function(e){return new Date(e).toLocaleDateString()})))),!m.length)return a.getFullYear()=S)return r(h.toLocaleDateString(),"count"),w=!0,!0;if(h>=g)return r(h.toLocaleDateString(),"endMonth"),w=!0,!0;if(b.until&&h>b.until)return r(h.toLocaleDateString(),"until"),w=!0,!0;if(!(h=g||h=s){if(y[c.id]&&y[c.id].includes(c.start))return;y[c.id]=y[c.id]||[],y[c.id].push(c.start)}if(E.timeZone&&!c.isAllDay){var m=function(e,n,t){var r=function(e,n){let t=e.toLocaleString("en-CA",{timeZone:n,hour12:!1}).replace(", ","T");return t+="."+e.getMilliseconds().toString().padStart(3,"0"),-(new Date(t+"Z")-e)},o=Intl.DateTimeFormat().resolvedOptions().timeZone,a=r(n,e)-r(t,e);return r(n,o)-r(t,o)-a}(E.timeZone,t,h);c.start+=m,c.end+=m}return i.push(c),D?(v(),!0):void 0}r(h.toLocaleDateString(),"start")})),w||N(a)}};N(t),r("Added this month (all events)",i.map((function(e){return new Date(e.start).toLocaleDateString()})))}}}}}))})),i},n.getAllOccurrences=function(e){if(!e.recurrenceRule)return[e.start];var t=e.recurrenceRule;if(!t.until&&!t.count)return!1;var r=[e.start],o=new Date(e.start);o.setDate(15);for(var a=[],i=0;(a=n.getRecurring([n.getMonthId(o)],[e]))&&(t.count?r.length=1e4;)t.setDate(t.getDate()-a),o++;return{d:o*=a,h:(t=new Date(n)).getHours()-r.getHours(),m:t.getMinutes()-r.getMinutes()}};return n.applyUpdates=function(e){return e.forEach((function(e){if(e.raw={start:e.start,end:e.end},e.recUpdate){var n,t=e.recUpdate.from||{},r=e.recUpdate.one||{},o=e.start,a=m(e).filter((function(e){return e._start>o})).shift(),i=function(n,t){var r=n[t],o=new Date(e.raw[t]);o.setDate(o.getDate()+r.d),o.setHours(o.getHours()+r.h),o.setMinutes(o.getMinutes()+r.m),e[t]=+o};(n=t,Object.keys(n).sort((function(e,n){return Number(e)-Number(n)}))).forEach((function(n){o",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},o={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var n=e%100;if(n>3&&n<21)return"th";switch(n%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},a=function(e,n){return void 0===n&&(n=2),("000"+e).slice(-1*n)},i=function(e){return!0===e?1:0};function s(e,n){var t;return function(){var r=this;clearTimeout(t),t=setTimeout((function(){return e.apply(r,arguments)}),n)}}var c=function(e){return e instanceof Array?e:[e]};function u(e,n,t){if(!0===t)return e.classList.add(n);e.classList.remove(n)}function f(e,n,t){var r=window.document.createElement(e);return n=n||"",t=t||"",r.className=n,void 0!==t&&(r.textContent=t),r}function l(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function d(e,n){return n(e)?e:e.parentNode?d(e.parentNode,n):void 0}function h(e,n){var t=f("div","numInputWrapper"),r=f("input","numInput "+e),o=f("span","arrowUp"),a=f("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?r.type="number":(r.type="text",r.pattern="\\d*"),void 0!==n)for(var i in n)r.setAttribute(i,n[i]);return t.appendChild(r),t.appendChild(o),t.appendChild(a),t}function p(e){try{return"function"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(n){return e.target}}var v=function(){},y=function(e,n,t){return t.months[n?"shorthand":"longhand"][e]},m={D:v,F:function(e,n,t){e.setMonth(t.months.longhand.indexOf(n))},G:function(e,n){e.setHours(parseFloat(n))},H:function(e,n){e.setHours(parseFloat(n))},J:function(e,n){e.setDate(parseFloat(n))},K:function(e,n,t){e.setHours(e.getHours()%12+12*i(new RegExp(t.amPM[1],"i").test(n)))},M:function(e,n,t){e.setMonth(t.months.shorthand.indexOf(n))},S:function(e,n){e.setSeconds(parseFloat(n))},U:function(e,n){return new Date(1e3*parseFloat(n))},W:function(e,n,t){var r=parseInt(n),o=new Date(e.getFullYear(),0,2+7*(r-1),0,0,0,0);return o.setDate(o.getDate()-o.getDay()+t.firstDayOfWeek),o},Y:function(e,n){e.setFullYear(parseFloat(n))},Z:function(e,n){return new Date(n)},d:function(e,n){e.setDate(parseFloat(n))},h:function(e,n){e.setHours(parseFloat(n))},i:function(e,n){e.setMinutes(parseFloat(n))},j:function(e,n){e.setDate(parseFloat(n))},l:v,m:function(e,n){e.setMonth(parseFloat(n)-1)},n:function(e,n){e.setMonth(parseFloat(n)-1)},s:function(e,n){e.setSeconds(parseFloat(n))},u:function(e,n){return new Date(parseFloat(n))},w:v,y:function(e,n){e.setFullYear(2e3+parseFloat(n))}},g={D:"(\\w+)",F:"(\\w+)",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"(\\w+)",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"(\\w+)",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},E={Z:function(e){return e.toISOString()},D:function(e,n,t){return n.weekdays.shorthand[E.w(e,n,t)]},F:function(e,n,t){return y(E.n(e,n,t)-1,!1,n)},G:function(e,n,t){return a(E.h(e,n,t))},H:function(e){return a(e.getHours())},J:function(e,n){return void 0!==n.ordinal?e.getDate()+n.ordinal(e.getDate()):e.getDate()},K:function(e,n){return n.amPM[i(e.getHours()>11)]},M:function(e,n){return y(e.getMonth(),!0,n)},S:function(e){return a(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,n,t){return t.getWeek(e)},Y:function(e){return a(e.getFullYear(),4)},d:function(e){return a(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return a(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,n){return n.weekdays.longhand[e.getDay()]},m:function(e){return a(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a,s=e.isMobile,c=void 0!==s&&s;return function(e,n,r){var o=r||i;return void 0===t.formatDate||c?n.split("").map((function(n,r,a){return E[n]&&"\\"!==a[r-1]?E[n](e,o,t):"\\"!==n?n:""})).join(""):t.formatDate(e,n,o)}},O=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a;return function(e,n,o,a){if(0===e||e){var s,c=a||i,u=e;if(e instanceof Date)s=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)s=new Date(e);else if("string"==typeof e){var f=n||(t||r).dateFormat,l=String(e).trim();if("today"===l)s=new Date,o=!0;else if(/Z$/.test(l)||/GMT$/.test(l))s=new Date(e);else if(t&&t.parseDate)s=t.parseDate(e,f);else{s=t&&t.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var d=void 0,h=[],p=0,v=0,y="";p=0?new Date:new Date(E.config.minDate.getTime()),t=D(E.config);n.setHours(t.hours,t.minutes,t.seconds,n.getMilliseconds()),E.selectedDates=[n],E.latestSelectedDateObj=n}void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var n="keydown"===e.type,t=p(e),r=t;void 0!==E.amPM&&t===E.amPM&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]);var o=parseFloat(r.getAttribute("min")),s=parseFloat(r.getAttribute("max")),c=parseFloat(r.getAttribute("step")),u=parseInt(r.value,10),f=u+c*(e.delta||(n?38===e.which?1:-1:0));if(void 0!==r.value&&2===r.value.length){var l=r===E.hourElement,d=r===E.minuteElement;fs&&(f=r===E.hourElement?f-s-i(!E.amPM):o,d&&L(void 0,1,E.hourElement)),E.amPM&&l&&(1===c?f+u===23:Math.abs(f-u)>c)&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]),r.value=a(f)}}(e);var r=E._input.value;N(),be(),E._input.value!==r&&E._debouncedChange()}function N(){if(void 0!==E.hourElement&&void 0!==E.minuteElement){var e,n,t=(parseInt(E.hourElement.value.slice(-2),10)||0)%24,r=(parseInt(E.minuteElement.value,10)||0)%60,o=void 0!==E.secondElement?(parseInt(E.secondElement.value,10)||0)%60:0;void 0!==E.amPM&&(e=t,n=E.amPM.textContent,t=e%12+12*i(n===E.l10n.amPM[1]));var a=void 0!==E.config.minTime||E.config.minDate&&E.minDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.minDate,!0);if(void 0!==E.config.maxTime||E.config.maxDate&&E.maxDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.maxDate,!0)){var s=void 0!==E.config.maxTime?E.config.maxTime:E.config.maxDate;(t=Math.min(t,s.getHours()))===s.getHours()&&(r=Math.min(r,s.getMinutes())),r===s.getMinutes()&&(o=Math.min(o,s.getSeconds()))}if(a){var c=void 0!==E.config.minTime?E.config.minTime:E.config.minDate;(t=Math.max(t,c.getHours()))===c.getHours()&&r=12)]),void 0!==E.secondElement&&(E.secondElement.value=a(t)))}function R(e){var n=p(e),t=parseInt(n.value)+(e.delta||0);(t/1e3>1||"Enter"===e.key&&!/[^\d]/.test(t.toString()))&&X(t)}function P(e,n,t,r){return n instanceof Array?n.forEach((function(n){return P(e,n,t,r)})):e instanceof Array?e.forEach((function(e){return P(e,n,t,r)})):(e.addEventListener(n,t,r),void E._handlers.push({remove:function(){return e.removeEventListener(n,t)}}))}function k(){ve("onChange")}function M(e,n){var t=void 0!==e?E.parseDate(e):E.latestSelectedDateObj||(E.config.minDate&&E.config.minDate>E.now?E.config.minDate:E.config.maxDate&&E.config.maxDate=0&&A(e,E.selectedDates[1])<=0}(n)&&!me(n)&&a.classList.add("inRange"),E.weekNumbers&&1===E.config.showMonths&&"prevMonthDay"!==e&&t%7==1&&E.weekNumbers.insertAdjacentHTML("beforeend",""+E.config.getWeek(n)+""),ve("onDayCreate",a),a}function j(e){e.focus(),"range"===E.config.mode&&re(e)}function K(e){for(var n=e>0?0:E.config.showMonths-1,t=e>0?E.config.showMonths:-1,r=n;r!=t;r+=e)for(var o=E.daysContainer.children[r],a=e>0?0:o.children.length-1,i=e>0?o.children.length:-1,s=a;s!=i;s+=e){var c=o.children[s];if(-1===c.className.indexOf("hidden")&&$(c.dateObj))return c}}function U(e,n){var t=ee(document.activeElement||document.body),r=void 0!==e?e:t?document.activeElement:void 0!==E.selectedDateElem&&ee(E.selectedDateElem)?E.selectedDateElem:void 0!==E.todayDateElem&&ee(E.todayDateElem)?E.todayDateElem:K(n>0?1:-1);void 0===r?E._input.focus():t?function(e,n){for(var t=-1===e.className.indexOf("Month")?e.dateObj.getMonth():E.currentMonth,r=n>0?E.config.showMonths:-1,o=n>0?1:-1,a=t-E.currentMonth;a!=r;a+=o)for(var i=E.daysContainer.children[a],s=t-E.currentMonth===a?e.$i+n:n<0?i.children.length-1:0,c=i.children.length,u=s;u>=0&&u0?c:-1);u+=o){var f=i.children[u];if(-1===f.className.indexOf("hidden")&&$(f.dateObj)&&Math.abs(e.$i-u)>=Math.abs(n))return j(f)}E.changeMonth(o),U(K(o),0)}(r,n):j(r)}function B(e,n){for(var t=(new Date(e,n,1).getDay()-E.l10n.firstDayOfWeek+7)%7,r=E.utils.getDaysInMonth((n-1+12)%12,e),o=E.utils.getDaysInMonth(n,e),a=window.document.createDocumentFragment(),i=E.config.showMonths>1,s=i?"prevMonthDay hidden":"prevMonthDay",c=i?"nextMonthDay hidden":"nextMonthDay",u=r+1-t,l=0;u<=r;u++,l++)a.appendChild(H(s,new Date(e,n-1,u),u,l));for(u=1;u<=o;u++,l++)a.appendChild(H("",new Date(e,n,u),u,l));for(var d=o+1;d<=42-t&&(1===E.config.showMonths||l%7!=0);d++,l++)a.appendChild(H(c,new Date(e,n+1,d%o),d,l));var h=f("div","dayContainer");return h.appendChild(a),h}function V(){if(void 0!==E.daysContainer){l(E.daysContainer),E.weekNumbers&&l(E.weekNumbers);for(var e=document.createDocumentFragment(),n=0;n1||"dropdown"!==E.config.monthSelectorType)){var e=function(e){return!(void 0!==E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&eE.config.maxDate.getMonth())};E.monthsDropdownContainer.tabIndex=-1,E.monthsDropdownContainer.innerHTML="";for(var n=0;n<12;n++)if(e(n)){var t=f("option","flatpickr-monthDropdown-month");t.value=new Date(E.currentYear,n).getMonth().toString(),t.textContent=y(n,E.config.shorthandCurrentMonth,E.l10n),t.tabIndex=-1,E.currentMonth===n&&(t.selected=!0),E.monthsDropdownContainer.appendChild(t)}}}function G(){var e,n=f("div","flatpickr-month"),t=window.document.createDocumentFragment();E.config.showMonths>1||"static"===E.config.monthSelectorType?e=f("span","cur-month"):(E.monthsDropdownContainer=f("select","flatpickr-monthDropdown-months"),E.monthsDropdownContainer.setAttribute("aria-label",E.l10n.monthAriaLabel),P(E.monthsDropdownContainer,"change",(function(e){var n=p(e),t=parseInt(n.value,10);E.changeMonth(t-E.currentMonth),ve("onMonthChange")})),Y(),e=E.monthsDropdownContainer);var r=h("cur-year",{tabindex:"-1"}),o=r.getElementsByTagName("input")[0];o.setAttribute("aria-label",E.l10n.yearAriaLabel),E.config.minDate&&o.setAttribute("min",E.config.minDate.getFullYear().toString()),E.config.maxDate&&(o.setAttribute("max",E.config.maxDate.getFullYear().toString()),o.disabled=!!E.config.minDate&&E.config.minDate.getFullYear()===E.config.maxDate.getFullYear());var a=f("div","flatpickr-current-month");return a.appendChild(e),a.appendChild(r),t.appendChild(a),n.appendChild(t),{container:n,yearElement:o,monthElement:e}}function J(){l(E.monthNav),E.monthNav.appendChild(E.prevMonthNav),E.config.showMonths&&(E.yearElements=[],E.monthElements=[]);for(var e=E.config.showMonths;e--;){var n=G();E.yearElements.push(n.yearElement),E.monthElements.push(n.monthElement),E.monthNav.appendChild(n.container)}E.monthNav.appendChild(E.nextMonthNav)}function q(){E.weekdayContainer?l(E.weekdayContainer):E.weekdayContainer=f("div","flatpickr-weekdays");for(var e=E.config.showMonths;e--;){var n=f("div","flatpickr-weekdaycontainer");E.weekdayContainer.appendChild(n)}return W(),E.weekdayContainer}function W(){if(E.weekdayContainer){var e=E.l10n.firstDayOfWeek,t=n(E.l10n.weekdays.shorthand);e>0&&e\n "+t.join("")+"\n \n "}}function z(e,n){void 0===n&&(n=!0);var t=n?e:e-E.currentMonth;t<0&&!0===E._hidePrevMonthArrow||t>0&&!0===E._hideNextMonthArrow||(E.currentMonth+=t,(E.currentMonth<0||E.currentMonth>11)&&(E.currentYear+=E.currentMonth>11?1:-1,E.currentMonth=(E.currentMonth+12)%12,ve("onYearChange"),Y()),V(),ve("onMonthChange"),ge())}function Q(e){return!(!E.config.appendTo||!E.config.appendTo.contains(e))||E.calendarContainer.contains(e)}function Z(e){if(E.isOpen&&!E.config.inline){var n=p(e),t=Q(n),r=n===E.input||n===E.altInput||E.element.contains(n)||e.path&&e.path.indexOf&&(~e.path.indexOf(E.input)||~e.path.indexOf(E.altInput)),o="blur"===e.type?r&&e.relatedTarget&&!Q(e.relatedTarget):!r&&!t&&!Q(e.relatedTarget),a=!E.config.ignoredFocusElements.some((function(e){return e.contains(n)}));o&&a&&(void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement&&""!==E.input.value&&void 0!==E.input.value&&x(),E.close(),E.config&&"range"===E.config.mode&&1===E.selectedDates.length&&(E.clear(!1),E.redraw()))}}function X(e){if(!(!e||E.config.minDate&&eE.config.maxDate.getFullYear())){var n=e,t=E.currentYear!==n;E.currentYear=n||E.currentYear,E.config.maxDate&&E.currentYear===E.config.maxDate.getFullYear()?E.currentMonth=Math.min(E.config.maxDate.getMonth(),E.currentMonth):E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&(E.currentMonth=Math.max(E.config.minDate.getMonth(),E.currentMonth)),t&&(E.redraw(),ve("onYearChange"),Y())}}function $(e,n){var t;void 0===n&&(n=!0);var r=E.parseDate(e,void 0,n);if(E.config.minDate&&r&&A(r,E.config.minDate,void 0!==n?n:!E.minDateHasTime)<0||E.config.maxDate&&r&&A(r,E.config.maxDate,void 0!==n?n:!E.maxDateHasTime)>0)return!1;if(!E.config.enable&&0===E.config.disable.length)return!0;if(void 0===r)return!1;for(var o=!!E.config.enable,a=null!==(t=E.config.enable)&&void 0!==t?t:E.config.disable,i=0,s=void 0;i=s.from.getTime()&&r.getTime()<=s.to.getTime())return o}return!o}function ee(e){return void 0!==E.daysContainer&&-1===e.className.indexOf("hidden")&&-1===e.className.indexOf("flatpickr-disabled")&&E.daysContainer.contains(e)}function ne(e){e.target!==E._input||!(E.selectedDates.length>0||E._input.value.length>0)||e.relatedTarget&&Q(e.relatedTarget)||E.setDate(E._input.value,!0,e.target===E.altInput?E.config.altFormat:E.config.dateFormat)}function te(e){var n=p(e),t=E.config.wrap?v.contains(n):n===E._input,r=E.config.allowInput,o=E.isOpen&&(!r||!t),a=E.config.inline&&t&&!r;if(13===e.keyCode&&t){if(r)return E.setDate(E._input.value,!0,n===E.altInput?E.config.altFormat:E.config.dateFormat),n.blur();E.open()}else if(Q(n)||o||a){var i=!!E.timeContainer&&E.timeContainer.contains(n);switch(e.keyCode){case 13:i?(e.preventDefault(),x(),fe()):le(e);break;case 27:e.preventDefault(),fe();break;case 8:case 46:t&&!E.config.allowInput&&(e.preventDefault(),E.clear());break;case 37:case 39:if(i||t)E.hourElement&&E.hourElement.focus();else if(e.preventDefault(),void 0!==E.daysContainer&&(!1===r||document.activeElement&&ee(document.activeElement))){var s=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),z(s),U(K(1),0)):U(void 0,s)}break;case 38:case 40:e.preventDefault();var c=40===e.keyCode?1:-1;E.daysContainer&&void 0!==n.$i||n===E.input||n===E.altInput?e.ctrlKey?(e.stopPropagation(),X(E.currentYear-c),U(K(1),0)):i||U(void 0,7*c):n===E.currentYearElement?X(E.currentYear-c):E.config.enableTime&&(!i&&E.hourElement&&E.hourElement.focus(),x(e),E._debouncedChange());break;case 9:if(i){var u=[E.hourElement,E.minuteElement,E.secondElement,E.amPM].concat(E.pluginElements).filter((function(e){return e})),f=u.indexOf(n);if(-1!==f){var l=u[f+(e.shiftKey?-1:1)];e.preventDefault(),(l||E._input).focus()}}else!E.config.noCalendar&&E.daysContainer&&E.daysContainer.contains(n)&&e.shiftKey&&(e.preventDefault(),E._input.focus())}}if(void 0!==E.amPM&&n===E.amPM)switch(e.key){case E.l10n.amPM[0].charAt(0):case E.l10n.amPM[0].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[0],N(),be();break;case E.l10n.amPM[1].charAt(0):case E.l10n.amPM[1].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[1],N(),be()}(t||Q(n))&&ve("onKeyDown",e)}function re(e){if(1===E.selectedDates.length&&(!e||e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled"))){for(var n=e?e.dateObj.getTime():E.days.firstElementChild.dateObj.getTime(),t=E.parseDate(E.selectedDates[0],void 0,!0).getTime(),r=Math.min(n,E.selectedDates[0].getTime()),o=Math.max(n,E.selectedDates[0].getTime()),a=!1,i=0,s=0,c=r;cr&&ci)?i=c:c>t&&(!s||c0&&h0&&h>s;return p?(d.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach((function(e){d.classList.remove(e)})),"continue"):a&&!p?"continue":(["startRange","inRange","endRange","notAllowed"].forEach((function(e){d.classList.remove(e)})),void(void 0!==e&&(e.classList.add(n<=E.selectedDates[0].getTime()?"startRange":"endRange"),tn&&h===t&&d.classList.add("endRange"),h>=i&&(0===s||h<=s)&&(u=t,l=n,(c=h)>Math.min(u,l)&&c0||t.getMinutes()>0||t.getSeconds()>0),E.selectedDates&&(E.selectedDates=E.selectedDates.filter((function(e){return $(e)})),E.selectedDates.length||"min"!==e||I(t),be()),E.daysContainer&&(ue(),void 0!==t?E.currentYearElement[e]=t.getFullYear().toString():E.currentYearElement.removeAttribute(e),E.currentYearElement.disabled=!!r&&void 0!==t&&r.getFullYear()===t.getFullYear())}}function ie(){return E.config.wrap?v.querySelector("[data-input]"):v}function se(){"object"!=typeof E.config.locale&&void 0===S.l10ns[E.config.locale]&&E.config.errorHandler(new Error("flatpickr: invalid locale "+E.config.locale)),E.l10n=e(e({},S.l10ns.default),"object"==typeof E.config.locale?E.config.locale:"default"!==E.config.locale?S.l10ns[E.config.locale]:void 0),g.K="("+E.l10n.amPM[0]+"|"+E.l10n.amPM[1]+"|"+E.l10n.amPM[0].toLowerCase()+"|"+E.l10n.amPM[1].toLowerCase()+")",void 0===e(e({},m),JSON.parse(JSON.stringify(v.dataset||{}))).time_24hr&&void 0===S.defaultConfig.time_24hr&&(E.config.time_24hr=E.l10n.time_24hr),E.formatDate=b(E),E.parseDate=O({config:E.config,l10n:E.l10n})}function ce(e){if("function"!=typeof E.config.position){if(void 0!==E.calendarContainer){ve("onPreCalendarPosition");var n=e||E._positionElement,t=Array.prototype.reduce.call(E.calendarContainer.children,(function(e,n){return e+n.offsetHeight}),0),r=E.calendarContainer.offsetWidth,o=E.config.position.split(" "),a=o[0],i=o.length>1?o[1]:null,s=n.getBoundingClientRect(),c=window.innerHeight-s.bottom,f="above"===a||"below"!==a&&ct,l=window.pageYOffset+s.top+(f?-t-2:n.offsetHeight+2);if(u(E.calendarContainer,"arrowTop",!f),u(E.calendarContainer,"arrowBottom",f),!E.config.inline){var d=window.pageXOffset+s.left,h=!1,p=!1;"center"===i?(d-=(r-s.width)/2,h=!0):"right"===i&&(d-=r-s.width,p=!0),u(E.calendarContainer,"arrowLeft",!h&&!p),u(E.calendarContainer,"arrowCenter",h),u(E.calendarContainer,"arrowRight",p);var v=window.document.body.offsetWidth-(window.pageXOffset+s.right),y=d+r>window.document.body.offsetWidth,m=v+r>window.document.body.offsetWidth;if(u(E.calendarContainer,"rightMost",y),!E.config.static)if(E.calendarContainer.style.top=l+"px",y)if(m){var g=function(){for(var e=null,n=0;nE.currentMonth+E.config.showMonths-1)&&"range"!==E.config.mode;if(E.selectedDateElem=t,"single"===E.config.mode)E.selectedDates=[r];else if("multiple"===E.config.mode){var a=me(r);a?E.selectedDates.splice(parseInt(a),1):E.selectedDates.push(r)}else"range"===E.config.mode&&(2===E.selectedDates.length&&E.clear(!1,!1),E.latestSelectedDateObj=r,E.selectedDates.push(r),0!==A(r,E.selectedDates[0],!0)&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()})));if(N(),o){var i=E.currentYear!==r.getFullYear();E.currentYear=r.getFullYear(),E.currentMonth=r.getMonth(),i&&(ve("onYearChange"),Y()),ve("onMonthChange")}if(ge(),V(),be(),o||"range"===E.config.mode||1!==E.config.showMonths?void 0!==E.selectedDateElem&&void 0===E.hourElement&&E.selectedDateElem&&E.selectedDateElem.focus():j(t),void 0!==E.hourElement&&void 0!==E.hourElement&&E.hourElement.focus(),E.config.closeOnSelect){var s="single"===E.config.mode&&!E.config.enableTime,c="range"===E.config.mode&&2===E.selectedDates.length&&!E.config.enableTime;(s||c)&&fe()}k()}}E.parseDate=O({config:E.config,l10n:E.l10n}),E._handlers=[],E.pluginElements=[],E.loadedPlugins=[],E._bind=P,E._setHoursFromDate=I,E._positionCalendar=ce,E.changeMonth=z,E.changeYear=X,E.clear=function(e,n){if(void 0===e&&(e=!0),void 0===n&&(n=!0),E.input.value="",void 0!==E.altInput&&(E.altInput.value=""),void 0!==E.mobileInput&&(E.mobileInput.value=""),E.selectedDates=[],E.latestSelectedDateObj=void 0,!0===n&&(E.currentYear=E._initialDate.getFullYear(),E.currentMonth=E._initialDate.getMonth()),!0===E.config.enableTime){var t=D(E.config);C(t.hours,t.minutes,t.seconds)}E.redraw(),e&&ve("onChange")},E.close=function(){E.isOpen=!1,E.isMobile||(void 0!==E.calendarContainer&&E.calendarContainer.classList.remove("open"),void 0!==E._input&&E._input.classList.remove("active")),ve("onClose")},E._createElement=f,E.destroy=function(){void 0!==E.config&&ve("onDestroy");for(var e=E._handlers.length;e--;)E._handlers[e].remove();if(E._handlers=[],E.mobileInput)E.mobileInput.parentNode&&E.mobileInput.parentNode.removeChild(E.mobileInput),E.mobileInput=void 0;else if(E.calendarContainer&&E.calendarContainer.parentNode)if(E.config.static&&E.calendarContainer.parentNode){var n=E.calendarContainer.parentNode;if(n.lastChild&&n.removeChild(n.lastChild),n.parentNode){for(;n.firstChild;)n.parentNode.insertBefore(n.firstChild,n);n.parentNode.removeChild(n)}}else E.calendarContainer.parentNode.removeChild(E.calendarContainer);E.altInput&&(E.input.type="text",E.altInput.parentNode&&E.altInput.parentNode.removeChild(E.altInput),delete E.altInput),E.input&&(E.input.type=E.input._type,E.input.classList.remove("flatpickr-input"),E.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach((function(e){try{delete E[e]}catch(e){}}))},E.isEnabled=$,E.jumpToDate=M,E.open=function(e,n){if(void 0===n&&(n=E._positionElement),!0===E.isMobile){if(e){e.preventDefault();var t=p(e);t&&t.blur()}return void 0!==E.mobileInput&&(E.mobileInput.focus(),E.mobileInput.click()),void ve("onOpen")}if(!E._input.disabled&&!E.config.inline){var r=E.isOpen;E.isOpen=!0,r||(E.calendarContainer.classList.add("open"),E._input.classList.add("active"),ve("onOpen"),ce(n)),!0===E.config.enableTime&&!0===E.config.noCalendar&&(!1!==E.config.allowInput||void 0!==e&&E.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return E.hourElement.select()}),50))}},E.redraw=ue,E.set=function(e,n){if(null!==e&&"object"==typeof e)for(var r in Object.assign(E.config,e),e)void 0!==de[r]&&de[r].forEach((function(e){return e()}));else E.config[e]=n,void 0!==de[e]?de[e].forEach((function(e){return e()})):t.indexOf(e)>-1&&(E.config[e]=c(n));E.redraw(),be(!0)},E.setDate=function(e,n,t){if(void 0===n&&(n=!1),void 0===t&&(t=E.config.dateFormat),0!==e&&!e||e instanceof Array&&0===e.length)return E.clear(n);he(e,t),E.latestSelectedDateObj=E.selectedDates[E.selectedDates.length-1],E.redraw(),M(void 0,n),I(),0===E.selectedDates.length&&E.clear(!1),be(n),n&&ve("onChange")},E.toggle=function(e){if(!0===E.isOpen)return E.close();E.open(e)};var de={locale:[se,W],showMonths:[J,T,q],minDate:[M],maxDate:[M],clickOpens:[function(){!0===E.config.clickOpens?(P(E._input,"focus",E.open),P(E._input,"click",E.open)):(E._input.removeEventListener("focus",E.open),E._input.removeEventListener("click",E.open))}]};function he(e,n){var t=[];if(e instanceof Array)t=e.map((function(e){return E.parseDate(e,n)}));else if(e instanceof Date||"number"==typeof e)t=[E.parseDate(e,n)];else if("string"==typeof e)switch(E.config.mode){case"single":case"time":t=[E.parseDate(e,n)];break;case"multiple":t=e.split(E.config.conjunction).map((function(e){return E.parseDate(e,n)}));break;case"range":t=e.split(E.l10n.rangeSeparator).map((function(e){return E.parseDate(e,n)}))}else E.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));E.selectedDates=E.config.allowInvalidPreload?t:t.filter((function(e){return e instanceof Date&&$(e,!1)})),"range"===E.config.mode&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()}))}function pe(e){return e.slice().map((function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?E.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:E.parseDate(e.from,void 0),to:E.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function ve(e,n){if(void 0!==E.config){var t=E.config[e];if(void 0!==t&&t.length>0)for(var r=0;t[r]&&r1||"static"===E.config.monthSelectorType?E.monthElements[n].textContent=y(t.getMonth(),E.config.shorthandCurrentMonth,E.l10n)+" ":E.monthsDropdownContainer.value=t.getMonth().toString(),e.value=t.getFullYear().toString()})),E._hidePrevMonthArrow=void 0!==E.config.minDate&&(E.currentYear===E.config.minDate.getFullYear()?E.currentMonth<=E.config.minDate.getMonth():E.currentYearE.config.maxDate.getMonth():E.currentYear>E.config.maxDate.getFullYear()))}function Ee(e){return E.selectedDates.map((function(n){return E.formatDate(n,e)})).filter((function(e,n,t){return"range"!==E.config.mode||E.config.enableTime||t.indexOf(e)===n})).join("range"!==E.config.mode?E.config.conjunction:E.l10n.rangeSeparator)}function be(e){void 0===e&&(e=!0),void 0!==E.mobileInput&&E.mobileFormatStr&&(E.mobileInput.value=void 0!==E.latestSelectedDateObj?E.formatDate(E.latestSelectedDateObj,E.mobileFormatStr):""),E.input.value=Ee(E.config.dateFormat),void 0!==E.altInput&&(E.altInput.value=Ee(E.config.altFormat)),!1!==e&&ve("onValueUpdate")}function Oe(e){var n=p(e),t=E.prevMonthNav.contains(n),r=E.nextMonthNav.contains(n);t||r?z(t?-1:1):E.yearElements.indexOf(n)>=0?n.select():n.classList.contains("arrowUp")?E.changeYear(E.currentYear+1):n.classList.contains("arrowDown")&&E.changeYear(E.currentYear-1)}return function(){E.element=E.input=v,E.isOpen=!1,function(){var n=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],o=e(e({},JSON.parse(JSON.stringify(v.dataset||{}))),m),a={};E.config.parseDate=o.parseDate,E.config.formatDate=o.formatDate,Object.defineProperty(E.config,"enable",{get:function(){return E.config._enable},set:function(e){E.config._enable=pe(e)}}),Object.defineProperty(E.config,"disable",{get:function(){return E.config._disable},set:function(e){E.config._disable=pe(e)}});var i="time"===o.mode;if(!o.dateFormat&&(o.enableTime||i)){var s=S.defaultConfig.dateFormat||r.dateFormat;a.dateFormat=o.noCalendar||i?"H:i"+(o.enableSeconds?":S":""):s+" H:i"+(o.enableSeconds?":S":"")}if(o.altInput&&(o.enableTime||i)&&!o.altFormat){var u=S.defaultConfig.altFormat||r.altFormat;a.altFormat=o.noCalendar||i?"h:i"+(o.enableSeconds?":S K":" K"):u+" h:i"+(o.enableSeconds?":S":"")+" K"}Object.defineProperty(E.config,"minDate",{get:function(){return E.config._minDate},set:ae("min")}),Object.defineProperty(E.config,"maxDate",{get:function(){return E.config._maxDate},set:ae("max")});var f=function(e){return function(n){E.config["min"===e?"_minTime":"_maxTime"]=E.parseDate(n,"H:i:S")}};Object.defineProperty(E.config,"minTime",{get:function(){return E.config._minTime},set:f("min")}),Object.defineProperty(E.config,"maxTime",{get:function(){return E.config._maxTime},set:f("max")}),"time"===o.mode&&(E.config.noCalendar=!0,E.config.enableTime=!0),Object.assign(E.config,a,o);for(var l=0;l-1?E.config[h]=c(d[h]).map(_).concat(E.config[h]):void 0===o[h]&&(E.config[h]=d[h])}o.altInputClass||(E.config.altInputClass=ie().className+" "+E.config.altInputClass),ve("onParseConfig")}(),se(),E.input=ie(),E.input?(E.input._type=E.input.type,E.input.type="text",E.input.classList.add("flatpickr-input"),E._input=E.input,E.config.altInput&&(E.altInput=f(E.input.nodeName,E.config.altInputClass),E._input=E.altInput,E.altInput.placeholder=E.input.placeholder,E.altInput.disabled=E.input.disabled,E.altInput.required=E.input.required,E.altInput.tabIndex=E.input.tabIndex,E.altInput.type="text",E.input.setAttribute("type","hidden"),!E.config.static&&E.input.parentNode&&E.input.parentNode.insertBefore(E.altInput,E.input.nextSibling)),E.config.allowInput||E._input.setAttribute("readonly","readonly"),E._positionElement=E.config.positionElement||E._input):E.config.errorHandler(new Error("Invalid input element specified")),function(){E.selectedDates=[],E.now=E.parseDate(E.config.now)||new Date;var e=E.config.defaultDate||("INPUT"!==E.input.nodeName&&"TEXTAREA"!==E.input.nodeName||!E.input.placeholder||E.input.value!==E.input.placeholder?E.input.value:null);e&&he(e,E.config.dateFormat),E._initialDate=E.selectedDates.length>0?E.selectedDates[0]:E.config.minDate&&E.config.minDate.getTime()>E.now.getTime()?E.config.minDate:E.config.maxDate&&E.config.maxDate.getTime()0&&(E.latestSelectedDateObj=E.selectedDates[0]),void 0!==E.config.minTime&&(E.config.minTime=E.parseDate(E.config.minTime,"H:i")),void 0!==E.config.maxTime&&(E.config.maxTime=E.parseDate(E.config.maxTime,"H:i")),E.minDateHasTime=!!E.config.minDate&&(E.config.minDate.getHours()>0||E.config.minDate.getMinutes()>0||E.config.minDate.getSeconds()>0),E.maxDateHasTime=!!E.config.maxDate&&(E.config.maxDate.getHours()>0||E.config.maxDate.getMinutes()>0||E.config.maxDate.getSeconds()>0)}(),E.utils={getDaysInMonth:function(e,n){return void 0===e&&(e=E.currentMonth),void 0===n&&(n=E.currentYear),1===e&&(n%4==0&&n%100!=0||n%400==0)?29:E.l10n.daysInMonth[e]}},E.isMobile||function(){var e=window.document.createDocumentFragment();if(E.calendarContainer=f("div","flatpickr-calendar"),E.calendarContainer.tabIndex=-1,!E.config.noCalendar){if(e.appendChild((E.monthNav=f("div","flatpickr-months"),E.yearElements=[],E.monthElements=[],E.prevMonthNav=f("span","flatpickr-prev-month"),E.prevMonthNav.innerHTML=E.config.prevArrow,E.nextMonthNav=f("span","flatpickr-next-month"),E.nextMonthNav.innerHTML=E.config.nextArrow,J(),Object.defineProperty(E,"_hidePrevMonthArrow",{get:function(){return E.__hidePrevMonthArrow},set:function(e){E.__hidePrevMonthArrow!==e&&(u(E.prevMonthNav,"flatpickr-disabled",e),E.__hidePrevMonthArrow=e)}}),Object.defineProperty(E,"_hideNextMonthArrow",{get:function(){return E.__hideNextMonthArrow},set:function(e){E.__hideNextMonthArrow!==e&&(u(E.nextMonthNav,"flatpickr-disabled",e),E.__hideNextMonthArrow=e)}}),E.currentYearElement=E.yearElements[0],ge(),E.monthNav)),E.innerContainer=f("div","flatpickr-innerContainer"),E.config.weekNumbers){var n=function(){E.calendarContainer.classList.add("hasWeeks");var e=f("div","flatpickr-weekwrapper");e.appendChild(f("span","flatpickr-weekday",E.l10n.weekAbbreviation));var n=f("div","flatpickr-weeks");return e.appendChild(n),{weekWrapper:e,weekNumbers:n}}(),t=n.weekWrapper,r=n.weekNumbers;E.innerContainer.appendChild(t),E.weekNumbers=r,E.weekWrapper=t}E.rContainer=f("div","flatpickr-rContainer"),E.rContainer.appendChild(q()),E.daysContainer||(E.daysContainer=f("div","flatpickr-days"),E.daysContainer.tabIndex=-1),V(),E.rContainer.appendChild(E.daysContainer),E.innerContainer.appendChild(E.rContainer),e.appendChild(E.innerContainer)}E.config.enableTime&&e.appendChild(function(){E.calendarContainer.classList.add("hasTime"),E.config.noCalendar&&E.calendarContainer.classList.add("noCalendar");var e=D(E.config);E.timeContainer=f("div","flatpickr-time"),E.timeContainer.tabIndex=-1;var n=f("span","flatpickr-time-separator",":"),t=h("flatpickr-hour",{"aria-label":E.l10n.hourAriaLabel});E.hourElement=t.getElementsByTagName("input")[0];var r=h("flatpickr-minute",{"aria-label":E.l10n.minuteAriaLabel});if(E.minuteElement=r.getElementsByTagName("input")[0],E.hourElement.tabIndex=E.minuteElement.tabIndex=-1,E.hourElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getHours():E.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),E.minuteElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getMinutes():e.minutes),E.hourElement.setAttribute("step",E.config.hourIncrement.toString()),E.minuteElement.setAttribute("step",E.config.minuteIncrement.toString()),E.hourElement.setAttribute("min",E.config.time_24hr?"0":"1"),E.hourElement.setAttribute("max",E.config.time_24hr?"23":"12"),E.hourElement.setAttribute("maxlength","2"),E.minuteElement.setAttribute("min","0"),E.minuteElement.setAttribute("max","59"),E.minuteElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(t),E.timeContainer.appendChild(n),E.timeContainer.appendChild(r),E.config.time_24hr&&E.timeContainer.classList.add("time24hr"),E.config.enableSeconds){E.timeContainer.classList.add("hasSeconds");var o=h("flatpickr-second");E.secondElement=o.getElementsByTagName("input")[0],E.secondElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getSeconds():e.seconds),E.secondElement.setAttribute("step",E.minuteElement.getAttribute("step")),E.secondElement.setAttribute("min","0"),E.secondElement.setAttribute("max","59"),E.secondElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(f("span","flatpickr-time-separator",":")),E.timeContainer.appendChild(o)}return E.config.time_24hr||(E.amPM=f("span","flatpickr-am-pm",E.l10n.amPM[i((E.latestSelectedDateObj?E.hourElement.value:E.config.defaultHour)>11)]),E.amPM.title=E.l10n.toggleTitle,E.amPM.tabIndex=-1,E.timeContainer.appendChild(E.amPM)),E.timeContainer}()),u(E.calendarContainer,"rangeMode","range"===E.config.mode),u(E.calendarContainer,"animate",!0===E.config.animate),u(E.calendarContainer,"multiMonth",E.config.showMonths>1),E.calendarContainer.appendChild(e);var o=void 0!==E.config.appendTo&&void 0!==E.config.appendTo.nodeType;if((E.config.inline||E.config.static)&&(E.calendarContainer.classList.add(E.config.inline?"inline":"static"),E.config.inline&&(!o&&E.element.parentNode?E.element.parentNode.insertBefore(E.calendarContainer,E._input.nextSibling):void 0!==E.config.appendTo&&E.config.appendTo.appendChild(E.calendarContainer)),E.config.static)){var s=f("div","flatpickr-wrapper");E.element.parentNode&&E.element.parentNode.insertBefore(s,E.element),s.appendChild(E.element),E.altInput&&s.appendChild(E.altInput),s.appendChild(E.calendarContainer)}E.config.static||E.config.inline||(void 0!==E.config.appendTo?E.config.appendTo:window.document.body).appendChild(E.calendarContainer)}(),function(){if(E.config.wrap&&["open","close","toggle","clear"].forEach((function(e){Array.prototype.forEach.call(E.element.querySelectorAll("[data-"+e+"]"),(function(n){return P(n,"click",E[e])}))})),E.isMobile)!function(){var e=E.config.enableTime?E.config.noCalendar?"time":"datetime-local":"date";E.mobileInput=f("input",E.input.className+" flatpickr-mobile"),E.mobileInput.tabIndex=1,E.mobileInput.type=e,E.mobileInput.disabled=E.input.disabled,E.mobileInput.required=E.input.required,E.mobileInput.placeholder=E.input.placeholder,E.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",E.selectedDates.length>0&&(E.mobileInput.defaultValue=E.mobileInput.value=E.formatDate(E.selectedDates[0],E.mobileFormatStr)),E.config.minDate&&(E.mobileInput.min=E.formatDate(E.config.minDate,"Y-m-d")),E.config.maxDate&&(E.mobileInput.max=E.formatDate(E.config.maxDate,"Y-m-d")),E.input.getAttribute("step")&&(E.mobileInput.step=String(E.input.getAttribute("step"))),E.input.type="hidden",void 0!==E.altInput&&(E.altInput.type="hidden");try{E.input.parentNode&&E.input.parentNode.insertBefore(E.mobileInput,E.input.nextSibling)}catch(e){}P(E.mobileInput,"change",(function(e){E.setDate(p(e).value,!1,E.mobileFormatStr),ve("onChange"),ve("onClose")}))}();else{var e=s(oe,50);if(E._debouncedChange=s(k,300),E.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&P(E.daysContainer,"mouseover",(function(e){"range"===E.config.mode&&re(p(e))})),P(window.document.body,"keydown",te),E.config.inline||E.config.static||P(window,"resize",e),void 0!==window.ontouchstart?P(window.document,"touchstart",Z):P(window.document,"mousedown",Z),P(window.document,"focus",Z,{capture:!0}),!0===E.config.clickOpens&&(P(E._input,"focus",E.open),P(E._input,"click",E.open)),void 0!==E.daysContainer&&(P(E.monthNav,"click",Oe),P(E.monthNav,["keyup","increment"],R),P(E.daysContainer,"click",le)),void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement){var n=function(e){return p(e).select()};P(E.timeContainer,["increment"],x),P(E.timeContainer,"blur",x,{capture:!0}),P(E.timeContainer,"click",F),P([E.hourElement,E.minuteElement],["focus","click"],n),void 0!==E.secondElement&&P(E.secondElement,"focus",(function(){return E.secondElement&&E.secondElement.select()})),void 0!==E.amPM&&P(E.amPM,"click",(function(e){x(e),k()}))}E.config.allowInput&&P(E._input,"blur",ne)}}(),(E.selectedDates.length||E.config.noCalendar)&&(E.config.enableTime&&I(E.config.noCalendar?E.latestSelectedDateObj:void 0),be(!1)),T();var n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!E.isMobile&&n&&ce(),ve("onReady")}(),E}function T(e,n){for(var t=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),r=[],o=0;o{const n=(e,n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:()=>{}},d=function(e,n){if(!n||1===n)return e.store;var t=e.store.modules&&e.store.modules.team;return t?t.getTeam(n):void 0},h=function(n,t){n.emit("UPDATE",{teams:t.stores,roTeams:t.roStores,id:t.channel,loading:!t.ready&&!t.cacheready,readOnly:t.readOnly||!t.ready&&t.cacheready||t.offline,offline:t.offline,deleted:!t.stores.length,restricted:t.restricted,owned:n.Store.isOwned(t.owners),content:e.clone(t.proxy),hashes:t.hashes},n.clients)},p=function(e,n){var t=e.calendars[n];t&&t.reminders&&Object.keys(t.reminders).forEach((function(e){Array.isArray(t.reminders[e])&&t.reminders[e].forEach((function(e){clearTimeout(e)}))}))},v=function(e,n){var t=e.calendars[n];t&&(t.stores.length||(t.lm.stop(),p(e,n),delete e.calendars[n]))},y=function(e,n,t){n.stores.forEach((function(r){var o=d(e,r);if(o&&o.proxy&&o.rpc&&o.proxy.calendars){var a=o.proxy.calendars[n.channel];a&&(a.color!==t.color&&(a.color=t.color),a.title!==t.title&&(a.title=t.title))}}))},m=function(n,t,r,o){var a=+new Date,i=e.clone(r),s=i.id;if(Array.isArray(t[s])&&t[s].forEach((function(e){clearTimeout(e)})),t[s]=[],!r.deleted){var u=e.find(n,["store","proxy","hideReminders",s])||[],f=n.store.data.lastVisit;if(i.isAllDay&&(i.startDay&&(i.start=+c.parseDate(i.startDay)),i.endDay)){var l=c.parseDate(i.endDay);l.setHours(23),l.setMinutes(59),l.setSeconds(59),i.end=+l}var d=a-6048e5,h=o&&i.start>f&&i.end<=a&&i.end>d;if(i.end<=a&&!h)return delete t[s],void function(n,t){var r=e.find(n,["store","proxy","hideReminders"])||{};Object.keys(r).filter((function(e){return e===t})).forEach((function(e){delete r[e]}))}(n,s);var p=!1,v=function(t){p=!0,n.Store.onReadyEvt.reg((function(){!function(t){if(!e.find(n,["store","proxy","settings","general","calendar","hideNotif"])){var r=i.start<=a?i.start:+new Date;n.store.mailbox.showMessage("reminders",{msg:{ctime:r,type:"REMINDER",missed:Boolean(h),content:i},hash:"REMINDER|"+s+"-"+t},null,(function(){}))}}(t)}))},y=i.reminders||[];y.sort((function(e,n){return e-n})),y.some((function(e){var n=a+6e4*e;if(!u.some((function(n){return e>=n})))return i.start-n>=2147483647||(i.start<=n?(v(e),!0):void t[s].push(setTimeout((function(){v(e)}),i.start-n)))})),p||n.Store.onReadyEvt.reg((function(){n.store.mailbox.hideMessage("reminders",{hash:"REMINDER|"+s},null,(function(){}))}))}},g=function(n,t,r,o){var i=function(e){var n=new Date,t=new Date(n.getFullYear(),n.getMonth()-1,15),r=new Date(n.getFullYear(),n.getMonth()+1,15),o=a.getMonthId(t),i=a.getMonthId(n),s=a.getMonthId(r),c=a.getRecurring([o,i,s],[e]),u=[e];return Array.prototype.push.apply(u,c),a.applyUpdates(u)}(e.clone(r));i.forEach((function(e){m(n,t,e,o)}))},E=function(e,n,t){var r=e.calendars[n];t&&r&&r.reminders&&(1===r.stores.length&&0===r.stores[0]||g(e,r.reminders,t))},b=function(n,t,r){var o=n.calendars[t];if(o&&o.reminders&&!Object.keys(o.reminders).length&&(1!==o.stores.length||0!==o.stores[0])){var a=e.find(o,["proxy","content"]);a&&Object.keys(a).forEach((function(e){g(n,o.reminders,a[e],r)}))}},O=function(t,r,a){var c=e.once(e.mkAsync(a||function(){})),l=r.storeId,v=r.data,m=v.channel;if(m){var g=t.calendars[m],O=function(){h(t,g)};if(g){if(g.readOnly&&v.href){var A=n.parsePadUrl(v.href),w=n.getSecrets("calendar",A.hash,v.password),D=u.createEncryptor(w.keys);g.hashes.editHash=n.getEditHashFromKeys(w),g.lm.setReadOnly(!1,D),g.readOnly=!1}else if(0===l)return 1===g.stores.length&&0===g.stores[0]&&g.tempId.length&&r.cId&&g.tempId.push(r.cId),void c();return-1!==g.roStores.indexOf(l)&&v.href&&(g.roStores.splice(g.roStores.indexOf(l),1),-1!==g.stores.indexOf(0)&&g.stores.splice(g.stores.indexOf(0),1),O()),g.stores&&-1!==g.stores.indexOf(l)?void c():(-1!==g.stores.indexOf(0)&&(g.stores.splice(g.stores.indexOf(0),1),g.tempId=[]),g.stores.push(l),v.href||g.roStores.push(l),O(),void c())}g=t.calendars[m]={ready:!1,channel:m,readOnly:!v.href,tempId:[],stores:[l],roStores:v.href?[]:[l],reminders:{},hashes:{}},0===l&&g.tempId.push(r.cId);var _=n.parsePadUrl(v.href||v.roHref),T=n.getSecrets("calendar",_.hash,v.password),S=u.createEncryptor(T.keys);g.hashes.viewHash=n.getViewHashFromKeys(T),v.href&&(g.hashes.editHash=n.getEditHashFromKeys(T)),g.proxy={metadata:{color:v.color,title:v.title}},O();var x=function(){g.stores.forEach((function(e){var n=d(t,e);n&&n.rpc&&n.proxy.calendars&&(delete n.proxy.calendars[m],(n.unpin||t.unpinPads)([m],(function(e){e&&e.error&&console.error(e.error)})))})),g.lm&&g.lm.stop(),g.stores=[],h(t,g),p(t,m),delete t.calendars[m]};i((function(e){t.store.network&&!r.isNew&&t.Store.isNewChannel(null,m,e((function(n){if(!n||!n.error)return n&&"boolean"==typeof n.isNew&&n.isNew?(x(),c({error:"EDELETED"}),void e.abort()):void 0})))})).nThen((function(){var e;if(1!==l&&l){var n=t.store.modules.team&&t.store.modules.team.getTeamsData(),a=n&&n[l];e=a?a.edPublic:void 0}else e=t.store.proxy.edPublic;var i={data:{},network:t.store.network||t.store.networkPromise,channel:T.channel,crypto:S,owners:[e],ChainPad:f,validateKey:T.keys.validateKey||void 0,userName:"calendar",Cache:o,classic:!0,onRejected:t.Store&&t.Store.onRejected},u=s.create(i);g.lm=u;var d=g.proxy=u.proxy,h=!1,p=function(){h||(h=!0,setTimeout((function(){h=!1,O()})))};u.proxy.on("cacheready",(function(){d.metadata&&(g.cacheready=!0,p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif))})).on("ready",(function(e){var n=e.metadata;if(g.owners=n.owners||[],g.ready=!0,!d.metadata){if(!r.isNew)return void x();d.metadata={color:v.color,title:v.title}}p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif)})).on("change",[],(function(){g.ready&&p()})).on("change",["content"],(function(e,n,r){2!==r.length||!n||e?2!==r.length||n||!e?(r.length>=3&&["start","reminders","isAllDay"].includes(r[2])||r.length>=6&&["start","reminders","isAllDay"].includes(r[5]))&&setTimeout((function(){E(t,m,d.content[r[1]])})):E(t,m,{id:r[1],start:0}):E(t,m,n)})).on("remove",["content"],(function(e,n){p(),(n.length>=3&&"reminders"===n[2]||n.length>=6&&"reminders"===n[5])&&setTimeout((function(){E(t,m,d.content[n[1]])}))})).on("change",["metadata"],(function(){var e=d.metadata;e&&e.title&&e.color&&y(t,g,e)})).on("disconnect",(function(){g.offline=!0,p()})).on("reconnect",(function(){g.offline=!1,p()})).on("error",(function(e){e&&e.error&&("EDELETED"!==e.error?("ERESTRICTED"===e.error&&(g.restricted=!0,p()),c(e)):x())}))}))}},A=function(e,n){if(n.href&&-1===n.href.indexOf("#"))if(e.secondaryKey)try{n.href=e.userObject.cryptor.decrypt(n.href)}catch(e){console.error(e),delete n.href}else delete n.href},w=function(n,t){var r=t.proxy.calendars,o=t.id||1;t.proxy.on("change",["calendars"],(function(r,a,i){i.length<2||(r&&!a&&function(){var e=i[1],t=n.calendars[e];if(t){var r=t.stores.indexOf(o);if(-1!==r){t.stores.splice(r,1);var a=t.roStores.indexOf(o);-1!==a&&t.roStores.splice(a,1),v(n,e),h(n,t)}}}(),!r&&a&&function(){var r=i[1],a=t.proxy.calendars[r];if(a){var s=e.clone(a);A(t,s),O(n,{storeId:o,data:s})}}())})),Object.keys(r||{}).forEach((function(a){var i=e.clone(r[a]);A(t,i),O(n,{storeId:o,lastVisitNotif:!0,data:i})}))},D=function(e,t,o,a){var i=d(e,t.teamId);if(i)if(i.rpc){var s,c,u,f=i.proxy.calendars=i.proxy.calendars||{},l=(s=n.createRandomHash("calendar"),c=n.getSecrets("calendar",s),u=n.getViewHashFromKeys(c),{href:n.hashToHref(s,"calendar"),roHref:n.hashToHref(u,"calendar"),channel:c.channel});l.color=t.color,l.title=t.title,O(e,{storeId:i.id||1,data:l,isNew:!0},(function(n){if(n)return console.error(n),void a({error:n.error});var t=e.calendars[l.channel];r.whenRealtimeSyncs(t.lm.realtime,(function(){f[l.channel]=l,(i.pin||e.pinPads)([l.channel],(function(e){e&&e.error&&console.error(e.error)})),e.Store.onSync(i.id,a)}))}))}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})};return l.init=function(t,o,a){var s={},c=t.store,u={loggedIn:c.loggedIn&&c.proxy.edPublic,store:c,Store:t.Store,pinPads:t.pinPads,unpinPads:t.unpinPads,updateMetadata:t.updateMetadata,emit:a,onReady:e.mkEvent(!0),calendars:{},clients:[]};return function(e,n){var t=e.store.proxy;t.calendars=t.calendars||{},setTimeout(n)}(u,o((function(e){e||function(e){w(e,e.store);var n=e.store.modules.team&&e.store.modules.team.getTeamsData();n&&Object.keys(n).forEach((function(n){var t=d(e,n);w(e,t)}))}(u)}))),u.store.proxy.on("change",["hideReminders"],(function(e,n,t){var r=t[1].split("|")[0];Object.keys(u.calendars).some((function(e){var n=u.calendars[e];if(n&&n.proxy&&n.proxy.content)return n.proxy.content[r]?(setTimeout((function(){E(u,e,n.proxy.content[r])})),!0):void 0}))})),s.closeTeam=function(e){Object.keys(u.calendars).forEach((function(n){var t=u.calendars[n],r=t.stores.indexOf(e);if(-1!==r){t.stores.splice(r,1);var o=t.roStores.indexOf(e);-1!==o&&t.roStores.splice(o,1),v(u,n),h(u,t)}}))},s.openTeam=function(e){var n=d(u,e);n&&w(u,n)},s.upgradeTeam=function(n){if(n){var t=d(u,n);t&&Object.keys(u.calendars).forEach((function(r){var o=u.calendars[r];if(-1!==o.stores.indexOf(n)){var a=t.proxy.calendars[r],i=e.clone(a);A(t,i),O(u,{storeId:n,data:i}),h(u,o)}}))}},s.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1),Object.keys(e.calendars).forEach((function(t){var r=e.calendars[t];if(1===r.stores.length&&0===r.stores[0]&&r.tempId.length){var o=r.tempId.indexOf(n);-1!==o&&r.tempId.splice(o,1),r.tempId.length||(r.stores=[],v(e,t))}}))}(u,e)},s.execCommand=function(t,o,a){var s=o.cmd,c=o.data;if("SUBSCRIBE"!==s){if("OPEN"!==s)return"IMPORT"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=r.id,s=t.calendars[i];if(s)if(Array.isArray(s.stores)&&-1!==s.stores.indexOf(r.teamId)){var c=t.store,u=c.proxy.calendars=c.proxy.calendars||{},f=s.hashes.editHash,l=s.hashes.viewHash;u[i]={href:f&&n.hashToHref(f,"calendar"),roHref:l&&n.hashToHref(l,"calendar"),channel:i,color:e.find(s,["proxy","metadata","color"])||e.getRandomColor(),title:e.find(s,["proxy","metadata","title"])||"..."},t.Store.onSync(null,a),O(t,{storeId:1,data:{href:u[i].href,toHref:u[i].roHref,channel:i}})}else a({error:"EINVAL"});else a({error:"ENOENT"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"IMPORT_ICS"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.id,i=e.calendars[a];if(i&&i.proxy){var s=n.json;i.proxy.content=i.proxy.content||{},Object.keys(s).forEach((function(n){i.proxy.content[n]=s[n],E(e,a,s[n])})),r.whenRealtimeSyncs(i.lm.realtime,(function(){h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"ADD"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=d(t,r.teamId);if(i)if(i.rpc){var s=i.proxy.calendars=i.proxy.calendars||{},c=n.parsePadUrl(r.href),u=n.getSecrets(c.type,c.hash,r.password);if(u.channel===r.channel){var f=n.getEditHashFromKeys(u),l=n.getViewHashFromKeys(u),h=f&&n.hashToHref(f,"calendar"),p={href:h,roHref:l&&n.hashToHref(l,"calendar"),color:r.color,title:r.title,channel:r.channel};!s[r.channel]||!s[r.channel].href&&p.href?(p.color=r.color,p.title=r.title,O(t,{storeId:i.id||1,data:e.clone(p)},(function(e){if(e)return console.error(e),void a({error:e.error});if(h&&i.id&&i.secondaryKey)try{p.href=i.userObject.cryptor.encrypt(h)}catch(e){console.error(e)}s[p.channel]=p,(i.pin||t.pinPads)([p.channel],(function(e){e&&e.error&&console.error(e.error)})),t.Store.onSync(i.id,a)}))):a()}else a({error:"EINVAL"})}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE"===s?u.loggedIn?c.initialCalendar?void u.Store.onReadyEvt.reg((function(){D(u,c,0,a)})):u.store.offline?void a({error:"OFFLINE"}):void D(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"UPDATE"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){var i=t.id,s=n.calendars[i];if(s){var c=e.find(s,["proxy","metadata"]);c?(c.title=t.title,c.color=t.color,r.whenRealtimeSyncs(s.lm.realtime,a),h(n,s),y(n,s,t)):a({error:"EINVAL"})}else a({error:"ENOENT"})}(u,c,0,a):"DELETE"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(e,n,t,r){var o=d(e,n.teamId);if(o)if(o.rpc){if(o.proxy.calendars){var a=n.id;if(o.proxy.calendars[a]){delete o.proxy.calendars[a],(o.unpin||e.unpinPads)([a],(function(e){e&&e.error&&console.error(e.error)}));var i=e.calendars[a],s=i.stores.indexOf(o.id||1);i.stores.splice(s,1),v(e,a),e.Store.onSync(o.id,(function(){h(e,i),r()}))}else r()}}else r({error:"EFORBIDDEN"});else r({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.calendarId,i=e.calendars[a];if(i){var s=new Date(n.start),c=new Date(n.end);n.isAllDay?(n.startDay=s.getFullYear()+"-"+(s.getMonth()+1)+"-"+s.getDate(),n.endDay=c.getFullYear()+"-"+(c.getMonth()+1)+"-"+c.getDate()):(delete n.startDay,delete n.endDay),i.proxy.content=i.proxy.content||{},i.proxy.content[n.id]=n,r.whenRealtimeSyncs(i.lm.realtime,(function(){E(e,a,n),h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"UPDATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){if(t&&t.ev){var s=t.ev.calendarId,c=n.calendars[s];if(c&&c.proxy&&c.proxy.content){var u=c.proxy.content[t.ev.id];if(u){t.rawData=t.rawData||{};var f,l=t.changes||{},d=t.type||{};if(l.calendarId){if(!(f=n.calendars[l.calendarId])||!f.proxy)return void a({error:"ENOENT"});f.proxy.content=f.proxy.content||{}}var p={one:{},from:{}};["one","from","all"].includes(d.which)&&(u.recUpdate=u.recUpdate||p,u.recUpdate.one||(u.recUpdate.one={}),u.recUpdate.from||(u.recUpdate.from={}));var v=u.recUpdate,y=["calendarId"],m=Object.keys(l).filter((function(e){return!y.includes(e)})),g=function(e){[v.from,v.one].forEach((function(n){Object.keys(n).forEach((function(t){Number(t){const r=[],o=null==jt?void 0:jt.httpUnsafeOrigin;ie.fetchApi(o,"config",!0,(e=>{var o,a;(null===(o=null==e?void 0:e.adminKeys)||void 0===o?void 0:o.includes(n))&&r.push("admin");(null===(a=null==e?void 0:e.moderatorKeys)||void 0===a?void 0:a.includes(n))&&r.push("moderator"),t(r)}))},Ut=(e,n,t)=>{e.Store.anonRpcMsg("",{msg:"IS_PREMIUM",data:n},(e=>{let n=Array.isArray(e)&&e[0];t(n?["premium"]:[])}))},Bt={admin:Kt,moderator:Kt,premium:Ut},Vt={init:(e,n,t)=>{const r={store:e.store,Store:e.Store,updateMetadata:e.updateMetadata};return{removeClient:()=>{},execCommand:(e,n,t)=>{console.log("Exex command",e,n);const o=n.cmd,a=n.data;"LIST_BADGES"!==o?"CHECK_BADGE"!==o?t():((e,n,t,r)=>{const{badge:o,channel:a,user:i}=n,s=ie.decodeBase64(i),c=ie.decodeBase64(o),u=Lt.sign.open(c,s);if(!u)return void r({verified:!1});const f=ie.encodeUTF8(u).split("-");if(f[1]!==a)return void r({verified:!1});const l=f[0];let d=Bt[l];d?d(e,i,(e=>{r({verified:e.includes(l),badge:l})})):r({verified:!1})})(r,a,0,t):((e,n,t,r)=>{var o,a;const i=[];null==jt||jt.httpUnsafeOrigin;const s=n.edPublic||(null===(a=null===(o=e.store)||void 0===o?void 0:o.proxy)||void 0===a?void 0:a.edPublic);Ht((e=>{Kt(0,s,e((e=>{Array.prototype.push.apply(i,e)})))})).nThen((n=>{Ut(e,s,n((e=>{Array.prototype.push.apply(i,e)})))})).nThen((()=>{r(i)}))})(r,a,0,t)}}},setCustomize:e=>{jt=null==e?void 0:e.ApiConfig}};var Yt,Gt=o(Object.freeze({__proto__:null,Badge:Vt}));function Jt(){return Yt||(Yt=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A,w,D,_,T,S,x,N,I,C={},R,P,k,M,F,L)=>{const H=y.Account,j=m.Drive,K=x.Badge,U=globalThis;globalThis.nacl=globalThis.nacl||R.Nacl;const B=i.Saferphore;var V=i.mkEvent(!0),Y=i.mkEvent(!0),G=i.mkEvent(!0),J=i.mkEvent(!0);var q={drive:{hideDuplicate:!0},pad:{width:!0,spellcheck:!0},security:{unsafeLinks:!1},general:{allowUserFeedback:!0}};return{setCustomize:n=>{e=n.ApiConfig,C=n.AppConfig},create:function(y){var m=U.Cryptpad_Store={};let x=y.query||function(){},P=y.broadcast||function(){};var M=U.CryptPad_AsyncStore={modules:{}};m.onReadyEvt=V;var W=[],z=function(e,n,t){W.forEach((function(r){r!==t&&x(r,e,n)}))},Q=function(e){if(!e)return M;try{var n=M.modules.team.getTeam(e);return n||void console.error("Team not found",e)}catch(n){return console.error(n),void console.error("Team not found",e)}},Z=m.onSync=function(e,n){var t=Q(e);t?L((function(e){if(t.realtime&&u.whenRealtimeSyncs(t.realtime,e()),!t.id&&t.drive?.realtime&&u.whenRealtimeSyncs(t.drive.realtime,e()),t.sharedFolders&&"object"==typeof t.sharedFolders)for(var n in t.sharedFolders)t.sharedFolders[n].realtime&&u.whenRealtimeSyncs(t.sharedFolders[n].realtime,e())})).nThen((function(){n()})):n({error:"ENOTFOUND"})};m.get=function(e,n,t){var r=Q(n.teamId);r?r.proxy?t(i.find(r.proxy,n.key)):t({error:"ENODRIVE"}):t({error:"ENOTFOUND"})},m.set=function(e,n,t){var r=Q(n.teamId);if(r)if(r.proxy){var o=n.key.slice(),a=o.pop(),s=i.find(r.proxy,o);s&&"object"==typeof s?(void 0===n.value?delete s[a]:s[a]=n.value,n.teamId||(P([e],"UPDATE_METADATA"),Array.isArray(o)&&"profile"===o[0]&&M.messenger&&f.updateMyData(M)),Z(n.teamId,t)):t({error:"INVALID_PATH"})}else t({error:"ENODRIVE"});else t({error:"ENOTFOUND"})};const X=e=>{let n;if(e){const t=Q(e);n=t?.drive?.proxy}else n=M.drive?.proxy;return n};m.drive={get:(e,n,t)=>{let r=X(n.teamId);t(r||{error:"ENOTFOUND"})},set:(e,n,t)=>{let r=X(n.teamId);var o,a;r?(o=r,a=n.value,Object.keys(o).forEach((e=>{delete o[e]})),Object.keys(a).forEach((e=>{o[e]=i.clone(a[e])})),Z(n.teamId,t)):t({error:"ENOTFOUND"})}},m.getSharedFolder=function(e,n,r){var o,a=Q(n.teamId),s=n.id;if(a&&a.manager){if(a.manager.folders[s])return(o=i.clone(a.manager.folders[s].proxy)).offline=Boolean(a.manager.folders[s].offline),void r(o);var c=i.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};c[s]?m.loadSharedFolder(n.teamId,s,c[s],(function(){r(a.manager.folders[s].proxy)})):r({})}else r({error:"ENOTFOUND"})},m.restoreSharedFolder=function(e,n,t){if(n.sfId&&n.drive){var r=Q(n.teamId);r.sharedFolders[n.sfId]&&(Object.keys(n.drive).forEach((function(e){r.sharedFolders[n.sfId].proxy[e]=n.drive[e]})),Object.keys(r.sharedFolders[n.sfId].proxy).forEach((function(e){n.drive[e]||delete r.sharedFolders[n.sfId].proxy[e]}))),Z(n.teamId,t)}else t({error:"EINVAL"})},m.hasSigningKeys=function(){if(M.proxy)return"string"==typeof M.proxy.edPrivate&&"string"==typeof M.proxy.edPublic},m.hasCurveKeys=function(){if(M.proxy)return"string"==typeof M.proxy.curvePrivate&&"string"==typeof M.proxy.curvePublic},m.isOwned=function(e){var n=M.proxy.edPublic;if(!n)return!1;if(!Array.isArray(e)||!e.length)return!1;if(-1!==e.indexOf(n))return!0;var t=M.proxy.teams;return!!t&&Object.keys(t).some((function(n){var r=i.find(t[n],["keys","drive","edPublic"]);return r&&-1!==e.indexOf(r)}))};var $=function(e){var n=e?M.manager.getChannelsList("expirable"):function(){var e=`${M.driveChannel}#drive`;if(!e)return null;var n=M.manager.getChannelsList("pin"),t=M.proxy.profile;if(t){var r=t.edit?a.hrefToHexChannelId("/profile/#"+t.edit,null):null;r&&n.push(r);var o=t.avatar?a.hrefToHexChannelId(t.avatar,null):null;o&&n.push(o)}if(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.friends){var i=f.getFriendChannelsList(M.proxy);n=n.concat(i)}if(M.proxy.mailboxes){var s=Object.keys(M.proxy.mailboxes).map((function(e){if("broadcast"!==e||M.isAdmin)return M.proxy.mailboxes[e].channel})).filter(Boolean);n=n.concat(s)}if(M.proxy.calendars){var c=Object.keys(M.proxy.calendars).map((function(e){return M.proxy.calendars[e].channel}));n=n.concat(c)}return n.push(e),M.data&&M.data.blockId&&n.push(`${M.data.blockId}#block`),n.sort(),n}();return i.deduplicateString(n).sort()};m.pinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){"function"!=typeof t&&(console.error("expected a callback"),t=function(){});var o=n.pads||n;r.rpc.pin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})},m.unpinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){var o=n.pads||n;r.rpc.unpin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})};var ee=M.account={};m.getPinnedUsage=function(e,n,t){var r=Q(n&&n.teamId);r&&r.rpc?r.rpc.getFileListSize((function(e,n){r.id||"number"!=typeof n||(ee.usage=n),t({bytes:n})})):t({error:"RPC_NOT_READY"})},m.updatePinLimit=function(e,n,t){M.rpc?M.rpc.updatePinLimits((function(e,n,r,o){e?t({error:e}):(ee.limit=n,ee.plan=r,ee.note=o,t(ee))})):t({error:"RPC_NOT_READY"})},m.getPinLimit=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.getLimit((function(e,n,o,a){if(e)t({error:e});else{var i=r.id?{}:ee;i.limit=n,i.plan=o,i.note=a,t(i)}})):t({error:"RPC_NOT_READY"})},m.clearOwnedChannel=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.clearOwnedChannel(n.channel,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})};var ne={};m.removeOwnedChannel=function(e,n,t){var r,o,a=n,i=!1;if(n&&"object"==typeof n&&(a=n.channel,i=n.force,r=n.teamId,o=n.reason),a!==M.driveChannel||i){var s=Q(r);s?s.rpc?(m.channels[a]&&(ne[a]=!0),s.rpc.removeOwnedChannel(a,(function(e){e&&delete ne[a],t({error:e})}),o)):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})}else t({error:"User drive removal blocked!"})};m.uploadComplete=function(e,n,t){var r=Q(n.teamId);r?r.rpc?n.owned?r.rpc.ownedUploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):r.rpc.uploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadStatus=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadStatus(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadCancel=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadCancel(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadChunk=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.send.unauthenticated("UPLOAD",n.chunk,(function(e,n){t({error:e,msg:n})})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})};m.anonRpcMsg=function(e,n,t){M.anon_rpc?M.anon_rpc.send(n.msg,n.data,(function(e,n){t(e?{error:e}:n)})):t({error:"ANON_RPC_NOT_READY"})},m.getFileSize=function(e,n,t){var r=i.once(i.mkAsync(t));if(M.anon_rpc){var o=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("GET_FILE_SIZE",o,(function(e,n){if(!e)return n&&n.length&&"number"==typeof n[0]?(0===n[0]&&p.clearChannel(o),void r({size:n[0]})):void r({error:"INVALID_RESPONSE"});r({error:e})}))}else r({error:"ANON_RPC_NOT_READY"})},m.isNewChannel=function(e,n,t){if(M.anon_rpc){var r=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("IS_NEW_CHANNEL",r,(function(e,n){if(!e)return n&&n.length&&"object"==typeof n[0]?(n[0].isNew&&p.clearChannel(r),void t(n[0])):void t({error:"INVALID_RESPONSE"});t({error:e})}))}else t({error:"ANON_RPC_NOT_READY"})},m.getMultipleFileSize=function(e,n,t){M.anon_rpc?Array.isArray(n.files)?M.anon_rpc.send("GET_MULTIPLE_FILE_SIZE",n.files,(function(e,n){e?t({error:e}):n&&n.length&&"object"==typeof n[0]?t({size:n[0]}):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"}):t({error:"ANON_RPC_NOT_READY"})},m.getDeletedPads=function(e,n,t){if(M.anon_rpc){var r=n&&n.list||$(!0);Array.isArray(r)?M.anon_rpc.send("GET_DELETED_PADS",r,(function(e,n){e?t({error:e}):n&&n.length&&Array.isArray(n[0])?t(n[0]):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"})}else t({error:"ANON_RPC_NOT_READY"})};var te=function(e,n,t){M.anon_rpc?t():d.createAnonymous(M.network,(function(e,n){e?t({error:e}):(M.anon_rpc=n,t())}))},re=m.getAllStores=function(){if(!M.proxy||!M.manager)return[];var e=[M],n=M.modules.team;if(n){var t=n.getTeams().map((function(e){return n.getTeam(e)}));Array.prototype.push.apply(e,t)}return e};m.getUserColor=function(){var e=i.find(M,["proxy","settings","general","cursor","color"]);return e||(e=i.getRandomColor(!0),m.setAttribute(null,{attr:["general","cursor","color"],value:e},(function(){}))),e},m.getMetadata=function(e,n,t){var r=M.proxy||{},o=i.find(r,["settings","general","disableThumbnails"]),c=M.modules.team&&M.modules.team.getTeamsData(n)||{};r.uid||(M.noDriveUid=M.noDriveUid||a.createChannelId());var u={user:{name:r[s.displayNameKey]||M.noDriveName||"",uid:r.uid||M.noDriveUid,avatar:i.find(r,["profile","avatar"]),profile:i.find(r,["profile","view"]),color:m.getUserColor(),notifications:i.find(r,["mailboxes","notifications","channel"]),curvePublic:r.curvePublic,edPublic:r.edPublic,badge:i.find(r,["profile","badge"])},priv:{clientId:e,edPublic:r.edPublic,edPrivate:r.edPrivate,friends:r.friends||{},settings:r.settings||q,thumbnails:!1===o,isDriveOwned:Boolean(i.find(M,["driveMetadata","owners"])),driveChannel:M.driveChannel,pendingFriends:r.friends_pending||{},supportPrivateKey:i.find(r,["mailboxes","supportadmin","keys","curvePrivate"]),accountName:r.login_name||"",offline:M.proxy&&M.offline,teams:c,plan:M.ready?ee.plan||"":void 0,mutedChannels:r.mutedChannels}};return t(JSON.parse(JSON.stringify(u))),u},m.onMaintenanceUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{e&&P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"MAINTENANCE",data:e.maintenance}})}))},m.onSurveyUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"SURVEY",data:e.surveyURL}})}))};m.addPad=function(e,n,r){if(n.href||n.roHref){var o;if(!n.roHref){var i=a.parsePadUrl(n.href);"pad"===i.hashData.type&&(o=a.getSecrets(i.type,i.hash,n.password),n.roHref="/"+i.type+"/#"+a.getViewHashFromKeys(o))}var s,c,u,f,l=(s=n.href,c=n.roHref,u=n.title,f=+new Date,{href:s,roHref:c,atime:f,ctime:f,title:u||t.getDefaultName(a.parsePadUrl(s))});n.owners&&(l.owners=n.owners),n.expire&&(l.expire=n.expire),n.password&&(l.password=n.password),(n.channel||o)&&(l.channel=n.channel||o.channel),n.readme&&(l.readme=1),-1===n.teamId&&(n.teamId=void 0);var d=Q(n.teamId);d&&d.manager?d.manager.addPad(n.path,l,(function(o){o?r({error:o}):(re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,r))})):r({error:"ENOTFOUND"})}else r({error:"NO_HREF"})};var oe=function(e,n){var t=i.find(M,["proxy","edPublic"]),r=function(e){var n=[];return e?(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.profile&&M.proxy.profile.edit&&n.push(a.hrefToHexChannelId("/profile/#"+M.proxy.profile.edit,null)),M.proxy.mailboxes&&Object.keys(M.proxy.mailboxes||{}).forEach((function(e){if("supportadmin"!==e){var t=M.proxy.mailboxes[e];n.push(t.channel)}}))):n=M.manager.getChannelsList("owned"),n.filter((function(e){if("string"==typeof e)return-1!==[32,48].indexOf(e.length)}))}(e),o=B.create(10),s=function(n){e||M.manager.findChannel(n).forEach((function(e){var n=M.manager.findFile(e.id);M.manager.delete({paths:n})}))};r.forEach((function(e){var r=n();o.take((function(n){var o=!1;L((function(a){32===e.length&&m.anonRpcMsg(null,{msg:"GET_METADATA",data:e},a((function(i){if(i&&i.error)return n(),r(),void a.abort();var c=i[0];return Object.keys(c||{}).length?c&&Array.isArray(c.owners)&&-1!==c.owners.indexOf(t)?void(o=c.owners.some((function(e){return e!==t}))):(n(),r(),void a.abort()):(s(e),n(),r(),void a.abort())})))})).nThen((function(n){o?m.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[t]},n()):M.rpc.removeOwnedChannel(e,n((function(n){n?console.error(n):s(e)})))})).nThen((function(){n(),r()}))}))}))};m.removeOwnedPads=function(e,n,t){M.proxy.edPublic?L((function(e){oe(!1,e)})).nThen(t):t({error:"NOT_LOGGED_IN"})},m.deleteAccount=function(e,t,r){var o=M.proxy.edPublic,a=t&&t.keys,c=t&&t.auth;m.anonRpcMsg(e,{msg:"GET_METADATA",data:M.driveChannel},(function(t){var u=t[0];if(u&&u.owners&&1===u.owners.length&&-1!==u.owners.indexOf(o))L((function(e){N.checkRights({auth:c,blockKeys:a},e((function(n){if(n)return e.abort(),console.error(n),void r({error:"INVALID_CODE"})})))})).nThen((function(n){globalThis.accountDeletion=e,M.proxy[s.tokenKey]="DELETED",Z(null,n())})).nThen((function(e){M.rpc.removePins(e((function(e){e&&console.error(e)})))})).nThen((function(n){M.ownDeletion=!0,m.removeOwnedChannel(e,{channel:M.driveChannel,force:!0},n())})).nThen((function(e){a&&N.removeLoginBlock({reason:"ARCHIVE_OWNED",auth:c,edPublic:o,blockKeys:a},e((function(e){e&&console.error(e)})))})).nThen((function(e){oe(!0,e)})).nThen((function(){P([e],"DRIVE_DELETED","ARCHIVE_OWNED"),x(e,"DELETE_ACCOUNT","DELETED",(function(){})),M.network.disconnect(),r({state:!0})}));else{var f={intent:"Please delete my account."};f.drive=M.driveChannel,f.edPublic=o;var l=i.decodeBase64(M.proxy.edPrivate),d=R.Nacl.sign.detached(i.decodeUTF8(n(f)),l);R.Nacl.sign.detached.verify(i.decodeUTF8(n(f)),d,i.decodeBase64(o))||console.error("signed message failed verification");var h=i.encodeBase64(d);r({proof:h,toSign:JSON.parse(n(f))})}}))},m.migrateAnonDrive=function(e,n,t){var r=n.anonHash;h.anonDriveIntoUser(M,r,t)},m.setDisplayName=function(e,n,t){if(!M.proxy)return M.noDriveName=n,P([e],"UPDATE_METADATA"),void t();M.modules.profile&&M.modules.profile.setName(n),M.proxy[s.displayNameKey]=n,P([e],"UPDATE_METADATA"),f.updateMyData(M),Z(null,t)},m.resetDrive=function(e,n,t){L((function(e){oe(e)})).nThen((function(){M.proxy.drive=M.userObject.getStructure(),z("DRIVE_CHANGE",{path:["drive","filesData"]},e),Z(null,t)}))},m.setPadAttribute=function(e,n,r){L((function(r){re().forEach((function(o){o.manager.setPadAttribute(n,r((function(){(o.id?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),Z(o.id,r())})))}))})).nThen(r)},m.getPadAttribute=function(e,n,t){var r={};L((function(e){re().forEach((function(t){t.manager.getPadAttribute(n,e((function(e,n){e||(n&&"object"==typeof n?(!r.value||r.atime{if(M.loggedIn&&M.proxy.edPublic){var n,r=M.modules.team,o=r&&r.getTeams()||[];-1!==e.indexOf(M.proxy.edPublic)?n=M:o.some((function(t){var o=i.find(M,["proxy","teams",t,"keys","drive","edPublic"]),a=i.find(M,["proxy","teams",t,"keys","drive","edPrivate"]);if(-1===e.indexOf(o))return!1;if(!a)return!1;var s=r.getTeam(t);return n=s,!0}));var a=function(){if(n){var e=n.rpc;e?e.send("COOKIE","",(function(e){t(e)})):t("ERESTRICTED")}else t("ERESTRICTED")};n&&n.onRpcReadyEvt?n.onRpcReadyEvt.reg((function(){a()})):a()}else t("ERESTRICTED")}))):t("ERESTRICTED")},m.joinPad=function(e,n){if(n.versionHash)!function(e,n){var t,r=a.createChannelId();L((function(r){m.getPadMetadata(null,{channel:n.channel},r((function(n){if(n&&n.rejected)return x(e,"PAD_ERROR",{type:"ERESTRICTED"}),void r.abort();t=n.validateKey})))})).nThen((function(){m.getHistoryRange(e,{cpCount:1,channel:n.channel,lastKnownHash:n.versionHash},(function(o){if(o&&o.error)x(e,"PAD_ERROR",o.error);else{var a=o.messages||[];a.length&&a[a.length-1].serverHash!==n.versionHash?x(e,"PAD_ERROR",{type:"HASH_NOT_FOUND"}):(x(e,"PAD_CONNECT",{myID:r,id:n.channel,members:[r]}),(o.messages||[]).forEach((function(n){x(e,"PAD_MESSAGE",{msg:n.msg,time:n.time,user:r.slice(0,16)})})),t&&M.messenger&&M.messenger.storeValidateKey(n.channel,t),x(e,"PAD_READY"))}}))}))}(e,n);else if(a.isValidChannel(n.channel)){var r=void 0===se[n.channel],o=se[n.channel]=se[n.channel]||{queue:[],data:{},clients:[],bcast:function(e,n,t){o.clients.forEach((function(r){r!==t&&x(r,e,n)}))},history:[],pushHistory:function(e,n){if(n){var t;for(o.history.push("cp|"+e),t=o.history.length-101;t>0&&!/^cp\|/.test(o.history[t]);t--);o.history=o.history.slice(Math.max(t,0))}else o.history.push(e)}};if(-1===o.clients.indexOf(e)&&o.clients.push(e),!r&&o.wc)return x(e,"PAD_CONNECT",{myID:o.wc.myID,id:o.wc.id,members:o.wc.members}),o.wc.members.forEach((function(n){x(e,"PAD_JOIN",n)})),o.history.forEach((function(n){x(e,"PAD_MESSAGE",{msg:k.removeCp(n),user:o.wc.myID,validateKey:o.data.validateKey})})),void x(e,"PAD_READY");var i=function(e){e&&"EDELETED"===e.type&&ne[n.channel]&&(delete ne[o],e.ownDeletion=!0),o.bcast("PAD_ERROR",e),e&&"EDELETED"===e.type&&p&&p.clearChannel&&p.clearChannel(n.channel),-1!==["EDELETED","EEXPIRED","ERESTRICTED"].indexOf(e.type)&&m.leavePad(null,n,(function(){}))},s={Cache:M.neverCache?void 0:p,priority:1,onCacheStart:function(){x(e,"PAD_CACHE")},onCacheReady:function(){x(e,"PAD_CACHE_READY")},onReady:function(t){var r=t.metadata||{};o.data=r,r&&r.validateKey&&M.messenger&&M.messenger.storeValidateKey(n.channel,r.validateKey),x(e,"PAD_READY",t.noCache)},onMessage:function(e,n,t,r,a){o.lastHash=a,o.pushHistory(e,r),o.bcast("PAD_MESSAGE",{user:n,msg:e,validateKey:t})},onJoin:function(e){o.bcast("PAD_JOIN",e)},onLeave:function(e){o.bcast("PAD_LEAVE",e)},onError:i,onChannelError:i,onRejected:m.onRejected,onConnectionChange:function(e){e.state||o.bcast("PAD_DISCONNECT")},onMetadataUpdate:function(e){o.data=e||{},re().forEach((function(r){r.manager.findChannel(n.channel,!0).forEach((function(n){n.data.owners=e.owners,n.data.atime=+new Date,e.expire&&(n.data.expire=+e.expire)})),(r.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})})),o.bcast("PAD_METADATA",e)},crypto:{encrypt:function(e){return e},decrypt:function(e){return e}},noChainPad:!0,channel:n.channel,metadata:n.metadata,network:M.network||M.networkPromise,websocketURL:I.getWebsocketURL(),onInit:function(){G.fire()},onConnect:function(n,t){o.sendMessage=function(e,r,a){t(e,(function(t){t?a({error:t}):(o.lastHash=e.slice(0,64),o.pushHistory(k.removeCp(e),/^cp\|/.test(e)),o.bcast("PAD_MESSAGE",{user:n.myID,msg:k.removeCp(e),validateKey:o.data.validateKey},r),a())}))},o.wc=n,o.queue.forEach((function(n){o.sendMessage(n.message,e)})),o.queue=[],o.bcast("PAD_CONNECT",{myID:n.myID,id:n.id,members:n.members})}};o.cpNf=k.start(s)}else x(e,"PAD_ERROR","INVALID_CHAN")},m.leavePad=function(e,n,t){var r=se[n.channel];r&&r.cpNf?(m.dropChannel(n.channel),t()):t({error:"EINVAL"})},m.sendPadMsg=function(e,n,t){var r=n.msg,o=se[n.channel];if(o)return o.wc?void o.sendMessage(r,e,t):(o.queue.push(r),void t())},m.corruptedCache=function(e,n){var t=se[n];t&&t.cpNf&&(p.clearChannel(n),t.cpNf.resetCache&&t.cpNf.resetCache())},m.changePadPasswordPin=function(e,n,t){var r=n.oldChannel,o=n.channel;L((function(e){re().forEach((function(n){n.manager.findChannel(o).length&&(n.rpc.unpin([r],e()),n.rpc.pin([o],e()))}))})).nThen(t)},m.contactPadOwner=function(e,n,t){var r=n.owners;if(!Array.isArray(r)||!r.length)return t({state:!1});n.send?L((function(e){r.forEach((function(t){!function(e,t,r,o){if(M.mailbox&&!n.anon)return M.mailbox.sendTo(e,t,r,o);A.sendToAnon(M.anon_rpc,e,t,r,o)}(n.query,{channel:n.channel,data:n.msgData},{channel:t.notifications,curvePublic:t.curvePublic},e())}))})).nThen((function(){t({state:!0})})):t({state:!0})},m.givePadAccess=function(e,n,t){var r,o,a=M.proxy.edPublic,i=n.channel,s=M.manager.findChannel(i);n.user&&n.user.notifications&&n.user.curvePublic?s.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(a)&&e.data.href)return r=e.data.href,o=e.data.title,!0}))?(M.mailbox.sendTo("GIVE_PAD_ACCESS",{channel:i,href:r,title:o},{channel:n.user.notifications,curvePublic:n.user.curvePublic}),t()):t({error:"ENOTFOUND"}):t({error:"EINVAL"})},m.getLastHash=function(e,n,t){var r=se[n.channel];r?r.lastHash?t({hash:r.lastHash}):t({error:"EINVAL"}):t({error:"ENOCHAN"})};m.burnPad=function(e,n){var t=n.channel,r=R.b64AddSlashes(n.ownerKey||"");if(t&&r)try{var o=a.decodeBase64(r),i=R.Nacl.sign.keyPair.fromSecretKey(o);l.create(M.network,{edPublic:a.encodeBase64(i.publicKey),edPrivate:a.encodeBase64(i.secretKey)},(function(e,r){e?console.error(e):m.getPadMetadata(null,{channel:t},(function(e){r.removeOwnedChannel(t,(function(t){t?console.error(t):function(e,n){var t=e.channel,r=e.href,o=a.parsePadUrl(r),i=a.getSecrets(o.type,o.hash,e.password);if((!n||!n.error)&&n.mailbox){var s,c=R.createEncryptor(i.keys),u=[];try{"string"==typeof n.mailbox?u.push(c.decrypt(n.mailbox,!0,!0)):Object.keys(n.mailbox).forEach((function(e){u.push(c.decrypt(n.mailbox[e],!0,!0))}))}catch(e){console.error(e)}try{s=M.proxy.curvePublic}catch(e){return void console.error(e)}u.forEach((function(e){var n=JSON.parse(e);n.curvePublic!==s&&M.mailbox.sendTo("OWNED_PAD_REMOVED",{channel:t},{channel:n.notifications,curvePublic:n.curvePublic},(function(){}))}))}}(n,e)}))}))}))}catch(e){console.error(e)}else console.error("Can't delete BAR pad")},m.getPadMetadata=function(e,r,o){var s=i.once(i.mkAsync(o));if(!M.offline&&M.anon_rpc)if(r.channel){if(32===r.channel.length)return a.isValidChannel(r.channel)?void M.anon_rpc.send("GET_METADATA",r.channel,(function(e,o){if(e)s({error:e});else{var a=o&&o[0]||{};s(a),a.rejected||re().forEach((function(e){var o=e.manager.findChannel(r.channel,!0),i=!1;(o.forEach((function(e){n(e.data.owners)!==n(a.owners)&&(i=!0),e.data.owners=a.owners,e.data.atime=+new Date,a.expire&&(e.data.expire=+a.expire)})),i)&&(e.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))}})):(c.send("METADATA_INVALID_CHAN"),void s({error:"EINVAL"}));s({error:"EINVAL"})}else s({error:"ENOTFOUND"});else s({error:"OFFLINE"})},m.setPadMetadata=function(e,n,t){if(n.channel)if(n.command){var r=Q(n.teamId);if(r){var o=n.channels;delete n.channels,r.rpc.setMetadata(n,(function(e,n){e?t({error:e}):Array.isArray(n)&&n.length?t(n[0]):t({})})),Array.isArray(o)&&o.forEach((function(t){var r=i.clone(n);r.channel=t,m.setPadMetadata(e,r,(function(){}))}))}else t({error:"ENOTFOUND"})}else t({error:"EINVAL"});else t({error:"ENOTFOUND"})},m.deleteMailboxMessage=function(e,n,t){M.anon_rpc?M.anon_rpc.send("DELETE_MAILBOX_MESSAGE",n,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})},m.getFullHistory=function(e,n,t){var r=M.network,o=r.historyKeeper,a=[],i=!1,s=function(e){if(!i){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o)return"FULL_HISTORY_END"===o[0]?(t(a),r.off("message",s),void(i=!0)):void("FULL_HISTORY"===o[0]&&(o[1]&&o[1].validateKey||o[1][3]===n.channel&&(e=o[1][4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),n.debug?a.push({serverHash:e.slice(0,64),msg:e,author:o[1][1],time:o[1][5]}):a.push(e))))}};r.on("message",s),r.sendto(o,JSON.stringify(["GET_FULL_HISTORY",n.channel,n.validateKey]))},m.getHistory=function(e,n,t,r){var o=i.once(i.mkAsync(t)),a=M.network,s=a.historyKeeper,c=Math.floor(1e6*Math.random()),u=[],f=!1,l=function(e,t){if(!f&&t===s){var i=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(i&&!(i.txid&&i.txid!==c||i.validateKey&&i.channel))if(i.error&&i.channel)i.channel===n.channel&&(a.off("message",l),f=!0,o({error:i.error}));else{if(1===i.state&&i.channel){if(i.channel!==n.channel)return;return o(u),a.off("message",l),void(f=!0)}Array.isArray(i)&&i[0]&&i[0]!==c||i[3]===n.channel&&(i[4]&&r?u.push({msg:e,hash:i[4].slice(0,64)}):(e=i[4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),u.push(e)))}}};a.on("message",l);var d={txid:c,lastKnownHash:n.lastKnownHash},h=["GET_HISTORY",n.channel,d];a.sendto(s,JSON.stringify(h))},m.getHistoryRange=function(e,n,t){var r,o=M.network,a=o.historyKeeper,s=[],c=!0,u=!1,f=!1,l=i.uid();o.on("message",(function(e){if(!f){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o[1]===l){if("HISTORY_RANGE_ERROR"!==o[0])return"HISTORY_RANGE_END"===o[0]?(t({messages:s,isFull:u,lastKnownHash:r}),void(f=!0)):void("HISTORY_RANGE"===o[0]&&(o[2]&&o[1].validateKey||o[2][3]===n.channel&&(e=o[2][4])&&(c&&(/^cp\|/.test(e)||n.toHash||(u=!0),r=e.slice(0,64),c=!1),e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),s.push({serverHash:e.slice(0,64),msg:e,author:o[2][1],time:o[2][5]}))));t({error:o[2]})}else console.log("bad txid")}})),o.sendto(a,JSON.stringify(["GET_HISTORY_RANGE",n.channel,{from:n.lastKnownHash,to:n.toHash,cpCount:n.cpCount||2,txid:l}]))};var ce=function(e,n){e&&(e.deprecated||e.restricted||(n||e.on("change",["drive",t.SHARED_FOLDERS],(function(n,r,o){if(o.length>3&&"password"===o[3]){var i=o[2],s=e.drive[t.SHARED_FOLDERS][i],c=M.manager.user.userObject.getHref?M.manager.user.userObject.getHref(s):s.href,u=a.parsePadUrl(c),f=a.getSecrets(u.type,u.hash,n);return v.updatePassword(m,{oldChannel:f.channel,password:r,href:c},M.network,(function(){console.log("Shared folder password changed")})),!1}})),e.on("change",[],(function(e,r,o){if(n){if(o[0]===t.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var a=[r.channel];r.rtChannel&&a.push(r.rtChannel),r.lastVersion&&a.push(r.lastVersion),m.pinPads(null,a,(function(e){console.error(e)}))}if(o[0]===t.FILES_DATA&&"object"==typeof e&&e.channel&&!r){var i=[e.channel];M.manager.findChannel(e.channel).some((function(e){return e.fId!==n}))||(e.rtChannel&&i.push(e.rtChannel),e.lastVersion&&i.push(e.lastVersion),m.unpinPads(null,i,(function(e){console.error(e)})))}}e&&!r&&Array.isArray(o)&&(o[0]===t.FILES_DATA||"drive"===o[0]&&o[1]===t.FILES_DATA)&&setTimeout((function(){m.checkDeletedPad(e&&e.channel)})),z("DRIVE_CHANGE",{id:n,old:e,new:r,path:o})})),e.on("remove",[],(function(e,t){z("DRIVE_REMOVE",{id:n,old:e,path:t})}))))};m.loadSharedFolder=function(e,n,t,r,o){var i=Q(e);if(i){var s=a.parsePadUrl(t.href||t.roHref);s||s.hashData?v.load({isNew:o,network:M.network||M.networkPromise,store:i,Store:m,isNewChannel:m.isNewChannel},n,t,r):r({error:"EINVAL"})}else r({error:"ENOTFOUND"})};var ue=function(e,n,t,r){m.loadSharedFolder(null,e,n,t,r)};m.loadSharedFolderAnon=function(e,n,t){m.loadSharedFolder(null,n.id,n.data,(function(e){t({error:e?void 0:"EDELETED"})}))},m.addSharedFolder=function(e,n,r){V.reg((function(){var o=Q(n.teamId);o.manager.addSharedFolder(n,(function(a){a&&"object"==typeof a&&a.error?r(a):((n.teamId?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),r(a))}))}))},m.updateSharedFolderPassword=function(e,n,t){v.updatePassword(m,n,M.network,t)},m.userObjectCommand=function(e,n,r){if(n&&n.cmd){var o=Q(n.teamId);if(o.offline)return(o.id?o.sendEvent:z)("NETWORK_DISCONNECT"),void r({error:"OFFLINE"});o.manager.command(n,(function(o){re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,(function(){r(o)}))}))}};var fe=m.dropChannel=function(e){console.error("Drop channel",e);try{M.messenger.leavePad(e)}catch(e){console.error(e)}try{M.modules.cursor.leavePad(e)}catch(e){console.error(e)}try{M.modules.integration.leavePad(e)}catch(e){console.error(e)}try{M.onlyoffice.leavePad(e)}catch(e){console.error(e)}try{if(function(e){if(M){if(M.driveChannel===e)return!0;if(v.isSharedFolderChannel(e))return!0;if(i.find(M,["proxy","teams"])){var n=i.find(M,["proxy","teams"])||{};return Object.keys(n).some((function(t){return n[t].channel===e}))}return i.find(M,["proxy","profile","href"])?a.hrefToHexChannelId(i.find(M,["proxy","profile","href"]))===e:void 0}}(e))return void delete m.channels[e]}catch(e){console.error(e)}try{p.leaveChannel(e)}catch(e){console.error(e)}m.channels[e]&&(m.channels[e].cpNf&&m.channels[e].cpNf.stop(),delete m.channels[e])};m._removeClient=function(e){var n=W.indexOf(e);-1!==n&&W.splice(n,1);try{M.onlyoffice?.removeClient(e)}catch(e){console.error(e)}try{M.mailbox?.removeClient(e)}catch(e){console.error(e)}Object.keys(M.modules).forEach((function(n){if(M.modules[n]&&M.modules[n].removeClient)try{M.modules[n].removeClient(e)}catch(e){console.error(e)}})),Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients.indexOf(e);-1!==t&&m.channels[n].clients.splice(t,1),0===m.channels[n].clients.length&&fe(n)}))};m.refreshDriveUI=function(){re().forEach((function(e){(e.id?e.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))};var le=function(e,n){const t=i.mkAsync(n);var o=M.proxy,a=M.drive;if(M.manager)t();else{var s=M.manager=r.create(a.proxy,{onSync:function(e){Z(null,e)},edPublic:o.edPublic,pin:function(e,n){M.loggedIn?m.pinPads(null,e,n):n()},unpin:function(e,n){M.loggedIn?m.unpinPads(null,e,n):n()},loadSharedFolder:ue,settings:o.settings,removeOwnedChannel:function(e,n){m.removeOwnedChannel("",e,n)},store:M,Store:m},{outer:!0,edPublic:M.proxy.edPublic,loggedIn:M.loggedIn,log:function(e){z("DRIVE_LOG",e)},rt:a.realtime}),c=M.userObject=s.user.userObject;L((function(e){M.sharedFolders={},M.handleSharedFolder=function(e,n){n?(M.sharedFolders[e]=n,M.driveEvents&&ce(n.proxy,e)):delete M.sharedFolders[e]},c.migrate(e())})).nThen((function(n){var t=M.network||M.networkPromise;v.loadSharedFolders(m,t,M,a.proxy,c,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)}),!0)})).nThen((function(n){ie(D,"team",n,e)})).nThen((function(e){ie(S,"calendar",e)})).nThen((function(){t()}))}};const de=(e=function(){})=>{ie(g,"cursor",e),ie(b,"integration",e),ie(_,"messenger",e),ie(T,"history",e),ie(K,"badge",e),M.onlyoffice||(M.onlyoffice=O.init(M,(function(e,n,t){t.forEach((function(t){x(t,"OO_EVENT",{ev:e,data:n})}))}))),M&&(M.messenger=M.modules.messenger)};var he=function(e,n,t){M.ready=!0;var r=M.proxy,u=M.manager,f=M.userObject;L((function(n){r.settings||(r.settings=q),r.forms||(r.forms={}),r.friends_pending||(r.friends_pending={}),r.form_seed||(r.form_seed=a.createChannelId()),u||(le(e,n()),u=M.manager,f=M.userObject),te(0,0,n()),function(e,n,t){if(!M.loggedIn)return t();M.rpc?t(ee):l.create(M.network,M.proxy,(function(e,n){e?t({error:e}):(M.rpc=n,M.onRpcReadyEvt.fire(),m.getPinLimit(null,null,(function(e){e.error&&console.error(e.error),ee.limit=e.limit,ee.plan=e.plan,ee.note=e.note,t(e)})))}),p)}(0,0,n()),x(e,"LOADING_DRIVE",{type:"migrate",progress:0})})).nThen((function(n){void 0===r.version&&(r.version=11),o(r,n(),(function(n,t){x(e,"LOADING_DRIVE",{type:"migrate",progress:t})}),M)})).nThen((function(n){x(e,"LOADING_DRIVE",{type:"sf",progress:0}),f.fixFiles(),v.loadSharedFolders(m,M.network,M,M.drive.proxy,f,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)})),de(n),ie(w,"profile",n),ie(S,"calendar",n),ie(E,"support",n),L((e=>{M.modules.team&&M.modules.team.onReady(e)}))})).nThen((function(){var e,o=function(){P([],"REQUEST_LOGIN")};M.loggedIn&&(function(e){if(M.rpc){var n=$(!1),t=a.hashChannelList(n);M.rpc.getServerHash((function(n,r){n?e(n):e(null,r===t)}))}else e({error:"RPC_NOT_READY"})}((function(e,n){n||function(e){if(M.rpc){var n=$(!1);M.rpc.reset(n,(function(n){e(n||null)}))}else e({error:"RPC_NOT_READY"})}((function(e){if(e)return console.error(e);console.log("RESET DONE")}))})),"number"!=typeof r.loginToken&&(r[s.tokenKey]=M.data.localToken||Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),n[s.tokenKey]=r[s.tokenKey],M.data.localToken&&M.data.localToken!==r[s.tokenKey])?o():(n.feedback=i.find(r,["settings","general","allowUserFeedback"]),c.init(n.feedback),M.returned=n,"function"==typeof t&&t(n),M.offline=!1,z("NETWORK_RECONNECT"),P([],"UPDATE_METADATA"),P([],"STORE_READY",n),"string"==typeof r.uid&&32===r.uid.length||(console.log("generating a persistent identifier"),r.uid=a.createChannelId()),!M.loggedIn||m.hasSigningKeys()&&m.hasCurveKeys()?(r.on("change",[s.displayNameKey],(function(e,n){"string"==typeof n&&P([],"UPDATE_METADATA")})),r.on("change",["profile"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["friends"],(function(e,n,t){if(P([],"UPDATE_METADATA"),M.messenger&&void 0===e){var o=t.slice(-1)[0],a=r.friends&&r.friends[o];M.messenger.onFriendAdded(a)}})),r.on("remove",["friends"],(function(e,n){if(P([],"UPDATE_METADATA"),M.messenger){var t=n[1];t&&"channel"===n[2]&&M.messenger.onFriendRemoved(t,e)}})),r.on("change",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("remove",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["settings"],(function(){P([],"UPDATE_METADATA")})),r.on("change",[s.tokenKey],(function(){M.isDeleted||"DELETED"===r[s.tokenKey]||P([],"UPDATE_TOKEN",{token:r[s.tokenKey]})})),M.mailbox=A.init({Store:m,store:M,updateMetadata:function(){P([],"UPDATE_METADATA")},updateDrive:function(){z("DRIVE_CHANGE",{path:["drive","filesData"]})},pinPads:function(e,n){m.pinPads(null,e,n)}},e,(function(e,n,t,r){var o=i.once(r||function(){});t.forEach((function(t){x(t,"MAILBOX_EVENT",{ev:e,data:n},o)}))})),V.fire()):o())}))};const pe=(e,n,t,r)=>{if(M.accountModule)return M.accountModule;const o=H.init({userHash:n.userHash,anonHash:n.anonHash,cache:n.cache,form_seed:n.form_seed,store:M,broadcast:P,postMessage:x});M.accountModule=o;const{channel:a,onAccountReady:s,onAccountCacheReady:c,onDisconnect:u,onReconnect:f}=o;M.driveChannel=a,c((e=>{M.returned||=e,t(e)})),s((e=>{M.returned||=e,r(e)})),u((()=>{z("NETWORK_DISCONNECT")})),f((()=>{z("NETWORK_RECONNECT")}));return setInterval((function(){var e=[];Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients;Array.prototype.push.apply(e,t)})),(e=i.deduplicateString(e)).forEach((function(e){var n=0,t=function(){if(n>=2)return m._removeClient(e),x(e,"TIMEOUT"),void console.error("TIMEOUT",e);n++;var r=setTimeout(t,3e4);x(e,"PING",null,(function(e){e&&console.error(e),clearTimeout(r)}))};t()}))}),12e4),o},ve=(e,n,t,r)=>{const o=i.once((e=>{const n=j.init({account:e,store:M,broadcast:P,postMessage:x}),{onDriveReady:o,onDriveCacheReady:a,onDisconnect:i,onReconnect:s}=n;a((()=>{t(M.returned)})),o((()=>{r(M.returned)})),i((()=>{})),s((()=>{}))})),a=()=>{},s=pe(0,n,a,a);s.onAccountCacheReady((()=>{o(s)})),s.onAccountReady((()=>{o(s)}))};m.disableCache=function(e,n,t){n?p.disable():p.enable(),t()};var ye=!1;m.hasDrive=function(e,n,t){t({state:Boolean(M.proxy)})};const me=e=>{if(M?.network?.historyKeeper)return setTimeout(e);const n=n=>{M.network||=n;n.join("0000000000000000000000000000000000").then((function(t){let r;t.members.forEach((e=>{16===e.length&&(r=e)})),n.historyKeeper=r,t.leave(),e()}),(function(n){console.error(n),e({error:"GET_HK"})}))};if(M.network)return n(M.network);M.networkPromise?.then(n)};var ge=function(e,n,t){var r=function(){de();let e=()=>{te(0,0,(function(){c.send("NO_DRIVE",!0),n({})}))};if(t)return((e,n)=>{if(M.rpc)n(M.rpc);else{var t=R.Nacl.sign.keyPair(),r={edPublic:i.encodeBase64(t.publicKey),edPrivate:i.encodeBase64(t.secretKey)};l.create(M.network,r,(function(e,t){e?n({error:e}):(M.rpc=t,n(t))}))}})(0,e);e()};if(M.network)r();else{var o=I.getWebsocketURL();F.connect(o).then((function(e){M.network?(e.disconnect(),e=M.network):M.network=e,me((e=>{e?n(e):r()}))}),(function(e){console.error(e),n({error:"OFFLINE"})}))}};const Ee=(e,n,t)=>{le(e,(function(){t(n),Y.fire()}))},be=(e,n,t)=>{M.manager?Y.reg((function(){me((r=>{M.network||=r,he(e,n,(()=>{t(n)}))}))})):he(e,n,(()=>{t(n)}))};return m.init=function(e,n,t){var r=i.once((function(r){n.driveEvents&&function(e){Y.reg((()=>{-1===W.indexOf(e)&&W.push(e),M.driveEvents||(M.driveEvents=!0,ce(M.proxy),Object.keys(M.manager.folders).forEach((function(e){var n=M.manager.folders[e].proxy;ce(n,e)})))}))}(e),t(r)}));if(ye&&!M.returned&&n.cache)Y.reg((function(){r({state:"ALREADY_INIT",returned:M.cacheReturned})}));else{if(ye)return M.networkTimeout&&x(e,"LOADING_DRIVE",{type:"offline"}),void V.reg((function(){r({state:"ALREADY_INIT",returned:M.returned})}));n.disableCache&&p.disable(),n.noDrive&&!n.requires&&(n.requires="pad"),((e,n,t)=>{if(n.neverDrive||n.noDrive&&!n.userHash&&!n.anonHash)return n.neverDrive&&(M.neverCache=!0),void ge(0,(e=>{e?.error&&c.send("NO_DRIVE_ERROR",!0),t(e)}),!!n.neverDrive);const r=n.requires;ye=!0,M.data=n;let o=e=>{1===Object.keys(M.proxy).length&&c.send("FIRST_APP_USE",!0),e&&e.error&&(ye=!1)};if("pad"===r)return void ge(0,(function(r){if(r&&r.error)return;t(r);let a=i.once((()=>{ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))}));G.reg(a),J.reg(a)}));if("file"===r)return void ge(0,(function(r){r&&r.error||(t(r),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)})))}));if("team"===r){let r=!1;const a=a=>i=>{r||(r=!0,L((e=>{a||te(0,0,e())})).nThen((n=>{ie(D,"team",n,e)})).nThen((e=>{!a&&M.modules.team&&M.modules.team.onReady(e)})).nThen((()=>{t(i),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))})))};return void pe(0,n,a(!0),a(!1))}if("drive"===r)return void ve(0,n,(n=>{t(n),Ee(e,n,o)}),(n=>{t(n),be(e,n,o)}));let a=e=>{o(e);const n=s.prefersDriveRedirectKey,r=i.find(M,["proxy","settings","general",n]);e[n]=r,t(e)};ve(0,n,(n=>{Ee(e,n,a)}),(n=>{be(e,n,a)}))})(e,n,i.once((e=>{"GET_HK"!==e.error?r(e):r({error:"ERROR"})})))}},V.reg((function(){var e=+new Date-7776e6;p.getKeys((function(n,t){if(n)console.error(n);else{var r=function(){if(t.length){var n=t.pop();p.getTime(n,(function(t,o){t?r():!o||o{const n=(e,n={})=>({create:function(t,r,o){var a,i=[],s=e.mkEvent(!0);t.reg((function(e){if(!a){var n=e.data;if("_READY"===n)return r("_READY"),a=!0,s.fire(),void i.forEach((function(e){t.fire(e)}));i.push(n)}}));var c={},u={},f={},l=[],d={},h={};h.query=function(e,n,t,o){var a,i=Math.random().toString(16).replace("0.","")+Math.random().toString(16).replace("0.",""),c=(o=o||{}).timeout||3e4;c>0&&(a=setTimeout((function(){delete u[i],t("TIMEOUT")}),c)),f[i]=function(e){clearTimeout(a),delete f[i],e&&(delete u[i],t("UNHANDLED"))},u[i]=function(e,n){delete u[i],t(void 0,e.content,n)},s.reg((function(){var t={txid:i,content:n,q:e,raw:o.raw};r(o.raw?t:JSON.stringify(t))}))};var p=h.event=function(e,n,t){t=t||{},s.reg((function(){var o={content:n,q:e,raw:t.raw};r(t.raw?o:JSON.stringify(o))}))};h.on=function(e,n,t){var o=function(e,t,o){n(e.content,(function(n){var t={txid:e.txid,content:n};r(o?t:JSON.stringify(t))}),t)};return(c[e]=c[e]||[]).push(o),t||p("EV_REGISTER_HANDLER",e),{stop:function(){var n=c[e].indexOf(o);-1!==n&&c[e].splice(n,1)}}},h.whenReg=function(e,n,t){var r=t;l.indexOf(e)>-1?n():r=!0,r&&(d[e]=d[e]||[]).push(n)},h.onReg=function(e,n){h.whenReg(e,n,!0)},h.on("EV_REGISTER_HANDLER",(function(e){d[e]&&(d[e].forEach((function(e){e()})),delete d[e]),l.push(e)}));var v=!1;h.onReady=function(e){v?e():"function"==typeof e&&h.on("EV_RPC_READY",(function(){v=!0,e()}))},h.ready=function(){h.whenReg("EV_RPC_READY",(function(){h.event("EV_RPC_READY")}))};var y=[""];n.httpUnsafeOrigin?(y.push(n.httpUnsafeOrigin),y.push(n.httpSafeOrigin)):globalThis.location&&y.push(globalThis.location.origin),t.reg((function(e){if(a&&e.data&&"_READY"!==e.data&&y.includes(e.origin)){var n;try{n="object"==typeof e.data?e.data:JSON.parse(e.data)}catch(e){return void console.warn(e)}void 0!==n.ack?f[n.txid]&&f[n.txid](!n.ack):"string"==typeof n.q?c[n.q]?(n.txid&&r(JSON.stringify({txid:n.txid,ack:!0})),c[n.q].forEach((function(t){t(n||JSON.parse(e.data),e,n&&n.raw),n=void 0}))):n.txid&&r(JSON.stringify({txid:n.txid,ack:!1})):void 0===n.q&&u[n.txid]&&u[n.txid](n,e)}})),r("_READY"),o(h)}});e.exports&&(e.exports=n(Z()))})()}(rr)),rr.exports}function ar(){return er||(er=1,function(e){e.exports&&(e.exports=((e,n,t)=>{const r={};let o,a,i={},s=()=>{};return r.init=n=>{a||(a=e.create({query:(e,n,t,r)=>{r=r||function(){},i[e].chan.query(n,t,(function(e,n){r(e?{error:e}:n)}))},broadcast:(e,n,t,r)=>{r=r||function(){},Object.keys(i).forEach((o=>{-1===e.indexOf(+o)&&i[o].chan.query(n,t,((e,n)=>{r(e?{error:e}:n)}))}))}}),s=n)},r.initClient=(e,r)=>{if(!a)return console.error("Not initialized"),void r("NOT_INIT");const{postMsg:c}=e,u=t.mkEvent(),f=Number(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),l=()=>{a._removeClient(f)};n.create(u,c,(function(e){let n=i[f]={chan:e};console.debug("SharedW Channel created"),Object.keys(a.queries).forEach((function(t){"CONNECT"!==t&&"JOIN_PAD"!==t&&"SEND_PAD_MSG"!==t&&"STOPWORKER"!==t&&e.on(t,(function(e,r){try{a.queries[t](f,e,r)}catch(n){console.error("Error in webworker when executing query "+t),console.error(n),console.log(e)}"DISCONNECT"===t&&(l(),globalThis.accountDeletion&&globalThis.accountDeletion===n.id&&(a=void 0,o=void 0))}))})),e.on("STOPWORKER",(function(e,n){s(),a.queries.DISCONNECT(f,e,n)})),e.on("CONNECT",(function(e,n){console.debug("Connecting to store..."),a.queries.CONNECT(f,e,(function(e){if(e&&"ALREADY_INIT"===e.state)return console.debug("Store already exists!"),o=o||e.returned,void n(e);o=e,n(e)}))})),e.on("JOIN_PAD",(function(e,t){n.channelId=e.channel;try{a.queries.JOIN_PAD(f,e,t)}catch(n){console.error("Error in webworker when executing query JOIN_PAD"),console.error(n),console.log(e)}})),e.on("SEND_PAD_MSG",(function(e,t){var r={msg:e,channel:n.channelId};try{a.queries.SEND_PAD_MSG(f,r,t)}catch(e){console.error("Error in webworker when executing query SEND_PAD_MSG"),console.error(e),console.log(r)}})),r(u,l)}),!0)},r})(Xt(),or(),Z()))}(Qt)),Qt.exports}var ir,sr,cr=function(){if(tr)return nr;tr=1;const e=ar();return nr={start:n=>{let t=!1,r=()=>{globalThis.close()};globalThis.window=globalThis,addEventListener("connect",(o=>{console.debug("New SharedWorker client");const a=o.ports[0],i=e=>{a.postMessage(e)};let s,c=!1,u=()=>{};a.onmessage=function(o){if("INIT"===o.data?.type){if((o=>{t||(n(o),e.init(r),t=!0)})(o.data.cfg),c)return;c=!0,e.initClient({postMsg:i},(function(e,n){s=e,u=n,i("SW_READY")}))}else"CLOSE"===o.data?(console.debug("leave"),u()):s&&s.fire(o)}}))}}}();var ur,fr,lr=function(){if(sr)return ir;sr=1;const e=ar();return ir={start:n=>{let t,r=!1;const o=()=>{globalThis.close()},a=e=>{postMessage(e)};globalThis.window=globalThis,onmessage=function(i){if("INIT"===i.data?.type){let s=i.data.cfg;if(r)return;return n(s),e.init(o),r=!0,void e.initClient({postMsg:a},(function(e){t=e,a("WW_READY")}))}t&&t.fire(i)}}}}();var dr=function(){if(fr)return ur;fr=1;const e=ar(),n=Z();return ur={start:t=>{let r,o=!1,a=!1;const i=n.mkEvent(),s=()=>{a=!0},c=e=>{a||i.fire(e)};return{init:n=>{o||(t(n),e.init(s),o=!0,e.initClient({postMsg:c},(function(e){r=e,c("STORE_READY")})))},onMessage:e=>{i.reg((n=>{setTimeout((()=>{e(n)}))}))},query:e=>{r&&!a&&r.fire({data:e,origin:""})}}}}}(),hr=Bn(),pr=n({__proto__:null,default:r(hr)},[hr]),vr=Un(),yr=n({__proto__:null,default:r(vr)},[vr]),mr=nt(),gr=n({__proto__:null,default:r(mr)},[mr]),Er=ot(),br=n({__proto__:null,default:r(Er)},[Er]),Or=Ft(),Ar=n({__proto__:null,default:r(Or)},[Or]);let wr=e=>{[Te,nn,q,$e,B,pr,yn,un,ke,gr,br,Ar,zt,ge,yr,Vt].forEach((n=>{"function"==typeof n.setCustomize&&n.setCustomize(e)}))},Dr="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,_r="undefined"!=typeof SharedWorkerGlobalScope&&self instanceof SharedWorkerGlobalScope;e.store={},_r?cr.start(wr):Dr?lr.start(wr):("undefined"!=typeof module&&module.exports,e.store=dr.start(wr)),e.start=wr})); +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["cryptpad-worker-min"]={})}(this,(function(e){"use strict";function n(e,n){return n.forEach((function(n){n&&"string"!=typeof n&&!Array.isArray(n)&&Object.keys(n).forEach((function(t){if("default"!==t&&!(t in e)){var r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:function(){return n[t]}})}}))})),Object.freeze(e)}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function o(e){if(e.__esModule)return e;var n=e.default;if("function"==typeof n){var t=function e(){return this instanceof e?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};t.prototype=n.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t}var a,i,s,c,u,f,l,d={exports:{}},h={exports:{}},p={exports:{}};function v(){return a||(a=1,function(e){var n;n=function(){var e=function(){},n=function(){return(new Date).getTime()},t=function(e,n,t){e.timeouts.push(setTimeout(n,t))},r=function(n,r){n.ws&&(n.ws.onmessage=e,n.ws.onopen=e,n.ws.close(),r?n.ws.onclose({reason:"offline"}):t(n,(function(){n.ws&&n.ws.onclose({reason:"forced closed because websocket failed to close"})}),1e4))},o=function(e,n){return!!e.ws&&(e.ws.send(JSON.stringify(n)),!0)},a=function(e,n){return function(e,t){var r=n[e];if(!r)throw new Error("no such event "+e);r.push(t)}},i=function(e,n,t,r){var o=r[n];if(!o)throw new Error("no such event "+n);var a=o.indexOf(t);-1!==a&&o.splice(a,1)},s=function(e,t,r){if(e.channels[t])return new Promise((function(n){n(e.channels[t])}));var s=e.queues.p2;1===r?s=e.queues.p1:3===r&&(s=e.queues.p3);var c={queue:s,onMessage:[],onJoin:[],onLeave:[],members:[],jSeq:e.seq++},u={message:c.onMessage,join:c.onJoin,leave:c.onLeave},f={_:c,time:n(),id:t,members:c.members,bcast:function(t){return function(e,t,r){var a=e.channels[t],i=e.seq++,s=[i,"MSG",t,r];if(!a)return new Promise((function(e,n){n({type:"NO_SUCH_CHANNEL",message:JSON.stringify(s)})}));var c=o(e,s);return new Promise((function(t,r){c?e.requests[i]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(s)})}))}(e,f.id,t)},leave:function(t){return function(e,t,r){if(e.channels[t]){if(delete e.channels[t],e.ws&&1===e.ws.readyState){var a=e.seq++;o(e,[a,"LEAVE",t,r]);var i=function(){};e.requests[a]={reject:i,resolve:i,time:n()}}}else console.debug("no such channel",t)}(e,f.id,t)},on:a(0,u),off:function(e,n){i(0,e,n,u)}};e.requests[c.jSeq]=f;var l=[c.jSeq,"JOIN",t],d=o(e,l);return new Promise((function(e,n){d?(f._.resolve=e,f._.reject=n):n({type:"DISCONNECTED",message:JSON.stringify(l)})}))},c=function(t){var r={message:t.onMessage,disconnect:t.onDisconnect,reconnect:t.onReconnect},c={webChannels:t.channels,getLag:function(){return function(e){return e.ws?e.pingOutstanding?Math.max(n()-e.timeOfLastPingSent,e.lastObservedLag):e.lastObservedLag:null}(t)},sendto:function(e,r){return function(e,t,r){var a=e.seq++,i=[a,"MSG",t,r],s=o(e,i);return new Promise((function(t,r){s?e.requests[a]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(i)})}))}(t,e,r)},join:function(e,n){return s(t,e,n)},disconnect:function(){return function(n){if(n.ws){var t=n.ws.onclose;n.ws.onclose=e,n.ws.close(),t({reason:"network.disconnect() called"})}n.timeouts.forEach(clearTimeout),n.timeouts=[]}(t)},on:a(0,r),off:function(e,n){i(0,e,n,r)}};return c.__defineGetter__("webChannels",(function(){return Object.keys(t.channels).map((function(e){return t.channels[e]}))})),c},u=function(e,t){var a=void 0;try{a=JSON.parse(t.data)}catch(e){return void console.log(e.stack)}if(e.timeOfLastMsgReceived=n(),0===a[0]){if("IDENT"===a[2])return e.uid=a[3],e.ws._onident(),void(e.pingInterval=setInterval((function(){if(!(n()-e.timeOfLastPingReceived<15e3||(n()-e.timeOfLastMsgReceived>6e4&&r(e),e.pingOutstanding))){var t=e.seq++,a=n();e.timeOfLastPingSent=a,e.pingOutstanding++,e.requests[t]={time:a,ping:a},o(e,[t,"PING"])}}),5e3));if(e.uid){if("PING"===a[2])return a[2]="PONG",void o(e,a);if("MSG"===a[2]){var i=void 0,s=e.queues.p2;if(a[3]===e.uid)i=e.onMessage,"number"==typeof a[5]&&(1===a[5]&&(s=e.queues.p1),3===a[5]&&(s=e.queues.p3));else{var c=e.channels[a[3]];if(!c)return void console.log("message to non-existent chan "+JSON.stringify(a));i=c._.onMessage,c._.queue&&(s=c._.queue)}s.push({msg:a,h:i}),function(e){if(!e.queues.busy){var n=function(){var t=e.queues.p1.shift()||e.queues.p2.shift()||e.queues.p3.shift();if(t){e.queues.busy=!0;var r=t.h,o=t.msg;r.forEach((function(e){setTimeout((function(){try{e(o[4],o[1])}catch(e){console.error(e)}}))})),setTimeout((function(){n()}))}else e.queues.busy=!1};n()}}(e)}if("LEAVE"===a[2]){var u=e.channels[a[3]];if(!u)return void(a[1]!==e.uid&&console.log("leaving non-existent chan "+JSON.stringify(a)));var f=u._.members.indexOf(a[1]);-1!==f&&u._.members.splice(f,1),u._.onLeave.forEach((function(e){try{e(a[1],a[4])}catch(e){console.log(e.stack)}}))}if("JOIN"===a[2]){var l=e.channels[a[3]];if(!l)return void console.log("ERROR: join to non-existent chan "+JSON.stringify(a));if(-1!==l._.members.indexOf(a[1]))return;var d=-1!==l._.members.indexOf(e.uid);l._.members.push(a[1]),d||a[1]!==e.uid||(l.myID=e.uid,l._.resolve(l)),d&&l._.onJoin.forEach((function(e){try{e(a[1])}catch(e){console.log(e.stack)}}))}}}else{var h=e.requests[a[0]];if(!h)return void console.log("error: "+JSON.stringify(a));if(delete e.requests[a[0]],"ACK"===a[1]){if(h.ping)return e.lastObservedLag=n()-Number(h.ping),e.timeOfLastPingReceived=n(),void e.pingOutstanding--;h.resolve()}else if("JACK"===a[1]){if(h._){if(!a[2])throw new Error("wrong type of ACK for channel join");return h.id=a[2],void(e.channels[h.id]=h)}h.resolve()}else if("ERROR"===a[1])if("function"==typeof h.reject)h.reject({type:a[2],message:a[3]});else if(h._&&"function"==typeof h._.reject){if("EJOINED"===a[2]&&!e.channels[a[3]])return h.id=a[3],void(e.channels[h.id]=h);h._.reject({type:a[2],message:a[3]})}else console.error(a);else h.reject({type:"UNKNOWN",message:JSON.stringify(a)})}};return{connect:function(o,a){a=a||function(e){return new window.WebSocket(e)};var i={ws:null,seq:1,uid:null,network:null,channels:{},onMessage:[],onDisconnect:[],onReconnect:[],timeouts:[],requests:{},pingInterval:null,queues:{p1:[],p2:[],p3:[]},timeOfLastPingSent:-1,timeOfLastPingReceived:-1,timeOfLastMsgReceived:-1,lastObservedLag:0,pingOutstanding:0};i.network=c(i);var s=e,f=e;"undefined"!=typeof window&&window.addEventListener("offline",(function(){-1===["localhost","127.0.0.1",""].indexOf(window.location.hostname)&&r(i,!0)}));var l=function(){var c=i.ws=a(o);i.timeOfLastPingSent=i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),c.onmessage=function(e){return u(i,e)},c.onclose=function(n){c.onclose=e,clearInterval(i.pingInterval),i.timeouts.forEach(clearTimeout),i.ws=null,i.uid&&(i.uid=null,i.onDisconnect.forEach((function(e){try{e(n.reason)}catch(e){console.log(e.stack)}}))),t(i,l,i.uid?0:7e3)},c.onopen=function(){t(i,(function(){i.uid||(f({type:"TIMEOUT",message:"waited 30000ms"}),s=f=e,r(i))}),3e4)},i.ws._onident=function(){i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),i.lastObservedLag=n()-i.timeOfLastPingSent,s!==e?(s(i.network),s=f=e):(i.channels={},i.requests={},i.pingOutstanding=0,i.onReconnect.forEach((function(e){try{e(i.uid)}catch(e){console.log(e.stack)}})))}};return new Promise((function(e,n){s=e,f=n,l()}))}}},e.exports?e.exports=n():window.netflux_websocket=n()}(p)),p.exports}function y(){return i||(i=1,function(e){var n,t,r,o;e.exports&&(e.exports=(n=v(),r=function(e){return e.replace(/^\d+:/,"")},o=(t={}).removeCp=function(e){return e.replace(/^cp\|([A-Za-z0-9+\/=]{0,20}\|)?/,"")},t.start=function(e){var t,a=(e=e||{}).network,i=e.websocketURL,s=e.userName,c=e.channel,u=e.crypto,f=e.readOnly||!1,l=!e.noChainPad&&(e.ChainPad||window.ChainPad),d=void 0===e.useHistory||!!e.useHistory,h=!1,p=e.lastKnownHash,v={},y=[],m=e.priority||2,g=e.Cache,E=!1,b=Math.floor(1e6*Math.random()),O=e.metadata||{},A=O.validateKey=e.validateKey||O.validateKey;O.owners=e.owners||O.owners,O.expire=e.expire||O.expire;var w,D,_=!0,T=!1,S={setReadOnly:function(e,n){f=e,n&&(u=n)}},x=function(){},N=[],I={send:function(){}},C=function(){w&&"function"==typeof w.abort&&w.abort();var n=l.create({userName:s,initialState:e.initialState,transformFunction:e.transformFunction,patchTransformer:e.patchTransformer,validateContent:e.validateContent,avgSyncMilliseconds:e.avgSyncMilliseconds,logLevel:void 0!==e.logLevel?e.logLevel:1});return g&&Array.isArray(t)&&t.length&&(t.forEach((function(e){var t=e.patch;if(!/^\[/.test(t)){try{t=u.decrypt(t,A,!0)}catch(e){console.error(t,A,c),console.error(e)}t=r(t)}n.message(t)})),""===n.getUserDoc())?(n.abort(),t=[],g.clearChannel(c),C()):(n.onMessage((function(e,n,t){I.send(e,n,t)})),n.onPatch((function(t){e.onRemote&&e.onRemote({realtime:n,patch:t})})),n)},R={change:[],onChange:function(e){R.change.forEach((function(n){n(e)}))},users:[]},P=function(n){e.onJoin&&e.onJoin(n),32===n.length&&(-1===R.users.indexOf(n)&&R.users.push(n),R.onChange())},k=function(){},M=function(n){e.onLeave&&e.onLeave(n);var t=R.users.indexOf(n);-1!==t&&R.users.splice(t,1),R.onChange()},F=function(n,t){if(_){try{var r=w&&w.getUserDoc();if(E&&w&&(""===r||r===e.initialState))return void S.resetCache()}catch(e){console.error(e)}w&&w.start(),e.setMyID&&e.setMyID({myID:n.myID}),_=!1,e.onReady&&e.onReady({realtime:w,network:t,userList:R,myId:n.myID,leave:n.leave,metadata:O}),y.length&&(y.forEach((function(e){"function"==typeof e&&e()})),y=[])}},L=function(n,r){if(e.onChannelError&&e.onChannelError({channel:r.id,type:n.error,loaded:!_,error:n.error,message:n.message}),"EUNKNOWN"===n.error)return p=void 0,r&&r.leave(),g?(t=[],void g.clearChannel(c,(function(){l&&(S.realtime=w=C()),x(a,k)}))):void x(a,k);if("function"==typeof S.stop)try{S.stop()}catch(e){}},H=!0,j=function(e){g&&(t.length&&t[t.length-1].hash===e.hash||(!t.length&&H&&(e.isCheckpoint=!0,H=!1),(t.length||e.isCheckpoint)&&(t.push(e),g.storeCache(c,A,t,(function(e){if(e){g.clearChannel(c,(function(){console.warn("Cache cleared",c)}));var n=t;return t=[],void console.error(e,c,n,A)}})))))},K=function(n,t,a,i,s){var f=i.historyKeeper,l=n===f;if(!a||0!==t&&"0"!==t){if(!s||n===f){if(s){var d=JSON.parse(t);if(d.txid&&d.txid!==b)return;if(d.validateKey&&d.channel)return d.channel!==a.id||A||(A=d.validateKey),void(d.channel===a.id&&(O=d,e.onMetadataUpdate&&!_&&e.onMetadataUpdate(O)));if(d.state&&1===d.state&&d.channel)return void(d.channel===a.id&&(Object.keys(v).forEach((function(e){"function"==typeof v[e]&&v[e]("FAILED")})),v={},F(a,i)))}if(l){var h=JSON.parse(t);if(Array.isArray(h)&&h[0]&&h[0]!==b)return;if(h.channel===a.id&&h.error)return void L(h,a);if(t=h[4],h[3]!==a.id)return}if(p=t.slice(0,64),"function"==typeof v[p])return v[p](null,p),void delete v[p];var m,g=/^cp\|/.test(t);t=o(t);try{t=u.decrypt(t,A,l)}catch(e){console.error(t,A,c),console.error(e)}var E="string"==typeof t;!E&&t.content&&(m=t.author,t=t.content),_||e.onLocal&&e.onLocal(!0);var D=E?r(t):t,T=function(){try{if(w&&E&&w.message(D),e.onMessage){var t={time:h?h[5]:+new Date};e.onMessage(D,n,A,g,p,m,t)}var r=g;e.isCacheCheckpoint&&(r=e.isCacheCheckpoint(D,m)),j({patch:D,hash:p,isCheckpoint:r,author:m,time:h?h[5]:+new Date})}catch(e){console.error(e)}};_&&n!==f?y.push(T):T()}}else F(a,i)},U=function(n,r,a){I.wc=n,c=n.id,n.members.forEach(P);var i,s=function(e,t){K(t,e,n,r)};n.on("message",s),n.on("join",P),n.on("leave",M),I.stop=function(){n.off("message",s),n.off("join",P),n.off("leave",M),n.leave(),w&&w.abort()},a&&(I.send=function(n,t,a){var i=function(e,n){if(!f)try{var t=u.encrypt(e,n);if(0===e.indexOf("[4")){var r="";if(window.nacl){var o=window.nacl.hash(window.nacl.util.decodeUTF8(e));r=window.nacl.util.encodeBase64(o.slice(0,8))+"|"}else console.log("Checkpoint sent without an ID. Nacl is missing.");t="cp|"+r+t}return t}catch(n){throw console.log(e),n}}(n,a);if(i){var s=i.slice(0,64),l=/^cp\|/.test(i);e.isCacheCheckpoint&&(l=e.isCacheCheckpoint(n,a)),v[s]=function(e,r){!e&&r&&j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(e,r)},I.wc.bcast(i).then((function(){p=s,delete v[s],j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(null,s)}),(function(e){if(console.error(e),!e||"enoent"!==e.type&&"ENOENT"!==e.type)delete v[s],t(e&&e.type||e);else{if(I.wc.leave(),h)return delete v[s],void t("STOPPED");_=!0,r.join(c,m).then((function(e){U(e,r,!1),I.send(n,t,a)}))}}))}},l&&!w&&(S.realtime=w=C()),e.onInit&&e.onInit({myID:n.myID,realtime:w,getLag:r.getLag,userList:R,network:r,channel:c})),e.onConnect&&e.onConnect(n,I.send),d?(n.members.forEach((function(e){16===e.length&&(i=e)})),D!==i&&(r.historyKeeper=i,D=i,N.forEach((function(e){e(i)}))),function(){var e={txid:b,priority:m,lastKnownHash:p,metadata:O};g&&Array.isArray(t)&&t.length&&(e.lastKnownHash=t[t.length-1].hash),y=[];var o=["GET_HISTORY",n.id,e];i&&r.sendto(i,JSON.stringify(o))}(),S.resetCache=function(){_=!0,t=[],g&&g.clearChannel(c),b=Math.floor(1e6*Math.random()),L({error:"EUNKNOWN",message:"Corrupted cache"},n)}):F(n,r)},B=!1;"undefined"!=typeof window&&window.addEventListener("beforeunload",(function(){B=!0}));var V=function(e,n){var t;return e.some((function(e){if(e.id===n)return t=e,!0})),t},Y=function(n){e.onError&&e.onError({type:n.type||n,message:n.message,error:n.type,loaded:!_})};x=function(r,o){var a;"string"==typeof r&&(a=n.connect(r));var i=function(){T=!1,"string"==typeof r?a.then(o,Y):"function"==typeof r.then?r.then(o,Y):o(r)};if(g&&!T)return g.getChannelCache(c,(function(n,r){A=r?r.k:void 0,(t=r?r.c:[]).length?(E=!0,e.onCacheStart&&e.onCacheStart(),l&&(S.realtime=w=C()),t.length?(e.onMessage&&t.forEach((function(n){var t={time:n.time};e.onMessage(n.patch,"cache",A,n.isCheckpoint,n.hash,n.author,t)})),e.onCacheReady&&e.onCacheReady({id:c,realtime:w,networkPromise:a}),i()):i()):i()})),void(S.resetCache=function(){g&&g.clearChannel(c),t=[]});i()};var G=!0;return k=function(n,t){h||n.join(c||null,m).then((function(e){if(h)try{e.leave()}catch(e){}else U(e,n,t)}),(function(r){r&&"ERESTRICTED"===r.type&&Array.isArray(r.message)&&e.onRejected?e.onRejected(r.message,(function(e){e?Y(r):k(n,t)})):Y(r)}))},S.stop=function(){h=!0},x(a||i,(function(n){if(a=n,G){if(G=!1,h)return;var t=function(n){B||"network.disconnect() called"!==n&&(e.onConnectionChange?e.onConnectionChange({state:!1}):e.onAbort&&e.onAbort({reason:n}))},r=function(n){if(e.onConnectionChange){e.onConnectionChange({state:!0,myId:n});var t=function(){_=!0,T=!0,R.users=[],x(a,k)};if(e.beforeReconnecting)return void e.beforeReconnecting((function(n,r){c=n,e.initialState=r,t()}));t()}},o=function(e,n){var t=V(a.webChannels,c);t&&K(n,e,t,a,!0)};a.on("disconnect",t),a.on("reconnect",r),a.on("message",o),S.network=a,S.stop=function(){I&&I.stop&&I.stop();var e=V(a.webChannels,c);if(e)try{e.leave("")}catch(e){}a.off("disconnect",t),a.off("reconnect",r),a.off("message",o),h=!0},a.onHistoryKeeperChange=function(e){N.push(e)}}k(a,!0)})),S},t))}(h)),h.exports}function m(){return f?u:(f=1,u=function(){if(c)return s;c=1;const e=n=>{if(Array.isArray(n))return n.map(e);if(n instanceof Object){let t=[],r=[];return Object.keys(n).forEach((e=>{/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce(((t,r)=>(t[r]=e(n[r]),t)),{})}return n},n=JSON.stringify.bind(JSON);return s=(t,r,o)=>{let a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;let i=JSON.parse(a);return n(e(i),null,o)}}())}function g(){return l||(l=1,function(e){e.exports&&(e.exports=function(e,n){const t=globalThis;var r,o={},a=void 0===t.Proxy,i=o.DeepProxy=function(){var e={},r=e.isArray=Array.isArray||function(e){return"[object Array]"===Object.toString(e)},o=e.type=function(e){return null===e?"null":r(e)?"array":typeof e},i=e.isProxyable=function(e,n){return(void 0!==n||!a)&&-1!==["object","array"].indexOf(o(e))},s=e.set=function(n){return function(t,r,o){if("on"===r)throw new Error("'on' is a reserved attribute name for realtime lists and maps");return i(o)?t[r]=e.create(o,n):t[r]=o,n(),t[r]||!0}},c=e.pathMatches=function(e,n){return!n.some((function(n,t){return n!==e[t]}))},u=function(e,n){return n.pattern.length-e.pattern.length},f=function(e){return function(n,t,r){switch(n){case"change":t="array"===o(t)?t:[t],e.change.push({cb:function(e,n,o,a){if(c(o,t))return r(e,n,o,a)},pattern:t}),e.change.sort(u);break;case"remove":t="array"===o(t)?t:[t],e.remove.push({cb:function(e,n,o){if(c(n,t))return r(e,n,o)},pattern:t}),e.remove.sort(u);break;case"ready":e.ready.push({cb:function(e){t(e)}});break;case"cacheready":e.cacheready.push({cb:function(e){t(e)}});break;case"disconnect":e.disconnect.push({cb:function(e){t(e)}});break;case"reconnect":e.reconnect.push({cb:function(e){t(e)}});break;case"create":e.create.push({cb:function(e){t(e)}});break;case"error":e.error.push({cb:function(e){t(e)}})}return this}},l=e.get=function(){var e={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};return function(n,t){return"on"===t?f(e):"_isProxy"===t||("_events"===t?e:n[t])}},d=e.delete=function(e){return function(n,t){return void 0===n[t]||(delete n[t],e()),!0}},h=e.handlers=function(e,n){return n?{set:s(e),get:l(e),deleteProperty:d(e)}:{set:s(e),get:function(e,n){return"_isProxy"===n||e[n]},deleteProperty:d(e)}},p=e.remoteChangeFlag=!1,v=e.stringifyFakeProxy=function(e){var t=JSON.parse(n(e));return delete t._events,delete t._isProxy,n(t)};e.checkLocalChange=function(n,r){if(a&&!e.interval){var o=v(n);e.interval=t.setInterval((function(){var e=v(n);e!==o&&(o=e,p?p=!1:r())}),300)}};var y=e.create=function(e,n,r){var s="function"===o(n)?h(n,r):n;switch(o(e)){case"object":Object.keys(e).forEach((function(t){i(e[t])&&!e[t]._isProxy&&(e[t]=y(e[t],n))}));break;case"array":e.forEach((function(t,r){i(t)&&!t._isProxy&&(e[r]=y(e[r],n))}));break;default:throw new Error("attempted to make a proxy of an unproxyable object")}if(!a)return e._isProxy?e:new t.Proxy(e,s);var c=JSON.parse(JSON.stringify(e));if(r){var u={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};c.on=f(u),c._events=u}return c},m=function(e,n,t,r,o){var a=e.slice(0);a.push(n),t._events.change.some((function(e){return!1===e.cb(r,o,a,t)}))},g=e.find=function(e,n){for(var t=n.length,r=0;rs)for(var c,u=s;u<=s;u++)c=e[u],E(r,u,a,c,!0);e.length=s}};return e.update=function(e,n,t){var r=o(e),a=o(n);if(r!==a)throw new Error("Proxy updates can't result in type changes");switch(a){case"array":O.call(e,e,n,(function(e){return y(e,t)}),[],e);break;case"object":b.call(e,e,n,(function(e){return y(e,t)}),[],e);break;default:throw new Error("unsupported realtime datatype:"+a)}},e}();return o.create=function(o){if(!i.isProxyable(o.data,!0))throw new Error("unsupported datatype: "+i.type(o.data));if("function"!=typeof(r=o.ChainPad||t.ChainPad).SmartJSONTransformer)throw new Error("Please update ChainPad");o.classic&&!o.crypto&&(console.error("[chainpad-listmap] no crypto module provided. messages will not be encrypted"),o.crypto={encrypt:function(e){return e},decrypt:function(e){return e}});var s=o.readOnly,c={initialState:n(o.data),patchTransformer:r.SmartJSONTransformer,validateContent:o.validateContent||function(e){try{return JSON.parse(e),!0}catch(n){return console.log(e),console.error("Failed to parse, rejecting patch"),!1}},readOnly:o.readOnly,userName:o.userName||"listmap",Cache:o.Cache,logLevel:void 0===o.logLevel?0:o.logLevel};o.classic&&(c.channel=o.channel,c.crypto=o.crypto,c.network=o.network,c.websocketURL=o.websocketURL,c.metadata=o.metadata||{validateKey:o.validateKey,owners:o.owners,expire:o.expire},c.onRejected=o.onRejected);var u,f,l,d={metadata:{}},h=!0,p=!1,v=a?i.stringifyFakeProxy:n,y=function(){var e=v(f);try{u.contentUpdate(e)}catch(e){f._events.error.forEach((function(n){n.cb({type:"CHAINPAD",error:e.message})}))}o.onLocal&&o.onLocal()},m=c.onLocal=function(e){h||s||(clearTimeout(l),e?y():l=setTimeout(y))},g=function(){i.remoteChangeFlag||m()};f=i.create(o.data,g,!0),c.onInit=function(e){f._events.create.forEach((function(n){n.cb(e)}))},c.onCacheReady=function(e){u&&u===e.realtime||(u=d.realtime=e.realtime);var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),p||f._events.cacheready.forEach((function(n){n.cb(e)}))};var E=0;c.onReady=function(e){if(E=-1,p)return h=!1,c.onRemote(),void f._events.reconnect.forEach((function(n){n.cb(e)}));u&&u===e.realtime||(u=d.realtime=e.realtime),d.metadata=e.metadata;var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),h=!1,p=!0,f._events.ready.forEach((function(n){n.cb(e)}))},c.onRemote=function(){if(!h){var e=u.getUserDoc(),n=JSON.parse(e);i.remoteChangeFlag=!0,i.update(f,n,g),i.remoteChangeFlag=!1}},c.onMessage=function(){-1!==E&&o.updateProgress&&o.updateProgress({progress:E++})},c.onAbort=function(e){f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onConnectionChange=function(e){e.state?h=!0:f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onMetadataUpdate=function(e){d.metadata=e,"function"==typeof o.onMetadataUpdate&&o.onMetadataUpdate(e)},c.onError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},c.onChannelError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},o.common&&"function"==typeof o.common.startRealtime?u=d.cpCnInner=o.common.startRealtime(c):d=e.start(c),d.proxy=f,d.realtime=u;var b=d.setReadOnly;return d.setReadOnly=function(e,n){s=e,b&&b(e,n)},d},o}(y(),m()))}(d)),d.exports}var E=g();function b(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var O,A={exports:{}};function w(){return O||(O=1,function(e){var n,r,o,a;a=function(){var e=b,n=function(t,r,o){r||(r=0);var a=n.resolve(t,r),i=n.m[r][a];if(!i&&e){if(i=e(a))return i}else if(i&&i.c&&(r=i.c,a=i.m,!(i=n.m[r][i.m])))throw new Error('failed to require "'+a+'" from '+r);if(!i)throw new Error('failed to require "'+t+'" from '+o);return i.exports||(i.exports={},i.call(i.exports,i,i.exports,n.relative(a,r))),i.exports};return n.resolve=function(e,t){var r=e,o=e+".js",a=e+"/index.js";return n.m[t][o]&&o?o:n.m[t][a]&&a?a:r},n.relative=function(e,t){return function(r){if("."!=r.charAt(0))return n(r,t,e);var o=e.split("/"),a=r.split("/");o.pop();for(var i=0;i=0;t--)o.check(e.operations[t],n),t>0&&r.assert(!o.shouldMerge(e.operations[t],e.operations[t-1])),"number"==typeof n&&(n+=o.lengthChange(e.operations[t]));return e.isCheckpoint&&(r.assert(1===e.operations.length),r.assert(0===e.operations[0].offset),"number"==typeof n&&r.assert(!n||e.operations[0].toRemove===n)),e};i.toObj=function(e){r.PARANOIA&&c(e);var n,t=new Array(e.operations.length+1);for(n=0;n0);var t,i=s(a.check(e[e.length-1]),n);for(t=0;t=0;t--)f(e,n.operations[t]);return e},i.apply=function(e,n){r.PARANOIA&&(c(e),r.assert("string"==typeof n),r.assert(a.hex_sha256(n)===e.parentHash));for(var t=n,i=e.operations.length-1;i>=0;i--)t=o.apply(e.operations[i],t);return t},i.lengthChange=function(e){r.PARANOIA&&c(e);for(var n=0,t=0;t=0;u--)i[u]=o.invert(e.operations[u],t),t=o.apply(e.operations[u],t);var f=new Array(e.operations.length);!function(){for(var e=i.length-1;e>=0;e--){f[e]=i[e].offset;for(var n=e-1;n>=0;n--)f[e]+=i[n].toRemove-i[n].toInsert.length}}();var l=s(a.hex_sha256(t),e.isCheckpoint);l.operations.splice(0,l.operations.length);for(var d=0;d=0;d--){var h=t(e.operations[d],u,o.simplify);h&&(u=o.apply(h,u),f[l++]=h)}return Array.prototype.push.apply(i.operations,f.reverse()),i.operations[0]||i.operations.shift(),r.PARANOIA&&c(i),i},i.equals=function(e,n){if(e.operations.length!==n.operations.length)return!1;for(var t=0;t0;){var u=o.random(i);i+=o.lengthChange(u),f(t,u)}return c(t),t},Object.freeze(e.exports)},"SHA256.js":function(e,n,t){!function(){function n(e,n){var t=(65535&e)+(65535&n);return(e>>16)+(n>>16)+(t>>16)<<16|65535&t}function t(e,n){return e>>>n|e<<32-n}function r(e,n){return e>>>n}function o(e,n,t){return e&n^~e&t}function a(e,n,t){return e&n^e&t^n&t}function i(e){return t(e,2)^t(e,13)^t(e,22)}function s(e){return t(e,6)^t(e,11)^t(e,25)}function c(e){return t(e,7)^t(e,18)^r(e,3)}e.exports.hex_sha256=function(e){return function(e){for(var n="0123456789abcdef",t="",r=0;r<4*e.length;r++)t+=n.charAt(e[r>>2]>>8*(3-r%4)+4&15)+n.charAt(e[r>>2]>>8*(3-r%4)&15);return t}(function(e,u){var f,l,d,h,p,v,y,m,g,E,b,O=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],A=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],w=function(e){for(var n=[];e>0;e--)n.push(void 0);return n}(64);e[u>>5]|=128<<24-u%32,e[15+(u+64>>9<<4)]=u;for(var D=0;D>5]|=(255&e.charCodeAt(t/8))<<24-t%32;return n}(e),8*e.length))}}()},"Common.js":function(e,n,r){e.exports.global=function(){if("undefined"!=typeof self)return self;if(void 0!==t)return t;if("undefined"!=typeof window)return window;throw new Error("no self, nor global, nor window")}();var o=function(n){return"undefined"!=typeof localStorage&&localStorage[n]?localStorage[n]:e.exports.global[n]},a=e.exports.PARANOIA=o("ChainPad_PARANOIA");e.exports.VALIDATE_ENTIRE_CHAIN_EACH_MSG=o("ChainPad_VALIDATE_ENTIRE_CHAIN_EACH_MSG"),e.exports.TESTING=o("ChainPad_TESTING"),e.exports.assert=function(e){if(!e)throw new Error("Failed assertion")},e.exports.isUint=function(e){return"number"==typeof e&&Math.floor(e)===e&&e>=0},e.exports.randomASCII=function(e){for(var n=[],t=0;tn?1:-1},Object.freeze(e.exports)},"sha256.js":function(e,n,t){var r=t("./sha256/exports.js"),o=t("./SHA256.js"),a=t("./Common");e.exports.check=function(e){if("string"!=typeof e)throw new Error;if(!/[a-f0-9]{64}/.test(e))throw new Error;return e},e.exports.hex_sha256=function(e){e+="";var n=r.hex(function(e){for(var n=new Uint8Array(e.length),t=0;t1&&console.log("["+e.userName+"] "+n)},d=function(e,n){e.logLevel>0&&console.error("["+e.userName+"] "+n)},h=function(e,n,t){if(!e.aborted){t||(t=Math.floor(2*Math.random()*e.config.avgSyncMilliseconds));var r=setTimeout((function(){e.schedules.splice(e.schedules.indexOf(r),1),n()}),t);return e.schedules.push(r),r}},p=function(e,n){var t=e.schedules.indexOf(n);t>-1&&e.schedules.splice(t,1),clearTimeout(n)},v=function(e,n,t,o){var a=i.toStr(n);if(function(e,n,t){e.messageHandlers.length||t("no onMessage() handler registered");try{e.messageHandlers.forEach((function(e){e(n,(function(){t.apply(null,arguments),t=function(){}}))}))}catch(e){t(e.stack)}}(e,a,(function(t){if(t)l(e,"Posting to server failed ["+t+"]"),e.pending=null,e.syncSchedule=h(e,(function(){g(e)}));else{var o=e.pending;if(e.pending=null,!o)throw new Error;r.assert(o.hash===n.hashOf),R(e,a,!0)?(e.timeOfLastSuccess=+new Date,e.lag=+new Date-o.timeSent):l(e,"Our message ["+n.hashOf+"] failed validation"),o.callback()}})),e.pending)throw new Error("there is already a pending message");-1===e.timeOfLastSuccess&&(e.timeOfLastSuccess=+new Date),e.pending={hash:n.hashOf,timeSent:+new Date,callback:function(){e.syncSchedule=h(e,(function(){g(e)}),0),t()}},r.PARANOIA&&A(e)},y=function(e){var n=e.onSettle;e.onSettle=[],n.forEach((function(n){try{n()}catch(n){d(e,"Error in onSettle handler ["+n.stack+"]")}}))},m=function(e){if(!e.mut.inverseOf)throw new Error;return e.mut.inverseOf},g=function(e,n){if(r.PARANOIA&&A(e),e.syncSchedule&&!e.pending){if(p(e,e.syncSchedule),e.syncSchedule=null,e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify),0===e.uncommitted.operations.length)return y(e),e.timeOfLastSuccess=+new Date,void(e.syncSchedule=h(e,(function(){g(e)})));var t=_(e,e.best)+1;if(t%e.config.checkpointInterval!=0){var o;o=e.setContentPatch?e.setContentPatch:i.create(i.PATCH,e.uncommitted,e.best.hashOf),v(e,o,(function(){e.setContentPatch&&(l(e,"initial Ack received ["+o.hashOf+"]"),e.setContentPatch=null)}))}else{var s=e.best;if(l(e,"Sending checkpoint (interval ["+e.config.checkpointInterval+"]) patch no ["+t+"]"),l(e,_(e,e.best)),!s||!s.content||!m(s.content))throw new Error;var c=a.createCheckpoint(e.authDoc,e.authDoc,m(s.content).parentHash),u=i.create(i.CHECKPOINT,c,s.hashOf);v(e,u,(function(){l(e,"Checkpoint sent and accepted")}))}}},E=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),e.messages[n.hashOf]=n,(e.messagesByParent[n.lastMsgHash]=e.messagesByParent[n.lastMsgHash]||[]).push(n)},b=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),delete e.messages[n.hashOf];var t=e.messagesByParent[n.lastMsgHash];r.assert(t.indexOf(n)>-1),t.splice(t.indexOf(n),1),0===t.length&&delete e.messagesByParent[n.lastMsgHash];var o=e.messagesByParent[n.hashOf];if(o)for(var a=0;a_(e,t)&&(t=o)})),t},x=function(e,n){n.operations.length&&(e.patchHandlers.forEach((function(e){e(n)})),e.changeHandlers.forEach((function(e){n.operations.forEach((function(n){e(n.offset,n.toRemove,n.toInsert)}))})))},N=function(e,n){try{return e.config.validateContent(n())}catch(n){d(e,"Error in content validator ["+n.stack+"]")}return!1},I=function(e,n,t){for(var r=O(e,n);r;r=O(e,r))if(!1===t(r))return},C=function(e,n){e.mut.inverseOf||((e.mut.inverseOf=a.invert(e,n)).mut.inverseOf=e)},R=function(e,n,t){r.PARANOIA&&A(e);var c=i.fromString(n);if(l(e,JSON.stringify([c.hashOf,c.content.operations])),e.messages[c.hashOf]){if(e.setContentPatch&&e.setContentPatch.hashOf===c.hashOf)e.setContentPatch=null;else{if(c.content.isCheckpoint)return l(e,"["+(t?"our":"their")+"] Checkpoint ["+c.hashOf+"] is already known"),!0;l(e,"Patch ["+c.hashOf+"] is already known")}r.PARANOIA&&A(e)}else if(!c.content.isCheckpoint||N(e,(function(){return c.content.operations[0].toInsert}))){if(E(e,c),!D(e,e.rootMessage,c)){if(c.content.isCheckpoint&&e.best.mut.isInitialMessage){l(e,"applying checkpoint ["+c.hashOf+"]");var u=a.apply(e.uncommitted,e.authDoc);r.assert(!r.PARANOIA||e.userInterfaceContent===u);var f=a.invert(e.uncommitted,e.authDoc);return a.addOperation(f,o.create(0,e.authDoc.length,c.content.operations[0].toInsert)),f=a.simplify(f,u,e.config.operationSimplify),c.mut.parentCount=0,e.rootMessage=e.best=c,e.authDoc=c.content.operations[0].toInsert,e.uncommitted=a.create(s.hex_sha256(e.authDoc)),x(e,f),r.PARANOIA&&(e.userInterfaceContent=e.authDoc),!0}return l(e,"Patch ["+c.hashOf+"] not connected to root (parent: ["+c.lastMsgHash+"])"),void(r.PARANOIA&&A(e))}(c=S(e,c)).mut.isFromMe=t;var d=c.content,h=[],p=e.best;if(!D(e,e.best,c)){var v=_(e,e.best),g=_(e,c);if(!(v0))return l(e,"Patch ["+c.hashOf+"] chain is ["+g+"] best chain is ["+v+"]"),r.PARANOIA&&A(e),!0;for(;p&&!D(e,p,c);)h.push(p),p=O(e,p);r.assert(p),l(e,"Patch ["+c.hashOf+"] better than best chain, switching")}var R=[],P=c;do{R.unshift(P),P=O(e,P),r.assert(P)}while(P!==p);var k=e.authDoc;h.forEach((function(e){k=a.apply(m(e.content),k)})),R.forEach((function(e,n){n!==R.length-1&&(C(e.content,k),k=a.apply(e.content,k))}));var M=e.best;if(R.length>1?(M=R[R.length-2],r.assert(M)):h.length&&(M=O(e,h[h.length-1]),r.assert(M)),r.assert(m(M.content).parentHash),r.assert(!r.PARANOIA||m(M.content).parentHash===s.hex_sha256(k)),m(M.content).parentHash===d.parentHash){if(d.isCheckpoint&&e.config.noPrune);else if(d.isCheckpoint){var F;if(I(e,c,(function(e){if(e.content.isCheckpoint){if(F)return F=e,!1;F=e}})),F&&F!==e.rootMessage){var L=_(e,F);if(e.config.strictCheckpointValidation&&L%e.config.checkpointInterval!=0){if(l(e,"checkpoint ["+c.hashOf+"] at invalid point ["+L+"]"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}l(e,"checkpoint ["+c.hashOf+"]"),I(e,F,(function(n){l(e,"pruning ["+n.hashOf+"]"),b(e,n)})),e.rootMessage=F}}else{var H=a.simplify(d,k,e.config.operationSimplify);if(!a.equals(H,d)){if(l(e,"patch ["+c.hashOf+"] can be simplified"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}if(!N(e,(function(){return a.apply(d,k)})))return void l(e,"Patch ["+c.hashOf+"] failed content validation")}C(d,k),e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify);var j=a.apply(e.uncommitted,e.authDoc);r.PARANOIA&&r.assert(j===e.userInterfaceContent);var K=a.invert(e.uncommitted,e.authDoc);if(h.forEach((function(n){l(e,"reverting ["+n.hashOf+"]"),n.mut.isFromMe&&l(e,"reverting patch 'from me' ["+JSON.stringify(n.content.operations)+"]"),K=a.merge(K,m(n.content)),function(e,n,t){T(e,n,m(t))}(e,n.mut.isFromMe,n.content)})),R.forEach((function(n){l(e,"applying ["+n.hashOf+"]"),K=a.merge(K,n.content),T(e,n.mut.isFromMe,n.content)})),K=a.merge(K,e.uncommitted),K=a.simplify(K,j,e.config.operationSimplify),e.best=c,r.PARANOIA){var U=a.apply(K,j);r.assert(e.userInterfaceContent.length===w(e)),r.assert(U===e.userInterfaceContent)}return x(e,K),e.uncommitted.operations.length||y(e),r.PARANOIA&&A(e),!0}if(l(e,"patch ["+c.hashOf+"] parentHash is not valid"),r.PARANOIA&&A(e),r.TESTING)throw new Error;b(e,c)}else l(e,"Checkpoint ["+c.hashOf+"] failed content validation")},P=function(e,n){return Object.freeze({type:"Block",hashOf:n.hashOf,lastMsgHash:n.lastMsgHash,isCheckpoint:!!n.content.isCheckpoint,isFromMe:n.mut&&n.mut.isFromMe,author:n.mut&&n.mut.author,serverHash:n.mut&&n.mut.serverHash,time:n.mut&&n.mut.time,getParent:function(){var t=O(e,n);if(t)return P(e,t)},getContent:function(){return function(e,n){for(var t=[n];t[0]!==e.rootMessage;){var o=O(e,t[0]);if(!o)return{error:"not connected to root",doc:void 0};t.unshift(o)}var i="";e.rootMessage.content.operations.length&&(r.assert(1===e.rootMessage.content.operations.length),i=e.rootMessage.content.operations[0].toInsert);for(var s=1;s=0;t--)n=s(e[t],n);return n};var c=o.invert=function(e,n){return r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length)),i(e.offset,e.toInsert.length,(" "+n.substring(e.offset,e.offset+e.toRemove)).slice(1))},u=/[\uD800-\uDBFF]|[\uDC00-\uDFFF]/,f=o.hasSurrogate=function(e){return u.test(e)};o.simplify=function(e,n){r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length));for(var t=c(e,n),o=Math.min(e.toInsert.length,t.toInsert.length),s=0;s=0&&h[s]===d[s];s--);d=d.substring(0,s+1),l=s+1}return 0===l&&0===d.length?null:i(u,l,d)},o.equals=function(e,n){return e.toRemove===n.toRemove&&e.toInsert===n.toInsert&&e.offset===n.offset},o.lengthChange=function(e){return r.PARANOIA&&a(e),e.toInsert.length-e.toRemove},o.merge=function(e,n){r.PARANOIA&&(a(n),a(e));var t=e.offset,o=e.toRemove,s=e.toInsert,c=n.offset,u=n.toRemove,f=n.toInsert,l=c-t;if(u>0){var d=s;s=s.substring(0,l)+s.substring(l+u),(u-=d.length-s.length)<0&&(u=0),o+=u,u=0}if(l<0)t+=l,s=f+s;else if(s.length===l)s+=f;else{if(!(s.length>l))throw new Error("should never happen\n"+JSON.stringify([e,n],null," "));s=s.substring(0,l)+f+s.substring(l)}return""===s&&0===o?null:i(t,o,s)},o.shouldMerge=function(e,n){return r.PARANOIA&&(a(e),a(n)),n.offset0;)a+=c=r._heap_write(t,o+a,e,i,s),i+=c,s-=c,o+=c=n.process(o,a),(a-=c)||(o=0);return this.pos=o,this.len=a,this},e.exports.hash_finish=function(){if(null!==this.result)throw new IllegalStateError("state must be reset before processing new data");return this.asm.finish(this.pos,this.len,0),this.result=new Uint8Array(this.HASH_SIZE),this.result.set(this.heap.subarray(0,this.HASH_SIZE)),this.pos=0,this.len=0,this}},"sha256/utils.js":function(e,n,t){var r=e.exports.string_to_bytes=function(e,n){n=!!n;for(var t=e.length,r=new Uint8Array(n?4*t:t),o=0,a=0;o=t)throw new Error("Malformed string, low surrogate expected at position "+o);i=(55296^i)<<10|65536|56320^e.charCodeAt(o)}else if(!n&&i>>>8)throw new Error("Wide characters are not allowed.");!n||i<=127?r[a++]=i:i<=2047?(r[a++]=192|i>>6,r[a++]=128|63&i):i<=65535?(r[a++]=224|i>>12,r[a++]=128|i>>6&63,r[a++]=128|63&i):(r[a++]=240|i>>18,r[a++]=128|i>>12&63,r[a++]=128|i>>6&63,r[a++]=128|63&i)}return r.subarray(0,a)};e.exports.hex_to_bytes=function(e){var n=e.length;1&n&&(e="0"+e,n++);for(var t=new Uint8Array(n>>1),r=0;r>1]=parseInt(e.substr(r,2),16);return t},e.exports.base64_to_bytes=function(e){return r(atob(e))};var o=e.exports.bytes_to_string=function(e,n){n=!!n;for(var t=e.length,r=new Array(t),o=0,a=0;o=192&&i<224&&o+1=224&&i<240&&o+2=240&&i<248&&o+3>10,r[a++]=56320|1023&s)}}for(var c="",u=16384,f=0;f>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+=1},e.exports.is_number=function(e){return"number"==typeof e},e.exports.is_string=function(e){return"string"==typeof e},e.exports.is_buffer=function(e){return e instanceof ArrayBuffer},e.exports.is_bytes=function(e){return e instanceof Uint8Array},e.exports.is_typed_array=function(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array},e.exports._heap_init=function(e,n){var t=n.heap,r=t?t.byteLength:n.heapSize||65536;if(4095&r||r<=0)throw new Error("heap size must be a positive integer and a multiple of 4096");return t=t||new e(new ArrayBuffer(r))},e.exports._heap_write=function(e,n,t,r,o){var a=e.length-n,i=a>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x428a2f98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=n+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x71374491|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=t+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb5c0fbcf|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=l+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe9b5dba5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=d+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x3956c25b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=h+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x59f111f1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=p+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x923f82a4|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=v+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xab1c5ed5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=y+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd807aa98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=m+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x12835b01|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=g+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x243185be|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=E+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x550c7dc3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=b+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x72be5d74|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=O+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x80deb1fe|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=A+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x9bdc06a7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=w+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc19bf174|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe49b69c1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xefbe4786|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x0fc19dc6|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x240ca1cc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2de92c6f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4a7484aa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5cb0a9dc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x76f988da|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x983e5152|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa831c66d|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb00327c8|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbf597fc7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc6e00bf3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd5a79147|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x06ca6351|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x14292967|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x27b70a85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2e1b2138|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4d2c6dfc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x53380d13|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x650a7354|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x766a0abb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x81c2c92e|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x92722c85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa2bfe8a1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa81a664b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc24b8b70|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc76c51a3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd192e819|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd6990624|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xf40e3585|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x106aa070|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x19a4c116|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x1e376c08|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2748774c|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x34b0bcb5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x391c0cb3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4ed8aa4a|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5b9cca4f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x682e6ff3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x748f82ee|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x78a5636f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x84c87814|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x8cc70208|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x90befffa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa4506ceb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbef9a3f7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc67178f2|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;r=r+D|0;o=o+_|0;a=a+T|0;i=i+S|0;s=s+x|0;c=c+N|0;u=u+I|0;f=f+C|0}function C(e){e=e|0;I(N[e|0]<<24|N[e|1]<<16|N[e|2]<<8|N[e|3],N[e|4]<<24|N[e|5]<<16|N[e|6]<<8|N[e|7],N[e|8]<<24|N[e|9]<<16|N[e|10]<<8|N[e|11],N[e|12]<<24|N[e|13]<<16|N[e|14]<<8|N[e|15],N[e|16]<<24|N[e|17]<<16|N[e|18]<<8|N[e|19],N[e|20]<<24|N[e|21]<<16|N[e|22]<<8|N[e|23],N[e|24]<<24|N[e|25]<<16|N[e|26]<<8|N[e|27],N[e|28]<<24|N[e|29]<<16|N[e|30]<<8|N[e|31],N[e|32]<<24|N[e|33]<<16|N[e|34]<<8|N[e|35],N[e|36]<<24|N[e|37]<<16|N[e|38]<<8|N[e|39],N[e|40]<<24|N[e|41]<<16|N[e|42]<<8|N[e|43],N[e|44]<<24|N[e|45]<<16|N[e|46]<<8|N[e|47],N[e|48]<<24|N[e|49]<<16|N[e|50]<<8|N[e|51],N[e|52]<<24|N[e|53]<<16|N[e|54]<<8|N[e|55],N[e|56]<<24|N[e|57]<<16|N[e|58]<<8|N[e|59],N[e|60]<<24|N[e|61]<<16|N[e|62]<<8|N[e|63])}function R(e){e=e|0;N[e|0]=r>>>24;N[e|1]=r>>>16&255;N[e|2]=r>>>8&255;N[e|3]=r&255;N[e|4]=o>>>24;N[e|5]=o>>>16&255;N[e|6]=o>>>8&255;N[e|7]=o&255;N[e|8]=a>>>24;N[e|9]=a>>>16&255;N[e|10]=a>>>8&255;N[e|11]=a&255;N[e|12]=i>>>24;N[e|13]=i>>>16&255;N[e|14]=i>>>8&255;N[e|15]=i&255;N[e|16]=s>>>24;N[e|17]=s>>>16&255;N[e|18]=s>>>8&255;N[e|19]=s&255;N[e|20]=c>>>24;N[e|21]=c>>>16&255;N[e|22]=c>>>8&255;N[e|23]=c&255;N[e|24]=u>>>24;N[e|25]=u>>>16&255;N[e|26]=u>>>8&255;N[e|27]=u&255;N[e|28]=f>>>24;N[e|29]=f>>>16&255;N[e|30]=f>>>8&255;N[e|31]=f&255}function P(){r=0x6a09e667;o=0xbb67ae85;a=0x3c6ef372;i=0xa54ff53a;s=0x510e527f;c=0x9b05688c;u=0x1f83d9ab;f=0x5be0cd19;l=d=0}function k(e,n,t,h,p,v,y,m,g,E){e=e|0;n=n|0;t=t|0;h=h|0;p=p|0;v=v|0;y=y|0;m=m|0;g=g|0;E=E|0;r=e;o=n;a=t;i=h;s=p;c=v;u=y;f=m;l=g;d=E}function M(e,n){e=e|0;n=n|0;var t=0;if(e&63)return-1;while((n|0)>=64){C(e);e=e+64|0;n=n-64|0;t=t+64|0}l=l+t|0;if(l>>>0>>0)d=d+1|0;return t|0}function F(e,n,t){e=e|0;n=n|0;t=t|0;var r=0,o=0;if(e&63)return-1;if(~t)if(t&31)return-1;if((n|0)>=64){r=M(e,n)|0;if((r|0)==-1)return-1;e=e+r|0;n=n-r|0}r=r+n|0;l=l+n|0;if(l>>>0>>0)d=d+1|0;N[e|n]=0x80;if((n|0)>=56){for(o=n+1|0;(o|0)<64;o=o+1|0)N[e|o]=0x00;C(e);n=0;N[e|0]=0}for(o=n+1|0;(o|0)<59;o=o+1|0)N[e|o]=0;N[e|56]=d>>>21&255;N[e|57]=d>>>13&255;N[e|58]=d>>>5&255;N[e|59]=d<<3&255|l>>>29;N[e|60]=l>>>21&255;N[e|61]=l>>>13&255;N[e|62]=l>>>5&255;N[e|63]=l<<3&255;C(e);if(~t)R(t);return r|0}function L(){r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;l=64;d=0}function H(){r=O;o=A;a=w;i=D;s=_;c=T;u=S;f=x;l=64;d=0}function j(e,n,t,N,C,R,k,M,F,L,H,j,K,U,B,V){e=e|0;n=n|0;t=t|0;N=N|0;C=C|0;R=R|0;k=k|0;M=M|0;F=F|0;L=L|0;H=H|0;j=j|0;K=K|0;U=U|0;B=B|0;V=V|0;P();I(e^0x5c5c5c5c,n^0x5c5c5c5c,t^0x5c5c5c5c,N^0x5c5c5c5c,C^0x5c5c5c5c,R^0x5c5c5c5c,k^0x5c5c5c5c,M^0x5c5c5c5c,F^0x5c5c5c5c,L^0x5c5c5c5c,H^0x5c5c5c5c,j^0x5c5c5c5c,K^0x5c5c5c5c,U^0x5c5c5c5c,B^0x5c5c5c5c,V^0x5c5c5c5c);O=r;A=o;w=a;D=i;_=s;T=c;S=u;x=f;P();I(e^0x36363636,n^0x36363636,t^0x36363636,N^0x36363636,C^0x36363636,R^0x36363636,k^0x36363636,M^0x36363636,F^0x36363636,L^0x36363636,H^0x36363636,j^0x36363636,K^0x36363636,U^0x36363636,B^0x36363636,V^0x36363636);h=r;p=o;v=a;y=i;m=s;g=c;E=u;b=f;l=64;d=0}function K(e,n,t){e=e|0;n=n|0;t=t|0;var l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0;if(e&63)return-1;if(~t)if(t&31)return-1;E=F(e,n,-1)|0;l=r,d=o,h=a,p=i,v=s,y=c,m=u,g=f;H();I(l,d,h,p,v,y,m,g,0x80000000,0,0,0,0,0,0,768);if(~t)R(t);return E|0}function U(e,n,t,l,d){e=e|0;n=n|0;t=t|0;l=l|0;d=d|0;var h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0;if(e&63)return-1;if(~d)if(d&31)return-1;N[e+n|0]=t>>>24;N[e+n+1|0]=t>>>16&255;N[e+n+2|0]=t>>>8&255;N[e+n+3|0]=t&255;K(e,n+4|0,-1)|0;h=O=r,p=A=o,v=w=a,y=D=i,m=_=s,g=T=c,E=S=u,b=x=f;l=l-1|0;while((l|0)>0){L();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;H();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;h=h^r;p=p^o;v=v^a;y=y^i;m=m^s;g=g^c;E=E^u;b=b^f;l=l-1|0}r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;if(~d)R(d);return 0}return{reset:P,init:k,process:M,finish:F,hmac_reset:L,hmac_init:j,hmac_finish:K,pbkdf2_generate_block:U}}},"transform/TextTransformer.js":function(e,n,t){var r=t("../Operation"),o=t("../Common"),a=function(e,n){o.PARANOIA&&(r.check(e),r.check(n));var t=function(e,n){if(e.offset>n.offset){if(e.offset>n.offset+n.toRemove)return r.create(e.offset-n.toRemove+n.toInsert.length,e.toRemove,e.toInsert);var t=e.toRemove-(n.offset+n.toRemove-e.offset);return t<0&&(t=0),0===t&&0===e.toInsert.length?null:r.create(n.offset+n.toInsert.length,t,e.toInsert)}if(e.offset+e.toRemove=0;i--)s=r.apply(n[i],s);var c=[];for(i=e.length-1;i>=0;i--){for(var u=e[i],f=n.length-1;f>=0;f--){try{u=a(u,n[f])}catch(e){return console.error("The pluggable transform function threw an error, failing operational transformation"),console.error(e.stack),[]}if(!u)break}u&&(o.PARANOIA&&r.check(u,s.length),c.unshift(u))}return c}},"transform/NaiveJSONTransformer.js":function(e,n,t){var r=t("./TextTransformer"),o=t("../Operation"),a=t("../Common");e.exports=function(e,n,t){var i,s,c,u=a.global.REALTIME_DEBUG=a.global.REALTIME_DEBUG||{};try{i=r(e,n,t),s=o.applyMulti(n,t),c=o.applyMulti(i,s);try{return JSON.parse(c),i}catch(r){console.error(r),u.ot_parseError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_parseError`")}}catch(r){console.error(r),u.ot_applyError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_applyError`")}return[]}},"transform/SmartJSONTransformer.js":function(e,n,t){var r,o,a,i=t("json.sortify"),s=t("../Diff"),c=t("../Operation"),u=t("./TextTransformer"),f=function(e){return null===e?"null":(n=e,"[object Array]"===Object.prototype.toString.call(n)?"array":typeof e);var n},l=function(e,n){for(var t=n.length,r=0;r1)return!0}))&&("splice"!==n.type||!e.some((function(e){if("splice"===e.type&&y(e.path,n.path)&&e.path.length-n.path.length<0){if(!e.removals)return;for(var t=e.offset,r=e.offset+e.removals;te.offset+n.removals)return void(n.offset+=e.value.length-e.removals);if(n.offseti)){var d=n.slice(0,l);if((y=n.slice(l))===u){var p=Math.min(s,l);if((g=c.slice(0,p))===(b=d.slice(0,p)))return h(g,c.slice(p),d.slice(p),u)}}if(null===f||f===s){var v=s,y=(d=n.slice(0,v),n.slice(v));if(d===c){var m=Math.min(a-v,i-v);if((E=u.slice(u.length-m))===(O=y.slice(y.length-m)))return h(c,u.slice(0,u.length-m),y.slice(0,y.length-m),E)}}}if(r.length>0&&o&&0===o.length){var g=e.slice(0,r.index),E=e.slice(r.index+r.length);if(!(i<(p=g.length)+(m=E.length))){var b=n.slice(0,p),O=n.slice(i-m);if(g===b&&E===O)return h(g,e.slice(p,a-m),n.slice(p,i-m),E)}}return null}(e,n,t);if(f)return f}var l=i(e,n),d=e.substring(0,l);l=s(e=e.substring(l),n=n.substring(l));var p=e.substring(e.length-l),v=function(e,n){var t;if(!e)return[[1,n]];if(!n)return[[r,e]];var c=e.length>n.length?e:n,u=e.length>n.length?n:e,f=c.indexOf(u);if(-1!==f)return t=[[1,c.substring(0,f)],[0,u],[1,c.substring(f+u.length)]],e.length>n.length&&(t[0][0]=t[2][0]=r),t;if(1===u.length)return[[r,e],[1,n]];var l=function(e,n){var t=e.length>n.length?e:n,r=e.length>n.length?n:e;if(t.length<4||2*r.length=e.length?[r,o,a,c,l]:null}var a,c,u,f,l,d=o(t,r,Math.ceil(t.length/4)),h=o(t,r,Math.ceil(t.length/2));if(!d&&!h)return null;a=h?d&&d[4].length>h[4].length?d:h:d,e.length>n.length?(c=a[0],u=a[1],f=a[2],l=a[3]):(f=a[0],l=a[1],c=a[2],u=a[3]);var p=a[4];return[c,u,f,l,p]}(e,n);if(l){var d=l[0],h=l[1],p=l[2],v=l[3],y=l[4],m=o(d,p),g=o(h,v);return m.concat([[0,y]],g)}return function(e,n){for(var t=e.length,o=n.length,i=Math.ceil((t+o)/2),s=i,c=2*i,u=new Array(c),f=new Array(c),l=0;lt)v+=2;else if(O>o)p+=2;else if(h&&(D=s+d-E)>=0&&D=(w=t-f[D]))return a(e,n,T,O)}for(var A=-g+y;A<=g-m;A+=2){for(var w,D=s+A,_=(w=A===-g||A!==g&&f[D-1]t)m+=2;else if(_>o)y+=2;else if(!h){var T;if((b=s+d-A)>=0&&b=(w=t-w))return a(e,n,T,O)}}}return[[r,e],[1,n]]}(e,n)}(e=e.substring(0,e.length-l),n=n.substring(0,n.length-l));return d&&v.unshift([0,d]),p&&v.push([0,p]),c(v,u),v}function a(e,n,t,r){var a=e.substring(0,t),i=n.substring(0,r),s=e.substring(t),c=n.substring(r),u=o(a,i),f=o(s,c);return u.concat(f)}function i(e,n){if(!e||!n||e.charAt(0)!==n.charAt(0))return 0;for(var t=0,r=Math.min(e.length,n.length),o=r,a=0;t=0&&d(e[p][1])){var v=e[p][1].slice(-1);if(e[p][1]=e[p][1].slice(0,-1),f=v+f,h=v+h,!e[p][1]){e.splice(p,1),o--;var y=p-1;e[y]&&1===e[y][0]&&(u++,h=e[y][1]+h,y--),e[y]&&e[y][0]===r&&(a++,f=e[y][1]+f,y--),p=y}}l(e[o][1])&&(v=e[o][1].charAt(0),e[o][1]=e[o][1].slice(1),f+=v,h+=v)}if(o0||h.length>0){f.length>0&&h.length>0&&(0!==(t=i(h,f))&&(p>=0?e[p][1]+=h.substring(0,t):(e.splice(0,0,[0,h.substring(0,t)]),o++),h=h.substring(t),f=f.substring(t)),0!==(t=s(h,f))&&(e[o][1]=h.substring(h.length-t)+e[o][1],h=h.substring(0,h.length-t),f=f.substring(0,f.length-t)));var m=u+a;0===f.length&&0===h.length?(e.splice(o-m,m),o-=m):0===f.length?(e.splice(o-m,m,[1,h]),o=o-m+1):0===h.length?(e.splice(o-m,m,[r,f]),o=o-m+1):(e.splice(o-m,m,[r,f],[1,h]),o=o-m+2)}0!==o&&0===e[o-1][0]?(e[o-1][1]+=e[o][1],e.splice(o,1)):o++,u=0,a=0,f="",h=""}""===e[e.length-1][1]&&e.pop();var g=!1;for(o=1;o=55296&&e<=56319}function f(e){return e>=56320&&e<=57343}function l(e){return f(e.charCodeAt(0))}function d(e){return u(e.charCodeAt(e.length-1))}function h(e,n,t,o){return d(e)||l(o)?null:function(e){for(var n=[],t=0;t0&&n.push(e[t]);return n}([[0,e],[r,n],[1,t],[0,o]])}function p(e,n,t){return o(e,n,t,!0)}p.INSERT=1,p.DELETE=r,p.EQUAL=0,e.exports=p}},n=a("ChainPad.js"),r="ChainPad",e.exports=n,"undefined"!=typeof window?o=window:void 0!==t?o=t:"undefined"!=typeof self&&(o=self),o[r]=n}(A)),A.exports}var D,_=w(),T=n({__proto__:null,default:r(_)},[_]),S={exports:{}},x={exports:{}};function N(){return D||(D=1,function(e){!function(e){var n=function(e){var n,t=new Float64Array(16);if(e)for(n=0;n>24&255,e[n+1]=t>>16&255,e[n+2]=t>>8&255,e[n+3]=255&t,e[n+4]=r>>24&255,e[n+5]=r>>16&255,e[n+6]=r>>8&255,e[n+7]=255&r}function p(e,n,t,r,o){var a,i=0;for(a=0;a>>8)-1}function v(e,n,t,r){return p(e,n,t,r,16)}function y(e,n,t,r){return p(e,n,t,r,32)}function m(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=a,A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=0;L<20;L+=2)O^=(o=(P^=(o=(N^=(o=(_^=(o=O+P|0)<<7|o>>>25)+O|0)<<9|o>>>23)+_|0)<<13|o>>>19)+N|0)<<18|o>>>14,T^=(o=(A^=(o=(k^=(o=(I^=(o=T+A|0)<<7|o>>>25)+T|0)<<9|o>>>23)+I|0)<<13|o>>>19)+k|0)<<18|o>>>14,C^=(o=(S^=(o=(w^=(o=(M^=(o=C+S|0)<<7|o>>>25)+C|0)<<9|o>>>23)+M|0)<<13|o>>>19)+w|0)<<18|o>>>14,F^=(o=(R^=(o=(x^=(o=(D^=(o=F+R|0)<<7|o>>>25)+F|0)<<9|o>>>23)+D|0)<<13|o>>>19)+x|0)<<18|o>>>14,O^=(o=(D^=(o=(w^=(o=(A^=(o=O+D|0)<<7|o>>>25)+O|0)<<9|o>>>23)+A|0)<<13|o>>>19)+w|0)<<18|o>>>14,T^=(o=(_^=(o=(x^=(o=(S^=(o=T+_|0)<<7|o>>>25)+T|0)<<9|o>>>23)+S|0)<<13|o>>>19)+x|0)<<18|o>>>14,C^=(o=(I^=(o=(N^=(o=(R^=(o=C+I|0)<<7|o>>>25)+C|0)<<9|o>>>23)+R|0)<<13|o>>>19)+N|0)<<18|o>>>14,F^=(o=(M^=(o=(k^=(o=(P^=(o=F+M|0)<<7|o>>>25)+F|0)<<9|o>>>23)+P|0)<<13|o>>>19)+k|0)<<18|o>>>14;O=O+a|0,A=A+i|0,w=w+s|0,D=D+c|0,_=_+u|0,T=T+f|0,S=S+l|0,x=x+d|0,N=N+h|0,I=I+p|0,C=C+v|0,R=R+y|0,P=P+m|0,k=k+g|0,M=M+E|0,F=F+b|0,e[0]=O>>>0&255,e[1]=O>>>8&255,e[2]=O>>>16&255,e[3]=O>>>24&255,e[4]=A>>>0&255,e[5]=A>>>8&255,e[6]=A>>>16&255,e[7]=A>>>24&255,e[8]=w>>>0&255,e[9]=w>>>8&255,e[10]=w>>>16&255,e[11]=w>>>24&255,e[12]=D>>>0&255,e[13]=D>>>8&255,e[14]=D>>>16&255,e[15]=D>>>24&255,e[16]=_>>>0&255,e[17]=_>>>8&255,e[18]=_>>>16&255,e[19]=_>>>24&255,e[20]=T>>>0&255,e[21]=T>>>8&255,e[22]=T>>>16&255,e[23]=T>>>24&255,e[24]=S>>>0&255,e[25]=S>>>8&255,e[26]=S>>>16&255,e[27]=S>>>24&255,e[28]=x>>>0&255,e[29]=x>>>8&255,e[30]=x>>>16&255,e[31]=x>>>24&255,e[32]=N>>>0&255,e[33]=N>>>8&255,e[34]=N>>>16&255,e[35]=N>>>24&255,e[36]=I>>>0&255,e[37]=I>>>8&255,e[38]=I>>>16&255,e[39]=I>>>24&255,e[40]=C>>>0&255,e[41]=C>>>8&255,e[42]=C>>>16&255,e[43]=C>>>24&255,e[44]=R>>>0&255,e[45]=R>>>8&255,e[46]=R>>>16&255,e[47]=R>>>24&255,e[48]=P>>>0&255,e[49]=P>>>8&255,e[50]=P>>>16&255,e[51]=P>>>24&255,e[52]=k>>>0&255,e[53]=k>>>8&255,e[54]=k>>>16&255,e[55]=k>>>24&255,e[56]=M>>>0&255,e[57]=M>>>8&255,e[58]=M>>>16&255,e[59]=M>>>24&255,e[60]=F>>>0&255,e[61]=F>>>8&255,e[62]=F>>>16&255,e[63]=F>>>24&255}(e,n,t,r)}function g(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=0;O<20;O+=2)a^=(o=(m^=(o=(h^=(o=(u^=(o=a+m|0)<<7|o>>>25)+a|0)<<9|o>>>23)+u|0)<<13|o>>>19)+h|0)<<18|o>>>14,f^=(o=(i^=(o=(g^=(o=(p^=(o=f+i|0)<<7|o>>>25)+f|0)<<9|o>>>23)+p|0)<<13|o>>>19)+g|0)<<18|o>>>14,v^=(o=(l^=(o=(s^=(o=(E^=(o=v+l|0)<<7|o>>>25)+v|0)<<9|o>>>23)+E|0)<<13|o>>>19)+s|0)<<18|o>>>14,b^=(o=(y^=(o=(d^=(o=(c^=(o=b+y|0)<<7|o>>>25)+b|0)<<9|o>>>23)+c|0)<<13|o>>>19)+d|0)<<18|o>>>14,a^=(o=(c^=(o=(s^=(o=(i^=(o=a+c|0)<<7|o>>>25)+a|0)<<9|o>>>23)+i|0)<<13|o>>>19)+s|0)<<18|o>>>14,f^=(o=(u^=(o=(d^=(o=(l^=(o=f+u|0)<<7|o>>>25)+f|0)<<9|o>>>23)+l|0)<<13|o>>>19)+d|0)<<18|o>>>14,v^=(o=(p^=(o=(h^=(o=(y^=(o=v+p|0)<<7|o>>>25)+v|0)<<9|o>>>23)+y|0)<<13|o>>>19)+h|0)<<18|o>>>14,b^=(o=(E^=(o=(g^=(o=(m^=(o=b+E|0)<<7|o>>>25)+b|0)<<9|o>>>23)+m|0)<<13|o>>>19)+g|0)<<18|o>>>14;e[0]=a>>>0&255,e[1]=a>>>8&255,e[2]=a>>>16&255,e[3]=a>>>24&255,e[4]=f>>>0&255,e[5]=f>>>8&255,e[6]=f>>>16&255,e[7]=f>>>24&255,e[8]=v>>>0&255,e[9]=v>>>8&255,e[10]=v>>>16&255,e[11]=v>>>24&255,e[12]=b>>>0&255,e[13]=b>>>8&255,e[14]=b>>>16&255,e[15]=b>>>24&255,e[16]=l>>>0&255,e[17]=l>>>8&255,e[18]=l>>>16&255,e[19]=l>>>24&255,e[20]=d>>>0&255,e[21]=d>>>8&255,e[22]=d>>>16&255,e[23]=d>>>24&255,e[24]=h>>>0&255,e[25]=h>>>8&255,e[26]=h>>>16&255,e[27]=h>>>24&255,e[28]=p>>>0&255,e[29]=p>>>8&255,e[30]=p>>>16&255,e[31]=p>>>24&255}(e,n,t,r)}var E=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function O(e,n,t,r,o,a,i){var s,c,u=new Uint8Array(16),f=new Uint8Array(64);for(c=0;c<16;c++)u[c]=0;for(c=0;c<8;c++)u[c]=a[c];for(;o>=64;){for(m(f,u,i,E),c=0;c<64;c++)e[n+c]=t[r+c]^f[c];for(s=1,c=8;c<16;c++)s=s+(255&u[c])|0,u[c]=255&s,s>>>=8;o-=64,n+=64,r+=64}if(o>0)for(m(f,u,i,E),c=0;c=64;){for(m(c,s,o,E),i=0;i<64;i++)e[n+i]=c[i];for(a=1,i=8;i<16;i++)a=a+(255&s[i])|0,s[i]=255&a,a>>>=8;t-=64,n+=64}if(t>0)for(m(c,s,o,E),i=0;i>>13|t<<3),r=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(t>>>10|r<<6),o=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(r>>>7|o<<9),a=255&e[8]|(255&e[9])<<8,this.r[4]=255&(o>>>4|a<<12),this.r[5]=a>>>1&8190,i=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(a>>>14|i<<2),s=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(i>>>11|s<<5),c=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(s>>>8|c<<8),this.r[9]=c>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function T(e,n,t,r,o,a){var i=new _(a);return i.update(t,r,o),i.finish(e,n),0}function S(e,n,t,r,o,a){var i=new Uint8Array(16);return T(i,0,t,r,o,a),v(e,n,i,0)}function x(e,n,t,r,o){var a;if(t<32)return-1;for(D(e,0,n,0,t,r,o),T(e,16,e,32,t-32,e),a=0;a<16;a++)e[a]=0;return 0}function N(e,n,t,r,o){var a,i=new Uint8Array(32);if(t<32)return-1;if(w(i,0,32,r,o),0!==S(n,16,n,32,t-32,i))return-1;for(D(e,0,n,0,t,r,o),a=0;a<32;a++)e[a]=0;return 0}function I(e,n){var t;for(t=0;t<16;t++)e[t]=0|n[t]}function C(e){var n,t,r=1;for(n=0;n<16;n++)t=e[n]+r+65535,r=Math.floor(t/65536),e[n]=t-65536*r;e[0]+=r-1+37*(r-1)}function R(e,n,t){for(var r,o=~(t-1),a=0;a<16;a++)r=o&(e[a]^n[a]),e[a]^=r,n[a]^=r}function P(e,t){var r,o,a,i=n(),s=n();for(r=0;r<16;r++)s[r]=t[r];for(C(s),C(s),C(s),o=0;o<2;o++){for(i[0]=s[0]-65517,r=1;r<15;r++)i[r]=s[r]-65535-(i[r-1]>>16&1),i[r-1]&=65535;i[15]=s[15]-32767-(i[14]>>16&1),a=i[15]>>16&1,i[14]&=65535,R(s,i,1-a)}for(r=0;r<16;r++)e[2*r]=255&s[r],e[2*r+1]=s[r]>>8}function k(e,n){var t=new Uint8Array(32),r=new Uint8Array(32);return P(t,e),P(r,n),y(t,0,r,0)}function M(e){var n=new Uint8Array(32);return P(n,e),1&n[0]}function F(e,n){var t;for(t=0;t<16;t++)e[t]=n[2*t]+(n[2*t+1]<<8);e[15]&=32767}function L(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]+t[r]}function H(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]-t[r]}function j(e,n,t){var r,o,a=0,i=0,s=0,c=0,u=0,f=0,l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0,N=0,I=0,C=0,R=0,P=0,k=0,M=0,F=t[0],L=t[1],H=t[2],j=t[3],K=t[4],U=t[5],B=t[6],V=t[7],Y=t[8],G=t[9],J=t[10],q=t[11],W=t[12],z=t[13],Q=t[14],Z=t[15];a+=(r=n[0])*F,i+=r*L,s+=r*H,c+=r*j,u+=r*K,f+=r*U,l+=r*B,d+=r*V,h+=r*Y,p+=r*G,v+=r*J,y+=r*q,m+=r*W,g+=r*z,E+=r*Q,b+=r*Z,i+=(r=n[1])*F,s+=r*L,c+=r*H,u+=r*j,f+=r*K,l+=r*U,d+=r*B,h+=r*V,p+=r*Y,v+=r*G,y+=r*J,m+=r*q,g+=r*W,E+=r*z,b+=r*Q,O+=r*Z,s+=(r=n[2])*F,c+=r*L,u+=r*H,f+=r*j,l+=r*K,d+=r*U,h+=r*B,p+=r*V,v+=r*Y,y+=r*G,m+=r*J,g+=r*q,E+=r*W,b+=r*z,O+=r*Q,A+=r*Z,c+=(r=n[3])*F,u+=r*L,f+=r*H,l+=r*j,d+=r*K,h+=r*U,p+=r*B,v+=r*V,y+=r*Y,m+=r*G,g+=r*J,E+=r*q,b+=r*W,O+=r*z,A+=r*Q,w+=r*Z,u+=(r=n[4])*F,f+=r*L,l+=r*H,d+=r*j,h+=r*K,p+=r*U,v+=r*B,y+=r*V,m+=r*Y,g+=r*G,E+=r*J,b+=r*q,O+=r*W,A+=r*z,w+=r*Q,D+=r*Z,f+=(r=n[5])*F,l+=r*L,d+=r*H,h+=r*j,p+=r*K,v+=r*U,y+=r*B,m+=r*V,g+=r*Y,E+=r*G,b+=r*J,O+=r*q,A+=r*W,w+=r*z,D+=r*Q,_+=r*Z,l+=(r=n[6])*F,d+=r*L,h+=r*H,p+=r*j,v+=r*K,y+=r*U,m+=r*B,g+=r*V,E+=r*Y,b+=r*G,O+=r*J,A+=r*q,w+=r*W,D+=r*z,_+=r*Q,T+=r*Z,d+=(r=n[7])*F,h+=r*L,p+=r*H,v+=r*j,y+=r*K,m+=r*U,g+=r*B,E+=r*V,b+=r*Y,O+=r*G,A+=r*J,w+=r*q,D+=r*W,_+=r*z,T+=r*Q,S+=r*Z,h+=(r=n[8])*F,p+=r*L,v+=r*H,y+=r*j,m+=r*K,g+=r*U,E+=r*B,b+=r*V,O+=r*Y,A+=r*G,w+=r*J,D+=r*q,_+=r*W,T+=r*z,S+=r*Q,x+=r*Z,p+=(r=n[9])*F,v+=r*L,y+=r*H,m+=r*j,g+=r*K,E+=r*U,b+=r*B,O+=r*V,A+=r*Y,w+=r*G,D+=r*J,_+=r*q,T+=r*W,S+=r*z,x+=r*Q,N+=r*Z,v+=(r=n[10])*F,y+=r*L,m+=r*H,g+=r*j,E+=r*K,b+=r*U,O+=r*B,A+=r*V,w+=r*Y,D+=r*G,_+=r*J,T+=r*q,S+=r*W,x+=r*z,N+=r*Q,I+=r*Z,y+=(r=n[11])*F,m+=r*L,g+=r*H,E+=r*j,b+=r*K,O+=r*U,A+=r*B,w+=r*V,D+=r*Y,_+=r*G,T+=r*J,S+=r*q,x+=r*W,N+=r*z,I+=r*Q,C+=r*Z,m+=(r=n[12])*F,g+=r*L,E+=r*H,b+=r*j,O+=r*K,A+=r*U,w+=r*B,D+=r*V,_+=r*Y,T+=r*G,S+=r*J,x+=r*q,N+=r*W,I+=r*z,C+=r*Q,R+=r*Z,g+=(r=n[13])*F,E+=r*L,b+=r*H,O+=r*j,A+=r*K,w+=r*U,D+=r*B,_+=r*V,T+=r*Y,S+=r*G,x+=r*J,N+=r*q,I+=r*W,C+=r*z,R+=r*Q,P+=r*Z,E+=(r=n[14])*F,b+=r*L,O+=r*H,A+=r*j,w+=r*K,D+=r*U,_+=r*B,T+=r*V,S+=r*Y,x+=r*G,N+=r*J,I+=r*q,C+=r*W,R+=r*z,P+=r*Q,k+=r*Z,b+=(r=n[15])*F,i+=38*(A+=r*H),s+=38*(w+=r*j),c+=38*(D+=r*K),u+=38*(_+=r*U),f+=38*(T+=r*B),l+=38*(S+=r*V),d+=38*(x+=r*Y),h+=38*(N+=r*G),p+=38*(I+=r*J),v+=38*(C+=r*q),y+=38*(R+=r*W),m+=38*(P+=r*z),g+=38*(k+=r*Q),E+=38*(M+=r*Z),a=(r=(a+=38*(O+=r*L))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a=(r=(a+=o-1+37*(o-1))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a+=o-1+37*(o-1),e[0]=a,e[1]=i,e[2]=s,e[3]=c,e[4]=u,e[5]=f,e[6]=l,e[7]=d,e[8]=h,e[9]=p,e[10]=v,e[11]=y,e[12]=m,e[13]=g,e[14]=E,e[15]=b}function K(e,n){j(e,n,n)}function U(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=253;r>=0;r--)K(o,o),2!==r&&4!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function B(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=250;r>=0;r--)K(o,o),1!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function V(e,t,r){var o,a,i=new Uint8Array(32),c=new Float64Array(80),u=n(),f=n(),l=n(),d=n(),h=n(),p=n();for(a=0;a<31;a++)i[a]=t[a];for(i[31]=127&t[31]|64,i[0]&=248,F(c,r),a=0;a<16;a++)f[a]=c[a],d[a]=u[a]=l[a]=0;for(u[0]=d[0]=1,a=254;a>=0;--a)R(u,f,o=i[a>>>3]>>>(7&a)&1),R(l,d,o),L(h,u,l),H(u,u,l),L(l,f,d),H(f,f,d),K(d,h),K(p,u),j(u,l,u),j(l,f,h),L(h,u,l),H(u,u,l),K(f,u),H(l,d,p),j(u,l,s),L(u,u,d),j(l,l,u),j(u,d,p),j(d,f,c),K(f,h),R(u,f,o),R(l,d,o);for(a=0;a<16;a++)c[a+16]=u[a],c[a+32]=l[a],c[a+48]=f[a],c[a+64]=d[a];var v=c.subarray(32),y=c.subarray(16);return U(v,v),j(y,y,v),P(e,y),0}function Y(e,n){return V(e,n,o)}function G(e,n){return t(n,32),Y(e,n)}function J(e,n,t){var o=new Uint8Array(32);return V(o,t,n),g(e,r,o,E)}_.prototype.blocks=function(e,n,t){for(var r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A=this.fin?0:2048,w=this.h[0],D=this.h[1],_=this.h[2],T=this.h[3],S=this.h[4],x=this.h[5],N=this.h[6],I=this.h[7],C=this.h[8],R=this.h[9],P=this.r[0],k=this.r[1],M=this.r[2],F=this.r[3],L=this.r[4],H=this.r[5],j=this.r[6],K=this.r[7],U=this.r[8],B=this.r[9];t>=16;)d=l=0,d+=(w+=8191&(r=255&e[n+0]|(255&e[n+1])<<8))*P,d+=(D+=8191&(r>>>13|(o=255&e[n+2]|(255&e[n+3])<<8)<<3))*(5*B),d+=(_+=8191&(o>>>10|(a=255&e[n+4]|(255&e[n+5])<<8)<<6))*(5*U),d+=(T+=8191&(a>>>7|(i=255&e[n+6]|(255&e[n+7])<<8)<<9))*(5*K),l=(d+=(S+=8191&(i>>>4|(s=255&e[n+8]|(255&e[n+9])<<8)<<12))*(5*j))>>>13,d&=8191,d+=(x+=s>>>1&8191)*(5*H),d+=(N+=8191&(s>>>14|(c=255&e[n+10]|(255&e[n+11])<<8)<<2))*(5*L),d+=(I+=8191&(c>>>11|(u=255&e[n+12]|(255&e[n+13])<<8)<<5))*(5*F),d+=(C+=8191&(u>>>8|(f=255&e[n+14]|(255&e[n+15])<<8)<<8))*(5*M),h=l+=(d+=(R+=f>>>5|A)*(5*k))>>>13,h+=w*k,h+=D*P,h+=_*(5*B),h+=T*(5*U),l=(h+=S*(5*K))>>>13,h&=8191,h+=x*(5*j),h+=N*(5*H),h+=I*(5*L),h+=C*(5*F),l+=(h+=R*(5*M))>>>13,h&=8191,p=l,p+=w*M,p+=D*k,p+=_*P,p+=T*(5*B),l=(p+=S*(5*U))>>>13,p&=8191,p+=x*(5*K),p+=N*(5*j),p+=I*(5*H),p+=C*(5*L),v=l+=(p+=R*(5*F))>>>13,v+=w*F,v+=D*M,v+=_*k,v+=T*P,l=(v+=S*(5*B))>>>13,v&=8191,v+=x*(5*U),v+=N*(5*K),v+=I*(5*j),v+=C*(5*H),y=l+=(v+=R*(5*L))>>>13,y+=w*L,y+=D*F,y+=_*M,y+=T*k,l=(y+=S*P)>>>13,y&=8191,y+=x*(5*B),y+=N*(5*U),y+=I*(5*K),y+=C*(5*j),m=l+=(y+=R*(5*H))>>>13,m+=w*H,m+=D*L,m+=_*F,m+=T*M,l=(m+=S*k)>>>13,m&=8191,m+=x*P,m+=N*(5*B),m+=I*(5*U),m+=C*(5*K),g=l+=(m+=R*(5*j))>>>13,g+=w*j,g+=D*H,g+=_*L,g+=T*F,l=(g+=S*M)>>>13,g&=8191,g+=x*k,g+=N*P,g+=I*(5*B),g+=C*(5*U),E=l+=(g+=R*(5*K))>>>13,E+=w*K,E+=D*j,E+=_*H,E+=T*L,l=(E+=S*F)>>>13,E&=8191,E+=x*M,E+=N*k,E+=I*P,E+=C*(5*B),b=l+=(E+=R*(5*U))>>>13,b+=w*U,b+=D*K,b+=_*j,b+=T*H,l=(b+=S*L)>>>13,b&=8191,b+=x*F,b+=N*M,b+=I*k,b+=C*P,O=l+=(b+=R*(5*B))>>>13,O+=w*B,O+=D*U,O+=_*K,O+=T*j,l=(O+=S*H)>>>13,O&=8191,O+=x*L,O+=N*F,O+=I*M,O+=C*k,w=d=8191&(l=(l=((l+=(O+=R*P)>>>13)<<2)+l|0)+(d&=8191)|0),D=h+=l>>>=13,_=p&=8191,T=v&=8191,S=y&=8191,x=m&=8191,N=g&=8191,I=E&=8191,C=b&=8191,R=O&=8191,n+=16,t-=16;this.h[0]=w,this.h[1]=D,this.h[2]=_,this.h[3]=T,this.h[4]=S,this.h[5]=x,this.h[6]=N,this.h[7]=I,this.h[8]=C,this.h[9]=R},_.prototype.finish=function(e,n){var t,r,o,a,i=new Uint16Array(10);if(this.leftover){for(a=this.leftover,this.buffer[a++]=1;a<16;a++)this.buffer[a]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(t=this.h[1]>>>13,this.h[1]&=8191,a=2;a<10;a++)this.h[a]+=t,t=this.h[a]>>>13,this.h[a]&=8191;for(this.h[0]+=5*t,t=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=t,t=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=t,i[0]=this.h[0]+5,t=i[0]>>>13,i[0]&=8191,a=1;a<10;a++)i[a]=this.h[a]+t,t=i[a]>>>13,i[a]&=8191;for(i[9]-=8192,r=(1^t)-1,a=0;a<10;a++)i[a]&=r;for(r=~r,a=0;a<10;a++)this.h[a]=this.h[a]&r|i[a];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,a=1;a<8;a++)o=(this.h[a]+this.pad[a]|0)+(o>>>16)|0,this.h[a]=65535&o;e[n+0]=this.h[0]>>>0&255,e[n+1]=this.h[0]>>>8&255,e[n+2]=this.h[1]>>>0&255,e[n+3]=this.h[1]>>>8&255,e[n+4]=this.h[2]>>>0&255,e[n+5]=this.h[2]>>>8&255,e[n+6]=this.h[3]>>>0&255,e[n+7]=this.h[3]>>>8&255,e[n+8]=this.h[4]>>>0&255,e[n+9]=this.h[4]>>>8&255,e[n+10]=this.h[5]>>>0&255,e[n+11]=this.h[5]>>>8&255,e[n+12]=this.h[6]>>>0&255,e[n+13]=this.h[6]>>>8&255,e[n+14]=this.h[7]>>>0&255,e[n+15]=this.h[7]>>>8&255},_.prototype.update=function(e,n,t){var r,o;if(this.leftover){for((o=16-this.leftover)>t&&(o=t),r=0;r=16&&(o=t-t%16,this.blocks(e,n,o),n+=o,t-=o),t){for(r=0;r=128;){for(A=0;A<16;A++)w=8*A+W,I[A]=t[w+0]<<24|t[w+1]<<16|t[w+2]<<8|t[w+3],C[A]=t[w+4]<<24|t[w+5]<<16|t[w+6]<<8|t[w+7];for(A=0;A<80;A++)if(o=R,a=P,i=k,s=M,c=F,u=L,f=H,j,d=K,h=U,p=B,v=V,y=Y,m=G,g=J,q,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,T+=65535&(_=(Y>>>14|F<<18)^(Y>>>18|F<<14)^(F>>>9|Y<<23)),S+=_>>>16,x+=65535&(D=(F>>>14|Y<<18)^(F>>>18|Y<<14)^(Y>>>9|F<<23)),N+=D>>>16,T+=65535&(_=Y&G^~Y&J),S+=_>>>16,x+=65535&(D=F&L^~F&H),N+=D>>>16,T+=65535&(_=z[2*A+1]),S+=_>>>16,x+=65535&(D=z[2*A]),N+=D>>>16,D=I[A%16],S+=(_=C[A%16])>>>16,x+=65535&D,N+=D>>>16,x+=(S+=(T+=65535&_)>>>16)>>>16,T=65535&(_=O=65535&T|S<<16),S=_>>>16,x=65535&(D=b=65535&x|(N+=x>>>16)<<16),N=D>>>16,T+=65535&(_=(K>>>28|R<<4)^(R>>>2|K<<30)^(R>>>7|K<<25)),S+=_>>>16,x+=65535&(D=(R>>>28|K<<4)^(K>>>2|R<<30)^(K>>>7|R<<25)),N+=D>>>16,S+=(_=K&U^K&B^U&B)>>>16,x+=65535&(D=R&P^R&k^P&k),N+=D>>>16,l=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,E=65535&T|S<<16,T=65535&(_=v),S=_>>>16,x=65535&(D=s),N=D>>>16,S+=(_=O)>>>16,x+=65535&(D=b),N+=D>>>16,P=o,k=a,M=i,F=s=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,L=c,H=u,j=f,R=l,U=d,B=h,V=p,Y=v=65535&T|S<<16,G=y,J=m,q=g,K=E,A%16==15)for(w=0;w<16;w++)D=I[w],T=65535&(_=C[w]),S=_>>>16,x=65535&D,N=D>>>16,D=I[(w+9)%16],T+=65535&(_=C[(w+9)%16]),S+=_>>>16,x+=65535&D,N+=D>>>16,b=I[(w+1)%16],T+=65535&(_=((O=C[(w+1)%16])>>>1|b<<31)^(O>>>8|b<<24)^(O>>>7|b<<25)),S+=_>>>16,x+=65535&(D=(b>>>1|O<<31)^(b>>>8|O<<24)^b>>>7),N+=D>>>16,b=I[(w+14)%16],S+=(_=((O=C[(w+14)%16])>>>19|b<<13)^(b>>>29|O<<3)^(O>>>6|b<<26))>>>16,x+=65535&(D=(b>>>19|O<<13)^(O>>>29|b<<3)^b>>>6),N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,I[w]=65535&x|N<<16,C[w]=65535&T|S<<16;T=65535&(_=K),S=_>>>16,x=65535&(D=R),N=D>>>16,D=e[0],S+=(_=n[0])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[0]=R=65535&x|N<<16,n[0]=K=65535&T|S<<16,T=65535&(_=U),S=_>>>16,x=65535&(D=P),N=D>>>16,D=e[1],S+=(_=n[1])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[1]=P=65535&x|N<<16,n[1]=U=65535&T|S<<16,T=65535&(_=B),S=_>>>16,x=65535&(D=k),N=D>>>16,D=e[2],S+=(_=n[2])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[2]=k=65535&x|N<<16,n[2]=B=65535&T|S<<16,T=65535&(_=V),S=_>>>16,x=65535&(D=M),N=D>>>16,D=e[3],S+=(_=n[3])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[3]=M=65535&x|N<<16,n[3]=V=65535&T|S<<16,T=65535&(_=Y),S=_>>>16,x=65535&(D=F),N=D>>>16,D=e[4],S+=(_=n[4])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[4]=F=65535&x|N<<16,n[4]=Y=65535&T|S<<16,T=65535&(_=G),S=_>>>16,x=65535&(D=L),N=D>>>16,D=e[5],S+=(_=n[5])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[5]=L=65535&x|N<<16,n[5]=G=65535&T|S<<16,T=65535&(_=J),S=_>>>16,x=65535&(D=H),N=D>>>16,D=e[6],S+=(_=n[6])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[6]=H=65535&x|N<<16,n[6]=J=65535&T|S<<16,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,D=e[7],S+=(_=n[7])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[7]=j=65535&x|N<<16,n[7]=q=65535&T|S<<16,W+=128,r-=128}return r}function Z(e,n,t){var r,o=new Int32Array(8),a=new Int32Array(8),i=new Uint8Array(256),s=t;for(o[0]=1779033703,o[1]=3144134277,o[2]=1013904242,o[3]=2773480762,o[4]=1359893119,o[5]=2600822924,o[6]=528734635,o[7]=1541459225,a[0]=4089235720,a[1]=2227873595,a[2]=4271175723,a[3]=1595750129,a[4]=2917565137,a[5]=725511199,a[6]=4215389547,a[7]=327033209,Q(o,a,n,t),t%=128,r=0;r=0;--o)$(e,n,r=t[o/8|0]>>(7&o)&1),X(n,e),X(e,e),$(e,n,r)}function te(e,t){var r=[n(),n(),n(),n()];I(r[0],f),I(r[1],l),I(r[2],i),j(r[3],f,l),ne(e,r,t)}function re(e,r,o){var a,i=new Uint8Array(64),s=[n(),n(),n(),n()];for(o||t(r,32),Z(i,r,32),i[0]&=248,i[31]&=127,i[31]|=64,te(s,i),ee(e,s),a=0;a<32;a++)r[a+32]=e[a];return 0}var oe=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function ae(e,n){var t,r,o,a;for(r=63;r>=32;--r){for(t=0,o=r-32,a=r-12;o>4)*oe[o],t=n[o]>>8,n[o]&=255;for(o=0;o<32;o++)n[o]-=t*oe[o];for(r=0;r<32;r++)n[r+1]+=n[r]>>8,e[r]=255&n[r]}function ie(e){var n,t=new Float64Array(64);for(n=0;n<64;n++)t[n]=e[n];for(n=0;n<64;n++)e[n]=0;ae(e,t)}function se(e,t,r,o){var a,i,s=new Uint8Array(64),c=new Uint8Array(64),u=new Uint8Array(64),f=new Float64Array(64),l=[n(),n(),n(),n()];Z(s,o,32),s[0]&=248,s[31]&=127,s[31]|=64;var d=r+64;for(a=0;a>7&&H(e[0],a,e[0]),j(e[3],e[0],e[1]),0)}(h,o))return-1;for(s=0;s=0},e.sign.keyPair=function(){var e=new Uint8Array(le),n=new Uint8Array(de);return re(e,n),{publicKey:e,secretKey:n}},e.sign.keyPair.fromSecretKey=function(e){if(pe(e),e.length!==de)throw new Error("bad secret key size");for(var n=new Uint8Array(le),t=0;t{let t;return(t=e.length%4)&&(e+="=".repeat(4-t)),n.decodeBase64(e)},a=n.decodeUTF8,i=n.encodeUTF8,s=function(e){for(var n="",t=0;t{var n={setCustomize:n=>{e=n.ApiConfig},getWebsocketURL:function(n){var t=e.websocketPath||"/cryptpad_websocket";if(/^ws{1,2}:\/\//.test(t))return t;var r=new URL(n||self?.location?.href);return n&&(r.href=n),r.protocol.replace(/http/,"ws")+"//"+r.host+t}};return n})())}(H)),H.exports}var K,U=j(),B=n({__proto__:null,default:r(U)},[U]),V={exports:{}};function Y(){return K||(K=1,function(e){e.exports&&(e.exports=function(e={}){return{setCustomize:n=>{e=n.AppConfig},userHashKey:"User_hash",userNameKey:"User_name",blockHashKey:"Block_hash",fileHashKey:"FS_hash",sessionJWT:"Session_JWT",ssoSeed:"SSO_seed",displayNameKey:"cryptpad.username",oldStorageKey:"CryptPad_RECENTPADS",storageKey:"filesData",tokenKey:"loginToken",prefersDriveRedirectKey:"prefersDriveRedirect",isPremiumKey:"isPremiumUser",displayPadCreationScreen:"displayPadCreationScreen",deprecatedKey:"deprecated",MAX_TEAMS_SLOTS:e.maxTeamsSlots||5,MAX_TEAMS_OWNED:e.maxOwnedTeams||5,MAX_PREMIUM_TEAMS_SLOTS:Math.max(e.maxTeamsSlots||0,e.maxPremiumTeamsSlots||0)||5,MAX_PREMIUM_TEAMS_OWNED:Math.max(e.maxOwnedTeams||0,e.maxPremiumTeamsOwned||0)||5,criticalApps:["profile","settings","debug","admin","support","notifications","calendar","moderation","oldadmin"],earlyAccessApps:[]}}(void 0))}(V)),V.exports}var G,J=Y(),q=n({__proto__:null,default:r(J)},[J]),W={exports:{}},z={exports:{}},Q=z.exports;function Z(){return G||(G=1,function(e){!function(n){const t=e=>{var t={};n.atob=n.atob||function(e){return Buffer.from(e,"base64").toString("binary")},n.btoa=n.btoa||function(e){return Buffer.from(e,"binary").toString("base64")},t.encodeBase64=e.encodeBase64,t.decodeBase64=n=>{let t;return(t=n.length%4)&&(n+="=".repeat(4-t)),e.decodeBase64(n)},t.encodeUTF8=e.encodeUTF8,t.decodeUTF8=e.decodeUTF8,t.slice=function(e,n,t){return Array.prototype.slice.call(e,n,t)},t.u8ToBase64=(e,n)=>{const t=new FileReader;t.onload=()=>{let e=t.result,r=e.slice(e.indexOf(",")+1);n(r)},t.readAsDataURL(new Blob([e]))},t.shuffleArray=function(e){for(var n=e.length-1;n>0;n--){var t=Math.floor(Math.random()*(n+1)),r=e[n];e[n]=e[t],e[t]=r}},t.bake=function(e,n){return void 0===n&&(n=[]),Array.isArray(n)||(n=[n]),function(){return e.apply(null,n)}},t.both=function(e,n){if("function"!=typeof e)throw new Error("INVALID_USAGE");return"function"!=typeof n&&(n=function(e){return e}),function(){return e.apply(null,arguments),n.apply(null,arguments)}},t.clone=function(e){return null==e?e:JSON.parse(JSON.stringify(e))},t.serializeError=function(e){if(!(e instanceof Error))return e;var n={};return Object.getOwnPropertyNames(e).forEach((function(t){n[t]=e[t]})),n},t.tryParse=function(e){try{return JSON.parse(e)}catch(e){return}},t.mkAsync=function(e,n){if("function"!=typeof e)throw new Error("EXPECTED_FUNCTION");return function(){var t=Array.prototype.slice.call(arguments);setTimeout((function(){e.apply(null,t)}),n)}},t.mkEvent=function(e){var n=[],t=!1;let r;return{reg:function(r){e&&t?setTimeout(r):n.push(r)},unreg:function(e){-1!==n.indexOf(e)?n.splice(n.indexOf(e),1):console.log("event handler was already unregistered")},fire:function(){if(!e||!t){var o=Array.prototype.slice.call(arguments);t||r.apply(null,o),t=!0,n.forEach((function(e){e.apply(null,o)}))}},promise:new Promise((e=>{r=e}))}},t.mkTimeout=function(e,n){n=n||0;var r=t.once(e),o=setTimeout((function(){r("TIMEOUT")}),n);return t.both(r,(function(){clearTimeout(o)}))},t.onClickEnter=function(e,n,t){e.on("click keydown",(function(e){var r="click"===e.type,o="keydown"===e.type&&13===e.which,a="keydown"===e.type&&32===e.which&&t&&t.space;(r||o||a)&&("keydown"===e.type&&e.preventDefault(),n(e))}))},t.response=function(e){var n={},t={};"function"!=typeof e&&(e=function(e){throw new Error(e)});var r=function(e){clearTimeout(t[e]),delete t[e],delete n[e]};return{clear:r,expected:function(e){return Boolean(n[e])},expectation:function(e){return n[e]},expect:function(o,a,i){"string"!=typeof o&&e("EXPECTED_STRING"),"function"!=typeof a&&e("EXPECTED_CALLBACK"),n[o]=a,"number"==typeof i&&i&&(t[o]=setTimeout((function(){"function"==typeof n[o]&&n[o]("TIMEOUT"),r(o)}),i))},handle:function(t,o){var a=n[t];if("function"==typeof a){try{a.apply(null,Array.isArray(o)?o:[o])}catch(n){e("HANDLER_ERROR",{error:n,id:t,args:o})}r(t)}else e("MISSING_CALLBACK",{id:t,args:o})},_pending:n}},t.inc=function(e,n,t){e[n]=(e[n]||0)+("number"==typeof t?t:1)},t.values=function(e){return Object.keys(e).map((function(n){return e[n]}))},t.find=function(e,n){for(var t=n.length,r=0;r&"']/g,(function(e){return{"<":"<",">":">","&":"&",'"':""","'":"'"}[e]})):""},t.hexToBase64=function(e){var t=e.replace(/\r|\n/g,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" "),r=String.fromCharCode.apply(null,t);return n.btoa(r).replace(/\//g,"-").replace(/=+$/,"")},t.base64ToHex=function(e){var t=[];return n.atob(e.replace(/-/g,"/")).split("").forEach((function(e){var n=e.charCodeAt(0).toString(16);1===n.length&&(n="0"+n),t.push(n)})),t.join("")},t.uint8ArrayToHex=function(e){for(var n="",t=0;t=o?"GB":e>=r?"MB":"KB"};t.getBlock=function(e,n,r){var o=t.once(t.mkAsync(r)),a={};"string"==typeof n.bearer&&n.bearer&&(a.authorization=`Bearer ${n.bearer}`),fetch(e,{method:"GET",credentials:"include",headers:a}).then((e=>{e.ok?o(void 0,e):401!==e.status&&404!==e.status?o(e.status,e):e.json().then((n=>{o(e.status,n)})).catch((()=>{o(e.status)}))})).catch((e=>{o(e)}))},t.fetchApi=function(e,n,t,r){const o=new URL(e);o.pathname=`api/${n}`;let a=o.href+(t?"?"+ +new Date:"");if("undefined"!=typeof self&&self.crypto)fetch(a).then((e=>{if(!e.ok)throw new Error(`Fetch error: ${e.status}`);return e.text()})).then((e=>{r(JSON.parse(e.slice(27,-5)))})).catch((e=>{console.error(e.message),r({})}));else if(void 0!==b){("http:"===o.protocol?require("node:http"):require("node:https")).get(o.href,(e=>{let n="";e.on("data",(e=>{n+=e})),e.on("end",(()=>{try{r(JSON.parse(n.slice(27,-5)))}catch(e){console.error(e),r({})}}))}))}},t.fetch=function(e,n,r,o){var a,i=t.once(t.mkAsync(n)),s=function(e){var n=e.replace(/(\/)*$/,""),t=n.lastIndexOf("/"),r=n.slice(t+1);return/^[a-f0-9]{48}$/.test(r)||(r=void 0),r}(e),c=function(){(a=new XMLHttpRequest).open("GET",e,!0),r&&a.addEventListener("progress",(function(e){if(e.lengthComputable){var n=e.loaded/e.total;r(n)}}),!1),a.responseType="arraybuffer",a.onerror=function(e){i(e)},a.onload=function(){if(/^4/.test(""+this.status))return i("XHR_ERROR");var e=a.response;if(e){var n=new Uint8Array(e);return s?void function(e,n,t){o&&"function"==typeof o.setBlobCache?o.setBlobCache(e,n,t):t("EINVAL")}(s,n,(function(){i(null,n)})):void i(void 0,n)}i("ENOENT")},a.send(null)};if(s)return function(e,n){o&&"function"==typeof o.getBlobCache?o.getBlobCache(e,n):n("EINVAL")}(s,(function(e,n){!e&&n?i(void 0,n):c()})),{cancel:function(){a&&a.abort&&a.abort()}};c()},t.dataURIToBlob=function(e){for(var n=atob(e.split(",")[1]),t=e.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(n.length),o=new Uint8Array(r),a=0;aparseInt(e,10).toString(16).padStart(2,"0"))).join("")}`},t.isSmallScreen=function(){return n.innerHeight<800||n.innerWidth<800},t.stripTags=function(e){var n=document.createElement("div");return n.innerHTML=e,n.innerText},t.parseFilename=function(e){if(!e||!e.trim())return{};var n=/^(\.?.+?)(\.[^.]+)?$/.exec(e)||[];return{name:n[1],ext:n[2]}},t.isPlainTextFile=function(e,n){if(e&&0===e.indexOf("text/"))return!0;var r=t.parseFilename(n);return!(e||!n||r.ext)||("application/x-javascript"===e||"application/xml"===e)},t.isSpreadsheet=function(e,n){return e&&("application/vnd.oasis.opendocument.spreadsheet"===e||"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"===e)||n&&(n.endsWith(".xlsx")||n.endsWith(".ods"))},t.isOfficeDoc=function(e,n){return e&&("application/vnd.oasis.opendocument.text"===e||"application/vnd.openxmlformats-officedocument.wordprocessingml.document"===e)||n&&(n.endsWith(".docx")||n.endsWith(".odt"))},t.isPresentation=function(e,n){return e&&("application/vnd.oasis.opendocument.presentation"===e||"application/vnd.openxmlformats-officedocument.presentationml.presentation"===e)||n&&(n.endsWith(".pptx")||n.endsWith(".odp"))},t.isValidURL=function(e){return!!new RegExp("^(https?:\\/\\/)((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?").test(e)};var a=/([\uD800-\uDBFF][\uDC00-\uDFFF])/;t.getFirstCharacter=function(e){if(!e||!e.trim())return"?";var n=function(e){for(var n=e.split(a),t=[],r=0;r{let n=/ver=([0-9.]+)(-[0-9]*)?/.exec(e);return Array.isArray(n)&&n[1]||void 0},t.Saferphore={create:e=>{var n,t=[];return n=function(){if(e<0)throw new Error("(resourceCount < 0) should never happen");var r;0!==e&&0!==t.length&&(e--,t.shift()((r=0,function(t){if(r++)throw new Error("returnAfter() called multiple times");var o=0;return function(){if(o++)throw new Error("returnAfter wrapped callback called multiple times");t&&t.apply(null,arguments),e++,n()}})))},{take:function(e){t.push(e),n()}}}},t};e.exports?e.exports=t(k()):n.CryptPad_Util=Util}("undefined"!=typeof self?self:Q)}(z)),z.exports}var X,$,ee={exports:{}};function ne(){return X||(X=1,function(e){e.exports&&(e.exports=function(){var e={},n=function(e){return e.replace(/-/g,"/")};return e.parseUser=function(e){var t,r,o,a=function(e){if(/^\[.*?@.*\]$/.test(e)){var t,r=e.slice(1,-1);if(r=r.replace(/\/([a-zA-Z0-9+-]{43}=)$/,(function(e,r){return t=n(r),""})),t){var o=r.lastIndexOf("@");if(!(o<1))return{domain:r.slice(o+1),user:r.slice(0,o),pubkey:t}}}}(e);if(function(e){if(e&&e.domain&&e.user&&e.pubkey)return!0}(a))return a;if(e.replace(/^https*:\/\/([^\/]+)\/user\/#\/1\/([^\/]+)\/([a-zA-Z0-9+-]{43}=)$/,(function(e,a,i,s){return t=a,r=i,o=n(s),""})),!t)throw new Error("Could not parse user id ["+e+"]");return{domain:t,user:r,pubkey:o}},e.serialize=function(e,n,t){return"["+n+"@"+e.replace(/https*:\/\//,"")+"/"+t.replace(/\//g,"-")+"]"},e.canonicalize=function(t){if("string"==typeof t){if(44===t.length)return n(t);try{return e.parseUser(t).pubkey}catch(e){return}}},e}())}(ee)),ee.exports}function te(){return $||($=1,function(e){!function(n){e.exports&&(e.exports=function(e,t,r,o){var a=n.CryptPad_Hash={},i=e.uint8ArrayToHex,s=e.hexToBase64,c=e.base64ToHex;a.encodeBase64=e.encodeBase64,a.decodeBase64=e.decodeBase64,a.hashChannelList=function(n){return e.encodeBase64(o.hash(e.decodeUTF8(JSON.stringify(n))))},a.generateSignPair=function(){var e=o.sign.keyPair(),n=function(e){return t.b64RemoveSlashes(e).replace(/=+$/g,"")};return{validateKey:a.encodeBase64(e.publicKey),signKey:a.encodeBase64(e.secretKey),safeValidateKey:n(a.encodeBase64(e.publicKey)),safeSignKey:n(a.encodeBase64(e.secretKey))}},a.getSignPublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.sign.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)},a.getCurvePublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.box.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)};var u=a.getEditHashFromKeys=function(e){var n=e.version,r=e.keys;if(0===n)return e.channel+e.key;if(1===n){if(!r.editKeyStr)return;return"/1/edit/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.editKeyStr)+"/"}if(2===n){if(!r.editKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/edit/"+t.b64RemoveSlashes(r.editKeyStr)+"/"+o}},f=a.getViewHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n){if(!r.viewKeyStr)return;return"/1/view/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"}if(2===n){if(!r.viewKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/view/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"+o}}};a.getHiddenHashFromKeys=function(e,n,t){t=t||{};var r=n.keys&&n.keys.editKeyStr||n.key,o=!t.view&&r?"edit/":"view/",i=n.password?"p/":"";n.keys&&n.keys.fileKeyStr&&(o="");var s="/3/"+e+"/"+o+n.channel+"/"+i,c=a.parseTypeHash(e,s);return c&&c.getHash?c.getHash(t||{}):s};var l=a.getFileHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n)return"/1/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/";if(2===n){if(!r.fileKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/"+o}}};a.getPublicSigningKeyString=r.serialize,a.ephemeralChannelLength=34,a.createChannelId=function(e){var n=i(t.Nacl.randomBytes(e?17:16));if(-1===[32,34].indexOf(n.length)||/[^a-f0-9]/.test(n))throw new Error("channel ids must consist of 32 hex characters");return n},a.getChannelIdFromKey=function(e){if(e)return i(a.decodeBase64(e).subarray(0,16))},a.getBoxPublicFromSecret=function(e){if(e){var n=a.decodeBase64(e),t=o.box.keyPair.fromSecretKey(n);return a.encodeBase64(t.publicKey)}},a.checkBoxKeyPair=function(e,n){if(!n||!e)return!1;var t=a.decodeBase64(e),r=o.box.keyPair.fromSecretKey(t);return n===a.encodeBase64(r.publicKey)},a.createRandomHash=function(e,n){var r;return"file"===e?(r=t.createFileCryptor2(void 0,n),l({password:Boolean(n),version:2,type:e,keys:r})):(r=t.createEditCryptor2(void 0,void 0,n),u({password:Boolean(n),version:2,type:e,keys:r}))};var d=a.parseTypeHash=function(e,n){if(n){var r,o=[],a={},i=(r=n,r.replace(/\/+/g,"/")).split("/"),s=function(){a.password=-1!==o.indexOf("p"),a.present=-1!==o.indexOf("present"),a.embed=-1!==o.indexOf("embed"),a.versionHash=function(e){var n;return e.some((function(e){if(/^hash=/.test(e))return n=e.slice(5),!0})),n?t.b64AddSlashes(n):""}(o),a.auditorKey=function(e){var n;return e.some((function(e){if(/^auditor=/.test(e))return n=e.slice(8),!0})),n?t.b64AddSlashes(n):""}(o),a.newPadOpts=function(e){var n;return e.some((function(e){if(/^newpad=/.test(e))return n=e.slice(7),!0})),n||""}(o),a.loginOpts=function(e){var n;return e.some((function(e){if(/^login=/.test(e))return n=e.slice(6),!0})),n||""}(o),a.ownerKey=function(e){var n;return e.some((function(e){if(86===e.length)return n=e,!0})),n}(o)};return i[1]&&"4"===i[1]?(a.getHash=function(n){if(!n||!Object.keys(n).length)return"";var t="/4/"+e+"/";return n.newPadOpts&&(t+="newpad="+n.newPadOpts+"/"),n.loginOpts&&(t+="login="+n.loginOpts+"/"),t},a.getOptions=function(){var e={};return a.newPadOpts&&(e.newPadOpts=a.newPadOpts),a.loginOpts&&(e.loginOpts=a.loginOpts),e},a.version=4,a.app=i[2],o=i.slice(3),s(),a):-1===["media","file","user","invite"].indexOf(e)?(a.type="pad",a.getHash=function(){return n},a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,versionHash:a.versionHash,auditorKey:a.auditorKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},"/"!==n.slice(0,1)&&n.length>=56?(a.channel=n.slice(0,32),a.key=n.slice(32,56),a.version=0,a):(a.getHash=function(e){var n=i.slice(0,5).join("/")+"/",r=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;r&&(n+=r+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/");var o=void 0!==e.versionHash?e.versionHash:a.versionHash;o&&(n+="hash="+t.b64RemoveSlashes(o)+"/");var s=void 0!==e.auditorKey?e.auditorKey:a.auditorKey;return s&&(n+="auditor="+t.b64RemoveSlashes(s)+"/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.mode=i[2],a.channel=i[3],a.key=t.b64AddSlashes(i[4]),o=i.slice(5),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.mode=i[3],a.channel=i[4],o=i.slice(5),s(),a):a)):(a.getHash=function(){return i.join("/")},-1!==["media","file"].indexOf(e)?(a.type="file",a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},a.getHash=function(e){var n=i.slice(0,4).join("/")+"/",t=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;return t&&(n+=t+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.channel=i[2].replace(/-/g,"/"),a.key=i[3].replace(/-/g,"/"),o=i.slice(4),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.key=i[3],o=i.slice(4),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.channel=i[3],o=i.slice(4),s(),a):a):-1!==["user"].indexOf(e)?(a.type="user",i[1]&&"1"===i[1]?(a.version=1,a.user=i[2],a.pubkey=i[3].replace(/-/g,"/"),a):a):-1!==["invite"].indexOf(e)?(a.type="invite",i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),a.password=-1!==o.indexOf("p"),a):a):void 0)}},h=a.parsePadUrl=function(e){var n,t={};return e?("/"!==e.slice(-1)&&"#"!==e.slice(-1)&&(e+="/"),e=e.replace(/\/\?[^#]+#/,"/#"),t.getUrl=function(e){e=e||{};var n="/";return t.type?(n+=t.type+"/",!t.hashData&&e&&Object.keys(e).length?n+"#"+function(e){if(!e||!Object.keys(e).length)return"";var n="/4/"+t.type+"/";return e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n}(e):t.hashData?n+="#"+t.hashData.getHash(e):n):n},t.getOptions=function(){return t.hashData&&t.hashData.getOptions?t.hashData.getOptions():{}},/^https*:\/\//.test(e)?(e.replace(/^https*:\/\/([^\/]*)\/(.*?)\//i,(function(e,n,r){return t.domain=n,t.type=r,""})),-1===(n=e.indexOf("/#"))||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):/^\/($|[^\/])/.test(e)?(n=e.indexOf("/#"),t.type=e.slice(1,n),-1===n||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):t):t};return a.hashToHref=function(e,n){return"/"+n+"/#"+e},a.hrefToHash=function(e){return a.parsePadUrl(e).hash},a.getRelativeHref=function(e){if(e&&-1!==e.indexOf("#")){var n=h(e);return"/"+n.type+"/#"+n.hash}},a.getSecrets=function(n,r,o){var a,i,s={},u=function(){s.keys=t.createEditCryptor2(void 0,void 0,o),s.channel=c(s.keys.chanId),s.version=2,s.type=n};if(!r)return u(),s;if(r){if(!n)throw new Error("getSecrets with a hash requires a type parameter");a=d(n,r),i=r}if(0===i.length)return u(),s;if(0===a.version)s.channel=a.channel,s.key=a.key,s.version=0;else if(1===a.version){if(s.version=1,"pad"===a.type){if(s.channel=c(a.channel),"edit"===a.mode){if(s.keys=t.createEditCryptor(a.key),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor(a.key),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type)s.channel=c(a.channel),s.keys={fileKeyStr:a.key,cryptKey:e.decodeBase64(a.key)};else if("user"===a.type)throw new Error("User hashes can't be opened (yet)")}else if(2===a.version)if(s.version=2,s.type=n,s.password=o,"pad"===a.type){if("edit"===a.mode){if(s.keys=t.createEditCryptor2(a.key,void 0,o),s.channel=c(s.keys.chanId),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor2(a.key,o),s.channel=c(s.keys.chanId),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type){if(s.keys=t.createFileCryptor2(a.key,o),s.channel=c(s.keys.chanId),s.key=s.keys.fileKeyStr,48!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("user"===a.type)throw new Error("User hashes can't be opened (yet)");return s},a.getHashes=function(e){var n={};return(e=JSON.parse(JSON.stringify(e))).keys||e.key?(e.keys||(e.keys={}),(e.keys.editKeyStr||0===e.version&&e.key)&&(n.editHash=u(e)),e.keys.viewKeyStr&&(n.viewHash=f(e)),e.keys.fileKeyStr&&(n.fileHash=l(e)),n):n},a.getFormData=function(n,t,r){var i=(n=n||a.getSecrets("form",t,r))&&n.keys,s=i&&i.secondaryKey;if(s){var c=o.box.keyPair.fromSecretKey(e.decodeUTF8(s).slice(0,32)),u={};u.form_public=e.encodeBase64(c.publicKey);var f=u.form_private=e.encodeBase64(c.secretKey),l=a.getViewHashFromKeys({version:1,channel:n.channel,keys:{viewKeyStr:e.encodeBase64(i.cryptKey)}}),d=a.parseTypeHash("pad",l);return u.form_auditorHash=d.getHash({auditorKey:f}),u}},a.hrefToHexChannelId=function(e,n){var t=a.parsePadUrl(e);if(t&&t.hash)return a.getSecrets(t.type,t.hash,n).channel},a.getBlobPathFromHex=function(e){return"/blob/"+e.slice(0,2)+"/"+e},a.serializeHash=function(e){return e&&"/"!==e.slice(-1)&&(e+="/"),e},a.createInviteUrl=function(e,t){return t=t||a.createChannelId(),n.location.origin+"/invite/#/1/"+t+"/"+e.replace(/\//g,"-")+"/"},a.isValidChannel=function(e){return/^[a-zA-Z0-9]{32,48}$/.test(e)},a.isValidHref=function(e){if(e){var n=a.parsePadUrl(e);if(n&&n.type){if(n.hash){if(!n.hashData)return;if(void 0===n.hashData.version)return;if("pad"===n.hashData.type||"file"===n.hashData.type){if(!n.hashData.key&&!n.hashData.channel)return;if(n.hashData.key&&!/^[a-zA-Z0-9+-/=]+$/.test(n.hashData.key))return}}return n}}},a.decodeDataOptions=function(n){var t=decodeURIComponent(n),r=e.encodeUTF8(e.decodeBase64(t));return e.tryParse(r)||{}},a.encodeDataOptions=function(n){var t=JSON.stringify(n),r=e.encodeBase64(e.decodeUTF8(t));return encodeURIComponent(r)},a.getNewPadURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.newPadOpts=a.encodeDataOptions(n),t.getUrl(r)},a.getLoginURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.loginOpts=a.encodeDataOptions(n),t.getUrl(r)},a}(Z(),M(),ne(),N()))}("undefined"!=typeof window?window:{})}(W)),W.exports}var re,oe,ae=te(),ie=Z(),se={exports:{}},ce={exports:{}};function ue(){return re||(re=1,function(e){e.exports=function e(n,t,r){function o(i,s){if(!t[i]){if(!n[i]){if(!s&&b)return b(i);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=t[i]={exports:{}};n[i][0].call(u.exports,(function(e){var t=n[i][1][e];return o(t||e)}),u,u.exports,e,n,t,r)}return t[i].exports}for(var a=b,i=0;i=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof v?u.resolve(v):O(e).then((function(e){return v=e}))}function w(e){var n=y[e.name],t={};t.promise=new u((function(e,n){t.resolve=e,t.reject=n})),n.deferredOperations.push(t),n.dbReady?n.dbReady=n.dbReady.then((function(){return t.promise})):n.dbReady=t.promise}function D(e){var n=y[e.name].deferredOperations.pop();if(n)return n.resolve(),n.promise}function _(e,n){var t=y[e.name].deferredOperations.pop();if(t)return t.reject(n),t.promise}function T(e,n){return new u((function(t,r){if(y[e.name]=y[e.name]||F(),e.db){if(!n)return t(e.db);w(e),e.db.close()}var o=[e.name];n&&o.push(e.version);var a=i.open.apply(i,o);n&&(a.onupgradeneeded=function(n){var t=a.result;try{t.createObjectStore(e.storeName),n.oldVersion<=1&&t.createObjectStore(p)}catch(t){if("ConstraintError"!==t.name)throw t;console.warn('The database "'+e.name+'" has been upgraded from version '+n.oldVersion+" to version "+n.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){var n=a.result;n.onversionchange=function(e){e.target.close()},t(n),D(e)}}))}function S(e){return T(e,!1)}function x(e){return T(e,!0)}function N(e,n){if(!e.db)return!0;var t=!e.db.objectStoreNames.contains(e.storeName),r=e.versione.db.version;if(r&&(e.version!==n&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||t){if(t){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function I(e){return new u((function(n,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");n({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)}))}function C(e){return c([b(atob(e.data))],{type:e.type})}function R(e){return e&&e.__local_forage_encoded_blob}function P(e){var n=this,t=n._initReady().then((function(){var e=y[n._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return l(t,e,e),t}function k(e){w(e);for(var n=y[e.name],t=n.forages,r=0;r0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)})).then((function(){return k(e).then((function(){M(e,n,t,r-1)}))})).catch(t);t(o)}}function F(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function L(e){var n=this,t={db:null};if(e)for(var r in e)t[r]=e[r];var o=y[t.name];o||(o=F(),y[t.name]=o),o.forages.push(n),n._initReady||(n._initReady=n.ready,n.ready=P);var a=[];function i(){return u.resolve()}for(var s=0;s>4,f[c++]=(15&r)<<4|o>>2,f[c++]=(3&o)<<6|63&a;return u}function pe(e){var n,t=new Uint8Array(e),r="";for(n=0;n>2],r+=z[(3&t[n])<<4|t[n+1]>>4],r+=z[(15&t[n+1])<<2|t[n+2]>>6],r+=z[63&t[n+2]];return t.length%3==2?r=r.substring(0,r.length-1)+"=":t.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function ve(e,n){var t="";if(e&&(t=de.call(e)),e&&("[object ArrayBuffer]"===t||e.buffer&&"[object ArrayBuffer]"===de.call(e.buffer))){var r,o=X;e instanceof ArrayBuffer?(r=e,o+=ee):(r=e.buffer,"[object Int8Array]"===t?o+=te:"[object Uint8Array]"===t?o+=re:"[object Uint8ClampedArray]"===t?o+=oe:"[object Int16Array]"===t?o+=ae:"[object Uint16Array]"===t?o+=se:"[object Int32Array]"===t?o+=ie:"[object Uint32Array]"===t?o+=ce:"[object Float32Array]"===t?o+=ue:"[object Float64Array]"===t?o+=fe:n(new Error("Failed to get type for BinaryArray"))),n(o+pe(r))}else if("[object Blob]"===t){var a=new FileReader;a.onload=function(){var t=Q+e.type+"~"+pe(this.result);n(X+ne+t)},a.readAsArrayBuffer(e)}else try{n(JSON.stringify(e))}catch(t){console.error("Couldn't convert value into a JSON string: ",e),n(null,t)}}function ye(e){if(e.substring(0,$)!==X)return JSON.parse(e);var n,t=e.substring(le),r=e.substring($,le);if(r===ne&&Z.test(t)){var o=t.match(Z);n=o[1],t=t.substring(o[0].length)}var a=he(t);switch(r){case ee:return a;case ne:return c([a],{type:n});case te:return new Int8Array(a);case re:return new Uint8Array(a);case oe:return new Uint8ClampedArray(a);case ae:return new Int16Array(a);case se:return new Uint16Array(a);case ie:return new Int32Array(a);case ce:return new Uint32Array(a);case ue:return new Float32Array(a);case fe:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}}var me={serialize:ve,deserialize:ye,stringToBuffer:he,bufferToString:pe};function ge(e,n,t,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+n.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],t,r)}function Ee(e){var n=this,t={db:null};if(e)for(var r in e)t[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new u((function(e,r){try{t.db=openDatabase(t.name,String(t.version),t.description,t.size)}catch(e){return r(e)}t.db.transaction((function(o){ge(o,t,(function(){n._dbInfo=t,e()}),(function(e,n){r(n)}))}),r)}));return t.serializer=me,o}function be(e,n,t,r,o,a){e.executeSql(t,r,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[n.storeName],(function(e,s){s.rows.length?a(e,i):ge(e,n,(function(){e.executeSql(t,r,o,a)}),a)}),a):a(e,i)}),a)}function Oe(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,t){var r=t.rows.length?t.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ae(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName,[],(function(t,r){for(var a=r.rows,i=a.length,s=0;s0)return void a(we.apply(o,[e,s,t,r-1]));i(n)}}))}))})).catch(i)}));return f(a,t),a}function De(e,n,t){return we.apply(this,[e,n,t,1])}function _e(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){n()}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Te(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function Se(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(n,t){var r=t.rows.item(0).c;e(r)}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function xe(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,t){var r=t.rows.length?t.rows.item(0).key:null;n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ne(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT key FROM "+r.storeName,[],(function(n,t){for(var r=[],o=0;o '__WebKitDatabaseInfoTable__'",[],(function(t,r){for(var o=[],a=0;a0}function Le(e){var n=this,t={};if(e)for(var r in e)t[r]=e[r];return t.keyPrefix=ke(e,n._defaultConfig),Fe()?(n._dbInfo=t,t.serializer=me,u.resolve()):u.reject()}function He(e){var n=this,t=n.ready().then((function(){for(var e=n._dbInfo.keyPrefix,t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return f(t,e),t}function je(e,n){var t=this;e=d(e);var r=t.ready().then((function(){var n=t._dbInfo,r=localStorage.getItem(n.keyPrefix+e);return r&&(r=n.serializer.deserialize(r)),r}));return f(r,n),r}function Ke(e,n){var t=this,r=t.ready().then((function(){for(var n=t._dbInfo,r=n.keyPrefix,o=r.length,a=localStorage.length,i=1,s=0;s=0;n--){var t=localStorage.key(n);0===t.indexOf(e)&&localStorage.removeItem(t)}})):u.reject("Invalid arguments"),f(r,n),r}var qe={_driver:"localStorageWrapper",_initStorage:Le,_support:Pe(),iterate:Ke,getItem:je,setItem:Ge,removeItem:Ye,clear:He,length:Ve,key:Ue,keys:Be,dropInstance:Je},We=function(e,n){return e===n||"number"==typeof e&&"number"==typeof n&&isNaN(e)&&isNaN(n)},ze=function(e,n){for(var t=e.length,r=0;r{const n=(e,n)=>{let t=globalThis,r=globalThis;var o=t.CryptPad_Cache={},a=e.mkEvent(!0),i=!1,s=!1,c=!1;try{var u=t.indexedDB.open("test_db",1);u.onsuccess=function(){i=(c=!0)&&!s,a.fire()},u.onerror=function(){a.fire()}}catch(e){a.fire()}o.enable=function(){s=!1,i=c&&!s},o.disable=function(){s=!0,i=c&&!s},o.isEnabled=()=>i;var f=n.createInstance({driver:n.INDEXEDDB,name:"cp_cache"});o.getBlobCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&o.c?(t(null,o.c),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))},o.setBlobCache=function(n,t,r){r=e.once(e.mkAsync(r||function(){})),a.reg((function(){i?t?f.setItem(n,{c:t,t:+new Date},(function(n){r(e.serializeError(n))})):r("EINVAL"):r("NOCACHE")}))},o.getChannelCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&Array.isArray(o.c)?(t(null,o),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))};var l={};return o.storeCache=function(n,t,r,o){o=e.once(e.mkAsync(o||function(){})),a.reg((function(){l[n]=l[n]||e.throttle((function(t,r,o){var a,s;i?Array.isArray(r)&&t?(a=r,Array.isArray(a)&&(a.length>100&&a.splice(0,a.length-100),a.some((function(e,n){if(e.isCheckpoint)return s=n,!0})),a.splice(0,s)),f.setItem(n,{k:t,c:r,t:+new Date},(function(n){n&&o(e.serializeError(n))}))):o("EINVAL"):o("NOCACHE")}),50),l[n](t,r,o)}))},o.leaveChannel=function(e){delete l[e]},o.clearChannel=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.removeItem(n,(function(){t()})):t("NOCACHE")}))},o.clear=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.clear(n):n("NOCACHE")}))},o.getKeys=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.keys().then((function(e){n(null,e)})).catch((function(e){n(e)})):n("NOCACHE")}))},o.getTime=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(n,r){!n&&r&&r.c?t(null,r.t):t(e.serializeError(n||"EINVAL"))})):t("NOCACHE")}))},r.CryptPad_clearIndexedDB=o.clear,o};e.exports&&(e.exports=n(Z(),ue()))})()}(se)),se.exports}var le=fe(),de=n({__proto__:null,default:r(le)},[le]);const he=ie.mkEvent(!0),pe=ie.mkEvent(!0),ve=ie.mkEvent(),ye=ie.mkEvent();let me={};const ge={setCustomize:e=>{me=e.ApiConfig},init:e=>{var n,t;const{broadcast:r,userHash:o,anonHash:a}=e,i=o||a||ae.createRandomHash("drive"),s=e.store,c=ae.getSecrets("drive",i),u={data:{},websocketURL:U.getWebsocketURL(),network:null===(n=e.store)||void 0===n?void 0:n.network,channel:c.channel,readOnly:!1,validateKey:(null===(t=c.keys)||void 0===t?void 0:t.validateKey)||void 0,crypto:L.createEncryptor(c.keys),Cache:de,userName:"fs",logLevel:1,ChainPad:T,updateProgress:function(e){e.type="drive",r([],"LOADING_DRIVE",e)},classic:!0},f=globalThis.CP_account_rt=E.create(u);s.driveSecret=c,s.proxy=f.proxy,s.onRpcReadyEvt=ie.mkEvent(!0),s.loggedIn=void 0!==e.userHash;const l={loggedIn:s.loggedIn};return f.proxy.on("create",(function(e){s.realtime=e.realtime,s.network=e.network,s.loggedIn||(l.anonHash=ae.getEditHashFromKeys(c))})).on("cacheready",(function(n){if(s.realtime=n.realtime,s.offline=!0,s.networkPromise=n.networkPromise,s.cacheReturned=l,s.networkPromise&&s.networkPromise.then){const e=setTimeout((function(){s.networkTimeout=!0,r([],"LOADING_DRIVE",{type:"offline"})}),5e3);s.networkPromise.then((function(n){s.network||(s.network=n),clearTimeout(e)}),(function(n){console.error(n),clearTimeout(e)}))}e.cache&&(l.edPublic=f.proxy.edPublic,he.fire(l))})).on("ready",(function(n){delete s.networkTimeout,s.ready||(s.driveMetadata=n.metadata,f.proxy.drive||(f.proxy.drive={}),!f.proxy[J.displayNameKey]&&s.noDriveName&&(f.proxy[J.displayNameKey]=s.noDriveName),!f.proxy.uid&&s.noDriveUid&&(f.proxy.uid=s.noDriveUid),!f.proxy.form_seed&&e.form_seed&&(f.proxy.form_seed=e.form_seed),f.proxy.edPublic&&Array.isArray(me.adminKeys)&&-1!==me.adminKeys.indexOf(f.proxy.edPublic)&&(s.isAdmin=!0),l.edPublic=f.proxy.edPublic,pe.fire(l))})).on("error",(function(e){"EDELETED"===e.error&&(s.ownDeletion||(s.isDeleted=!0,r([],"DRIVE_DELETED",e.message)))})).on("disconnect",(function(){s.offline=!0,ve.fire(),r([],"UPDATE_METADATA")})).on("reconnect",(function(){s.offline=!1,ye.fire(),r([],"UPDATE_METADATA")})),{channel:c.channel,onAccountCacheReady:he.reg,onAccountReady:pe.reg,onDisconnect:ve.reg,onReconnect:ye.reg}}};var Ee,be=Object.freeze({__proto__:null,Account:ge}),Oe={exports:{}};function Ae(){return Ee||(Ee=1,function(e){(()=>{const n=(e={},n={})=>{var t={setCustomize:t=>{n=t.Messages,e=t.AppConfig},init:function(e){t.state=e}};return t.send=function(n,r,o){("function"!=typeof o&&(o=function(){}),e.disableFeedback)?o():n&&(!0===r||t.state)?function(e,n){var t=new XMLHttpRequest;t.open("HEAD",e),t.onreadystatechange=function(){this.readyState===this.DONE&&n&&n()},t.send()}("/common/feedback.html?"+n+"="+Math.random().toString(16).replace(/0./,""),o):o()},t.reportAppUsage=function(){var e=window.location.pathname.split("/").filter((function(e){return e})).join(".");/^#\/1\/view\//.test(window.location.hash)?t.send(e+"_VIEW"):t.send(e)},t.reportScreenDimensions=function(){var e=window.innerHeight,n=window.innerWidth;t.send("DIMENSIONS:"+e+"x"+n)},t.reportLanguage=function(){n&&t.send("LANG_"+n._languageUsed)},t};e.exports&&(e.exports=n(void 0,void 0))})()}(Oe)),Oe.exports}var we,De,_e=Ae(),Te=n({__proto__:null,default:r(_e)},[_e]),Se={exports:{}},xe={exports:{}};function Ne(){return De||(De=1,function(e){e.exports&&(e.exports=function(e={},n){var t={setCustomize:n=>{e=n.AppConfig}};t.MINIMUM_PASSWORD_LENGTH="number"==typeof e.minimumPasswordLength?e.minimumPasswordLength:8,t.MINIMUM_NAME_LENGTH=1,t.MAXIMUM_NAME_LENGTH=64,t.isEmail=function(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())},t.isLongEnoughPassword=function(e){return e.length>=t.MINIMUM_PASSWORD_LENGTH};var r=t.isString=function(e){return"string"==typeof e};return t.isValidUsername=function(e){return!!(r(e)&&e.length>=t.MINIMUM_NAME_LENGTH)},t.isValidPassword=function(e){return!(!e||!r(e))},t.passwordsMatch=function(e,n){return r(e)&&r(n)&&e===n},t.customSalt=function(){return"string"==typeof e.loginSalt?e.loginSalt:""},t.deriveFromPassphrase=function(e,r,o,a){n(r,e+t.customSalt(),8,1024,o||128,200,a,void 0)},t.dispenser=function(e){var n={used:0};return function(t){if(n.used+t>e.length)throw new Error("exceeded available entropy");if("number"!=typeof t)throw new Error("expected a number");if(t<=0)throw new Error("expected to consume a positive number of bytes");var r;return r=e.slice?e.slice(n.used,n.used+t):e.subarray(n.used,n.used+t),n.used+=t,r}},t}(void 0,(we||(we=1,function(e){e.exports=function(e,n,t,r,o,a,i,s){function c(e){var n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],t=1779033703,r=3144134277,o=1013904242,a=2773480762,i=1359893119,s=2600822924,c=528734635,u=1541459225,f=new Array(64);function l(e){for(var l=0,d=e.length;d>=64;){var h,p,v,y,m,g=t,E=r,b=o,O=a,A=i,w=s,D=c,_=u;for(p=0;p<16;p++)v=l+4*p,f[p]=(255&e[v])<<24|(255&e[v+1])<<16|(255&e[v+2])<<8|255&e[v+3];for(p=16;p<64;p++)y=((h=f[p-2])>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,m=((h=f[p-15])>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,f[p]=(y+f[p-7]|0)+(m+f[p-16]|0)|0;for(p=0;p<64;p++)y=(((A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))+(A&w^~A&D)|0)+(_+(n[p]+f[p]|0)|0)|0,m=((g>>>2|g<<30)^(g>>>13|g<<19)^(g>>>22|g<<10))+(g&E^g&b^E&b)|0,_=D,D=w,w=A,A=O+y|0,O=b,b=E,E=g,g=y+m|0;t=t+g|0,r=r+E|0,o=o+b|0,a=a+O|0,i=i+A|0,s=s+w|0,c=c+D|0,u=u+_|0,l+=64,d-=64}}l(e);var d,h=e.length%64,p=e.length/536870912|0,v=e.length<<3,y=h<56?56:120,m=e.slice(e.length-h,e.length);for(m.push(128),d=h+1;d>>24&255),m.push(p>>>16&255),m.push(p>>>8&255),m.push(p>>>0&255),m.push(v>>>24&255),m.push(v>>>16&255),m.push(v>>>8&255),m.push(v>>>0&255),l(m),[t>>>24&255,t>>>16&255,t>>>8&255,t>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255]}function u(e,n,t){e=e.length<=64?e:c(e);var r,o=64+n.length+4,a=new Array(o),i=new Array(64),s=[];for(r=0;r<64;r++)a[r]=54;for(r=0;r=o-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;t>=32;)u(),s=s.concat(c(i.concat(c(a)))),t-=32;return t>0&&(u(),s=s.concat(c(i.concat(c(a))).slice(0,t))),s}function f(e,n,t,r){var o,a,i=e[0]^n[t++],s=e[1]^n[t++],c=e[2]^n[t++],u=e[3]^n[t++],f=e[4]^n[t++],l=e[5]^n[t++],d=e[6]^n[t++],h=e[7]^n[t++],p=e[8]^n[t++],v=e[9]^n[t++],y=e[10]^n[t++],m=e[11]^n[t++],g=e[12]^n[t++],E=e[13]^n[t++],b=e[14]^n[t++],O=e[15]^n[t++],A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=O;for(a=0;a<8;a+=2)A^=(o=(k^=(o=(I^=(o=(T^=(o=A+k)<<7|o>>>25)+A)<<9|o>>>23)+T)<<13|o>>>19)+I)<<18|o>>>14,S^=(o=(w^=(o=(M^=(o=(C^=(o=S+w)<<7|o>>>25)+S)<<9|o>>>23)+C)<<13|o>>>19)+M)<<18|o>>>14,R^=(o=(x^=(o=(D^=(o=(F^=(o=R+x)<<7|o>>>25)+R)<<9|o>>>23)+F)<<13|o>>>19)+D)<<18|o>>>14,L^=(o=(P^=(o=(N^=(o=(_^=(o=L+P)<<7|o>>>25)+L)<<9|o>>>23)+_)<<13|o>>>19)+N)<<18|o>>>14,A^=(o=(_^=(o=(D^=(o=(w^=(o=A+_)<<7|o>>>25)+A)<<9|o>>>23)+w)<<13|o>>>19)+D)<<18|o>>>14,S^=(o=(T^=(o=(N^=(o=(x^=(o=S+T)<<7|o>>>25)+S)<<9|o>>>23)+x)<<13|o>>>19)+N)<<18|o>>>14,R^=(o=(C^=(o=(I^=(o=(P^=(o=R+C)<<7|o>>>25)+R)<<9|o>>>23)+P)<<13|o>>>19)+I)<<18|o>>>14,L^=(o=(F^=(o=(M^=(o=(k^=(o=L+F)<<7|o>>>25)+L)<<9|o>>>23)+k)<<13|o>>>19)+M)<<18|o>>>14;n[r++]=e[0]=A+i|0,n[r++]=e[1]=w+s|0,n[r++]=e[2]=D+c|0,n[r++]=e[3]=_+u|0,n[r++]=e[4]=T+f|0,n[r++]=e[5]=S+l|0,n[r++]=e[6]=x+d|0,n[r++]=e[7]=N+h|0,n[r++]=e[8]=I+p|0,n[r++]=e[9]=C+v|0,n[r++]=e[10]=R+y|0,n[r++]=e[11]=P+m|0,n[r++]=e[12]=k+g|0,n[r++]=e[13]=M+E|0,n[r++]=e[14]=F+b|0,n[r++]=e[15]=L+O|0}function l(e,n,t,r,o){for(;o--;)e[n++]=t[r++]}function d(e,n,t,r,o){for(;o--;)e[n++]^=t[r++]}function h(e,n,t,r,o){l(e,0,n,t+16*(2*o-1),16);for(var a=0;a<2*o;a+=2)f(e,n,t+16*a,r+8*a),f(e,n,t+16*a+16,r+8*a+16*o)}function p(e,n,t){return e[n+16*(2*t-1)]}function v(e){for(var n=[],t=0;t127&&r<2048?(n.push(r>>6|192),n.push(63&r|128)):(n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128))}return n}if(t<1||t>31)throw new Error("scrypt: logN not be between 1 and 31");var y,m,g,E,b=1<>>0;if(1*r>=1<<30||r>16777216||r>8388608||b>16777216/r)throw new Error("scrypt: parameters are too large");"string"==typeof e&&(e=v(e)),"string"==typeof n&&(n=v(n)),"undefined"!=typeof Int32Array?(y=new Int32Array(64*r),m=new Int32Array(32*b*r),E=new Int32Array(16)):(y=[],m=[],E=new Array(16)),g=u(e,n,128*r);var O=32*r;function A(){for(var e=0;e<32*r;e++){var n=4*e;y[0+e]=(255&g[n+3])<<24|(255&g[n+2])<<16|(255&g[n+1])<<8|255&g[n+0]}}function w(e,n){for(var t=e;t>>0&255,g[4*e+1]=n>>>8&255,g[4*e+2]=n>>>16&255,g[4*e+3]=n>>>24&255}}var T="undefined"!=typeof setImmediate?setImmediate:setTimeout;function S(e,n,t,r,o){!function a(){T((function(){r(e,e+t>>18&63]),o.push(t[n>>>12&63]),o.push(t[n>>>6&63]),o.push(t[n>>>0&63]);return r%3>0&&(o[o.length-1]="=",r%3==1&&(o[o.length-2]="=")),o.join("")}(t):"hex"===n?function(e){for(var n="0123456789abcdef".split(""),t=e.length,r=[],o=0;o>>4&15]),r.push(n[e[o]>>>0&15]);return r.join("")}(t):t}"function"==typeof a&&(s=i,i=a,a=1e3),a<=0?(A(),w(0,b),D(0,b),_(),i(x(s))):(A(),S(0,b,2*a,w,(function(){S(0,b,2*a,D,(function(){_(),i(x(s))}))})))}}(xe)),xe.exports)))}(Se)),Se.exports}var Ie,Ce,Re,Pe=Ne(),ke=n({__proto__:null,default:r(Pe)},[Pe]),Me={exports:{}},Fe={exports:{}},Le={exports:{}},He={exports:{}};function je(){return Ie||(Ie=1,function(e){e.exports&&(e.exports={whenRealtimeSyncs:function(e,n){"function"==typeof e.getAuthDoc?setTimeout((function(){e.getAuthDoc()!==e.getUserDoc()?e.onSettle(n):n()}),0):console.error("improper use of this function")}})}(He)),He.exports}function Ke(){return Ce||(Ce=1,function(e){(()=>{const n=(e,n,t)=>{let r=globalThis;var o={setCustomize:()=>{}},a=function(e){try{return JSON.parse(JSON.stringify(e))}catch(e){return}};return o.init=function(o,i,s){var c=o.loggedIn,u=o.sharedFolder,f=o.readOnly,l=o.Messages||{},d=i.ROOT,h=i.FILES_DATA,p=i.STATIC_DATA,v=i.OLD_FILES_DATA,y=i.UNSORTED,m=i.TRASH,g=i.TEMPLATE,E=i.SHARED_FOLDERS,b=i.SHARED_FOLDERS_TEMP,O=i.debug;i._setReadOnly=function(e){(f=e)||i.fixFiles()},i.setHref=function(e,n,t){(n||e)&&(f||(n?[n]:i.findChannels([e])).forEach((function(e){var n=i.getFileData(e,!0);i.getHref(n)!==t&&(n.href=i.cryptor.encrypt(t))})))},i.setPadAttribute=function(e,n,t,r){if(r=r||function(){},f)r("EFORBIDDEN");else{var o=i.getIdFromHref(e);if(o)if(n&&n.trim()){var s=i.getFileData(o,!0);"href"===n?i.setHref(null,o,t):s[n]=a(t),r(null)}else r("E_INVAL_ATTR");else r("E_INVAL_HREF")}},i.getPadAttribute=function(e,n,t){t=t||function(){};var r=i.getIdFromHref(e);if(r){var o=i.getFileData(r);t(null,a(o[n]))}else t(null,void 0)},i.pushData=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);o.href&&-1!==o.href.indexOf("#")&&(o.href=i.cryptor.encrypt(o.href)),s[h][r]=o,t(null,r)}},i.pushLink=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);s[p][r]=o,t(null,r)}},i.pushSharedFolder=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r,u=a(n);if(Object.keys(s[E]).some((function(e){if(s[E][e].channel===u.channel)return u.href&&!s[E][e].href&&(s[E][e].href=u.href),r=e,!0})))t("EEXISTS",r);else if(c&&!o.testMode){var l=e.createRandomInteger();u.href&&-1!==u.href.indexOf("#")&&(u.href=i.cryptor.encrypt(u.href)),s[E][l]=u,t(null,l)}else t("EAUTH")}},i.deprecateSharedFolder=function(e,n){if(!f){var t=s[E][e];if(t){if(!(!t.href||-1===i.cryptor.decrypt(t.href).indexOf("#")))(s[b][e]=JSON.parse(JSON.stringify(t))).legacy="PASSWORD_CHANGE"!==n;var r=i.findFile(Number(e));i.delete(r,null,!0),delete s[E][e]}}};var A=function(e){f||delete s[h][e]};i.checkDeletedFiles=function(e){if(c||o.testMode)if(f)e("EFORBIDDEN");else{var t=i.getFiles([d,"hrefArray",m]),r=[];i.getFiles([h,E,p]).forEach((function(e){if(-1===t.indexOf(e)){var a=i.isSharedFolder(e)?s[E][e]:i.getFileData(e),c=a.channel;a.lastVersion&&r.push(n.hrefToHexChannelId(a.lastVersion)),a.rtChannel&&r.push(a.rtChannel),c&&r.push(c),i.isSharedFolder(e)?(delete s[E][e],o.removeProxy&&o.removeProxy(e)):s[p][e]?delete s[p][e]:A(e)}})),r.length?e(null,r):e()}else e()};i.deleteMultiplePermanently=function(e,n,t){if(f)t("EFORBIDDEN");else{var r=e.filter((function(e){return i.isPathIn(e,[h])}));if(!c&&!o.testMode)return r.forEach((function(e){var n=e[1];n&&A(n)})),void t();var a=e.filter((function(e){return i.isPathIn(e,["hrefArray"])})),u=e.filter((function(e){return i.isPathIn(e,[d])})),l=e.filter((function(e){return i.isPathIn(e,[m])})),p=[];a.forEach((function(e){var n=i.find(e);p.push({root:e[0],id:n})})),function(e){f||e.forEach((function(e){var n=s[e.root].indexOf(e.id);s[e.root].splice(n,1)}))}(p),u.forEach((function(e){var n=e.slice(),t=n.pop();delete i.find(n)[t]}));var v,y=[];l.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);4!==e.length?delete r[t]:y.push({name:e[1],el:r})})),v=y,f||v.forEach((function(e){var n=s[m][e.name].indexOf(e.el);s[m][e.name].splice(n,1)})),n?t():i.checkDeletedFiles(t)}},i.copyFromOtherDrive=function(e,t,r,o){if(!f){var a=[];if(Object.keys(r).forEach((function(e){e=Number(e);var n=r[e];if(n.static)return delete n.static,void(s[p][e]=n);n.href&&(n.href=i.cryptor.encrypt(n.href));var t=!1;for(var o in s[h])if(s[h][o].channel===n.channel){s[h][o].href||(s[h][o].href=n.href),t=!0;break}t?a.push(e):s[h][e]=n})),i.isFile(t)&&-1!==a.indexOf(t))i.log(l.sharedFolders_duplicate);else{if(i.isFolder(t)){var c=function(e){for(var n in e)i.isFile(e[n])?-1!==a.indexOf(e[n])&&(i.log(l.sharedFolders_duplicate),delete e[n]):i.isFolder(e[n])&&c(e[n])};c(t)}var u=i.find(e),d=i.isFile(t)?n.createChannelId():o,v=i.getAvailableName(u,d);Array.isArray(u)?u.push(t):u[v]=t}}};i.copyElement=function(e,t){if(!f&&!i.comparePath(e,t)){var r=i.find(e),o=i.find(t);if(i.isPathIn(t,[m])){if(!e||e.length<2||e[0]===m)return void O("Can't move an element from the trash to the trash: ",e);var a=e[e.length-1],c=i.isPathIn(e,["hrefArray"])?i.getTitle(r):a,u=e.slice();return u.pop(),function(e,n,t){if(!f){var r=s[m];void 0===r[e]&&(r[e]=[]);var o={element:n,path:t};r[e].push(o)}}(c,r,u),!0}if(i.isPathIn(t,["hrefArray"])){if(i.isFolder(r))return void i.log(l.fo_moveUnsortedError);if(e[0]===t[0])return;var d=t[0];return-1===s[d].indexOf(r)&&s[d].push(r),!0}var h=i.isFile(r)?i.getAvailableName(o,n.createChannelId()):i.isInTrashRoot(e)?e[1]:e.pop();if(void 0===o[h])return o[h]=r,!0;i.log(l.fo_unavailableName)}},i.forget=function(e){if(!f){var n=i.getIdFromHref(e);if(n){if(!c&&!o.testMode)return A(n),!0;var t=i.findFile(n);return i.move(t,[m]),!0}}},i.restoreHref=function(e){if(!f){var n=i.getIdFromHref(e);if(n&&i.isFile(n)){var t=i.findFile(n),r=!0;t.forEach((function(e){e[0]!==m?r=!1:i.delete(e,null,!0)})),r&&i.add(n)}}},i.add=function(e,t){if(!f&&(c||o.testMode)){e=Number(e);var r=s[h][e]||s[p][e]||s[E][e];if(r&&"object"==typeof r){var a,u=t;if(t&&!Array.isArray(t)&&(u=decodeURIComponent(t).split(",")),t&&i.isPathIn(u,["hrefArray"]))(a=i.find(u)).push(e);else if(-1!==i.getFiles([d,m,"hrefArray"]).indexOf(e)||u||(u=[d]),t&&i.isPathIn(u,[d])){if(a=i.find(u)){var l=i.getAvailableName(a,n.createChannelId());return void(a[l]=e)}a=i.find([d]),u.slice(1).forEach((function(e){a=a[e]=a[e]||{}})),a[n.createChannelId()]=e}}}},i.setFolderData=function(e,t,r,o){if(!f){var a=i.find(e);if(i.isFolder(a)&&!i.isSharedFolder(a)){if(!i.hasFolderData(a))a["000"+n.createChannelId().slice(0,-3)]={metadata:!0};i.getFolderData(a)[t]=r,o()}}};var w=function(e){i.rt?(i.rt.sync(),t.whenRealtimeSyncs(i.rt,e)):r.setTimeout(e,1e3)};return i.migrateReadOnly=function(e){if(!f&&o.editKey)if(s.version>=2)e();else{s.migrateRo=1;w((function(){var n=JSON.parse(JSON.stringify(s));i.reencrypt(o.editKey,o.editKey,n),setTimeout((function(){s.version>=2?e():(Object.keys(n).forEach((function(e){s[e]=n[e]})),s.version=2,delete s.migrateRo,w(e))}),1e3)}))}else e({error:"EFORBIDDEN"})},i.migrate=function(t){if(f)t();else{!function(){if(s[y]&&s[v]){O("UNSORTED still exists in the object, removing it...");var e=s[y];0!==e.length?(e.forEach((function(e){"string"==typeof e&&(0===s[v].filter((function(n){return n.href===e})).length&&s[v].push({href:e}))})),delete s[y]):delete s[y]}}(),function(t){if(s[v])try{O("Migrating file system..."),s.migrate=1;w((function(){var r=s[v].slice();s[h]||(s[h]={});var o=s[h];r.forEach((function(t){if(t&&t.href){var r=t.href,a=e.createRandomInteger(),s=i.findFile(r),c=t,u=n.createChannelId();o[a]=c||{href:r},s.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);if(i.isInTrashRoot(e))return r.element=a,void(o[a].filename=e[1]);i.isPathIn(e,["hrefArray"])?r[t]=a:(r[u]=a,o[a].filename=t,delete r[t])}))}})),delete s[v],delete s.migrate,t()}))}catch(e){console.error(e),t()}else t()}(t)}},i.fixFiles=function(t){if(!f){t&&(O=function(){});var r=+new Date;O("Cleaning file system...");var a=JSON.stringify(s),l=function(t){"object"!=typeof s[d]&&(O("ROOT was not an object"),s[d]={});var r=t||s[d];if(!r)return console.error("Invalid element in root");var o,a=0,c=s[p],u=s[h];for(var f in r)if(null!==(o=r[f]))if(i.isFolderData(o))0!==a&&(O("Multiple metadata files in folder"),delete r[f]),a++;else if(i.isFile(o,!0)||i.isFolder(o))if(i.isFolder(o))l(o);else{if("string"==typeof o){var v=e.createRandomInteger(),y=n.createChannelId();u[v]={href:i.cryptor.encrypt(o),filename:f},r[y]=v,delete r[f]}if("number"==typeof o)u[o]||c[o]||(O("An element in ROOT doesn't have associated data",o,f),delete r[f])}else O("An element in ROOT was not a folder nor a file. ",o),delete r[f];else console.error("element[%s] is null",f),delete r[f]};e.isObject(s[p])||(O("STATIC_DATA was not an object"),s[p]={}),l(),function(){if(!u){"object"!=typeof s[m]&&(O("TRASH was not an object"),s[m]={});var n,t=s[m],r=function(t,r,o){if("object"==typeof t){if(!i.isSharedFolder(t.element))if(i.isFile(t.element,!0)||i.isFolder(t.element))if(Array.isArray(t.path)){if("string"==typeof t.element){var a=e.createRandomInteger();s[h][a]={href:i.cryptor.encrypt(t.element),filename:o},t.element=a}if(i.isFolder(t.element)&&l(t.element),"number"==typeof t.element)s[h][t.element]||s[p][t.element]||(O("An element in TRASH doesn't have associated data",t.element,o),n.push(r))}else n.push(r);else n.push(r)}else n.push(r)};for(var o in t)if(Array.isArray(t[o]))if(0===t[o].length)O("Empty array in TRASH root. ",t[o]),delete t[o];else{n=[];for(var a=0;a=0;c--)t[o].splice(n[c],1)}else O("An element in TRASH root is not an array. ",t[o]),delete t[o]}}(),function(){if(!u){Array.isArray(s[g])||(O("TEMPLATE was not an array"),s[g]=[]);var n=e.deduplicateString(s[g]);n.length!==s[g].length&&(s[g]=n);var t=s[g],r=i.getFiles([d]),o=[];t.forEach((function(n,a){if(i.isFile(n,!0)&&-1===r.indexOf(n)){if("string"==typeof n){var c=e.createRandomInteger();return s[h][c]={href:i.cryptor.encrypt(n)},void(t[a]=c)}if("number"==typeof n)s[h][n]||(O("An element in TEMPLATE doesn't have associated data",n),o.push(n))}else o.push(n)})),o.forEach((function(e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}))}}(),function(){"object"!=typeof s[h]&&(O("FILES_DATA was not an object"),s[h]={});var e=s[h],t=i.getFiles([d,m,"hrefArray"]),r=i.find([d]),a=[];for(var u in e)if(String(u)===String(Number(u))){var l=e[u=Number(u)];if(l&&"object"==typeof l)if(l.href||l.roHref){var v;try{v=l.href&&(-1!==l.href.indexOf("#")?l.href:i.cryptor.decrypt(l.href))}catch(e){}if(!v||-1!==v.indexOf("#")){var y,g=n.parsePadUrl(v||l.roHref);if(g.hash)if(g.type){if(v&&"pad"===g.hashData.type&&g.hashData.version)if("view"===g.hashData.mode)l.roHref=v,delete l.href;else if(l.roHref){var E=n.parsePadUrl(l.roHref);E.hash&&E.type||(y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y))}else y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y);if(0===g.hashData.version&&delete l.roHref,v&&"/"!==v.slice(0,1)&&(l.href=i.cryptor.encrypt(n.getRelativeHref(v))),l.ctime||(l.ctime=l.atime),l.title||(l.title=i.getDefaultName(g)),!l.channel)try{y||(y=n.getSecrets(g.type,g.hash,l.password)),l.channel=y.channel,console.log(l),O("Adding missing channel in filesData ",l.channel)}catch(e){console.error(e)}if(n.isValidChannel(l.channel)||console.error("Remove invalid channel",l.channel,l),!c&&!o.testMode||-1!==t.indexOf(u));else O("An element in filesData was not in ROOT, TEMPLATE or TRASH.",u,l),r[n.createChannelId()]=u}else O("Removing an element in filesData with a invalid type.",l),a.push(u);else O("Removing an element in filesData with a invalid href.",l),a.push(u)}}else O("Removing an element in filesData with a missing href.",l),a.push(u);else O("An element in filesData was not an object.",l),a.push(u)}else O("Invalid file ID in filesData.",u),a.push(u);a.forEach((function(e){A(e)}));var b=s[p],w=[];for(var D in b){var _=b[D=Number(D)];_&&"object"==typeof _&&_.href?!c&&!o.testMode||-1!==t.indexOf(D)||w.push(D):w.push(D)}w.forEach((function(e){f||delete s[p][e]}))}(),Object.keys(s).forEach((function(e){"/"===e.slice(0,1)&&delete s[e]})),function(){if(!u){"object"!=typeof s[E]&&(O("SHARED_FOLDER was not an object"),s[E]={});var e,t,r=s[E],o=i.getFiles([d,m]),a=i.find([d]);for(var c in r){var f;t=r[c],c=Number(c);try{f=t.href&&(-1!==t.href.indexOf("#")?t.href:i.cryptor.decrypt(t.href))}catch(e){}if((e=n.parsePadUrl(f||t.roHref))&&e.hash&&"undefined"!==e.hash){if(-1===o.indexOf(c))console.log("missing"+c),a[n.createChannelId()]=c}else delete r[c]}}}(),function(){if(!u){"object"!=typeof s[b]&&(O("SHARED_FOLDER_TEMP was not an object"),s[b]={});var e=s[b],n=s[E];for(var t in e)n[t]&&delete e[t]}}();var v=+new Date-r+"ms";JSON.stringify(s)===a?O("File system was clean.",v):O("Your file system was corrupted. It has been cleaned so that the pads you visit can be stored safely.",v)}},i},o};e.exports&&(e.exports=n(Z(),te(),je()))})()}(Le)),Le.exports}function Ue(){return Re||(Re=1,function(e){(()=>{const n=(e,n,t,r,o,a={})=>{let i=globalThis;var s={setCustomize:e=>{a=e.Messages,r.setCustomize(e)}},c=s.ROOT="root",u=s.UNSORTED="unsorted",f=s.TRASH="trash",l=s.TEMPLATE="template",d=s.SHARED_FOLDERS="sharedFolders",h=s.SHARED_FOLDERS_TEMP="sharedFoldersTemp",p=s.FILES_DATA=t.storageKey,v=s.OLD_FILES_DATA=t.oldStorageKey,y=s.STATIC_DATA="static";s.getDefaultName=function(e){var n=e.type;return a.type[n]+" - "+function(){if(i.Intl&&i.Intl.DateTimeFormat)return new i.Intl.DateTimeFormat(void 0,{weekday:"short",year:"numeric",month:"long",day:"numeric"}).format(new Date);return(new Date).toString().split(" ").slice(0,4).join(" ")}()};var m=s.createCryptor=function(e){var n={};if(!e)return n.encrypt=function(e){return e},n.decrypt=function(e){return e},n;try{var t=o.createEncryptor(e);n.encrypt=function(e){try{return"/file/#"===e.slice(0,7)?e:t.encrypt(e)}catch(e){return}},n.decrypt=function(e){try{return t.decrypt(e)}catch(e){return}}}catch(e){console.error(e)}return n};return s.getHref=function(e,n){if(e.href&&-1!==e.href.indexOf("#"))return e.href;if(e.href&&n){var t=n.decrypt(e.href);if(t&&-1!==t.indexOf("#"))return t}return e.roHref},s.reencrypt=function(e,n,t){if(t){var r=m(e),o=m(n);Object.keys(t[p]).forEach((function(e){var n=t[p][e]||{};if(n.href&&n.roHref&&!n.fileType){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[d]||{}).forEach((function(e){var n=t[d][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[h]||{}).forEach((function(e){var n=t[h][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}}))}else console.error("Nothing to reencrypt")},s.init=function(t,o){var i={};i.cryptor=m(o.editKey),i.setReadOnly=function(e,n){o.editKey=n,i.cryptor=m(n),i.cryptor.k=Math.random(),i.readOnly=e,i._setReadOnly&&i._setReadOnly(e)},i.readOnly=o.readOnly,i.reencrypt=s.reencrypt,i.getDefaultName=s.getDefaultName;var g=o.sframeChan,E=a.fm_newFolder||"New folder",b=a.fm_newFile||"New file";i.ROOT=c,i.STATIC_DATA=y,i.UNSORTED=u,i.TRASH=f,i.TEMPLATE=l,i.SHARED_FOLDERS=d,i.SHARED_FOLDERS_TEMP=h,i.FILES_DATA=p,i.OLD_FILES_DATA=v;var O=i.sharedFolder=o.sharedFolder;i.id=o.id;var A=function(){console.debug.apply(console,arguments)},w=i.log=o.log||A,D=o.logError||A,_=i.debug=o.debug||A;i.fixFiles=function(){};var T=i.error=function(){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"fixFiles",data:{}},(function(){})):("function"==typeof i.fixFiles&&i.fixFiles(),console.error.apply(console,arguments),i.fixFiles())};o.outer&&r.init(o,i,t),i.getStructure=function(){var e={};return e[c]={},e[f]={},e[p]={},e[l]=[],e[d]={},e};var S=i.getHref=function(e){return s.getHref(e,i.cryptor)},x=function(e){return null===e?"null":Array.isArray(e)?"array":typeof e};i.isValidDrive=function(e){var n=i.getStructure();return"object"==typeof e&&Object.keys(n).every((function(t){return e[t]&&x(n[t])===x(e[t])}))};var N=function(){return[l]},I=function(e,n){return e===n},C=i.isSharedFolder=function(e){return!O&&Boolean(t[d]&&t[d][e])},R=i.isFile=function(e,n){return!C(e)&&("number"==typeof e||(void 0!==t[v]||n)&&"string"==typeof e)},P=i.isFolderData=function(e){return"object"==typeof e&&!0===e.metadata};i.isReadOnlyFile=function(e){if(!R(e))return!1;var n=i.getFileData(e);return n.roHref?Boolean(n.roHref&&!n.href):void 0},i.isStaticFile=function(e){return Boolean(t[y]&&t[y][e])};var k=i.isFolder=function(e){return!P(e)&&("object"==typeof e&&!e.channel||C(e))};i.isFolderEmpty=function(e){return!!k(e)&&(0===Object.keys(e).length||!(1!==Object.keys(e).length||!P(e[Object.keys(e)[0]])))},i.hasSubfolder=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=k(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=k(e[o])?1:0;return t},i.hasFile=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=R(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=R(e[o])?1:0;return t},i.hasFolderData=function(e){for(var n in e)if(P(e[n]))return!0};var M=i.hasSubSharedFolder=function(e){for(var n in e){if(C(e[n]))return!0;if(k(e[n])&&M(e[n]))return!0}return!1},F=i.getFileData=function(n,r){if(n){var a,s;try{a=(t[y]||{})[n]}catch(e){console.error(e)}if(a){var c=r?a:e.clone(a);return r||(c.static=!0),c}try{s=t[p][n]||{}}catch(e){console.error(e),s={}}if(!r&&(s=JSON.parse(JSON.stringify(s))).href&&-1===s.href.indexOf("#"))if(o.editKey)try{s.href=i.cryptor.decrypt(s.href)}catch(e){delete s.href}else delete s.href;return s}};i.getFolderData=function(e){for(var n in e)if(P(e[n]))return e[n];return{}};var L=i.getTitle=function(e,n){if(C(e))return"??";var t=F(e);if(t){if(t.static)return t.name;if(e&&(t.href||t.roHref))return"title"===n?t.title:"name"===n?t.filename:t.filename||t.title||b;T("getTitle called with a non-existing file id: ",e,t)}else T("unable to retrieve data about the requested file: ",e,t)},H=i.comparePath=function(e,n){if(!(e&&n&&Array.isArray(e)&&Array.isArray(n)))return!1;if(e.length!==n.length)return!1;for(var t=!0,r=e.length-1;t&&r>=0;)t=e[r]===n[r],r--;return t},j=i.isSubpath=function(e,n){var t=n.slice(),r=e.slice(0,t.length);return H(t,r)},K=i.isPathIn=function(e,n){if(n){var t=n.indexOf("hrefArray");return-1!==t&&(n.splice(t,1),n=n.concat(N())),n.some((function(n){return Array.isArray(e)&&e[0]===n}))}},U=i.isInTrashRoot=function(e){return e[0]===f&&4===e.length},B=function(e,n){if(n){if(0===n.length)return e;var t=n.slice(),r=t.shift();if(void 0!==e[r])return B(e[r],t);_("Unable to find the key '"+r+"' in the root object provided:",e)}else T("Invalid path:\n",n,"\nin root\n",e)},V=i.find=function(e){return B(t,e)},Y=i.getFilesRecursively=function(e,n){for(var t in n=n||[],e)R(e[t])||C(e[t])?-1===n.indexOf(e[t])&&n.push(e[t]):P(e[t])||Y(e[t],n);return n},G={array:function(e){return t[e]||(t[e]=[]),t[e].slice()}};N().forEach((function(e){G[e]=function(){return G.array(e)}})),G.hrefArray=function(){var n=[];return O?n:(N().forEach((function(e){n=n.concat(G[e]())})),e.deduplicateString(n))},G[c]=function(){var e=[];return Y(t[c],e),e},G[f]=function(){var e=t[f],n=[],r=function(e){R(e.element)||C(e.element)?-1===n.indexOf(e.element)&&n.push(e.element):Y(e.element,n)};for(var o in e){if(!Array.isArray(e[o]))return void T("Trash contains a non-array element");e[o].forEach(r)}return n},G[v]=function(){var e=[];return t[v]?(t[v].forEach((function(n){n.href&&-1===e.indexOf(n.href)&&e.push(n.href)})),e):e},G[y]=function(){return t[y]?Object.keys(t[y]).map(Number).filter(Boolean):[]},G[p]=function(){return t[p]?Object.keys(t[p]).map(Number).filter(Boolean):[]},G[d]=function(){return t[d]?Object.keys(t[d]).map(Number).filter(Boolean):[]};var J=i.getFiles=function(n){var t=[];return n&&n.length||(n=[c,"hrefArray",f,v,p,d]),n.forEach((function(e){"function"==typeof G[e]&&(t=t.concat(G[e]()))})),e.deduplicateString(t)},q=i.getIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([p]).some((function(e){if(o(S(t[p][e]))===a||o(t[p][e].roHref)===a)return r=e,!0})),r};i.getSFIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([d]).some((function(e){if(o(S(t[d][e]))===a||o(t[d][e].roHref)===a)return r=e,!0})),r};var W=function(e,n){if(!K(e,[c,f]))return[];n=Array.isArray(n)?n:[n];var t={},r=V(e),o=function(e){Object.keys(e).forEach((n=>{t[n]||=[],Array.prototype.push.apply(t[n],e[n])}))};if(R(r)||C(r))return n.some((n=>{I(n,r)&&(t[n]||=[],t[n].push(e))})),t;if(k(r))for(var a in r){let t=e.slice();t.push(a),o(W(t,n))}return t},z=function(e,n){if(O)return{};if(!t[e])return{};var r=t[e].slice(),o={},a=-1;return n.forEach((n=>{for(;-1!==(a=r.indexOf(n,a+1));)o[n]||=[],o[n].push([e,a])})),o},Q=function(e,n){if(O)return[];var t=V(e),r={},o=function(e){Object.keys(e).forEach((n=>{r[n]||=[],Array.prototype.push.apply(r[n],e[n])}))};if(1===e.length&&"object"==typeof t&&Object.keys(t).forEach((function(r){var a=t[r];if(Array.isArray(a)){var i=e.slice();i.push(r),o(Q(i,n))}})),2===e.length){if(!Array.isArray(t))return[];t.forEach((function(t,a){var i=e.slice();i.push(a),i.push("element"),R(t.element)?n.some((e=>{I(e,t.element)&&(r[e]||=[],r[e].push(i))})):o(Q(i,n))}))}return e.length>=4&&o(W(e,n)),r},Z=i.findFiles=function(e){var n=W([c],e),t=z(l,e),r=Q([f],e);let o={};return e.forEach((e=>{o[e]=[]})),[n,t,r].forEach((e=>{Object.keys(e).forEach((n=>{o[n]||=[],Array.prototype.push.apply(o[n],e[n])}))})),o},X=i.findFile=function(e){return Z([e])[e]||[]};i.findChannels=function(e,n){var r=t[p],o=t[d],a=[p];return n&&a.push(d),J(a).filter((function(n){var t=r[n]||o[n]||{};return-1!==e.indexOf(t.channel)}))},i.search=function(r){if("string"!=typeof r)return[];r=r.trim();var o,a=[],s=t[p],u=t[d],f=r.toLowerCase();/^#/.test(f)&&(o=[f.slice(1).trim()]);J([p,d]).forEach((function(e){var n=s[e]||u[e];if(n)if(Array.isArray(n.tags)&&(t=n.tags,o&&t.length&&(t=t.map((function(e){return e.toLowerCase()})),o.some((function(e){return t.some((function(n){return n===e}))})))))a.push(e);else{var t,r=n.title||n.lastTitle;(r&&-1!==r.toLowerCase().indexOf(f)||n.filename&&-1!==n.filename.toLowerCase().indexOf(f))&&a.push(e)}}));var l=n.getRelativeHref(r);if(l){var h=q(l);h&&a.push(h)}a=e.deduplicateString(a);var v=[];a.forEach((function(e){v.push({id:e,paths:X(e),data:i.getFileData(e)})}));var y=[],m=function(e,n){for(var t in e)k(e[t])&&!C(e[t])&&(-1!==t.toLowerCase().indexOf(f)&&y.push({id:null,paths:[n.concat(t)],data:{title:t}}),m(e[t],n.concat(t)))};return m(t[c],[c]),y=y.sort((function(e,n){return e.data.title.toLowerCase()>n.data.title.toLowerCase()})),v=y.concat(v)},i.getRecentPads=function(){var e=t[p];return Object.keys(e).filter((function(n){return e[n]})).sort((function(n,t){return e[t].atime-e[n].atime})).map((function(e){return Number(e)}))},i.getOwnedPads=function(e){var n=t[p];return Object.keys(n).filter((function(t){return n[t].owners&&-1!==n[t].owners.indexOf(e)})).map((function(e){return Number(e)}))};var $=i.getAvailableName=function(e,n){if(void 0===e[n])return n;for(var t=n,r=1;void 0!==e[t];)t=n+"_"+r,r++;return t},ee=i.move=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"move",data:{paths:e,newPath:n}},t);else{var r=[];e.forEach((function(e){var t=e.slice();t.pop(),H(t,n)||(j(n,e)?w(a.fo_moveFolderToChildError):i.copyElement(e.slice(),n)&&r.push(e))})),i.delete(r,t)}};return i.restore=function(e,n){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"restore",data:{path:e}},n);else if(U(e)){var t=e.slice();t.pop();var r=V(t).path;ee([e],r,n)}},i.addFolder=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"addFolder",data:{path:e,name:n}},t);else{var r=V(e),o=$(r,n||E);r[o]={};var a=e.slice();a.push(o),t({newPath:a})}},i.delete=function(e,n,t){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"delete",data:{paths:e,nocheck:t}},n):(n=n||function(){},i.deleteMultiplePermanently(e,t,n))},i.emptyTrash=function(e){e=e||function(){},g?g.query("Q_DRIVE_USEROBJECT",{cmd:"emptyTrash"},e):(t[f]={},i.checkDeletedFiles(e))},i.ownedInTrash=function(e){return J([f]).map((function(n){var r=C(n)?t[d][n]:i.getFileData(n);if(r)return e(r.owners)?r.channel:void 0})).filter(Boolean)},i.rename=function(e,n,r){if(r=r||function(){},g)g.query("Q_DRIVE_USEROBJECT",{cmd:"rename",data:{path:e,newName:n}},r);else if(e.length<=1)D("Renaming `root` is forbidden");else{var o,i=V(e);if(k(i)&&!C(i)){var s=e.slice(),c=s.pop();if(!n||!n.trim()||c===n)return;var u=V(s);return void 0!==u[n]?void w(a.fo_existingNameError):(u[n]=i,delete u[c],void("function"==typeof r&&r()))}if(o=C(i)?t[d][i]:t[p][i]||t[y][i])return t[y][i]?n&&n.trim()?(o.name=n,void r()):void r():n&&""!==n.trim()?void(L(i,"name")!==n&&(o.filename=n,"function"==typeof r&&r())):(delete o.filename,void("function"==typeof r&&r()))}},i.getTagsList=function(){var e,n={},r=function(e){n[e]=n[e]?++n[e]:1};for(var o in t[p])(e=t[p][o]).tags&&Array.isArray(e.tags)&&e.tags.forEach(r);return n},i},s};e.exports&&(e.exports=n(Z(),te(),Y(),Ke(),M(),void 0))})()}(Fe)),Fe.exports}var Be,Ve,Ye,Ge={exports:{}},Je={exports:{}};function qe(){return Be||(Be=1,function(e){e.exports=function(e){var n,t=[],r=[],o=0,a=function(e){return o++,function(){for(e&&e.apply(null,arguments),o=(o||1)-1;!o&&t.length&&!n;)t.shift()(a)}};a.abort=function(){r.forEach(clearTimeout),n=1};var i={nThen:function(e){return n||(o?t.push(e):e(a)),i},orTimeout:function(e,s){if(n)return i;if(!s)throw Error("Must specify milliseconds to orTimeout()");var c,u=setTimeout((function(){for(;t.shift()!==c;);for(e(a),o=(o||1)-1;!o&&t.length;)t.shift()(a)}),s);return t.push(c=function(){var e=r.indexOf(u);if(e>-1)return r.splice(e,1),void clearTimeout(u);throw new Error("timeout not listed in array")}),r.push(u),i}};return i.nThen(e)}}(Je)),Je.exports}function We(){return Ve||(Ve=1,function(e){e.exports&&(e.exports=((e,n,t,r,o,a,i,s)=>{var c={},u={};return c.checkMigration=function(e,t,r,o){var a=n.once(n.mkAsync(o));if(t)if(e)if(t.version>=2)a();else if(t.migrateRo){var i,s=!1,c=setInterval((function(){if(t.version>=2)return s=!0,clearTimeout(i),clearInterval(c),void a()}),100);i=setTimeout((function(){clearInterval(c),r.migrateReadOnly((function(){s=!0,a()}))}),2e4),t.on("change",["version"],(function(){s||t.version>=2&&(s=!0,clearTimeout(i),clearInterval(c),a())}))}else r.migrateReadOnly(a);else a();else a()},c.migrate=function(e){var t=u[e];if(t){var r=t.teams;if(Array.isArray(r)&&r.length){var o=r[0];if(o.secondaryKey){var a=n.find(o,["store","manager","folders",o.id]);a&&a.proxy&&!a.proxy.version&&a.userObject.migrateReadOnly((function(){r.forEach((function(e){n.find(e,["store","manager","folders",e.id,"userObject"]).setReadOnly(!1,e.secondarykey)}))}))}}}},c.load=function(t,f,l,d){var h=n.once(n.mkAsync(d)),p=t.network,v=t.store,y=t.isNew,m=t.isNewChannel,g=v.id,E=v.handleSharedFolder,b=v.manager.user.userObject.getHref(l),O=e.parsePadUrl(b),A=e.getSecrets("drive",O.hash,l.password);if(!A.keys)return v.manager.deprecateProxy(f),void h(null);var w=A.keys.secondaryKey;o((function(e){t.cache&&r.getChannelCache(A.channel,e((function(n){if("EINVAL"===n)return e.abort(),v.manager.restrictedProxy(f,A.channel),void h(null)})))})).nThen((function(e){m(null,{channel:A.channel},e((function(n){if(n.isNew&&!y)return v.manager.deprecateProxy(f,A.channel,n.reason),e.abort(),void h(null)})))})).nThen((function(){var e=u[A.channel];if(e&&e.readOnly&&w&&c.upgrade(A.channel,A),e&&e.ready&&e.rt)return setTimeout((function(){v.manager.addProxy(f,e.rt,(function(){c.leave(A.channel,g)}),w),h(e.rt)})),e.teams.push({cb:h,store:v,id:f}),void(E&&E(f,e.rt));if(e&&!e.ready&&e.rt)return e.teams.push({cb:h,store:v,secondaryKey:w,id:f}),void(E&&E(f,e.rt));e=u[A.channel]={teams:[{cb:h,store:v,secondaryKey:w,id:f}],readOnly:!Boolean(w)};var n=l.owners,o={data:{},channel:A.channel,readOnly:!Boolean(w),crypto:a.createEncryptor(A.keys),userName:"sharedFolder",logLevel:1,ChainPad:s,classic:!0,network:p,Cache:r,metadata:{validateKey:A.keys.validateKey||void 0,owners:n},onRejected:t.Store&&t.Store.onRejected},d=e.rt=i.create(o);d.proxy.on("cacheready",(function(){e.teams&&(e.teams.forEach((function(n){d.cache=!0,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),t.updatePassword=!1,n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("ready",(function(){y&&!Object.keys(d.proxy).length&&(d.proxy.version=2),e.teams&&(e.teams.forEach((function(n){d.cache=!1,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("error",(function(n){if(n&&n.error){if("EDELETED"===n.error){try{e.teams.forEach((function(e){e.store.manager.deprecateProxy(e.id,A.channel,n.message),e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),e.cb()}))}catch(e){}return delete u[A.channel],void h()}if("ERESTRICTED"===n.error)return e.teams.forEach((function(e){e.store.manager.restrictedProxy(e.id,A.channel),e.cb()})),delete u[A.channel],void h()}})),E&&E(f,d)}))},c.upgrade=function(e,n){var t=u[e];if(t&&t.readOnly&&t.rt.setReadOnly&&n.keys&&n.keys.editKeyStr){var r=a.createEncryptor(n.keys);t.readOnly=!1,t.rt.setReadOnly(!1,r)}},c.leave=function(e,n){var t=u[e];if(t){var r,o=t.teams;Array.isArray(o)&&(o.some((function(e,t){if(e.store.id===n)return e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),r=t,!0})),void 0!==r&&(o.splice(r,1),o.length||t.rt&&t.rt.stop&&t.rt.stop()))}},c.updatePassword=function(r,a,i,s){var f=a.oldChannel,l=a.href,d=a.password,h=e.parsePadUrl(l),p=e.getSecrets(h.type,h.hash,d),v=u[f];if(v){if(v.rt&&v.rt.stop)try{v.rt.stop()}catch(e){}var y=o;v.teams.forEach((function(e){y=y((function(o){var a=e.store,s=e.id,u=n.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};if(s&&u[s]){var l=JSON.parse(JSON.stringify(u[s]));l.password=d,c.load({network:i,store:a,updatePassword:!0,Store:r,isNewChannel:r.isNewChannel},s,l,o()),a.rpc&&(a.rpc.unpin([f],o()),a.rpc.pin([p.channel],o()))}})).nThen})),y((function(){s()}))}else s({error:"ENOTFOUND"})},c.loadSharedFolders=function(e,n,r,a,i,s,u,f){var l=a[t.SHARED_FOLDERS]||{},d=Object.keys(l).length,h=1,p=s();u=u||function(){},o((function(t){Object.keys(l).forEach((function(o){var a=l[o];c.load({network:n,store:r,Store:e,cache:f,isNewChannel:e.isNewChannel},o,a,t((function(){u({progress:h,max:d}),h++})))}))})).nThen((function(){setTimeout(p)}))},c.isSharedFolderChannel=function(e){return Object.keys(u).includes(e)},c})(te(),Z(),Ue(),fe(),qe(),M(),g(),w()))}(Ge)),Ge.exports}function ze(){return Ye||(Ye=1,function(e){(()=>{const n=(e,n,t,r,o={},a,i)=>{var s=function(n,t,r,o,a,i){if(!n.folders[t]||i||n.folders[t].restricted){var s=function(e){var n={};for(var t in e.cfg)n[t]=e.cfg[t];return n}(n);s.sharedFolder=!0,s.id=t,s.editKey=a,s.rt=r.realtime,s.readOnly=Boolean(!a);var c=e.init(r.proxy,s);c.fixFiles&&c.fixFiles();var u=r.proxy;if(u.metadata&&u.metadata.title){var f=n.user.proxy[e.SHARED_FOLDERS][t];f&&(f.lastTitle=u.metadata.title)}return n.folders[t]={proxy:r.proxy,userObject:c,leave:o,restricted:u.restricted,offline:Boolean(r.cache)},u.on&&(u.on("disconnect",(function(){n.folders[t].offline=!0})),u.on("reconnect",(function(){n.folders[t].offline=!1}))),c}n.folders[t].offline&&!r.cache&&n.Store&&(n.folders[t].offline=!1,n.folders[t].userObject.fixFiles&&n.folders[t].userObject.fixFiles(),n.Store.refreshDriveUI())},c=function(e,n){var t=e.folders[n];t&&(t.leave(),delete e.folders[n])},u=function(t,r,o,a){if(!t.folders[r]||!t.folders[r].deleting){if(t.user.userObject.readOnly){return c(t,r),s(t,r,{proxy:{deprecated:!0}},(function(){})),void t.Store.refreshDriveUI()}if(o&&t.unpinPads([o],(function(){})),a&&"PASSWORD_CHANGE"!==a){let o=n.find(t,["user","proxy",e.SHARED_FOLDERS]),a=o[r]&&o[r].lastTitle;return a&&((e,n,t)=>{var r=e.store.mailbox;if(r){var o,a=e.cfg.teamId;o=a?e.store.modules.team.getTeamsData()[a]:e.Store.getMetadata(null,null,(()=>{})).user,r.sendTo("SF_DELETED",{sfId:n,team:a,title:t},{curvePublic:o.curvePublic,channel:o.notifications},(e=>{console.error(e)}))}})(t,r,a),delete o[r],void(t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI())}t.user.userObject.deprecateSharedFolder(r,a),c(t,r),t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI()}},f=function(e,n){c(e,n),s(e,n,{proxy:{restricted:!0,root:{},filesData:{}}},(function(){})),e.Store.refreshDriveUI()},l=function(e,n){return Array.isArray(n)&&-1!==n.indexOf(e.edPublic)},d=function(e){var n=[e.user.userObject],t=Object.keys(e.folders).map((function(n){return e.folders[n].userObject}));return Array.prototype.push.apply(n,t),n},h=function(e,n){var t=d(e),r=e.user.userObject;return t.some((function(e){if(Object.keys(e.getFileData(n)).length)return r=e,!0})),r},p=function(e,n){var t=Number(n.id);if(t)return e.user.userObject.findFile(t)[0]},v=function(n,t,r){var o=[];return n.user.userObject.findChannels([t],!0).forEach((function(t){var a=n.user.proxy[e.SHARED_FOLDERS][t];a&&!r&&(a=JSON.parse(JSON.stringify(a))),a||(a=n.user.userObject.getFileData(t,r)),o.push({id:t,data:a,userObject:n.user.userObject})})),Object.keys(n.folders).forEach((function(e){n.folders[e].userObject.findChannels([t]).forEach((function(t){o.push({id:t,fId:e,data:n.folders[e].userObject.getFileData(t,r),userObject:n.folders[e].userObject})}))})),o},y=function(e,n){var t=[],r=e.user.userObject.getIdFromHref(n);return r&&t.push({data:e.user.userObject.getFileData(r),userObject:e.user.userObject}),Object.keys(e.folders).forEach((function(r){var o=e.folders[r].userObject.getIdFromHref(n);o&&t.push({fId:r,data:e.folders[r].userObject.getFileData(o),userObject:e.folders[r].userObject})})),t},m=function(e,n){var t=[],r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);let i;if(a){i=e.findFile(n);let t=(o[a]||[])[0];if(!t)return;i.forEach((function(e){Array.prototype.unshift.apply(e,t)}))}else{let t=[n],a=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(t,a),o=e.findFiles(t),i=o[n]}Array.prototype.push.apply(t,i)})),t},g=function(e,n){var t={},r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);if(!e.id){let e=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(n,e)}var i=e.findFiles(n);if(e.id||(o=i),a){let e=(o[a]||[])[0];if(!e)return;Object.keys(i).forEach((n=>{i[n].forEach((n=>{Array.prototype.unshift.apply(n,e)}))}))}Object.keys(i).forEach((e=>{t[e]||=[],Array.prototype.push.apply(t[e],i[e])}))})),t},E=function(e,t,r){if(r)return e.user.userObject.findChannels(t);var o=[];return d(e).forEach((function(e){var n=e.findChannels(t);Array.prototype.push.apply(o,n)})),o=n.deduplicateString(o)},b=function(e,n,t){var r=d(e),o={};return r.some((function(e){if((o=e.getFileData(n,t))&&Object.keys(o).length)return!0})),o},O=function(t,r){var o;if(t.isHistoryMode&&!t.folders[r])o=!0;else if(!t.folders[r])return{};var a=o?{}:t.folders[r].proxy;Object.keys(a.metadata||{}).length>1&&(a.metadata={title:a.metadata.title});var i=n.clone(a.metadata||{});for(var s in t.user.proxy[e.SHARED_FOLDERS][r]||{})if(void 0!==t.user.proxy[e.SHARED_FOLDERS][r][s]){var c=n.clone(t.user.proxy[e.SHARED_FOLDERS][r][s]);if("href"===s&&-1===c.indexOf("#"))try{c=t.user.userObject.cryptor.decrypt(c)}catch(e){}"href"===s&&-1===c.indexOf("#")&&(c=void 0),i[s]=c}return i},A=function(e,n){var t,r={id:null,userObject:e.user.userObject,path:n};if(!Array.isArray(n)||n.length<=1)return r;for(var o=e.user.userObject,a=2;a{o=n.Messages,e.setCustomize(n)},create:function(n,t,r){var o={pinPads:t.pin,unpinPads:t.unpin,onSync:t.onSync,Store:t.Store,store:t.store,removeOwnedChannel:t.removeOwnedChannel,loadSharedFolder:t.loadSharedFolder,cfg:r,edPublic:t.edPublic,settings:t.settings,user:{proxy:n},folders:{}};r.removeProxy=function(e){c(o,e)},o.user.userObject=e.init(n,r);var a=function(e){return function(){return[].unshift.call(arguments,o),e.apply(null,arguments)}};return{addProxy:a(s),removeProxy:a(c),deprecateProxy:a(u),restrictedProxy:a(f),addSharedFolder:a(N),addPin:function(e,n){o.pinPads=e,o.unpinPads=n},removePin:function(){delete o.pinPads,delete o.unpinPads},command:a(P),getPadAttribute:a(M),setPadAttribute:a(k),getTagsList:a(F),getSecureFilesList:a(L),getSharedFolderData:a(O),getChannelsList:a(j),addPad:a(K),delete:a(I),deleteOwned:a(C),findChannel:a(v),findHref:a(y),findFile:a(m),getEditHash:a(S),user:o.user,folders:o.folders}},createInner:function(n,t,r,o){var a={cfg:o,sframeChan:t,edPublic:r,user:{proxy:n,userObject:e.init(n,o)},folders:{}},i=function(e){return function(){return[].unshift.call(arguments,a),e.apply(null,arguments)}};return{addProxy:i(s),removeProxy:i(c),setHistoryMode:i(le),rename:i(U),move:i(B),emptyTrash:i(V),addFolder:i(Y),addSharedFolder:i(G),addLink:i(J),restoreSharedFolder:i(q),convertFolderToSharedFolder:i(W),delete:i(z),deleteOwned:i(Q),restore:i(Z),setFolderData:i(X),updateStaticAccess:i($),getFileData:i(ne),find:i(re),getTitle:i(oe),isReadOnlyFile:i(ie),isStaticFile:i(ae),getFiles:i(se),search:i(ce),getRecentPads:i(ue),getOwnedPads:i(fe),getTagsList:i(F),findFile:i(m),findFiles:i(g),findChannels:i(ee),getSharedFolderData:i(O),getFolderData:i(de),isInSharedFolder:i(he),getUserObjectPath:i(te),isDuplicateOwned:i(Se),ownedInTrash:i(Te),isValidDrive:i(pe),isFile:i(ve),isFolder:i(ye),isSharedFolder:i(me),isFolderEmpty:i(ge),isPathIn:i(Ee),isSubpath:i(be),isInTrashRoot:i(Oe),comparePath:i(Ae),hasSubfolder:i(we),hasSubSharedFolder:i(De),hasFile:i(_e),user:a.user,folders:a.folders}}}};e.exports&&(e.exports=n(Ue(),Z(),te(),We(),void 0,Ae(),qe()))})()}(Me)),Me.exports}var Qe,Ze,Xe=ze(),$e=n({__proto__:null,default:r(Xe)},[Xe]),en=Ue(),nn=n({__proto__:null,default:r(en)},[en]),tn={exports:{}},rn={exports:{}};function on(){return Ze||(Ze=1,function(e){e.exports&&(e.exports=((e={},n={},t)=>{let r=[];const o=["sheet","doc","presentation"],a=a=>{e=a.AppConfig;const i=(n=a.ApiConfig).onlyOffice&&n.onlyOffice.availableVersions.includes(t.currentVersion);r=e.availablePadTypes.filter((e=>i||!o.includes(e)))};Object.keys(e).length&&a({AppConfig:e,ApiConfig:n});const i={setCustomize:a};return i.__defineGetter__("availableTypes",(function(){return n.appsToDisable?r.filter((e=>!n.appsToDisable.includes(e))):r})),i.__defineGetter__("appsToSelect",(function(){return r.filter((e=>!["drive","teams","file","contacts","convert"].includes(e)))})),i.isAvailable=e=>Array.isArray(i.availableTypes)&&i.availableTypes.includes(e),i})(void 0,void 0,(Qe||(Qe=1,function(e){e.exports&&(e.exports={currentVersion:"v7"})}(rn)),rn.exports)))}(tn)),tn.exports}var an,sn,cn=on(),un=n({__proto__:null,default:r(cn)},[cn]),fn={exports:{}},ln={exports:{}};function dn(){return an||(an=1,function(e){(()=>{const n=(e,n,t={},r)=>{const o=function(){if(Object.keys(t).length){var e,n=new URL(t.httpUnsafeOrigin);try{return(e=new URL(t.websocketPath,t.httpUnsafeOrigin)).protocol=n.protocol,e.origin}catch(e){return console.error(e),t.httpUnsafeOrigin}}};var a=o();var i=e=>JSON.parse(JSON.stringify(e)),s=function(e,t,r){var o=n.once(n.mkAsync(r));fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then((e=>{e.ok?e.text().then((e=>{o(void 0,n.tryParse(e))})):e.json().then().then((n=>{o(e.status,n)}))})).catch((e=>{o(e)}))},c=function(t,o,c){var u=i(o);u.publicKey=n.encodeBase64(t.publicKey),u.nonce=n.encodeBase64(r.randomBytes(24));var f,l,d=new URL("/api/auth/",a);e((function(e){s(d,u,e(((n,t)=>n?(e.abort(),console.error(n),t&&console.error(t),void c(n)):t.date&&t.txid?(f=t.txid,void(l=t.date)):(e.abort(),void c("REQUEST_REJECTED")))))})).nThen((function(e){var o=i(u);o.txid=f,o.date=l;var a=n.decodeUTF8(JSON.stringify(o)),h=r.sign.detached(a,t.secretKey),p=n.encodeBase64(h);s(d,{sig:p,txid:f},e(((n,t)=>{if(n)return e.abort(),console.error(n),t&&console.error(t),void c("RESPONSE_REJECTED",t);c(void 0,t)})))}))};return c.setCustomize=e=>{t=e.ApiConfig,a=o()},c};e.exports&&(e.exports=n(qe(),Z(),void 0,N()))})()}(ln)),ln.exports}function hn(){return sn||(sn=1,function(e){e.exports&&(e.exports=((e,n={},t,r)=>{var o={setCustomize:e=>{n=e.ApiConfig,t.setCustomize(e)}};o.join=e.uint8ArrayJoin,o.seed=function(){return r.hash(e.decodeUTF8("pewpewpew"))},o.genkeys=function(e){if(!(e instanceof Uint8Array))throw new Error("INVALID_SEED_FORMAT");if(!e||"number"!=typeof e.length||e.length<64)throw new Error("INVALID_SEED_LENGTH");var n=e.subarray(0,r.sign.seedLength),t=e.subarray(r.sign.seedLength,r.sign.seedLength+r.secretbox.keyLength);return{sign:r.sign.keyPair.fromSeed(n),symmetric:t}},o.keysToRPCFormat=function(n){try{var t=n.sign;return{edPrivate:e.encodeBase64(t.secretKey),edPublic:e.encodeBase64(t.publicKey)}}catch(e){return void console.error(e)}},o.encrypt=function(n,t,a){var i=e.decodeUTF8(t),s=r.randomBytes(r.secretbox.nonceLength);return o.join([[0],s,r.secretbox(i,s,a.symmetric)])},o.decrypt=function(n,t){var o=n.subarray(1,1+r.secretbox.nonceLength),a=n.subarray(1+r.secretbox.nonceLength),i=r.secretbox.open(a,o,t.symmetric);try{return JSON.parse(e.encodeUTF8(i))}catch(e){return void console.error(e)}},o.sign=function(e,n){return r.sign.detached(r.hash(e),n.sign.secretKey)},o.serialize=function(n,t){var r=o.encrypt(0,n,t),a=o.sign(r,t);return{publicKey:e.encodeBase64(t.sign.publicKey),signature:e.encodeBase64(a),ciphertext:e.encodeBase64(r)}},o.proveAncestor=function(n){var t=e.find(n,["sign","publicKey"]),o=e.find(n,["sign","secretKey"]);try{var a=r.sign.detached(t,o);return JSON.stringify([t,a].map(e.encodeBase64))}catch(e){return void console.error(e)}};var a=function(n){return e.encodeBase64(n).replace(/\//g,"-")};o.getBlockUrl=function(e){var t=a(e.sign.publicKey);return(n.fileHost||n.httpUnsafeOrigin||window.location.origin)+"/block/"+t.slice(0,2)+"/"+t},o.getBlockHash=function(e){return o.getBlockUrl(e)+"#"+a(e.symmetric)};var i=function(n){try{return e.decodeBase64(n.replace(/\-/g,"/"))}catch(e){return void console.error(e)}};return o.parseBlockHash=function(e){if("string"==typeof e){var n=e.split("#");if(2===n.length)try{return{href:n[0],keys:{symmetric:i(n[1])}}}catch(e){return void console.error(e)}}},o.checkRights=function(n,r){const o=e.mkAsync(r),{blockKeys:a,auth:i}=n;var s="MFA_CHECK";i&&i.type&&(s=`${i.type.toUpperCase()}_`+s),t(a.sign,{command:s,auth:i&&i.data},o)},o.writeLoginBlock=function(e,n){const{content:r,blockKeys:a,oldBlockKeys:i,auth:s,pw:c,session:u,token:f,userData:l}=e;var d="WRITE_BLOCK";s&&s.type&&(d=`${s.type.toUpperCase()}_`+d);var h=o.serialize(JSON.stringify(r),a);h.auth=s&&s.data,h.hasPassword=c,h.registrationProof=i&&o.proveAncestor(i),f&&(h.inviteToken=f),l&&(h.userData=l),t(a.sign,{command:d,content:h,session:u},n)},o.removeLoginBlock=function(e,n){const{reason:r,blockKeys:o,auth:a,edPublic:i}=e;var s="REMOVE_BLOCK";a&&a.type&&(s=`${a.type.toUpperCase()}_`+s),t(o.sign,{command:s,auth:a&&a.data,edPublic:i,reason:r},n)},o.updateSSOBlock=function(e,n){const{blockKeys:r,oldBlockKeys:a}=e;var i=a&&o.proveAncestor(a);t(r.sign,{command:"SSO_UPDATE_BLOCK",ancestorProof:i},n)},o})(Z(),void 0,dn(),N()))}(fn)),fn.exports}var pn,vn=hn(),yn=n({__proto__:null,default:r(vn)},[vn]),mn={exports:{}},gn={exports:{}};function En(){return pn||(pn=1,function(e){var n;n=function(){var e=function(n){if(Array.isArray(n))return n.map(e);if(n instanceof Object){var t=[],r=[];return Object.keys(n).forEach((function(e){/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce((function(t,r){return t[r]=e(n[r]),t}),{})}return n},n=JSON.stringify.bind(JSON);return function(t,r,o){var a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;var i=JSON.parse(a);return n(e(i),null,o)}},e.exports?e.exports=n():JSON.sortify=n()}(gn)),gn.exports}var bn,On={exports:{}},An={exports:{}};function wn(){return bn||(bn=1,function(e){e.exports&&(e.exports=((e,n,t,r,o)=>{var a={},i=a.createData=function(e,r){var o={channel:r||n.createChannelId(),displayName:e["cryptpad.username"],profile:e.profile&&e.profile.view,edPublic:e.edPublic,curvePublic:e.curvePublic,notifications:t.find(e,["mailboxes","notifications","channel"]),avatar:e.profile&&e.profile.avatar,badge:e.profile&&e.profile.badge,uid:e.uid};return!1===r&&delete o.channel,o},s=a.getFriend=function(e,n){if(n){if(n===e.curvePublic){var t=i(e);return delete t.channel,t}return e.friends?e.friends[n]:void 0}},c=a.getFriendList=function(e){return e.friends||(e.friends={}),e.friends},u=function(e,n){Object.keys(e).forEach((function(t){"me"!==t&&n(e[t],t,e)}))};return a.getFriendChannelsList=function(e){var n=[];return u(e.friends,(function(e){n.push(e.channel)})),n},a.declineFriendRequest=function(e,n,t){e.mailbox.sendTo("DECLINE_FRIEND_REQUEST",{},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},a.acceptFriendRequest=function(e,n,t){var r=s(e.proxy,n.curvePublic)||{},o=i(e.proxy,r.channel||n.channel);e.mailbox.sendTo("ACCEPT_FRIEND_REQUEST",{user:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},a.addToFriendList=function(e,n,t){var r=e.proxy,a=c(r),i=n.curvePublic;i!==r.curvePublic?(a[i]=n,o.whenRealtimeSyncs(e.realtime,(function(){t(),e.pinPads([n.channel],(function(e){e.error&&console.error(e.error)}))}))):t("E_MYKEY")},a.updateMyData=function(e,n){var r=i(e.proxy,!1);e.proxy.friends&&(e.proxy.friends.me=t.clone(r),delete e.proxy.friends.me.channel),e.modules.team&&e.modules.team.updateMyData(r);var o=function(n){n&&n.notifications&&(delete n.user,r.channel=n.channel,e.mailbox.sendTo("UPDATE_DATA",r,{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)})))};n?o(s(e.proxy,n)):u(e.proxy.friends||{},o)},a.removeFriend=function(e,n,t){var r=e.proxy,a=r.friends[n];a?a.notifications?e.mailbox.sendTo("UNFRIEND",{curvePublic:r.curvePublic},{channel:a.notifications,curvePublic:a.curvePublic},(function(i){i&&i.error?t(i):(e.messenger.onFriendRemoved(n,a.channel),delete r.friends[n],o.whenRealtimeSyncs(e.realtime,(function(){t(i)})))})):t({error:"EINVAL"}):t({error:"ENOENT"})},a})(M(),te(),Z(),Y(),je()))}(An)),An.exports}var Dn,_n,Tn,Sn={exports:{}},xn={exports:{}},Nn={exports:{}};function In(){return Dn||(Dn=1,function(e){e.exports&&(e.exports=function(e,n){var t=e.uid,r=e.tryParse,o=function(t,r){var o=e.decodeUTF8(JSON.stringify(t));return e.encodeBase64(n.sign.detached(o,r))},a=function(e,n,r){if("function"!=typeof r)throw new Error("expected callback");var o=e.network,a=o.historyKeeper;if("string"==typeof a){var i=t(),s=e.pending[i]=function(e,n){r(e,n)};return s.data=n,s.called=0,o.sendto(a,JSON.stringify([i,n]))}r("NO_HISTORY_KEEPER")},i=[],s=[],c=function(e){var n={network:e,connected:!0,anon:void 0,authenticated:[]};return i.push(e),s.push(n),e.on("message",(function(t,o){o===e.historyKeeper&&function(e,n){"string"!=typeof n&&console.error("received non-string message [%s]",n);var t=r(n);if(t){if(Array.isArray(t)&&!/(FULL_HISTORY|HISTORY_RANGE)/.test(t[0])){var o=t[0];"string"==typeof o&&(function(e,n){return!!e.anon&&"function"==typeof e.anon.pending[n]}(e,o)?function(e,n,t){var r=e.pending[n];"ERROR"===t[0]?r(t[1]):r(void 0,t.slice(1)),delete e.pending[n]}(e.anon,o,t.slice(1)):e.authenticated.some((function(e){var n=e.pending[o];return"function"==typeof n&&("ERROR"!==t[1]?(/\|/.test(t[1])&&e.cookie!==t[1]&&(e.cookie=t[1]),n(void 0,t.slice(2)),delete e.pending[o],!0):"NO_COOKIE"===t[2]?(e.send("COOKIE","",(function(t){if(t)return console.error(t),void n(t);e.resend(o)&&delete e.pending[o]})),!0):(n(t[2]),delete e.pending[o],!0))}))||console.error("UNHANDLED RPC MESSAGE",n))}}else console.error(new Error("could not parse message: %s",n))}(n,t)})),e.on("disconnect",(function(){n.connected=!1,n.anon&&(n.anon.connected=!1),n.authenticated.forEach((function(e){e.connected=!1}))})),e.on("reconnect",(function(){n.anon&&(n.anon.connected=!0),n.authenticated.forEach((function(e){e.connected=!0}))})),n},u=function(e){var n;return i.some((function(t,r){return e===t&&(n=r,!0)})),s[n]?s[n]:c(e)},f=function(n,r){if(!n)throw new Error("expected network context");var i,s=r.publicKeyString;return n.authenticated.some((function(e,n){return e.publicKey===s&&(i=n,!0)})),n.authenticated[i]?n.authenticated[i]:function(n,r){var i={network:n.network,publicKey:r.publicKeyString,timeouts:{},pending:{},cookie:null,connected:!0},s=i.send=function(n,t,s){var c=e.mkAsync(s);if(i.connected||"COOKIE"===n){var u=[n,t];i.cookie&&i.cookie.join?u.unshift(i.cookie.join("|")):u.unshift(i.cookie);var f=o(u,r.signKey);return u.unshift(r.publicKeyString),u.unshift(f),a(i,u,c)}c("DISCONNECTED")};return i.resend=function(e){var n=i.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++,n.data[2]=i.cookie,n.data[0]=o(n.data.slice(2),r.signKey);var a=t();i.pending[a]=n,delete i.pending[e];try{return i.network.sendto(i.network.historyKeeper,JSON.stringify([a,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},s.unauthenticated=function(n,t,o){var s=e.mkAsync(o);if(i.connected){var c=[null,r.publicKeyString,null,n,t];return i.cookie&&i.cookie.join?c[2]=i.cookie.join("|"):c[2]=i.cookie,a(i,c,s)}s("DISCONNECTED")},i.destroy=function(){Object.keys(i.timeouts).forEach((function(e){clearTimeout(e)}));var e=n.authenticated.indexOf(i);-1!==e&&n.authenticated.splice(e,1)},n.authenticated.push(i),i}(n,r)},l=function(n){return n.anon||function(n){var t={network:n.network,timeouts:{},pending:{},connected:!0};return n.anon=t,t.send=function(n,r,o){var i=e.mkAsync(o);if(t.connected)return a(t,[n,r],i);i("DISCONNECTED")},t.resend=function(e){var n=t.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++;try{return t.network.sendto(t.network.historyKeeper,JSON.stringify([e,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},t.destroy=function(){Object.keys(t.timeouts).forEach((function(e){clearTimeout(e)})),n.anon=void 0},t}(n)};return{create:function(n,t,r,o){if("function"!=typeof o)throw new Error("expected callback");var a,i=e.mkAsync(o);try{if(64!==(a=e.decodeBase64(t)).length)throw new Error("private key did not match expected length of 64")}catch(e){return void i(e)}try{if(32!==e.decodeBase64(r).length)return void i("expected public key to be 32 uint")}catch(e){return void i(e)}if(n){var s=u(n),c=f(s,{publicKeyString:r,signKey:a});c.send("COOKIE","",(function(e){e?i(e):i(void 0,{send:c.send,destroy:c.destroy})}))}else i("NO_NETWORK")},createAnonymous:function(n,t){var r=e.mkAsync(t);if("function"!=typeof r)throw new Error("expected callback");if(n){var o=l(u(n));r(void 0,{send:o.send,destroy:o.destroy})}else r("NO_NETWORK")}}}(Z(),N()))}(Nn)),Nn.exports}function Cn(){return _n||(_n=1,function(e){e.exports&&(e.exports=function(e,n){return{create:function(t,r,o,a){if("function"!=typeof o)throw new Error("Expected callback");var i=e.once(e.mkAsync(o));if(t)if(r){var s=r.edPrivate,c=r.edPublic;s&&c?n.create(t,s,c,(function(n,t){if(n)i(n);else{var r={};r.destroy=t.destroy,r.publicKey=c,r.send=t.send,r.pin=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("PIN",n,o):o("[TypeError] pin expects an array")},r.unpin=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("UNPIN",n,o):o("[TypeError] pin expects an array")},r.adminRpc=function(e,n){if(e.cmd){var r=[e.cmd,e.data];t.send("ADMIN",r,n)}else setTimeout((function(){n("[TypeError] admin rpc expects a command")}))},r.getServerHash=function(e){t.send("GET_HASH",c,(function(n,t){t&&t[0]?e(n,Array.isArray(t)&&t[0]||void 0):e("NO_HASH_RETURNED")}))},r.reset=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("RESET",n,o):o("[TypeError] pin expects an array")},r.getFileListSize=function(e){t.send("GET_TOTAL_SIZE",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0]):e("INVALID_RESPONSE")}))},r.updatePinLimits=function(e){t.send("UPDATE_LIMITS",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.getLimit=function(e){t.send("GET_LIMIT",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.trimHistory=function(n,r){var o=e.once(e.mkAsync(r));"object"==typeof n&&n.channel&&n.hash?t.send("TRIM_HISTORY",n,(function(e){if(e)return o(e);o()})):o("INVALID_ARGUMENTS")},r.clearOwnedChannel=function(e,n){"string"==typeof e&&32===e.length?t.send("CLEAR_OWNED_CHANNEL",e,(function(e){if(e)return n(e);n()})):n("INVALID_ARGUMENTS")},r.removeOwnedChannel=function(e,n,r){if("string"!=typeof e||-1===[32,48].indexOf(e.length))return console.error("invalid channel to remove",e),void n("INVALID_ARGUMENTS");t.send("REMOVE_OWNED_CHANNEL",{channel:e,reason:r},(function(t,r){t?n(t):r&&r.length&&"OK"===r[0]?(n(),a&&a.clearChannel&&a.clearChannel(e)):n("INVALID_RESPONSE")}))},r.removePins=function(e){t.send("REMOVE_PINS",void 0,(function(n,t){n?e(n):t&&t.length&&"OK"===t[0]?e():e("INVALID_RESPONSE")}))},r.uploadComplete=function(e,n){t.send("UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.ownedUploadComplete=function(e,n){t.send("OWNED_UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.uploadStatus=function(e,n){"number"==typeof e?t.send("UPLOAD_STATUS",e,(function(e,t){if(e)n(e);else{var r=t[0];"boolean"==typeof r?n(void 0,r):n("INVALID_RESPONSE")}})):setTimeout((function(){n("INVALID_SIZE")}))},r.uploadCancel=function(e,n){t.send("UPLOAD_CANCEL",e,(function(e){e?n(e):n()}))},r.setMetadata=function(e,n){t.send("SET_METADATA",{channel:e.channel,command:e.command,value:e.value},n)},i(n,r)}})):i("INVALID_KEYS")}else i("INVALID_PROXY");else i("INVALID_NETWORK")}}}(Z(),In()))}(xn)),xn.exports}function Rn(){return Tn||(Tn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u)=>{var f=function(e,n,t){if(!e.done){if(e.cb(n&&n.error,t,n),e.done=!0,!e.hasNetwork){var o=r.find(e,["network","disconnect"]);"function"==typeof o&&o()}if(e.realtime&&e.realtime.stop)try{e.realtime.stop()}catch(e){console.error(e)}var a=r.find(e,["session","realtime","abort"]);"function"==typeof a&&(e.session.realtime.sync(),a())}},l=function(e,r){u((function(n){var o,a;e.hasNetwork||(o=n((function(e,n){e||(r.network=n)})),a=i.getWebsocketURL(),t.connect(a).then((function(e){o(null,e)}),(function(e){o(e)})))})).nThen((function(){e.realtime=n.start(r)}))},d=function(e,n,t,r){Array.isArray(t)&&t.length&&16===t[0].length&&Array.isArray(n.accessKeys)?(e.network.historyKeeper=t[0],u((function(t){n.accessKeys.forEach((function(n){c.create(e.network,n,t((function(e){console.log("done",n),e&&console.error(e)})))}))})).nThen((function(){r()}))):r(!0)},h=function(n,t){var r;return"string"==typeof n?r=o.getSecrets("pad",n,t.password):"object"==typeof n&&(r=n),r.keys||(r.keys=r.key),{websocketURL:i.getWebsocketURL(t.origin),channel:r.channel,validateKey:r.keys.validateKey||void 0,crypto:e.createEncryptor(r.keys),logLevel:0,initialState:t.initialState,Cache:s}},p=function(e){return"object"==typeof e},v=function(e,n){p(e)&&p(n)&&Object.keys(n).forEach((function(t){e[t]=n[t]}))};return{get:function(e,n,t,r){if("function"!=typeof n)throw new Error("Cryptget expects a callback");r=r||function(){};var o=h(e,t=t||{}),a={cb:n,accessKeys:t.accessKeys,hasNetwork:Boolean(t.network)};o.onRejected=function(e,n){d(o,a,e,n)},o.onReady=function(e){var n=a.session=e.realtime;a.network=e.network,r(1),f(a,void 0,n.getUserDoc())},o.onError=function(e){console.warn(e),f(a,e)},o.onChannelError=function(e){console.error(e),f(a,e)},o.onCacheReady=t.onCacheReady;var i=0;o.onMessage=function(){i++,r(Math.min(.99,i/100))},v(o,t),l(a,o)},put:function(e,n,t,r){if("function"!=typeof t)throw new Error("Cryptput expects a callback");var o=h(e,r=r||{}),i={cb:t,accessKeys:r.accessKeys,hasNetwork:Boolean(r.network)};o.onRejected=function(e,n){d(o,i,e,n)},o.onReady=function(e){var r=i.session=e.realtime;i.network=e.network,r.contentUpdate(n);var o=setTimeout((function(){t(new Error("Timeout"))}),15e3);a.whenRealtimeSyncs(r,(function(){clearTimeout(o);var e=r.getAuthDoc();r.abort(),f(i,void 0,e)}))},o.onChannelError=function(e){f(i,e)},v(o,r),l(i,o)}}};e.exports&&(e.exports=n(M(),y(),v(),Z(),te(),je(),j(),fe(),Cn(),qe(),w()))})()}(Sn)),Sn.exports}var Pn,kn={exports:{}},Mn={exports:{}};var Fn,Ln,Hn,jn={exports:{}};function Kn(){return Fn||(Fn=1,function(e){e.exports&&(e.exports=((e,n,t,r,o)=>{var a=function(e){var n=e.store.realtime.getLag().lag||0;return 20*(Math.max(0,n)+300)*(.5+Math.random())},i={},s={},c=function(e,n){var r=e.store.proxy.mutedUsers||{},o=t.find(n,["msg","author"]);return!!o&&Boolean(r[o])},u={};i.FRIEND_REQUEST=function(n,t,r,o){var a=r.msg.content.user||r.msg.content;if(c(n,r))o(!0);else if(u[r.msg.author])o(!0);else{if(u[r.msg.author]={type:t.type,hash:r.hash},e.getFriend(n.store.proxy,r.msg.author)||n.store.proxy.friends_pending[r.msg.author])return delete n.store.proxy.friends_pending[r.msg.author],void e.acceptFriendRequest(n.store,a,(function(t){t&&t.error?o():e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},a,(function(e){if(e)return console.error(e),void o(!0);n.store.messenger&&n.store.messenger.onFriendAdded(a),n.updateMetadata(),o(!0)}))}));o()}},s.FRIEND_REQUEST=function(e,n,t){var r=t.content.user||t.content;u[r.curvePublic]&&delete u[r.curvePublic]};var f={},l={};i.DECLINE_FRIEND_REQUEST=function(e,n,t,r){var o=t.msg.content.user||t.msg.content;o.curvePublic||(o.curvePublic=t.msg.author),setTimeout((function(){r(!0),e.store.proxy.friends_pending[t.msg.author]&&(delete e.store.proxy.friends_pending[t.msg.author],e.updateMetadata(),f[t.msg.author]||n.sendMessage({type:"FRIEND_REQUEST_DECLINED",content:{user:o}},(function(e){f[t.msg.author]={type:n.type,hash:e}})))}),a(e))},i.FRIEND_REQUEST_DECLINED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=l[o];delete l[o],f[o]?r(!0,a):(f[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_DECLINED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;f[r]&&delete f[r]},i.ACCEPT_FRIEND_REQUEST=function(n,t,r,o){var i=r.msg.content.user||r.msg.content;setTimeout((function(){o(!0),n.store.proxy.friends_pending[r.msg.author]&&(delete n.store.proxy.friends_pending[r.msg.author],e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},i,(function(e){e?console.error(e):(n.store.messenger&&n.store.messenger.onFriendAdded(i),n.updateMetadata(),n.store.modules.profile&&n.store.modules.profile.update(),l[r.msg.author]||t.sendMessage({type:"FRIEND_REQUEST_ACCEPTED",content:{user:i}},(function(e){l[r.msg.author]={type:t.type,hash:e}})))})))}),a(n))},i.FRIEND_REQUEST_ACCEPTED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=f[o];delete f[o],l[o]?r(!0,a):(l[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_ACCEPTED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;l[r]&&delete l[r]},i.CANCEL_FRIEND_REQUEST=function(e,n,t,r){var o=u[t.msg.author];o?r(!0,o):r(!0)},i.UNFRIEND=function(n,t,r,o){var a=r.msg.author,i=e.getFriend(n.store.proxy,a);i?(delete n.store.proxy.friends[a],delete n.store.proxy.friends_pending[a],n.store.messenger&&n.store.messenger.onFriendRemoved(a,i.channel),n.updateMetadata(),o(!0)):o(!0)},i.UPDATE_DATA=function(e,n,t,r){var o=t.msg,a=o.author,i=e.store.proxy.friends&&e.store.proxy.friends[a];i&&"object"==typeof o.content?(Object.keys(o.content).forEach((function(e){i[e]=o.content[e]})),e.store.messenger&&e.store.messenger.onFriendUpdate(a),e.updateMetadata(),r(!0)):r(!0)};var d=function(e,n){let t=e.store.data.blockHash,a=o.parseBlockHash(t).keys.symmetric;return r.encrypt(n,a)},h={};i.SHARE_PAD=function(e,t,r,o){var a=r.msg,i=r.hash,s=a.content;if(c(e,r))o(!0);else{var u,f=s.isStatic?s.href:n.hrefToHexChannelId(s.href,s.password),l=n.parsePadUrl(s.href),p=l.hashData&&l.hashData.mode||"n/a",v=h[f];if(v){if("edit"===v.mode&&"view"===p)return void o(!0);u=v.data}s.password&&(s.password=d(e,s.password)),h[f]={mode:p,data:{type:t.type,hash:i}},o(!1,u)}},s.SHARE_PAD=function(e,t,r,o){var a=r.content,i=n.hrefToHexChannelId(a.href,a.password),s=h[i];s&&s.data&&s.data.hash===o&&delete h[i]};var p=!1;i.SUPPORT_MESSAGE=function(e,n,t,r){p?r(!0):(p=!0,r())},s.SUPPORT_MESSAGE=function(){p=!1},i.REQUEST_PAD_ACCESS=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{var a=o.channel,i=e.store.manager.findChannel(a);if(i.length){var s,u,f=e.store.proxy.edPublic;i.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(f)&&e.data.href)return u=e.data.href,s=e.data.filename||e.data.title,!0}))?(o.title=s,o.href=u,r(!1)):r(!0)}else r(!0)}},i.GIVE_PAD_ACCESS=function(e,n,t,r){var o,a=t.msg.content,i=a.channel;e.store.manager.findChannel(i,!0).forEach((function(e){e.data&&!e.data.href&&(o||(o=e.data.filename||e.data.title),e.userObject.setHref(i,null,a.href))})),a.title=o||a.title,r(!1)},i.ADD_TO_ACCESS_LIST=function(e,n,t,r){var o=t.msg.content.channel;e.Store.getAllStores().forEach((function(n){var t=n.manager.findChannel(o);if(t.length){var r=t[0].data,a=t[0].id,i=n.id;e.Store.loadSharedFolder(i,a,r,(function(){}),!1)}})),r(!0)};var v={};i.ADD_OWNER=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{if(!(o.teamChannel||o.href&&o.title&&o.channel))return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;o.password&&(o.pw=o.password,o.password=d(e,o.password)),v[a]?r(!0):(v[a]={type:n.type,hash:t.hash},r(!1))}},s.ADD_OWNER=function(e,n,t){var r=t.content.channel||t.content.teamChannel;v[r]&&delete v[r]},i.RM_OWNER=function(e,n,t,r){var o=t.msg.content;if(!o.channel&&!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;if(o.teamChannel){var i=e.store.proxy.teams||{};Object.keys(i).some((function(e){if(i[e].channel===a)return i[e].owner=!1,!0}))}v[a]&&o.pending?r(!1,v[a]):r(!1)};var y={};i.INVITE_TO_TEAM=function(e,n,r,o){var a=r.msg.content;if(c(e,r))o(!0);else{if(!a.team)return console.log("Remove invalid notification"),void o(!0);var i=y[a.team.channel];if(i)return console.log("removing old invitation"),o(!1,i),void(y[a.team.channel]={type:n.type,hash:r.hash});var s=t.find(e,["store","proxy","teams"])||{};Object.keys(s).some((function(e){return s[e].channel===a.team.channel}))?o(!0):(y[a.team.channel]={type:n.type,hash:r.hash},o(!1))}},s.INVITE_TO_TEAM=function(e,n,r){var o=t.find(r,["content","team","channel"]);delete y[o]},i.KICKED_FROM_TEAM=function(e,n,t,r){var o=t.msg.content;if(!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);y[o.teamChannel]&&o.pending?r(!0,y[o.teamChannel]):r(!1)},i.INVITE_TO_TEAM_ANSWER=function(e,n,r,o){var a=r.msg,i=a.content;if(!i.teamChannel)return console.log("Remove invalid notification"),void o(!0);var s,c,u=t.find(e,["store","proxy","teams"])||{};if(Object.keys(u).some((function(e){var n=u[e];if(n.channel===i.teamChannel)return s=e,c=n,!0})),s){if(i.team=c,!i.answer)try{e.store.modules.team.removeFromTeam(s,a.author,!0)}catch(e){console.error(e)}var f=i.user||i;n.sendMessage({type:"INVITE_TO_TEAM_ANSWERED",content:{user:f,team:c,answer:i.answer}},(function(){})),o(!0)}else o(!0)},i.TEAM_EDIT_RIGHTS=function(e,n,r,o){var a=r.msg.content;if(!a.teamData)return console.log("Remove invalid notification"),void o(!0);var i,s=t.find(e,["store","proxy","teams"])||{};if(Object.keys(s).some((function(e){if(s[e].channel===a.teamData.channel)return i=e,!0})),i)try{e.store.modules.team.changeMyRights(i,a.state,a.teamData,(function(e){e||console.error("Can't update team rights"),o(!0)}))}catch(e){console.error(e)}else o(!0)},i.OWNED_PAD_REMOVED=function(e,n,t,r){var o=t.msg.content;if(!o.channel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel;e.store.manager.findChannel(a).forEach((function(n){var t=e.store.manager.findFile(n.id);e.store.manager.delete({paths:t},(function(){e.updateDrive()}))})),r(!0)},i.MOVE_TODO=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)},i.SAFE_LINKS_DEFAULT=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)};var m={};i.FORM_RESPONSE=function(e,n,t,r){var o,a,i=t.msg,s=t.hash,c=i.content,u=c.channel;if(u)if(function(e,n){return(e.store.proxy.mutedChannels||[]).includes(n)}(e,u))r(!0);else if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(u).some((function(e){if(e.data&&(!a||e.data.href))return a=e.data.href||e.data.roHref,o=e.data.filename||e.data.title,!!e.data.href||void 0}))})),a){c.href=a,c.title=o;var f=m[u],l=f?f.data:void 0;m[u]={data:{type:n.type,hash:s}},r(!1,l)}else r(!0);else r(!0)},s.FORM_RESPONSE=function(e,n,t,r){var o=t.content.channel,a=m[o];a&&a.data&&a.data.hash===r&&delete m[o]};var g={};i.COMMENT_REPLY=function(e,n,r,o){var a=r.msg,i=r.hash,s=a.content;if(t.find(e.store.proxy,["settings","pad","disableNotif"]))o(!0);else{var c,u,f=s.channel;if(f)if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(f).some((function(e){if(e.data&&(!u||e.data.href))return u=e.data.href||e.data.roHref,c=e.data.filename||e.data.title,!!e.data.href||void 0}))})),u){s.href=u,s.title=c;var l=g[f],d=l?l.data:void 0;g[f]={data:{type:n.type,hash:i}},o(!1,d)}else o(!0);else o(!0)}},s.COMMENT_REPLY=function(e,n,t,r){var o=t.content.channel,a=g[o];a&&a.data&&a.data.hash===r&&delete g[o]};var E,b,O={};i.MENTION=function(e,n,t,r){var o=t.msg,a=t.hash,i=o.content;if(c(e,t))r(!0);else{var s=i.channel;if(s){var u,f;e.Store.getAllStores().some((function(e){return e.manager.findChannel(s).some((function(e){if(e.data&&(!f||e.data.href))return f=e.data.href||e.data.roHref,u=e.data.filename||e.data.title,!!e.data.href||void 0}))})),i.href=f,i.title=u;var l=O[s],d=l?l.data:void 0;O[s]={data:{type:n.type,hash:a}},r(!1,d)}else r(!0)}},s.MENTION=function(e,n,t,r){var o=t.content.channel,a=O[o];a&&a.data&&a.data.hash===r&&delete O[o]},i.BROADCAST_MAINTENANCE=function(e,n,t,r){var o=t.msg.uid;e.Store.onMaintenanceUpdate(o),r(!0)},i.BROADCAST_SURVEY=function(e,n,t,r){var o=t.msg,a=o.content,i=o.uid,s=E;E={type:n.type,hash:t.hash},e.Store.onSurveyUpdate(i),r(!a.url,s)},i.BROADCAST_CUSTOM=function(e,n,t,r){var o=t.msg.uid,a=b;b={uid:o,type:n.type,hash:t.hash},r(!1,a)},i.BROADCAST_DELETE=function(e,n,t,r){var o=t.msg.content.uid;if(b&&b.uid===o)return r(!0,b),void(b=void 0);r(!0)};var A,w,D={};return i.SF_DELETED=function(e,n,t,r){var o=t.msg.content,a=o.team,i=o.sfId;if(D[i])r(!0);else if(D[i]=1,a){var s=e.store.proxy.teams[a];o.teamName=s.metadata&&s.metadata.name,r(!1)}else r(!1)},s.SF_DELETED=function(e,n,t){var r=t.content.sfId;delete D[r]},i.NEW_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);a.isAdmin&&i.addUserTicket(a,o),i.addAdminTicket(a,o)},i.NOTIF_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);if(a.isAdmin)return t.find(e,["store","proxy","support",a.channel])?(i.updateUserTicket(a),A?void o(!1,A):(A={channel:a.channel,type:n.type,hash:r.hash},void o(!1))):void o(!0);i.checkAdminTicket(a,(s=>{s?(i.updateAdminTicket(a),t.find(e.store.proxy,["settings","general","disableSupportNotif"])?o(!0):w?o(!1,w):(w={channel:a.channel,type:n.type,hash:r.hash},o(!1))):o(!0)}))},s.NOTIF_TICKET=function(e,n,t){var r=t.content.channel;A&&A.channel===r&&(A=void 0),w&&w.channel===r&&(w=void 0)},i.ADD_MODERATOR=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,o)},i.MODERATOR_NEW_KEY=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,(function(){o(!0)}))},{add:function(e,n,r,o){if(r.msg){var a=t.find(e,["store","proxy","curvePublic"]),s=t.find(r,["msg","content","user","curvePublic"])||t.find(r,["msg","content","curvePublic"]);if(s&&r.msg.author!==s&&r.msg.author!==a)return console.error("blocked"),void o(null,null,!0);var c=r.msg.type;if(i[c])try{i[c](e,n,r,o)}catch(e){console.error(e),o()}else o()}else o(null,null,!0)},remove:function(e,n,t,r){if(t){var o=t.type;if(s[o])try{s[o](e,n,t,r)}catch(e){console.error(e)}}}}})(wn(),te(),Z(),M(),hn()))}(jn)),jn.exports}function Un(){return Ln||(Ln=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c)=>{var u={setCustomize:n=>{e=n.Broadcast}},f=["notifications","supportteam","broadcast"],l=[],d="000000000000000000000000000000000",h=function(e,n,t,r,o){e.emit("MESSAGE",{type:n,content:t},r?[r]:e.clients,o)},p=function(e,n,t,r){e.emit("VIEWED",{type:n,hash:t},r||e.clients)},v=function(e){var n=e.store&&e.store.proxy;if(n.curvePrivate&&n.curvePublic)return{curvePrivate:n.curvePrivate,curvePublic:n.curvePublic}},y=u.sendTo=function(e,t,r,a,i){a=a||{};var s=i||function(e){e&&e.error&&console.error(e.error)};if(c.Mailbox){var u=n.find(e,["store","anon_rpc"]);if(u){var f={encrypt:function(e){return e}},l=d,h={uid:n.uid(),type:t,content:r};if(!/^BROADCAST/.test(t)){var p=v(e);if(!p)return void s({error:"missing asymmetric encryption keys"});if(!a||!a.channel||!a.curvePublic)return void s({error:"no notification channel"});if(l=a.channel,f=c.Mailbox.createEncryptor(p),"object"==typeof r&&!r.user){var y=o.createData(e.store.proxy,!1);r.user=y}h={type:t,content:r}}var m=JSON.stringify(h),g=f.encrypt(m,a.curvePublic);if(a.viewed){var E=n.find(e,["store","proxy","teams",a.viewed]);if(E){var b=g.slice(0,64),O=n.find(E,["keys","mailbox","viewed"]);Array.isArray(O)&&O.push(b)}}u.send("WRITE_PRIVATE_MESSAGE",[l,g],(function(e){s(e?{error:e}:{hash:g.slice(0,64)})}))}else s({error:"anonymous rpc session not ready"})}else s({error:"chainpad-crypto is outdated and doesn't support mailboxes."})};u.sendToAnon=function(e,t,r,o,a){var i=c.Nacl,s=i.randomBytes(32),u=i.box.keyPair.fromSecretKey(new Uint8Array(s)),f=n.encodeBase64(u.secretKey),l=n.encodeBase64(u.publicKey);y({store:{anon_rpc:e,proxy:{curvePrivate:f,curvePublic:l}}},t,r,o,a)};var m=function(e,t,o,a){var s=t.type,c=t.hash;if(/^REMINDER\|/.test(c)){a(),delete e.boxes.reminders.content[c],p(e,s,c,e.clients.filter((function(e){return e!==o})));var u=c.slice(9).split("-")[0],f=n.find(e,["store","proxy","hideReminders",u]);if(!f){var l=e.store.proxy.hideReminders=e.store.proxy.hideReminders||{};f=l[u]=l[u]||[]}var d=c.split("-")[1];d&&!f.includes(d)&&f.push(Number(d))}else{var h=e.boxes[s];if(h){var v,y,m=h.data||{},g=h.history.indexOf(c);-1!==g&&(0===g?(m.lastKnownHash=c,h.history.shift()):-1===m.viewed.indexOf(c)&&m.viewed.push(c));var E=[];h.history.some((function(e,n){if(-1===m.viewed.indexOf(e))return!0;v=n+1,E.push(e),y=e})),m.viewed=m.viewed.filter((function(e){return-1===E.indexOf(e)})),v&&(h.history=h.history.slice(v),m.lastKnownHash=y),Object.keys(h.content).forEach((function(n){-1!==h.history.indexOf(n)&&-1===m.viewed.indexOf(n)||(i.remove(e,h,h.content[n],n),delete h.content[n])})),r.whenRealtimeSyncs(e.store.realtime,(function(){a(),p(e,s,c,e.clients.filter((function(e){return e!==o})))}))}else a({error:"NOT_LOADED"})}},g=function(e,n,t,r,u){u=u||{};var f=e.boxes[n]={channel:t.channel,type:n,queue:[],history:[],content:{},sendMessage:function(n){if("object"==typeof n&&!n.user){var t=o.createData(e.store.proxy,!1);n.user=t}try{n=JSON.stringify(n)}catch(e){console.error(e)}f.queue.push(n)},data:t};if(c.Mailbox){var l=t.keys||v(e);if(l||t.decrypted){var d=t.decrypted?{encrypt:function(e){return e},decrypt:function(e){return e}}:c.Mailbox.createEncryptor(l);f.encryptor=d;var y,g={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:d,owners:"broadcast"===n?[]:u.owners||[e.store.proxy.edPublic],lastKnownHash:t.lastKnownHash};g.onConnectionChange=function(){},g.onConnect=function(t,r){f.sendMessage=function(t,o){var a;o=o||function(){};try{a=JSON.stringify(t)}catch(e){console.error(e)}r(a,(function(r,a){r?console.error(r):(f.history.push(a),t.ctime=+new Date,f.content[a]=t,h(e,n,{msg:t,hash:a}),o(a))}),l.curvePublic)},f.queue.forEach((function(e){f.sendMessage(e)})),f.queue=[]},f.onMessage=g.onMessage=function(r,o,s,c,l,d,p){if(l!==t.lastKnownHash&&l!==y){var v=p&&p.time;y=l;try{r=JSON.parse(r)}catch(e){console.error(e)}if(d&&(r.author=d),f.history.push(l),function(e,n){return-1===(n.viewed||[]).indexOf(e)&&e!==n.lastKnownHash}(l,t)){var g={msg:r,hash:l,time:v},E=f.ready;i.add(e,f,g,(function(t,o,i){o&&m(e,o,"",(function(){console.log("Notification handled automatically")})),i||t?m(e,{type:n,hash:l},"",(function(){console.log("Notification handled automatically")})):(r.ctime=v||0,f.content[l]=r,u.dump||h(e,n,g,null,(function(e){e&&e.msg&&E&&a.system(void 0,e.msg)})))}))}else if(0===Object.keys(f.content).length){t.lastKnownHash=l,f.history=[];var b=t.viewed.indexOf(l);-1!==b&&t.viewed.splice(b,1)}}},g.onReady=function(){var o=[];t.viewed.forEach((function(e,n){-1===f.history.indexOf(e)&&o.push(n)}));for(var a=o.length-1;a>=0;a--)t.viewed.splice(o[a],1);var s=function(t){i.remove(e,f,f.content[t],t),delete f.content[t],p(e,n,t)};e.store.proxy.on("change",["mailboxes",n],(function(e,n,t){var r;"lastKnownHash"===t[2]&&(f.history.some((function(e,t){if(r=t+1,s(e),e===n)return!0})),f.history=f.history.slice(r));"viewed"===t[2]&&s(n)})),f.ready=!0,r(f.content)},f.cpNf=s.start(g)}else console.error("missing asymmetric encryption keys")}else console.error("chainpad-crypto is outdated and doesn't support mailboxes.")};return u.init=function(r,o,s){var c={},u=r.store,v=u.proxy.mailboxes=u.proxy.mailboxes||{},E={Store:r.Store,store:u,pinPads:r.pinPads,updateMetadata:r.updateMetadata,updateDrive:r.updateDrive,mailboxes:v,emit:s,clients:[],boxes:{},req:{},loggedIn:u.loggedIn&&u.proxy.edPublic};return function(n,r){!r.notifications&&n.loggedIn&&(r.notifications={channel:t.createChannelId(),lastKnownHash:"",viewed:[]},n.pinPads([r.notifications.channel],(function(e){e.error&&console.error(e)}))),r.support&&delete r.support,r.broadcast||(r.broadcast={channel:d,lastKnownHash:e.lastBroadcastHash,decrypted:!0,viewed:[]})}(E,v),E.loggedIn&&function(e){var t=e.store.network;t.on("message",(function(r,o){if(o===t.historyKeeper){var a=JSON.parse(r);if(/HISTORY_RANGE/.test(a[0])){var i=a[1],s=e.req[i];if(s){var c=a[0],u=a[2],f=s.box;if("HISTORY_RANGE"===c){if(!Array.isArray(u))return;var l;if("broadcast"===s.box.type)l=n.tryParse(u[4]);else try{var d=f.encryptor.decrypt(u[4]);(l=JSON.parse(d.content)).author=d.author}catch(e){console.log(e)}var h=u[4].slice(0,64);e.emit("HISTORY",{txid:i,time:u[5],message:l,hash:h},[s.cId])}else"HISTORY_RANGE_END"===c&&(e.emit("HISTORY",{txid:i,complete:!0},[s.cId]),delete e.req[i])}}}}))}(E),E.boxes.reminders={content:{}},Object.keys(v).forEach((function(e){if(-1!==f.indexOf(e)){var n=v[e];-1===l.indexOf(e)?g(E,e,n,(function(){})):g(E,e,n,o((function(){})))}})),E.loggedIn&&Object.keys(u.proxy.teams||{}).forEach((function(e){var t=u.proxy.teams[e];if(t){var r=t.keys.mailbox||{};if(r.channel){var o={owners:[n.find(t,["keys","drive","edPublic"])]};g(E,"team-"+e,r,(function(){}),o)}}})),c.post=function(e,n,t){var r=E.boxes[e];r&&r.sendMessage({type:n,content:t,sender:u.proxy.curvePublic})},c.hideMessage=function(e,n){p(E,e,n.hash,E.clients)},c.showMessage=function(e,n,t,r){"reminders"===e&&n&&(E.boxes.reminders.content[n.hash]=n.msg,E.clients.length||(E.boxes.reminders.content[n.hash].requiresNotif=!0),p(E,e,n.hash,E.clients)),h(E,e,n,t,(function(e){a.system(void 0,e.msg),r&&r()}))},c.open=function(e,n,t,r,o){(-1!==f.indexOf(e)||r)&&g(E,e,n,t,o)},c.close=function(e,n){!function(e,n,t){t=t||function(){};var r=e.boxes[n];r?r.cpNf&&"function"==typeof r.cpNf.stop?(r.cpNf.stop(),Object.keys(r.content).forEach((function(t){i.remove(e,r,r.content[t],t),p(e,n,t,e.clients)})),delete e.boxes[n]):t("EINVAL"):t()}(E,e,n)},c.dismiss=function(e,n){m(E,e,"",n)},c.sendTo=function(e,n,t,r){E.loggedIn?y(E,e,n,t,r):r({error:"NOT_LOGGED_IN"})},c.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);e.clients.splice(t,1)}(E,e)},c.execCommand=function(e,n,t){var r=n.cmd,o=n.data;"SUBSCRIBE"!==r?"DISMISS"!==r?"SENDTO"!==r?"LOAD_HISTORY"!==r||function(e,n,t,r){var o=e.boxes[t.type];if(o){var a=["GET_HISTORY_RANGE",o.channel,{from:t.lastKnownHash,count:t.count,txid:t.txid}];"broadcast"===t.type&&(a=["GET_HISTORY_RANGE",o.channel,{to:t.lastKnownHash,txid:t.txid}]),e.req[t.txid]={cId:n,box:o};var i=e.store.network;i.sendto(i.historyKeeper,JSON.stringify(a)).then((function(){}),(function(e){console.error(e)}))}else r({error:"ENOENT"})}(E,e,o,t):y(E,o.type,o.msg,o.user,t):m(E,o,e,t):function(e,n,t,r){Object.keys(e.boxes).forEach((function(n){Object.keys(e.boxes[n].content).forEach((function(r){var o={msg:e.boxes[n].content[r],hash:r};h(e,n,o,t,(function(e){e.error||o.msg&&o.msg.requiresNotif&&(a.system(void 0,e.msg),delete o.msg.requiresNotif)}))}))})),-1===e.clients.indexOf(t)&&e.clients.push(t),r()}(E,0,e,t)},c},u};e.exports&&(e.exports=n(void 0,Z(),te(),je(),wn(),(Pn||(Pn=1,function(e){(()=>{const n=(e={})=>{let n=globalThis;var t={};e.requireConf=e.requireConf||{},t.setCustomize=n=>{e=n.ApiConfig};var r=n.location&&n.location.pathname.slice(1,-1),o=-1!==["code","slide","pad","kanban","whiteboard","diagram","sheet","poll","teams","form","doc","presentation"].indexOf(r)?"-"+r:"",a="/customize/favicon/main-favicon"+o+".png?"+e.requireConf.urlArgs,i="/customize/favicon/alt-favicon"+o+".png?"+e.requireConf.urlArgs,s="/customize/favicon/main-favicon"+o+".ico?"+e.requireConf.urlArgs,c="/customize/favicon/alt-favicon"+o+".ico?"+e.requireConf.urlArgs,u=n.document,f=t.isSupported=function(){return"function"==typeof n.Notification&&n.isSecureContext},l=t.hasPermission=function(){return"granted"===Notification.permission},d=t.getPermission=function(e){e=e||function(){},Notification&&"function"==typeof Notification.requestPermission?Notification.requestPermission((function(n){e("granted"===n)})):e(!1)},h=t.create=function(e,t,r){u&&!r?r=u.getElementById("favicon").getAttribute("data-main-favicon")||i:r||(r=i);var o=new Notification(t,{icon:r,body:e});return o.onclick=function(){if(u)try{parent.focus(),n.focus(),this.close()}catch(e){}},o};return t.system=function(e,n,t){if(f())return l()?h(e,n,t):void("denied"!==Notification.permission&&d((function(r){r&&h(e,n,t)})))},u&&!u.getElementById("favicon")&&function(){if(u){console.debug("creating favicon");var e={id:"favicon",type:"image/png",rel:"icon","data-main-favicon":a,"data-alt-favicon":i,href:a};if(!u.getElementById("favicon")){var n=u.createElement("link");Object.keys(e).forEach((function(t){n.setAttribute(t,e[t])})),u.head.appendChild(n)}if(!u.getElementById("favicon-ico")){var t=u.createElement("link");e.href=e.href.replace(/\.png/g,".ico"),e.id="favicon-ico",e.type="image/x-icon",Object.keys(e).forEach((function(n){t.setAttribute(n,e[n])})),u.head.appendChild(t)}}else console.error("document is not available in this context")}(),t.tab=function(e,r){if(u){var o="_pendingTabNotification",f=u.getElementById("favicon"),l=u.getElementById("favicon-ico"),d=a,h=i,p=s,v=c;f&&(d=f.getAttribute("data-main-favicon")||a,h=f.getAttribute("data-alt-favicon")||i,f.setAttribute("href",d)),l&&(p=l.getAttribute("data-main-favicon")||s,v=l.getAttribute("data-alt-favicon")||c,l.setAttribute("href",p));var y=function(e){return!!t[o]&&(n.clearInterval(t[o]),f&&f.setAttribute("href",e?h:d),l&&l.setAttribute("href",e?v:p),!0)};y();var m=function(){f&&f.setAttribute("href",f.getAttribute("href")===d?h:d),l&&l.setAttribute("href",l.getAttribute("href")===p?v:p),--r};return t[o]=n.setInterval((function(){if(r>0)return m();y(!0)}),e),m(),{cancel:y}}console.error("document is not available in this context")},t};e.exports&&(e.exports=n(void 0))})()}(Mn)),Mn.exports),Kn(),y(),M()))})()}(kn)),kn.exports}function Bn(){return Hn||(Hn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c,u)=>{let f=function(f,l,d,h){var p=f.version||0;c((function(){})).nThen((function(){var n,t,r,o,a;p<2&&(n="cryptpad.userlist-drawer",t="cryptpad.hide_poll_text",r="cryptpad.indentUnit",o="cryptpad.indentWithTabs",a=f.settings=f.settings||{},void 0!==f[r]&&(a.codemirror=a.codemirror||{},a.codemirror.indentUnit=f[r],delete f[r]),void 0!==f[o]&&(a.codemirror=a.codemirror||{},a.codemirror.indentWithTabs=f[o],delete f[o]),void 0!==f[n]&&(a.toolbar=a.toolbar||{},a.toolbar["userlist-drawer"]=f[n],delete f[n]),void 0!==f[t]&&(a.poll=a.poll||{},a.poll["hide-text"]=f[t],delete f[t]),e.send("Migrate-2",!0),f.version=p=2)})).nThen((function(){p<3&&(!function(){if(localStorage.CRYPTPAD_LANG){var e=localStorage.CRYPTPAD_LANG;f.settings.language=e}}(),e.send("Migrate-3",!0),f.version=p=3)})).nThen((function(){var n;p<4&&(n=f.settings=f.settings||{},void 0!==f.allowUserFeedback&&(n.general=n.general||{},n.general.allowUserFeedback=f.allowUserFeedback,delete f.allowUserFeedback),e.send("Migrate-4",!0),f.version=p=4)})).nThen((function(){p<5&&(!function(){var e=f.drive&&f.drive.filesData;if(e)for(var n in e)"number"!=typeof e[n].ctime&&(e[n].ctime=+new Date(e[n].ctime)),"number"!=typeof e[n].atime&&(e[n].atime=+new Date(e[n].atime))}(),e.send("Migrate-5",!0),f.version=p=5)})).nThen((function(t){var r,o,a,i,s;p<6&&(a=f.drive.filesData||{},i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if(r=a[e],o=n.parsePadUrl(r.href),r.href&&!r.channel){var i=n.getSecrets(o.type,o.hash,r.password);r.channel=i.channel,d(6,Math.round(100*t/s)),console.log("Adding missing channel in filesData ",r.channel)}})))}))})),i.nThen(t((function(){e.send("Migrate-6",!0),f.version=p=6}))))})).nThen((function(t){var r,o,a,i,s;p<7&&(a=f.drive.filesData,i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if((r=a[e]).href)if(-1!==r.href.indexOf("#"))if("pad"===(o=n.parsePadUrl(r.href)).hashData.type){if("view"===o.hashData.mode)r.roHref=r.href,delete r.href,console.log("Move href to roHref in filesData ",r.roHref);else{var i=n.getSecrets(o.type,o.hash,r.password),c=n.getViewHashFromKeys(i);c&&(r.roHref="/"+o.type+"/#"+c,console.log("Adding missing roHref in filesData ",r.href))}d(6,Math.round(100*t/s))}else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s))})))}))})),i.nThen(t((function(){e.send("Migrate-7",!0),f.version=p=7}))))})).nThen((function(){p<8&&(f.FS_hashes=t.deduplicateString(f.FS_hashes||[]),e.send("Migrate-8",!0),f.version=p=8)})).nThen((function(){p<9&&(!function(){var e=h.network,n={},t={store:h},o=r.createData(f),i=function(e){var t=n[e];if(t){try{t.wc.leave()}catch(e){}delete n[e]}};e.on("message",(function(r,s){try{!function(r,s){if(s===e.historyKeeper){var c=JSON.parse(r);if(!c.validateKey&&!c.owners||!c.channel){if(c.channel&&n[c.channel]){if(c.error&&"EINVAL"===c.error){var u=["GET_HISTORY",c.channel,{}];return void e.sendto(e.historyKeeper,JSON.stringify(u)).then((function(){}),(function(){}))}if(c.state&&1===c.state){o.channel=c.channel;var f=["UPDATE",o.curvePublic,+new Date,o],l=n[c.channel].encrypt(JSON.stringify(f));return n[c.channel].wc.bcast(l).then((function(){}),(function(e){console.error("Can't migrate this friend",n[c.channel].friend,e)})),void i(c.channel)}}else if(c.channel)return;var d=c[3];if(d&&n[d]){var h=n[d],p=h.decrypt(c[4]),v=JSON.parse(p);if("UPDATE"===v[0]){if(v[1]===o.curvePublic)return;var y=v[3];if(!y.notifications)return;h.friend.notifications=y.notifications,o.channel=d,a.sendTo(t,"UPDATE_DATA",o,{channel:y.notifications,curvePublic:y.curvePublic},(function(e){e&&e.error?console.error(e):console.log("friend migrated",h.friend)})),i(d)}}}}}(r,s)}catch(e){console.error(e)}}));var s=f.friends||{};Object.keys(s).forEach((function(t){if(44===t.length){var r=s[t];r.notifications||e.join(r.channel).then((function(t){var o=u.Curve.deriveKeys(r.curvePublic,f.curvePrivate),a=u.Curve.createEncryptor(o);n[r.channel]={wc:t,friend:r,decrypt:a.decrypt,encrypt:a.encrypt};var i={lastKnownHash:r.lastKnownHash},s=["GET_HISTORY",r.channel,i];e.sendto(e.historyKeeper,JSON.stringify(s)).then((function(){}),(function(e){console.error("Can't migrate this friend",r,e)}))}),(function(e){console.error("Can't migrate this friend",r,e)}))}}))}(),e.send("Migrate-9",!0),f.version=p=9)})).nThen((function(t){p<10&&function(){var s=h.proxy.todo;if(s){var u,l=t((function(){e.send("Migrate-10",!0),f.version=p=10})),d={network:h.network,initialState:"{}",metadata:{owners:h.proxy.edPublic?[h.proxy.edPublic]:[]}};c((function(e){o.get(s,e((function(n,t){if(n||!t)return e.abort(),void l();try{u=JSON.parse(t)}catch(e){}})),d)})).nThen((function(e){if(!u||"object"!=typeof u)return e.abort(),void l();var t={content:{data:{1:{id:"1",color:"color6",item:[],title:i.kanban_todo},2:{id:"2",color:"color3",item:[],title:i.kanban_working},3:{id:"3",color:"color5",item:[],title:i.kanban_done}},items:{},list:[1,2,3]},metadata:{title:i.type.todo,defaultTitle:i.type.todo,type:"kanban"}},c=4,p=!1;if((u.order||[]).forEach((function(e){var n=u.data[e];if(n&&n.task){p=!0;var r=n.state?"3":"1";t.content.data[r].item.push(c),t.content.items[c]={id:c,title:n.task},c++}})),!p)return e.abort(),void l();var v=n.createRandomHash("kanban"),y=n.getSecrets("kanban",v),m=n.getSecrets("todo",s);o.put(v,JSON.stringify(t),e((function(t){if(t)return e.abort(),void l();h.rpc&&(h.rpc.pin([y.channel],(function(){})),h.rpc.unpin([m.channel],(function(){})));var o=n.hashToHref(v,"kanban");h.manager.addPad(["root"],{title:i.type.todo,owners:d.metadata.owners,channel:y.channel,href:o,roHref:n.hashToHref(n.getViewHashFromKeys(y),"kanban"),atime:+new Date,ctime:+new Date},e((function(e){if(e)console.error(e);else{delete h.proxy.todo;var n=r.createData(f),t={store:h};a.sendTo(t,"MOVE_TODO",{user:n,href:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)}))}})))})),d)})).nThen((function(){l()}))}}()})).nThen((function(n){if(!(p>=11)){var o=function(){e.send("Migrate-11",!0),f.version=p=11};if(void 0===t.find(f,["settings","security","unsafeLinks"])){var i={store:h},s=r.createData(f);s.curvePublic?a.sendTo(i,"SAFE_LINKS_DEFAULT",{user:s},{channel:s.notifications,curvePublic:s.curvePublic},n((function(e){e&&e.error?console.error(e):o()}))):o()}else o()}})).nThen((function(){s.whenRealtimeSyncs(h.realtime,t.mkAsync(t.bake(l)))}))};return f.setCustomize=e=>{i=e.Messages},f};e.exports&&(e.exports=n(Ae(),te(),Z(),wn(),Rn(),Un(),void 0,je(),qe(),M()))})()}(On)),On.exports}var Vn,Yn={exports:{}};function Gn(){return Vn||(Vn=1,function(e){var n,t,r;e.exports&&(e.exports=(n=Rn(),t=Ue(),te(),r=je(),{anonDriveIntoUser:function(e,o,a){o&&e.loggedIn||"function"!=typeof a?n.get(o,(function(n,i){var s;if(n)console.error("Cannot migrate recent pads",n);else if(i){try{s=JSON.parse(i)}catch(e){return"function"==typeof a&&a(),void console.error("Cannot parsed recent pads",e)}if(s){var c=e.proxy,u=t.init(s.drive,{readOnly:!1,loggedIn:!0,outer:!0}),f=function(){u.fixFiles(!0);var n=e.manager;u.getFiles([u.FILES_DATA]).forEach((function(e){var t=u.getFileData(e),r=t.channel,o=n.findChannel(r);if(0===o.length)t&&n.addPad(null,t,(function(e){e&&console.error("Cannot import file:",t,e)}));else{if(!t.href)return;o.forEach((function(e){e.data&&!e.data.href&&e.userObject.setHref(r,null,t.href)}))}})),c.FS_hashes&&Array.isArray(c.FS_hashes)||(c.FS_hashes=[]),-1===c.FS_hashes.indexOf(o)&&c.FS_hashes.push(o),"function"==typeof a&&r.whenRealtimeSyncs(e.realtime,a)};u&&"function"==typeof u.migrate?u.migrate(f):(console.log("oldFo.migrate is not a function"),f())}else"function"==typeof a&&a()}else"function"==typeof a&&a()})):a()}}))}(Yn)),Yn.exports}var Jn=o(be);const qn=ie.mkEvent(!0),Wn=ie.mkEvent(!0),zn=ie.mkEvent(),Qn=ie.mkEvent(),Zn={init:e=>{var n;const{broadcast:t,store:r,account:o}=e,a=r.drive=r.drive||{};let i=null===(n=r.proxy)||void 0===n?void 0:n.drive;if((null==i?void 0:i.hash)||ae.createRandomHash("drive"),!i.hash)return a.proxy=i,o.onAccountCacheReady((()=>{qn.fire()})),o.onAccountReady((()=>{Wn.fire()})),{channel:"",onDriveCacheReady:qn.reg,onDriveReady:Wn.reg,onDisconnect:zn.reg,onReconnect:Qn.reg};throw new Error("NOT IMPLEMENTED")}};var Xn,$n=o(Object.freeze({__proto__:null,Drive:Zn})),et={exports:{}};function nt(){return Xn||(Xn=1,function(e){(()=>{const n=(e,n,t={},r={},o)=>{var a={setCustomize:e=>{t=e.Messages,r=e.AppConfig}},i=function(e,n){n.degraded||n.clients.forEach((function(t){var r=e.clients[t];if(r){var o={id:r.id,cursor:r.cursor};n.sendMsg(JSON.stringify(o))}}))},s=function(e,n,t){var o=n.members,a=r.degradedLimit||8;t.degraded=o.length-1>=a,e.emit("DEGRADED",{degraded:t.degraded},t.clients)},c=function(e,n,t,r){var a=n.channel,c=n.secret;c.keys.cryptKey&&(c.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=(e={},n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:n=>{e=n.ApiConfig}},d=s.Nacl,h=function(e,n,t,r){let o=Object.keys(e.clients).filter((t=>Boolean(e.clients[t].admin)===n));o.length&&e.emit(t,{channel:r},[o])},p=function(t,r,o,a){var i=n.mkAsync(a);if(r&&!t.adminRdyEvt)return void i("EFORBIDDEN");let s=e.httpUnsafeOrigin;n.fetchApi(s,"config",!0,(e=>{t.moderatorKeys=e.moderatorKeys,t.adminKeys=e.adminKeys;var a=e.supportMailboxKey;if(a){if(!r||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePublic"])===a)return r?t.adminRdyEvt.reg((()=>{i(null,{supportKey:a,myCurve:o.adminCurvePrivate||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePrivate"]),theirPublic:o.curvePublic,notifKey:o.curvePublic})})):void i(null,{supportKey:a,myCurve:t.store.proxy.curvePrivate,theirPublic:o.curvePublic||a,notifKey:a});i("EFORBIDDEN")}else i("E_NOT_INIT")}))},v=function(e,t,r,o){var a,c,u=n.once(n.mkAsync(o));i((n=>{p(e,r,t,n(((e,t)=>{if(e)return n.abort(),void u({error:e});a=t.theirPublic,c=t.myCurve})))})).nThen((()=>{var r,o=s.Curve.deriveKeys(a,c),i=s.Curve.createEncryptor(o),l={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:i,owners:[]},d=[];u=n.both((function(){r&&"function"==typeof r.stop&&r.stop()}),u),l.onMessage=function(e,n,t,r,o,a,i){var s=i&&i.time;try{e=JSON.parse(e)}catch(e){return void console.error(e)}e.time=s,a&&(e.author=a),d.push(e)},l.onError=u,l.onChannelError=u,l.onReady=function(){u(null,d)},r=f.start(l)}))},y=function(e,r,o,a){var c=n.find(e,["store","mailbox"]),u=n.find(e,["store","anon_rpc"]);if(c)if(u){var f,l,d,h=r.channel,v=r.title,y=r.ticket,m=+new Date;i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a({error:e});f=t.supportKey,l=t.theirPublic,d=t.myCurve})))})).nThen((e=>{var n=s.Curve.deriveKeys(l,d),t=s.Curve.createEncryptor(n),r=JSON.stringify(y),o=t.encrypt(r);u.send("WRITE_PRIVATE_MESSAGE",[h,o],e(((n,t)=>{if(n)return e.abort(),void a({error:n});m=t&&t[0]})))})).nThen((n=>{if(o){var t=e.adminDoc.proxy.tickets.active;if(t[h])return n.abort(),void a({error:"EEXISTS"});t[h]={title:y.title,restored:y.legacy,premium:!1,time:m,author:r.name,supportKey:f,lastAdmin:!0,authorKey:r.curvePublic,notifications:r.notifications}}})).nThen((n=>{o||(e.supportData[h]={time:+new Date,title:v,curvePublic:f},e.Store.onSync(null,n()))})).nThen((()=>{var i=o?r.notifications:t.getChannelIdFromKey(f);c.sendTo("NEW_TICKET",{title:v,channel:h,time:m,isAdmin:o,supportKey:f,premium:o?"":n.find(e,["store","account","plan"]),user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(n=>{console.error(n),n&&n.error&&delete e.supportData[h],a(n)})),c.sendTo("NOTIF_TICKET",{title:v,channel:h,time:m,isAdmin:o,isNewTicket:!0,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(()=>{}))}))}else a({error:"anonymous rpc session not ready"});else a({error:"E_NOT_READY"})},m=function(e,r,o,a){var c,u,f,l,d=n.find(e,["store","mailbox"]),h=n.find(e,["store","anon_rpc"]);d?h?r?.ticket?i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a(e);c=t.theirPublic,u=t.myCurve,f=t.notifKey})))})).nThen((e=>{var n=s.Curve.deriveKeys(c,u),t=s.Curve.createEncryptor(n),o=JSON.stringify(r.ticket),i=t.encrypt(o);h.send("WRITE_PRIVATE_MESSAGE",[r.channel,i],e(((n,t)=>{if(n)return e.abort(),void a(n);l=t&&t[0],a(void 0,l)})))})).nThen((()=>{var e=o?r.notifChannel:t.getChannelIdFromKey(f);e&&d.sendTo("NOTIF_TICKET",{isAdmin:o,title:r.ticket.title,isClose:r.ticket.close,channel:r.channel,time:l,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:e,curvePublic:f},(()=>{}))})):a("E_NO_DATA"):a("anonymous rpc session not ready"):a("E_NOT_READY")},g=function(e,r,o){var a=t.getSecrets("support",r),i={data:{},channel:a.channel,crypto:s.createEncryptor(a.keys),userName:"support",ChainPad:u,classic:!0,network:e.store.network,metadata:{validateKey:a.keys.validateKey||void 0}},f=e.adminDoc=c.create(i);f.proxy.on("ready",(function(){var r=f.proxy;if(r.tickets=r.tickets||{},r.tickets.active=r.tickets.active||{},r.tickets.closed=r.tickets.closed||{},r.tickets.pending=r.tickets.pending||{},e.adminRdyEvt.fire(),o(),!e.supportRpc)return;let a=function(e){if(!e.adminDoc||!e.supportRpc)return;let t=e.adminDoc.metadata&&e.adminDoc.metadata.channel,r=e.adminDoc.proxy.tickets,o=[t,...Object.keys(r.active),...Object.keys(r.pending),...Object.keys(r.closed)];return n.deduplicateString(o).sort()}(e),i=t.hashChannelList(a);e.supportRpc.getServerHash((function(n,t){n?console.warn(n):t!==i&&e.supportRpc.reset(a,(function(e){e&&console.warn(e)}))}))})),f.proxy.on("change",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")})),f.proxy.on("remove",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")}))},E=function(e,r,a){let s=a(),c=e.store.proxy,u=n.find(c,["mailboxes","supportteam","keys","curvePublic"]),f=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]);r||(e.adminRdyEvt=n.mkEvent(!0)),i((n=>{p(e,!1,{},n(((t,r)=>{if(setTimeout(s),t)n.abort();else if(r.theirPublic!==u){try{delete c.mailboxes.supportteam,e.store.mailbox.close("supportteam")}catch(e){}return delete e.adminRdyEvt,void n.abort()}})))})).nThen((t=>{!function(e,t){let r,a,i=n.mkAsync(t),s=e.store.proxy,c=n.find(s,["mailboxes","supportteam","keys","curvePrivate"]);if(c){try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(c));r=n.encodeBase64(e.secretKey),a=n.encodeBase64(e.publicKey)}catch(e){return void i(e)}o.create(e.store.network,{edPublic:a,edPrivate:r},((n,t)=>{n?i(n):(console.log("Support RPC ready, public key is ",a),e.supportRpc=t,i())}))}else i("EFORBIDDEN")}(e,t((e=>{e&&console.error("Support RPC not ready",e)})))})).nThen((n=>{let r=f.slice(0,24),o=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:r}});g(e,o,n())})).nThen((()=>{console.log("Support admin loaded")}))};var b=function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);i?e.store.mailbox.open("supportadmin",i,(function(t){e.store.mailbox.close("supportadmin",(function(){}));let r=n.clone(t||{}),a=[];Object.keys(r).forEach((n=>{let t=r[n];if("CLOSE"===t.type)return void(a.includes(t.content.id)||a.push(t.content.id));let o=t.author,i=t.content&&t.content.title;((e,n,t)=>{let r=e.adminDoc.proxy;return["active","pending","closed"].some((e=>{let o=r.tickets[e];return Object.keys(o).some((e=>{let r=o[e];return r.authorKey===n&&r.title===t&&r.restored}))}))})(e,o,i)&&(a.includes(t.content.id)||a.push(t.content.id))})),Object.keys(r).forEach((e=>{let n=r[e];n.content&&a.includes(n.content.id)&&delete r[e]})),o(r)}),!0,{dump:!0}):o({error:"ENOENT"})};let O=(e,t,r,o)=>{let a;try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(r));a=n.encodeBase64(e.publicKey)}catch(e){return void o(e)}e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",[t,a]]},o)},A=(e,n,t,r)=>{e.Store.adminRpc(null,{cmd:"GET_MODERATORS",data:{}},r)};return l.init=function(o,s,c){var u={};if(o.store&&o.store.modules&&o.store.modules.support)return o.store.modules.support;var f=o.store,l=f.proxy.support=f.proxy.support||{},g={moderatorKeys:e.moderatorKeys,adminKeys:e.adminKeys,supportData:l,store:o.store,Store:o.Store,emit:c,clients:{}};return n.find(f,["proxy","mailboxes","supportteam"])&&E(g,!1,s),u.ctx=g,u.removeClient=function(e){delete g.clients[e]},u.leavePad=function(){},u.addAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let o;i((r=>{p(e,!0,n,r(((e,n)=>{if(e)return r.abort(),void t(!0);o=n.supportKey})))})).nThen((()=>{var a=Math.floor(2e3*Math.random());setTimeout((()=>{var a=e.adminDoc.proxy;a.tickets.active[n.channel]||a.tickets.closed[n.channel]||a.tickets.pending[n.channel]?t(!0):(a.tickets.active[n.channel]={title:n.title,premium:n.premium,time:n.time,author:n.user&&n.user.displayName,supportKey:n.supportKey||o,authorKey:n.user&&n.user.curvePublic},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){t(!0)})),h(e,!0,"NEW_TICKET",n.channel),e.supportRpc&&e.supportRpc.pin([n.channel],(()=>{})))}),a)}))})):t(!0)}(g,e,n)},u.updateAdminTicket=function(e){!function(e,n){e.adminRdyEvt&&e.adminRdyEvt.reg((()=>{var t=Math.floor(2e3*Math.random());setTimeout((()=>{var t=e.adminDoc.proxy;let r=t.tickets.active[n.channel]||t.tickets.pending[n.channel];r&&(n.time<=r.time||(n.isClose&&(t.tickets.closed[n.channel]=r,delete t.tickets.active[n.channel],delete t.tickets.pending[n.channel]),r.time=n.time,r.lastAdmin=!1,h(e,!0,"UPDATE_TICKET",n.channel)))}),t)}))}(g,e)},u.updateAdminKey=function(e,r){((e,r,o)=>{let a=r.supportKey,s=t.getBoxPublicFromSecret(a),c=e.store.proxy;const u=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]),f=n.find(c,["mailboxes","supportteam","keys","curvePublic"]);p(e,!1,{},((t,r)=>{if(t)return void o(!0);if(s!==r.theirPublic)return void o(!0);if(u===a||f===s)return void o(!0);let c=n.find(e,["store","mailbox"]);try{e.adminDoc&&e.adminDoc.stop(),c&&c.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)}catch(e){console.error(e)}e.Store.addAdminMailbox(null,{version:2,priv:a},(n=>{n&&n.error?o(!0):i((n=>{E(e,!0,n),e.adminRdyEvt.reg((()=>{h(e,!0,"UPDATE_RIGHTS"),o(!1)}))}))}))}))})(g,e,r)},u.checkAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy,o=r.tickets.active[n.channel]||r.tickets.pending[n.channel];t(o)})):t(!0)}(g,e,n)},u.addUserTicket=function(e,n){!function(e,n,t){if(!e.supportData)return void t(!0);let r=n.channel;e.supportData[r]={time:n.time,title:n.title,curvePublic:n.supportKey},e.Store.onSync(null,(function(){t(!0)}))}(g,e,n)},u.updateUserTicket=function(e){!function(e,n){if(h(e,!1,"UPDATE_TICKET",n.channel),n.isClose){let t=e.supportData[n.channel];if(!t)return;t.closed=!0}}(g,e)},u.execCommand=function(e,o,s){var c=o.cmd,u=o.data;"MAKE_TICKET"!==c?"GET_MY_TICKETS"!==c?"REPLY_TICKET"!==c?"CLOSE_TICKET"!==c?"DELETE_TICKET"!==c?"MAKE_TICKET_ADMIN"!==c?"LIST_TICKETS_ADMIN"!==c?"LOAD_TICKET_ADMIN"!==c?"REPLY_TICKET_ADMIN"!==c?"CLOSE_TICKET_ADMIN"!==c?"MOVE_TICKET_ADMIN"!==c?"GET_RECORDED"!==c?"SET_RECORDED"!==c?"USE_RECORDED"!==c?"SEARCH_ADMIN"!==c?"FILTER_TAGS_ADMIN"!==c?"SET_TAGS_ADMIN"!==c?"GET_LEGACY"!==c?"DUMP_LEGACY"!==c?"CLEAR_LEGACY"!==c?"RESTORE_LEGACY"!==c?"GET_PRIVATE_KEY"!==c?"DISABLE_SUPPORT"!==c?"ROTATE_KEYS"!==c?"ADD_MODERATOR"!==c?s({error:"NOT_SUPPORTED"}):function(e,t,r,o){let a=e.store.proxy;var i=n.find(e,["store","mailbox"]);let s=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),c=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]),u=n.find(a,["mailboxes","supportteam","lastKnownHash"]),f=a.edPublic;p(e,!1,{},((n,r)=>{n?o({error:n}):r.theirPublic===s&&e.moderatorKeys.includes(f)?i.sendTo("ADD_MODERATOR",{supportKey:c,lastKnownHash:u},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{o()})):o({error:"EFORBIDDEN"})}))}(g,u,0,s):function(e,r,o,s){let c,u=n.once(n.mkAsync(s)),f=e.store.proxy,l=f.edPublic;const h=d.box.keyPair(),v=n.encodeBase64(h.publicKey),y=n.encodeBase64(h.secretKey),m=n.find(f,["mailboxes","supportteam","keys","curvePrivate"]),g=n.find(f,["mailboxes","supportteam","keys","curvePublic"]);if(!y||!v)return void u({error:"INVALID_KEY"});let b;i((n=>{p(e,!1,{},n(((e,t)=>{if("E_NOT_INIT"!==e)return e?(u({error:e}),void n.abort()):void(c=t.theirPublic)})))})).nThen((n=>{if(!e.adminKeys.includes(l))return n.abort(),void u({error:"EFORBIDDEN"})})).nThen((n=>{if(c)return e.moderatorKeys.includes(l)?g!==c?(n.abort(),void u({error:"EFORBIDDEN"})):void 0:(n.abort(),void u({error:"EINVAL"}))})).nThen((n=>{c&&e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;b=e.adminDoc.metadata&&e.adminDoc.metadata.channel;let o=y.slice(0,24),i=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:o}}),s={network:e.store.network,initialState:"{}"};(r.oldKeys=r.oldKeys||{})[g]={curvePrivate:m,rotatedOn:+new Date,rotatedBy:l},a.put(i,JSON.stringify(r),n((e=>{if(e)return n.abort(),void u({error:e})})),s)}))})).nThen((n=>{O(e,v,y,n((e=>{if(e&&e.error)return n.abort(),void u(e)})))})).nThen((()=>{if(!c)return;e.adminDoc&&e.adminDoc.stop();let t=n.find(e,["store","mailbox"]);t&&t.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)})).nThen((n=>{e.Store.addAdminMailbox(null,{version:2,priv:y},n((t=>{if(t&&t.error)return n.abort(),c?O(e,g,m,(()=>{u(t)})):void u(t)})))})).nThen((t=>{if(!c)return;let r=n.find(e,["store","mailbox"]);A(e,0,0,t((e=>{if(e&&e.error)return void u({success:!0,noNotify:!0});let n=e&&e[0];Object.keys(n||{}).forEach((e=>{let t=n[e];r.sendTo("MODERATOR_NEW_KEY",{supportKey:y},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{}))}))})))})).nThen((n=>{E(e,!0,n)})).nThen((n=>{b&&e.Store.adminRpc(null,{cmd:"ARCHIVE_DOCUMENT",data:{id:b,reason:"Deprecated support pad"}},n())})).nThen((()=>{u({success:!0})}))}(g,0,0,s):function(e,t,r,o){let a,s=n.once(n.mkAsync(o)),c=e.store.proxy.edPublic;i((n=>{p(e,!1,{},n((e=>{if(e)return s({error:e}),void n.abort()})))})).nThen((n=>{if(!e.adminKeys.includes(c))return n.abort(),void s({error:"EFORBIDDEN"})})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ARCHIVE_SUPPORT",data:{}},n((e=>{if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",["",""]]},n((function(e){if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{A(e,0,0,n((e=>{if(!e||e.error)return n.abort(),void s();a=e[0]||{}})))})).nThen((()=>{let n=i;Object.keys(a).forEach((t=>{n=n((n=>{e.Store.adminRpc(null,{cmd:"REMOVE_MODERATOR",data:t},n((e=>{e&&e.error&&console.error("Error removing moderator data",t,e.error)})))})).nThen})),n((()=>{s()}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),s=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]);p(e,!1,{},((e,n)=>{e?o({error:e}):(i&&n.theirPublic!==i&&(s=void 0),o({curvePrivate:s,curvePublic:n.theirPublic}))}))}(g,0,0,s):function(e,r,o,a){let i=e.store.proxy,s=n.find(i,["mailboxes","supportadmin"]);if(!s)return void a({error:"ENOENT"});if(!e.adminRdyEvt)return void a({error:"EFORBIDDEN"});let c=r.messages,u=r.hashes,f=c[0],l=c[c.length-1];f?e.adminRdyEvt.reg((()=>{let r={name:n.find(f,["sender","name"]),notifications:n.find(f,["sender","notifications"]),curvePublic:n.find(f,["sender","curvePublic"]),channel:t.createChannelId(),title:f.title,time:l.time,ticket:{legacy:!0,title:f.title,sender:f.sender,messages:c}};y(e,r,!0,(n=>{n&&n.error?a(n):(u.forEach((e=>{s.viewed.push(e)})),e.Store.onSync(null,(function(){a({done:!0})})))}))})):a({error:"EINVAL"})}(g,u,0,s):function(e,n,t,r){let o=e.store.proxy;e.store.mailbox.close("supportadmin",(function(){delete o.mailboxes.supportadmin,e.Store.onSync(null,(function(){r({done:!0})}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);if(!i)return void o({error:"ENOENT"});let s=n.clone(i);s.lastKnownHash=void 0,s.viewed=[],e.store.mailbox.open("supportadmin",s,(function(n){e.store.mailbox.close("supportadmin",(function(){})),o(n)}),!0,{dump:!0})}(g,0,0,s):b(g,0,0,s):((e,n,t,o)=>{e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,a=n.channel;(t.active[a]||t.pending[a]||t.closed[a]).tags=n.tags||[],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){let e=[];["active","pending","closed"].forEach((n=>{let r=t[n];Object.keys(r).forEach((n=>{(r[n].tags||[]).forEach((n=>{e.includes(n)||e.push(n)}))}))})),o({done:!0,allTags:e})}))})):o({error:"EFORBIDDEN"})})(g,u,0,s):((e,n,t,r)=>{if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.tags||[];e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy.tickets;if(!o.length)return void r({all:!0});let t=[];["active","pending","closed"].forEach((e=>{let r=n[e];Object.keys(r).forEach((e=>{(r[e].tags||[]).some((e=>o.includes(e)))||t.push(e)}))})),r({tickets:t})}))})(g,u,0,s):((e,t,r,o)=>{if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=t.tags||[],i=(t.text||"").toLowerCase();e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,r={},s=(e,t,o)=>{let a=n.clone(t);a.category=o,r[e]=a};["active","pending","closed"].some((e=>{let o=t[e];return Object.keys(o).some((t=>{let c=o[t];if(a.length&&!(c.tags||[]).some((e=>a.includes(e))))return;let u=n.hexToBase64(t).slice(0,10);if(i===u)return r={},s(t,c,e),!0;(!i||c.title.toLowerCase().includes(i))&&s(t,c,e)}))})),o({tickets:r})}))})(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.id;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=(n.recorded=n.recorded||{})[o];t&&(t.count=(t.count||0)+1),r()}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.id,i=n.content,s=Boolean(n.remove);e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.recorded=n.recorded||{};s?delete t[a]:t[a]={content:i,count:0},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({done:!0})}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy,r=t.recorded=t.recorded||{};o({messages:n.clone(r)})})):o({error:"EFORBIDDEN"})}(g,0,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.channel,i=n.from,s=n.to;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.tickets[i],c=n.tickets[s];if(!i||!s)return void o({error:"EINVAL"});let u=t[a];u&&!c[a]?(c[a]=u,delete t[a],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({moved:!0})}))):o({error:"CANT_MOVE"})}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[a]&&(n.adminCurvePrivate=t.oldKeys[a].curvePrivate),m(e,n,!0,(t=>{if(t)o({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=+new Date,i.lastAdmin=!0,a.tickets.closed[n.channel]=i,delete a.tickets.active[n.channel],delete a.tickets.pending[n.channel],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({closed:!0})}))}}))}))}(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[o]&&(n.adminCurvePrivate=t.oldKeys[o].curvePrivate),m(e,n,!0,((t,o)=>{if(t)r({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=o,i.lastAdmin=!0,r({sent:!0})}}))}))}(g,u,0,s):function(e,t,r,o){let a=t.supportKey;e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;r.oldKeys&&r.oldKeys[a]&&(t.adminCurvePrivate=r.oldKeys[a].curvePrivate),v(e,t,!0,(function(r,a){if(r)return void o({error:r});var i=e.adminDoc.proxy;if(!Array.isArray(a)||!a.length)return void o(a);a.sort(((e,n)=>e.time-n.time));let s=a[a.length-1],c=a.some((e=>{let r=n.find(e,["sender","curvePublic"]);if(t.curvePublic===r)return n.find(e,["sender","quota","plan"])}));var u=i.tickets.active[t.channel];u&&(s.legacy&&(s=Array.isArray(s.messages)&&s.messages[s.messages.length-1]),u.time=s.time,u.premium=c,s.sender&&(u.lastAdmin=!s.sender.blockLocation),s.close&&(i.tickets.closed[t.channel]=u,delete i.tickets.active[t.channel],h(e,!0,"UPDATE_TICKET",t.channel))),o(a)}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?(e.clients[r]||(e.clients[r]={admin:!0}),e.adminRdyEvt.reg((()=>{var r=e.adminDoc.proxy;return"pending"===t.type?o(n.clone(r.tickets.pending)):"closed"===t.type?o(n.clone(r.tickets.closed)):void o(n.clone(r.tickets.active))}))):o({error:"EFORBIDDEN"})}(g,u,e,s):function(e,n,t,r){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{y(e,n,!0,r)})):r({error:"EFORBIDDEN"})}(g,u,0,s):function(e,n,t,r){let o=e.supportData,a=n.channel;o[a]&&o[a].closed?(delete o[a],r({deleted:!0})):r({error:"ENOTCLOSED"})}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{closed:!0})}))}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{sent:!0})}))}(g,u,0,s):function(e,t,r,o){var a=[],s=i;e.clients[r]||(e.clients[r]={admin:!1}),Object.keys(e.supportData).forEach((function(t){s=s((r=>{var o=n.clone(e.supportData[t]);v(e,{channel:t,curvePublic:o.curvePublic},!1,r(((n,r)=>{if(n){if("EDELETED"===n.type)return void delete e.supportData[t];o.error=n}else o.messages=r,r.length&&r[r.length-1].close&&(e.supportData[t].closed=!0,o.closed=!0);o.id=t,a.push(o)})))})).nThen})),s((()=>{a.sort(((e,n)=>e.closed&&n.closed?e.time-n.time:e.closed?1:n.closed?-1:e.time-n.time)),o({tickets:a})}))}(g,0,e,s):function(e,n,t,r){y(e,n,!1,r)}(g,u,0,s)},u},l};e.exports&&(e.exports=n(void 0,Z(),te(),je(),Cn(),Rn(),qe(),M(),g(),w(),y()))})()}(rt)),rt.exports}var at,it={exports:{}};function st(){return at||(at=1,function(e){(()=>{const n=e=>{var n={},t=function(n,t,r,o){var a=t.channel,i=t.secret;i.keys.cryptKey&&(i.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=()=>{var e={},n=function(e,n,t){var r=e.clients[n];if(r){var o=e.channels[r.channel];o?(t(),o.history.forEach((function(t){e.emit("MESSAGE",{msg:t,validateKey:o.validateKey},[n])})),e.emit("HISTORY_SYNCED",{},[n])):t({error:"ENOCHAN"})}else t({error:"ENOENT"})};return e.init=function(e,t){var r={},o={store:e,emit:t,channels:{},clients:{}};return r.removeClient=function(e){!function(e,n){var t,r=function(e){return e!==n};for(var o in e.channels)(t=e.channels[o]).clients=t.clients.filter(r),0===t.clients.length&&(t.wc&&t.wc.leave(),delete e.channels[o]);if(e.clients[n]){var a=e.clients[n].channel,i=e.channels[a];i&&e.emit("LEAVE",{id:n},[i.clients[0]]),delete e.clients[n]}}(o,e)},r.leavePad=function(e){!function(e,n){Object.keys(e.channels).some((function(t){var r=e.channels[t];if(r.padChan===n)return r.wc&&r.wc.leave(),delete e.channels[t],!0}))}(o,e)},r.execCommand=function(e,t,r){var a=t.cmd,i=t.data;"SEND_MESSAGE"!==a?"UPDATE_HASH"!==a?"OPEN_CHANNEL"!==a?"GET_HISTORY"!==a?"REENCRYPT"!==a||function(e,n,t,r){var o=n.channel,a=e.store.network,i=function(e){var t=a.historyKeeper,o={metadata:n.metadata},i=["GET_HISTORY",e.id,o];a.sendto(t,JSON.stringify(i)),n.msgs.forEach((function(n){e.bcast(n)})),e.leave(),r()};e.store.anon_rpc.send("IS_NEW_CHANNEL",o,(function(e,n){var t;e?r({error:e}):(n&&n.length&&"object"==typeof n[0]?t=n[0].isNew:r({error:"INVALID_RESPONSE"}),t?a.join(o).then(i,(function(e){r({error:e})})):r({error:"EEXISTS"}))}))}(o,i,0,r):n(o,e,r):function(e,t,r,o){var a=t.channel,i=t.padChan,s=e.store.network,c=!0,u=e.clients[r];if(u)o();else{u=e.clients[r]={channel:a};var f=e.channels[a];if(f)return u.id||(u.id=f.wc.myID+"-"+r),n(e,r,(function(){e.emit("READY",f.clients,[r])})),f.clients.push(r),void o();var l=Math.floor(1e6*Math.random()),d=function(n){e.channels[a]=e.channels[a]||{history:[],validateKey:t.validateKey},(f=e.channels[a]).padChan=i,u.id||(u.id=n.myID+"-"+r),f.clients&&f.clients.forEach((function(t){e.clients[t]&&(e.clients[t].id=n.myID+"-"+t)})),n.on("join",(function(){})),n.on("leave",(function(){})),n.on("message",(function(n){f.history.push(n),e.emit("MESSAGE",{msg:n,validateKey:f.validateKey},f.clients)})),f.wc=n,f.sendMsg=function(e,t){t=t||function(){};var r=e.slice(0,64);n.bcast(e).then((function(){f.history.push(e),f.lastKnownHash=r,t()}),(function(e){t({error:e})}))},c&&(f.clients=[r],f.lastCpHash=t.lastCpHash,c=!1,o());var d=s.historyKeeper,h={txid:l,lastKnownHash:f.lastKnownHash||f.lastCpHash,metadata:{validateKey:t.validateKey,owners:t.owners,expire:t.expire}},p=["GET_HISTORY",n.id,h];d&&s.sendto(d,JSON.stringify(p)).then((function(){}),(function(e){console.error(e)}))};s.on("message",(function(n,t){if(e.channels[a]&&t===s.historyKeeper){var r;try{r=JSON.parse(n)}catch(e){}if(r&&!(r.txid&&r.txid!==l||r.channel&&r.channel!==a))if(r.validateKey&&r.channel)f.validateKey||(f.validateKey=r.validateKey);else if(r.state&&1===r.state&&r.channel)e.emit("READY",f.clients,f.clients);else if(!(r.error&&r.channel||Array.isArray(r)&&r[0]&&r[0]!==l||(n=r[4],r[3]!==a))){var o=n.slice(0,64);o!==f.lastKnownHash&&o!==f.lastCpHash&&(f.lastKnownHash=o,e.emit("MESSAGE",{msg:n},f.clients),f.history.push(n))}}})),s.join(a).then(d,(function(e){o({error:e})})),s.on("reconnect",(function(){e.channels[a]&&s.join(a).then(d,(function(e){console.error(e)}))}))}}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=n,s=-1;a.history.some((function(e,n){if(e.slice(0,64)===i)return s=n+1,!0})),-1!==s&&(a.history=a.history.slice(s)),r()}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=function(o){o&&o.error?r(o):(e.emit("MESSAGE",{msg:n.msg},a.clients.filter((function(e){return e!==t}))),r())};n.isCp?a.sendMsg(n.isCp,i):a.sendMsg(n.msg,i)}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r)},r},e};e.exports&&(e.exports=n())})()}(ut)),ut.exports}var lt,dt={exports:{}};function ht(){return lt||(lt=1,function(e){(()=>{const n=(e,n,t,r,o,a,i)=>{var s={};return s.init=function(s,c,u){var f={},l=s.store;if(l.loggedIn&&l.proxy.edPublic){var d={Store:s.Store,store:l,pinPads:s.pinPads,updateMetadata:s.updateMetadata,emit:u,onReadyHandlers:[],clients:[]};return d.profile=l.proxy.profile=l.proxy.profile||{},function(e,t){var r=e.profile;if(r.edit&&r.view)setTimeout(t);else{var o=n.createRandomHash("profile"),a=n.getSecrets("profile",o);e.pinPads([a.channel],(function(e){e.error?t(e.error):(r.edit=n.getEditHashFromKeys(a),r.view=n.getViewHashFromKeys(a),setTimeout(t))}))}}(d,c((function(r){r||function(r){var s=r.profile,c=n.getSecrets("profile",s.edit),u=a.createEncryptor(c.keys),f={data:{},network:r.store.network,channel:c.channel,crypto:u,owners:[r.store.proxy.edPublic],ChainPad:i,validateKey:c.keys.validateKey||void 0,userName:"profile",classic:!0},l=o.create(f);l.proxy.on("create",(function(){})).on("ready",(function(){l.proxy.name=r.store.proxy[t.displayNameKey]||"",r.listmap=l,l.proxy.curvePublic||(l.proxy.curvePublic=r.store.proxy.curvePublic),l.proxy.notifications||(l.proxy.notifications=e.find(r.store.proxy,["mailboxes","notifications","channel"])),l.proxy.edPublic||(l.proxy.edPublic=r.store.proxy.edPublic),r.onReadyHandlers.length&&(r.onReadyHandlers.forEach((function(e){try{e(l.proxy)}catch(e){console.error(e)}})),r.onReadyHandlers=[])})).on("change",[],(function(){r.emit("UPDATE",l.proxy,r.clients)}))}(d)}))),f.setName=function(e){!function(e,n){e.listmap.proxy.name=n,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.listmap&&e.emit("UPDATE",e.listmap.proxy,e.clients)}))}(d,e)},f.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1)}(d,e)},f.update=function(){d.listmap&&d.emit("UPDATE",d.listmap.proxy,d.clients)},f.execCommand=function(e,n,t){console.log(n);var o=n.cmd,a=n.data;"SUBSCRIBE"!==o?"SET"!==o||function(e,n,t,o){var a=n.key,i=n.value;a&&(e.listmap.proxy[a]=i,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.emit("UPDATE",e.listmap.proxy,e.clients.filter((function(e){return e!==t}))),"badge"===a&&e.Store.set(null,{key:["profile","badge"],value:i||void 0},(()=>{})),o(e.listmap.proxy)})))}(d,a,e,t):function(e,n,t,r){-1===e.clients.indexOf(t)&&e.clients.push(t),e.listmap?r(e.listmap.proxy):e.onReadyHandlers.push((function(e){r(e)}))}(d,0,e,t)},f}},s};e.exports&&(e.exports=n(Z(),te(),Y(),je(),g(),M(),w()))})()}(dt)),dt.exports}var pt,vt={exports:{}},yt={exports:{}};function mt(){return pt||(pt=1,function(e){e.exports&&(e.exports=function(e,n,t,r,o,a){var i={},s=function(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))},c=function(e){return e.slice(0,64)},u=function(n,t){var r=e.find(t,[n,"role"]);return-1!==["OWNER","ADMIN"].indexOf(r)},f=function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&!!function(e){return-1!==["OWNER","ADMIN","MEMBER","VIEWER"].indexOf(e)}(t)&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))},l=function(e){return"string"==typeof e&&44===e.length},d=i.commands={};d.ADD=function(e,n,t){if(!s(e))throw new Error("INVALID ARGS");if(!t.internal.initialized)throw new Error("UNITIALIZED");if(void 0===t.state.members)throw new Error("CANNOT_ADD_TO_UNITIALIZED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ALREADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="MEMBER"),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if("string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.RM=function(n,t,r){if(!Array.isArray(n))throw new Error("INVALID_ARGS");if(void 0===r.state.members)throw new Error("CANNOT_RM_FROM_UNITIALIZED_ROSTER");var o=r.state.members;n.forEach((function(n){if(!l(n))throw new Error("INVALID_CURVE_KEY");if(n!==t){var r=o[n].role;if(!function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))}(t,r,o))throw new Error("INSUFFICIENT_PERMISSIONS")}}));var a=!1;return n.forEach((function(e){o[e]&&(a=!0,delete o[e])})),a},d.DESCRIBE=function(n,t,o){if(!n||"object"!=typeof n||Array.isArray(n))throw new Error("INVALID_ARGUMENTS");if(void 0===o.state.members)throw new Error("NOT_READY");var a=o.state.members;Object.keys(n).forEach((function(r){if(!l(r))throw new Error("INVALID_ID");if(!a[r])throw new Error("NOT_PRESENT");if(!function(n,t,r){if(!r[t])return!1;if(n===t&&r[t])return!0;var o=e.find(r,[n,"role"]),a=e.find(r,[t,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&"OWNER"!==a)}(t,r,a))throw new Error("INSUFFICIENT_PERMISSIONS");var o=n[r];if(!s(o))throw new Error("INVALID_ARGUMENTS");var i=e.clone(a[r]);if("string"==typeof o.role&&!function(n,t,r,o){return!(n!==t||!o[t])&&("MEMBER"===e.find(o,[n,"role"])?"VIEWER"===r:void 0)}(t,r,o.role,a)&&!f(t,o.role,a))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof i.displayName&&"string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.displayName))throw new Error("INVALID_DISPLAYNAME");if("string"!=typeof i.notifications&&"string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.notifications))throw new Error("INVALID_NOTIFICATIONS")}));var i=!1;return Object.keys(n).forEach((function(t){var o=e.clone(a[t]),s=n[t];Object.keys(s).forEach((function(e){void 0===o[e]||null!==s[e]?o[e]=s[e]:delete o[e]})),r(o)!==r(a[t])&&(i=!0,a[t]=o)})),i},d.CHECKPOINT=function(e,n,t){if(!s(e))throw new Error("INVALID_CHECKPOINT_STATE");if(!t.internal.initialized){t.state=e;var o=t.state.metadata=t.state.metadata||{};return o.topic=o.topic||"",o.name=o.name||"",o.avatar=o.avatar||"",t.internal.initialized=!0,!0}if(r(e)!==r(t.state))throw new Error("CHECKPOINT_DOES_NOT_MATCH_PREVIOUS_STATE");if(!u(n,t.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");return t.state=e,!0};var h=["avatar","name","topic"];d.METADATA=function(n,t,r){if(!s(n))throw new Error("INVALID_ARGS");if(!function(n,t){var r=e.find(t,[n,"role"]);return Boolean(r&&-1!==["OWNER","ADMIN"].indexOf(r))}(t,r.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");Object.keys(n).forEach((function(e){if(null===n[e]){if(-1===h.indexOf(e))return;throw new Error("CANNOT_REMOVE_MANDATORY_METADATA")}if("string"!=typeof n[e])throw new Error("INVALID_ARGUMENTS")}));var o=!1;return Object.keys(n).forEach((function(e){void 0!==r.state.metadata[e]&&null===n[e]&&(o=!0,delete r.state.metadata[e]),n[e]!==r.state.metadata[e]&&(o=!0,r.state.metadata[e]=n[e])})),o},d.INVITE=function(e,n,t){if(!s(e))throw new Error("INVALID_ARGS");if(!t.internal.initialized)throw new Error("UNINITIALIED");if(void 0===t.state.members)throw new Error("CANNOT+INVITE_TO_UNINITIALIED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ARLEADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="VIEWER"),void 0===o.pending&&(o.pending=!0),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName||!o.displayName)throw new Error("DISPLAYNAME_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.ACCEPT=function(n,t,r){if(!r.internal.initialized)throw new Error("UNINITIALIED");if(void 0===r.state.members)throw new Error("CANNOT_ADD_TO_UNINITIALIED_ROSTER");var o=r.state.members;if(!s(o[t]))throw new Error("INSUFFICIENT_PERMISSIONS");if(!o[t].pending)throw new Error("ALREADY_PRESENT");if("string"!=typeof n)throw new Error("INVALID_ARGS");if(!l(n))throw new Error("INVALID_CURVE_KEY");var a=n;if(void 0!==o[a])throw new Error("MEMBER_ALREADY_PRESENT");var i=e.clone(o[t]);delete i.remaining,delete i.totalUses,delete i.inviteChannel,delete i.previewChannel,o[a]=i;var c=o[t].remaining||1;return-1===c||(c>1?o[t].remaining=c-1:delete o[t]),!0};var p=function(e,n,t){if(!Array.isArray(e)||"string"!=typeof n)throw new Error("INVALID ARGUMENTS");var r=e[0];if("function"!=typeof d[r])throw new Error("INVALID_COMMAND");return d[r](e[1],n,t)},v=function(n,t,r){return p(n,t,e.clone(r))};return i.create=function(n,i){if("function"!=typeof i)throw new Error("EXPECTED_CALLBACK");var f=e.once(e.mkAsync(i));if(n.network)if(n.channel&&"string"==typeof n.channel&&32===n.channel.length)if(n.keys&&"object"==typeof n.keys)if(n.store){var d=e.response((function(e,n){console.error("ROSTER_RESPONSE__"+e,n)})),h=n.store,y=n.keys,m=y.myCurvePublic,g=n.channel,E=n.lastKnownHash||-1;n.newTeam&&(E=void 0);var b={state:{members:{},metadata:{}},internal:{initialized:!1,sinceLastCheckpoint:0,lastCheckpointHash:E}},O={},A={change:e.mkEvent(),checkpoint:e.mkEvent()};O.on=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].reg(n),O},O.off=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].unreg(n),O},O.once=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");var t=function(){n.apply(null,Array.prototype.slice.call(arguments)),A[e].unreg(t)};return A[e].reg(t),O},O.getState=function(){return e.clone(b.state)},O.getLastCheckpointHash=function(){return b.internal.lastCheckpointHash||-1};var w=function(){b.internal.pendingCheckpointId&&(d.clear(b.internal.pendingCheckpointId),delete b.internal.pendingCheckpointId),clearTimeout(b.internal.checkpointTimeout),delete b.internal.checkpointTimeout};O.stop=function(){b.internal.cpNetflux&&"function"==typeof b.internal.cpNetflux.stop?(b.internal.cpNetflux.stop(),w()):console.log("FAILED TO LEAVE")};var D,_,T,S=!1,x=function(){if(n.onCacheReady){var e=b.state;if(Object.keys(e.members||{}).length)n.onCacheReady(O);else{try{b.internal.cpNetflux.resetCache()}catch(e){console.error(e)}n.onCacheReady({error:"CORRUPTED"})}}},N=function(){S=!0,f(void 0,O)},I=function(e){e&&"EUNKNOWN"===e.type||(S?console.error("CHANNEL_ERROR",e):f(e))},C=function(e){e.state||(S=!1)},R=function(){console.log("ROSTER CONNECTED")},P=function(){return Boolean(S&&m)},k=function(n,t,r,o,a,i){D!==a&&b.internal.sinceLastCheckpoint++,D=a;var s=e.tryParse(n);if(s){var f,l;try{f=p(s,i,b)}catch(e){l=e.message}var h=c(a);if(d.expected(h)){if(l)return void d.handle(h,[l]);try{f?d.handle(h,[void 0,O.getState()]):(d.handle(h,["NO_CHANGE"]),console.log(n))}catch(e){console.log("CAUGHT",e)}}if("CHECKPOINT"===s[0]&&f?(P()&&A.checkpoint.fire(a),b.internal.sinceLastCheckpoint=0,b.internal.lastCheckpointHash=a):f&&P()&&A.change.fire(),w(),P()&&function(e,n){if(!u(e,n.state.members))return!1;var t=n.internal.sinceLastCheckpoint;return!(!t||"number"!=typeof t||t<25)}(m,b)){var v=1e3*Math.floor(20*Math.random())+5e3;b.internal.checkpointTimeout=setTimeout((function(){b.internal.pendingCheckpointId=O.checkpoint((function(e){e&&console.error(e)}))}),v)}}else console.error("could not parse")},M=function(n,t){var r=e.tryParse(n);return"CHECKPOINT"===r[0]&&v(r,t,b)},F=function(e,n){if(P()){var t=h.anon_rpc;if(t){var o=!1;try{o=v(e,y.myCurvePublic,b)}catch(e){return void n(e.message)}if(o){var a=T.encrypt(r(e)),i=c(a);return d.expect(i,(function(e,t){e?n(e):n(void 0,t,i)}),3e4),t.send("WRITE_PRIVATE_MESSAGE",[g,a],(function(e){if(e)return d.handle(i,[e.message||e])})),i}n("NO_CHANGE")}else n("ANON_RPC_NOT_READY")}else n("NOT_READY")};O.init=function(n,t){var r=e.once(e.mkAsync(t));if(b.internal.initialized)r("ALREADY_INITIALIZED");else if(s(n)){var o=e.clone(n);o.role="OWNER";var a={};a[m]=o,F(["CHECKPOINT",{members:a}],r)}else r("INVALID_ARGUMENTS")},O.checkpoint=function(n){var t=e.once(e.mkAsync(n));F(["CHECKPOINT",e.clone(b.state)],t)},O.add=function(n,t){var r=e.once(e.mkAsync(t));if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["ADD",o],r)}else r("INVALID_ARGUMENTS")},O.remove=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(Array.isArray(n)){var a=e.clone(n),i=[],s=Object.keys(o.members);a.forEach((function(e){-1!==s.indexOf(e)&&i.push(e)})),F(["RM",i],r)}else r("INVALID_ARGUMENTS")},O.describe=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(s(n)){var a=e.clone(n);Object.keys(a).some((function(e){var n=a[e];if(s(n)||delete a[e],!s(o.members[e]))return!0;Object.keys(n).forEach((function(t){n[t]===o.members[e][t]&&delete n[t]}))}))?r("INVALID_ARGUMENTS"):F(["DESCRIBE",a],r)}else r("INVALID_ARGUMENTS")},O.metadata=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state.metadata;if(s(n)){var a=e.clone(n);Object.keys(a).forEach((function(e){a[e]===o[e]&&delete a[e]})),F(["METADATA",a],r)}else r("INVALID_ARGUMENTS")},O.invite=function(n,t){var r=e.once(e.mkAsync(t));if(!b.state)return r("UNINITIALIZED");if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["INVITE",o],r)}else r("INVALID_ARGUMENTS")},O.accept=function(n,t){var r=e.once(e.mkAsync(t));"string"==typeof n&&l(n)?F(["ACCEPT",n],r):r("INVALID_ARGUMENTS")},o((function(e){h.anon_rpc&&h.anon_rpc.send("GET_METADATA",g,(function(n,t){if(n)return e.abort(),void console.error(n);_=b.internal.metadata=t&&t[0]||void 0}))})).nThen((function(e){if(!n.keys.teamEdPublic&&_&&_.validateKey&&(n.keys.teamEdPublic=_.validateKey),!n.keys.teamEdPublic)return e.abort(),void f("NO_VALIDATE_KEY");try{T=a.Team.createEncryptor(n.keys)}catch(n){return e.abort(),void f(n)}})).nThen((function(){"string"==typeof E&&console.log("Synchronizing from checkpoint"),b.internal.cpNetflux=t.start({lastKnownHash:E,network:n.network,channel:n.channel,crypto:T,validateKey:n.keys.teamEdPublic,owners:n.owners,Cache:n.Cache,isCacheCheckpoint:M,onCacheReady:x,onChannelError:I,onReady:N,onConnect:R,onConnectionChange:C,onMessage:k,noChainPad:!0})}))}else f("EXPECTED_STORE");else f("EXPECTED_CRYPTO_KEYS");else f("EXPECTED_CHANNEL");else f("EXPECTED_NETWORK")},i}(Z(),te(),y(),En(),qe(),M()))}(yt)),yt.exports}var gt,Et,bt={exports:{}};function Ot(){return Et||(Et=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E)=>{var b={};E=E||"undefined"!=typeof window&&window.nacl;var O=e.mkEvent(!0),A=function(){},w=function(e,t,r,o){t&&(o||(r.on("change",["drive",a.SHARED_FOLDERS],(function(o,s,c){if(c.length>3&&"password"===c[3]){var u=c[2],f=r.drive[a.SHARED_FOLDERS][u],l=t.manager.user.userObject.getHref?t.manager.user.userObject.getHref(f):f.href,d=n.parsePadUrl(l),h=n.getSecrets(d.type,d.hash,o);return setTimeout((function(){i.updatePassword(e.Store,{oldChannel:h.channel,password:s,href:l},e.store.network,(function(){console.log("Shared folder password changed")}))})),!1}})),r.on("disconnect",(function(){t.offline=!0,t.sendEvent("NETWORK_DISCONNECT",t.id)})),r.on("reconnect",(function(){t.offline=!1,t.sendEvent("NETWORK_RECONNECT",t.id)}))),r.on("change",[],(function(n,r,i){if(o){if(i[0]===a.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var s=[r.channel];r.rtChannel&&s.push(r.rtChannel),r.lastVersion&&s.push(r.lastVersion),t.pin(s,(function(e){e&&e.error&&console.error(e.error)}))}if(i[0]===a.FILES_DATA&&"object"==typeof n&&n.channel&&!r){var c=[n.channel];t.manager.findChannel(n.channel).some((function(e){return e.fId!==o}))||(n.rtChannel&&c.push(n.rtChannel),n.lastVersion&&c.push(n.lastVersion),t.unpin(c,(function(e){e&&e.error&&console.error(e)})))}}n&&!r&&Array.isArray(i)&&(i[0]===a.FILES_DATA||"drive"===i[0]&&i[1]===a.FILES_DATA)&&setTimeout((function(){e.Store.checkDeletedPad(n&&n.channel)})),t.sendEvent("DRIVE_CHANGE",{id:o,old:n,new:r,path:i})})),r.on("remove",[],(function(e,n){t.sendEvent("DRIVE_REMOVE",{id:o,old:e,path:n})})))},D=function(e,n){var t=e.teams[n];if(t){try{t.listmap.stop()}catch(e){}try{t.roster.stop()}catch(e){}t.proxy={},t.stopped=!0,delete e.teams[n],delete e.cache[n],delete e.store.proxy.teams[n],e.emit("LEAVE_TEAM",n,t.clients),e.updateMetadata(),e.store.calendar&&e.store.calendar.closeTeam(n),e.store.mailbox&&e.store.mailbox.close("team-"+n,(function(){}))}},_=function(e,n,t,r){n.rpc?r():t.edPrivate&&t.edPublic?h.create(e.store.network,t,(function(e,t){e?r(e):(n.rpc=t,n&&n.onRpcReadyEvt&&n.onRpcReadyEvt.fire(),r())}),d):r("EFORBIDDEN")},T=function(t,r,a,s,c,u,f){var l=e.once(e.mkAsync(f));if(t.cache[r])l();else{var d=a.proxy,h={id:r,proxy:d,listmap:a,clients:[],realtime:a.realtime,handleSharedFolder:function(e,n){!function(e,n,t,r){var o=e.teams[n];o&&(r?(o.sharedFolders[t]=r,w(e,o,r.proxy,t)):delete o.sharedFolders[t])}(t,r,e,n)},sharedFolders:{},roster:s,onRpcReadyEvt:e.mkEvent(!0),offline:!0};t.cache[r]=h,u&&h.clients.push(u),s.on("change",(function(){var n=s.getState(),o=e.find(t,["store","proxy","curvePublic"]);if(n.members&&Object.keys(n.members).length)if(n.members[o]){var a=e.find(t,["store","proxy","teams",r]);a&&(a.metadata=n.metadata),t.updateMetadata(),t.emit("ROSTER_CHANGE",r,h.clients)}else D(t,r);else console.error(JSON.stringify(n))})),s.on("checkpoint",(function(n){e.find(t,["store","proxy","teams",r,"keys","roster"]).lastKnownHash=n})),h.sendEvent=function(e,n,r){t.emit(e,n,h.clients.filter((function(e){return e!==r})))},h.getChatData=function(){var e=c.chat||{},t=e.edit||e.view;if(!t)return{};var o=n.getSecrets("chat",t);return{teamId:r,channel:o.channel,secret:o,validateKey:e.validateKey}},h.pin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.pin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})},h.unpin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.unpin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})};var p=t.store.proxy.teams[h.id],v=p.hash||p.roHash,y=n.getSecrets("team",v,p.password),m=h.manager=o.create(d.drive,{onSync:function(e){t.Store.onSync(r,e)},edPublic:c.drive.edPublic,pin:h.pin,unpin:h.unpin,loadSharedFolder:function(e,n,r,o){i.load({isNew:o,network:t.store.network||t.store.networkPromise,store:h,isNewChannel:t.Store.isNewChannel,Store:t.Store},e,n,r)},settings:{drive:e.find(t.store,["proxy","settings","drive"])},removeOwnedChannel:function(e,n){var o;"object"==typeof e?(e.teamId=r,o=e):o={channel:e,teamId:r},t.Store.removeOwnedChannel("",o,n)},Store:t.Store,store:t.store},{teamId:h.id,outer:!0,edPublic:c.drive.edPublic,loggedIn:!0,log:function(e){h.sendEvent("DRIVE_LOG",e)},rt:h.realtime,editKey:y.keys.secondaryKey,readOnly:Boolean(!y.keys.secondaryKey)});h.secondaryKey=y&&y.keys.secondaryKey,h.userObject=m.user.userObject,g((function(e){t.teams[r]=h,w(t,h,d);var n=t.store.network||t.store.networkPromise;i.loadSharedFolders(t.Store,n,h,h.proxy.drive,h.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}),!0)})).nThen((function(){t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),l()}))}},S=function(t,r,o,a,s,c,u){var f,l=a.getState(),d=e.find(t,["store","proxy","teams",r]);d&&(d.metadata=l.metadata),delete t.nocache[r],t.store.proxy.teams[r]&&g((function(e){T(t,r,o,a,s,c,e()),f=t.teams[r]||t.cache[r],s.drive.edPrivate&&_(t,f,s.drive,e((function(){})))})).nThen((function(e){f.userObject.fixFiles(),i.checkMigration(f.secondaryKey,f.proxy?.drive,f.userObject,e()),i.loadSharedFolders(t.Store,t.store.network,f,f.proxy?.drive,f.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}))})).nThen((function(){if(f.rpc){var o=function(n,t){var r=n.teams[t];if(!r)return null;var o=r.manager.getChannelsList("pin"),a=n.store.proxy.teams[t];o.push(`${a.channel}#drive`);var i=e.find(a,["keys","chat","channel"]),s=e.find(a,["keys","roster","channel"]),c=e.find(a,["keys","mailbox","channel"]);if(i&&o.push(i),s&&o.push(s),c&&o.push(c),r.proxy.calendars){var u=Object.keys(r.proxy.calendars).map((function(e){return r.proxy.calendars[e].channel}));o=o.concat(u)}var f=r.roster.getState();return f.members&&Object.keys(f.members).forEach((function(e){var n=f.members[e];n.inviteChannel&&n.pending&&o.push(n.inviteChannel),n.previewChannel&&n.pending&&o.push(n.previewChannel)})),o.sort(),o}(t,r),a=n.hashChannelList(o);f.rpc.getServerHash((function(e,n){e?console.warn(e):n!==a&&f.rpc.reset(o,(function(e){e&&console.warn(e)}))}))}})).nThen((function(){f.offline=!1,t.onReadyHandlers[r]&&t.onReadyHandlers[r].forEach((function(e){("function"==typeof e.cb&&e.cb(),e.cId)&&(-1===f.clients.indexOf(e.cId)&&f.clients.push(e.cId))})),delete t.onReadyHandlers[r],t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),u()}))},x=function(e,n,t,r,o,a){var i=function(){(e.cache[n]||e.teams[n])&&D(e,n),delete e.store.proxy.teams[n],delete e.onReadyHandlers[n],o.abort(),a({error:"ENOENT"})};t&&e.store.anon_rpc.send("IS_NEW_CHANNEL",t,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()}))),r&&e.store.anon_rpc.send("IS_NEW_CHANNEL",r,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()})))},N=function(t,r,o,a,i){var f=e.once(e.mkAsync(a)),l=r.hash||r.roHash,h=n.getSecrets("team",l,r.password),y=v.createEncryptor(h.keys);r.roHash||(r.roHash=n.getViewHashFromKeys(h));var E,b,A=r.keys;if(!A.chat.validateKey&&A.chat.edit){var w=n.getSecrets("chat",A.chat.edit);A.chat.validateKey=w.keys.validateKey}var _={curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate},N=A.roster||{},I=N.edit?v.Team.deriveMemberKeys(N.edit,_):v.Team.deriveGuestKeys(N.view||"");g((function(e){if(i)return d.getChannelCache(h.channel,e((function(n,t){t&&t.c||(e.abort(),f({error:"NOCACHE"}))}))),void d.getChannelCache(I.channel,e((function(n,t){var r=t&&t.c,o=t&&t.k;o&&!I.teamEdPublic&&(I.teamEdPublic=o),r||(e.abort(),f({error:"NOCACHE"}))})));t.Store.onReadyEvt.reg((()=>{x(t,o,h.channel,I.channel,e,f)}))})).nThen((function(n){var a={lm:!1,roster:!1,check:function(){this.lm&&this.roster&&i&&(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress}),T(t,o,b,E,A,null,n(f)),this.check=function(){})}},u={data:{},readOnly:!Boolean(h.keys.signKey),network:t.store.network||t.store.networkPromise,channel:h.channel,crypto:y,ChainPad:m,Cache:d,metadata:{validateKey:h.keys.validateKey||void 0},userName:"team",classic:!0,onMetadataUpdate:function(){var e=t.teams[o];e&&t.emit("ROSTER_CHANGE",o,e.clients)}};(b=p.create(u)).proxy.on("cacheready",(function(){a.lm=!0,a.check()})),b.proxy.on("ready",n()),b.proxy.on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,o)})),s.create({network:t.store.network||t.store.networkPromise,channel:I.channel,keys:I,store:t.store,lastKnownHash:N.lastKnownHash,onCacheReady:function(e){if(i){if(e&&"CORRUPTED"===e.error)return console.error("Corrupted roster cache, cant load this team offline",r),b&&"function"==typeof b.stop&&b.stop(),n.abort(),void f({error:"CACHE_CORRUPTED_ROSTER"});E=e,a.roster=!0,a.check()}},Cache:d},n((function(r,o){if(r)return n.abort(),console.error(r),void f({error:"ROSTER_ERROR"});E=o,N.lastKnownHash=E.getLastCheckpointHash();var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);a.members[i]&&O.reg((function(){if(N.edit){var e={},n=c.createData(t.store.proxy,!1);n.pending=!1,e[t.store.proxy.curvePublic]=n,E.describe(e,(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}}))})))})).nThen((function(n){var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);if(!a.members||!Object.keys(a.members).length)return b.stop(),E.stop(),b.proxy={},f({error:"EINVAL"}),n.abort(),console.error(JSON.stringify(a)),void u.send("ROSTER_CORRUPTED");if(!a.members[i])return b.stop(),E.stop(),b.proxy={},delete t.store.proxy.teams[o],t.updateMetadata(),f({error:"EFORBIDDEN"}),void n.abort();var s=a.members[i],c=e.find(r,["keys","drive","edPrivate"]);if(r.hash&&c||-1===["ADMIN","MEMBER"].indexOf(s.role))r.hash&&c||"OWNER"!==s.role||u.send("TEAM_RIGHTS_OWNER");else{console.warn("Missing edit rights: demote to viewer");var l={};l[t.store.proxy.curvePublic]={role:"VIEWER"},E.describe(l,(function(e){u.send("TEAM_RIGHTS_FIXED"),delete r.hash,delete r.keys.drive.edPrivate,delete r.keys.chat.edit,e&&"NO_CHANGE"!==e&&console.error(e)}))}})).nThen((function(){i||(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress})),S(t,o,b,E,A,null,f)}))},I=function(n,t,r,o){var a=t.team;if(!((a.hash||a.roHash)&&a.channel&&a.password&&a.keys&&a.metadata))return void o({error:"EINVAL"});let i=n.store.proxy.teams;if(Object.values(i).some((e=>e.channel===a.channel)))o({error:"EEXISTS"});else{var s=e.createRandomInteger();n.store.proxy.teams[s]=a,n.onReadyHandlers[s]=[],N(n,a,s,(function(e){e&&e.error||console.debug("Team joined:"+s);var t=n.store.proxy.teams[s];n.store.mailbox.open("team-"+s,t.keys.mailbox,(function(){}),!0,{owners:t.keys.drive.edPublic}),n.updateMetadata(),o(e)}))}},C=function(n,t,r){var o=e.find(n,["store","proxy","teams",t]);if(!o)return{};var a=e.clone(o);return r||(delete a.hash,delete a.keys.drive.edPrivate,delete a.keys.chat.edit),delete a.owner,a},R=function(t,r,o){if(!r)return!0;var a=e.find(t,["store","proxy","teams",r]);if(!a)return!0;var s=t.teams[r];if(!s)return!0;var c=n.getSecrets("team",o||a.roHash,a.password);if(i.upgrade(a.channel,c),s.userObject&&s.userObject.setReadOnly(!c.keys.secondaryKey,c.keys.secondaryKey),c.keys.secondaryKey)try{t.store.modules.calendar.upgradeTeam(r)}catch(e){console.error(e)}!c.keys.secondaryKey&&s.rpc&&s.rpc.destroy();var u=e.find(s,["proxy","drive","sharedFolders"]);Object.keys(u||{}).forEach((function(t){var r=s.manager.getSharedFolderData(t),o=n.parsePadUrl(r.href||r.roHref),a=n.getSecrets(o.type,o.hash,r.password);i.upgrade(a.channel,a);var c=e.find(s,["manager","folders",t,"userObject"]);c&&c.setReadOnly(!a.keys.secondaryKey,a.keys.secondaryKey)})),t.updateMetadata(),t.emit("ROSTER_CHANGE_RIGHTS",r,s.clients)},P=function(t,r,o,a,i){if(r){var s=e.find(t,["store","proxy","teams",r]);if(s){var c=t.onReadyHandlers[r],u=t.teams[r];if(s.channel===a.channel&&s.password===a.password)if(o?(s.hash=a.hash,s.keys.drive.edPrivate=a.keys.drive.edPrivate,s.keys.chat.edit=a.keys.chat.edit):(delete s.hash,delete s.keys.drive.edPrivate,delete s.keys.chat.edit),u||!Array.isArray(c))if(u){if(o){_(t,u,s.keys.drive,(function(){u.manager.addPin(u.pin,u.unpin)}));var f=n.getSecrets("team",a.hash,s.password);u.secondaryKey=f&&f.keys.secondaryKey;var l=v.createEncryptor(f.keys);u.listmap.setReadOnly(!1,l)}else delete u.secondaryKey,u.rpc&&u.rpc.destroy&&u.rpc.destroy(),u.manager.removePin(),u.listmap.setReadOnly(!0);R(t,r,a.hash),i(!0)}else i(!1);else c.push({cb:function(){P(t,r,o,a,i)}});else i(!1)}else i(!1)}else i(!1)},k=function(n,t,r,o,a){t?e.find(n,["store","proxy","teams",t])&&n.teams[t]?n.store.mailbox.sendTo("TEAM_EDIT_RIGHTS",{state:o,teamData:C(n,t,o)},{channel:r.notifications,curvePublic:r.curvePublic},a):a({error:"ENOENT"}):a({error:"EINVAL"})},M=function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]),s=n.teams[a];if(i&&s)if(s.roster)if(t.curvePublic&&t.data){var c,u=s.roster.getState().members[t.curvePublic];g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(u.pendingOwner=Array.isArray(c.pending_owners)&&-1!==c.pending_owners.indexOf(u.edPublic),"OWNER"!==u.role||"OWNER"===t.data.role){"VIEWER"===u.role&&"VIEWER"!==t.data.role&&k(n,a,u,!0,(function(e){o(e)})),"VIEWER"!==u.role&&"VIEWER"===t.data.role&&k(n,a,u,!1,(function(e){o(e)}));var r={};r[t.curvePublic]=t.data,s.roster.describe(r,(function(e){e?o({error:e}):o()}))}else!function(n,t,r,o){var a=e.once(o);if(t){var i=e.find(n,["store","proxy","teams",t]);if(i){var s=n.teams[t];if(s){var c=r.pendingOwner;g((function(t){var o=c?"RM_PENDING_OWNERS":"RM_OWNERS",s=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a(n)},u=function(e){n.Store.setPadMetadata(null,{channel:e,command:o,value:[r.edPublic]},t(s))};u(i.channel),u(e.find(i,["keys","roster","channel"])),u(e.find(i,["keys","chat","channel"]))})).nThen((function(e){var n={};n[r.curvePublic]={role:"ADMIN",pendingOwner:!1},s.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(e){n.store.mailbox.sendTo("RM_OWNER",{teamChannel:i.channel,title:i.metadata.name,pending:c},{channel:r.notifications,curvePublic:r.curvePublic},e())})).nThen((function(){a()}))}else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(n,a,u,(function(e){e?(console.error(e),o({error:e})):o()}))}))}else o({error:"MISSING_DATA"});else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"EINVAL"})},F=function(e,n){Object.keys(e.onReadyHandlers).forEach((function(t){var r=-1;e.onReadyHandlers[t].some((function(e,t){if(e.cId===n)return r=t,!0})),-1!==r&&e.onReadyHandlers[t].splice(r,1)})),Object.keys(e.teams).forEach((function(t){var r=e.teams[t].clients,o=r.indexOf(n);-1!==o&&r.splice(o,1)}))},L=function(n,t,r,o){var a,i=t.seeds;try{a=f.derivePreviewKeys(i.preview)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})},H=function(n,t,r,o){var a,i;g((function(r){!function(n,t,r,o){var a,i=t.bytes64;try{a=f.deriveInviteKeys(i)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})}(n,t,0,r((function(e){if(e&&e.error)return r.abort(),void o(e);a=e})))})).nThen((function(t){var r=e.find(a,["teamData","channel"]),u=n.store.proxy.teams||{};if(Object.keys(u).some((function(e){return u[e].channel===r})))return t.abort(),void o({error:"ALREADY_MEMBER"});var f=e.find(a,["teamData","keys","roster"]),l=a.ephemeral;if(!f||!l)return t.abort(),void o({error:"INVALID_INVITE_CONTENT"});var h=v.Team.deriveMemberKeys(f.edit,l);s.create({network:n.store.network||n.store.networkPromise,channel:f.channel,keys:h,store:n.store,Cache:d},t((function(e,r){if(e)return t.abort(),console.error(e),void o({error:"ROSTER_ERROR"});var a=c.createData(n.store.proxy,!1),s=r.getState();i=s.members[l.curvePublic],r.accept(a.curvePublic,t((function(e){if(r.stop(),e)return t.abort(),console.error(e),void o({error:"ACCEPT_ERROR"})})))})))})).nThen((function(){var e={};i.remaining&&1!==i.remaining||_(n,e,a.ephemeral,(function(n){if(!n){var t=e.rpc;i.inviteChannel&&t.removeOwnedChannel(i.inviteChannel,(function(e){e&&console.error(e)})),i.previewChannel&&t.removeOwnedChannel(i.previewChannel,(function(e){e&&console.error(e)}))}})),I(n,{team:a.teamData},0,o)}))},j=function(n){if(n){if(n.keys&&n.keys.mailbox)return n.keys.mailbox;var t=e.find(n,["keys","roster","edit"]);if(t){var r=E.hash(e.decodeUTF8(t)),o=r.slice(0,32),a=e.uint8ArrayToHex(r.slice(32,48)),i=E.box.keyPair.fromSecretKey(o);return{channel:a,viewed:[],keys:{curvePrivate:e.encodeBase64(i.secretKey),curvePublic:e.encodeBase64(i.publicKey)}}}}};return b.init=function(t,r,o){var a={},i=t.store;if(i.loggedIn&&i.proxy.edPublic&&!i.modules?.team){var h={store:i,Store:t.Store,pinPads:t.pinPads,emit:o,onReadyHandlers:{},teams:{},cache:{},nocache:{},updateMetadata:t.updateMetadata,updateProgress:t.updateLoadingProgress,progress:0};i.proxy.teams||(i.proxy.teams={});var b=i.proxy.teams;h.numberOfTeams=Object.keys(b).length,h.store.proxy.on("change",["teams"],(function(e,n,t){"hash"===t[2]&&R(h,t[1],n)})),h.store.proxy.on("remove",["teams"],(function(e,n){"hash"===n[2]&&R(h,n[1])}));var w=function(n,t){if(!n||!t)return!0;try{var r=e.decodeBase64(n),o=E.sign.keyPair.fromSecretKey(r);return e.encodeBase64(o.publicKey)===t}catch(e){return!1}};Object.keys(b).forEach((function(n){h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,r((function(e){if(e){delete h.onReadyHandlers[n],delete h.cache[n],"NOCACHE"===e?.error&&(h.nocache[n]=!0);var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" cache ready")})),d.isEnabled())})),a.onReady=function(t){var r;r={},Object.keys(b).forEach((function(t){try{var o=b[t],a=r[o.channel],i=e.find(o,["keys","drive","edPrivate"]),s=e.find(o,["keys","drive","edPublic"]);if(s?i&&s&&!w(i,s)&&(u.send("TEAM_CORRUPTED_EDPRIVATE"),delete b[t].keys.drive.edPrivate,i=void 0):u.send("TEAM_CORRUPTED_EDPUBLIC"),o.hash&&2===n.parseTypeHash("drive",o.hash).version&&40!==o.hash.length&&u.send("TEAM_CORRUPTED_HASH"),!a)return void(r[o.channel]=t);var c=b[a],f=e.find(c,["keys","drive","edPrivate"]),l=e.find(c,["keys","chat","edit"]),d=e.find(o,["keys","chat","edit"]);!c.hash&&o.hash&&(c.hash=o.hash),!f&&i&&(c.keys.drive.edPrivate=i),!l&&d&&(c.keys.chat.edit=d),h.store.proxy.duplicateTeams=h.store.proxy.duplicateTeams||{},h.store.proxy.duplicateTeams[t]=b[t],delete b[t]}catch(e){console.error(e)}}));var o=function(e){return!b[e]&&(D(h,e),delete h.onReadyHandlers[e],!0)};Object.keys(h.teams).forEach(o),Object.keys(h.onReadyHandlers).forEach((function(n){if(!o(n)){var r=h.store.proxy.teams[n],a=e.find(r,["keys","roster","channel"]),i=e.once(e.mkAsync(t()));g((function(e){x(h,n,r.channel,a,e,i)})),h.onReadyHandlers[n].push({cb:i})}})),Object.keys(b).forEach((function(n){h.onReadyHandlers[n]||h.teams[n]||(h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,t((function(e){if(e){var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" ready")}))))})),A(),O.fire()},a.getTeam=function(e){return h.teams[e]},a.getTeamsData=function(n){var t={},r=!1;return-1!==["drive","teams","settings"].indexOf(n)&&(r=!0),Object.keys(b).forEach((function(n){if(h.teams[n]){var o=h.teams[n].proxy||{},a=o.drive&&Object.keys(o.drive.filesData||{}).length,i=o.drive&&Object.keys(o.drive.sharedFolders||{}).length;t[n]={owner:b[n].owner,name:b[n].metadata.name,channel:b[n].channel,numberPads:a,numberSf:i,roster:e.find(b[n],["keys","roster","channel"]),edPublic:e.find(b[n],["keys","drive","edPublic"]),avatar:e.find(b[n],["metadata","avatar"]),viewer:!e.find(b[n],["keys","drive","edPrivate"]),notifications:e.find(b[n],["keys","mailbox","channel"]),curvePublic:e.find(b[n],["keys","mailbox","keys","curvePublic"]),validKeys:w(e.find(b[n],["keys","drive","edPrivate"]),e.find(b[n],["keys","drive","edPublic"]))},r&&h.teams[n]&&(t[n].secondaryKey=h.teams[n].secondaryKey),h.teams[n]&&(t[n].hasSecondaryKey=Boolean(h.teams[n].secondaryKey))}})),t},a.getTeams=function(){return Object.keys(h.teams)};a.removeFromTeam=function(e,n,t){if(b[e]&&(!t||function(e,n){var t=h.teams[e];if(t){var r=t.roster&&t.roster.getState();if(r.members)return(r.members[n]||{}).pending}}(e,n)))if(h.onReadyHandlers[e])h.onReadyHandlers[e].push({cb:function(){h.teams[e].roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}});else{var r=h.teams[e];r?r.roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)})):console.error("TEAM MODULE ERROR")}},a.changeMyRights=function(e,n,t,r){P(h,e,n,t,r)},a.updateMyData=function(e){Object.keys(h.teams).forEach((function(n){var t=h.teams[n];if(t.roster){var r={};r[e.curvePublic]=e,t.roster.describe(r,(function(e){e&&console.error(e)}))}}))},a.removeClient=function(e){F(h,e)};return a.execCommand=function(t,r,o){var a=r.cmd,i=r.data;if("SUBSCRIBE"!==a)if("LIST_TEAMS"!==a)if("OPEN_TEAM_CHAT"!==a)if("GET_TEAM_ROSTER"!==a)if("GET_TEAM_METADATA"!==a)if("SET_TEAM_METADATA"!==a){if("OFFER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=e.once(o),i=t.teamId;if(i){var s=e.find(n,["store","proxy","teams",i]);if(s){var c=n.teams[i];if(c)if(c.roster)if(t.curvePublic){var u=c.roster.getState().members[t.curvePublic];g((function(t){var r=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a({error:n})},o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"ADD_PENDING_OWNERS",value:[u.edPublic]},t(r))};o(s.channel),o(e.find(s,["keys","roster","channel"])),o(e.find(s,["keys","chat","channel"]))})).nThen((function(e){var n={};n[u.curvePublic]={role:"OWNER"},c.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(t){n.store.mailbox.sendTo("ADD_OWNER",{teamChannel:s.channel,chatChannel:e.find(s,["keys","chat","channel"]),rosterChannel:e.find(s,["keys","roster","channel"]),title:s.metadata.name},{channel:u.notifications,curvePublic:u.curvePublic},t())})).nThen((function(){a()}))}else a({error:"MISSING_DATA"});else a({error:"NO_ROSTER"});else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(h,i,0,o);if("ANSWER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a,i=n.store.proxy.teams;if(Object.keys(i).forEach((function(e){if(i[e].channel===t.teamChannel)return a=e,!0})),a){var s=e.find(n,["store","proxy","teams",a]);if(s){var c=n.teams[a];if(c)if(c.roster){var u={};t.answer?s.owner=!0:(u[n.store.proxy.curvePublic]={role:"ADMIN"},c.roster.describe(u,(function(e){e?o({error:e}):o()})))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("DESCRIBE_USER"!==a){if("INVITE_TO_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=n.user;if(i&&i.curvePublic&&i.notifications){delete i.channel,delete i.lastKnownHash,i.pending=!0;var s={};s[i.curvePublic]=i,s[i.curvePublic].role="VIEWER",a.roster.add(s,(function(n){n&&"NO_CHANGE"!==n?r({error:n}):e.store.mailbox.sendTo("INVITE_TO_TEAM",{team:C(e,o)},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)}))}))}else r({error:"MISSING_DATA"})}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);if("LEAVE_TEAM"!==a){if("JOIN_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void I(h,i,0,o);if("REMOVE_USER"!==a){if("DELETE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a],s=e.find(n,["store","proxy","teams",a]);if(i&&s){var c=i.roster.getState(),f=e.find(n,["store","proxy","curvePublic"]),l=c.members[f];if(!l||"OWNER"!==l.role)return o({error:"EFORBIDDEN"});var d=e.find(n,["store","proxy","edPublic"]),h=e.find(s,["keys","drive","edPublic"]);g((function(e){n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:s.channel},e((function(n){if(n&&n.error)return e.abort(),o({error:n.error});var t=n[0];t&&Array.isArray(t.owners)&&-1!==t.owners.indexOf(d)||(e.abort(),o({error:"EFORBIDDEN"}))})))})).nThen((function(t){i.proxy.delete=!0;var r=i.manager.getChannelsList("owned"),o=e.Saferphore.create(10);r.forEach((function(e){var r=t();o.take((function(t){var o=!1;g((function(r){32===e.length&&n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:e},r((function(e){if(e&&e.error)return t(),void r.abort();var n=e[0];if(!n||!Array.isArray(n.owners)||-1===n.owners.indexOf(h))return t(),void r.abort();o=n.owners.some((function(e){return e!==h}))})))})).nThen((function(t){o?n.Store.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[h]},t()):i.rpc.removeOwnedChannel(e,t((function(e){e&&console.error(e)})))})).nThen((function(){t(),r()}))}))}))})).nThen((function(t){i.rpc.removePins(t((function(e){e&&console.error(e)})));var r=e.find(s,["keys","mailbox","channel"]);i.rpc.removeOwnedChannel(r,t((function(e){e&&console.error(e)})));var o=e.find(s,["keys","roster","channel"]);n.store.rpc.removeOwnedChannel(o,t((function(e){e&&console.error(e)})));var a=e.find(s,["keys","chat","channel"]);n.store.rpc.removeOwnedChannel(a,t((function(e){e&&console.error(e)}))),n.store.rpc.removeOwnedChannel(s.channel,t((function(e){e&&console.error(e)})))})).nThen((function(){u.send("TEAM_DELETION"),D(n,a),o()}))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("CREATE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(t,r,o,a){var i,f=e.once(a),l=n.createChannelId(),h=n.createRandomHash("team",l),b=n.getSecrets("team",h,l),O=n.getViewHashFromKeys(b),A=E.sign.keyPair(),w=E.box.keyPair(),_=v.Team.createSeed(),T=v.Team.deriveMemberKeys(_,{curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate}),x=n.getSecrets("chat"),N=n.getHashes(x),I={network:t.store.network,channel:b.channel,data:{},validateKey:b.keys.validateKey,crypto:v.createEncryptor(b.keys),logLevel:1,classic:!0,ChainPad:m,Cache:d,owners:[t.store.proxy.edPublic]};g((function(e){s.create({network:t.store.network||t.store.networkPromise,channel:T.channel,owners:[t.store.proxy.edPublic],keys:T,store:t.store,lastKnownHash:void 0,newTeam:!0,Cache:d},e((function(n,r){if(n)return e.abort(),console.error(n),void f({error:"ROSTER_ERROR"});i=r;var o=c.createData(t.store.proxy);delete o.channel,i.init(o,e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})));var n,r=v.createEncryptor(x.keys),o={network:t.store.network,channel:x.channel,noChainPad:!0,crypto:r,metadata:{validateKey:x.keys.validateKey,owners:[t.store.proxy.edPublic]}},a=e();o.onReady=function(){n&&n.stop(),a()},o.onError=function(){e.abort(),f({error:"CHAT_INIT_ERROR"})},n=y.start(o)})).nThen((function(e){i.metadata({name:r.name},e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})).nThen((function(){var a=e.createRandomInteger();I.onMetadataUpdate=function(){var e=t.teams[a];e&&t.emit("ROSTER_CHANGE",a,e.clients)};var s=p.create(I),c=s.proxy;c.version=2,c.on("ready",(function(){var d={mailbox:{channel:n.createChannelId(),viewed:[],keys:{curvePrivate:e.encodeBase64(w.secretKey),curvePublic:e.encodeBase64(w.publicKey)}},drive:{edPrivate:e.encodeBase64(A.secretKey),edPublic:e.encodeBase64(A.publicKey)},chat:{edit:N.editHash,view:N.viewHash,validateKey:x.keys.validateKey,channel:x.channel},roster:{channel:T.channel,edit:_,view:T.viewKeyStr}},p=t.store.proxy.teams[a]={owner:!0,channel:b.channel,hash:h,roHash:O,password:l,keys:d,metadata:{name:r.name}};c.drive={},S(t,a,s,i,d,o,(function(){u.send("TEAM_CREATION"),t.store.mailbox.open("team-"+a,p.keys.mailbox,(function(){}),!0,{owners:p.keys.drive.edPublic}),t.updateMetadata(),f()}))})).on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,a)}))}))}(h,i,t,o);if("GET_EDITABLE_FOLDERS"!==a)if("CREATE_INVITE_LINK"!==a){if("GET_PREVIEW_CONTENT"!==a)return"ACCEPT_LINK_INVITATION"===a?h.store.offline?void o({error:"OFFLINE"}):void H(h,i,0,o):void 0;L(h,i,0,o)}else!function(n,t,r,o){var a=e.mkAsync(e.once(o)),i=t.teamId,s=n.teams[t.teamId],u=t.seeds,d=t.bytes64;if(i&&s){var h,p=s.roster;try{h=p.getState().metadata.name}catch(e){return void a({error:"TEAM_NAME_ERR"})}var v=t.message,y=t.name,m=t.hash,E=e.find(n,["store","proxy","teams",i]);try{var b=f.encryptHash(m,E.hash)}catch(e){console.error(e)}var O=f.derivePreviewKeys(u.preview),A=f.deriveInviteKeys(d),w=f.generateKeys(),D=t.role||"VIEWER",_=t.uses||1;g((function(e){!function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamName:h,message:v,author:c.createData(n.store.proxy,!1),displayName:y},i={channel:O.channel,type:"pad",version:2,keys:{cryptKey:O.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(i,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}(),function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamData:C(n,i,"MEMBER"===D),ephemeral:{edPublic:w.edPublic,edPrivate:w.edPrivate,curvePublic:w.curvePublic,curvePrivate:w.curvePrivate}},s={channel:A.channel,type:"pad",version:2,keys:{cryptKey:A.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(s,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}()})).nThen((function(e){s.pin([A.channel,O.channel],(function(e){e&&e.error&&console.error(e.error)})),f.createRosterEntry(s.roster,{curvePublic:w.curvePublic,content:{curvePublic:w.curvePublic,displayName:t.name,pending:!0,remaining:_,totalUses:_,role:D,hash:b,inviteChannel:A.channel,previewChannel:O.channel}},e((function(n){n&&(e.abort(),a(n))})))})).nThen((function(){a()}))}else a({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a];if(i){var s=i.manager.folders||{};o(Object.keys(s).filter((function(e){return!s[e].proxy.version})).map((function(n){var t=e.find(i,["user","userObject"]);return{name:e.find(s,[n,"proxy","metadata","title"]),path:t?t.findFile(n)[0]:[]}})))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster)if(n.curvePublic){var i=a.roster.getState().members[n.curvePublic];a.roster.remove([n.curvePublic],(function(t){if(!t)return i&&i.notifications?void e.store.mailbox.sendTo("KICKED_FROM_TEAM",{pending:n.pending,teamChannel:C(e,o).channel,teamName:C(e,o).metadata.name},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)})):r();r({error:t})}))}else r({error:"MISSING_DATA"});else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=e.store.proxy.curvePublic;a.roster.remove([i],(function(n){n?r({error:n}):(D(e,o),r())}))}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else M(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];a?a.offline?r({error:"OFFLINE"}):a.roster?(n.metadata&&delete n.metadata.offline,a.roster.metadata(n.metadata,(function(t){if(t)r({error:t});else{var a=e.store.proxy.teams[o];a&&(a.metadata=n.metadata),r()}}))):r({error:"NO_ROSTER"}):r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=(a.roster.getState()||{}).metadata||{};i.offline=a.offline,r(i)}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]);if(i){var s=n.teams[a];if(s)if(s.roster){var c,u=(s.roster.getState()||{}).members||{};g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(n.pending_owners=c.pending_owners,Array.isArray(c.pending_owners)&&c.pending_owners.forEach((function(t){var r;if(Object.keys(u).some((function(e){if(u[e].edPublic===t)return r=u[e],!0})),!r&&i.owner){var o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"RM_PENDING_OWNERS",value:[t]},(function(){}))};return o(i.channel),o(e.find(i,["keys","roster","channel"])),void o(e.find(i,["keys","chat","channel"]))}r.pendingOwner=!0})),n.store.messenger){var t=s.getChatData();(n.store.messenger.getOnlineList(t.channel)||[]).forEach((function(e){u[e]&&(u[e].online=!0)}))}Object.keys(u).forEach((function(e){var n=u[e];if(n.inviteChannel&&n.hash)if(i.hash)try{n.hash=f.decryptHash(n.hash,i.hash)}catch(e){console.error(e)}else delete n.hash})),o(u)}))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=e.teams[n.teamId];if(o){var a=function(){e.emit("ROSTER_CHANGE",n.teamId,o.clients)};e.store.messenger?e.store.messenger.openTeamChat(o.getChatData(),a,t,r):A=function(){e.store.messenger.openTeamChat(o.getChatData(),a,t,r)}}else r({error:"ENOENT"})}(h,i,t,o);else!function(n){var t=e.clone(b);Object.keys(t).forEach((function(e){h.teams[e]?t[e].offline=h.teams[e].offline:(t[e].error=!0,h.nocache[e]&&(t[e].offline=!0))})),n(t)}(o);else!function(e,n,t,r){F(e,t);try{e.store.messenger.removeClient(t)}catch(e){}if(A=function(){},n)if(!e.onReadyHandlers[n]||e.teams[n])if(e.teams[n]){var o=e.teams[n].clients;-1===o.indexOf(t)&&o.push(t),r()}else r({error:"EINVAL"});else-1===e.onReadyHandlers[n].indexOf(t)&&e.onReadyHandlers[n].push({cId:t,cb:r});else r()}(h,i,t,o)},a}},b.anonGetPreviewContent=function(e,n,t){L(e,n,0,t)},b};e.exports&&(e.exports=n(Z(),te(),Y(),je(),ze(),Ue(),We(),mt(),wn(),Ae(),(gt||(gt=1,function(e){e.exports&&(e.exports=function(e,n,t,r){var o={},a=e.encodeBase64,i=e.decodeBase64;o.generateKeys=function(){var e=t.sign.keyPair(),n=t.box.keyPair();return{edPublic:a(e.publicKey),edPrivate:a(e.secretKey),curvePublic:a(n.publicKey),curvePrivate:a(n.secretKey)}},o.generateSignPair=function(){var e=t.sign.keyPair();return{validateKey:a(e.publicKey),signKey:a(e.secretKey)}};var s=function(r){var o=n.dispenser(i(r));return{channel:e.uint8ArrayToHex(o(16)),cryptKey:o(t.secretbox.keyLength)}};o.deriveInviteKeys=s,o.derivePreviewKeys=s,o.createRosterEntry=function(e,n,t){var r={};r[n.curvePublic]=n.content,e.invite(r,t)};var c=e.decodeUTF8;return o.encryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.encrypt(e,a)},o.decryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.decrypt(e,a)},o}(Z(),Ne(),N(),M()))}(bt)),bt.exports),Rn(),fe(),Cn(),g(),M(),y(),w(),qe(),N()))})()}(vt)),vt.exports}var At,wt={exports:{}};function Dt(){return At||(At=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c)=>{var u=e.Curve,f={setCustomize:e=>{i=e.Messages}},l="MSG",d="UNFRIEND",h="MAP_ID",p="MAP_ID_ACK",v=function(e){return JSON.parse(JSON.stringify(e))},y=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=p.store.network||e;n.on("message",(function(e,n){N(p,e,n)})),n.on("disconnect",(function(){p.emit("DISCONNECT",null,C(p))})),n.on("reconnect",(function(){p.emit("RECONNECT",null,C(p))}))}));return h.networkPromise?.then(b),p.store.network&&b(),f.onFriendUpdate=function(e){var n=g(h.proxy,e);if(n&&n.channel){var t=p.channels[n.channel];t&&p.emit("UPDATE_DATA",{info:v(n),channel:n.channel},t.clients)}},f.onFriendAdded=function(e){if(p.friendsClients.length){var n=g(p.store.proxy,e.curvePublic);if("object"==typeof n)if(n.channel){var t=n.channel;p.channels[t]||P(p,null,n,(function(){u("FRIEND",{curvePublic:n.curvePublic},p.friendsClients)}))}}},f.onFriendRemoved=function(e,n){I(p,e,n)},f.getOnlineList=function(e){return function(e,n){var t=e.channels[n];if(t){var r=[],o=m(e.store.proxy,!1);return r.push(o.curvePublic),t.wc.members.forEach((function(n){if(n!==e.store.network.historyKeeper){var o=t.mapId[n]||{};o.curvePublic&&-1===r.indexOf(o.curvePublic)&&r.push(o.curvePublic)}})),r}}(p,e)},f.storeValidateKey=function(e,n){p.validateKeys[e]=n},f.leavePad=function(e){delete p.validateKeys[e],Object.keys(p.channels).some((function(n){var t=p.channels[n];if(t.padChan===e){t.wc&&t.wc.leave();var r=p.store.network;return t.onReconnect&&r.off("reconnect",t.onReconnect),t.stopped=!0,delete p.channels[n],!0}}))},f.openTeamChat=function(n,r,o,a){!function(n,r,o,a,i){var s=o,c=s.channel,u=s.secret;if(c&&u){var f=t.once(t.mkAsync((function(){n.emit("TEAMCHAT_READY",c,[r]),i({readOnly:"object"==typeof u.keys&&!u.keys.validateKey,channel:c})}))),l=n.channels[c];if(l)l.onReady.reg((function(){-1===l.clients.indexOf(r)&&l.clients.push(r),f()}));else{u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var d=e.createEncryptor(u.keys),h=u.keys&&u.keys.validateKey||s.validateKey,p={teamId:o.teamId,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:d,channel:c,isTeamChat:!0,decrypt:function(e){return d.decrypt(e,h)},clients:[r],onUserlistUpdate:a,onReady:f};R(n,p)}}else i({error:"EINVAL"})}(p,o,n,r,a)},f.removeClient=function(e){!function(e,n){var t=e.friendsClients.indexOf(n);-1!==t&&e.friendsClients.splice(t,1),Object.keys(e.channels).forEach((function(t){var r=e.channels[t],o=r.clients,a=o.indexOf(n);if(-1!==a&&o.splice(a,1),0===o.length){r.wc&&r.wc.leave();var i=e.store.network;return r.onReconnect&&i.off("reconnect",r.onReconnect),r.stopped=!0,delete e.channels[t],!0}}))}(p,e)},f.execCommand=function(n,r,s){var u=r.cmd,f=r.data;"INIT_FRIENDS"!==u?"GET_ROOMS"!==u?"GET_MUTED_USERS"!==u?"GET_USERLIST"!==u?"OPEN_PAD_CHAT"!==u?"GET_MY_INFO"!==u?"REMOVE_FRIEND"!==u?"CANCEL_FRIEND"!==u?"MUTE_USER"!==u?"UNMUTE_USER"!==u?"GET_STATUS"!==u?"GET_MORE_HISTORY"!==u?"SEND_MESSAGE"!==u?"SET_CHANNEL_HEAD"!==u?"CLEAR_OWNED_CHANNEL"!==u||function(e,n,t){var r=e.channels[n];r?e.store.rpc?e.store.rpc.clearOwnedChannel(n,(function(o){t({error:o}),o||(r.messages=[],e.emit("CLEAR_CHANNEL",n,r.clients))})):t({error:"RPC_NOT_READY"}):t({error:"NO_CHANNEL"})}(p,f,s):_(p,f.id,f.sig,s):function(e,n,t,r){var o=e.channels[n];if(o)if(o.readOnly)r({error:"FORBIDDEN"});else if(e.store.network.webChannels.some((function(e){if(e.id===o.wc.id)return!0}))){var s=e.store.proxy||{},c=[l,s.curvePublic,+new Date,t];if(!o.isFriendChat){var u=s[a.displayNameKey]||i.anonymous+"#"+(s.uid||e.store.noDriveUid).slice(0,5);c.push(u)}var f=JSON.stringify(c),d=o.encrypt(f);o.wc.bcast(d).then((function(){x(e,o,d),r()}),(function(e){r({error:e})}))}else r({error:"NO_SUCH_CHANNEL"});else r({error:"NO_CHANNEL"})}(p,f.id,f.content,s):function(e,n,r,o,a){if("function"==typeof a)if("string"==typeof r){var i=e.channels[n];if(void 0!==i){var s=t.uid();A(e,s,n,a);var c=["GET_HISTORY_RANGE",i.id,{from:r,count:o,txid:s}],u=e.store.network;u.sendto(u.historyKeeper,JSON.stringify(c)).then((function(){}),(function(e){console.error(e)}))}else console.error("chan is undefined. we're going to have a problem here")}else a([])}(p,f.id,f.sig,f.count,s):function(e,n,t){var r=e.channels[n];if(r){r.onUserlistUpdate&&r.onUserlistUpdate();var o=e.store.proxy||{};t(r.wc.members.some((function(n){if(n!==e.store.network.historyKeeper){var t=r.mapId[n]||void 0;return!!t&&t.curvePublic!==o.curvePublic}})))}else t("NO_SUCH_CHANNEL")}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};delete i[n],e.emit("UPDATE_MUTED",null,C(e)),o(Object.keys(i).length)}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};i[n.curvePublic]||(i[n.curvePublic]=n,e.emit("UPDATE_MUTED",null,C(e))),o()}(p,f,s):function(e,n,r){var o=t.once(r);"function"==typeof o?e.Store.cancelFriendRequest(n,o):console.error("NO_CALLBACK")}(p,f,s):function(e,n,r){var a=t.once(r);if("function"==typeof a){var i=e.store.proxy,s=g(i,n);if(!s)return console.error("friend is not valid"),void a({error:"INVALID_FRIEND"});var c=e.channels[s.channel];if(e.store.mailbox&&s.curvePublic&&s.notifications)o.removeFriend(e.store,n,(function(n){n&&n.error?a({error:n.error}):(e.updateMetadata(),a(n))}));else if(c)try{var u=[d,i.curvePublic,+new Date],f=JSON.stringify(u),l=c.encrypt(f);c.wc.bcast(l).then((function(){I(e,n,s.channel),S(e,n,(function(){a()}))}),(function(t){t?a({error:t}):(I(e,n,s.channel),S(e,n,(function(){a()})))}))}catch(e){a({error:e})}else a({error:"NO_SUCH_CHANNEL"})}else console.error("NO_CALLBACK")}(p,f,s):function(e,n){var t=e.store.proxy||{};n({curvePublic:t.curvePublic,displayName:t[a.displayNameKey]})}(p,s):function(n,r,o,a){var i=o.channel,s=t.once(t.mkAsync((function(){n.emit("PADCHAT_READY",i,[r]),a()}))),c=n.channels[i];if(c)c.onReady.reg((function(){-1===c.clients.indexOf(r)&&c.clients.push(r),s()}));else{var u=o.secret;u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var f=e.createEncryptor(u.keys),l=u.keys&&u.keys.validateKey||n.validateKeys[u.channel],d={padChan:o.secret&&o.secret.channel,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:f,channel:o.channel,isPadChat:!0,decrypt:function(e){return f.decrypt(e,l)},clients:[r],onReady:s};R(n,d)}}(p,n,f,s):function(e,n,t){var r=e.channels[n.id];if(r)if(r.isFriendChat){var o=O(e,n.id);if(!o)return void t({error:"NO_SUCH_FRIEND"});t([o])}else t([]);else t({error:"NO_SUCH_CHANNEL"})}(p,f,s):function(e,n){var t=e.store.proxy;if(!n)return t.mutedUsers||{};n(t.mutedUsers||{})}(p,s):function(e,n,t){var r=e.store.proxy;if(n&&n.curvePublic){var o=n.curvePublic,a=g(r,o);if(!a)return void t({error:"NO_SUCH_FRIEND"});var i=e.channels[a.channel];return i?void t([{id:i.id,isFriendChat:!0,name:a.displayName,lastKnownHash:a.lastKnownHash,curvePublic:a.curvePublic,messages:i.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.padChat){var s=e.channels[n.padChat];return s?void t([{id:s.id,isPadChat:!0,messages:s.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.teamChat){var c=e.channels[n.teamChat];return c?void t([{id:c.id,isTeamChat:!0,messages:c.messages}]):void t({error:"NO_SUCH_CHANNEL"})}var u=Object.keys(e.channels).map((function(n){var t,r,o,a=e.channels[n];if(a.isFriendChat){var i=O(e,n);if(!i)return null;t=i.displayName,r=i.lastKnownHash,o=i.curvePublic}else{if(a.isPadChat)return;if(a.isTeamChat)return}return{id:a.id,isFriendChat:a.isFriendChat,name:t,lastKnownHash:r,curvePublic:o,messages:a.messages}})).filter((function(e){return e}));t(u)}(p,f,s):function(e,n,t){var r=E(e.store.proxy);c((function(t){Object.keys(r).forEach((function(o){if("me"!==o){var a=v(r[o]);"object"==typeof a&&a.channel&&P(e,n,a,t())}else delete r.me.channel}))})).nThen((function(){-1===e.friendsClients.indexOf(n)&&e.friendsClients.push(n),t()}))}(p,n,s)},f},f};e.exports&&(e.exports=n(M(),te(),Z(),je(),wn(),Y(),void 0,on(),qe()))})()}(wt)),wt.exports}var _t,Tt={exports:{}};function St(){return _t||(_t=1,function(e){(()=>{const n=(e,n,t,r)=>{var o={},a={};var i=function(n,t,o,a,i){var s,c=e.once(e.mkAsync(i)),u=function(n,t){if(!t)return e.find(n.store,["proxy","edPublic"]);var r=e.find(n,["store","proxy","teams",t]);return e.find(r,["keys","drive","edPublic"])}(n,a),f=n.Store,l=0,d=0,h=0;r((function(e){f.getFileSize(null,{channel:t},e((function(n){return n&&n.error?(e.abort(),void c(n)):void 0===n.size?(e.abort(),void c({error:"ENOENT"})):void(l=n.size)}))),f.getHistory(null,{channel:t,lastKnownHash:o},e((function(n){if(n&&n.error)return e.abort(),void c(n);if(!Array.isArray(n))return e.abort(),void c({error:"EINVAL"});if(n.length){s=n[0].hash;var t=n.map((function(e){return e.msg}));d=t.join("\n").length}})),!0),f.getPadMetadata(null,{channel:t},e((function(n){if((!n||!n.error)&&n&&"object"==typeof n)return h=JSON.stringify(n).length,n&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(u)?void 0:(e.abort(),void c({error:"INSUFFICIENT_PERMISSIONS"}))})))})).nThen((function(){c({size:l-h-d,hash:s})}))};return a.GET_HISTORY_SIZE=function(o,a,s,c){if(o.store.loggedIn&&o.store.rpc){var u=a.channels;if(Array.isArray(u)){var f=[];a.account?u=function(r){var o=[],a=e.find(r.store,["proxy","edPublic"]);-1!==(e.find(r.store,["driveMetadata","owners"])||[]).indexOf(a)&&o.push(r.store.driveChannel);var i=r.store.proxy.profile;if(i){var s=i.edit?n.hrefToHexChannelId("/profile/#"+i.edit,null):null;s&&o.push(s)}r.store.proxy.todo&&o.push(n.hrefToHexChannelId("/todo/#"+r.store.proxy.todo,null));var c=r.store.proxy.mailboxes;if(c){var u=Object.keys(c).map((function(e){return{lastKnownHash:c[e].lastKnownHash,channel:c[e].channel}}));Array.prototype.push.apply(o,u)}var f=r.store.proxy[t.SHARED_FOLDERS];if(f){var l=Object.keys(f).map((function(e){var n=f[e];if(n&&n.owners&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(a))return n.channel})).filter(Boolean);Array.prototype.push.apply(o,l)}return o}(o):a.team&&(u=function(n,t){let r=e.find(n.store,["proxy","teams",t]);if(!r)return[];let o=[r.channel],a=r.keys.roster;return o.push({channel:a.channel,lastKnownHash:a.lastKnownHash}),o}(o,a.team));var l=0,d=[];r((function(e){u.forEach((function(n){var t,r=n;"object"==typeof n&&n.channel&&(r=n.channel,t=n.lastKnownHash),i(o,r,t,a.teamId,e((function(e){e&&e.error?f.push(e.error):(l+=e.size,e.hash&&d.push({channel:r,hash:e.hash}))})))}))})).nThen((function(){c({warning:f.length?f:void 0,channels:d,size:l})}))}else c({error:"EINVAL"})}else c({error:"INSUFFICIENT_PERMISSIONS"})},a.TRIM_HISTORY=function(e,n,t,o){if(e.store.loggedIn&&e.store.rpc){var a=n.channels;if(Array.isArray(a)){var i=function(e,n){if(!n)return e.store.rpc;var t=e.store.modules.team;if(t){var r=t.getTeam(n);if(r)return r.rpc}}(e,n.teamId);if(i){var s=[];r((function(e){a.forEach((function(n){i.trimHistory(n,e((function(e){e&&s.push(e)})))}))})).nThen((function(){1===a.length&&s.length?o({error:s[0]}):o({warning:s.length?s:void 0})}))}else o({error:"ENORPC"})}else o({error:"EINVAL"})}else o({error:"INSUFFICIENT_PERMISSIONS"})},o.init=function(e,n,t){var r={};if(e.store){var o={store:e.store,Store:e.Store,pinPads:e.pinPads,updateMetadata:e.updateMetadata,emit:t};return r.execCommand=function(e,n,t){var r=n.cmd,i=n.data;try{a[r](o,i,e,t)}catch(e){console.error(e)}},r}},o};e.exports&&(e.exports=n(Z(),te(),Ue(),qe()))})()}(Tt)),Tt.exports}var xt,Nt={exports:{}},It={exports:{}};function Ct(){return xt||(xt=1,function(e){(()=>{const n=e=>{var n={};const t=globalThis;var r=function(){},o=n.getWeekNo=function(e,n){"number"!=typeof n&&(n=1);var t=new Date(e.getFullYear(),0,1),r=t.getDay()-n;r=r>=0?r:r+7;var o,a=Math.floor((e.getTime()-t.getTime())/864e5)+1;if(r<4){if((o=Math.floor((a+r-1)/7)+1)>52){var i=new Date(e.getFullYear()+1,0,1).getDay()-n;o=(i=i>=0?i:i+7)<4?1:53}}else o=Math.floor((a+r-1)/7);return o},a=function(e){var n=new Date(e.getFullYear(),0,0),t=e-n+60*(n.getTimezoneOffset()-e.getTimezoneOffset())*1e3;return Math.floor(t/864e5)},i=n.DAYORDER=["SU","MO","TU","WE","TH","FR","SA"],s=function(e){var n=Number(e.slice(0,-2)),t=i.indexOf(e.slice(-2));return n?[n,t]:t},c=function(e,n){var t=e.getDay();t>=(n="number"==typeof n?n:1)?e.setDate(e.getDate()-(t-n)):e.setDate(e.getDate()-(7+t-n))},u=function(e){return e.getFullYear()+"-"+(e.getMonth()+1)+"-"+e.getDate()},f={daily:function(e,n){e.setDate(e.getDate()+n)},weekly:function(e,n){e.setDate(e.getDate()+7*n)},monthly:function(e,n){e.setMonth(e.getMonth()+n)},yearly:function(e,n){e.setFullYear(e.getFullYear()+n)}},l={month:function(e,n,t){var r=new Date(n.start),o=(t-(e.getMonth()+1)+12)%12,a=e.getMonth()+o;if(e.setMonth(a),e.setDate(r.getDate()),e.getMonth()===a)return!0},weekno:function(e,n,t,r){var a=r&&r.wkst;"number"!=typeof a&&(a=1);var i=new Date(n.start),s=new Date(e.getFullYear(),11,31),u=o(s,a),f=1===u;1===u&&(u=52);var l=o(e,a);if(!t||t>u)return!1;t<0&&(t=u+t+1);var d=t-l,h=new Date(+e);h.setDate(h.getDate()+7*d),c(h,a);var p="aaaaaaa".split("").map((function(n,t){var r=new Date(+h);if(r.setDate(r.getDate()+t),r.getFullYear()===e.getFullYear())return r.toLocaleDateString()!==i.toLocaleDateString()&&r})).filter(Boolean);return 1===t&&f&&(c(s,a),"aaaaaaa".split("").some((function(n,t){var r=new Date(+s);if(r.setDate(r.getDate()+t),r.toLocaleDateString()!==i.toLocaleDateString())return r.getFullYear()>e.getFullYear()||void p.push(r)}))),p.length?p:void 0}};l.yearday=function(e,n,t){var r=e.getFullYear();if(function(e,n){if(!("number"!=typeof n||Math.abs(n)<1||Math.abs(n)>366))return n<0&&(n=a(new Date(e.getFullYear(),11,31))+n+1),e.setMonth(0),e.setDate(n),!0}(e,t)&&e.getFullYear()===r)return!0},l.monthday=function(e,n,t,r){if("number"!=typeof t||Math.abs(t)<1||Math.abs(t)>31)return!1;var o=function(e,n){var t=e.getMonth();n<0&&(n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate()+n+1);return e.setDate(n),e.getMonth()===t};if("monthly"===r.freq)return o(e,t);var a="aaaaaaaaaaaa".split("").map((function(n,r){var a=new Date(e.getFullYear(),r,1);return o(a,t)?a:void 0})).filter(Boolean);return a.length?a:void 0},l.day=function(e,n,t,r){var o,a=s(t);Array.isArray(a)&&(o=a[0],a=a[1]);var i=[];if(![0,1,2,3,4,5,6].includes(a))return!1;var c,u=function(e){if(o){var n=[];"aaaaaaaaaaaa".split("").some((function(t,r){if(void 0===e||r===e){var a,s=i.filter((function(e){return e.getMonth()===r}));return a=o<0?s.length+o:o-1,n.push(s[a]),void 0!==e&&r===e}})),i=n.filter(Boolean)}};if("yearly"===r.freq){c=new Date(+e);for(var f=e.getFullYear();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getFullYear()===f;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(),i}if("monthly"===r.freq){c=new Date(+e);for(var l=e.getMonth();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getMonth()===l;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(l),i}if("weekly"===r.freq)for(;e.getDay()!==a;)e.setDate(e.getDate()+1);return!0};var d={month:function(e,n){return e.filter((function(e){return n.includes(e.getMonth()+1)}))},weekno:function(e,n,t){return e.filter((function(e){var r=t&&t.wkst;"number"!=typeof r&&(r=1);var a=new Date(e.getFullYear(),11,31),i=o(a,r);1===i&&(i=52);var s=o(e,r);return n.some((function(e){return e>0?e===s:s===i+e+1}))}))},yearday:function(e,n){return e.filter((function(e){var t=a(e),r=a(new Date(e.getFullYear(),11,31));return n.some((function(e){return e>0?e===t:t===r+e+1}))}))},monthday:function(n,t){return n.filter((function(n){var r=e.clone(t);return(r=r.map((function(e){e<0&&(e=new Date(n.getFullYear(),n.getMonth()+1,0).getDate()+e+1);return e}))).includes(n.getDate())}))},day:function(e,n,t){return e.filter((function(e){var r=e.toLocaleDateString(),o="yearly";return("monthly"===t.freq||"yearly"===t.freq&&t.by&&t.by.month)&&(o="monthly"),n.some((function(n){var t,a=s(n);if(Array.isArray(a)&&(t=a[0],a=a[1]),!t)return e.getDay()===a;var i=new Date(e.getFullYear(),e.getMonth(),1);return"yearly"===o&&i.setMonth(0),l.day(i,{},n,{freq:o}).some((function(e){return e.toLocaleDateString()===r}))}))}))},setpos:function(n,t){var r=n.slice(),o=e.deduplicateString(t.slice().map((function(e){return e>0?e-1:0!==e?r.length+e:void 0})));return n.filter((function(e){var n=r.indexOf(e);return o.includes(n)}))}},h=["month","weekno","yearday","monthday","day"],p=["month","monthday","day"];n.getMonthId=function(e){return e.getFullYear()+"-"+e.getMonth()};var v=t.CP_calendar_cache={},y={};n.resetCache=function(){v=t.CP_calendar_cache={},y={}};var m=function(n){if(!n.recUpdate)return[];var t={},r=n.recUpdate.from;return Object.keys(r||{}).forEach((function(e){var n=r[e];n.recurrenceRule&&(t[e]=n.recurrenceRule)})),Object.keys(t).sort((function(e,n){return Number(e)-Number(n)})).map((function(n){var r=e.clone(t[n]);if(f[r.freq]&&!(r.interval&&r.interval<1))return r._start=Number(n),r})).filter(Boolean)};n.getRecurring=function(n,o){t.CP_DEV_MODE&&(r=console.warn);var i=[];return n.forEach((function(n){var t=n.split("-"),s=new Date(t[0],t[1]),g=new Date(+s);g.setMonth(g.getMonth()+1),g.setMilliseconds(-1),r("Compute month",s.toLocaleDateString()),(o||[]).forEach((function(n){var t=new Date(n.start),o=new Date(n.end),E=n,b=n.recurrenceRule;if(b){var O=m(n),A=O.shift();if(!(t>=g)){for(var w=b.until,D=O.slice(),_=A;_&&_._start&&_._startn)){var t;if(n.getFullYear()===e.getFullYear())t=a(n)-a(e);else{var r=new Date(e.getFullYear(),11,31);for(t=a(r)-a(e)+a(n);r.getFullYear()+1=S)){r("Start iteration",a.toLocaleDateString());var m=function(n,t,o){var a=e.clone(t),i=new Date(a.start),s=a.id.split("|")[0],u=o.toLocaleDateString();v[s]=v[s]||{};var y=n.interval||1,m=n.freq,g=[],E=function(e,t){g=d[e](g,t,n)},b=function(e){return function(t){var r=new Date(+o);"yearly"===n.freq?(r.setMonth(0),r.setDate(1)):"monthly"===n.freq?r.setDate(1):"weekly"===n.freq?c(r,n.wkst):n.freq;var s=l[e](r,a,t,n);if(s)if(Array.isArray(s))s=s.filter((function(e){return e.toLocaleDateString()!==i.toLocaleDateString()})),Array.prototype.push.apply(g,s);else{if(r.toLocaleDateString()===i.toLocaleDateString())return;g.push(r)}}},O=e.once((function(){f[m](o,y)})),A=function(){"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O();var e=new Date(+o);if("monthly"===m||"yearly"===m){if(e.setDate(i.getDate()),e.getDate()!==i.getDate())return;if("yearly"===m&&e.getMonth()!==i.getMonth())return}g.push(e)};if(Array.isArray(v[s][u]))return r("Get cache",s,u),"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O(),v[s][u];if(n.by&&"yearly"===m){var w=h.slice(),D=!1;(n.by.weekno||n.by.yearday||n.by.monthday||n.by.day)&&(w.shift(),D=!0);var _=!0;w.forEach((function(e){var t=n.by[e];t&&(_?(t.forEach(b(e)),_=!1):"day"===e?n.by.yearday||n.by.monthday||n.by.weekno?E("day",n.by.day):n.by.day.forEach(b("day")):E(e,t))})),n.by.month&&D&&E("month",n.by.month)}n.by&&"monthly"===m&&(n.by.monthday||n.by.day?n.by.monthday?n.by.monthday.forEach(b("monthday")):n.by.day&&n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month),n.by.day&&n.by.monthday&&E("day",n.by.day)),n.by&&"weekly"===m&&(n.by.day?n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month)),n.by&&"daily"===m&&(A(),p.forEach((function(e){var t=n.by[e];t&&E(e,t)}))),g.sort((function(e,n){return e-n})),n.by&&n.by.setpos&&E("setpos",n.by.setpos),n.by&&Object.keys(n.by).length?O():A();var T=[];return g=g.filter((function(e){var n=new Date(+e).toLocaleDateString();return!T.includes(n)&&(T.push(n),!0)})),r("Set cache",s,u),v[s][u]=g,g}(b,n,a);if(r("Iteration results",JSON.stringify(m.map((function(e){return new Date(e).toLocaleDateString()})))),!m.length)return a.getFullYear()=S)return r(h.toLocaleDateString(),"count"),w=!0,!0;if(h>=g)return r(h.toLocaleDateString(),"endMonth"),w=!0,!0;if(b.until&&h>b.until)return r(h.toLocaleDateString(),"until"),w=!0,!0;if(!(h=g||h=s){if(y[c.id]&&y[c.id].includes(c.start))return;y[c.id]=y[c.id]||[],y[c.id].push(c.start)}if(E.timeZone&&!c.isAllDay){var m=function(e,n,t){var r=function(e,n){let t=e.toLocaleString("en-CA",{timeZone:n,hour12:!1}).replace(", ","T");return t+="."+e.getMilliseconds().toString().padStart(3,"0"),-(new Date(t+"Z")-e)},o=Intl.DateTimeFormat().resolvedOptions().timeZone,a=r(n,e)-r(t,e);return r(n,o)-r(t,o)-a}(E.timeZone,t,h);c.start+=m,c.end+=m}return i.push(c),D?(v(),!0):void 0}r(h.toLocaleDateString(),"start")})),w||N(a)}};N(t),r("Added this month (all events)",i.map((function(e){return new Date(e.start).toLocaleDateString()})))}}}}}))})),i},n.getAllOccurrences=function(e){if(!e.recurrenceRule)return[e.start];var t=e.recurrenceRule;if(!t.until&&!t.count)return!1;var r=[e.start],o=new Date(e.start);o.setDate(15);for(var a=[],i=0;(a=n.getRecurring([n.getMonthId(o)],[e]))&&(t.count?r.length=1e4;)t.setDate(t.getDate()-a),o++;return{d:o*=a,h:(t=new Date(n)).getHours()-r.getHours(),m:t.getMinutes()-r.getMinutes()}};return n.applyUpdates=function(e){return e.forEach((function(e){if(e.raw={start:e.start,end:e.end},e.recUpdate){var n,t=e.recUpdate.from||{},r=e.recUpdate.one||{},o=e.start,a=m(e).filter((function(e){return e._start>o})).shift(),i=function(n,t){var r=n[t],o=new Date(e.raw[t]);o.setDate(o.getDate()+r.d),o.setHours(o.getHours()+r.h),o.setMinutes(o.getMinutes()+r.m),e[t]=+o};(n=t,Object.keys(n).sort((function(e,n){return Number(e)-Number(n)}))).forEach((function(n){o",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},o={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var n=e%100;if(n>3&&n<21)return"th";switch(n%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},a=function(e,n){return void 0===n&&(n=2),("000"+e).slice(-1*n)},i=function(e){return!0===e?1:0};function s(e,n){var t;return function(){var r=this;clearTimeout(t),t=setTimeout((function(){return e.apply(r,arguments)}),n)}}var c=function(e){return e instanceof Array?e:[e]};function u(e,n,t){if(!0===t)return e.classList.add(n);e.classList.remove(n)}function f(e,n,t){var r=window.document.createElement(e);return n=n||"",t=t||"",r.className=n,void 0!==t&&(r.textContent=t),r}function l(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function d(e,n){return n(e)?e:e.parentNode?d(e.parentNode,n):void 0}function h(e,n){var t=f("div","numInputWrapper"),r=f("input","numInput "+e),o=f("span","arrowUp"),a=f("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?r.type="number":(r.type="text",r.pattern="\\d*"),void 0!==n)for(var i in n)r.setAttribute(i,n[i]);return t.appendChild(r),t.appendChild(o),t.appendChild(a),t}function p(e){try{return"function"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(n){return e.target}}var v=function(){},y=function(e,n,t){return t.months[n?"shorthand":"longhand"][e]},m={D:v,F:function(e,n,t){e.setMonth(t.months.longhand.indexOf(n))},G:function(e,n){e.setHours(parseFloat(n))},H:function(e,n){e.setHours(parseFloat(n))},J:function(e,n){e.setDate(parseFloat(n))},K:function(e,n,t){e.setHours(e.getHours()%12+12*i(new RegExp(t.amPM[1],"i").test(n)))},M:function(e,n,t){e.setMonth(t.months.shorthand.indexOf(n))},S:function(e,n){e.setSeconds(parseFloat(n))},U:function(e,n){return new Date(1e3*parseFloat(n))},W:function(e,n,t){var r=parseInt(n),o=new Date(e.getFullYear(),0,2+7*(r-1),0,0,0,0);return o.setDate(o.getDate()-o.getDay()+t.firstDayOfWeek),o},Y:function(e,n){e.setFullYear(parseFloat(n))},Z:function(e,n){return new Date(n)},d:function(e,n){e.setDate(parseFloat(n))},h:function(e,n){e.setHours(parseFloat(n))},i:function(e,n){e.setMinutes(parseFloat(n))},j:function(e,n){e.setDate(parseFloat(n))},l:v,m:function(e,n){e.setMonth(parseFloat(n)-1)},n:function(e,n){e.setMonth(parseFloat(n)-1)},s:function(e,n){e.setSeconds(parseFloat(n))},u:function(e,n){return new Date(parseFloat(n))},w:v,y:function(e,n){e.setFullYear(2e3+parseFloat(n))}},g={D:"(\\w+)",F:"(\\w+)",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"(\\w+)",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"(\\w+)",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},E={Z:function(e){return e.toISOString()},D:function(e,n,t){return n.weekdays.shorthand[E.w(e,n,t)]},F:function(e,n,t){return y(E.n(e,n,t)-1,!1,n)},G:function(e,n,t){return a(E.h(e,n,t))},H:function(e){return a(e.getHours())},J:function(e,n){return void 0!==n.ordinal?e.getDate()+n.ordinal(e.getDate()):e.getDate()},K:function(e,n){return n.amPM[i(e.getHours()>11)]},M:function(e,n){return y(e.getMonth(),!0,n)},S:function(e){return a(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,n,t){return t.getWeek(e)},Y:function(e){return a(e.getFullYear(),4)},d:function(e){return a(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return a(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,n){return n.weekdays.longhand[e.getDay()]},m:function(e){return a(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a,s=e.isMobile,c=void 0!==s&&s;return function(e,n,r){var o=r||i;return void 0===t.formatDate||c?n.split("").map((function(n,r,a){return E[n]&&"\\"!==a[r-1]?E[n](e,o,t):"\\"!==n?n:""})).join(""):t.formatDate(e,n,o)}},O=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a;return function(e,n,o,a){if(0===e||e){var s,c=a||i,u=e;if(e instanceof Date)s=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)s=new Date(e);else if("string"==typeof e){var f=n||(t||r).dateFormat,l=String(e).trim();if("today"===l)s=new Date,o=!0;else if(/Z$/.test(l)||/GMT$/.test(l))s=new Date(e);else if(t&&t.parseDate)s=t.parseDate(e,f);else{s=t&&t.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var d=void 0,h=[],p=0,v=0,y="";p=0?new Date:new Date(E.config.minDate.getTime()),t=D(E.config);n.setHours(t.hours,t.minutes,t.seconds,n.getMilliseconds()),E.selectedDates=[n],E.latestSelectedDateObj=n}void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var n="keydown"===e.type,t=p(e),r=t;void 0!==E.amPM&&t===E.amPM&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]);var o=parseFloat(r.getAttribute("min")),s=parseFloat(r.getAttribute("max")),c=parseFloat(r.getAttribute("step")),u=parseInt(r.value,10),f=u+c*(e.delta||(n?38===e.which?1:-1:0));if(void 0!==r.value&&2===r.value.length){var l=r===E.hourElement,d=r===E.minuteElement;fs&&(f=r===E.hourElement?f-s-i(!E.amPM):o,d&&L(void 0,1,E.hourElement)),E.amPM&&l&&(1===c?f+u===23:Math.abs(f-u)>c)&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]),r.value=a(f)}}(e);var r=E._input.value;N(),be(),E._input.value!==r&&E._debouncedChange()}function N(){if(void 0!==E.hourElement&&void 0!==E.minuteElement){var e,n,t=(parseInt(E.hourElement.value.slice(-2),10)||0)%24,r=(parseInt(E.minuteElement.value,10)||0)%60,o=void 0!==E.secondElement?(parseInt(E.secondElement.value,10)||0)%60:0;void 0!==E.amPM&&(e=t,n=E.amPM.textContent,t=e%12+12*i(n===E.l10n.amPM[1]));var a=void 0!==E.config.minTime||E.config.minDate&&E.minDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.minDate,!0);if(void 0!==E.config.maxTime||E.config.maxDate&&E.maxDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.maxDate,!0)){var s=void 0!==E.config.maxTime?E.config.maxTime:E.config.maxDate;(t=Math.min(t,s.getHours()))===s.getHours()&&(r=Math.min(r,s.getMinutes())),r===s.getMinutes()&&(o=Math.min(o,s.getSeconds()))}if(a){var c=void 0!==E.config.minTime?E.config.minTime:E.config.minDate;(t=Math.max(t,c.getHours()))===c.getHours()&&r=12)]),void 0!==E.secondElement&&(E.secondElement.value=a(t)))}function R(e){var n=p(e),t=parseInt(n.value)+(e.delta||0);(t/1e3>1||"Enter"===e.key&&!/[^\d]/.test(t.toString()))&&X(t)}function P(e,n,t,r){return n instanceof Array?n.forEach((function(n){return P(e,n,t,r)})):e instanceof Array?e.forEach((function(e){return P(e,n,t,r)})):(e.addEventListener(n,t,r),void E._handlers.push({remove:function(){return e.removeEventListener(n,t)}}))}function k(){ve("onChange")}function M(e,n){var t=void 0!==e?E.parseDate(e):E.latestSelectedDateObj||(E.config.minDate&&E.config.minDate>E.now?E.config.minDate:E.config.maxDate&&E.config.maxDate=0&&A(e,E.selectedDates[1])<=0}(n)&&!me(n)&&a.classList.add("inRange"),E.weekNumbers&&1===E.config.showMonths&&"prevMonthDay"!==e&&t%7==1&&E.weekNumbers.insertAdjacentHTML("beforeend",""+E.config.getWeek(n)+""),ve("onDayCreate",a),a}function j(e){e.focus(),"range"===E.config.mode&&re(e)}function K(e){for(var n=e>0?0:E.config.showMonths-1,t=e>0?E.config.showMonths:-1,r=n;r!=t;r+=e)for(var o=E.daysContainer.children[r],a=e>0?0:o.children.length-1,i=e>0?o.children.length:-1,s=a;s!=i;s+=e){var c=o.children[s];if(-1===c.className.indexOf("hidden")&&$(c.dateObj))return c}}function U(e,n){var t=ee(document.activeElement||document.body),r=void 0!==e?e:t?document.activeElement:void 0!==E.selectedDateElem&&ee(E.selectedDateElem)?E.selectedDateElem:void 0!==E.todayDateElem&&ee(E.todayDateElem)?E.todayDateElem:K(n>0?1:-1);void 0===r?E._input.focus():t?function(e,n){for(var t=-1===e.className.indexOf("Month")?e.dateObj.getMonth():E.currentMonth,r=n>0?E.config.showMonths:-1,o=n>0?1:-1,a=t-E.currentMonth;a!=r;a+=o)for(var i=E.daysContainer.children[a],s=t-E.currentMonth===a?e.$i+n:n<0?i.children.length-1:0,c=i.children.length,u=s;u>=0&&u0?c:-1);u+=o){var f=i.children[u];if(-1===f.className.indexOf("hidden")&&$(f.dateObj)&&Math.abs(e.$i-u)>=Math.abs(n))return j(f)}E.changeMonth(o),U(K(o),0)}(r,n):j(r)}function B(e,n){for(var t=(new Date(e,n,1).getDay()-E.l10n.firstDayOfWeek+7)%7,r=E.utils.getDaysInMonth((n-1+12)%12,e),o=E.utils.getDaysInMonth(n,e),a=window.document.createDocumentFragment(),i=E.config.showMonths>1,s=i?"prevMonthDay hidden":"prevMonthDay",c=i?"nextMonthDay hidden":"nextMonthDay",u=r+1-t,l=0;u<=r;u++,l++)a.appendChild(H(s,new Date(e,n-1,u),u,l));for(u=1;u<=o;u++,l++)a.appendChild(H("",new Date(e,n,u),u,l));for(var d=o+1;d<=42-t&&(1===E.config.showMonths||l%7!=0);d++,l++)a.appendChild(H(c,new Date(e,n+1,d%o),d,l));var h=f("div","dayContainer");return h.appendChild(a),h}function V(){if(void 0!==E.daysContainer){l(E.daysContainer),E.weekNumbers&&l(E.weekNumbers);for(var e=document.createDocumentFragment(),n=0;n1||"dropdown"!==E.config.monthSelectorType)){var e=function(e){return!(void 0!==E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&eE.config.maxDate.getMonth())};E.monthsDropdownContainer.tabIndex=-1,E.monthsDropdownContainer.innerHTML="";for(var n=0;n<12;n++)if(e(n)){var t=f("option","flatpickr-monthDropdown-month");t.value=new Date(E.currentYear,n).getMonth().toString(),t.textContent=y(n,E.config.shorthandCurrentMonth,E.l10n),t.tabIndex=-1,E.currentMonth===n&&(t.selected=!0),E.monthsDropdownContainer.appendChild(t)}}}function G(){var e,n=f("div","flatpickr-month"),t=window.document.createDocumentFragment();E.config.showMonths>1||"static"===E.config.monthSelectorType?e=f("span","cur-month"):(E.monthsDropdownContainer=f("select","flatpickr-monthDropdown-months"),E.monthsDropdownContainer.setAttribute("aria-label",E.l10n.monthAriaLabel),P(E.monthsDropdownContainer,"change",(function(e){var n=p(e),t=parseInt(n.value,10);E.changeMonth(t-E.currentMonth),ve("onMonthChange")})),Y(),e=E.monthsDropdownContainer);var r=h("cur-year",{tabindex:"-1"}),o=r.getElementsByTagName("input")[0];o.setAttribute("aria-label",E.l10n.yearAriaLabel),E.config.minDate&&o.setAttribute("min",E.config.minDate.getFullYear().toString()),E.config.maxDate&&(o.setAttribute("max",E.config.maxDate.getFullYear().toString()),o.disabled=!!E.config.minDate&&E.config.minDate.getFullYear()===E.config.maxDate.getFullYear());var a=f("div","flatpickr-current-month");return a.appendChild(e),a.appendChild(r),t.appendChild(a),n.appendChild(t),{container:n,yearElement:o,monthElement:e}}function J(){l(E.monthNav),E.monthNav.appendChild(E.prevMonthNav),E.config.showMonths&&(E.yearElements=[],E.monthElements=[]);for(var e=E.config.showMonths;e--;){var n=G();E.yearElements.push(n.yearElement),E.monthElements.push(n.monthElement),E.monthNav.appendChild(n.container)}E.monthNav.appendChild(E.nextMonthNav)}function q(){E.weekdayContainer?l(E.weekdayContainer):E.weekdayContainer=f("div","flatpickr-weekdays");for(var e=E.config.showMonths;e--;){var n=f("div","flatpickr-weekdaycontainer");E.weekdayContainer.appendChild(n)}return W(),E.weekdayContainer}function W(){if(E.weekdayContainer){var e=E.l10n.firstDayOfWeek,t=n(E.l10n.weekdays.shorthand);e>0&&e\n "+t.join("")+"\n \n "}}function z(e,n){void 0===n&&(n=!0);var t=n?e:e-E.currentMonth;t<0&&!0===E._hidePrevMonthArrow||t>0&&!0===E._hideNextMonthArrow||(E.currentMonth+=t,(E.currentMonth<0||E.currentMonth>11)&&(E.currentYear+=E.currentMonth>11?1:-1,E.currentMonth=(E.currentMonth+12)%12,ve("onYearChange"),Y()),V(),ve("onMonthChange"),ge())}function Q(e){return!(!E.config.appendTo||!E.config.appendTo.contains(e))||E.calendarContainer.contains(e)}function Z(e){if(E.isOpen&&!E.config.inline){var n=p(e),t=Q(n),r=n===E.input||n===E.altInput||E.element.contains(n)||e.path&&e.path.indexOf&&(~e.path.indexOf(E.input)||~e.path.indexOf(E.altInput)),o="blur"===e.type?r&&e.relatedTarget&&!Q(e.relatedTarget):!r&&!t&&!Q(e.relatedTarget),a=!E.config.ignoredFocusElements.some((function(e){return e.contains(n)}));o&&a&&(void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement&&""!==E.input.value&&void 0!==E.input.value&&x(),E.close(),E.config&&"range"===E.config.mode&&1===E.selectedDates.length&&(E.clear(!1),E.redraw()))}}function X(e){if(!(!e||E.config.minDate&&eE.config.maxDate.getFullYear())){var n=e,t=E.currentYear!==n;E.currentYear=n||E.currentYear,E.config.maxDate&&E.currentYear===E.config.maxDate.getFullYear()?E.currentMonth=Math.min(E.config.maxDate.getMonth(),E.currentMonth):E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&(E.currentMonth=Math.max(E.config.minDate.getMonth(),E.currentMonth)),t&&(E.redraw(),ve("onYearChange"),Y())}}function $(e,n){var t;void 0===n&&(n=!0);var r=E.parseDate(e,void 0,n);if(E.config.minDate&&r&&A(r,E.config.minDate,void 0!==n?n:!E.minDateHasTime)<0||E.config.maxDate&&r&&A(r,E.config.maxDate,void 0!==n?n:!E.maxDateHasTime)>0)return!1;if(!E.config.enable&&0===E.config.disable.length)return!0;if(void 0===r)return!1;for(var o=!!E.config.enable,a=null!==(t=E.config.enable)&&void 0!==t?t:E.config.disable,i=0,s=void 0;i=s.from.getTime()&&r.getTime()<=s.to.getTime())return o}return!o}function ee(e){return void 0!==E.daysContainer&&-1===e.className.indexOf("hidden")&&-1===e.className.indexOf("flatpickr-disabled")&&E.daysContainer.contains(e)}function ne(e){e.target!==E._input||!(E.selectedDates.length>0||E._input.value.length>0)||e.relatedTarget&&Q(e.relatedTarget)||E.setDate(E._input.value,!0,e.target===E.altInput?E.config.altFormat:E.config.dateFormat)}function te(e){var n=p(e),t=E.config.wrap?v.contains(n):n===E._input,r=E.config.allowInput,o=E.isOpen&&(!r||!t),a=E.config.inline&&t&&!r;if(13===e.keyCode&&t){if(r)return E.setDate(E._input.value,!0,n===E.altInput?E.config.altFormat:E.config.dateFormat),n.blur();E.open()}else if(Q(n)||o||a){var i=!!E.timeContainer&&E.timeContainer.contains(n);switch(e.keyCode){case 13:i?(e.preventDefault(),x(),fe()):le(e);break;case 27:e.preventDefault(),fe();break;case 8:case 46:t&&!E.config.allowInput&&(e.preventDefault(),E.clear());break;case 37:case 39:if(i||t)E.hourElement&&E.hourElement.focus();else if(e.preventDefault(),void 0!==E.daysContainer&&(!1===r||document.activeElement&&ee(document.activeElement))){var s=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),z(s),U(K(1),0)):U(void 0,s)}break;case 38:case 40:e.preventDefault();var c=40===e.keyCode?1:-1;E.daysContainer&&void 0!==n.$i||n===E.input||n===E.altInput?e.ctrlKey?(e.stopPropagation(),X(E.currentYear-c),U(K(1),0)):i||U(void 0,7*c):n===E.currentYearElement?X(E.currentYear-c):E.config.enableTime&&(!i&&E.hourElement&&E.hourElement.focus(),x(e),E._debouncedChange());break;case 9:if(i){var u=[E.hourElement,E.minuteElement,E.secondElement,E.amPM].concat(E.pluginElements).filter((function(e){return e})),f=u.indexOf(n);if(-1!==f){var l=u[f+(e.shiftKey?-1:1)];e.preventDefault(),(l||E._input).focus()}}else!E.config.noCalendar&&E.daysContainer&&E.daysContainer.contains(n)&&e.shiftKey&&(e.preventDefault(),E._input.focus())}}if(void 0!==E.amPM&&n===E.amPM)switch(e.key){case E.l10n.amPM[0].charAt(0):case E.l10n.amPM[0].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[0],N(),be();break;case E.l10n.amPM[1].charAt(0):case E.l10n.amPM[1].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[1],N(),be()}(t||Q(n))&&ve("onKeyDown",e)}function re(e){if(1===E.selectedDates.length&&(!e||e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled"))){for(var n=e?e.dateObj.getTime():E.days.firstElementChild.dateObj.getTime(),t=E.parseDate(E.selectedDates[0],void 0,!0).getTime(),r=Math.min(n,E.selectedDates[0].getTime()),o=Math.max(n,E.selectedDates[0].getTime()),a=!1,i=0,s=0,c=r;cr&&ci)?i=c:c>t&&(!s||c0&&h0&&h>s;return p?(d.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach((function(e){d.classList.remove(e)})),"continue"):a&&!p?"continue":(["startRange","inRange","endRange","notAllowed"].forEach((function(e){d.classList.remove(e)})),void(void 0!==e&&(e.classList.add(n<=E.selectedDates[0].getTime()?"startRange":"endRange"),tn&&h===t&&d.classList.add("endRange"),h>=i&&(0===s||h<=s)&&(u=t,l=n,(c=h)>Math.min(u,l)&&c0||t.getMinutes()>0||t.getSeconds()>0),E.selectedDates&&(E.selectedDates=E.selectedDates.filter((function(e){return $(e)})),E.selectedDates.length||"min"!==e||I(t),be()),E.daysContainer&&(ue(),void 0!==t?E.currentYearElement[e]=t.getFullYear().toString():E.currentYearElement.removeAttribute(e),E.currentYearElement.disabled=!!r&&void 0!==t&&r.getFullYear()===t.getFullYear())}}function ie(){return E.config.wrap?v.querySelector("[data-input]"):v}function se(){"object"!=typeof E.config.locale&&void 0===S.l10ns[E.config.locale]&&E.config.errorHandler(new Error("flatpickr: invalid locale "+E.config.locale)),E.l10n=e(e({},S.l10ns.default),"object"==typeof E.config.locale?E.config.locale:"default"!==E.config.locale?S.l10ns[E.config.locale]:void 0),g.K="("+E.l10n.amPM[0]+"|"+E.l10n.amPM[1]+"|"+E.l10n.amPM[0].toLowerCase()+"|"+E.l10n.amPM[1].toLowerCase()+")",void 0===e(e({},m),JSON.parse(JSON.stringify(v.dataset||{}))).time_24hr&&void 0===S.defaultConfig.time_24hr&&(E.config.time_24hr=E.l10n.time_24hr),E.formatDate=b(E),E.parseDate=O({config:E.config,l10n:E.l10n})}function ce(e){if("function"!=typeof E.config.position){if(void 0!==E.calendarContainer){ve("onPreCalendarPosition");var n=e||E._positionElement,t=Array.prototype.reduce.call(E.calendarContainer.children,(function(e,n){return e+n.offsetHeight}),0),r=E.calendarContainer.offsetWidth,o=E.config.position.split(" "),a=o[0],i=o.length>1?o[1]:null,s=n.getBoundingClientRect(),c=window.innerHeight-s.bottom,f="above"===a||"below"!==a&&ct,l=window.pageYOffset+s.top+(f?-t-2:n.offsetHeight+2);if(u(E.calendarContainer,"arrowTop",!f),u(E.calendarContainer,"arrowBottom",f),!E.config.inline){var d=window.pageXOffset+s.left,h=!1,p=!1;"center"===i?(d-=(r-s.width)/2,h=!0):"right"===i&&(d-=r-s.width,p=!0),u(E.calendarContainer,"arrowLeft",!h&&!p),u(E.calendarContainer,"arrowCenter",h),u(E.calendarContainer,"arrowRight",p);var v=window.document.body.offsetWidth-(window.pageXOffset+s.right),y=d+r>window.document.body.offsetWidth,m=v+r>window.document.body.offsetWidth;if(u(E.calendarContainer,"rightMost",y),!E.config.static)if(E.calendarContainer.style.top=l+"px",y)if(m){var g=function(){for(var e=null,n=0;nE.currentMonth+E.config.showMonths-1)&&"range"!==E.config.mode;if(E.selectedDateElem=t,"single"===E.config.mode)E.selectedDates=[r];else if("multiple"===E.config.mode){var a=me(r);a?E.selectedDates.splice(parseInt(a),1):E.selectedDates.push(r)}else"range"===E.config.mode&&(2===E.selectedDates.length&&E.clear(!1,!1),E.latestSelectedDateObj=r,E.selectedDates.push(r),0!==A(r,E.selectedDates[0],!0)&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()})));if(N(),o){var i=E.currentYear!==r.getFullYear();E.currentYear=r.getFullYear(),E.currentMonth=r.getMonth(),i&&(ve("onYearChange"),Y()),ve("onMonthChange")}if(ge(),V(),be(),o||"range"===E.config.mode||1!==E.config.showMonths?void 0!==E.selectedDateElem&&void 0===E.hourElement&&E.selectedDateElem&&E.selectedDateElem.focus():j(t),void 0!==E.hourElement&&void 0!==E.hourElement&&E.hourElement.focus(),E.config.closeOnSelect){var s="single"===E.config.mode&&!E.config.enableTime,c="range"===E.config.mode&&2===E.selectedDates.length&&!E.config.enableTime;(s||c)&&fe()}k()}}E.parseDate=O({config:E.config,l10n:E.l10n}),E._handlers=[],E.pluginElements=[],E.loadedPlugins=[],E._bind=P,E._setHoursFromDate=I,E._positionCalendar=ce,E.changeMonth=z,E.changeYear=X,E.clear=function(e,n){if(void 0===e&&(e=!0),void 0===n&&(n=!0),E.input.value="",void 0!==E.altInput&&(E.altInput.value=""),void 0!==E.mobileInput&&(E.mobileInput.value=""),E.selectedDates=[],E.latestSelectedDateObj=void 0,!0===n&&(E.currentYear=E._initialDate.getFullYear(),E.currentMonth=E._initialDate.getMonth()),!0===E.config.enableTime){var t=D(E.config);C(t.hours,t.minutes,t.seconds)}E.redraw(),e&&ve("onChange")},E.close=function(){E.isOpen=!1,E.isMobile||(void 0!==E.calendarContainer&&E.calendarContainer.classList.remove("open"),void 0!==E._input&&E._input.classList.remove("active")),ve("onClose")},E._createElement=f,E.destroy=function(){void 0!==E.config&&ve("onDestroy");for(var e=E._handlers.length;e--;)E._handlers[e].remove();if(E._handlers=[],E.mobileInput)E.mobileInput.parentNode&&E.mobileInput.parentNode.removeChild(E.mobileInput),E.mobileInput=void 0;else if(E.calendarContainer&&E.calendarContainer.parentNode)if(E.config.static&&E.calendarContainer.parentNode){var n=E.calendarContainer.parentNode;if(n.lastChild&&n.removeChild(n.lastChild),n.parentNode){for(;n.firstChild;)n.parentNode.insertBefore(n.firstChild,n);n.parentNode.removeChild(n)}}else E.calendarContainer.parentNode.removeChild(E.calendarContainer);E.altInput&&(E.input.type="text",E.altInput.parentNode&&E.altInput.parentNode.removeChild(E.altInput),delete E.altInput),E.input&&(E.input.type=E.input._type,E.input.classList.remove("flatpickr-input"),E.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach((function(e){try{delete E[e]}catch(e){}}))},E.isEnabled=$,E.jumpToDate=M,E.open=function(e,n){if(void 0===n&&(n=E._positionElement),!0===E.isMobile){if(e){e.preventDefault();var t=p(e);t&&t.blur()}return void 0!==E.mobileInput&&(E.mobileInput.focus(),E.mobileInput.click()),void ve("onOpen")}if(!E._input.disabled&&!E.config.inline){var r=E.isOpen;E.isOpen=!0,r||(E.calendarContainer.classList.add("open"),E._input.classList.add("active"),ve("onOpen"),ce(n)),!0===E.config.enableTime&&!0===E.config.noCalendar&&(!1!==E.config.allowInput||void 0!==e&&E.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return E.hourElement.select()}),50))}},E.redraw=ue,E.set=function(e,n){if(null!==e&&"object"==typeof e)for(var r in Object.assign(E.config,e),e)void 0!==de[r]&&de[r].forEach((function(e){return e()}));else E.config[e]=n,void 0!==de[e]?de[e].forEach((function(e){return e()})):t.indexOf(e)>-1&&(E.config[e]=c(n));E.redraw(),be(!0)},E.setDate=function(e,n,t){if(void 0===n&&(n=!1),void 0===t&&(t=E.config.dateFormat),0!==e&&!e||e instanceof Array&&0===e.length)return E.clear(n);he(e,t),E.latestSelectedDateObj=E.selectedDates[E.selectedDates.length-1],E.redraw(),M(void 0,n),I(),0===E.selectedDates.length&&E.clear(!1),be(n),n&&ve("onChange")},E.toggle=function(e){if(!0===E.isOpen)return E.close();E.open(e)};var de={locale:[se,W],showMonths:[J,T,q],minDate:[M],maxDate:[M],clickOpens:[function(){!0===E.config.clickOpens?(P(E._input,"focus",E.open),P(E._input,"click",E.open)):(E._input.removeEventListener("focus",E.open),E._input.removeEventListener("click",E.open))}]};function he(e,n){var t=[];if(e instanceof Array)t=e.map((function(e){return E.parseDate(e,n)}));else if(e instanceof Date||"number"==typeof e)t=[E.parseDate(e,n)];else if("string"==typeof e)switch(E.config.mode){case"single":case"time":t=[E.parseDate(e,n)];break;case"multiple":t=e.split(E.config.conjunction).map((function(e){return E.parseDate(e,n)}));break;case"range":t=e.split(E.l10n.rangeSeparator).map((function(e){return E.parseDate(e,n)}))}else E.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));E.selectedDates=E.config.allowInvalidPreload?t:t.filter((function(e){return e instanceof Date&&$(e,!1)})),"range"===E.config.mode&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()}))}function pe(e){return e.slice().map((function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?E.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:E.parseDate(e.from,void 0),to:E.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function ve(e,n){if(void 0!==E.config){var t=E.config[e];if(void 0!==t&&t.length>0)for(var r=0;t[r]&&r1||"static"===E.config.monthSelectorType?E.monthElements[n].textContent=y(t.getMonth(),E.config.shorthandCurrentMonth,E.l10n)+" ":E.monthsDropdownContainer.value=t.getMonth().toString(),e.value=t.getFullYear().toString()})),E._hidePrevMonthArrow=void 0!==E.config.minDate&&(E.currentYear===E.config.minDate.getFullYear()?E.currentMonth<=E.config.minDate.getMonth():E.currentYearE.config.maxDate.getMonth():E.currentYear>E.config.maxDate.getFullYear()))}function Ee(e){return E.selectedDates.map((function(n){return E.formatDate(n,e)})).filter((function(e,n,t){return"range"!==E.config.mode||E.config.enableTime||t.indexOf(e)===n})).join("range"!==E.config.mode?E.config.conjunction:E.l10n.rangeSeparator)}function be(e){void 0===e&&(e=!0),void 0!==E.mobileInput&&E.mobileFormatStr&&(E.mobileInput.value=void 0!==E.latestSelectedDateObj?E.formatDate(E.latestSelectedDateObj,E.mobileFormatStr):""),E.input.value=Ee(E.config.dateFormat),void 0!==E.altInput&&(E.altInput.value=Ee(E.config.altFormat)),!1!==e&&ve("onValueUpdate")}function Oe(e){var n=p(e),t=E.prevMonthNav.contains(n),r=E.nextMonthNav.contains(n);t||r?z(t?-1:1):E.yearElements.indexOf(n)>=0?n.select():n.classList.contains("arrowUp")?E.changeYear(E.currentYear+1):n.classList.contains("arrowDown")&&E.changeYear(E.currentYear-1)}return function(){E.element=E.input=v,E.isOpen=!1,function(){var n=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],o=e(e({},JSON.parse(JSON.stringify(v.dataset||{}))),m),a={};E.config.parseDate=o.parseDate,E.config.formatDate=o.formatDate,Object.defineProperty(E.config,"enable",{get:function(){return E.config._enable},set:function(e){E.config._enable=pe(e)}}),Object.defineProperty(E.config,"disable",{get:function(){return E.config._disable},set:function(e){E.config._disable=pe(e)}});var i="time"===o.mode;if(!o.dateFormat&&(o.enableTime||i)){var s=S.defaultConfig.dateFormat||r.dateFormat;a.dateFormat=o.noCalendar||i?"H:i"+(o.enableSeconds?":S":""):s+" H:i"+(o.enableSeconds?":S":"")}if(o.altInput&&(o.enableTime||i)&&!o.altFormat){var u=S.defaultConfig.altFormat||r.altFormat;a.altFormat=o.noCalendar||i?"h:i"+(o.enableSeconds?":S K":" K"):u+" h:i"+(o.enableSeconds?":S":"")+" K"}Object.defineProperty(E.config,"minDate",{get:function(){return E.config._minDate},set:ae("min")}),Object.defineProperty(E.config,"maxDate",{get:function(){return E.config._maxDate},set:ae("max")});var f=function(e){return function(n){E.config["min"===e?"_minTime":"_maxTime"]=E.parseDate(n,"H:i:S")}};Object.defineProperty(E.config,"minTime",{get:function(){return E.config._minTime},set:f("min")}),Object.defineProperty(E.config,"maxTime",{get:function(){return E.config._maxTime},set:f("max")}),"time"===o.mode&&(E.config.noCalendar=!0,E.config.enableTime=!0),Object.assign(E.config,a,o);for(var l=0;l-1?E.config[h]=c(d[h]).map(_).concat(E.config[h]):void 0===o[h]&&(E.config[h]=d[h])}o.altInputClass||(E.config.altInputClass=ie().className+" "+E.config.altInputClass),ve("onParseConfig")}(),se(),E.input=ie(),E.input?(E.input._type=E.input.type,E.input.type="text",E.input.classList.add("flatpickr-input"),E._input=E.input,E.config.altInput&&(E.altInput=f(E.input.nodeName,E.config.altInputClass),E._input=E.altInput,E.altInput.placeholder=E.input.placeholder,E.altInput.disabled=E.input.disabled,E.altInput.required=E.input.required,E.altInput.tabIndex=E.input.tabIndex,E.altInput.type="text",E.input.setAttribute("type","hidden"),!E.config.static&&E.input.parentNode&&E.input.parentNode.insertBefore(E.altInput,E.input.nextSibling)),E.config.allowInput||E._input.setAttribute("readonly","readonly"),E._positionElement=E.config.positionElement||E._input):E.config.errorHandler(new Error("Invalid input element specified")),function(){E.selectedDates=[],E.now=E.parseDate(E.config.now)||new Date;var e=E.config.defaultDate||("INPUT"!==E.input.nodeName&&"TEXTAREA"!==E.input.nodeName||!E.input.placeholder||E.input.value!==E.input.placeholder?E.input.value:null);e&&he(e,E.config.dateFormat),E._initialDate=E.selectedDates.length>0?E.selectedDates[0]:E.config.minDate&&E.config.minDate.getTime()>E.now.getTime()?E.config.minDate:E.config.maxDate&&E.config.maxDate.getTime()0&&(E.latestSelectedDateObj=E.selectedDates[0]),void 0!==E.config.minTime&&(E.config.minTime=E.parseDate(E.config.minTime,"H:i")),void 0!==E.config.maxTime&&(E.config.maxTime=E.parseDate(E.config.maxTime,"H:i")),E.minDateHasTime=!!E.config.minDate&&(E.config.minDate.getHours()>0||E.config.minDate.getMinutes()>0||E.config.minDate.getSeconds()>0),E.maxDateHasTime=!!E.config.maxDate&&(E.config.maxDate.getHours()>0||E.config.maxDate.getMinutes()>0||E.config.maxDate.getSeconds()>0)}(),E.utils={getDaysInMonth:function(e,n){return void 0===e&&(e=E.currentMonth),void 0===n&&(n=E.currentYear),1===e&&(n%4==0&&n%100!=0||n%400==0)?29:E.l10n.daysInMonth[e]}},E.isMobile||function(){var e=window.document.createDocumentFragment();if(E.calendarContainer=f("div","flatpickr-calendar"),E.calendarContainer.tabIndex=-1,!E.config.noCalendar){if(e.appendChild((E.monthNav=f("div","flatpickr-months"),E.yearElements=[],E.monthElements=[],E.prevMonthNav=f("span","flatpickr-prev-month"),E.prevMonthNav.innerHTML=E.config.prevArrow,E.nextMonthNav=f("span","flatpickr-next-month"),E.nextMonthNav.innerHTML=E.config.nextArrow,J(),Object.defineProperty(E,"_hidePrevMonthArrow",{get:function(){return E.__hidePrevMonthArrow},set:function(e){E.__hidePrevMonthArrow!==e&&(u(E.prevMonthNav,"flatpickr-disabled",e),E.__hidePrevMonthArrow=e)}}),Object.defineProperty(E,"_hideNextMonthArrow",{get:function(){return E.__hideNextMonthArrow},set:function(e){E.__hideNextMonthArrow!==e&&(u(E.nextMonthNav,"flatpickr-disabled",e),E.__hideNextMonthArrow=e)}}),E.currentYearElement=E.yearElements[0],ge(),E.monthNav)),E.innerContainer=f("div","flatpickr-innerContainer"),E.config.weekNumbers){var n=function(){E.calendarContainer.classList.add("hasWeeks");var e=f("div","flatpickr-weekwrapper");e.appendChild(f("span","flatpickr-weekday",E.l10n.weekAbbreviation));var n=f("div","flatpickr-weeks");return e.appendChild(n),{weekWrapper:e,weekNumbers:n}}(),t=n.weekWrapper,r=n.weekNumbers;E.innerContainer.appendChild(t),E.weekNumbers=r,E.weekWrapper=t}E.rContainer=f("div","flatpickr-rContainer"),E.rContainer.appendChild(q()),E.daysContainer||(E.daysContainer=f("div","flatpickr-days"),E.daysContainer.tabIndex=-1),V(),E.rContainer.appendChild(E.daysContainer),E.innerContainer.appendChild(E.rContainer),e.appendChild(E.innerContainer)}E.config.enableTime&&e.appendChild(function(){E.calendarContainer.classList.add("hasTime"),E.config.noCalendar&&E.calendarContainer.classList.add("noCalendar");var e=D(E.config);E.timeContainer=f("div","flatpickr-time"),E.timeContainer.tabIndex=-1;var n=f("span","flatpickr-time-separator",":"),t=h("flatpickr-hour",{"aria-label":E.l10n.hourAriaLabel});E.hourElement=t.getElementsByTagName("input")[0];var r=h("flatpickr-minute",{"aria-label":E.l10n.minuteAriaLabel});if(E.minuteElement=r.getElementsByTagName("input")[0],E.hourElement.tabIndex=E.minuteElement.tabIndex=-1,E.hourElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getHours():E.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),E.minuteElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getMinutes():e.minutes),E.hourElement.setAttribute("step",E.config.hourIncrement.toString()),E.minuteElement.setAttribute("step",E.config.minuteIncrement.toString()),E.hourElement.setAttribute("min",E.config.time_24hr?"0":"1"),E.hourElement.setAttribute("max",E.config.time_24hr?"23":"12"),E.hourElement.setAttribute("maxlength","2"),E.minuteElement.setAttribute("min","0"),E.minuteElement.setAttribute("max","59"),E.minuteElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(t),E.timeContainer.appendChild(n),E.timeContainer.appendChild(r),E.config.time_24hr&&E.timeContainer.classList.add("time24hr"),E.config.enableSeconds){E.timeContainer.classList.add("hasSeconds");var o=h("flatpickr-second");E.secondElement=o.getElementsByTagName("input")[0],E.secondElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getSeconds():e.seconds),E.secondElement.setAttribute("step",E.minuteElement.getAttribute("step")),E.secondElement.setAttribute("min","0"),E.secondElement.setAttribute("max","59"),E.secondElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(f("span","flatpickr-time-separator",":")),E.timeContainer.appendChild(o)}return E.config.time_24hr||(E.amPM=f("span","flatpickr-am-pm",E.l10n.amPM[i((E.latestSelectedDateObj?E.hourElement.value:E.config.defaultHour)>11)]),E.amPM.title=E.l10n.toggleTitle,E.amPM.tabIndex=-1,E.timeContainer.appendChild(E.amPM)),E.timeContainer}()),u(E.calendarContainer,"rangeMode","range"===E.config.mode),u(E.calendarContainer,"animate",!0===E.config.animate),u(E.calendarContainer,"multiMonth",E.config.showMonths>1),E.calendarContainer.appendChild(e);var o=void 0!==E.config.appendTo&&void 0!==E.config.appendTo.nodeType;if((E.config.inline||E.config.static)&&(E.calendarContainer.classList.add(E.config.inline?"inline":"static"),E.config.inline&&(!o&&E.element.parentNode?E.element.parentNode.insertBefore(E.calendarContainer,E._input.nextSibling):void 0!==E.config.appendTo&&E.config.appendTo.appendChild(E.calendarContainer)),E.config.static)){var s=f("div","flatpickr-wrapper");E.element.parentNode&&E.element.parentNode.insertBefore(s,E.element),s.appendChild(E.element),E.altInput&&s.appendChild(E.altInput),s.appendChild(E.calendarContainer)}E.config.static||E.config.inline||(void 0!==E.config.appendTo?E.config.appendTo:window.document.body).appendChild(E.calendarContainer)}(),function(){if(E.config.wrap&&["open","close","toggle","clear"].forEach((function(e){Array.prototype.forEach.call(E.element.querySelectorAll("[data-"+e+"]"),(function(n){return P(n,"click",E[e])}))})),E.isMobile)!function(){var e=E.config.enableTime?E.config.noCalendar?"time":"datetime-local":"date";E.mobileInput=f("input",E.input.className+" flatpickr-mobile"),E.mobileInput.tabIndex=1,E.mobileInput.type=e,E.mobileInput.disabled=E.input.disabled,E.mobileInput.required=E.input.required,E.mobileInput.placeholder=E.input.placeholder,E.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",E.selectedDates.length>0&&(E.mobileInput.defaultValue=E.mobileInput.value=E.formatDate(E.selectedDates[0],E.mobileFormatStr)),E.config.minDate&&(E.mobileInput.min=E.formatDate(E.config.minDate,"Y-m-d")),E.config.maxDate&&(E.mobileInput.max=E.formatDate(E.config.maxDate,"Y-m-d")),E.input.getAttribute("step")&&(E.mobileInput.step=String(E.input.getAttribute("step"))),E.input.type="hidden",void 0!==E.altInput&&(E.altInput.type="hidden");try{E.input.parentNode&&E.input.parentNode.insertBefore(E.mobileInput,E.input.nextSibling)}catch(e){}P(E.mobileInput,"change",(function(e){E.setDate(p(e).value,!1,E.mobileFormatStr),ve("onChange"),ve("onClose")}))}();else{var e=s(oe,50);if(E._debouncedChange=s(k,300),E.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&P(E.daysContainer,"mouseover",(function(e){"range"===E.config.mode&&re(p(e))})),P(window.document.body,"keydown",te),E.config.inline||E.config.static||P(window,"resize",e),void 0!==window.ontouchstart?P(window.document,"touchstart",Z):P(window.document,"mousedown",Z),P(window.document,"focus",Z,{capture:!0}),!0===E.config.clickOpens&&(P(E._input,"focus",E.open),P(E._input,"click",E.open)),void 0!==E.daysContainer&&(P(E.monthNav,"click",Oe),P(E.monthNav,["keyup","increment"],R),P(E.daysContainer,"click",le)),void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement){var n=function(e){return p(e).select()};P(E.timeContainer,["increment"],x),P(E.timeContainer,"blur",x,{capture:!0}),P(E.timeContainer,"click",F),P([E.hourElement,E.minuteElement],["focus","click"],n),void 0!==E.secondElement&&P(E.secondElement,"focus",(function(){return E.secondElement&&E.secondElement.select()})),void 0!==E.amPM&&P(E.amPM,"click",(function(e){x(e),k()}))}E.config.allowInput&&P(E._input,"blur",ne)}}(),(E.selectedDates.length||E.config.noCalendar)&&(E.config.enableTime&&I(E.config.noCalendar?E.latestSelectedDateObj:void 0),be(!1)),T();var n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!E.isMobile&&n&&ce(),ve("onReady")}(),E}function T(e,n){for(var t=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),r=[],o=0;o{const n=(e,n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:()=>{}},d=function(e,n){if(!n||1===n)return e.store;var t=e.store.modules&&e.store.modules.team;return t?t.getTeam(n):void 0},h=function(n,t){n.emit("UPDATE",{teams:t.stores,roTeams:t.roStores,id:t.channel,loading:!t.ready&&!t.cacheready,readOnly:t.readOnly||!t.ready&&t.cacheready||t.offline,offline:t.offline,deleted:!t.stores.length,restricted:t.restricted,owned:n.Store.isOwned(t.owners),content:e.clone(t.proxy),hashes:t.hashes},n.clients)},p=function(e,n){var t=e.calendars[n];t&&t.reminders&&Object.keys(t.reminders).forEach((function(e){Array.isArray(t.reminders[e])&&t.reminders[e].forEach((function(e){clearTimeout(e)}))}))},v=function(e,n){var t=e.calendars[n];t&&(t.stores.length||(t.lm.stop(),p(e,n),delete e.calendars[n]))},y=function(e,n,t){n.stores.forEach((function(r){var o=d(e,r);if(o&&o.proxy&&o.rpc&&o.proxy.calendars){var a=o.proxy.calendars[n.channel];a&&(a.color!==t.color&&(a.color=t.color),a.title!==t.title&&(a.title=t.title))}}))},m=function(n,t,r,o){var a=+new Date,i=e.clone(r),s=i.id;if(Array.isArray(t[s])&&t[s].forEach((function(e){clearTimeout(e)})),t[s]=[],!r.deleted){var u=e.find(n,["store","proxy","hideReminders",s])||[],f=n.store.data.lastVisit;if(i.isAllDay&&(i.startDay&&(i.start=+c.parseDate(i.startDay)),i.endDay)){var l=c.parseDate(i.endDay);l.setHours(23),l.setMinutes(59),l.setSeconds(59),i.end=+l}var d=a-6048e5,h=o&&i.start>f&&i.end<=a&&i.end>d;if(i.end<=a&&!h)return delete t[s],void function(n,t){var r=e.find(n,["store","proxy","hideReminders"])||{};Object.keys(r).filter((function(e){return e===t})).forEach((function(e){delete r[e]}))}(n,s);var p=!1,v=function(t){p=!0,n.Store.onReadyEvt.reg((function(){!function(t){if(!e.find(n,["store","proxy","settings","general","calendar","hideNotif"])){var r=i.start<=a?i.start:+new Date;n.store.mailbox.showMessage("reminders",{msg:{ctime:r,type:"REMINDER",missed:Boolean(h),content:i},hash:"REMINDER|"+s+"-"+t},null,(function(){}))}}(t)}))},y=i.reminders||[];y.sort((function(e,n){return e-n})),y.some((function(e){var n=a+6e4*e;if(!u.some((function(n){return e>=n})))return i.start-n>=2147483647||(i.start<=n?(v(e),!0):void t[s].push(setTimeout((function(){v(e)}),i.start-n)))})),p||n.Store.onReadyEvt.reg((function(){n.store.mailbox.hideMessage("reminders",{hash:"REMINDER|"+s},null,(function(){}))}))}},g=function(n,t,r,o){var i=function(e){var n=new Date,t=new Date(n.getFullYear(),n.getMonth()-1,15),r=new Date(n.getFullYear(),n.getMonth()+1,15),o=a.getMonthId(t),i=a.getMonthId(n),s=a.getMonthId(r),c=a.getRecurring([o,i,s],[e]),u=[e];return Array.prototype.push.apply(u,c),a.applyUpdates(u)}(e.clone(r));i.forEach((function(e){m(n,t,e,o)}))},E=function(e,n,t){var r=e.calendars[n];t&&r&&r.reminders&&(1===r.stores.length&&0===r.stores[0]||g(e,r.reminders,t))},b=function(n,t,r){var o=n.calendars[t];if(o&&o.reminders&&!Object.keys(o.reminders).length&&(1!==o.stores.length||0!==o.stores[0])){var a=e.find(o,["proxy","content"]);a&&Object.keys(a).forEach((function(e){g(n,o.reminders,a[e],r)}))}},O=function(t,r,a){var c=e.once(e.mkAsync(a||function(){})),l=r.storeId,v=r.data,m=v.channel;if(m){var g=t.calendars[m],O=function(){h(t,g)};if(g){if(g.readOnly&&v.href){var A=n.parsePadUrl(v.href),w=n.getSecrets("calendar",A.hash,v.password),D=u.createEncryptor(w.keys);g.hashes.editHash=n.getEditHashFromKeys(w),g.lm.setReadOnly(!1,D),g.readOnly=!1}else if(0===l)return 1===g.stores.length&&0===g.stores[0]&&g.tempId.length&&r.cId&&g.tempId.push(r.cId),void c();return-1!==g.roStores.indexOf(l)&&v.href&&(g.roStores.splice(g.roStores.indexOf(l),1),-1!==g.stores.indexOf(0)&&g.stores.splice(g.stores.indexOf(0),1),O()),g.stores&&-1!==g.stores.indexOf(l)?void c():(-1!==g.stores.indexOf(0)&&(g.stores.splice(g.stores.indexOf(0),1),g.tempId=[]),g.stores.push(l),v.href||g.roStores.push(l),O(),void c())}g=t.calendars[m]={ready:!1,channel:m,readOnly:!v.href,tempId:[],stores:[l],roStores:v.href?[]:[l],reminders:{},hashes:{}},0===l&&g.tempId.push(r.cId);var _=n.parsePadUrl(v.href||v.roHref),T=n.getSecrets("calendar",_.hash,v.password),S=u.createEncryptor(T.keys);g.hashes.viewHash=n.getViewHashFromKeys(T),v.href&&(g.hashes.editHash=n.getEditHashFromKeys(T)),g.proxy={metadata:{color:v.color,title:v.title}},O();var x=function(){g.stores.forEach((function(e){var n=d(t,e);n&&n.rpc&&n.proxy.calendars&&(delete n.proxy.calendars[m],(n.unpin||t.unpinPads)([m],(function(e){e&&e.error&&console.error(e.error)})))})),g.lm&&g.lm.stop(),g.stores=[],h(t,g),p(t,m),delete t.calendars[m]};i((function(e){t.store.network&&!r.isNew&&t.Store.isNewChannel(null,m,e((function(n){if(!n||!n.error)return n&&"boolean"==typeof n.isNew&&n.isNew?(x(),c({error:"EDELETED"}),void e.abort()):void 0})))})).nThen((function(){var e;if(1!==l&&l){var n=t.store.modules.team&&t.store.modules.team.getTeamsData(),a=n&&n[l];e=a?a.edPublic:void 0}else e=t.store.proxy.edPublic;var i={data:{},network:t.store.network||t.store.networkPromise,channel:T.channel,crypto:S,owners:[e],ChainPad:f,validateKey:T.keys.validateKey||void 0,userName:"calendar",Cache:o,classic:!0,onRejected:t.Store&&t.Store.onRejected},u=s.create(i);g.lm=u;var d=g.proxy=u.proxy,h=!1,p=function(){h||(h=!0,setTimeout((function(){h=!1,O()})))};u.proxy.on("cacheready",(function(){d.metadata&&(g.cacheready=!0,p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif))})).on("ready",(function(e){var n=e.metadata;if(g.owners=n.owners||[],g.ready=!0,!d.metadata){if(!r.isNew)return void x();d.metadata={color:v.color,title:v.title}}p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif)})).on("change",[],(function(){g.ready&&p()})).on("change",["content"],(function(e,n,r){2!==r.length||!n||e?2!==r.length||n||!e?(r.length>=3&&["start","reminders","isAllDay"].includes(r[2])||r.length>=6&&["start","reminders","isAllDay"].includes(r[5]))&&setTimeout((function(){E(t,m,d.content[r[1]])})):E(t,m,{id:r[1],start:0}):E(t,m,n)})).on("remove",["content"],(function(e,n){p(),(n.length>=3&&"reminders"===n[2]||n.length>=6&&"reminders"===n[5])&&setTimeout((function(){E(t,m,d.content[n[1]])}))})).on("change",["metadata"],(function(){var e=d.metadata;e&&e.title&&e.color&&y(t,g,e)})).on("disconnect",(function(){g.offline=!0,p()})).on("reconnect",(function(){g.offline=!1,p()})).on("error",(function(e){e&&e.error&&("EDELETED"!==e.error?("ERESTRICTED"===e.error&&(g.restricted=!0,p()),c(e)):x())}))}))}},A=function(e,n){if(n.href&&-1===n.href.indexOf("#"))if(e.secondaryKey)try{n.href=e.userObject.cryptor.decrypt(n.href)}catch(e){console.error(e),delete n.href}else delete n.href},w=function(n,t){var r=t.proxy.calendars,o=t.id||1;t.proxy.on("change",["calendars"],(function(r,a,i){i.length<2||(r&&!a&&function(){var e=i[1],t=n.calendars[e];if(t){var r=t.stores.indexOf(o);if(-1!==r){t.stores.splice(r,1);var a=t.roStores.indexOf(o);-1!==a&&t.roStores.splice(a,1),v(n,e),h(n,t)}}}(),!r&&a&&function(){var r=i[1],a=t.proxy.calendars[r];if(a){var s=e.clone(a);A(t,s),O(n,{storeId:o,data:s})}}())})),Object.keys(r||{}).forEach((function(a){var i=e.clone(r[a]);A(t,i),O(n,{storeId:o,lastVisitNotif:!0,data:i})}))},D=function(e,t,o,a){var i=d(e,t.teamId);if(i)if(i.rpc){var s,c,u,f=i.proxy.calendars=i.proxy.calendars||{},l=(s=n.createRandomHash("calendar"),c=n.getSecrets("calendar",s),u=n.getViewHashFromKeys(c),{href:n.hashToHref(s,"calendar"),roHref:n.hashToHref(u,"calendar"),channel:c.channel});l.color=t.color,l.title=t.title,O(e,{storeId:i.id||1,data:l,isNew:!0},(function(n){if(n)return console.error(n),void a({error:n.error});var t=e.calendars[l.channel];r.whenRealtimeSyncs(t.lm.realtime,(function(){f[l.channel]=l,(i.pin||e.pinPads)([l.channel],(function(e){e&&e.error&&console.error(e.error)})),e.Store.onSync(i.id,a)}))}))}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})};return l.init=function(t,o,a){var s={},c=t.store,u={loggedIn:c.loggedIn&&c.proxy.edPublic,store:c,Store:t.Store,pinPads:t.pinPads,unpinPads:t.unpinPads,updateMetadata:t.updateMetadata,emit:a,onReady:e.mkEvent(!0),calendars:{},clients:[]};return function(e,n){var t=e.store.proxy;t.calendars=t.calendars||{},setTimeout(n)}(u,o((function(e){e||function(e){w(e,e.store);var n=e.store.modules.team&&e.store.modules.team.getTeamsData();n&&Object.keys(n).forEach((function(n){var t=d(e,n);w(e,t)}))}(u)}))),u.store.proxy.on("change",["hideReminders"],(function(e,n,t){var r=t[1].split("|")[0];Object.keys(u.calendars).some((function(e){var n=u.calendars[e];if(n&&n.proxy&&n.proxy.content)return n.proxy.content[r]?(setTimeout((function(){E(u,e,n.proxy.content[r])})),!0):void 0}))})),s.closeTeam=function(e){Object.keys(u.calendars).forEach((function(n){var t=u.calendars[n],r=t.stores.indexOf(e);if(-1!==r){t.stores.splice(r,1);var o=t.roStores.indexOf(e);-1!==o&&t.roStores.splice(o,1),v(u,n),h(u,t)}}))},s.openTeam=function(e){var n=d(u,e);n&&w(u,n)},s.upgradeTeam=function(n){if(n){var t=d(u,n);t&&Object.keys(u.calendars).forEach((function(r){var o=u.calendars[r];if(-1!==o.stores.indexOf(n)){var a=t.proxy.calendars[r],i=e.clone(a);A(t,i),O(u,{storeId:n,data:i}),h(u,o)}}))}},s.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1),Object.keys(e.calendars).forEach((function(t){var r=e.calendars[t];if(1===r.stores.length&&0===r.stores[0]&&r.tempId.length){var o=r.tempId.indexOf(n);-1!==o&&r.tempId.splice(o,1),r.tempId.length||(r.stores=[],v(e,t))}}))}(u,e)},s.execCommand=function(t,o,a){var s=o.cmd,c=o.data;if("SUBSCRIBE"!==s){if("OPEN"!==s)return"IMPORT"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=r.id,s=t.calendars[i];if(s)if(Array.isArray(s.stores)&&-1!==s.stores.indexOf(r.teamId)){var c=t.store,u=c.proxy.calendars=c.proxy.calendars||{},f=s.hashes.editHash,l=s.hashes.viewHash;u[i]={href:f&&n.hashToHref(f,"calendar"),roHref:l&&n.hashToHref(l,"calendar"),channel:i,color:e.find(s,["proxy","metadata","color"])||e.getRandomColor(),title:e.find(s,["proxy","metadata","title"])||"..."},t.Store.onSync(null,a),O(t,{storeId:1,data:{href:u[i].href,toHref:u[i].roHref,channel:i}})}else a({error:"EINVAL"});else a({error:"ENOENT"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"IMPORT_ICS"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.id,i=e.calendars[a];if(i&&i.proxy){var s=n.json;i.proxy.content=i.proxy.content||{},Object.keys(s).forEach((function(n){i.proxy.content[n]=s[n],E(e,a,s[n])})),r.whenRealtimeSyncs(i.lm.realtime,(function(){h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"ADD"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=d(t,r.teamId);if(i)if(i.rpc){var s=i.proxy.calendars=i.proxy.calendars||{},c=n.parsePadUrl(r.href),u=n.getSecrets(c.type,c.hash,r.password);if(u.channel===r.channel){var f=n.getEditHashFromKeys(u),l=n.getViewHashFromKeys(u),h=f&&n.hashToHref(f,"calendar"),p={href:h,roHref:l&&n.hashToHref(l,"calendar"),color:r.color,title:r.title,channel:r.channel};!s[r.channel]||!s[r.channel].href&&p.href?(p.color=r.color,p.title=r.title,O(t,{storeId:i.id||1,data:e.clone(p)},(function(e){if(e)return console.error(e),void a({error:e.error});if(h&&i.id&&i.secondaryKey)try{p.href=i.userObject.cryptor.encrypt(h)}catch(e){console.error(e)}s[p.channel]=p,(i.pin||t.pinPads)([p.channel],(function(e){e&&e.error&&console.error(e.error)})),t.Store.onSync(i.id,a)}))):a()}else a({error:"EINVAL"})}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE"===s?u.loggedIn?c.initialCalendar?void u.Store.onReadyEvt.reg((function(){D(u,c,0,a)})):u.store.offline?void a({error:"OFFLINE"}):void D(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"UPDATE"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){var i=t.id,s=n.calendars[i];if(s){var c=e.find(s,["proxy","metadata"]);c?(c.title=t.title,c.color=t.color,r.whenRealtimeSyncs(s.lm.realtime,a),h(n,s),y(n,s,t)):a({error:"EINVAL"})}else a({error:"ENOENT"})}(u,c,0,a):"DELETE"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(e,n,t,r){var o=d(e,n.teamId);if(o)if(o.rpc){if(o.proxy.calendars){var a=n.id;if(o.proxy.calendars[a]){delete o.proxy.calendars[a],(o.unpin||e.unpinPads)([a],(function(e){e&&e.error&&console.error(e.error)}));var i=e.calendars[a],s=i.stores.indexOf(o.id||1);i.stores.splice(s,1),v(e,a),e.Store.onSync(o.id,(function(){h(e,i),r()}))}else r()}}else r({error:"EFORBIDDEN"});else r({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.calendarId,i=e.calendars[a];if(i){var s=new Date(n.start),c=new Date(n.end);n.isAllDay?(n.startDay=s.getFullYear()+"-"+(s.getMonth()+1)+"-"+s.getDate(),n.endDay=c.getFullYear()+"-"+(c.getMonth()+1)+"-"+c.getDate()):(delete n.startDay,delete n.endDay),i.proxy.content=i.proxy.content||{},i.proxy.content[n.id]=n,r.whenRealtimeSyncs(i.lm.realtime,(function(){E(e,a,n),h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"UPDATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){if(t&&t.ev){var s=t.ev.calendarId,c=n.calendars[s];if(c&&c.proxy&&c.proxy.content){var u=c.proxy.content[t.ev.id];if(u){t.rawData=t.rawData||{};var f,l=t.changes||{},d=t.type||{};if(l.calendarId){if(!(f=n.calendars[l.calendarId])||!f.proxy)return void a({error:"ENOENT"});f.proxy.content=f.proxy.content||{}}var p={one:{},from:{}};["one","from","all"].includes(d.which)&&(u.recUpdate=u.recUpdate||p,u.recUpdate.one||(u.recUpdate.one={}),u.recUpdate.from||(u.recUpdate.from={}));var v=u.recUpdate,y=["calendarId"],m=Object.keys(l).filter((function(e){return!y.includes(e)})),g=function(e){[v.from,v.one].forEach((function(n){Object.keys(n).forEach((function(t){Number(t){const r=[],o=null==jt?void 0:jt.httpUnsafeOrigin;ie.fetchApi(o,"config",!0,(e=>{var o,a;(null===(o=null==e?void 0:e.adminKeys)||void 0===o?void 0:o.includes(n))&&r.push("admin");(null===(a=null==e?void 0:e.moderatorKeys)||void 0===a?void 0:a.includes(n))&&r.push("moderator"),t(r)}))},Ut=(e,n,t)=>{e.Store.anonRpcMsg("",{msg:"IS_PREMIUM",data:n},(e=>{let n=Array.isArray(e)&&e[0];t(n?["premium"]:[])}))},Bt={admin:Kt,moderator:Kt,premium:Ut},Vt={init:(e,n,t)=>{const r={store:e.store,Store:e.Store,updateMetadata:e.updateMetadata};return{removeClient:()=>{},execCommand:(e,n,t)=>{console.log("Exex command",e,n);const o=n.cmd,a=n.data;"LIST_BADGES"!==o?"CHECK_BADGE"!==o?t():((e,n,t,r)=>{const{badge:o,ed:a,sig:i,nid:s}=n,c=ie.decodeBase64(a),u=ie.decodeBase64(i),f=Lt.sign.open(u,c);if(!f)return void r({verified:!1});if(ie.encodeUTF8(f)!==s)return void r({verified:!1});let l=Bt[o];l?l(e,a,(e=>{r({verified:e.includes(o),badge:o})})):r({verified:!1,error:"EINVAL"})})(r,a,0,t):((e,n,t,r)=>{var o,a;const i=[];null==jt||jt.httpUnsafeOrigin;const s=n.edPublic||(null===(a=null===(o=e.store)||void 0===o?void 0:o.proxy)||void 0===a?void 0:a.edPublic);Ht((e=>{Kt(0,s,e((e=>{Array.prototype.push.apply(i,e)})))})).nThen((n=>{Ut(e,s,n((e=>{Array.prototype.push.apply(i,e)})))})).nThen((()=>{r(i)}))})(r,a,0,t)}}},setCustomize:e=>{jt=null==e?void 0:e.ApiConfig}};var Yt,Gt=o(Object.freeze({__proto__:null,Badge:Vt}));function Jt(){return Yt||(Yt=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A,w,D,_,T,S,x,N,I,C={},R,P,k,M,F,L)=>{const H=y.Account,j=m.Drive,K=x.Badge,U=globalThis;globalThis.nacl=globalThis.nacl||R.Nacl;const B=i.Saferphore;var V=i.mkEvent(!0),Y=i.mkEvent(!0),G=i.mkEvent(!0),J=i.mkEvent(!0);var q={drive:{hideDuplicate:!0},pad:{width:!0,spellcheck:!0},security:{unsafeLinks:!1},general:{allowUserFeedback:!0}};return{setCustomize:n=>{e=n.ApiConfig,C=n.AppConfig},create:function(y){var m=U.Cryptpad_Store={};let x=y.query||function(){},P=y.broadcast||function(){};var M=U.CryptPad_AsyncStore={modules:{}};m.onReadyEvt=V;var W=[],z=function(e,n,t){W.forEach((function(r){r!==t&&x(r,e,n)}))},Q=function(e){if(!e)return M;try{var n=M.modules.team.getTeam(e);return n||void console.error("Team not found",e)}catch(n){return console.error(n),void console.error("Team not found",e)}},Z=m.onSync=function(e,n){var t=Q(e);t?L((function(e){if(t.realtime&&u.whenRealtimeSyncs(t.realtime,e()),!t.id&&t.drive?.realtime&&u.whenRealtimeSyncs(t.drive.realtime,e()),t.sharedFolders&&"object"==typeof t.sharedFolders)for(var n in t.sharedFolders)t.sharedFolders[n].realtime&&u.whenRealtimeSyncs(t.sharedFolders[n].realtime,e())})).nThen((function(){n()})):n({error:"ENOTFOUND"})};m.get=function(e,n,t){var r=Q(n.teamId);r?r.proxy?t(i.find(r.proxy,n.key)):t({error:"ENODRIVE"}):t({error:"ENOTFOUND"})},m.set=function(e,n,t){var r=Q(n.teamId);if(r)if(r.proxy){var o=n.key.slice(),a=o.pop(),s=i.find(r.proxy,o);s&&"object"==typeof s?(void 0===n.value?delete s[a]:s[a]=n.value,n.teamId||(P([e],"UPDATE_METADATA"),Array.isArray(o)&&"profile"===o[0]&&M.messenger&&f.updateMyData(M)),Z(n.teamId,t)):t({error:"INVALID_PATH"})}else t({error:"ENODRIVE"});else t({error:"ENOTFOUND"})};const X=e=>{let n;if(e){const t=Q(e);n=t?.drive?.proxy}else n=M.drive?.proxy;return n};m.drive={get:(e,n,t)=>{let r=X(n.teamId);t(r||{error:"ENOTFOUND"})},set:(e,n,t)=>{let r=X(n.teamId);var o,a;r?(o=r,a=n.value,Object.keys(o).forEach((e=>{delete o[e]})),Object.keys(a).forEach((e=>{o[e]=i.clone(a[e])})),Z(n.teamId,t)):t({error:"ENOTFOUND"})}},m.getSharedFolder=function(e,n,r){var o,a=Q(n.teamId),s=n.id;if(a&&a.manager){if(a.manager.folders[s])return(o=i.clone(a.manager.folders[s].proxy)).offline=Boolean(a.manager.folders[s].offline),void r(o);var c=i.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};c[s]?m.loadSharedFolder(n.teamId,s,c[s],(function(){r(a.manager.folders[s].proxy)})):r({})}else r({error:"ENOTFOUND"})},m.restoreSharedFolder=function(e,n,t){if(n.sfId&&n.drive){var r=Q(n.teamId);r.sharedFolders[n.sfId]&&(Object.keys(n.drive).forEach((function(e){r.sharedFolders[n.sfId].proxy[e]=n.drive[e]})),Object.keys(r.sharedFolders[n.sfId].proxy).forEach((function(e){n.drive[e]||delete r.sharedFolders[n.sfId].proxy[e]}))),Z(n.teamId,t)}else t({error:"EINVAL"})},m.hasSigningKeys=function(){if(M.proxy)return"string"==typeof M.proxy.edPrivate&&"string"==typeof M.proxy.edPublic},m.hasCurveKeys=function(){if(M.proxy)return"string"==typeof M.proxy.curvePrivate&&"string"==typeof M.proxy.curvePublic},m.isOwned=function(e){var n=M.proxy.edPublic;if(!n)return!1;if(!Array.isArray(e)||!e.length)return!1;if(-1!==e.indexOf(n))return!0;var t=M.proxy.teams;return!!t&&Object.keys(t).some((function(n){var r=i.find(t[n],["keys","drive","edPublic"]);return r&&-1!==e.indexOf(r)}))};var $=function(e){var n=e?M.manager.getChannelsList("expirable"):function(){var e=`${M.driveChannel}#drive`;if(!e)return null;var n=M.manager.getChannelsList("pin"),t=M.proxy.profile;if(t){var r=t.edit?a.hrefToHexChannelId("/profile/#"+t.edit,null):null;r&&n.push(r);var o=t.avatar?a.hrefToHexChannelId(t.avatar,null):null;o&&n.push(o)}if(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.friends){var i=f.getFriendChannelsList(M.proxy);n=n.concat(i)}if(M.proxy.mailboxes){var s=Object.keys(M.proxy.mailboxes).map((function(e){if("broadcast"!==e||M.isAdmin)return M.proxy.mailboxes[e].channel})).filter(Boolean);n=n.concat(s)}if(M.proxy.calendars){var c=Object.keys(M.proxy.calendars).map((function(e){return M.proxy.calendars[e].channel}));n=n.concat(c)}return n.push(e),M.data&&M.data.blockId&&n.push(`${M.data.blockId}#block`),n.sort(),n}();return i.deduplicateString(n).sort()};m.pinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){"function"!=typeof t&&(console.error("expected a callback"),t=function(){});var o=n.pads||n;r.rpc.pin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})},m.unpinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){var o=n.pads||n;r.rpc.unpin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})};var ee=M.account={};m.getPinnedUsage=function(e,n,t){var r=Q(n&&n.teamId);r&&r.rpc?r.rpc.getFileListSize((function(e,n){r.id||"number"!=typeof n||(ee.usage=n),t({bytes:n})})):t({error:"RPC_NOT_READY"})},m.updatePinLimit=function(e,n,t){M.rpc?M.rpc.updatePinLimits((function(e,n,r,o){e?t({error:e}):(ee.limit=n,ee.plan=r,ee.note=o,t(ee))})):t({error:"RPC_NOT_READY"})},m.getPinLimit=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.getLimit((function(e,n,o,a){if(e)t({error:e});else{var i=r.id?{}:ee;i.limit=n,i.plan=o,i.note=a,t(i)}})):t({error:"RPC_NOT_READY"})},m.clearOwnedChannel=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.clearOwnedChannel(n.channel,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})};var ne={};m.removeOwnedChannel=function(e,n,t){var r,o,a=n,i=!1;if(n&&"object"==typeof n&&(a=n.channel,i=n.force,r=n.teamId,o=n.reason),a!==M.driveChannel||i){var s=Q(r);s?s.rpc?(m.channels[a]&&(ne[a]=!0),s.rpc.removeOwnedChannel(a,(function(e){e&&delete ne[a],t({error:e})}),o)):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})}else t({error:"User drive removal blocked!"})};m.uploadComplete=function(e,n,t){var r=Q(n.teamId);r?r.rpc?n.owned?r.rpc.ownedUploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):r.rpc.uploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadStatus=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadStatus(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadCancel=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadCancel(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadChunk=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.send.unauthenticated("UPLOAD",n.chunk,(function(e,n){t({error:e,msg:n})})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})};m.anonRpcMsg=function(e,n,t){M.anon_rpc?M.anon_rpc.send(n.msg,n.data,(function(e,n){t(e?{error:e}:n)})):t({error:"ANON_RPC_NOT_READY"})},m.getFileSize=function(e,n,t){var r=i.once(i.mkAsync(t));if(M.anon_rpc){var o=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("GET_FILE_SIZE",o,(function(e,n){if(!e)return n&&n.length&&"number"==typeof n[0]?(0===n[0]&&p.clearChannel(o),void r({size:n[0]})):void r({error:"INVALID_RESPONSE"});r({error:e})}))}else r({error:"ANON_RPC_NOT_READY"})},m.isNewChannel=function(e,n,t){if(M.anon_rpc){var r=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("IS_NEW_CHANNEL",r,(function(e,n){if(!e)return n&&n.length&&"object"==typeof n[0]?(n[0].isNew&&p.clearChannel(r),void t(n[0])):void t({error:"INVALID_RESPONSE"});t({error:e})}))}else t({error:"ANON_RPC_NOT_READY"})},m.getMultipleFileSize=function(e,n,t){M.anon_rpc?Array.isArray(n.files)?M.anon_rpc.send("GET_MULTIPLE_FILE_SIZE",n.files,(function(e,n){e?t({error:e}):n&&n.length&&"object"==typeof n[0]?t({size:n[0]}):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"}):t({error:"ANON_RPC_NOT_READY"})},m.getDeletedPads=function(e,n,t){if(M.anon_rpc){var r=n&&n.list||$(!0);Array.isArray(r)?M.anon_rpc.send("GET_DELETED_PADS",r,(function(e,n){e?t({error:e}):n&&n.length&&Array.isArray(n[0])?t(n[0]):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"})}else t({error:"ANON_RPC_NOT_READY"})};var te=function(e,n,t){M.anon_rpc?t():d.createAnonymous(M.network,(function(e,n){e?t({error:e}):(M.anon_rpc=n,t())}))},re=m.getAllStores=function(){if(!M.proxy||!M.manager)return[];var e=[M],n=M.modules.team;if(n){var t=n.getTeams().map((function(e){return n.getTeam(e)}));Array.prototype.push.apply(e,t)}return e};m.getUserColor=function(){var e=i.find(M,["proxy","settings","general","cursor","color"]);return e||(e=i.getRandomColor(!0),m.setAttribute(null,{attr:["general","cursor","color"],value:e},(function(){}))),e},m.getMetadata=function(e,n,t){var r=M.proxy||{},o=i.find(r,["settings","general","disableThumbnails"]),c=M.modules.team&&M.modules.team.getTeamsData(n)||{};r.uid||(M.noDriveUid=M.noDriveUid||a.createChannelId());var u={user:{name:r[s.displayNameKey]||M.noDriveName||"",uid:r.uid||M.noDriveUid,avatar:i.find(r,["profile","avatar"]),profile:i.find(r,["profile","view"]),color:m.getUserColor(),notifications:i.find(r,["mailboxes","notifications","channel"]),curvePublic:r.curvePublic,edPublic:r.edPublic,netfluxId:M?.network?.webChannels?.[0]?.myID,badge:i.find(r,["profile","badge"])},priv:{clientId:e,edPublic:r.edPublic,edPrivate:r.edPrivate,friends:r.friends||{},settings:r.settings||q,thumbnails:!1===o,isDriveOwned:Boolean(i.find(M,["driveMetadata","owners"])),driveChannel:M.driveChannel,pendingFriends:r.friends_pending||{},supportPrivateKey:i.find(r,["mailboxes","supportadmin","keys","curvePrivate"]),accountName:r.login_name||"",offline:M.proxy&&M.offline,teams:c,plan:M.ready?ee.plan||"":void 0,mutedChannels:r.mutedChannels}};return t(JSON.parse(JSON.stringify(u))),u},m.onMaintenanceUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{e&&P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"MAINTENANCE",data:e.maintenance}})}))},m.onSurveyUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"SURVEY",data:e.surveyURL}})}))};m.addPad=function(e,n,r){if(n.href||n.roHref){var o;if(!n.roHref){var i=a.parsePadUrl(n.href);"pad"===i.hashData.type&&(o=a.getSecrets(i.type,i.hash,n.password),n.roHref="/"+i.type+"/#"+a.getViewHashFromKeys(o))}var s,c,u,f,l=(s=n.href,c=n.roHref,u=n.title,f=+new Date,{href:s,roHref:c,atime:f,ctime:f,title:u||t.getDefaultName(a.parsePadUrl(s))});n.owners&&(l.owners=n.owners),n.expire&&(l.expire=n.expire),n.password&&(l.password=n.password),(n.channel||o)&&(l.channel=n.channel||o.channel),n.readme&&(l.readme=1),-1===n.teamId&&(n.teamId=void 0);var d=Q(n.teamId);d&&d.manager?d.manager.addPad(n.path,l,(function(o){o?r({error:o}):(re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,r))})):r({error:"ENOTFOUND"})}else r({error:"NO_HREF"})};var oe=function(e,n){var t=i.find(M,["proxy","edPublic"]),r=function(e){var n=[];return e?(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.profile&&M.proxy.profile.edit&&n.push(a.hrefToHexChannelId("/profile/#"+M.proxy.profile.edit,null)),M.proxy.mailboxes&&Object.keys(M.proxy.mailboxes||{}).forEach((function(e){if("supportadmin"!==e){var t=M.proxy.mailboxes[e];n.push(t.channel)}}))):n=M.manager.getChannelsList("owned"),n.filter((function(e){if("string"==typeof e)return-1!==[32,48].indexOf(e.length)}))}(e),o=B.create(10),s=function(n){e||M.manager.findChannel(n).forEach((function(e){var n=M.manager.findFile(e.id);M.manager.delete({paths:n})}))};r.forEach((function(e){var r=n();o.take((function(n){var o=!1;L((function(a){32===e.length&&m.anonRpcMsg(null,{msg:"GET_METADATA",data:e},a((function(i){if(i&&i.error)return n(),r(),void a.abort();var c=i[0];return Object.keys(c||{}).length?c&&Array.isArray(c.owners)&&-1!==c.owners.indexOf(t)?void(o=c.owners.some((function(e){return e!==t}))):(n(),r(),void a.abort()):(s(e),n(),r(),void a.abort())})))})).nThen((function(n){o?m.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[t]},n()):M.rpc.removeOwnedChannel(e,n((function(n){n?console.error(n):s(e)})))})).nThen((function(){n(),r()}))}))}))};m.removeOwnedPads=function(e,n,t){M.proxy.edPublic?L((function(e){oe(!1,e)})).nThen(t):t({error:"NOT_LOGGED_IN"})},m.deleteAccount=function(e,t,r){var o=M.proxy.edPublic,a=t&&t.keys,c=t&&t.auth;m.anonRpcMsg(e,{msg:"GET_METADATA",data:M.driveChannel},(function(t){var u=t[0];if(u&&u.owners&&1===u.owners.length&&-1!==u.owners.indexOf(o))L((function(e){N.checkRights({auth:c,blockKeys:a},e((function(n){if(n)return e.abort(),console.error(n),void r({error:"INVALID_CODE"})})))})).nThen((function(n){globalThis.accountDeletion=e,M.proxy[s.tokenKey]="DELETED",Z(null,n())})).nThen((function(e){M.rpc.removePins(e((function(e){e&&console.error(e)})))})).nThen((function(n){M.ownDeletion=!0,m.removeOwnedChannel(e,{channel:M.driveChannel,force:!0},n())})).nThen((function(e){a&&N.removeLoginBlock({reason:"ARCHIVE_OWNED",auth:c,edPublic:o,blockKeys:a},e((function(e){e&&console.error(e)})))})).nThen((function(e){oe(!0,e)})).nThen((function(){P([e],"DRIVE_DELETED","ARCHIVE_OWNED"),x(e,"DELETE_ACCOUNT","DELETED",(function(){})),M.network.disconnect(),r({state:!0})}));else{var f={intent:"Please delete my account."};f.drive=M.driveChannel,f.edPublic=o;var l=i.decodeBase64(M.proxy.edPrivate),d=R.Nacl.sign.detached(i.decodeUTF8(n(f)),l);R.Nacl.sign.detached.verify(i.decodeUTF8(n(f)),d,i.decodeBase64(o))||console.error("signed message failed verification");var h=i.encodeBase64(d);r({proof:h,toSign:JSON.parse(n(f))})}}))},m.migrateAnonDrive=function(e,n,t){var r=n.anonHash;h.anonDriveIntoUser(M,r,t)},m.setDisplayName=function(e,n,t){if(!M.proxy)return M.noDriveName=n,P([e],"UPDATE_METADATA"),void t();M.modules.profile&&M.modules.profile.setName(n),M.proxy[s.displayNameKey]=n,P([e],"UPDATE_METADATA"),f.updateMyData(M),Z(null,t)},m.resetDrive=function(e,n,t){L((function(e){oe(e)})).nThen((function(){M.proxy.drive=M.userObject.getStructure(),z("DRIVE_CHANGE",{path:["drive","filesData"]},e),Z(null,t)}))},m.setPadAttribute=function(e,n,r){L((function(r){re().forEach((function(o){o.manager.setPadAttribute(n,r((function(){(o.id?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),Z(o.id,r())})))}))})).nThen(r)},m.getPadAttribute=function(e,n,t){var r={};L((function(e){re().forEach((function(t){t.manager.getPadAttribute(n,e((function(e,n){e||(n&&"object"==typeof n?(!r.value||r.atime{if(M.loggedIn&&M.proxy.edPublic){var n,r=M.modules.team,o=r&&r.getTeams()||[];-1!==e.indexOf(M.proxy.edPublic)?n=M:o.some((function(t){var o=i.find(M,["proxy","teams",t,"keys","drive","edPublic"]),a=i.find(M,["proxy","teams",t,"keys","drive","edPrivate"]);if(-1===e.indexOf(o))return!1;if(!a)return!1;var s=r.getTeam(t);return n=s,!0}));var a=function(){if(n){var e=n.rpc;e?e.send("COOKIE","",(function(e){t(e)})):t("ERESTRICTED")}else t("ERESTRICTED")};n&&n.onRpcReadyEvt?n.onRpcReadyEvt.reg((function(){a()})):a()}else t("ERESTRICTED")}))):t("ERESTRICTED")},m.joinPad=function(e,n){if(n.versionHash)!function(e,n){var t,r=a.createChannelId();L((function(r){m.getPadMetadata(null,{channel:n.channel},r((function(n){if(n&&n.rejected)return x(e,"PAD_ERROR",{type:"ERESTRICTED"}),void r.abort();t=n.validateKey})))})).nThen((function(){m.getHistoryRange(e,{cpCount:1,channel:n.channel,lastKnownHash:n.versionHash},(function(o){if(o&&o.error)x(e,"PAD_ERROR",o.error);else{var a=o.messages||[];a.length&&a[a.length-1].serverHash!==n.versionHash?x(e,"PAD_ERROR",{type:"HASH_NOT_FOUND"}):(x(e,"PAD_CONNECT",{myID:r,id:n.channel,members:[r]}),(o.messages||[]).forEach((function(n){x(e,"PAD_MESSAGE",{msg:n.msg,time:n.time,user:r.slice(0,16)})})),t&&M.messenger&&M.messenger.storeValidateKey(n.channel,t),x(e,"PAD_READY"))}}))}))}(e,n);else if(a.isValidChannel(n.channel)){var r=void 0===se[n.channel],o=se[n.channel]=se[n.channel]||{queue:[],data:{},clients:[],bcast:function(e,n,t){o.clients.forEach((function(r){r!==t&&x(r,e,n)}))},history:[],pushHistory:function(e,n){if(n){var t;for(o.history.push("cp|"+e),t=o.history.length-101;t>0&&!/^cp\|/.test(o.history[t]);t--);o.history=o.history.slice(Math.max(t,0))}else o.history.push(e)}};if(-1===o.clients.indexOf(e)&&o.clients.push(e),!r&&o.wc)return x(e,"PAD_CONNECT",{myID:o.wc.myID,id:o.wc.id,members:o.wc.members}),o.wc.members.forEach((function(n){x(e,"PAD_JOIN",n)})),o.history.forEach((function(n){x(e,"PAD_MESSAGE",{msg:k.removeCp(n),user:o.wc.myID,validateKey:o.data.validateKey})})),void x(e,"PAD_READY");var i=function(e){e&&"EDELETED"===e.type&&ne[n.channel]&&(delete ne[o],e.ownDeletion=!0),o.bcast("PAD_ERROR",e),e&&"EDELETED"===e.type&&p&&p.clearChannel&&p.clearChannel(n.channel),-1!==["EDELETED","EEXPIRED","ERESTRICTED"].indexOf(e.type)&&m.leavePad(null,n,(function(){}))},s={Cache:M.neverCache?void 0:p,priority:1,onCacheStart:function(){x(e,"PAD_CACHE")},onCacheReady:function(){x(e,"PAD_CACHE_READY")},onReady:function(t){var r=t.metadata||{};o.data=r,r&&r.validateKey&&M.messenger&&M.messenger.storeValidateKey(n.channel,r.validateKey),x(e,"PAD_READY",t.noCache)},onMessage:function(e,n,t,r,a){o.lastHash=a,o.pushHistory(e,r),o.bcast("PAD_MESSAGE",{user:n,msg:e,validateKey:t})},onJoin:function(e){o.bcast("PAD_JOIN",e)},onLeave:function(e){o.bcast("PAD_LEAVE",e)},onError:i,onChannelError:i,onRejected:m.onRejected,onConnectionChange:function(e){e.state||o.bcast("PAD_DISCONNECT")},onMetadataUpdate:function(e){o.data=e||{},re().forEach((function(r){r.manager.findChannel(n.channel,!0).forEach((function(n){n.data.owners=e.owners,n.data.atime=+new Date,e.expire&&(n.data.expire=+e.expire)})),(r.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})})),o.bcast("PAD_METADATA",e)},crypto:{encrypt:function(e){return e},decrypt:function(e){return e}},noChainPad:!0,channel:n.channel,metadata:n.metadata,network:M.network||M.networkPromise,websocketURL:I.getWebsocketURL(),onInit:function(){G.fire()},onConnect:function(n,t){o.sendMessage=function(e,r,a){t(e,(function(t){t?a({error:t}):(o.lastHash=e.slice(0,64),o.pushHistory(k.removeCp(e),/^cp\|/.test(e)),o.bcast("PAD_MESSAGE",{user:n.myID,msg:k.removeCp(e),validateKey:o.data.validateKey},r),a())}))},o.wc=n,o.queue.forEach((function(n){o.sendMessage(n.message,e)})),o.queue=[],o.bcast("PAD_CONNECT",{myID:n.myID,id:n.id,members:n.members})}};o.cpNf=k.start(s)}else x(e,"PAD_ERROR","INVALID_CHAN")},m.leavePad=function(e,n,t){var r=se[n.channel];r&&r.cpNf?(m.dropChannel(n.channel),t()):t({error:"EINVAL"})},m.sendPadMsg=function(e,n,t){var r=n.msg,o=se[n.channel];if(o)return o.wc?void o.sendMessage(r,e,t):(o.queue.push(r),void t())},m.corruptedCache=function(e,n){var t=se[n];t&&t.cpNf&&(p.clearChannel(n),t.cpNf.resetCache&&t.cpNf.resetCache())},m.changePadPasswordPin=function(e,n,t){var r=n.oldChannel,o=n.channel;L((function(e){re().forEach((function(n){n.manager.findChannel(o).length&&(n.rpc.unpin([r],e()),n.rpc.pin([o],e()))}))})).nThen(t)},m.contactPadOwner=function(e,n,t){var r=n.owners;if(!Array.isArray(r)||!r.length)return t({state:!1});n.send?L((function(e){r.forEach((function(t){!function(e,t,r,o){if(M.mailbox&&!n.anon)return M.mailbox.sendTo(e,t,r,o);A.sendToAnon(M.anon_rpc,e,t,r,o)}(n.query,{channel:n.channel,data:n.msgData},{channel:t.notifications,curvePublic:t.curvePublic},e())}))})).nThen((function(){t({state:!0})})):t({state:!0})},m.givePadAccess=function(e,n,t){var r,o,a=M.proxy.edPublic,i=n.channel,s=M.manager.findChannel(i);n.user&&n.user.notifications&&n.user.curvePublic?s.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(a)&&e.data.href)return r=e.data.href,o=e.data.title,!0}))?(M.mailbox.sendTo("GIVE_PAD_ACCESS",{channel:i,href:r,title:o},{channel:n.user.notifications,curvePublic:n.user.curvePublic}),t()):t({error:"ENOTFOUND"}):t({error:"EINVAL"})},m.getLastHash=function(e,n,t){var r=se[n.channel];r?r.lastHash?t({hash:r.lastHash}):t({error:"EINVAL"}):t({error:"ENOCHAN"})};m.burnPad=function(e,n){var t=n.channel,r=R.b64AddSlashes(n.ownerKey||"");if(t&&r)try{var o=a.decodeBase64(r),i=R.Nacl.sign.keyPair.fromSecretKey(o);l.create(M.network,{edPublic:a.encodeBase64(i.publicKey),edPrivate:a.encodeBase64(i.secretKey)},(function(e,r){e?console.error(e):m.getPadMetadata(null,{channel:t},(function(e){r.removeOwnedChannel(t,(function(t){t?console.error(t):function(e,n){var t=e.channel,r=e.href,o=a.parsePadUrl(r),i=a.getSecrets(o.type,o.hash,e.password);if((!n||!n.error)&&n.mailbox){var s,c=R.createEncryptor(i.keys),u=[];try{"string"==typeof n.mailbox?u.push(c.decrypt(n.mailbox,!0,!0)):Object.keys(n.mailbox).forEach((function(e){u.push(c.decrypt(n.mailbox[e],!0,!0))}))}catch(e){console.error(e)}try{s=M.proxy.curvePublic}catch(e){return void console.error(e)}u.forEach((function(e){var n=JSON.parse(e);n.curvePublic!==s&&M.mailbox.sendTo("OWNED_PAD_REMOVED",{channel:t},{channel:n.notifications,curvePublic:n.curvePublic},(function(){}))}))}}(n,e)}))}))}))}catch(e){console.error(e)}else console.error("Can't delete BAR pad")},m.getPadMetadata=function(e,r,o){var s=i.once(i.mkAsync(o));if(!M.offline&&M.anon_rpc)if(r.channel){if(32===r.channel.length)return a.isValidChannel(r.channel)?void M.anon_rpc.send("GET_METADATA",r.channel,(function(e,o){if(e)s({error:e});else{var a=o&&o[0]||{};s(a),a.rejected||re().forEach((function(e){var o=e.manager.findChannel(r.channel,!0),i=!1;(o.forEach((function(e){n(e.data.owners)!==n(a.owners)&&(i=!0),e.data.owners=a.owners,e.data.atime=+new Date,a.expire&&(e.data.expire=+a.expire)})),i)&&(e.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))}})):(c.send("METADATA_INVALID_CHAN"),void s({error:"EINVAL"}));s({error:"EINVAL"})}else s({error:"ENOTFOUND"});else s({error:"OFFLINE"})},m.setPadMetadata=function(e,n,t){if(n.channel)if(n.command){var r=Q(n.teamId);if(r){var o=n.channels;delete n.channels,r.rpc.setMetadata(n,(function(e,n){e?t({error:e}):Array.isArray(n)&&n.length?t(n[0]):t({})})),Array.isArray(o)&&o.forEach((function(t){var r=i.clone(n);r.channel=t,m.setPadMetadata(e,r,(function(){}))}))}else t({error:"ENOTFOUND"})}else t({error:"EINVAL"});else t({error:"ENOTFOUND"})},m.deleteMailboxMessage=function(e,n,t){M.anon_rpc?M.anon_rpc.send("DELETE_MAILBOX_MESSAGE",n,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})},m.getFullHistory=function(e,n,t){var r=M.network,o=r.historyKeeper,a=[],i=!1,s=function(e){if(!i){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o)return"FULL_HISTORY_END"===o[0]?(t(a),r.off("message",s),void(i=!0)):void("FULL_HISTORY"===o[0]&&(o[1]&&o[1].validateKey||o[1][3]===n.channel&&(e=o[1][4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),n.debug?a.push({serverHash:e.slice(0,64),msg:e,author:o[1][1],time:o[1][5]}):a.push(e))))}};r.on("message",s),r.sendto(o,JSON.stringify(["GET_FULL_HISTORY",n.channel,n.validateKey]))},m.getHistory=function(e,n,t,r){var o=i.once(i.mkAsync(t)),a=M.network,s=a.historyKeeper,c=Math.floor(1e6*Math.random()),u=[],f=!1,l=function(e,t){if(!f&&t===s){var i=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(i&&!(i.txid&&i.txid!==c||i.validateKey&&i.channel))if(i.error&&i.channel)i.channel===n.channel&&(a.off("message",l),f=!0,o({error:i.error}));else{if(1===i.state&&i.channel){if(i.channel!==n.channel)return;return o(u),a.off("message",l),void(f=!0)}Array.isArray(i)&&i[0]&&i[0]!==c||i[3]===n.channel&&(i[4]&&r?u.push({msg:e,hash:i[4].slice(0,64)}):(e=i[4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),u.push(e)))}}};a.on("message",l);var d={txid:c,lastKnownHash:n.lastKnownHash},h=["GET_HISTORY",n.channel,d];a.sendto(s,JSON.stringify(h))},m.getHistoryRange=function(e,n,t){var r,o=M.network,a=o.historyKeeper,s=[],c=!0,u=!1,f=!1,l=i.uid();o.on("message",(function(e){if(!f){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o[1]===l){if("HISTORY_RANGE_ERROR"!==o[0])return"HISTORY_RANGE_END"===o[0]?(t({messages:s,isFull:u,lastKnownHash:r}),void(f=!0)):void("HISTORY_RANGE"===o[0]&&(o[2]&&o[1].validateKey||o[2][3]===n.channel&&(e=o[2][4])&&(c&&(/^cp\|/.test(e)||n.toHash||(u=!0),r=e.slice(0,64),c=!1),e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),s.push({serverHash:e.slice(0,64),msg:e,author:o[2][1],time:o[2][5]}))));t({error:o[2]})}else console.log("bad txid")}})),o.sendto(a,JSON.stringify(["GET_HISTORY_RANGE",n.channel,{from:n.lastKnownHash,to:n.toHash,cpCount:n.cpCount||2,txid:l}]))};var ce=function(e,n){e&&(e.deprecated||e.restricted||(n||e.on("change",["drive",t.SHARED_FOLDERS],(function(n,r,o){if(o.length>3&&"password"===o[3]){var i=o[2],s=e.drive[t.SHARED_FOLDERS][i],c=M.manager.user.userObject.getHref?M.manager.user.userObject.getHref(s):s.href,u=a.parsePadUrl(c),f=a.getSecrets(u.type,u.hash,n);return v.updatePassword(m,{oldChannel:f.channel,password:r,href:c},M.network,(function(){console.log("Shared folder password changed")})),!1}})),e.on("change",[],(function(e,r,o){if(n){if(o[0]===t.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var a=[r.channel];r.rtChannel&&a.push(r.rtChannel),r.lastVersion&&a.push(r.lastVersion),m.pinPads(null,a,(function(e){console.error(e)}))}if(o[0]===t.FILES_DATA&&"object"==typeof e&&e.channel&&!r){var i=[e.channel];M.manager.findChannel(e.channel).some((function(e){return e.fId!==n}))||(e.rtChannel&&i.push(e.rtChannel),e.lastVersion&&i.push(e.lastVersion),m.unpinPads(null,i,(function(e){console.error(e)})))}}e&&!r&&Array.isArray(o)&&(o[0]===t.FILES_DATA||"drive"===o[0]&&o[1]===t.FILES_DATA)&&setTimeout((function(){m.checkDeletedPad(e&&e.channel)})),z("DRIVE_CHANGE",{id:n,old:e,new:r,path:o})})),e.on("remove",[],(function(e,t){z("DRIVE_REMOVE",{id:n,old:e,path:t})}))))};m.loadSharedFolder=function(e,n,t,r,o){var i=Q(e);if(i){var s=a.parsePadUrl(t.href||t.roHref);s||s.hashData?v.load({isNew:o,network:M.network||M.networkPromise,store:i,Store:m,isNewChannel:m.isNewChannel},n,t,r):r({error:"EINVAL"})}else r({error:"ENOTFOUND"})};var ue=function(e,n,t,r){m.loadSharedFolder(null,e,n,t,r)};m.loadSharedFolderAnon=function(e,n,t){m.loadSharedFolder(null,n.id,n.data,(function(e){t({error:e?void 0:"EDELETED"})}))},m.addSharedFolder=function(e,n,r){V.reg((function(){var o=Q(n.teamId);o.manager.addSharedFolder(n,(function(a){a&&"object"==typeof a&&a.error?r(a):((n.teamId?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),r(a))}))}))},m.updateSharedFolderPassword=function(e,n,t){v.updatePassword(m,n,M.network,t)},m.userObjectCommand=function(e,n,r){if(n&&n.cmd){var o=Q(n.teamId);if(o.offline)return(o.id?o.sendEvent:z)("NETWORK_DISCONNECT"),void r({error:"OFFLINE"});o.manager.command(n,(function(o){re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,(function(){r(o)}))}))}};var fe=m.dropChannel=function(e){console.error("Drop channel",e);try{M.messenger.leavePad(e)}catch(e){console.error(e)}try{M.modules.cursor.leavePad(e)}catch(e){console.error(e)}try{M.modules.integration.leavePad(e)}catch(e){console.error(e)}try{M.onlyoffice.leavePad(e)}catch(e){console.error(e)}try{if(function(e){if(M){if(M.driveChannel===e)return!0;if(v.isSharedFolderChannel(e))return!0;if(i.find(M,["proxy","teams"])){var n=i.find(M,["proxy","teams"])||{};return Object.keys(n).some((function(t){return n[t].channel===e}))}return i.find(M,["proxy","profile","href"])?a.hrefToHexChannelId(i.find(M,["proxy","profile","href"]))===e:void 0}}(e))return void delete m.channels[e]}catch(e){console.error(e)}try{p.leaveChannel(e)}catch(e){console.error(e)}m.channels[e]&&(m.channels[e].cpNf&&m.channels[e].cpNf.stop(),delete m.channels[e])};m._removeClient=function(e){var n=W.indexOf(e);-1!==n&&W.splice(n,1);try{M.onlyoffice?.removeClient(e)}catch(e){console.error(e)}try{M.mailbox?.removeClient(e)}catch(e){console.error(e)}Object.keys(M.modules).forEach((function(n){if(M.modules[n]&&M.modules[n].removeClient)try{M.modules[n].removeClient(e)}catch(e){console.error(e)}})),Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients.indexOf(e);-1!==t&&m.channels[n].clients.splice(t,1),0===m.channels[n].clients.length&&fe(n)}))};m.refreshDriveUI=function(){re().forEach((function(e){(e.id?e.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))};var le=function(e,n){const t=i.mkAsync(n);var o=M.proxy,a=M.drive;if(M.manager)t();else{var s=M.manager=r.create(a.proxy,{onSync:function(e){Z(null,e)},edPublic:o.edPublic,pin:function(e,n){M.loggedIn?m.pinPads(null,e,n):n()},unpin:function(e,n){M.loggedIn?m.unpinPads(null,e,n):n()},loadSharedFolder:ue,settings:o.settings,removeOwnedChannel:function(e,n){m.removeOwnedChannel("",e,n)},store:M,Store:m},{outer:!0,edPublic:M.proxy.edPublic,loggedIn:M.loggedIn,log:function(e){z("DRIVE_LOG",e)},rt:a.realtime}),c=M.userObject=s.user.userObject;L((function(e){M.sharedFolders={},M.handleSharedFolder=function(e,n){n?(M.sharedFolders[e]=n,M.driveEvents&&ce(n.proxy,e)):delete M.sharedFolders[e]},c.migrate(e())})).nThen((function(n){var t=M.network||M.networkPromise;v.loadSharedFolders(m,t,M,a.proxy,c,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)}),!0)})).nThen((function(n){ie(D,"team",n,e)})).nThen((function(e){ie(S,"calendar",e)})).nThen((function(){t()}))}};const de=(e=function(){})=>{ie(g,"cursor",e),ie(b,"integration",e),ie(_,"messenger",e),ie(T,"history",e),ie(K,"badge",e),M.onlyoffice||(M.onlyoffice=O.init(M,(function(e,n,t){t.forEach((function(t){x(t,"OO_EVENT",{ev:e,data:n})}))}))),M&&(M.messenger=M.modules.messenger)};var he=function(e,n,t){M.ready=!0;var r=M.proxy,u=M.manager,f=M.userObject;L((function(n){r.settings||(r.settings=q),r.forms||(r.forms={}),r.friends_pending||(r.friends_pending={}),r.form_seed||(r.form_seed=a.createChannelId()),u||(le(e,n()),u=M.manager,f=M.userObject),te(0,0,n()),function(e,n,t){if(!M.loggedIn)return t();M.rpc?t(ee):l.create(M.network,M.proxy,(function(e,n){e?t({error:e}):(M.rpc=n,M.onRpcReadyEvt.fire(),m.getPinLimit(null,null,(function(e){e.error&&console.error(e.error),ee.limit=e.limit,ee.plan=e.plan,ee.note=e.note,t(e)})))}),p)}(0,0,n()),x(e,"LOADING_DRIVE",{type:"migrate",progress:0})})).nThen((function(n){void 0===r.version&&(r.version=11),o(r,n(),(function(n,t){x(e,"LOADING_DRIVE",{type:"migrate",progress:t})}),M)})).nThen((function(n){x(e,"LOADING_DRIVE",{type:"sf",progress:0}),f.fixFiles(),v.loadSharedFolders(m,M.network,M,M.drive.proxy,f,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)})),de(n),ie(w,"profile",n),ie(S,"calendar",n),ie(E,"support",n),L((e=>{M.modules.team&&M.modules.team.onReady(e)}))})).nThen((function(){var e,o=function(){P([],"REQUEST_LOGIN")};M.loggedIn&&(function(e){if(M.rpc){var n=$(!1),t=a.hashChannelList(n);M.rpc.getServerHash((function(n,r){n?e(n):e(null,r===t)}))}else e({error:"RPC_NOT_READY"})}((function(e,n){n||function(e){if(M.rpc){var n=$(!1);M.rpc.reset(n,(function(n){e(n||null)}))}else e({error:"RPC_NOT_READY"})}((function(e){if(e)return console.error(e);console.log("RESET DONE")}))})),"number"!=typeof r.loginToken&&(r[s.tokenKey]=M.data.localToken||Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),n[s.tokenKey]=r[s.tokenKey],M.data.localToken&&M.data.localToken!==r[s.tokenKey])?o():(n.feedback=i.find(r,["settings","general","allowUserFeedback"]),c.init(n.feedback),M.returned=n,"function"==typeof t&&t(n),M.offline=!1,z("NETWORK_RECONNECT"),P([],"UPDATE_METADATA"),P([],"STORE_READY",n),"string"==typeof r.uid&&32===r.uid.length||(console.log("generating a persistent identifier"),r.uid=a.createChannelId()),!M.loggedIn||m.hasSigningKeys()&&m.hasCurveKeys()?(r.on("change",[s.displayNameKey],(function(e,n){"string"==typeof n&&P([],"UPDATE_METADATA")})),r.on("change",["profile"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["friends"],(function(e,n,t){if(P([],"UPDATE_METADATA"),M.messenger&&void 0===e){var o=t.slice(-1)[0],a=r.friends&&r.friends[o];M.messenger.onFriendAdded(a)}})),r.on("remove",["friends"],(function(e,n){if(P([],"UPDATE_METADATA"),M.messenger){var t=n[1];t&&"channel"===n[2]&&M.messenger.onFriendRemoved(t,e)}})),r.on("change",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("remove",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["settings"],(function(){P([],"UPDATE_METADATA")})),r.on("change",[s.tokenKey],(function(){M.isDeleted||"DELETED"===r[s.tokenKey]||P([],"UPDATE_TOKEN",{token:r[s.tokenKey]})})),M.mailbox=A.init({Store:m,store:M,updateMetadata:function(){P([],"UPDATE_METADATA")},updateDrive:function(){z("DRIVE_CHANGE",{path:["drive","filesData"]})},pinPads:function(e,n){m.pinPads(null,e,n)}},e,(function(e,n,t,r){var o=i.once(r||function(){});t.forEach((function(t){x(t,"MAILBOX_EVENT",{ev:e,data:n},o)}))})),V.fire()):o())}))};const pe=(e,n,t,r)=>{if(M.accountModule)return M.accountModule;const o=H.init({userHash:n.userHash,anonHash:n.anonHash,cache:n.cache,form_seed:n.form_seed,store:M,broadcast:P,postMessage:x});M.accountModule=o;const{channel:a,onAccountReady:s,onAccountCacheReady:c,onDisconnect:u,onReconnect:f}=o;M.driveChannel=a,c((e=>{M.returned||=e,t(e)})),s((e=>{M.returned||=e,r(e)})),u((()=>{z("NETWORK_DISCONNECT")})),f((()=>{z("NETWORK_RECONNECT")}));return setInterval((function(){var e=[];Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients;Array.prototype.push.apply(e,t)})),(e=i.deduplicateString(e)).forEach((function(e){var n=0,t=function(){if(n>=2)return m._removeClient(e),x(e,"TIMEOUT"),void console.error("TIMEOUT",e);n++;var r=setTimeout(t,3e4);x(e,"PING",null,(function(e){e&&console.error(e),clearTimeout(r)}))};t()}))}),12e4),o},ve=(e,n,t,r)=>{const o=i.once((e=>{const n=j.init({account:e,store:M,broadcast:P,postMessage:x}),{onDriveReady:o,onDriveCacheReady:a,onDisconnect:i,onReconnect:s}=n;a((()=>{t(M.returned)})),o((()=>{r(M.returned)})),i((()=>{})),s((()=>{}))})),a=()=>{},s=pe(0,n,a,a);s.onAccountCacheReady((()=>{o(s)})),s.onAccountReady((()=>{o(s)}))};m.disableCache=function(e,n,t){n?p.disable():p.enable(),t()};var ye=!1;m.hasDrive=function(e,n,t){t({state:Boolean(M.proxy)})};const me=e=>{if(M?.network?.historyKeeper)return setTimeout(e);const n=n=>{M.network||=n;n.join("0000000000000000000000000000000000").then((function(t){let r;t.members.forEach((e=>{16===e.length&&(r=e)})),n.historyKeeper=r,t.leave(),e()}),(function(n){console.error(n),e({error:"GET_HK"})}))};if(M.network)return n(M.network);M.networkPromise?.then(n)};var ge=function(e,n,t){var r=function(){de();let e=()=>{te(0,0,(function(){c.send("NO_DRIVE",!0),n({})}))};if(t)return((e,n)=>{if(M.rpc)n(M.rpc);else{var t=R.Nacl.sign.keyPair(),r={edPublic:i.encodeBase64(t.publicKey),edPrivate:i.encodeBase64(t.secretKey)};l.create(M.network,r,(function(e,t){e?n({error:e}):(M.rpc=t,n(t))}))}})(0,e);e()};if(M.network)r();else{var o=I.getWebsocketURL();F.connect(o).then((function(e){M.network?(e.disconnect(),e=M.network):M.network=e,me((e=>{e?n(e):r()}))}),(function(e){console.error(e),n({error:"OFFLINE"})}))}};const Ee=(e,n,t)=>{le(e,(function(){t(n),Y.fire()}))},be=(e,n,t)=>{M.manager?Y.reg((function(){me((r=>{M.network||=r,he(e,n,(()=>{t(n)}))}))})):he(e,n,(()=>{t(n)}))};return m.init=function(e,n,t){var r=i.once((function(r){n.driveEvents&&function(e){Y.reg((()=>{-1===W.indexOf(e)&&W.push(e),M.driveEvents||(M.driveEvents=!0,ce(M.proxy),Object.keys(M.manager.folders).forEach((function(e){var n=M.manager.folders[e].proxy;ce(n,e)})))}))}(e),t(r)}));if(ye&&!M.returned&&n.cache)Y.reg((function(){r({state:"ALREADY_INIT",returned:M.cacheReturned})}));else{if(ye)return M.networkTimeout&&x(e,"LOADING_DRIVE",{type:"offline"}),void V.reg((function(){r({state:"ALREADY_INIT",returned:M.returned})}));n.disableCache&&p.disable(),n.noDrive&&!n.requires&&(n.requires="pad"),((e,n,t)=>{if(n.neverDrive||n.noDrive&&!n.userHash&&!n.anonHash)return n.neverDrive&&(M.neverCache=!0),void ge(0,(e=>{e?.error&&c.send("NO_DRIVE_ERROR",!0),t(e)}),!!n.neverDrive);const r=n.requires;ye=!0,M.data=n;let o=e=>{1===Object.keys(M.proxy).length&&c.send("FIRST_APP_USE",!0),e&&e.error&&(ye=!1)};if("pad"===r)return void ge(0,(function(r){if(r&&r.error)return;t(r);let a=i.once((()=>{ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))}));G.reg(a),J.reg(a)}));if("file"===r)return void ge(0,(function(r){r&&r.error||(t(r),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)})))}));if("team"===r){let r=!1;const a=a=>i=>{r||(r=!0,L((e=>{a||te(0,0,e())})).nThen((n=>{ie(D,"team",n,e)})).nThen((e=>{!a&&M.modules.team&&M.modules.team.onReady(e)})).nThen((()=>{t(i),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))})))};return void pe(0,n,a(!0),a(!1))}if("drive"===r)return void ve(0,n,(n=>{t(n),Ee(e,n,o)}),(n=>{t(n),be(e,n,o)}));let a=e=>{o(e);const n=s.prefersDriveRedirectKey,r=i.find(M,["proxy","settings","general",n]);e[n]=r,t(e)};ve(0,n,(n=>{Ee(e,n,a)}),(n=>{be(e,n,a)}))})(e,n,i.once((e=>{"GET_HK"!==e.error?r(e):r({error:"ERROR"})})))}},V.reg((function(){var e=+new Date-7776e6;p.getKeys((function(n,t){if(n)console.error(n);else{var r=function(){if(t.length){var n=t.pop();p.getTime(n,(function(t,o){t?r():!o||o{const n=(e,n={})=>({create:function(t,r,o){var a,i=[],s=e.mkEvent(!0);t.reg((function(e){if(!a){var n=e.data;if("_READY"===n)return r("_READY"),a=!0,s.fire(),void i.forEach((function(e){t.fire(e)}));i.push(n)}}));var c={},u={},f={},l=[],d={},h={};h.query=function(e,n,t,o){var a,i=Math.random().toString(16).replace("0.","")+Math.random().toString(16).replace("0.",""),c=(o=o||{}).timeout||3e4;c>0&&(a=setTimeout((function(){delete u[i],t("TIMEOUT")}),c)),f[i]=function(e){clearTimeout(a),delete f[i],e&&(delete u[i],t("UNHANDLED"))},u[i]=function(e,n){delete u[i],t(void 0,e.content,n)},s.reg((function(){var t={txid:i,content:n,q:e,raw:o.raw};r(o.raw?t:JSON.stringify(t))}))};var p=h.event=function(e,n,t){t=t||{},s.reg((function(){var o={content:n,q:e,raw:t.raw};r(t.raw?o:JSON.stringify(o))}))};h.on=function(e,n,t){var o=function(e,t,o){n(e.content,(function(n){var t={txid:e.txid,content:n};r(o?t:JSON.stringify(t))}),t)};return(c[e]=c[e]||[]).push(o),t||p("EV_REGISTER_HANDLER",e),{stop:function(){var n=c[e].indexOf(o);-1!==n&&c[e].splice(n,1)}}},h.whenReg=function(e,n,t){var r=t;l.indexOf(e)>-1?n():r=!0,r&&(d[e]=d[e]||[]).push(n)},h.onReg=function(e,n){h.whenReg(e,n,!0)},h.on("EV_REGISTER_HANDLER",(function(e){d[e]&&(d[e].forEach((function(e){e()})),delete d[e]),l.push(e)}));var v=!1;h.onReady=function(e){v?e():"function"==typeof e&&h.on("EV_RPC_READY",(function(){v=!0,e()}))},h.ready=function(){h.whenReg("EV_RPC_READY",(function(){h.event("EV_RPC_READY")}))};var y=[""];n.httpUnsafeOrigin?(y.push(n.httpUnsafeOrigin),y.push(n.httpSafeOrigin)):globalThis.location&&y.push(globalThis.location.origin),t.reg((function(e){if(a&&e.data&&"_READY"!==e.data&&y.includes(e.origin)){var n;try{n="object"==typeof e.data?e.data:JSON.parse(e.data)}catch(e){return void console.warn(e)}void 0!==n.ack?f[n.txid]&&f[n.txid](!n.ack):"string"==typeof n.q?c[n.q]?(n.txid&&r(JSON.stringify({txid:n.txid,ack:!0})),c[n.q].forEach((function(t){t(n||JSON.parse(e.data),e,n&&n.raw),n=void 0}))):n.txid&&r(JSON.stringify({txid:n.txid,ack:!1})):void 0===n.q&&u[n.txid]&&u[n.txid](n,e)}})),r("_READY"),o(h)}});e.exports&&(e.exports=n(Z()))})()}(rr)),rr.exports}function ar(){return er||(er=1,function(e){e.exports&&(e.exports=((e,n,t)=>{const r={};let o,a,i={},s=()=>{};return r.init=n=>{a||(a=e.create({query:(e,n,t,r)=>{r=r||function(){},i[e].chan.query(n,t,(function(e,n){r(e?{error:e}:n)}))},broadcast:(e,n,t,r)=>{r=r||function(){},Object.keys(i).forEach((o=>{-1===e.indexOf(+o)&&i[o].chan.query(n,t,((e,n)=>{r(e?{error:e}:n)}))}))}}),s=n)},r.initClient=(e,r)=>{if(!a)return console.error("Not initialized"),void r("NOT_INIT");const{postMsg:c}=e,u=t.mkEvent(),f=Number(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),l=()=>{a._removeClient(f)};n.create(u,c,(function(e){let n=i[f]={chan:e};console.debug("SharedW Channel created"),Object.keys(a.queries).forEach((function(t){"CONNECT"!==t&&"JOIN_PAD"!==t&&"SEND_PAD_MSG"!==t&&"STOPWORKER"!==t&&e.on(t,(function(e,r){try{a.queries[t](f,e,r)}catch(n){console.error("Error in webworker when executing query "+t),console.error(n),console.log(e)}"DISCONNECT"===t&&(l(),globalThis.accountDeletion&&globalThis.accountDeletion===n.id&&(a=void 0,o=void 0))}))})),e.on("STOPWORKER",(function(e,n){s(),a.queries.DISCONNECT(f,e,n)})),e.on("CONNECT",(function(e,n){console.debug("Connecting to store..."),a.queries.CONNECT(f,e,(function(e){if(e&&"ALREADY_INIT"===e.state)return console.debug("Store already exists!"),o=o||e.returned,void n(e);o=e,n(e)}))})),e.on("JOIN_PAD",(function(e,t){n.channelId=e.channel;try{a.queries.JOIN_PAD(f,e,t)}catch(n){console.error("Error in webworker when executing query JOIN_PAD"),console.error(n),console.log(e)}})),e.on("SEND_PAD_MSG",(function(e,t){var r={msg:e,channel:n.channelId};try{a.queries.SEND_PAD_MSG(f,r,t)}catch(e){console.error("Error in webworker when executing query SEND_PAD_MSG"),console.error(e),console.log(r)}})),r(u,l)}),!0)},r})(Xt(),or(),Z()))}(Qt)),Qt.exports}var ir,sr,cr=function(){if(tr)return nr;tr=1;const e=ar();return nr={start:n=>{let t=!1,r=()=>{globalThis.close()};globalThis.window=globalThis,addEventListener("connect",(o=>{console.debug("New SharedWorker client");const a=o.ports[0],i=e=>{a.postMessage(e)};let s,c=!1,u=()=>{};a.onmessage=function(o){if("INIT"===o.data?.type){if((o=>{t||(n(o),e.init(r),t=!0)})(o.data.cfg),c)return;c=!0,e.initClient({postMsg:i},(function(e,n){s=e,u=n,i("SW_READY")}))}else"CLOSE"===o.data?(console.debug("leave"),u()):s&&s.fire(o)}}))}}}();var ur,fr,lr=function(){if(sr)return ir;sr=1;const e=ar();return ir={start:n=>{let t,r=!1;const o=()=>{globalThis.close()},a=e=>{postMessage(e)};globalThis.window=globalThis,onmessage=function(i){if("INIT"===i.data?.type){let s=i.data.cfg;if(r)return;return n(s),e.init(o),r=!0,void e.initClient({postMsg:a},(function(e){t=e,a("WW_READY")}))}t&&t.fire(i)}}}}();var dr=function(){if(fr)return ur;fr=1;const e=ar(),n=Z();return ur={start:t=>{let r,o=!1,a=!1;const i=n.mkEvent(),s=()=>{a=!0},c=e=>{a||i.fire(e)};return{init:n=>{o||(t(n),e.init(s),o=!0,e.initClient({postMsg:c},(function(e){r=e,c("STORE_READY")})))},onMessage:e=>{i.reg((n=>{setTimeout((()=>{e(n)}))}))},query:e=>{r&&!a&&r.fire({data:e,origin:""})}}}}}(),hr=Bn(),pr=n({__proto__:null,default:r(hr)},[hr]),vr=Un(),yr=n({__proto__:null,default:r(vr)},[vr]),mr=nt(),gr=n({__proto__:null,default:r(mr)},[mr]),Er=ot(),br=n({__proto__:null,default:r(Er)},[Er]),Or=Ft(),Ar=n({__proto__:null,default:r(Or)},[Or]);let wr=e=>{[Te,nn,q,$e,B,pr,yn,un,ke,gr,br,Ar,zt,ge,yr,Vt].forEach((n=>{"function"==typeof n.setCustomize&&n.setCustomize(e)}))},Dr="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,_r="undefined"!=typeof SharedWorkerGlobalScope&&self instanceof SharedWorkerGlobalScope;e.store={},_r?cr.start(wr):Dr?lr.start(wr):("undefined"!=typeof module&&module.exports,e.store=dr.start(wr)),e.start=wr})); From 54f1b26c1568cd6ebe687b96df46899238c8ed46 Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 15 Apr 2025 16:11:49 +0200 Subject: [PATCH 08/14] Rebuild after merge --- www/common/worker.bundle.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/worker.bundle.min.js b/www/common/worker.bundle.min.js index f0e2d7712..822cc3f0f 100644 --- a/www/common/worker.bundle.min.js +++ b/www/common/worker.bundle.min.js @@ -1 +1 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["cryptpad-worker-min"]={})}(this,(function(e){"use strict";function n(e,n){return n.forEach((function(n){n&&"string"!=typeof n&&!Array.isArray(n)&&Object.keys(n).forEach((function(t){if("default"!==t&&!(t in e)){var r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:function(){return n[t]}})}}))})),Object.freeze(e)}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function o(e){if(e.__esModule)return e;var n=e.default;if("function"==typeof n){var t=function e(){return this instanceof e?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};t.prototype=n.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t}var a,i,s,c,u,f,l,d={exports:{}},h={exports:{}},p={exports:{}};function v(){return a||(a=1,function(e){var n;n=function(){var e=function(){},n=function(){return(new Date).getTime()},t=function(e,n,t){e.timeouts.push(setTimeout(n,t))},r=function(n,r){n.ws&&(n.ws.onmessage=e,n.ws.onopen=e,n.ws.close(),r?n.ws.onclose({reason:"offline"}):t(n,(function(){n.ws&&n.ws.onclose({reason:"forced closed because websocket failed to close"})}),1e4))},o=function(e,n){return!!e.ws&&(e.ws.send(JSON.stringify(n)),!0)},a=function(e,n){return function(e,t){var r=n[e];if(!r)throw new Error("no such event "+e);r.push(t)}},i=function(e,n,t,r){var o=r[n];if(!o)throw new Error("no such event "+n);var a=o.indexOf(t);-1!==a&&o.splice(a,1)},s=function(e,t,r){if(e.channels[t])return new Promise((function(n){n(e.channels[t])}));var s=e.queues.p2;1===r?s=e.queues.p1:3===r&&(s=e.queues.p3);var c={queue:s,onMessage:[],onJoin:[],onLeave:[],members:[],jSeq:e.seq++},u={message:c.onMessage,join:c.onJoin,leave:c.onLeave},f={_:c,time:n(),id:t,members:c.members,bcast:function(t){return function(e,t,r){var a=e.channels[t],i=e.seq++,s=[i,"MSG",t,r];if(!a)return new Promise((function(e,n){n({type:"NO_SUCH_CHANNEL",message:JSON.stringify(s)})}));var c=o(e,s);return new Promise((function(t,r){c?e.requests[i]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(s)})}))}(e,f.id,t)},leave:function(t){return function(e,t,r){if(e.channels[t]){if(delete e.channels[t],e.ws&&1===e.ws.readyState){var a=e.seq++;o(e,[a,"LEAVE",t,r]);var i=function(){};e.requests[a]={reject:i,resolve:i,time:n()}}}else console.debug("no such channel",t)}(e,f.id,t)},on:a(0,u),off:function(e,n){i(0,e,n,u)}};e.requests[c.jSeq]=f;var l=[c.jSeq,"JOIN",t],d=o(e,l);return new Promise((function(e,n){d?(f._.resolve=e,f._.reject=n):n({type:"DISCONNECTED",message:JSON.stringify(l)})}))},c=function(t){var r={message:t.onMessage,disconnect:t.onDisconnect,reconnect:t.onReconnect},c={webChannels:t.channels,getLag:function(){return function(e){return e.ws?e.pingOutstanding?Math.max(n()-e.timeOfLastPingSent,e.lastObservedLag):e.lastObservedLag:null}(t)},sendto:function(e,r){return function(e,t,r){var a=e.seq++,i=[a,"MSG",t,r],s=o(e,i);return new Promise((function(t,r){s?e.requests[a]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(i)})}))}(t,e,r)},join:function(e,n){return s(t,e,n)},disconnect:function(){return function(n){if(n.ws){var t=n.ws.onclose;n.ws.onclose=e,n.ws.close(),t({reason:"network.disconnect() called"})}n.timeouts.forEach(clearTimeout),n.timeouts=[]}(t)},on:a(0,r),off:function(e,n){i(0,e,n,r)}};return c.__defineGetter__("webChannels",(function(){return Object.keys(t.channels).map((function(e){return t.channels[e]}))})),c},u=function(e,t){var a=void 0;try{a=JSON.parse(t.data)}catch(e){return void console.log(e.stack)}if(e.timeOfLastMsgReceived=n(),0===a[0]){if("IDENT"===a[2])return e.uid=a[3],e.ws._onident(),void(e.pingInterval=setInterval((function(){if(!(n()-e.timeOfLastPingReceived<15e3||(n()-e.timeOfLastMsgReceived>6e4&&r(e),e.pingOutstanding))){var t=e.seq++,a=n();e.timeOfLastPingSent=a,e.pingOutstanding++,e.requests[t]={time:a,ping:a},o(e,[t,"PING"])}}),5e3));if(e.uid){if("PING"===a[2])return a[2]="PONG",void o(e,a);if("MSG"===a[2]){var i=void 0,s=e.queues.p2;if(a[3]===e.uid)i=e.onMessage,"number"==typeof a[5]&&(1===a[5]&&(s=e.queues.p1),3===a[5]&&(s=e.queues.p3));else{var c=e.channels[a[3]];if(!c)return void console.log("message to non-existent chan "+JSON.stringify(a));i=c._.onMessage,c._.queue&&(s=c._.queue)}s.push({msg:a,h:i}),function(e){if(!e.queues.busy){var n=function(){var t=e.queues.p1.shift()||e.queues.p2.shift()||e.queues.p3.shift();if(t){e.queues.busy=!0;var r=t.h,o=t.msg;r.forEach((function(e){setTimeout((function(){try{e(o[4],o[1])}catch(e){console.error(e)}}))})),setTimeout((function(){n()}))}else e.queues.busy=!1};n()}}(e)}if("LEAVE"===a[2]){var u=e.channels[a[3]];if(!u)return void(a[1]!==e.uid&&console.log("leaving non-existent chan "+JSON.stringify(a)));var f=u._.members.indexOf(a[1]);-1!==f&&u._.members.splice(f,1),u._.onLeave.forEach((function(e){try{e(a[1],a[4])}catch(e){console.log(e.stack)}}))}if("JOIN"===a[2]){var l=e.channels[a[3]];if(!l)return void console.log("ERROR: join to non-existent chan "+JSON.stringify(a));if(-1!==l._.members.indexOf(a[1]))return;var d=-1!==l._.members.indexOf(e.uid);l._.members.push(a[1]),d||a[1]!==e.uid||(l.myID=e.uid,l._.resolve(l)),d&&l._.onJoin.forEach((function(e){try{e(a[1])}catch(e){console.log(e.stack)}}))}}}else{var h=e.requests[a[0]];if(!h)return void console.log("error: "+JSON.stringify(a));if(delete e.requests[a[0]],"ACK"===a[1]){if(h.ping)return e.lastObservedLag=n()-Number(h.ping),e.timeOfLastPingReceived=n(),void e.pingOutstanding--;h.resolve()}else if("JACK"===a[1]){if(h._){if(!a[2])throw new Error("wrong type of ACK for channel join");return h.id=a[2],void(e.channels[h.id]=h)}h.resolve()}else if("ERROR"===a[1])if("function"==typeof h.reject)h.reject({type:a[2],message:a[3]});else if(h._&&"function"==typeof h._.reject){if("EJOINED"===a[2]&&!e.channels[a[3]])return h.id=a[3],void(e.channels[h.id]=h);h._.reject({type:a[2],message:a[3]})}else console.error(a);else h.reject({type:"UNKNOWN",message:JSON.stringify(a)})}};return{connect:function(o,a){a=a||function(e){return new window.WebSocket(e)};var i={ws:null,seq:1,uid:null,network:null,channels:{},onMessage:[],onDisconnect:[],onReconnect:[],timeouts:[],requests:{},pingInterval:null,queues:{p1:[],p2:[],p3:[]},timeOfLastPingSent:-1,timeOfLastPingReceived:-1,timeOfLastMsgReceived:-1,lastObservedLag:0,pingOutstanding:0};i.network=c(i);var s=e,f=e;"undefined"!=typeof window&&window.addEventListener("offline",(function(){-1===["localhost","127.0.0.1",""].indexOf(window.location.hostname)&&r(i,!0)}));var l=function(){var c=i.ws=a(o);i.timeOfLastPingSent=i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),c.onmessage=function(e){return u(i,e)},c.onclose=function(n){c.onclose=e,clearInterval(i.pingInterval),i.timeouts.forEach(clearTimeout),i.ws=null,i.uid&&(i.uid=null,i.onDisconnect.forEach((function(e){try{e(n.reason)}catch(e){console.log(e.stack)}}))),t(i,l,i.uid?0:7e3)},c.onopen=function(){t(i,(function(){i.uid||(f({type:"TIMEOUT",message:"waited 30000ms"}),s=f=e,r(i))}),3e4)},i.ws._onident=function(){i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),i.lastObservedLag=n()-i.timeOfLastPingSent,s!==e?(s(i.network),s=f=e):(i.channels={},i.requests={},i.pingOutstanding=0,i.onReconnect.forEach((function(e){try{e(i.uid)}catch(e){console.log(e.stack)}})))}};return new Promise((function(e,n){s=e,f=n,l()}))}}},e.exports?e.exports=n():window.netflux_websocket=n()}(p)),p.exports}function y(){return i||(i=1,function(e){var n,t,r,o;e.exports&&(e.exports=(n=v(),r=function(e){return e.replace(/^\d+:/,"")},o=(t={}).removeCp=function(e){return e.replace(/^cp\|([A-Za-z0-9+\/=]{0,20}\|)?/,"")},t.start=function(e){var t,a=(e=e||{}).network,i=e.websocketURL,s=e.userName,c=e.channel,u=e.crypto,f=e.readOnly||!1,l=!e.noChainPad&&(e.ChainPad||window.ChainPad),d=void 0===e.useHistory||!!e.useHistory,h=!1,p=e.lastKnownHash,v={},y=[],m=e.priority||2,g=e.Cache,E=!1,b=Math.floor(1e6*Math.random()),O=e.metadata||{},A=O.validateKey=e.validateKey||O.validateKey;O.owners=e.owners||O.owners,O.expire=e.expire||O.expire;var w,D,_=!0,T=!1,S={setReadOnly:function(e,n){f=e,n&&(u=n)}},x=function(){},N=[],I={send:function(){}},C=function(){w&&"function"==typeof w.abort&&w.abort();var n=l.create({userName:s,initialState:e.initialState,transformFunction:e.transformFunction,patchTransformer:e.patchTransformer,validateContent:e.validateContent,avgSyncMilliseconds:e.avgSyncMilliseconds,logLevel:void 0!==e.logLevel?e.logLevel:1});return g&&Array.isArray(t)&&t.length&&(t.forEach((function(e){var t=e.patch;if(!/^\[/.test(t)){try{t=u.decrypt(t,A,!0)}catch(e){console.error(t,A,c),console.error(e)}t=r(t)}n.message(t)})),""===n.getUserDoc())?(n.abort(),t=[],g.clearChannel(c),C()):(n.onMessage((function(e,n,t){I.send(e,n,t)})),n.onPatch((function(t){e.onRemote&&e.onRemote({realtime:n,patch:t})})),n)},R={change:[],onChange:function(e){R.change.forEach((function(n){n(e)}))},users:[]},P=function(n){e.onJoin&&e.onJoin(n),32===n.length&&(-1===R.users.indexOf(n)&&R.users.push(n),R.onChange())},k=function(){},M=function(n){e.onLeave&&e.onLeave(n);var t=R.users.indexOf(n);-1!==t&&R.users.splice(t,1),R.onChange()},F=function(n,t){if(_){try{var r=w&&w.getUserDoc();if(E&&w&&(""===r||r===e.initialState))return void S.resetCache()}catch(e){console.error(e)}w&&w.start(),e.setMyID&&e.setMyID({myID:n.myID}),_=!1,e.onReady&&e.onReady({realtime:w,network:t,userList:R,myId:n.myID,leave:n.leave,metadata:O}),y.length&&(y.forEach((function(e){"function"==typeof e&&e()})),y=[])}},L=function(n,r){if(e.onChannelError&&e.onChannelError({channel:r.id,type:n.error,loaded:!_,error:n.error,message:n.message}),"EUNKNOWN"===n.error)return p=void 0,r&&r.leave(),g?(t=[],void g.clearChannel(c,(function(){l&&(S.realtime=w=C()),x(a,k)}))):void x(a,k);if("function"==typeof S.stop)try{S.stop()}catch(e){}},H=!0,j=function(e){g&&(t.length&&t[t.length-1].hash===e.hash||(!t.length&&H&&(e.isCheckpoint=!0,H=!1),(t.length||e.isCheckpoint)&&(t.push(e),g.storeCache(c,A,t,(function(e){if(e){g.clearChannel(c,(function(){console.warn("Cache cleared",c)}));var n=t;return t=[],void console.error(e,c,n,A)}})))))},K=function(n,t,a,i,s){var f=i.historyKeeper,l=n===f;if(!a||0!==t&&"0"!==t){if(!s||n===f){if(s){var d=JSON.parse(t);if(d.txid&&d.txid!==b)return;if(d.validateKey&&d.channel)return d.channel!==a.id||A||(A=d.validateKey),void(d.channel===a.id&&(O=d,e.onMetadataUpdate&&!_&&e.onMetadataUpdate(O)));if(d.state&&1===d.state&&d.channel)return void(d.channel===a.id&&(Object.keys(v).forEach((function(e){"function"==typeof v[e]&&v[e]("FAILED")})),v={},F(a,i)))}if(l){var h=JSON.parse(t);if(Array.isArray(h)&&h[0]&&h[0]!==b)return;if(h.channel===a.id&&h.error)return void L(h,a);if(t=h[4],h[3]!==a.id)return}if(p=t.slice(0,64),"function"==typeof v[p])return v[p](null,p),void delete v[p];var m,g=/^cp\|/.test(t);t=o(t);try{t=u.decrypt(t,A,l)}catch(e){console.error(t,A,c),console.error(e)}var E="string"==typeof t;!E&&t.content&&(m=t.author,t=t.content),_||e.onLocal&&e.onLocal(!0);var D=E?r(t):t,T=function(){try{if(w&&E&&w.message(D),e.onMessage){var t={time:h?h[5]:+new Date};e.onMessage(D,n,A,g,p,m,t)}var r=g;e.isCacheCheckpoint&&(r=e.isCacheCheckpoint(D,m)),j({patch:D,hash:p,isCheckpoint:r,author:m,time:h?h[5]:+new Date})}catch(e){console.error(e)}};_&&n!==f?y.push(T):T()}}else F(a,i)},U=function(n,r,a){I.wc=n,c=n.id,n.members.forEach(P);var i,s=function(e,t){K(t,e,n,r)};n.on("message",s),n.on("join",P),n.on("leave",M),I.stop=function(){n.off("message",s),n.off("join",P),n.off("leave",M),n.leave(),w&&w.abort()},a&&(I.send=function(n,t,a){var i=function(e,n){if(!f)try{var t=u.encrypt(e,n);if(0===e.indexOf("[4")){var r="";if(window.nacl){var o=window.nacl.hash(window.nacl.util.decodeUTF8(e));r=window.nacl.util.encodeBase64(o.slice(0,8))+"|"}else console.log("Checkpoint sent without an ID. Nacl is missing.");t="cp|"+r+t}return t}catch(n){throw console.log(e),n}}(n,a);if(i){var s=i.slice(0,64),l=/^cp\|/.test(i);e.isCacheCheckpoint&&(l=e.isCacheCheckpoint(n,a)),v[s]=function(e,r){!e&&r&&j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(e,r)},I.wc.bcast(i).then((function(){p=s,delete v[s],j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(null,s)}),(function(e){if(console.error(e),!e||"enoent"!==e.type&&"ENOENT"!==e.type)delete v[s],t(e&&e.type||e);else{if(I.wc.leave(),h)return delete v[s],void t("STOPPED");_=!0,r.join(c,m).then((function(e){U(e,r,!1),I.send(n,t,a)}))}}))}},l&&!w&&(S.realtime=w=C()),e.onInit&&e.onInit({myID:n.myID,realtime:w,getLag:r.getLag,userList:R,network:r,channel:c})),e.onConnect&&e.onConnect(n,I.send),d?(n.members.forEach((function(e){16===e.length&&(i=e)})),D!==i&&(r.historyKeeper=i,D=i,N.forEach((function(e){e(i)}))),function(){var e={txid:b,priority:m,lastKnownHash:p,metadata:O};g&&Array.isArray(t)&&t.length&&(e.lastKnownHash=t[t.length-1].hash),y=[];var o=["GET_HISTORY",n.id,e];i&&r.sendto(i,JSON.stringify(o))}(),S.resetCache=function(){_=!0,t=[],g&&g.clearChannel(c),b=Math.floor(1e6*Math.random()),L({error:"EUNKNOWN",message:"Corrupted cache"},n)}):F(n,r)},B=!1;"undefined"!=typeof window&&window.addEventListener("beforeunload",(function(){B=!0}));var V=function(e,n){var t;return e.some((function(e){if(e.id===n)return t=e,!0})),t},Y=function(n){e.onError&&e.onError({type:n.type||n,message:n.message,error:n.type,loaded:!_})};x=function(r,o){var a;"string"==typeof r&&(a=n.connect(r));var i=function(){T=!1,"string"==typeof r?a.then(o,Y):"function"==typeof r.then?r.then(o,Y):o(r)};if(g&&!T)return g.getChannelCache(c,(function(n,r){A=r?r.k:void 0,(t=r?r.c:[]).length?(E=!0,e.onCacheStart&&e.onCacheStart(),l&&(S.realtime=w=C()),t.length?(e.onMessage&&t.forEach((function(n){var t={time:n.time};e.onMessage(n.patch,"cache",A,n.isCheckpoint,n.hash,n.author,t)})),e.onCacheReady&&e.onCacheReady({id:c,realtime:w,networkPromise:a}),i()):i()):i()})),void(S.resetCache=function(){g&&g.clearChannel(c),t=[]});i()};var G=!0;return k=function(n,t){h||n.join(c||null,m).then((function(e){if(h)try{e.leave()}catch(e){}else U(e,n,t)}),(function(r){r&&"ERESTRICTED"===r.type&&Array.isArray(r.message)&&e.onRejected?e.onRejected(r.message,(function(e){e?Y(r):k(n,t)})):Y(r)}))},S.stop=function(){h=!0},x(a||i,(function(n){if(a=n,G){if(G=!1,h)return;var t=function(n){B||"network.disconnect() called"!==n&&(e.onConnectionChange?e.onConnectionChange({state:!1}):e.onAbort&&e.onAbort({reason:n}))},r=function(n){if(e.onConnectionChange){e.onConnectionChange({state:!0,myId:n});var t=function(){_=!0,T=!0,R.users=[],x(a,k)};if(e.beforeReconnecting)return void e.beforeReconnecting((function(n,r){c=n,e.initialState=r,t()}));t()}},o=function(e,n){var t=V(a.webChannels,c);t&&K(n,e,t,a,!0)};a.on("disconnect",t),a.on("reconnect",r),a.on("message",o),S.network=a,S.stop=function(){I&&I.stop&&I.stop();var e=V(a.webChannels,c);if(e)try{e.leave("")}catch(e){}a.off("disconnect",t),a.off("reconnect",r),a.off("message",o),h=!0},a.onHistoryKeeperChange=function(e){N.push(e)}}k(a,!0)})),S},t))}(h)),h.exports}function m(){return f?u:(f=1,u=function(){if(c)return s;c=1;const e=n=>{if(Array.isArray(n))return n.map(e);if(n instanceof Object){let t=[],r=[];return Object.keys(n).forEach((e=>{/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce(((t,r)=>(t[r]=e(n[r]),t)),{})}return n},n=JSON.stringify.bind(JSON);return s=(t,r,o)=>{let a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;let i=JSON.parse(a);return n(e(i),null,o)}}())}function g(){return l||(l=1,function(e){e.exports&&(e.exports=function(e,n){const t=globalThis;var r,o={},a=void 0===t.Proxy,i=o.DeepProxy=function(){var e={},r=e.isArray=Array.isArray||function(e){return"[object Array]"===Object.toString(e)},o=e.type=function(e){return null===e?"null":r(e)?"array":typeof e},i=e.isProxyable=function(e,n){return(void 0!==n||!a)&&-1!==["object","array"].indexOf(o(e))},s=e.set=function(n){return function(t,r,o){if("on"===r)throw new Error("'on' is a reserved attribute name for realtime lists and maps");return i(o)?t[r]=e.create(o,n):t[r]=o,n(),t[r]||!0}},c=e.pathMatches=function(e,n){return!n.some((function(n,t){return n!==e[t]}))},u=function(e,n){return n.pattern.length-e.pattern.length},f=function(e){return function(n,t,r){switch(n){case"change":t="array"===o(t)?t:[t],e.change.push({cb:function(e,n,o,a){if(c(o,t))return r(e,n,o,a)},pattern:t}),e.change.sort(u);break;case"remove":t="array"===o(t)?t:[t],e.remove.push({cb:function(e,n,o){if(c(n,t))return r(e,n,o)},pattern:t}),e.remove.sort(u);break;case"ready":e.ready.push({cb:function(e){t(e)}});break;case"cacheready":e.cacheready.push({cb:function(e){t(e)}});break;case"disconnect":e.disconnect.push({cb:function(e){t(e)}});break;case"reconnect":e.reconnect.push({cb:function(e){t(e)}});break;case"create":e.create.push({cb:function(e){t(e)}});break;case"error":e.error.push({cb:function(e){t(e)}})}return this}},l=e.get=function(){var e={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};return function(n,t){return"on"===t?f(e):"_isProxy"===t||("_events"===t?e:n[t])}},d=e.delete=function(e){return function(n,t){return void 0===n[t]||(delete n[t],e()),!0}},h=e.handlers=function(e,n){return n?{set:s(e),get:l(e),deleteProperty:d(e)}:{set:s(e),get:function(e,n){return"_isProxy"===n||e[n]},deleteProperty:d(e)}},p=e.remoteChangeFlag=!1,v=e.stringifyFakeProxy=function(e){var t=JSON.parse(n(e));return delete t._events,delete t._isProxy,n(t)};e.checkLocalChange=function(n,r){if(a&&!e.interval){var o=v(n);e.interval=t.setInterval((function(){var e=v(n);e!==o&&(o=e,p?p=!1:r())}),300)}};var y=e.create=function(e,n,r){var s="function"===o(n)?h(n,r):n;switch(o(e)){case"object":Object.keys(e).forEach((function(t){i(e[t])&&!e[t]._isProxy&&(e[t]=y(e[t],n))}));break;case"array":e.forEach((function(t,r){i(t)&&!t._isProxy&&(e[r]=y(e[r],n))}));break;default:throw new Error("attempted to make a proxy of an unproxyable object")}if(!a)return e._isProxy?e:new t.Proxy(e,s);var c=JSON.parse(JSON.stringify(e));if(r){var u={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};c.on=f(u),c._events=u}return c},m=function(e,n,t,r,o){var a=e.slice(0);a.push(n),t._events.change.some((function(e){return!1===e.cb(r,o,a,t)}))},g=e.find=function(e,n){for(var t=n.length,r=0;rs)for(var c,u=s;u<=s;u++)c=e[u],E(r,u,a,c,!0);e.length=s}};return e.update=function(e,n,t){var r=o(e),a=o(n);if(r!==a)throw new Error("Proxy updates can't result in type changes");switch(a){case"array":O.call(e,e,n,(function(e){return y(e,t)}),[],e);break;case"object":b.call(e,e,n,(function(e){return y(e,t)}),[],e);break;default:throw new Error("unsupported realtime datatype:"+a)}},e}();return o.create=function(o){if(!i.isProxyable(o.data,!0))throw new Error("unsupported datatype: "+i.type(o.data));if("function"!=typeof(r=o.ChainPad||t.ChainPad).SmartJSONTransformer)throw new Error("Please update ChainPad");o.classic&&!o.crypto&&(console.error("[chainpad-listmap] no crypto module provided. messages will not be encrypted"),o.crypto={encrypt:function(e){return e},decrypt:function(e){return e}});var s=o.readOnly,c={initialState:n(o.data),patchTransformer:r.SmartJSONTransformer,validateContent:o.validateContent||function(e){try{return JSON.parse(e),!0}catch(n){return console.log(e),console.error("Failed to parse, rejecting patch"),!1}},readOnly:o.readOnly,userName:o.userName||"listmap",Cache:o.Cache,logLevel:void 0===o.logLevel?0:o.logLevel};o.classic&&(c.channel=o.channel,c.crypto=o.crypto,c.network=o.network,c.websocketURL=o.websocketURL,c.metadata=o.metadata||{validateKey:o.validateKey,owners:o.owners,expire:o.expire},c.onRejected=o.onRejected);var u,f,l,d={metadata:{}},h=!0,p=!1,v=a?i.stringifyFakeProxy:n,y=function(){var e=v(f);try{u.contentUpdate(e)}catch(e){f._events.error.forEach((function(n){n.cb({type:"CHAINPAD",error:e.message})}))}o.onLocal&&o.onLocal()},m=c.onLocal=function(e){h||s||(clearTimeout(l),e?y():l=setTimeout(y))},g=function(){i.remoteChangeFlag||m()};f=i.create(o.data,g,!0),c.onInit=function(e){f._events.create.forEach((function(n){n.cb(e)}))},c.onCacheReady=function(e){u&&u===e.realtime||(u=d.realtime=e.realtime);var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),p||f._events.cacheready.forEach((function(n){n.cb(e)}))};var E=0;c.onReady=function(e){if(E=-1,p)return h=!1,c.onRemote(),void f._events.reconnect.forEach((function(n){n.cb(e)}));u&&u===e.realtime||(u=d.realtime=e.realtime),d.metadata=e.metadata;var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),h=!1,p=!0,f._events.ready.forEach((function(n){n.cb(e)}))},c.onRemote=function(){if(!h){var e=u.getUserDoc(),n=JSON.parse(e);i.remoteChangeFlag=!0,i.update(f,n,g),i.remoteChangeFlag=!1}},c.onMessage=function(){-1!==E&&o.updateProgress&&o.updateProgress({progress:E++})},c.onAbort=function(e){f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onConnectionChange=function(e){e.state?h=!0:f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onMetadataUpdate=function(e){d.metadata=e,"function"==typeof o.onMetadataUpdate&&o.onMetadataUpdate(e)},c.onError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},c.onChannelError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},o.common&&"function"==typeof o.common.startRealtime?u=d.cpCnInner=o.common.startRealtime(c):d=e.start(c),d.proxy=f,d.realtime=u;var b=d.setReadOnly;return d.setReadOnly=function(e,n){s=e,b&&b(e,n)},d},o}(y(),m()))}(d)),d.exports}var E=g();function b(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var O,A={exports:{}};function w(){return O||(O=1,function(e){var n,r,o,a;a=function(){var e=b,n=function(t,r,o){r||(r=0);var a=n.resolve(t,r),i=n.m[r][a];if(!i&&e){if(i=e(a))return i}else if(i&&i.c&&(r=i.c,a=i.m,!(i=n.m[r][i.m])))throw new Error('failed to require "'+a+'" from '+r);if(!i)throw new Error('failed to require "'+t+'" from '+o);return i.exports||(i.exports={},i.call(i.exports,i,i.exports,n.relative(a,r))),i.exports};return n.resolve=function(e,t){var r=e,o=e+".js",a=e+"/index.js";return n.m[t][o]&&o?o:n.m[t][a]&&a?a:r},n.relative=function(e,t){return function(r){if("."!=r.charAt(0))return n(r,t,e);var o=e.split("/"),a=r.split("/");o.pop();for(var i=0;i=0;t--)o.check(e.operations[t],n),t>0&&r.assert(!o.shouldMerge(e.operations[t],e.operations[t-1])),"number"==typeof n&&(n+=o.lengthChange(e.operations[t]));return e.isCheckpoint&&(r.assert(1===e.operations.length),r.assert(0===e.operations[0].offset),"number"==typeof n&&r.assert(!n||e.operations[0].toRemove===n)),e};i.toObj=function(e){r.PARANOIA&&c(e);var n,t=new Array(e.operations.length+1);for(n=0;n0);var t,i=s(a.check(e[e.length-1]),n);for(t=0;t=0;t--)f(e,n.operations[t]);return e},i.apply=function(e,n){r.PARANOIA&&(c(e),r.assert("string"==typeof n),r.assert(a.hex_sha256(n)===e.parentHash));for(var t=n,i=e.operations.length-1;i>=0;i--)t=o.apply(e.operations[i],t);return t},i.lengthChange=function(e){r.PARANOIA&&c(e);for(var n=0,t=0;t=0;u--)i[u]=o.invert(e.operations[u],t),t=o.apply(e.operations[u],t);var f=new Array(e.operations.length);!function(){for(var e=i.length-1;e>=0;e--){f[e]=i[e].offset;for(var n=e-1;n>=0;n--)f[e]+=i[n].toRemove-i[n].toInsert.length}}();var l=s(a.hex_sha256(t),e.isCheckpoint);l.operations.splice(0,l.operations.length);for(var d=0;d=0;d--){var h=t(e.operations[d],u,o.simplify);h&&(u=o.apply(h,u),f[l++]=h)}return Array.prototype.push.apply(i.operations,f.reverse()),i.operations[0]||i.operations.shift(),r.PARANOIA&&c(i),i},i.equals=function(e,n){if(e.operations.length!==n.operations.length)return!1;for(var t=0;t0;){var u=o.random(i);i+=o.lengthChange(u),f(t,u)}return c(t),t},Object.freeze(e.exports)},"SHA256.js":function(e,n,t){!function(){function n(e,n){var t=(65535&e)+(65535&n);return(e>>16)+(n>>16)+(t>>16)<<16|65535&t}function t(e,n){return e>>>n|e<<32-n}function r(e,n){return e>>>n}function o(e,n,t){return e&n^~e&t}function a(e,n,t){return e&n^e&t^n&t}function i(e){return t(e,2)^t(e,13)^t(e,22)}function s(e){return t(e,6)^t(e,11)^t(e,25)}function c(e){return t(e,7)^t(e,18)^r(e,3)}e.exports.hex_sha256=function(e){return function(e){for(var n="0123456789abcdef",t="",r=0;r<4*e.length;r++)t+=n.charAt(e[r>>2]>>8*(3-r%4)+4&15)+n.charAt(e[r>>2]>>8*(3-r%4)&15);return t}(function(e,u){var f,l,d,h,p,v,y,m,g,E,b,O=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],A=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],w=function(e){for(var n=[];e>0;e--)n.push(void 0);return n}(64);e[u>>5]|=128<<24-u%32,e[15+(u+64>>9<<4)]=u;for(var D=0;D>5]|=(255&e.charCodeAt(t/8))<<24-t%32;return n}(e),8*e.length))}}()},"Common.js":function(e,n,r){e.exports.global=function(){if("undefined"!=typeof self)return self;if(void 0!==t)return t;if("undefined"!=typeof window)return window;throw new Error("no self, nor global, nor window")}();var o=function(n){return"undefined"!=typeof localStorage&&localStorage[n]?localStorage[n]:e.exports.global[n]},a=e.exports.PARANOIA=o("ChainPad_PARANOIA");e.exports.VALIDATE_ENTIRE_CHAIN_EACH_MSG=o("ChainPad_VALIDATE_ENTIRE_CHAIN_EACH_MSG"),e.exports.TESTING=o("ChainPad_TESTING"),e.exports.assert=function(e){if(!e)throw new Error("Failed assertion")},e.exports.isUint=function(e){return"number"==typeof e&&Math.floor(e)===e&&e>=0},e.exports.randomASCII=function(e){for(var n=[],t=0;tn?1:-1},Object.freeze(e.exports)},"sha256.js":function(e,n,t){var r=t("./sha256/exports.js"),o=t("./SHA256.js"),a=t("./Common");e.exports.check=function(e){if("string"!=typeof e)throw new Error;if(!/[a-f0-9]{64}/.test(e))throw new Error;return e},e.exports.hex_sha256=function(e){e+="";var n=r.hex(function(e){for(var n=new Uint8Array(e.length),t=0;t1&&console.log("["+e.userName+"] "+n)},d=function(e,n){e.logLevel>0&&console.error("["+e.userName+"] "+n)},h=function(e,n,t){if(!e.aborted){t||(t=Math.floor(2*Math.random()*e.config.avgSyncMilliseconds));var r=setTimeout((function(){e.schedules.splice(e.schedules.indexOf(r),1),n()}),t);return e.schedules.push(r),r}},p=function(e,n){var t=e.schedules.indexOf(n);t>-1&&e.schedules.splice(t,1),clearTimeout(n)},v=function(e,n,t,o){var a=i.toStr(n);if(function(e,n,t){e.messageHandlers.length||t("no onMessage() handler registered");try{e.messageHandlers.forEach((function(e){e(n,(function(){t.apply(null,arguments),t=function(){}}))}))}catch(e){t(e.stack)}}(e,a,(function(t){if(t)l(e,"Posting to server failed ["+t+"]"),e.pending=null,e.syncSchedule=h(e,(function(){g(e)}));else{var o=e.pending;if(e.pending=null,!o)throw new Error;r.assert(o.hash===n.hashOf),R(e,a,!0)?(e.timeOfLastSuccess=+new Date,e.lag=+new Date-o.timeSent):l(e,"Our message ["+n.hashOf+"] failed validation"),o.callback()}})),e.pending)throw new Error("there is already a pending message");-1===e.timeOfLastSuccess&&(e.timeOfLastSuccess=+new Date),e.pending={hash:n.hashOf,timeSent:+new Date,callback:function(){e.syncSchedule=h(e,(function(){g(e)}),0),t()}},r.PARANOIA&&A(e)},y=function(e){var n=e.onSettle;e.onSettle=[],n.forEach((function(n){try{n()}catch(n){d(e,"Error in onSettle handler ["+n.stack+"]")}}))},m=function(e){if(!e.mut.inverseOf)throw new Error;return e.mut.inverseOf},g=function(e,n){if(r.PARANOIA&&A(e),e.syncSchedule&&!e.pending){if(p(e,e.syncSchedule),e.syncSchedule=null,e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify),0===e.uncommitted.operations.length)return y(e),e.timeOfLastSuccess=+new Date,void(e.syncSchedule=h(e,(function(){g(e)})));var t=_(e,e.best)+1;if(t%e.config.checkpointInterval!=0){var o;o=e.setContentPatch?e.setContentPatch:i.create(i.PATCH,e.uncommitted,e.best.hashOf),v(e,o,(function(){e.setContentPatch&&(l(e,"initial Ack received ["+o.hashOf+"]"),e.setContentPatch=null)}))}else{var s=e.best;if(l(e,"Sending checkpoint (interval ["+e.config.checkpointInterval+"]) patch no ["+t+"]"),l(e,_(e,e.best)),!s||!s.content||!m(s.content))throw new Error;var c=a.createCheckpoint(e.authDoc,e.authDoc,m(s.content).parentHash),u=i.create(i.CHECKPOINT,c,s.hashOf);v(e,u,(function(){l(e,"Checkpoint sent and accepted")}))}}},E=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),e.messages[n.hashOf]=n,(e.messagesByParent[n.lastMsgHash]=e.messagesByParent[n.lastMsgHash]||[]).push(n)},b=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),delete e.messages[n.hashOf];var t=e.messagesByParent[n.lastMsgHash];r.assert(t.indexOf(n)>-1),t.splice(t.indexOf(n),1),0===t.length&&delete e.messagesByParent[n.lastMsgHash];var o=e.messagesByParent[n.hashOf];if(o)for(var a=0;a_(e,t)&&(t=o)})),t},x=function(e,n){n.operations.length&&(e.patchHandlers.forEach((function(e){e(n)})),e.changeHandlers.forEach((function(e){n.operations.forEach((function(n){e(n.offset,n.toRemove,n.toInsert)}))})))},N=function(e,n){try{return e.config.validateContent(n())}catch(n){d(e,"Error in content validator ["+n.stack+"]")}return!1},I=function(e,n,t){for(var r=O(e,n);r;r=O(e,r))if(!1===t(r))return},C=function(e,n){e.mut.inverseOf||((e.mut.inverseOf=a.invert(e,n)).mut.inverseOf=e)},R=function(e,n,t){r.PARANOIA&&A(e);var c=i.fromString(n);if(l(e,JSON.stringify([c.hashOf,c.content.operations])),e.messages[c.hashOf]){if(e.setContentPatch&&e.setContentPatch.hashOf===c.hashOf)e.setContentPatch=null;else{if(c.content.isCheckpoint)return l(e,"["+(t?"our":"their")+"] Checkpoint ["+c.hashOf+"] is already known"),!0;l(e,"Patch ["+c.hashOf+"] is already known")}r.PARANOIA&&A(e)}else if(!c.content.isCheckpoint||N(e,(function(){return c.content.operations[0].toInsert}))){if(E(e,c),!D(e,e.rootMessage,c)){if(c.content.isCheckpoint&&e.best.mut.isInitialMessage){l(e,"applying checkpoint ["+c.hashOf+"]");var u=a.apply(e.uncommitted,e.authDoc);r.assert(!r.PARANOIA||e.userInterfaceContent===u);var f=a.invert(e.uncommitted,e.authDoc);return a.addOperation(f,o.create(0,e.authDoc.length,c.content.operations[0].toInsert)),f=a.simplify(f,u,e.config.operationSimplify),c.mut.parentCount=0,e.rootMessage=e.best=c,e.authDoc=c.content.operations[0].toInsert,e.uncommitted=a.create(s.hex_sha256(e.authDoc)),x(e,f),r.PARANOIA&&(e.userInterfaceContent=e.authDoc),!0}return l(e,"Patch ["+c.hashOf+"] not connected to root (parent: ["+c.lastMsgHash+"])"),void(r.PARANOIA&&A(e))}(c=S(e,c)).mut.isFromMe=t;var d=c.content,h=[],p=e.best;if(!D(e,e.best,c)){var v=_(e,e.best),g=_(e,c);if(!(v0))return l(e,"Patch ["+c.hashOf+"] chain is ["+g+"] best chain is ["+v+"]"),r.PARANOIA&&A(e),!0;for(;p&&!D(e,p,c);)h.push(p),p=O(e,p);r.assert(p),l(e,"Patch ["+c.hashOf+"] better than best chain, switching")}var R=[],P=c;do{R.unshift(P),P=O(e,P),r.assert(P)}while(P!==p);var k=e.authDoc;h.forEach((function(e){k=a.apply(m(e.content),k)})),R.forEach((function(e,n){n!==R.length-1&&(C(e.content,k),k=a.apply(e.content,k))}));var M=e.best;if(R.length>1?(M=R[R.length-2],r.assert(M)):h.length&&(M=O(e,h[h.length-1]),r.assert(M)),r.assert(m(M.content).parentHash),r.assert(!r.PARANOIA||m(M.content).parentHash===s.hex_sha256(k)),m(M.content).parentHash===d.parentHash){if(d.isCheckpoint&&e.config.noPrune);else if(d.isCheckpoint){var F;if(I(e,c,(function(e){if(e.content.isCheckpoint){if(F)return F=e,!1;F=e}})),F&&F!==e.rootMessage){var L=_(e,F);if(e.config.strictCheckpointValidation&&L%e.config.checkpointInterval!=0){if(l(e,"checkpoint ["+c.hashOf+"] at invalid point ["+L+"]"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}l(e,"checkpoint ["+c.hashOf+"]"),I(e,F,(function(n){l(e,"pruning ["+n.hashOf+"]"),b(e,n)})),e.rootMessage=F}}else{var H=a.simplify(d,k,e.config.operationSimplify);if(!a.equals(H,d)){if(l(e,"patch ["+c.hashOf+"] can be simplified"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}if(!N(e,(function(){return a.apply(d,k)})))return void l(e,"Patch ["+c.hashOf+"] failed content validation")}C(d,k),e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify);var j=a.apply(e.uncommitted,e.authDoc);r.PARANOIA&&r.assert(j===e.userInterfaceContent);var K=a.invert(e.uncommitted,e.authDoc);if(h.forEach((function(n){l(e,"reverting ["+n.hashOf+"]"),n.mut.isFromMe&&l(e,"reverting patch 'from me' ["+JSON.stringify(n.content.operations)+"]"),K=a.merge(K,m(n.content)),function(e,n,t){T(e,n,m(t))}(e,n.mut.isFromMe,n.content)})),R.forEach((function(n){l(e,"applying ["+n.hashOf+"]"),K=a.merge(K,n.content),T(e,n.mut.isFromMe,n.content)})),K=a.merge(K,e.uncommitted),K=a.simplify(K,j,e.config.operationSimplify),e.best=c,r.PARANOIA){var U=a.apply(K,j);r.assert(e.userInterfaceContent.length===w(e)),r.assert(U===e.userInterfaceContent)}return x(e,K),e.uncommitted.operations.length||y(e),r.PARANOIA&&A(e),!0}if(l(e,"patch ["+c.hashOf+"] parentHash is not valid"),r.PARANOIA&&A(e),r.TESTING)throw new Error;b(e,c)}else l(e,"Checkpoint ["+c.hashOf+"] failed content validation")},P=function(e,n){return Object.freeze({type:"Block",hashOf:n.hashOf,lastMsgHash:n.lastMsgHash,isCheckpoint:!!n.content.isCheckpoint,isFromMe:n.mut&&n.mut.isFromMe,author:n.mut&&n.mut.author,serverHash:n.mut&&n.mut.serverHash,time:n.mut&&n.mut.time,getParent:function(){var t=O(e,n);if(t)return P(e,t)},getContent:function(){return function(e,n){for(var t=[n];t[0]!==e.rootMessage;){var o=O(e,t[0]);if(!o)return{error:"not connected to root",doc:void 0};t.unshift(o)}var i="";e.rootMessage.content.operations.length&&(r.assert(1===e.rootMessage.content.operations.length),i=e.rootMessage.content.operations[0].toInsert);for(var s=1;s=0;t--)n=s(e[t],n);return n};var c=o.invert=function(e,n){return r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length)),i(e.offset,e.toInsert.length,(" "+n.substring(e.offset,e.offset+e.toRemove)).slice(1))},u=/[\uD800-\uDBFF]|[\uDC00-\uDFFF]/,f=o.hasSurrogate=function(e){return u.test(e)};o.simplify=function(e,n){r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length));for(var t=c(e,n),o=Math.min(e.toInsert.length,t.toInsert.length),s=0;s=0&&h[s]===d[s];s--);d=d.substring(0,s+1),l=s+1}return 0===l&&0===d.length?null:i(u,l,d)},o.equals=function(e,n){return e.toRemove===n.toRemove&&e.toInsert===n.toInsert&&e.offset===n.offset},o.lengthChange=function(e){return r.PARANOIA&&a(e),e.toInsert.length-e.toRemove},o.merge=function(e,n){r.PARANOIA&&(a(n),a(e));var t=e.offset,o=e.toRemove,s=e.toInsert,c=n.offset,u=n.toRemove,f=n.toInsert,l=c-t;if(u>0){var d=s;s=s.substring(0,l)+s.substring(l+u),(u-=d.length-s.length)<0&&(u=0),o+=u,u=0}if(l<0)t+=l,s=f+s;else if(s.length===l)s+=f;else{if(!(s.length>l))throw new Error("should never happen\n"+JSON.stringify([e,n],null," "));s=s.substring(0,l)+f+s.substring(l)}return""===s&&0===o?null:i(t,o,s)},o.shouldMerge=function(e,n){return r.PARANOIA&&(a(e),a(n)),n.offset0;)a+=c=r._heap_write(t,o+a,e,i,s),i+=c,s-=c,o+=c=n.process(o,a),(a-=c)||(o=0);return this.pos=o,this.len=a,this},e.exports.hash_finish=function(){if(null!==this.result)throw new IllegalStateError("state must be reset before processing new data");return this.asm.finish(this.pos,this.len,0),this.result=new Uint8Array(this.HASH_SIZE),this.result.set(this.heap.subarray(0,this.HASH_SIZE)),this.pos=0,this.len=0,this}},"sha256/utils.js":function(e,n,t){var r=e.exports.string_to_bytes=function(e,n){n=!!n;for(var t=e.length,r=new Uint8Array(n?4*t:t),o=0,a=0;o=t)throw new Error("Malformed string, low surrogate expected at position "+o);i=(55296^i)<<10|65536|56320^e.charCodeAt(o)}else if(!n&&i>>>8)throw new Error("Wide characters are not allowed.");!n||i<=127?r[a++]=i:i<=2047?(r[a++]=192|i>>6,r[a++]=128|63&i):i<=65535?(r[a++]=224|i>>12,r[a++]=128|i>>6&63,r[a++]=128|63&i):(r[a++]=240|i>>18,r[a++]=128|i>>12&63,r[a++]=128|i>>6&63,r[a++]=128|63&i)}return r.subarray(0,a)};e.exports.hex_to_bytes=function(e){var n=e.length;1&n&&(e="0"+e,n++);for(var t=new Uint8Array(n>>1),r=0;r>1]=parseInt(e.substr(r,2),16);return t},e.exports.base64_to_bytes=function(e){return r(atob(e))};var o=e.exports.bytes_to_string=function(e,n){n=!!n;for(var t=e.length,r=new Array(t),o=0,a=0;o=192&&i<224&&o+1=224&&i<240&&o+2=240&&i<248&&o+3>10,r[a++]=56320|1023&s)}}for(var c="",u=16384,f=0;f>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+=1},e.exports.is_number=function(e){return"number"==typeof e},e.exports.is_string=function(e){return"string"==typeof e},e.exports.is_buffer=function(e){return e instanceof ArrayBuffer},e.exports.is_bytes=function(e){return e instanceof Uint8Array},e.exports.is_typed_array=function(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array},e.exports._heap_init=function(e,n){var t=n.heap,r=t?t.byteLength:n.heapSize||65536;if(4095&r||r<=0)throw new Error("heap size must be a positive integer and a multiple of 4096");return t=t||new e(new ArrayBuffer(r))},e.exports._heap_write=function(e,n,t,r,o){var a=e.length-n,i=a>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x428a2f98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=n+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x71374491|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=t+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb5c0fbcf|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=l+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe9b5dba5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=d+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x3956c25b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=h+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x59f111f1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=p+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x923f82a4|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=v+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xab1c5ed5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=y+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd807aa98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=m+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x12835b01|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=g+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x243185be|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=E+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x550c7dc3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=b+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x72be5d74|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=O+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x80deb1fe|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=A+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x9bdc06a7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=w+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc19bf174|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe49b69c1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xefbe4786|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x0fc19dc6|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x240ca1cc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2de92c6f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4a7484aa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5cb0a9dc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x76f988da|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x983e5152|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa831c66d|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb00327c8|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbf597fc7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc6e00bf3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd5a79147|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x06ca6351|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x14292967|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x27b70a85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2e1b2138|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4d2c6dfc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x53380d13|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x650a7354|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x766a0abb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x81c2c92e|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x92722c85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa2bfe8a1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa81a664b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc24b8b70|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc76c51a3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd192e819|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd6990624|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xf40e3585|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x106aa070|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x19a4c116|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x1e376c08|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2748774c|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x34b0bcb5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x391c0cb3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4ed8aa4a|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5b9cca4f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x682e6ff3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x748f82ee|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x78a5636f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x84c87814|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x8cc70208|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x90befffa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa4506ceb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbef9a3f7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc67178f2|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;r=r+D|0;o=o+_|0;a=a+T|0;i=i+S|0;s=s+x|0;c=c+N|0;u=u+I|0;f=f+C|0}function C(e){e=e|0;I(N[e|0]<<24|N[e|1]<<16|N[e|2]<<8|N[e|3],N[e|4]<<24|N[e|5]<<16|N[e|6]<<8|N[e|7],N[e|8]<<24|N[e|9]<<16|N[e|10]<<8|N[e|11],N[e|12]<<24|N[e|13]<<16|N[e|14]<<8|N[e|15],N[e|16]<<24|N[e|17]<<16|N[e|18]<<8|N[e|19],N[e|20]<<24|N[e|21]<<16|N[e|22]<<8|N[e|23],N[e|24]<<24|N[e|25]<<16|N[e|26]<<8|N[e|27],N[e|28]<<24|N[e|29]<<16|N[e|30]<<8|N[e|31],N[e|32]<<24|N[e|33]<<16|N[e|34]<<8|N[e|35],N[e|36]<<24|N[e|37]<<16|N[e|38]<<8|N[e|39],N[e|40]<<24|N[e|41]<<16|N[e|42]<<8|N[e|43],N[e|44]<<24|N[e|45]<<16|N[e|46]<<8|N[e|47],N[e|48]<<24|N[e|49]<<16|N[e|50]<<8|N[e|51],N[e|52]<<24|N[e|53]<<16|N[e|54]<<8|N[e|55],N[e|56]<<24|N[e|57]<<16|N[e|58]<<8|N[e|59],N[e|60]<<24|N[e|61]<<16|N[e|62]<<8|N[e|63])}function R(e){e=e|0;N[e|0]=r>>>24;N[e|1]=r>>>16&255;N[e|2]=r>>>8&255;N[e|3]=r&255;N[e|4]=o>>>24;N[e|5]=o>>>16&255;N[e|6]=o>>>8&255;N[e|7]=o&255;N[e|8]=a>>>24;N[e|9]=a>>>16&255;N[e|10]=a>>>8&255;N[e|11]=a&255;N[e|12]=i>>>24;N[e|13]=i>>>16&255;N[e|14]=i>>>8&255;N[e|15]=i&255;N[e|16]=s>>>24;N[e|17]=s>>>16&255;N[e|18]=s>>>8&255;N[e|19]=s&255;N[e|20]=c>>>24;N[e|21]=c>>>16&255;N[e|22]=c>>>8&255;N[e|23]=c&255;N[e|24]=u>>>24;N[e|25]=u>>>16&255;N[e|26]=u>>>8&255;N[e|27]=u&255;N[e|28]=f>>>24;N[e|29]=f>>>16&255;N[e|30]=f>>>8&255;N[e|31]=f&255}function P(){r=0x6a09e667;o=0xbb67ae85;a=0x3c6ef372;i=0xa54ff53a;s=0x510e527f;c=0x9b05688c;u=0x1f83d9ab;f=0x5be0cd19;l=d=0}function k(e,n,t,h,p,v,y,m,g,E){e=e|0;n=n|0;t=t|0;h=h|0;p=p|0;v=v|0;y=y|0;m=m|0;g=g|0;E=E|0;r=e;o=n;a=t;i=h;s=p;c=v;u=y;f=m;l=g;d=E}function M(e,n){e=e|0;n=n|0;var t=0;if(e&63)return-1;while((n|0)>=64){C(e);e=e+64|0;n=n-64|0;t=t+64|0}l=l+t|0;if(l>>>0>>0)d=d+1|0;return t|0}function F(e,n,t){e=e|0;n=n|0;t=t|0;var r=0,o=0;if(e&63)return-1;if(~t)if(t&31)return-1;if((n|0)>=64){r=M(e,n)|0;if((r|0)==-1)return-1;e=e+r|0;n=n-r|0}r=r+n|0;l=l+n|0;if(l>>>0>>0)d=d+1|0;N[e|n]=0x80;if((n|0)>=56){for(o=n+1|0;(o|0)<64;o=o+1|0)N[e|o]=0x00;C(e);n=0;N[e|0]=0}for(o=n+1|0;(o|0)<59;o=o+1|0)N[e|o]=0;N[e|56]=d>>>21&255;N[e|57]=d>>>13&255;N[e|58]=d>>>5&255;N[e|59]=d<<3&255|l>>>29;N[e|60]=l>>>21&255;N[e|61]=l>>>13&255;N[e|62]=l>>>5&255;N[e|63]=l<<3&255;C(e);if(~t)R(t);return r|0}function L(){r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;l=64;d=0}function H(){r=O;o=A;a=w;i=D;s=_;c=T;u=S;f=x;l=64;d=0}function j(e,n,t,N,C,R,k,M,F,L,H,j,K,U,B,V){e=e|0;n=n|0;t=t|0;N=N|0;C=C|0;R=R|0;k=k|0;M=M|0;F=F|0;L=L|0;H=H|0;j=j|0;K=K|0;U=U|0;B=B|0;V=V|0;P();I(e^0x5c5c5c5c,n^0x5c5c5c5c,t^0x5c5c5c5c,N^0x5c5c5c5c,C^0x5c5c5c5c,R^0x5c5c5c5c,k^0x5c5c5c5c,M^0x5c5c5c5c,F^0x5c5c5c5c,L^0x5c5c5c5c,H^0x5c5c5c5c,j^0x5c5c5c5c,K^0x5c5c5c5c,U^0x5c5c5c5c,B^0x5c5c5c5c,V^0x5c5c5c5c);O=r;A=o;w=a;D=i;_=s;T=c;S=u;x=f;P();I(e^0x36363636,n^0x36363636,t^0x36363636,N^0x36363636,C^0x36363636,R^0x36363636,k^0x36363636,M^0x36363636,F^0x36363636,L^0x36363636,H^0x36363636,j^0x36363636,K^0x36363636,U^0x36363636,B^0x36363636,V^0x36363636);h=r;p=o;v=a;y=i;m=s;g=c;E=u;b=f;l=64;d=0}function K(e,n,t){e=e|0;n=n|0;t=t|0;var l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0;if(e&63)return-1;if(~t)if(t&31)return-1;E=F(e,n,-1)|0;l=r,d=o,h=a,p=i,v=s,y=c,m=u,g=f;H();I(l,d,h,p,v,y,m,g,0x80000000,0,0,0,0,0,0,768);if(~t)R(t);return E|0}function U(e,n,t,l,d){e=e|0;n=n|0;t=t|0;l=l|0;d=d|0;var h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0;if(e&63)return-1;if(~d)if(d&31)return-1;N[e+n|0]=t>>>24;N[e+n+1|0]=t>>>16&255;N[e+n+2|0]=t>>>8&255;N[e+n+3|0]=t&255;K(e,n+4|0,-1)|0;h=O=r,p=A=o,v=w=a,y=D=i,m=_=s,g=T=c,E=S=u,b=x=f;l=l-1|0;while((l|0)>0){L();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;H();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;h=h^r;p=p^o;v=v^a;y=y^i;m=m^s;g=g^c;E=E^u;b=b^f;l=l-1|0}r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;if(~d)R(d);return 0}return{reset:P,init:k,process:M,finish:F,hmac_reset:L,hmac_init:j,hmac_finish:K,pbkdf2_generate_block:U}}},"transform/TextTransformer.js":function(e,n,t){var r=t("../Operation"),o=t("../Common"),a=function(e,n){o.PARANOIA&&(r.check(e),r.check(n));var t=function(e,n){if(e.offset>n.offset){if(e.offset>n.offset+n.toRemove)return r.create(e.offset-n.toRemove+n.toInsert.length,e.toRemove,e.toInsert);var t=e.toRemove-(n.offset+n.toRemove-e.offset);return t<0&&(t=0),0===t&&0===e.toInsert.length?null:r.create(n.offset+n.toInsert.length,t,e.toInsert)}if(e.offset+e.toRemove=0;i--)s=r.apply(n[i],s);var c=[];for(i=e.length-1;i>=0;i--){for(var u=e[i],f=n.length-1;f>=0;f--){try{u=a(u,n[f])}catch(e){return console.error("The pluggable transform function threw an error, failing operational transformation"),console.error(e.stack),[]}if(!u)break}u&&(o.PARANOIA&&r.check(u,s.length),c.unshift(u))}return c}},"transform/NaiveJSONTransformer.js":function(e,n,t){var r=t("./TextTransformer"),o=t("../Operation"),a=t("../Common");e.exports=function(e,n,t){var i,s,c,u=a.global.REALTIME_DEBUG=a.global.REALTIME_DEBUG||{};try{i=r(e,n,t),s=o.applyMulti(n,t),c=o.applyMulti(i,s);try{return JSON.parse(c),i}catch(r){console.error(r),u.ot_parseError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_parseError`")}}catch(r){console.error(r),u.ot_applyError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_applyError`")}return[]}},"transform/SmartJSONTransformer.js":function(e,n,t){var r,o,a,i=t("json.sortify"),s=t("../Diff"),c=t("../Operation"),u=t("./TextTransformer"),f=function(e){return null===e?"null":(n=e,"[object Array]"===Object.prototype.toString.call(n)?"array":typeof e);var n},l=function(e,n){for(var t=n.length,r=0;r1)return!0}))&&("splice"!==n.type||!e.some((function(e){if("splice"===e.type&&y(e.path,n.path)&&e.path.length-n.path.length<0){if(!e.removals)return;for(var t=e.offset,r=e.offset+e.removals;te.offset+n.removals)return void(n.offset+=e.value.length-e.removals);if(n.offseti)){var d=n.slice(0,l);if((y=n.slice(l))===u){var p=Math.min(s,l);if((g=c.slice(0,p))===(b=d.slice(0,p)))return h(g,c.slice(p),d.slice(p),u)}}if(null===f||f===s){var v=s,y=(d=n.slice(0,v),n.slice(v));if(d===c){var m=Math.min(a-v,i-v);if((E=u.slice(u.length-m))===(O=y.slice(y.length-m)))return h(c,u.slice(0,u.length-m),y.slice(0,y.length-m),E)}}}if(r.length>0&&o&&0===o.length){var g=e.slice(0,r.index),E=e.slice(r.index+r.length);if(!(i<(p=g.length)+(m=E.length))){var b=n.slice(0,p),O=n.slice(i-m);if(g===b&&E===O)return h(g,e.slice(p,a-m),n.slice(p,i-m),E)}}return null}(e,n,t);if(f)return f}var l=i(e,n),d=e.substring(0,l);l=s(e=e.substring(l),n=n.substring(l));var p=e.substring(e.length-l),v=function(e,n){var t;if(!e)return[[1,n]];if(!n)return[[r,e]];var c=e.length>n.length?e:n,u=e.length>n.length?n:e,f=c.indexOf(u);if(-1!==f)return t=[[1,c.substring(0,f)],[0,u],[1,c.substring(f+u.length)]],e.length>n.length&&(t[0][0]=t[2][0]=r),t;if(1===u.length)return[[r,e],[1,n]];var l=function(e,n){var t=e.length>n.length?e:n,r=e.length>n.length?n:e;if(t.length<4||2*r.length=e.length?[r,o,a,c,l]:null}var a,c,u,f,l,d=o(t,r,Math.ceil(t.length/4)),h=o(t,r,Math.ceil(t.length/2));if(!d&&!h)return null;a=h?d&&d[4].length>h[4].length?d:h:d,e.length>n.length?(c=a[0],u=a[1],f=a[2],l=a[3]):(f=a[0],l=a[1],c=a[2],u=a[3]);var p=a[4];return[c,u,f,l,p]}(e,n);if(l){var d=l[0],h=l[1],p=l[2],v=l[3],y=l[4],m=o(d,p),g=o(h,v);return m.concat([[0,y]],g)}return function(e,n){for(var t=e.length,o=n.length,i=Math.ceil((t+o)/2),s=i,c=2*i,u=new Array(c),f=new Array(c),l=0;lt)v+=2;else if(O>o)p+=2;else if(h&&(D=s+d-E)>=0&&D=(w=t-f[D]))return a(e,n,T,O)}for(var A=-g+y;A<=g-m;A+=2){for(var w,D=s+A,_=(w=A===-g||A!==g&&f[D-1]t)m+=2;else if(_>o)y+=2;else if(!h){var T;if((b=s+d-A)>=0&&b=(w=t-w))return a(e,n,T,O)}}}return[[r,e],[1,n]]}(e,n)}(e=e.substring(0,e.length-l),n=n.substring(0,n.length-l));return d&&v.unshift([0,d]),p&&v.push([0,p]),c(v,u),v}function a(e,n,t,r){var a=e.substring(0,t),i=n.substring(0,r),s=e.substring(t),c=n.substring(r),u=o(a,i),f=o(s,c);return u.concat(f)}function i(e,n){if(!e||!n||e.charAt(0)!==n.charAt(0))return 0;for(var t=0,r=Math.min(e.length,n.length),o=r,a=0;t=0&&d(e[p][1])){var v=e[p][1].slice(-1);if(e[p][1]=e[p][1].slice(0,-1),f=v+f,h=v+h,!e[p][1]){e.splice(p,1),o--;var y=p-1;e[y]&&1===e[y][0]&&(u++,h=e[y][1]+h,y--),e[y]&&e[y][0]===r&&(a++,f=e[y][1]+f,y--),p=y}}l(e[o][1])&&(v=e[o][1].charAt(0),e[o][1]=e[o][1].slice(1),f+=v,h+=v)}if(o0||h.length>0){f.length>0&&h.length>0&&(0!==(t=i(h,f))&&(p>=0?e[p][1]+=h.substring(0,t):(e.splice(0,0,[0,h.substring(0,t)]),o++),h=h.substring(t),f=f.substring(t)),0!==(t=s(h,f))&&(e[o][1]=h.substring(h.length-t)+e[o][1],h=h.substring(0,h.length-t),f=f.substring(0,f.length-t)));var m=u+a;0===f.length&&0===h.length?(e.splice(o-m,m),o-=m):0===f.length?(e.splice(o-m,m,[1,h]),o=o-m+1):0===h.length?(e.splice(o-m,m,[r,f]),o=o-m+1):(e.splice(o-m,m,[r,f],[1,h]),o=o-m+2)}0!==o&&0===e[o-1][0]?(e[o-1][1]+=e[o][1],e.splice(o,1)):o++,u=0,a=0,f="",h=""}""===e[e.length-1][1]&&e.pop();var g=!1;for(o=1;o=55296&&e<=56319}function f(e){return e>=56320&&e<=57343}function l(e){return f(e.charCodeAt(0))}function d(e){return u(e.charCodeAt(e.length-1))}function h(e,n,t,o){return d(e)||l(o)?null:function(e){for(var n=[],t=0;t0&&n.push(e[t]);return n}([[0,e],[r,n],[1,t],[0,o]])}function p(e,n,t){return o(e,n,t,!0)}p.INSERT=1,p.DELETE=r,p.EQUAL=0,e.exports=p}},n=a("ChainPad.js"),r="ChainPad",e.exports=n,"undefined"!=typeof window?o=window:void 0!==t?o=t:"undefined"!=typeof self&&(o=self),o[r]=n}(A)),A.exports}var D,_=w(),T=n({__proto__:null,default:r(_)},[_]),S={exports:{}},x={exports:{}};function N(){return D||(D=1,function(e){!function(e){var n=function(e){var n,t=new Float64Array(16);if(e)for(n=0;n>24&255,e[n+1]=t>>16&255,e[n+2]=t>>8&255,e[n+3]=255&t,e[n+4]=r>>24&255,e[n+5]=r>>16&255,e[n+6]=r>>8&255,e[n+7]=255&r}function p(e,n,t,r,o){var a,i=0;for(a=0;a>>8)-1}function v(e,n,t,r){return p(e,n,t,r,16)}function y(e,n,t,r){return p(e,n,t,r,32)}function m(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=a,A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=0;L<20;L+=2)O^=(o=(P^=(o=(N^=(o=(_^=(o=O+P|0)<<7|o>>>25)+O|0)<<9|o>>>23)+_|0)<<13|o>>>19)+N|0)<<18|o>>>14,T^=(o=(A^=(o=(k^=(o=(I^=(o=T+A|0)<<7|o>>>25)+T|0)<<9|o>>>23)+I|0)<<13|o>>>19)+k|0)<<18|o>>>14,C^=(o=(S^=(o=(w^=(o=(M^=(o=C+S|0)<<7|o>>>25)+C|0)<<9|o>>>23)+M|0)<<13|o>>>19)+w|0)<<18|o>>>14,F^=(o=(R^=(o=(x^=(o=(D^=(o=F+R|0)<<7|o>>>25)+F|0)<<9|o>>>23)+D|0)<<13|o>>>19)+x|0)<<18|o>>>14,O^=(o=(D^=(o=(w^=(o=(A^=(o=O+D|0)<<7|o>>>25)+O|0)<<9|o>>>23)+A|0)<<13|o>>>19)+w|0)<<18|o>>>14,T^=(o=(_^=(o=(x^=(o=(S^=(o=T+_|0)<<7|o>>>25)+T|0)<<9|o>>>23)+S|0)<<13|o>>>19)+x|0)<<18|o>>>14,C^=(o=(I^=(o=(N^=(o=(R^=(o=C+I|0)<<7|o>>>25)+C|0)<<9|o>>>23)+R|0)<<13|o>>>19)+N|0)<<18|o>>>14,F^=(o=(M^=(o=(k^=(o=(P^=(o=F+M|0)<<7|o>>>25)+F|0)<<9|o>>>23)+P|0)<<13|o>>>19)+k|0)<<18|o>>>14;O=O+a|0,A=A+i|0,w=w+s|0,D=D+c|0,_=_+u|0,T=T+f|0,S=S+l|0,x=x+d|0,N=N+h|0,I=I+p|0,C=C+v|0,R=R+y|0,P=P+m|0,k=k+g|0,M=M+E|0,F=F+b|0,e[0]=O>>>0&255,e[1]=O>>>8&255,e[2]=O>>>16&255,e[3]=O>>>24&255,e[4]=A>>>0&255,e[5]=A>>>8&255,e[6]=A>>>16&255,e[7]=A>>>24&255,e[8]=w>>>0&255,e[9]=w>>>8&255,e[10]=w>>>16&255,e[11]=w>>>24&255,e[12]=D>>>0&255,e[13]=D>>>8&255,e[14]=D>>>16&255,e[15]=D>>>24&255,e[16]=_>>>0&255,e[17]=_>>>8&255,e[18]=_>>>16&255,e[19]=_>>>24&255,e[20]=T>>>0&255,e[21]=T>>>8&255,e[22]=T>>>16&255,e[23]=T>>>24&255,e[24]=S>>>0&255,e[25]=S>>>8&255,e[26]=S>>>16&255,e[27]=S>>>24&255,e[28]=x>>>0&255,e[29]=x>>>8&255,e[30]=x>>>16&255,e[31]=x>>>24&255,e[32]=N>>>0&255,e[33]=N>>>8&255,e[34]=N>>>16&255,e[35]=N>>>24&255,e[36]=I>>>0&255,e[37]=I>>>8&255,e[38]=I>>>16&255,e[39]=I>>>24&255,e[40]=C>>>0&255,e[41]=C>>>8&255,e[42]=C>>>16&255,e[43]=C>>>24&255,e[44]=R>>>0&255,e[45]=R>>>8&255,e[46]=R>>>16&255,e[47]=R>>>24&255,e[48]=P>>>0&255,e[49]=P>>>8&255,e[50]=P>>>16&255,e[51]=P>>>24&255,e[52]=k>>>0&255,e[53]=k>>>8&255,e[54]=k>>>16&255,e[55]=k>>>24&255,e[56]=M>>>0&255,e[57]=M>>>8&255,e[58]=M>>>16&255,e[59]=M>>>24&255,e[60]=F>>>0&255,e[61]=F>>>8&255,e[62]=F>>>16&255,e[63]=F>>>24&255}(e,n,t,r)}function g(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=0;O<20;O+=2)a^=(o=(m^=(o=(h^=(o=(u^=(o=a+m|0)<<7|o>>>25)+a|0)<<9|o>>>23)+u|0)<<13|o>>>19)+h|0)<<18|o>>>14,f^=(o=(i^=(o=(g^=(o=(p^=(o=f+i|0)<<7|o>>>25)+f|0)<<9|o>>>23)+p|0)<<13|o>>>19)+g|0)<<18|o>>>14,v^=(o=(l^=(o=(s^=(o=(E^=(o=v+l|0)<<7|o>>>25)+v|0)<<9|o>>>23)+E|0)<<13|o>>>19)+s|0)<<18|o>>>14,b^=(o=(y^=(o=(d^=(o=(c^=(o=b+y|0)<<7|o>>>25)+b|0)<<9|o>>>23)+c|0)<<13|o>>>19)+d|0)<<18|o>>>14,a^=(o=(c^=(o=(s^=(o=(i^=(o=a+c|0)<<7|o>>>25)+a|0)<<9|o>>>23)+i|0)<<13|o>>>19)+s|0)<<18|o>>>14,f^=(o=(u^=(o=(d^=(o=(l^=(o=f+u|0)<<7|o>>>25)+f|0)<<9|o>>>23)+l|0)<<13|o>>>19)+d|0)<<18|o>>>14,v^=(o=(p^=(o=(h^=(o=(y^=(o=v+p|0)<<7|o>>>25)+v|0)<<9|o>>>23)+y|0)<<13|o>>>19)+h|0)<<18|o>>>14,b^=(o=(E^=(o=(g^=(o=(m^=(o=b+E|0)<<7|o>>>25)+b|0)<<9|o>>>23)+m|0)<<13|o>>>19)+g|0)<<18|o>>>14;e[0]=a>>>0&255,e[1]=a>>>8&255,e[2]=a>>>16&255,e[3]=a>>>24&255,e[4]=f>>>0&255,e[5]=f>>>8&255,e[6]=f>>>16&255,e[7]=f>>>24&255,e[8]=v>>>0&255,e[9]=v>>>8&255,e[10]=v>>>16&255,e[11]=v>>>24&255,e[12]=b>>>0&255,e[13]=b>>>8&255,e[14]=b>>>16&255,e[15]=b>>>24&255,e[16]=l>>>0&255,e[17]=l>>>8&255,e[18]=l>>>16&255,e[19]=l>>>24&255,e[20]=d>>>0&255,e[21]=d>>>8&255,e[22]=d>>>16&255,e[23]=d>>>24&255,e[24]=h>>>0&255,e[25]=h>>>8&255,e[26]=h>>>16&255,e[27]=h>>>24&255,e[28]=p>>>0&255,e[29]=p>>>8&255,e[30]=p>>>16&255,e[31]=p>>>24&255}(e,n,t,r)}var E=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function O(e,n,t,r,o,a,i){var s,c,u=new Uint8Array(16),f=new Uint8Array(64);for(c=0;c<16;c++)u[c]=0;for(c=0;c<8;c++)u[c]=a[c];for(;o>=64;){for(m(f,u,i,E),c=0;c<64;c++)e[n+c]=t[r+c]^f[c];for(s=1,c=8;c<16;c++)s=s+(255&u[c])|0,u[c]=255&s,s>>>=8;o-=64,n+=64,r+=64}if(o>0)for(m(f,u,i,E),c=0;c=64;){for(m(c,s,o,E),i=0;i<64;i++)e[n+i]=c[i];for(a=1,i=8;i<16;i++)a=a+(255&s[i])|0,s[i]=255&a,a>>>=8;t-=64,n+=64}if(t>0)for(m(c,s,o,E),i=0;i>>13|t<<3),r=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(t>>>10|r<<6),o=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(r>>>7|o<<9),a=255&e[8]|(255&e[9])<<8,this.r[4]=255&(o>>>4|a<<12),this.r[5]=a>>>1&8190,i=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(a>>>14|i<<2),s=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(i>>>11|s<<5),c=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(s>>>8|c<<8),this.r[9]=c>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function T(e,n,t,r,o,a){var i=new _(a);return i.update(t,r,o),i.finish(e,n),0}function S(e,n,t,r,o,a){var i=new Uint8Array(16);return T(i,0,t,r,o,a),v(e,n,i,0)}function x(e,n,t,r,o){var a;if(t<32)return-1;for(D(e,0,n,0,t,r,o),T(e,16,e,32,t-32,e),a=0;a<16;a++)e[a]=0;return 0}function N(e,n,t,r,o){var a,i=new Uint8Array(32);if(t<32)return-1;if(w(i,0,32,r,o),0!==S(n,16,n,32,t-32,i))return-1;for(D(e,0,n,0,t,r,o),a=0;a<32;a++)e[a]=0;return 0}function I(e,n){var t;for(t=0;t<16;t++)e[t]=0|n[t]}function C(e){var n,t,r=1;for(n=0;n<16;n++)t=e[n]+r+65535,r=Math.floor(t/65536),e[n]=t-65536*r;e[0]+=r-1+37*(r-1)}function R(e,n,t){for(var r,o=~(t-1),a=0;a<16;a++)r=o&(e[a]^n[a]),e[a]^=r,n[a]^=r}function P(e,t){var r,o,a,i=n(),s=n();for(r=0;r<16;r++)s[r]=t[r];for(C(s),C(s),C(s),o=0;o<2;o++){for(i[0]=s[0]-65517,r=1;r<15;r++)i[r]=s[r]-65535-(i[r-1]>>16&1),i[r-1]&=65535;i[15]=s[15]-32767-(i[14]>>16&1),a=i[15]>>16&1,i[14]&=65535,R(s,i,1-a)}for(r=0;r<16;r++)e[2*r]=255&s[r],e[2*r+1]=s[r]>>8}function k(e,n){var t=new Uint8Array(32),r=new Uint8Array(32);return P(t,e),P(r,n),y(t,0,r,0)}function M(e){var n=new Uint8Array(32);return P(n,e),1&n[0]}function F(e,n){var t;for(t=0;t<16;t++)e[t]=n[2*t]+(n[2*t+1]<<8);e[15]&=32767}function L(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]+t[r]}function H(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]-t[r]}function j(e,n,t){var r,o,a=0,i=0,s=0,c=0,u=0,f=0,l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0,N=0,I=0,C=0,R=0,P=0,k=0,M=0,F=t[0],L=t[1],H=t[2],j=t[3],K=t[4],U=t[5],B=t[6],V=t[7],Y=t[8],G=t[9],J=t[10],q=t[11],W=t[12],z=t[13],Q=t[14],Z=t[15];a+=(r=n[0])*F,i+=r*L,s+=r*H,c+=r*j,u+=r*K,f+=r*U,l+=r*B,d+=r*V,h+=r*Y,p+=r*G,v+=r*J,y+=r*q,m+=r*W,g+=r*z,E+=r*Q,b+=r*Z,i+=(r=n[1])*F,s+=r*L,c+=r*H,u+=r*j,f+=r*K,l+=r*U,d+=r*B,h+=r*V,p+=r*Y,v+=r*G,y+=r*J,m+=r*q,g+=r*W,E+=r*z,b+=r*Q,O+=r*Z,s+=(r=n[2])*F,c+=r*L,u+=r*H,f+=r*j,l+=r*K,d+=r*U,h+=r*B,p+=r*V,v+=r*Y,y+=r*G,m+=r*J,g+=r*q,E+=r*W,b+=r*z,O+=r*Q,A+=r*Z,c+=(r=n[3])*F,u+=r*L,f+=r*H,l+=r*j,d+=r*K,h+=r*U,p+=r*B,v+=r*V,y+=r*Y,m+=r*G,g+=r*J,E+=r*q,b+=r*W,O+=r*z,A+=r*Q,w+=r*Z,u+=(r=n[4])*F,f+=r*L,l+=r*H,d+=r*j,h+=r*K,p+=r*U,v+=r*B,y+=r*V,m+=r*Y,g+=r*G,E+=r*J,b+=r*q,O+=r*W,A+=r*z,w+=r*Q,D+=r*Z,f+=(r=n[5])*F,l+=r*L,d+=r*H,h+=r*j,p+=r*K,v+=r*U,y+=r*B,m+=r*V,g+=r*Y,E+=r*G,b+=r*J,O+=r*q,A+=r*W,w+=r*z,D+=r*Q,_+=r*Z,l+=(r=n[6])*F,d+=r*L,h+=r*H,p+=r*j,v+=r*K,y+=r*U,m+=r*B,g+=r*V,E+=r*Y,b+=r*G,O+=r*J,A+=r*q,w+=r*W,D+=r*z,_+=r*Q,T+=r*Z,d+=(r=n[7])*F,h+=r*L,p+=r*H,v+=r*j,y+=r*K,m+=r*U,g+=r*B,E+=r*V,b+=r*Y,O+=r*G,A+=r*J,w+=r*q,D+=r*W,_+=r*z,T+=r*Q,S+=r*Z,h+=(r=n[8])*F,p+=r*L,v+=r*H,y+=r*j,m+=r*K,g+=r*U,E+=r*B,b+=r*V,O+=r*Y,A+=r*G,w+=r*J,D+=r*q,_+=r*W,T+=r*z,S+=r*Q,x+=r*Z,p+=(r=n[9])*F,v+=r*L,y+=r*H,m+=r*j,g+=r*K,E+=r*U,b+=r*B,O+=r*V,A+=r*Y,w+=r*G,D+=r*J,_+=r*q,T+=r*W,S+=r*z,x+=r*Q,N+=r*Z,v+=(r=n[10])*F,y+=r*L,m+=r*H,g+=r*j,E+=r*K,b+=r*U,O+=r*B,A+=r*V,w+=r*Y,D+=r*G,_+=r*J,T+=r*q,S+=r*W,x+=r*z,N+=r*Q,I+=r*Z,y+=(r=n[11])*F,m+=r*L,g+=r*H,E+=r*j,b+=r*K,O+=r*U,A+=r*B,w+=r*V,D+=r*Y,_+=r*G,T+=r*J,S+=r*q,x+=r*W,N+=r*z,I+=r*Q,C+=r*Z,m+=(r=n[12])*F,g+=r*L,E+=r*H,b+=r*j,O+=r*K,A+=r*U,w+=r*B,D+=r*V,_+=r*Y,T+=r*G,S+=r*J,x+=r*q,N+=r*W,I+=r*z,C+=r*Q,R+=r*Z,g+=(r=n[13])*F,E+=r*L,b+=r*H,O+=r*j,A+=r*K,w+=r*U,D+=r*B,_+=r*V,T+=r*Y,S+=r*G,x+=r*J,N+=r*q,I+=r*W,C+=r*z,R+=r*Q,P+=r*Z,E+=(r=n[14])*F,b+=r*L,O+=r*H,A+=r*j,w+=r*K,D+=r*U,_+=r*B,T+=r*V,S+=r*Y,x+=r*G,N+=r*J,I+=r*q,C+=r*W,R+=r*z,P+=r*Q,k+=r*Z,b+=(r=n[15])*F,i+=38*(A+=r*H),s+=38*(w+=r*j),c+=38*(D+=r*K),u+=38*(_+=r*U),f+=38*(T+=r*B),l+=38*(S+=r*V),d+=38*(x+=r*Y),h+=38*(N+=r*G),p+=38*(I+=r*J),v+=38*(C+=r*q),y+=38*(R+=r*W),m+=38*(P+=r*z),g+=38*(k+=r*Q),E+=38*(M+=r*Z),a=(r=(a+=38*(O+=r*L))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a=(r=(a+=o-1+37*(o-1))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a+=o-1+37*(o-1),e[0]=a,e[1]=i,e[2]=s,e[3]=c,e[4]=u,e[5]=f,e[6]=l,e[7]=d,e[8]=h,e[9]=p,e[10]=v,e[11]=y,e[12]=m,e[13]=g,e[14]=E,e[15]=b}function K(e,n){j(e,n,n)}function U(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=253;r>=0;r--)K(o,o),2!==r&&4!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function B(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=250;r>=0;r--)K(o,o),1!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function V(e,t,r){var o,a,i=new Uint8Array(32),c=new Float64Array(80),u=n(),f=n(),l=n(),d=n(),h=n(),p=n();for(a=0;a<31;a++)i[a]=t[a];for(i[31]=127&t[31]|64,i[0]&=248,F(c,r),a=0;a<16;a++)f[a]=c[a],d[a]=u[a]=l[a]=0;for(u[0]=d[0]=1,a=254;a>=0;--a)R(u,f,o=i[a>>>3]>>>(7&a)&1),R(l,d,o),L(h,u,l),H(u,u,l),L(l,f,d),H(f,f,d),K(d,h),K(p,u),j(u,l,u),j(l,f,h),L(h,u,l),H(u,u,l),K(f,u),H(l,d,p),j(u,l,s),L(u,u,d),j(l,l,u),j(u,d,p),j(d,f,c),K(f,h),R(u,f,o),R(l,d,o);for(a=0;a<16;a++)c[a+16]=u[a],c[a+32]=l[a],c[a+48]=f[a],c[a+64]=d[a];var v=c.subarray(32),y=c.subarray(16);return U(v,v),j(y,y,v),P(e,y),0}function Y(e,n){return V(e,n,o)}function G(e,n){return t(n,32),Y(e,n)}function J(e,n,t){var o=new Uint8Array(32);return V(o,t,n),g(e,r,o,E)}_.prototype.blocks=function(e,n,t){for(var r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A=this.fin?0:2048,w=this.h[0],D=this.h[1],_=this.h[2],T=this.h[3],S=this.h[4],x=this.h[5],N=this.h[6],I=this.h[7],C=this.h[8],R=this.h[9],P=this.r[0],k=this.r[1],M=this.r[2],F=this.r[3],L=this.r[4],H=this.r[5],j=this.r[6],K=this.r[7],U=this.r[8],B=this.r[9];t>=16;)d=l=0,d+=(w+=8191&(r=255&e[n+0]|(255&e[n+1])<<8))*P,d+=(D+=8191&(r>>>13|(o=255&e[n+2]|(255&e[n+3])<<8)<<3))*(5*B),d+=(_+=8191&(o>>>10|(a=255&e[n+4]|(255&e[n+5])<<8)<<6))*(5*U),d+=(T+=8191&(a>>>7|(i=255&e[n+6]|(255&e[n+7])<<8)<<9))*(5*K),l=(d+=(S+=8191&(i>>>4|(s=255&e[n+8]|(255&e[n+9])<<8)<<12))*(5*j))>>>13,d&=8191,d+=(x+=s>>>1&8191)*(5*H),d+=(N+=8191&(s>>>14|(c=255&e[n+10]|(255&e[n+11])<<8)<<2))*(5*L),d+=(I+=8191&(c>>>11|(u=255&e[n+12]|(255&e[n+13])<<8)<<5))*(5*F),d+=(C+=8191&(u>>>8|(f=255&e[n+14]|(255&e[n+15])<<8)<<8))*(5*M),h=l+=(d+=(R+=f>>>5|A)*(5*k))>>>13,h+=w*k,h+=D*P,h+=_*(5*B),h+=T*(5*U),l=(h+=S*(5*K))>>>13,h&=8191,h+=x*(5*j),h+=N*(5*H),h+=I*(5*L),h+=C*(5*F),l+=(h+=R*(5*M))>>>13,h&=8191,p=l,p+=w*M,p+=D*k,p+=_*P,p+=T*(5*B),l=(p+=S*(5*U))>>>13,p&=8191,p+=x*(5*K),p+=N*(5*j),p+=I*(5*H),p+=C*(5*L),v=l+=(p+=R*(5*F))>>>13,v+=w*F,v+=D*M,v+=_*k,v+=T*P,l=(v+=S*(5*B))>>>13,v&=8191,v+=x*(5*U),v+=N*(5*K),v+=I*(5*j),v+=C*(5*H),y=l+=(v+=R*(5*L))>>>13,y+=w*L,y+=D*F,y+=_*M,y+=T*k,l=(y+=S*P)>>>13,y&=8191,y+=x*(5*B),y+=N*(5*U),y+=I*(5*K),y+=C*(5*j),m=l+=(y+=R*(5*H))>>>13,m+=w*H,m+=D*L,m+=_*F,m+=T*M,l=(m+=S*k)>>>13,m&=8191,m+=x*P,m+=N*(5*B),m+=I*(5*U),m+=C*(5*K),g=l+=(m+=R*(5*j))>>>13,g+=w*j,g+=D*H,g+=_*L,g+=T*F,l=(g+=S*M)>>>13,g&=8191,g+=x*k,g+=N*P,g+=I*(5*B),g+=C*(5*U),E=l+=(g+=R*(5*K))>>>13,E+=w*K,E+=D*j,E+=_*H,E+=T*L,l=(E+=S*F)>>>13,E&=8191,E+=x*M,E+=N*k,E+=I*P,E+=C*(5*B),b=l+=(E+=R*(5*U))>>>13,b+=w*U,b+=D*K,b+=_*j,b+=T*H,l=(b+=S*L)>>>13,b&=8191,b+=x*F,b+=N*M,b+=I*k,b+=C*P,O=l+=(b+=R*(5*B))>>>13,O+=w*B,O+=D*U,O+=_*K,O+=T*j,l=(O+=S*H)>>>13,O&=8191,O+=x*L,O+=N*F,O+=I*M,O+=C*k,w=d=8191&(l=(l=((l+=(O+=R*P)>>>13)<<2)+l|0)+(d&=8191)|0),D=h+=l>>>=13,_=p&=8191,T=v&=8191,S=y&=8191,x=m&=8191,N=g&=8191,I=E&=8191,C=b&=8191,R=O&=8191,n+=16,t-=16;this.h[0]=w,this.h[1]=D,this.h[2]=_,this.h[3]=T,this.h[4]=S,this.h[5]=x,this.h[6]=N,this.h[7]=I,this.h[8]=C,this.h[9]=R},_.prototype.finish=function(e,n){var t,r,o,a,i=new Uint16Array(10);if(this.leftover){for(a=this.leftover,this.buffer[a++]=1;a<16;a++)this.buffer[a]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(t=this.h[1]>>>13,this.h[1]&=8191,a=2;a<10;a++)this.h[a]+=t,t=this.h[a]>>>13,this.h[a]&=8191;for(this.h[0]+=5*t,t=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=t,t=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=t,i[0]=this.h[0]+5,t=i[0]>>>13,i[0]&=8191,a=1;a<10;a++)i[a]=this.h[a]+t,t=i[a]>>>13,i[a]&=8191;for(i[9]-=8192,r=(1^t)-1,a=0;a<10;a++)i[a]&=r;for(r=~r,a=0;a<10;a++)this.h[a]=this.h[a]&r|i[a];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,a=1;a<8;a++)o=(this.h[a]+this.pad[a]|0)+(o>>>16)|0,this.h[a]=65535&o;e[n+0]=this.h[0]>>>0&255,e[n+1]=this.h[0]>>>8&255,e[n+2]=this.h[1]>>>0&255,e[n+3]=this.h[1]>>>8&255,e[n+4]=this.h[2]>>>0&255,e[n+5]=this.h[2]>>>8&255,e[n+6]=this.h[3]>>>0&255,e[n+7]=this.h[3]>>>8&255,e[n+8]=this.h[4]>>>0&255,e[n+9]=this.h[4]>>>8&255,e[n+10]=this.h[5]>>>0&255,e[n+11]=this.h[5]>>>8&255,e[n+12]=this.h[6]>>>0&255,e[n+13]=this.h[6]>>>8&255,e[n+14]=this.h[7]>>>0&255,e[n+15]=this.h[7]>>>8&255},_.prototype.update=function(e,n,t){var r,o;if(this.leftover){for((o=16-this.leftover)>t&&(o=t),r=0;r=16&&(o=t-t%16,this.blocks(e,n,o),n+=o,t-=o),t){for(r=0;r=128;){for(A=0;A<16;A++)w=8*A+W,I[A]=t[w+0]<<24|t[w+1]<<16|t[w+2]<<8|t[w+3],C[A]=t[w+4]<<24|t[w+5]<<16|t[w+6]<<8|t[w+7];for(A=0;A<80;A++)if(o=R,a=P,i=k,s=M,c=F,u=L,f=H,j,d=K,h=U,p=B,v=V,y=Y,m=G,g=J,q,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,T+=65535&(_=(Y>>>14|F<<18)^(Y>>>18|F<<14)^(F>>>9|Y<<23)),S+=_>>>16,x+=65535&(D=(F>>>14|Y<<18)^(F>>>18|Y<<14)^(Y>>>9|F<<23)),N+=D>>>16,T+=65535&(_=Y&G^~Y&J),S+=_>>>16,x+=65535&(D=F&L^~F&H),N+=D>>>16,T+=65535&(_=z[2*A+1]),S+=_>>>16,x+=65535&(D=z[2*A]),N+=D>>>16,D=I[A%16],S+=(_=C[A%16])>>>16,x+=65535&D,N+=D>>>16,x+=(S+=(T+=65535&_)>>>16)>>>16,T=65535&(_=O=65535&T|S<<16),S=_>>>16,x=65535&(D=b=65535&x|(N+=x>>>16)<<16),N=D>>>16,T+=65535&(_=(K>>>28|R<<4)^(R>>>2|K<<30)^(R>>>7|K<<25)),S+=_>>>16,x+=65535&(D=(R>>>28|K<<4)^(K>>>2|R<<30)^(K>>>7|R<<25)),N+=D>>>16,S+=(_=K&U^K&B^U&B)>>>16,x+=65535&(D=R&P^R&k^P&k),N+=D>>>16,l=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,E=65535&T|S<<16,T=65535&(_=v),S=_>>>16,x=65535&(D=s),N=D>>>16,S+=(_=O)>>>16,x+=65535&(D=b),N+=D>>>16,P=o,k=a,M=i,F=s=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,L=c,H=u,j=f,R=l,U=d,B=h,V=p,Y=v=65535&T|S<<16,G=y,J=m,q=g,K=E,A%16==15)for(w=0;w<16;w++)D=I[w],T=65535&(_=C[w]),S=_>>>16,x=65535&D,N=D>>>16,D=I[(w+9)%16],T+=65535&(_=C[(w+9)%16]),S+=_>>>16,x+=65535&D,N+=D>>>16,b=I[(w+1)%16],T+=65535&(_=((O=C[(w+1)%16])>>>1|b<<31)^(O>>>8|b<<24)^(O>>>7|b<<25)),S+=_>>>16,x+=65535&(D=(b>>>1|O<<31)^(b>>>8|O<<24)^b>>>7),N+=D>>>16,b=I[(w+14)%16],S+=(_=((O=C[(w+14)%16])>>>19|b<<13)^(b>>>29|O<<3)^(O>>>6|b<<26))>>>16,x+=65535&(D=(b>>>19|O<<13)^(O>>>29|b<<3)^b>>>6),N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,I[w]=65535&x|N<<16,C[w]=65535&T|S<<16;T=65535&(_=K),S=_>>>16,x=65535&(D=R),N=D>>>16,D=e[0],S+=(_=n[0])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[0]=R=65535&x|N<<16,n[0]=K=65535&T|S<<16,T=65535&(_=U),S=_>>>16,x=65535&(D=P),N=D>>>16,D=e[1],S+=(_=n[1])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[1]=P=65535&x|N<<16,n[1]=U=65535&T|S<<16,T=65535&(_=B),S=_>>>16,x=65535&(D=k),N=D>>>16,D=e[2],S+=(_=n[2])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[2]=k=65535&x|N<<16,n[2]=B=65535&T|S<<16,T=65535&(_=V),S=_>>>16,x=65535&(D=M),N=D>>>16,D=e[3],S+=(_=n[3])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[3]=M=65535&x|N<<16,n[3]=V=65535&T|S<<16,T=65535&(_=Y),S=_>>>16,x=65535&(D=F),N=D>>>16,D=e[4],S+=(_=n[4])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[4]=F=65535&x|N<<16,n[4]=Y=65535&T|S<<16,T=65535&(_=G),S=_>>>16,x=65535&(D=L),N=D>>>16,D=e[5],S+=(_=n[5])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[5]=L=65535&x|N<<16,n[5]=G=65535&T|S<<16,T=65535&(_=J),S=_>>>16,x=65535&(D=H),N=D>>>16,D=e[6],S+=(_=n[6])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[6]=H=65535&x|N<<16,n[6]=J=65535&T|S<<16,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,D=e[7],S+=(_=n[7])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[7]=j=65535&x|N<<16,n[7]=q=65535&T|S<<16,W+=128,r-=128}return r}function Z(e,n,t){var r,o=new Int32Array(8),a=new Int32Array(8),i=new Uint8Array(256),s=t;for(o[0]=1779033703,o[1]=3144134277,o[2]=1013904242,o[3]=2773480762,o[4]=1359893119,o[5]=2600822924,o[6]=528734635,o[7]=1541459225,a[0]=4089235720,a[1]=2227873595,a[2]=4271175723,a[3]=1595750129,a[4]=2917565137,a[5]=725511199,a[6]=4215389547,a[7]=327033209,Q(o,a,n,t),t%=128,r=0;r=0;--o)$(e,n,r=t[o/8|0]>>(7&o)&1),X(n,e),X(e,e),$(e,n,r)}function te(e,t){var r=[n(),n(),n(),n()];I(r[0],f),I(r[1],l),I(r[2],i),j(r[3],f,l),ne(e,r,t)}function re(e,r,o){var a,i=new Uint8Array(64),s=[n(),n(),n(),n()];for(o||t(r,32),Z(i,r,32),i[0]&=248,i[31]&=127,i[31]|=64,te(s,i),ee(e,s),a=0;a<32;a++)r[a+32]=e[a];return 0}var oe=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function ae(e,n){var t,r,o,a;for(r=63;r>=32;--r){for(t=0,o=r-32,a=r-12;o>4)*oe[o],t=n[o]>>8,n[o]&=255;for(o=0;o<32;o++)n[o]-=t*oe[o];for(r=0;r<32;r++)n[r+1]+=n[r]>>8,e[r]=255&n[r]}function ie(e){var n,t=new Float64Array(64);for(n=0;n<64;n++)t[n]=e[n];for(n=0;n<64;n++)e[n]=0;ae(e,t)}function se(e,t,r,o){var a,i,s=new Uint8Array(64),c=new Uint8Array(64),u=new Uint8Array(64),f=new Float64Array(64),l=[n(),n(),n(),n()];Z(s,o,32),s[0]&=248,s[31]&=127,s[31]|=64;var d=r+64;for(a=0;a>7&&H(e[0],a,e[0]),j(e[3],e[0],e[1]),0)}(h,o))return-1;for(s=0;s=0},e.sign.keyPair=function(){var e=new Uint8Array(le),n=new Uint8Array(de);return re(e,n),{publicKey:e,secretKey:n}},e.sign.keyPair.fromSecretKey=function(e){if(pe(e),e.length!==de)throw new Error("bad secret key size");for(var n=new Uint8Array(le),t=0;t{let t;return(t=e.length%4)&&(e+="=".repeat(4-t)),n.decodeBase64(e)},a=n.decodeUTF8,i=n.encodeUTF8,s=function(e){for(var n="",t=0;t{var n={setCustomize:n=>{e=n.ApiConfig},getWebsocketURL:function(n){var t=e.websocketPath||"/cryptpad_websocket";if(/^ws{1,2}:\/\//.test(t))return t;var r=new URL(n||self?.location?.href);return n&&(r.href=n),r.protocol.replace(/http/,"ws")+"//"+r.host+t}};return n})())}(H)),H.exports}var K,U=j(),B=n({__proto__:null,default:r(U)},[U]),V={exports:{}};function Y(){return K||(K=1,function(e){e.exports&&(e.exports=function(e={}){return{setCustomize:n=>{e=n.AppConfig},userHashKey:"User_hash",userNameKey:"User_name",blockHashKey:"Block_hash",fileHashKey:"FS_hash",sessionJWT:"Session_JWT",ssoSeed:"SSO_seed",displayNameKey:"cryptpad.username",oldStorageKey:"CryptPad_RECENTPADS",storageKey:"filesData",tokenKey:"loginToken",prefersDriveRedirectKey:"prefersDriveRedirect",isPremiumKey:"isPremiumUser",displayPadCreationScreen:"displayPadCreationScreen",deprecatedKey:"deprecated",MAX_TEAMS_SLOTS:e.maxTeamsSlots||5,MAX_TEAMS_OWNED:e.maxOwnedTeams||5,MAX_PREMIUM_TEAMS_SLOTS:Math.max(e.maxTeamsSlots||0,e.maxPremiumTeamsSlots||0)||5,MAX_PREMIUM_TEAMS_OWNED:Math.max(e.maxOwnedTeams||0,e.maxPremiumTeamsOwned||0)||5,criticalApps:["profile","settings","debug","admin","support","notifications","calendar","moderation","oldadmin"],earlyAccessApps:[]}}(void 0))}(V)),V.exports}var G,J=Y(),q=n({__proto__:null,default:r(J)},[J]),W={exports:{}},z={exports:{}},Q=z.exports;function Z(){return G||(G=1,function(e){!function(n){const t=e=>{var t={};n.atob=n.atob||function(e){return Buffer.from(e,"base64").toString("binary")},n.btoa=n.btoa||function(e){return Buffer.from(e,"binary").toString("base64")},t.encodeBase64=e.encodeBase64,t.decodeBase64=n=>{let t;return(t=n.length%4)&&(n+="=".repeat(4-t)),e.decodeBase64(n)},t.encodeUTF8=e.encodeUTF8,t.decodeUTF8=e.decodeUTF8,t.slice=function(e,n,t){return Array.prototype.slice.call(e,n,t)},t.u8ToBase64=(e,n)=>{const t=new FileReader;t.onload=()=>{let e=t.result,r=e.slice(e.indexOf(",")+1);n(r)},t.readAsDataURL(new Blob([e]))},t.shuffleArray=function(e){for(var n=e.length-1;n>0;n--){var t=Math.floor(Math.random()*(n+1)),r=e[n];e[n]=e[t],e[t]=r}},t.bake=function(e,n){return void 0===n&&(n=[]),Array.isArray(n)||(n=[n]),function(){return e.apply(null,n)}},t.both=function(e,n){if("function"!=typeof e)throw new Error("INVALID_USAGE");return"function"!=typeof n&&(n=function(e){return e}),function(){return e.apply(null,arguments),n.apply(null,arguments)}},t.clone=function(e){return null==e?e:JSON.parse(JSON.stringify(e))},t.serializeError=function(e){if(!(e instanceof Error))return e;var n={};return Object.getOwnPropertyNames(e).forEach((function(t){n[t]=e[t]})),n},t.tryParse=function(e){try{return JSON.parse(e)}catch(e){return}},t.mkAsync=function(e,n){if("function"!=typeof e)throw new Error("EXPECTED_FUNCTION");return function(){var t=Array.prototype.slice.call(arguments);setTimeout((function(){e.apply(null,t)}),n)}},t.mkEvent=function(e){var n=[],t=!1;let r;return{reg:function(r){e&&t?setTimeout(r):n.push(r)},unreg:function(e){-1!==n.indexOf(e)?n.splice(n.indexOf(e),1):console.log("event handler was already unregistered")},fire:function(){if(!e||!t){var o=Array.prototype.slice.call(arguments);t||r.apply(null,o),t=!0,n.forEach((function(e){e.apply(null,o)}))}},promise:new Promise((e=>{r=e}))}},t.mkTimeout=function(e,n){n=n||0;var r=t.once(e),o=setTimeout((function(){r("TIMEOUT")}),n);return t.both(r,(function(){clearTimeout(o)}))},t.onClickEnter=function(e,n,t){e.on("click keydown",(function(e){var r="click"===e.type,o="keydown"===e.type&&13===e.which,a="keydown"===e.type&&32===e.which&&t&&t.space;(r||o||a)&&("keydown"===e.type&&e.preventDefault(),n(e))}))},t.response=function(e){var n={},t={};"function"!=typeof e&&(e=function(e){throw new Error(e)});var r=function(e){clearTimeout(t[e]),delete t[e],delete n[e]};return{clear:r,expected:function(e){return Boolean(n[e])},expectation:function(e){return n[e]},expect:function(o,a,i){"string"!=typeof o&&e("EXPECTED_STRING"),"function"!=typeof a&&e("EXPECTED_CALLBACK"),n[o]=a,"number"==typeof i&&i&&(t[o]=setTimeout((function(){"function"==typeof n[o]&&n[o]("TIMEOUT"),r(o)}),i))},handle:function(t,o){var a=n[t];if("function"==typeof a){try{a.apply(null,Array.isArray(o)?o:[o])}catch(n){e("HANDLER_ERROR",{error:n,id:t,args:o})}r(t)}else e("MISSING_CALLBACK",{id:t,args:o})},_pending:n}},t.inc=function(e,n,t){e[n]=(e[n]||0)+("number"==typeof t?t:1)},t.values=function(e){return Object.keys(e).map((function(n){return e[n]}))},t.find=function(e,n){for(var t=n.length,r=0;r&"']/g,(function(e){return{"<":"<",">":">","&":"&",'"':""","'":"'"}[e]})):""},t.hexToBase64=function(e){var t=e.replace(/\r|\n/g,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" "),r=String.fromCharCode.apply(null,t);return n.btoa(r).replace(/\//g,"-").replace(/=+$/,"")},t.base64ToHex=function(e){var t=[];return n.atob(e.replace(/-/g,"/")).split("").forEach((function(e){var n=e.charCodeAt(0).toString(16);1===n.length&&(n="0"+n),t.push(n)})),t.join("")},t.uint8ArrayToHex=function(e){for(var n="",t=0;t=o?"GB":e>=r?"MB":"KB"};t.getBlock=function(e,n,r){var o=t.once(t.mkAsync(r)),a={};"string"==typeof n.bearer&&n.bearer&&(a.authorization=`Bearer ${n.bearer}`),fetch(e,{method:"GET",credentials:"include",headers:a}).then((e=>{e.ok?o(void 0,e):401!==e.status&&404!==e.status?o(e.status,e):e.json().then((n=>{o(e.status,n)})).catch((()=>{o(e.status)}))})).catch((e=>{o(e)}))},t.fetchApi=function(e,n,t,r){const o=new URL(e);o.pathname=`api/${n}`;let a=o.href+(t?"?"+ +new Date:"");if("undefined"!=typeof self&&self.crypto)fetch(a).then((e=>{if(!e.ok)throw new Error(`Fetch error: ${e.status}`);return e.text()})).then((e=>{r(JSON.parse(e.slice(27,-5)))})).catch((e=>{console.error(e.message),r({})}));else if(void 0!==b){("http:"===o.protocol?require("node:http"):require("node:https")).get(o.href,(e=>{let n="";e.on("data",(e=>{n+=e})),e.on("end",(()=>{try{r(JSON.parse(n.slice(27,-5)))}catch(e){console.error(e),r({})}}))}))}},t.fetch=function(e,n,r,o){var a,i=t.once(t.mkAsync(n)),s=function(e){var n=e.replace(/(\/)*$/,""),t=n.lastIndexOf("/"),r=n.slice(t+1);return/^[a-f0-9]{48}$/.test(r)||(r=void 0),r}(e),c=function(){(a=new XMLHttpRequest).open("GET",e,!0),r&&a.addEventListener("progress",(function(e){if(e.lengthComputable){var n=e.loaded/e.total;r(n)}}),!1),a.responseType="arraybuffer",a.onerror=function(e){i(e)},a.onload=function(){if(/^4/.test(""+this.status))return i("XHR_ERROR");var e=a.response;if(e){var n=new Uint8Array(e);return s?void function(e,n,t){o&&"function"==typeof o.setBlobCache?o.setBlobCache(e,n,t):t("EINVAL")}(s,n,(function(){i(null,n)})):void i(void 0,n)}i("ENOENT")},a.send(null)};if(s)return function(e,n){o&&"function"==typeof o.getBlobCache?o.getBlobCache(e,n):n("EINVAL")}(s,(function(e,n){!e&&n?i(void 0,n):c()})),{cancel:function(){a&&a.abort&&a.abort()}};c()},t.dataURIToBlob=function(e){for(var n=atob(e.split(",")[1]),t=e.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(n.length),o=new Uint8Array(r),a=0;aparseInt(e,10).toString(16).padStart(2,"0"))).join("")}`},t.isSmallScreen=function(){return n.innerHeight<800||n.innerWidth<800},t.stripTags=function(e){var n=document.createElement("div");return n.innerHTML=e,n.innerText},t.parseFilename=function(e){if(!e||!e.trim())return{};var n=/^(\.?.+?)(\.[^.]+)?$/.exec(e)||[];return{name:n[1],ext:n[2]}},t.isPlainTextFile=function(e,n){if(e&&0===e.indexOf("text/"))return!0;var r=t.parseFilename(n);return!(e||!n||r.ext)||("application/x-javascript"===e||"application/xml"===e)},t.isSpreadsheet=function(e,n){return e&&("application/vnd.oasis.opendocument.spreadsheet"===e||"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"===e)||n&&(n.endsWith(".xlsx")||n.endsWith(".ods"))},t.isOfficeDoc=function(e,n){return e&&("application/vnd.oasis.opendocument.text"===e||"application/vnd.openxmlformats-officedocument.wordprocessingml.document"===e)||n&&(n.endsWith(".docx")||n.endsWith(".odt"))},t.isPresentation=function(e,n){return e&&("application/vnd.oasis.opendocument.presentation"===e||"application/vnd.openxmlformats-officedocument.presentationml.presentation"===e)||n&&(n.endsWith(".pptx")||n.endsWith(".odp"))},t.isValidURL=function(e){return!!new RegExp("^(https?:\\/\\/)((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?").test(e)};var a=/([\uD800-\uDBFF][\uDC00-\uDFFF])/;t.getFirstCharacter=function(e){if(!e||!e.trim())return"?";var n=function(e){for(var n=e.split(a),t=[],r=0;r{let n=/ver=([0-9.]+)(-[0-9]*)?/.exec(e);return Array.isArray(n)&&n[1]||void 0},t.Saferphore={create:e=>{var n,t=[];return n=function(){if(e<0)throw new Error("(resourceCount < 0) should never happen");var r;0!==e&&0!==t.length&&(e--,t.shift()((r=0,function(t){if(r++)throw new Error("returnAfter() called multiple times");var o=0;return function(){if(o++)throw new Error("returnAfter wrapped callback called multiple times");t&&t.apply(null,arguments),e++,n()}})))},{take:function(e){t.push(e),n()}}}},t};e.exports?e.exports=t(k()):n.CryptPad_Util=Util}("undefined"!=typeof self?self:Q)}(z)),z.exports}var X,$,ee={exports:{}};function ne(){return X||(X=1,function(e){e.exports&&(e.exports=function(){var e={},n=function(e){return e.replace(/-/g,"/")};return e.parseUser=function(e){var t,r,o,a=function(e){if(/^\[.*?@.*\]$/.test(e)){var t,r=e.slice(1,-1);if(r=r.replace(/\/([a-zA-Z0-9+-]{43}=)$/,(function(e,r){return t=n(r),""})),t){var o=r.lastIndexOf("@");if(!(o<1))return{domain:r.slice(o+1),user:r.slice(0,o),pubkey:t}}}}(e);if(function(e){if(e&&e.domain&&e.user&&e.pubkey)return!0}(a))return a;if(e.replace(/^https*:\/\/([^\/]+)\/user\/#\/1\/([^\/]+)\/([a-zA-Z0-9+-]{43}=)$/,(function(e,a,i,s){return t=a,r=i,o=n(s),""})),!t)throw new Error("Could not parse user id ["+e+"]");return{domain:t,user:r,pubkey:o}},e.serialize=function(e,n,t){return"["+n+"@"+e.replace(/https*:\/\//,"")+"/"+t.replace(/\//g,"-")+"]"},e.canonicalize=function(t){if("string"==typeof t){if(44===t.length)return n(t);try{return e.parseUser(t).pubkey}catch(e){return}}},e}())}(ee)),ee.exports}function te(){return $||($=1,function(e){!function(n){e.exports&&(e.exports=function(e,t,r,o){var a=n.CryptPad_Hash={},i=e.uint8ArrayToHex,s=e.hexToBase64,c=e.base64ToHex;a.encodeBase64=e.encodeBase64,a.decodeBase64=e.decodeBase64,a.hashChannelList=function(n){return e.encodeBase64(o.hash(e.decodeUTF8(JSON.stringify(n))))},a.generateSignPair=function(){var e=o.sign.keyPair(),n=function(e){return t.b64RemoveSlashes(e).replace(/=+$/g,"")};return{validateKey:a.encodeBase64(e.publicKey),signKey:a.encodeBase64(e.secretKey),safeValidateKey:n(a.encodeBase64(e.publicKey)),safeSignKey:n(a.encodeBase64(e.secretKey))}},a.getSignPublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.sign.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)},a.getCurvePublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.box.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)};var u=a.getEditHashFromKeys=function(e){var n=e.version,r=e.keys;if(0===n)return e.channel+e.key;if(1===n){if(!r.editKeyStr)return;return"/1/edit/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.editKeyStr)+"/"}if(2===n){if(!r.editKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/edit/"+t.b64RemoveSlashes(r.editKeyStr)+"/"+o}},f=a.getViewHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n){if(!r.viewKeyStr)return;return"/1/view/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"}if(2===n){if(!r.viewKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/view/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"+o}}};a.getHiddenHashFromKeys=function(e,n,t){t=t||{};var r=n.keys&&n.keys.editKeyStr||n.key,o=!t.view&&r?"edit/":"view/",i=n.password?"p/":"";n.keys&&n.keys.fileKeyStr&&(o="");var s="/3/"+e+"/"+o+n.channel+"/"+i,c=a.parseTypeHash(e,s);return c&&c.getHash?c.getHash(t||{}):s};var l=a.getFileHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n)return"/1/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/";if(2===n){if(!r.fileKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/"+o}}};a.getPublicSigningKeyString=r.serialize,a.ephemeralChannelLength=34,a.createChannelId=function(e){var n=i(t.Nacl.randomBytes(e?17:16));if(-1===[32,34].indexOf(n.length)||/[^a-f0-9]/.test(n))throw new Error("channel ids must consist of 32 hex characters");return n},a.getChannelIdFromKey=function(e){if(e)return i(a.decodeBase64(e).subarray(0,16))},a.getBoxPublicFromSecret=function(e){if(e){var n=a.decodeBase64(e),t=o.box.keyPair.fromSecretKey(n);return a.encodeBase64(t.publicKey)}},a.checkBoxKeyPair=function(e,n){if(!n||!e)return!1;var t=a.decodeBase64(e),r=o.box.keyPair.fromSecretKey(t);return n===a.encodeBase64(r.publicKey)},a.createRandomHash=function(e,n){var r;return"file"===e?(r=t.createFileCryptor2(void 0,n),l({password:Boolean(n),version:2,type:e,keys:r})):(r=t.createEditCryptor2(void 0,void 0,n),u({password:Boolean(n),version:2,type:e,keys:r}))};var d=a.parseTypeHash=function(e,n){if(n){var r,o=[],a={},i=(r=n,r.replace(/\/+/g,"/")).split("/"),s=function(){a.password=-1!==o.indexOf("p"),a.present=-1!==o.indexOf("present"),a.embed=-1!==o.indexOf("embed"),a.versionHash=function(e){var n;return e.some((function(e){if(/^hash=/.test(e))return n=e.slice(5),!0})),n?t.b64AddSlashes(n):""}(o),a.auditorKey=function(e){var n;return e.some((function(e){if(/^auditor=/.test(e))return n=e.slice(8),!0})),n?t.b64AddSlashes(n):""}(o),a.newPadOpts=function(e){var n;return e.some((function(e){if(/^newpad=/.test(e))return n=e.slice(7),!0})),n||""}(o),a.loginOpts=function(e){var n;return e.some((function(e){if(/^login=/.test(e))return n=e.slice(6),!0})),n||""}(o),a.ownerKey=function(e){var n;return e.some((function(e){if(86===e.length)return n=e,!0})),n}(o)};return i[1]&&"4"===i[1]?(a.getHash=function(n){if(!n||!Object.keys(n).length)return"";var t="/4/"+e+"/";return n.newPadOpts&&(t+="newpad="+n.newPadOpts+"/"),n.loginOpts&&(t+="login="+n.loginOpts+"/"),t},a.getOptions=function(){var e={};return a.newPadOpts&&(e.newPadOpts=a.newPadOpts),a.loginOpts&&(e.loginOpts=a.loginOpts),e},a.version=4,a.app=i[2],o=i.slice(3),s(),a):-1===["media","file","user","invite"].indexOf(e)?(a.type="pad",a.getHash=function(){return n},a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,versionHash:a.versionHash,auditorKey:a.auditorKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},"/"!==n.slice(0,1)&&n.length>=56?(a.channel=n.slice(0,32),a.key=n.slice(32,56),a.version=0,a):(a.getHash=function(e){var n=i.slice(0,5).join("/")+"/",r=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;r&&(n+=r+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/");var o=void 0!==e.versionHash?e.versionHash:a.versionHash;o&&(n+="hash="+t.b64RemoveSlashes(o)+"/");var s=void 0!==e.auditorKey?e.auditorKey:a.auditorKey;return s&&(n+="auditor="+t.b64RemoveSlashes(s)+"/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.mode=i[2],a.channel=i[3],a.key=t.b64AddSlashes(i[4]),o=i.slice(5),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.mode=i[3],a.channel=i[4],o=i.slice(5),s(),a):a)):(a.getHash=function(){return i.join("/")},-1!==["media","file"].indexOf(e)?(a.type="file",a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},a.getHash=function(e){var n=i.slice(0,4).join("/")+"/",t=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;return t&&(n+=t+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.channel=i[2].replace(/-/g,"/"),a.key=i[3].replace(/-/g,"/"),o=i.slice(4),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.key=i[3],o=i.slice(4),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.channel=i[3],o=i.slice(4),s(),a):a):-1!==["user"].indexOf(e)?(a.type="user",i[1]&&"1"===i[1]?(a.version=1,a.user=i[2],a.pubkey=i[3].replace(/-/g,"/"),a):a):-1!==["invite"].indexOf(e)?(a.type="invite",i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),a.password=-1!==o.indexOf("p"),a):a):void 0)}},h=a.parsePadUrl=function(e){var n,t={};return e?("/"!==e.slice(-1)&&"#"!==e.slice(-1)&&(e+="/"),e=e.replace(/\/\?[^#]+#/,"/#"),t.getUrl=function(e){e=e||{};var n="/";return t.type?(n+=t.type+"/",!t.hashData&&e&&Object.keys(e).length?n+"#"+function(e){if(!e||!Object.keys(e).length)return"";var n="/4/"+t.type+"/";return e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n}(e):t.hashData?n+="#"+t.hashData.getHash(e):n):n},t.getOptions=function(){return t.hashData&&t.hashData.getOptions?t.hashData.getOptions():{}},/^https*:\/\//.test(e)?(e.replace(/^https*:\/\/([^\/]*)\/(.*?)\//i,(function(e,n,r){return t.domain=n,t.type=r,""})),-1===(n=e.indexOf("/#"))||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):/^\/($|[^\/])/.test(e)?(n=e.indexOf("/#"),t.type=e.slice(1,n),-1===n||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):t):t};return a.hashToHref=function(e,n){return"/"+n+"/#"+e},a.hrefToHash=function(e){return a.parsePadUrl(e).hash},a.getRelativeHref=function(e){if(e&&-1!==e.indexOf("#")){var n=h(e);return"/"+n.type+"/#"+n.hash}},a.getSecrets=function(n,r,o){var a,i,s={},u=function(){s.keys=t.createEditCryptor2(void 0,void 0,o),s.channel=c(s.keys.chanId),s.version=2,s.type=n};if(!r)return u(),s;if(r){if(!n)throw new Error("getSecrets with a hash requires a type parameter");a=d(n,r),i=r}if(0===i.length)return u(),s;if(0===a.version)s.channel=a.channel,s.key=a.key,s.version=0;else if(1===a.version){if(s.version=1,"pad"===a.type){if(s.channel=c(a.channel),"edit"===a.mode){if(s.keys=t.createEditCryptor(a.key),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor(a.key),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type)s.channel=c(a.channel),s.keys={fileKeyStr:a.key,cryptKey:e.decodeBase64(a.key)};else if("user"===a.type)throw new Error("User hashes can't be opened (yet)")}else if(2===a.version)if(s.version=2,s.type=n,s.password=o,"pad"===a.type){if("edit"===a.mode){if(s.keys=t.createEditCryptor2(a.key,void 0,o),s.channel=c(s.keys.chanId),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor2(a.key,o),s.channel=c(s.keys.chanId),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type){if(s.keys=t.createFileCryptor2(a.key,o),s.channel=c(s.keys.chanId),s.key=s.keys.fileKeyStr,48!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("user"===a.type)throw new Error("User hashes can't be opened (yet)");return s},a.getHashes=function(e){var n={};return(e=JSON.parse(JSON.stringify(e))).keys||e.key?(e.keys||(e.keys={}),(e.keys.editKeyStr||0===e.version&&e.key)&&(n.editHash=u(e)),e.keys.viewKeyStr&&(n.viewHash=f(e)),e.keys.fileKeyStr&&(n.fileHash=l(e)),n):n},a.getFormData=function(n,t,r){var i=(n=n||a.getSecrets("form",t,r))&&n.keys,s=i&&i.secondaryKey;if(s){var c=o.box.keyPair.fromSecretKey(e.decodeUTF8(s).slice(0,32)),u={};u.form_public=e.encodeBase64(c.publicKey);var f=u.form_private=e.encodeBase64(c.secretKey),l=a.getViewHashFromKeys({version:1,channel:n.channel,keys:{viewKeyStr:e.encodeBase64(i.cryptKey)}}),d=a.parseTypeHash("pad",l);return u.form_auditorHash=d.getHash({auditorKey:f}),u}},a.hrefToHexChannelId=function(e,n){var t=a.parsePadUrl(e);if(t&&t.hash)return a.getSecrets(t.type,t.hash,n).channel},a.getBlobPathFromHex=function(e){return"/blob/"+e.slice(0,2)+"/"+e},a.serializeHash=function(e){return e&&"/"!==e.slice(-1)&&(e+="/"),e},a.createInviteUrl=function(e,t){return t=t||a.createChannelId(),n.location.origin+"/invite/#/1/"+t+"/"+e.replace(/\//g,"-")+"/"},a.isValidChannel=function(e){return/^[a-zA-Z0-9]{32,48}$/.test(e)},a.isValidHref=function(e){if(e){var n=a.parsePadUrl(e);if(n&&n.type){if(n.hash){if(!n.hashData)return;if(void 0===n.hashData.version)return;if("pad"===n.hashData.type||"file"===n.hashData.type){if(!n.hashData.key&&!n.hashData.channel)return;if(n.hashData.key&&!/^[a-zA-Z0-9+-/=]+$/.test(n.hashData.key))return}}return n}}},a.decodeDataOptions=function(n){var t=decodeURIComponent(n),r=e.encodeUTF8(e.decodeBase64(t));return e.tryParse(r)||{}},a.encodeDataOptions=function(n){var t=JSON.stringify(n),r=e.encodeBase64(e.decodeUTF8(t));return encodeURIComponent(r)},a.getNewPadURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.newPadOpts=a.encodeDataOptions(n),t.getUrl(r)},a.getLoginURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.loginOpts=a.encodeDataOptions(n),t.getUrl(r)},a}(Z(),M(),ne(),N()))}("undefined"!=typeof window?window:{})}(W)),W.exports}var re,oe,ae=te(),ie=Z(),se={exports:{}},ce={exports:{}};function ue(){return re||(re=1,function(e){e.exports=function e(n,t,r){function o(i,s){if(!t[i]){if(!n[i]){if(!s&&b)return b(i);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=t[i]={exports:{}};n[i][0].call(u.exports,(function(e){var t=n[i][1][e];return o(t||e)}),u,u.exports,e,n,t,r)}return t[i].exports}for(var a=b,i=0;i=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof v?u.resolve(v):O(e).then((function(e){return v=e}))}function w(e){var n=y[e.name],t={};t.promise=new u((function(e,n){t.resolve=e,t.reject=n})),n.deferredOperations.push(t),n.dbReady?n.dbReady=n.dbReady.then((function(){return t.promise})):n.dbReady=t.promise}function D(e){var n=y[e.name].deferredOperations.pop();if(n)return n.resolve(),n.promise}function _(e,n){var t=y[e.name].deferredOperations.pop();if(t)return t.reject(n),t.promise}function T(e,n){return new u((function(t,r){if(y[e.name]=y[e.name]||F(),e.db){if(!n)return t(e.db);w(e),e.db.close()}var o=[e.name];n&&o.push(e.version);var a=i.open.apply(i,o);n&&(a.onupgradeneeded=function(n){var t=a.result;try{t.createObjectStore(e.storeName),n.oldVersion<=1&&t.createObjectStore(p)}catch(t){if("ConstraintError"!==t.name)throw t;console.warn('The database "'+e.name+'" has been upgraded from version '+n.oldVersion+" to version "+n.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){var n=a.result;n.onversionchange=function(e){e.target.close()},t(n),D(e)}}))}function S(e){return T(e,!1)}function x(e){return T(e,!0)}function N(e,n){if(!e.db)return!0;var t=!e.db.objectStoreNames.contains(e.storeName),r=e.versione.db.version;if(r&&(e.version!==n&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||t){if(t){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function I(e){return new u((function(n,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");n({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)}))}function C(e){return c([b(atob(e.data))],{type:e.type})}function R(e){return e&&e.__local_forage_encoded_blob}function P(e){var n=this,t=n._initReady().then((function(){var e=y[n._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return l(t,e,e),t}function k(e){w(e);for(var n=y[e.name],t=n.forages,r=0;r0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)})).then((function(){return k(e).then((function(){M(e,n,t,r-1)}))})).catch(t);t(o)}}function F(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function L(e){var n=this,t={db:null};if(e)for(var r in e)t[r]=e[r];var o=y[t.name];o||(o=F(),y[t.name]=o),o.forages.push(n),n._initReady||(n._initReady=n.ready,n.ready=P);var a=[];function i(){return u.resolve()}for(var s=0;s>4,f[c++]=(15&r)<<4|o>>2,f[c++]=(3&o)<<6|63&a;return u}function pe(e){var n,t=new Uint8Array(e),r="";for(n=0;n>2],r+=z[(3&t[n])<<4|t[n+1]>>4],r+=z[(15&t[n+1])<<2|t[n+2]>>6],r+=z[63&t[n+2]];return t.length%3==2?r=r.substring(0,r.length-1)+"=":t.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function ve(e,n){var t="";if(e&&(t=de.call(e)),e&&("[object ArrayBuffer]"===t||e.buffer&&"[object ArrayBuffer]"===de.call(e.buffer))){var r,o=X;e instanceof ArrayBuffer?(r=e,o+=ee):(r=e.buffer,"[object Int8Array]"===t?o+=te:"[object Uint8Array]"===t?o+=re:"[object Uint8ClampedArray]"===t?o+=oe:"[object Int16Array]"===t?o+=ae:"[object Uint16Array]"===t?o+=se:"[object Int32Array]"===t?o+=ie:"[object Uint32Array]"===t?o+=ce:"[object Float32Array]"===t?o+=ue:"[object Float64Array]"===t?o+=fe:n(new Error("Failed to get type for BinaryArray"))),n(o+pe(r))}else if("[object Blob]"===t){var a=new FileReader;a.onload=function(){var t=Q+e.type+"~"+pe(this.result);n(X+ne+t)},a.readAsArrayBuffer(e)}else try{n(JSON.stringify(e))}catch(t){console.error("Couldn't convert value into a JSON string: ",e),n(null,t)}}function ye(e){if(e.substring(0,$)!==X)return JSON.parse(e);var n,t=e.substring(le),r=e.substring($,le);if(r===ne&&Z.test(t)){var o=t.match(Z);n=o[1],t=t.substring(o[0].length)}var a=he(t);switch(r){case ee:return a;case ne:return c([a],{type:n});case te:return new Int8Array(a);case re:return new Uint8Array(a);case oe:return new Uint8ClampedArray(a);case ae:return new Int16Array(a);case se:return new Uint16Array(a);case ie:return new Int32Array(a);case ce:return new Uint32Array(a);case ue:return new Float32Array(a);case fe:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}}var me={serialize:ve,deserialize:ye,stringToBuffer:he,bufferToString:pe};function ge(e,n,t,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+n.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],t,r)}function Ee(e){var n=this,t={db:null};if(e)for(var r in e)t[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new u((function(e,r){try{t.db=openDatabase(t.name,String(t.version),t.description,t.size)}catch(e){return r(e)}t.db.transaction((function(o){ge(o,t,(function(){n._dbInfo=t,e()}),(function(e,n){r(n)}))}),r)}));return t.serializer=me,o}function be(e,n,t,r,o,a){e.executeSql(t,r,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[n.storeName],(function(e,s){s.rows.length?a(e,i):ge(e,n,(function(){e.executeSql(t,r,o,a)}),a)}),a):a(e,i)}),a)}function Oe(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,t){var r=t.rows.length?t.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ae(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName,[],(function(t,r){for(var a=r.rows,i=a.length,s=0;s0)return void a(we.apply(o,[e,s,t,r-1]));i(n)}}))}))})).catch(i)}));return f(a,t),a}function De(e,n,t){return we.apply(this,[e,n,t,1])}function _e(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){n()}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Te(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function Se(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(n,t){var r=t.rows.item(0).c;e(r)}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function xe(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,t){var r=t.rows.length?t.rows.item(0).key:null;n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ne(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT key FROM "+r.storeName,[],(function(n,t){for(var r=[],o=0;o '__WebKitDatabaseInfoTable__'",[],(function(t,r){for(var o=[],a=0;a0}function Le(e){var n=this,t={};if(e)for(var r in e)t[r]=e[r];return t.keyPrefix=ke(e,n._defaultConfig),Fe()?(n._dbInfo=t,t.serializer=me,u.resolve()):u.reject()}function He(e){var n=this,t=n.ready().then((function(){for(var e=n._dbInfo.keyPrefix,t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return f(t,e),t}function je(e,n){var t=this;e=d(e);var r=t.ready().then((function(){var n=t._dbInfo,r=localStorage.getItem(n.keyPrefix+e);return r&&(r=n.serializer.deserialize(r)),r}));return f(r,n),r}function Ke(e,n){var t=this,r=t.ready().then((function(){for(var n=t._dbInfo,r=n.keyPrefix,o=r.length,a=localStorage.length,i=1,s=0;s=0;n--){var t=localStorage.key(n);0===t.indexOf(e)&&localStorage.removeItem(t)}})):u.reject("Invalid arguments"),f(r,n),r}var qe={_driver:"localStorageWrapper",_initStorage:Le,_support:Pe(),iterate:Ke,getItem:je,setItem:Ge,removeItem:Ye,clear:He,length:Ve,key:Ue,keys:Be,dropInstance:Je},We=function(e,n){return e===n||"number"==typeof e&&"number"==typeof n&&isNaN(e)&&isNaN(n)},ze=function(e,n){for(var t=e.length,r=0;r{const n=(e,n)=>{let t=globalThis,r=globalThis;var o=t.CryptPad_Cache={},a=e.mkEvent(!0),i=!1,s=!1,c=!1;try{var u=t.indexedDB.open("test_db",1);u.onsuccess=function(){i=(c=!0)&&!s,a.fire()},u.onerror=function(){a.fire()}}catch(e){a.fire()}o.enable=function(){s=!1,i=c&&!s},o.disable=function(){s=!0,i=c&&!s},o.isEnabled=()=>i;var f=n.createInstance({driver:n.INDEXEDDB,name:"cp_cache"});o.getBlobCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&o.c?(t(null,o.c),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))},o.setBlobCache=function(n,t,r){r=e.once(e.mkAsync(r||function(){})),a.reg((function(){i?t?f.setItem(n,{c:t,t:+new Date},(function(n){r(e.serializeError(n))})):r("EINVAL"):r("NOCACHE")}))},o.getChannelCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&Array.isArray(o.c)?(t(null,o),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))};var l={};return o.storeCache=function(n,t,r,o){o=e.once(e.mkAsync(o||function(){})),a.reg((function(){l[n]=l[n]||e.throttle((function(t,r,o){var a,s;i?Array.isArray(r)&&t?(a=r,Array.isArray(a)&&(a.length>100&&a.splice(0,a.length-100),a.some((function(e,n){if(e.isCheckpoint)return s=n,!0})),a.splice(0,s)),f.setItem(n,{k:t,c:r,t:+new Date},(function(n){n&&o(e.serializeError(n))}))):o("EINVAL"):o("NOCACHE")}),50),l[n](t,r,o)}))},o.leaveChannel=function(e){delete l[e]},o.clearChannel=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.removeItem(n,(function(){t()})):t("NOCACHE")}))},o.clear=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.clear(n):n("NOCACHE")}))},o.getKeys=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.keys().then((function(e){n(null,e)})).catch((function(e){n(e)})):n("NOCACHE")}))},o.getTime=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(n,r){!n&&r&&r.c?t(null,r.t):t(e.serializeError(n||"EINVAL"))})):t("NOCACHE")}))},r.CryptPad_clearIndexedDB=o.clear,o};e.exports&&(e.exports=n(Z(),ue()))})()}(se)),se.exports}var le=fe(),de=n({__proto__:null,default:r(le)},[le]);const he=ie.mkEvent(!0),pe=ie.mkEvent(!0),ve=ie.mkEvent(),ye=ie.mkEvent();let me={};const ge={setCustomize:e=>{me=e.ApiConfig},init:e=>{var n,t;const{broadcast:r,userHash:o,anonHash:a}=e,i=o||a||ae.createRandomHash("drive"),s=e.store,c=ae.getSecrets("drive",i),u={data:{},websocketURL:U.getWebsocketURL(),network:null===(n=e.store)||void 0===n?void 0:n.network,channel:c.channel,readOnly:!1,validateKey:(null===(t=c.keys)||void 0===t?void 0:t.validateKey)||void 0,crypto:L.createEncryptor(c.keys),Cache:de,userName:"fs",logLevel:1,ChainPad:T,updateProgress:function(e){e.type="drive",r([],"LOADING_DRIVE",e)},classic:!0},f=globalThis.CP_account_rt=E.create(u);s.driveSecret=c,s.proxy=f.proxy,s.onRpcReadyEvt=ie.mkEvent(!0),s.loggedIn=void 0!==e.userHash;const l={loggedIn:s.loggedIn};return f.proxy.on("create",(function(e){s.realtime=e.realtime,s.network=e.network,s.loggedIn||(l.anonHash=ae.getEditHashFromKeys(c))})).on("cacheready",(function(n){if(s.realtime=n.realtime,s.offline=!0,s.networkPromise=n.networkPromise,s.cacheReturned=l,s.networkPromise&&s.networkPromise.then){const e=setTimeout((function(){s.networkTimeout=!0,r([],"LOADING_DRIVE",{type:"offline"})}),5e3);s.networkPromise.then((function(n){s.network||(s.network=n),clearTimeout(e)}),(function(n){console.error(n),clearTimeout(e)}))}e.cache&&(l.edPublic=f.proxy.edPublic,he.fire(l))})).on("ready",(function(n){delete s.networkTimeout,s.ready||(s.driveMetadata=n.metadata,f.proxy.drive||(f.proxy.drive={}),!f.proxy[J.displayNameKey]&&s.noDriveName&&(f.proxy[J.displayNameKey]=s.noDriveName),!f.proxy.uid&&s.noDriveUid&&(f.proxy.uid=s.noDriveUid),!f.proxy.form_seed&&e.form_seed&&(f.proxy.form_seed=e.form_seed),f.proxy.edPublic&&Array.isArray(me.adminKeys)&&-1!==me.adminKeys.indexOf(f.proxy.edPublic)&&(s.isAdmin=!0),l.edPublic=f.proxy.edPublic,pe.fire(l))})).on("error",(function(e){"EDELETED"===e.error&&(s.ownDeletion||(s.isDeleted=!0,r([],"DRIVE_DELETED",e.message)))})).on("disconnect",(function(){s.offline=!0,ve.fire(),r([],"UPDATE_METADATA")})).on("reconnect",(function(){s.offline=!1,ye.fire(),r([],"UPDATE_METADATA")})),{channel:c.channel,onAccountCacheReady:he.reg,onAccountReady:pe.reg,onDisconnect:ve.reg,onReconnect:ye.reg}}};var Ee,be=Object.freeze({__proto__:null,Account:ge}),Oe={exports:{}};function Ae(){return Ee||(Ee=1,function(e){(()=>{const n=(e={},n={})=>{var t={setCustomize:t=>{n=t.Messages,e=t.AppConfig},init:function(e){t.state=e}};return t.send=function(n,r,o){("function"!=typeof o&&(o=function(){}),e.disableFeedback)?o():n&&(!0===r||t.state)?function(e,n){var t=new XMLHttpRequest;t.open("HEAD",e),t.onreadystatechange=function(){this.readyState===this.DONE&&n&&n()},t.send()}("/common/feedback.html?"+n+"="+Math.random().toString(16).replace(/0./,""),o):o()},t.reportAppUsage=function(){var e=window.location.pathname.split("/").filter((function(e){return e})).join(".");/^#\/1\/view\//.test(window.location.hash)?t.send(e+"_VIEW"):t.send(e)},t.reportScreenDimensions=function(){var e=window.innerHeight,n=window.innerWidth;t.send("DIMENSIONS:"+e+"x"+n)},t.reportLanguage=function(){n&&t.send("LANG_"+n._languageUsed)},t};e.exports&&(e.exports=n(void 0,void 0))})()}(Oe)),Oe.exports}var we,De,_e=Ae(),Te=n({__proto__:null,default:r(_e)},[_e]),Se={exports:{}},xe={exports:{}};function Ne(){return De||(De=1,function(e){e.exports&&(e.exports=function(e={},n){var t={setCustomize:n=>{e=n.AppConfig}};t.MINIMUM_PASSWORD_LENGTH="number"==typeof e.minimumPasswordLength?e.minimumPasswordLength:8,t.MINIMUM_NAME_LENGTH=1,t.MAXIMUM_NAME_LENGTH=64,t.isEmail=function(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())},t.isLongEnoughPassword=function(e){return e.length>=t.MINIMUM_PASSWORD_LENGTH};var r=t.isString=function(e){return"string"==typeof e};return t.isValidUsername=function(e){return!!(r(e)&&e.length>=t.MINIMUM_NAME_LENGTH)},t.isValidPassword=function(e){return!(!e||!r(e))},t.passwordsMatch=function(e,n){return r(e)&&r(n)&&e===n},t.customSalt=function(){return"string"==typeof e.loginSalt?e.loginSalt:""},t.deriveFromPassphrase=function(e,r,o,a){n(r,e+t.customSalt(),8,1024,o||128,200,a,void 0)},t.dispenser=function(e){var n={used:0};return function(t){if(n.used+t>e.length)throw new Error("exceeded available entropy");if("number"!=typeof t)throw new Error("expected a number");if(t<=0)throw new Error("expected to consume a positive number of bytes");var r;return r=e.slice?e.slice(n.used,n.used+t):e.subarray(n.used,n.used+t),n.used+=t,r}},t}(void 0,(we||(we=1,function(e){e.exports=function(e,n,t,r,o,a,i,s){function c(e){var n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],t=1779033703,r=3144134277,o=1013904242,a=2773480762,i=1359893119,s=2600822924,c=528734635,u=1541459225,f=new Array(64);function l(e){for(var l=0,d=e.length;d>=64;){var h,p,v,y,m,g=t,E=r,b=o,O=a,A=i,w=s,D=c,_=u;for(p=0;p<16;p++)v=l+4*p,f[p]=(255&e[v])<<24|(255&e[v+1])<<16|(255&e[v+2])<<8|255&e[v+3];for(p=16;p<64;p++)y=((h=f[p-2])>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,m=((h=f[p-15])>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,f[p]=(y+f[p-7]|0)+(m+f[p-16]|0)|0;for(p=0;p<64;p++)y=(((A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))+(A&w^~A&D)|0)+(_+(n[p]+f[p]|0)|0)|0,m=((g>>>2|g<<30)^(g>>>13|g<<19)^(g>>>22|g<<10))+(g&E^g&b^E&b)|0,_=D,D=w,w=A,A=O+y|0,O=b,b=E,E=g,g=y+m|0;t=t+g|0,r=r+E|0,o=o+b|0,a=a+O|0,i=i+A|0,s=s+w|0,c=c+D|0,u=u+_|0,l+=64,d-=64}}l(e);var d,h=e.length%64,p=e.length/536870912|0,v=e.length<<3,y=h<56?56:120,m=e.slice(e.length-h,e.length);for(m.push(128),d=h+1;d>>24&255),m.push(p>>>16&255),m.push(p>>>8&255),m.push(p>>>0&255),m.push(v>>>24&255),m.push(v>>>16&255),m.push(v>>>8&255),m.push(v>>>0&255),l(m),[t>>>24&255,t>>>16&255,t>>>8&255,t>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255]}function u(e,n,t){e=e.length<=64?e:c(e);var r,o=64+n.length+4,a=new Array(o),i=new Array(64),s=[];for(r=0;r<64;r++)a[r]=54;for(r=0;r=o-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;t>=32;)u(),s=s.concat(c(i.concat(c(a)))),t-=32;return t>0&&(u(),s=s.concat(c(i.concat(c(a))).slice(0,t))),s}function f(e,n,t,r){var o,a,i=e[0]^n[t++],s=e[1]^n[t++],c=e[2]^n[t++],u=e[3]^n[t++],f=e[4]^n[t++],l=e[5]^n[t++],d=e[6]^n[t++],h=e[7]^n[t++],p=e[8]^n[t++],v=e[9]^n[t++],y=e[10]^n[t++],m=e[11]^n[t++],g=e[12]^n[t++],E=e[13]^n[t++],b=e[14]^n[t++],O=e[15]^n[t++],A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=O;for(a=0;a<8;a+=2)A^=(o=(k^=(o=(I^=(o=(T^=(o=A+k)<<7|o>>>25)+A)<<9|o>>>23)+T)<<13|o>>>19)+I)<<18|o>>>14,S^=(o=(w^=(o=(M^=(o=(C^=(o=S+w)<<7|o>>>25)+S)<<9|o>>>23)+C)<<13|o>>>19)+M)<<18|o>>>14,R^=(o=(x^=(o=(D^=(o=(F^=(o=R+x)<<7|o>>>25)+R)<<9|o>>>23)+F)<<13|o>>>19)+D)<<18|o>>>14,L^=(o=(P^=(o=(N^=(o=(_^=(o=L+P)<<7|o>>>25)+L)<<9|o>>>23)+_)<<13|o>>>19)+N)<<18|o>>>14,A^=(o=(_^=(o=(D^=(o=(w^=(o=A+_)<<7|o>>>25)+A)<<9|o>>>23)+w)<<13|o>>>19)+D)<<18|o>>>14,S^=(o=(T^=(o=(N^=(o=(x^=(o=S+T)<<7|o>>>25)+S)<<9|o>>>23)+x)<<13|o>>>19)+N)<<18|o>>>14,R^=(o=(C^=(o=(I^=(o=(P^=(o=R+C)<<7|o>>>25)+R)<<9|o>>>23)+P)<<13|o>>>19)+I)<<18|o>>>14,L^=(o=(F^=(o=(M^=(o=(k^=(o=L+F)<<7|o>>>25)+L)<<9|o>>>23)+k)<<13|o>>>19)+M)<<18|o>>>14;n[r++]=e[0]=A+i|0,n[r++]=e[1]=w+s|0,n[r++]=e[2]=D+c|0,n[r++]=e[3]=_+u|0,n[r++]=e[4]=T+f|0,n[r++]=e[5]=S+l|0,n[r++]=e[6]=x+d|0,n[r++]=e[7]=N+h|0,n[r++]=e[8]=I+p|0,n[r++]=e[9]=C+v|0,n[r++]=e[10]=R+y|0,n[r++]=e[11]=P+m|0,n[r++]=e[12]=k+g|0,n[r++]=e[13]=M+E|0,n[r++]=e[14]=F+b|0,n[r++]=e[15]=L+O|0}function l(e,n,t,r,o){for(;o--;)e[n++]=t[r++]}function d(e,n,t,r,o){for(;o--;)e[n++]^=t[r++]}function h(e,n,t,r,o){l(e,0,n,t+16*(2*o-1),16);for(var a=0;a<2*o;a+=2)f(e,n,t+16*a,r+8*a),f(e,n,t+16*a+16,r+8*a+16*o)}function p(e,n,t){return e[n+16*(2*t-1)]}function v(e){for(var n=[],t=0;t127&&r<2048?(n.push(r>>6|192),n.push(63&r|128)):(n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128))}return n}if(t<1||t>31)throw new Error("scrypt: logN not be between 1 and 31");var y,m,g,E,b=1<>>0;if(1*r>=1<<30||r>16777216||r>8388608||b>16777216/r)throw new Error("scrypt: parameters are too large");"string"==typeof e&&(e=v(e)),"string"==typeof n&&(n=v(n)),"undefined"!=typeof Int32Array?(y=new Int32Array(64*r),m=new Int32Array(32*b*r),E=new Int32Array(16)):(y=[],m=[],E=new Array(16)),g=u(e,n,128*r);var O=32*r;function A(){for(var e=0;e<32*r;e++){var n=4*e;y[0+e]=(255&g[n+3])<<24|(255&g[n+2])<<16|(255&g[n+1])<<8|255&g[n+0]}}function w(e,n){for(var t=e;t>>0&255,g[4*e+1]=n>>>8&255,g[4*e+2]=n>>>16&255,g[4*e+3]=n>>>24&255}}var T="undefined"!=typeof setImmediate?setImmediate:setTimeout;function S(e,n,t,r,o){!function a(){T((function(){r(e,e+t>>18&63]),o.push(t[n>>>12&63]),o.push(t[n>>>6&63]),o.push(t[n>>>0&63]);return r%3>0&&(o[o.length-1]="=",r%3==1&&(o[o.length-2]="=")),o.join("")}(t):"hex"===n?function(e){for(var n="0123456789abcdef".split(""),t=e.length,r=[],o=0;o>>4&15]),r.push(n[e[o]>>>0&15]);return r.join("")}(t):t}"function"==typeof a&&(s=i,i=a,a=1e3),a<=0?(A(),w(0,b),D(0,b),_(),i(x(s))):(A(),S(0,b,2*a,w,(function(){S(0,b,2*a,D,(function(){_(),i(x(s))}))})))}}(xe)),xe.exports)))}(Se)),Se.exports}var Ie,Ce,Re,Pe=Ne(),ke=n({__proto__:null,default:r(Pe)},[Pe]),Me={exports:{}},Fe={exports:{}},Le={exports:{}},He={exports:{}};function je(){return Ie||(Ie=1,function(e){e.exports&&(e.exports={whenRealtimeSyncs:function(e,n){"function"==typeof e.getAuthDoc?setTimeout((function(){e.getAuthDoc()!==e.getUserDoc()?e.onSettle(n):n()}),0):console.error("improper use of this function")}})}(He)),He.exports}function Ke(){return Ce||(Ce=1,function(e){(()=>{const n=(e,n,t)=>{let r=globalThis;var o={setCustomize:()=>{}},a=function(e){try{return JSON.parse(JSON.stringify(e))}catch(e){return}};return o.init=function(o,i,s){var c=o.loggedIn,u=o.sharedFolder,f=o.readOnly,l=o.Messages||{},d=i.ROOT,h=i.FILES_DATA,p=i.STATIC_DATA,v=i.OLD_FILES_DATA,y=i.UNSORTED,m=i.TRASH,g=i.TEMPLATE,E=i.SHARED_FOLDERS,b=i.SHARED_FOLDERS_TEMP,O=i.debug;i._setReadOnly=function(e){(f=e)||i.fixFiles()},i.setHref=function(e,n,t){(n||e)&&(f||(n?[n]:i.findChannels([e])).forEach((function(e){var n=i.getFileData(e,!0);i.getHref(n)!==t&&(n.href=i.cryptor.encrypt(t))})))},i.setPadAttribute=function(e,n,t,r){if(r=r||function(){},f)r("EFORBIDDEN");else{var o=i.getIdFromHref(e);if(o)if(n&&n.trim()){var s=i.getFileData(o,!0);"href"===n?i.setHref(null,o,t):s[n]=a(t),r(null)}else r("E_INVAL_ATTR");else r("E_INVAL_HREF")}},i.getPadAttribute=function(e,n,t){t=t||function(){};var r=i.getIdFromHref(e);if(r){var o=i.getFileData(r);t(null,a(o[n]))}else t(null,void 0)},i.pushData=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);o.href&&-1!==o.href.indexOf("#")&&(o.href=i.cryptor.encrypt(o.href)),s[h][r]=o,t(null,r)}},i.pushLink=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);s[p][r]=o,t(null,r)}},i.pushSharedFolder=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r,u=a(n);if(Object.keys(s[E]).some((function(e){if(s[E][e].channel===u.channel)return u.href&&!s[E][e].href&&(s[E][e].href=u.href),r=e,!0})))t("EEXISTS",r);else if(c&&!o.testMode){var l=e.createRandomInteger();u.href&&-1!==u.href.indexOf("#")&&(u.href=i.cryptor.encrypt(u.href)),s[E][l]=u,t(null,l)}else t("EAUTH")}},i.deprecateSharedFolder=function(e,n){if(!f){var t=s[E][e];if(t){if(!(!t.href||-1===i.cryptor.decrypt(t.href).indexOf("#")))(s[b][e]=JSON.parse(JSON.stringify(t))).legacy="PASSWORD_CHANGE"!==n;var r=i.findFile(Number(e));i.delete(r,null,!0),delete s[E][e]}}};var A=function(e){f||delete s[h][e]};i.checkDeletedFiles=function(e){if(c||o.testMode)if(f)e("EFORBIDDEN");else{var t=i.getFiles([d,"hrefArray",m]),r=[];i.getFiles([h,E,p]).forEach((function(e){if(-1===t.indexOf(e)){var a=i.isSharedFolder(e)?s[E][e]:i.getFileData(e),c=a.channel;a.lastVersion&&r.push(n.hrefToHexChannelId(a.lastVersion)),a.rtChannel&&r.push(a.rtChannel),c&&r.push(c),i.isSharedFolder(e)?(delete s[E][e],o.removeProxy&&o.removeProxy(e)):s[p][e]?delete s[p][e]:A(e)}})),r.length?e(null,r):e()}else e()};i.deleteMultiplePermanently=function(e,n,t){if(f)t("EFORBIDDEN");else{var r=e.filter((function(e){return i.isPathIn(e,[h])}));if(!c&&!o.testMode)return r.forEach((function(e){var n=e[1];n&&A(n)})),void t();var a=e.filter((function(e){return i.isPathIn(e,["hrefArray"])})),u=e.filter((function(e){return i.isPathIn(e,[d])})),l=e.filter((function(e){return i.isPathIn(e,[m])})),p=[];a.forEach((function(e){var n=i.find(e);p.push({root:e[0],id:n})})),function(e){f||e.forEach((function(e){var n=s[e.root].indexOf(e.id);s[e.root].splice(n,1)}))}(p),u.forEach((function(e){var n=e.slice(),t=n.pop();delete i.find(n)[t]}));var v,y=[];l.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);4!==e.length?delete r[t]:y.push({name:e[1],el:r})})),v=y,f||v.forEach((function(e){var n=s[m][e.name].indexOf(e.el);s[m][e.name].splice(n,1)})),n?t():i.checkDeletedFiles(t)}},i.copyFromOtherDrive=function(e,t,r,o){if(!f){var a=[];if(Object.keys(r).forEach((function(e){e=Number(e);var n=r[e];if(n.static)return delete n.static,void(s[p][e]=n);n.href&&(n.href=i.cryptor.encrypt(n.href));var t=!1;for(var o in s[h])if(s[h][o].channel===n.channel){s[h][o].href||(s[h][o].href=n.href),t=!0;break}t?a.push(e):s[h][e]=n})),i.isFile(t)&&-1!==a.indexOf(t))i.log(l.sharedFolders_duplicate);else{if(i.isFolder(t)){var c=function(e){for(var n in e)i.isFile(e[n])?-1!==a.indexOf(e[n])&&(i.log(l.sharedFolders_duplicate),delete e[n]):i.isFolder(e[n])&&c(e[n])};c(t)}var u=i.find(e),d=i.isFile(t)?n.createChannelId():o,v=i.getAvailableName(u,d);Array.isArray(u)?u.push(t):u[v]=t}}};i.copyElement=function(e,t){if(!f&&!i.comparePath(e,t)){var r=i.find(e),o=i.find(t);if(i.isPathIn(t,[m])){if(!e||e.length<2||e[0]===m)return void O("Can't move an element from the trash to the trash: ",e);var a=e[e.length-1],c=i.isPathIn(e,["hrefArray"])?i.getTitle(r):a,u=e.slice();return u.pop(),function(e,n,t){if(!f){var r=s[m];void 0===r[e]&&(r[e]=[]);var o={element:n,path:t};r[e].push(o)}}(c,r,u),!0}if(i.isPathIn(t,["hrefArray"])){if(i.isFolder(r))return void i.log(l.fo_moveUnsortedError);if(e[0]===t[0])return;var d=t[0];return-1===s[d].indexOf(r)&&s[d].push(r),!0}var h=i.isFile(r)?i.getAvailableName(o,n.createChannelId()):i.isInTrashRoot(e)?e[1]:e.pop();if(void 0===o[h])return o[h]=r,!0;i.log(l.fo_unavailableName)}},i.forget=function(e){if(!f){var n=i.getIdFromHref(e);if(n){if(!c&&!o.testMode)return A(n),!0;var t=i.findFile(n);return i.move(t,[m]),!0}}},i.restoreHref=function(e){if(!f){var n=i.getIdFromHref(e);if(n&&i.isFile(n)){var t=i.findFile(n),r=!0;t.forEach((function(e){e[0]!==m?r=!1:i.delete(e,null,!0)})),r&&i.add(n)}}},i.add=function(e,t){if(!f&&(c||o.testMode)){e=Number(e);var r=s[h][e]||s[p][e]||s[E][e];if(r&&"object"==typeof r){var a,u=t;if(t&&!Array.isArray(t)&&(u=decodeURIComponent(t).split(",")),t&&i.isPathIn(u,["hrefArray"]))(a=i.find(u)).push(e);else if(-1!==i.getFiles([d,m,"hrefArray"]).indexOf(e)||u||(u=[d]),t&&i.isPathIn(u,[d])){if(a=i.find(u)){var l=i.getAvailableName(a,n.createChannelId());return void(a[l]=e)}a=i.find([d]),u.slice(1).forEach((function(e){a=a[e]=a[e]||{}})),a[n.createChannelId()]=e}}}},i.setFolderData=function(e,t,r,o){if(!f){var a=i.find(e);if(i.isFolder(a)&&!i.isSharedFolder(a)){if(!i.hasFolderData(a))a["000"+n.createChannelId().slice(0,-3)]={metadata:!0};i.getFolderData(a)[t]=r,o()}}};var w=function(e){i.rt?(i.rt.sync(),t.whenRealtimeSyncs(i.rt,e)):r.setTimeout(e,1e3)};return i.migrateReadOnly=function(e){if(!f&&o.editKey)if(s.version>=2)e();else{s.migrateRo=1;w((function(){var n=JSON.parse(JSON.stringify(s));i.reencrypt(o.editKey,o.editKey,n),setTimeout((function(){s.version>=2?e():(Object.keys(n).forEach((function(e){s[e]=n[e]})),s.version=2,delete s.migrateRo,w(e))}),1e3)}))}else e({error:"EFORBIDDEN"})},i.migrate=function(t){if(f)t();else{!function(){if(s[y]&&s[v]){O("UNSORTED still exists in the object, removing it...");var e=s[y];0!==e.length?(e.forEach((function(e){"string"==typeof e&&(0===s[v].filter((function(n){return n.href===e})).length&&s[v].push({href:e}))})),delete s[y]):delete s[y]}}(),function(t){if(s[v])try{O("Migrating file system..."),s.migrate=1;w((function(){var r=s[v].slice();s[h]||(s[h]={});var o=s[h];r.forEach((function(t){if(t&&t.href){var r=t.href,a=e.createRandomInteger(),s=i.findFile(r),c=t,u=n.createChannelId();o[a]=c||{href:r},s.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);if(i.isInTrashRoot(e))return r.element=a,void(o[a].filename=e[1]);i.isPathIn(e,["hrefArray"])?r[t]=a:(r[u]=a,o[a].filename=t,delete r[t])}))}})),delete s[v],delete s.migrate,t()}))}catch(e){console.error(e),t()}else t()}(t)}},i.fixFiles=function(t){if(!f){t&&(O=function(){});var r=+new Date;O("Cleaning file system...");var a=JSON.stringify(s),l=function(t){"object"!=typeof s[d]&&(O("ROOT was not an object"),s[d]={});var r=t||s[d];if(!r)return console.error("Invalid element in root");var o,a=0,c=s[p],u=s[h];for(var f in r)if(null!==(o=r[f]))if(i.isFolderData(o))0!==a&&(O("Multiple metadata files in folder"),delete r[f]),a++;else if(i.isFile(o,!0)||i.isFolder(o))if(i.isFolder(o))l(o);else{if("string"==typeof o){var v=e.createRandomInteger(),y=n.createChannelId();u[v]={href:i.cryptor.encrypt(o),filename:f},r[y]=v,delete r[f]}if("number"==typeof o)u[o]||c[o]||(O("An element in ROOT doesn't have associated data",o,f),delete r[f])}else O("An element in ROOT was not a folder nor a file. ",o),delete r[f];else console.error("element[%s] is null",f),delete r[f]};e.isObject(s[p])||(O("STATIC_DATA was not an object"),s[p]={}),l(),function(){if(!u){"object"!=typeof s[m]&&(O("TRASH was not an object"),s[m]={});var n,t=s[m],r=function(t,r,o){if("object"==typeof t){if(!i.isSharedFolder(t.element))if(i.isFile(t.element,!0)||i.isFolder(t.element))if(Array.isArray(t.path)){if("string"==typeof t.element){var a=e.createRandomInteger();s[h][a]={href:i.cryptor.encrypt(t.element),filename:o},t.element=a}if(i.isFolder(t.element)&&l(t.element),"number"==typeof t.element)s[h][t.element]||s[p][t.element]||(O("An element in TRASH doesn't have associated data",t.element,o),n.push(r))}else n.push(r);else n.push(r)}else n.push(r)};for(var o in t)if(Array.isArray(t[o]))if(0===t[o].length)O("Empty array in TRASH root. ",t[o]),delete t[o];else{n=[];for(var a=0;a=0;c--)t[o].splice(n[c],1)}else O("An element in TRASH root is not an array. ",t[o]),delete t[o]}}(),function(){if(!u){Array.isArray(s[g])||(O("TEMPLATE was not an array"),s[g]=[]);var n=e.deduplicateString(s[g]);n.length!==s[g].length&&(s[g]=n);var t=s[g],r=i.getFiles([d]),o=[];t.forEach((function(n,a){if(i.isFile(n,!0)&&-1===r.indexOf(n)){if("string"==typeof n){var c=e.createRandomInteger();return s[h][c]={href:i.cryptor.encrypt(n)},void(t[a]=c)}if("number"==typeof n)s[h][n]||(O("An element in TEMPLATE doesn't have associated data",n),o.push(n))}else o.push(n)})),o.forEach((function(e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}))}}(),function(){"object"!=typeof s[h]&&(O("FILES_DATA was not an object"),s[h]={});var e=s[h],t=i.getFiles([d,m,"hrefArray"]),r=i.find([d]),a=[];for(var u in e)if(String(u)===String(Number(u))){var l=e[u=Number(u)];if(l&&"object"==typeof l)if(l.href||l.roHref){var v;try{v=l.href&&(-1!==l.href.indexOf("#")?l.href:i.cryptor.decrypt(l.href))}catch(e){}if(!v||-1!==v.indexOf("#")){var y,g=n.parsePadUrl(v||l.roHref);if(g.hash)if(g.type){if(v&&"pad"===g.hashData.type&&g.hashData.version)if("view"===g.hashData.mode)l.roHref=v,delete l.href;else if(l.roHref){var E=n.parsePadUrl(l.roHref);E.hash&&E.type||(y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y))}else y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y);if(0===g.hashData.version&&delete l.roHref,v&&"/"!==v.slice(0,1)&&(l.href=i.cryptor.encrypt(n.getRelativeHref(v))),l.ctime||(l.ctime=l.atime),l.title||(l.title=i.getDefaultName(g)),!l.channel)try{y||(y=n.getSecrets(g.type,g.hash,l.password)),l.channel=y.channel,console.log(l),O("Adding missing channel in filesData ",l.channel)}catch(e){console.error(e)}if(n.isValidChannel(l.channel)||console.error("Remove invalid channel",l.channel,l),!c&&!o.testMode||-1!==t.indexOf(u));else O("An element in filesData was not in ROOT, TEMPLATE or TRASH.",u,l),r[n.createChannelId()]=u}else O("Removing an element in filesData with a invalid type.",l),a.push(u);else O("Removing an element in filesData with a invalid href.",l),a.push(u)}}else O("Removing an element in filesData with a missing href.",l),a.push(u);else O("An element in filesData was not an object.",l),a.push(u)}else O("Invalid file ID in filesData.",u),a.push(u);a.forEach((function(e){A(e)}));var b=s[p],w=[];for(var D in b){var _=b[D=Number(D)];_&&"object"==typeof _&&_.href?!c&&!o.testMode||-1!==t.indexOf(D)||w.push(D):w.push(D)}w.forEach((function(e){f||delete s[p][e]}))}(),Object.keys(s).forEach((function(e){"/"===e.slice(0,1)&&delete s[e]})),function(){if(!u){"object"!=typeof s[E]&&(O("SHARED_FOLDER was not an object"),s[E]={});var e,t,r=s[E],o=i.getFiles([d,m]),a=i.find([d]);for(var c in r){var f;t=r[c],c=Number(c);try{f=t.href&&(-1!==t.href.indexOf("#")?t.href:i.cryptor.decrypt(t.href))}catch(e){}if((e=n.parsePadUrl(f||t.roHref))&&e.hash&&"undefined"!==e.hash){if(-1===o.indexOf(c))console.log("missing"+c),a[n.createChannelId()]=c}else delete r[c]}}}(),function(){if(!u){"object"!=typeof s[b]&&(O("SHARED_FOLDER_TEMP was not an object"),s[b]={});var e=s[b],n=s[E];for(var t in e)n[t]&&delete e[t]}}();var v=+new Date-r+"ms";JSON.stringify(s)===a?O("File system was clean.",v):O("Your file system was corrupted. It has been cleaned so that the pads you visit can be stored safely.",v)}},i},o};e.exports&&(e.exports=n(Z(),te(),je()))})()}(Le)),Le.exports}function Ue(){return Re||(Re=1,function(e){(()=>{const n=(e,n,t,r,o,a={})=>{let i=globalThis;var s={setCustomize:e=>{a=e.Messages,r.setCustomize(e)}},c=s.ROOT="root",u=s.UNSORTED="unsorted",f=s.TRASH="trash",l=s.TEMPLATE="template",d=s.SHARED_FOLDERS="sharedFolders",h=s.SHARED_FOLDERS_TEMP="sharedFoldersTemp",p=s.FILES_DATA=t.storageKey,v=s.OLD_FILES_DATA=t.oldStorageKey,y=s.STATIC_DATA="static";s.getDefaultName=function(e){var n=e.type;return a.type[n]+" - "+function(){if(i.Intl&&i.Intl.DateTimeFormat)return new i.Intl.DateTimeFormat(void 0,{weekday:"short",year:"numeric",month:"long",day:"numeric"}).format(new Date);return(new Date).toString().split(" ").slice(0,4).join(" ")}()};var m=s.createCryptor=function(e){var n={};if(!e)return n.encrypt=function(e){return e},n.decrypt=function(e){return e},n;try{var t=o.createEncryptor(e);n.encrypt=function(e){try{return"/file/#"===e.slice(0,7)?e:t.encrypt(e)}catch(e){return}},n.decrypt=function(e){try{return t.decrypt(e)}catch(e){return}}}catch(e){console.error(e)}return n};return s.getHref=function(e,n){if(e.href&&-1!==e.href.indexOf("#"))return e.href;if(e.href&&n){var t=n.decrypt(e.href);if(t&&-1!==t.indexOf("#"))return t}return e.roHref},s.reencrypt=function(e,n,t){if(t){var r=m(e),o=m(n);Object.keys(t[p]).forEach((function(e){var n=t[p][e]||{};if(n.href&&n.roHref&&!n.fileType){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[d]||{}).forEach((function(e){var n=t[d][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[h]||{}).forEach((function(e){var n=t[h][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}}))}else console.error("Nothing to reencrypt")},s.init=function(t,o){var i={};i.cryptor=m(o.editKey),i.setReadOnly=function(e,n){o.editKey=n,i.cryptor=m(n),i.cryptor.k=Math.random(),i.readOnly=e,i._setReadOnly&&i._setReadOnly(e)},i.readOnly=o.readOnly,i.reencrypt=s.reencrypt,i.getDefaultName=s.getDefaultName;var g=o.sframeChan,E=a.fm_newFolder||"New folder",b=a.fm_newFile||"New file";i.ROOT=c,i.STATIC_DATA=y,i.UNSORTED=u,i.TRASH=f,i.TEMPLATE=l,i.SHARED_FOLDERS=d,i.SHARED_FOLDERS_TEMP=h,i.FILES_DATA=p,i.OLD_FILES_DATA=v;var O=i.sharedFolder=o.sharedFolder;i.id=o.id;var A=function(){console.debug.apply(console,arguments)},w=i.log=o.log||A,D=o.logError||A,_=i.debug=o.debug||A;i.fixFiles=function(){};var T=i.error=function(){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"fixFiles",data:{}},(function(){})):("function"==typeof i.fixFiles&&i.fixFiles(),console.error.apply(console,arguments),i.fixFiles())};o.outer&&r.init(o,i,t),i.getStructure=function(){var e={};return e[c]={},e[f]={},e[p]={},e[l]=[],e[d]={},e};var S=i.getHref=function(e){return s.getHref(e,i.cryptor)},x=function(e){return null===e?"null":Array.isArray(e)?"array":typeof e};i.isValidDrive=function(e){var n=i.getStructure();return"object"==typeof e&&Object.keys(n).every((function(t){return e[t]&&x(n[t])===x(e[t])}))};var N=function(){return[l]},I=function(e,n){return e===n},C=i.isSharedFolder=function(e){return!O&&Boolean(t[d]&&t[d][e])},R=i.isFile=function(e,n){return!C(e)&&("number"==typeof e||(void 0!==t[v]||n)&&"string"==typeof e)},P=i.isFolderData=function(e){return"object"==typeof e&&!0===e.metadata};i.isReadOnlyFile=function(e){if(!R(e))return!1;var n=i.getFileData(e);return n.roHref?Boolean(n.roHref&&!n.href):void 0},i.isStaticFile=function(e){return Boolean(t[y]&&t[y][e])};var k=i.isFolder=function(e){return!P(e)&&("object"==typeof e&&!e.channel||C(e))};i.isFolderEmpty=function(e){return!!k(e)&&(0===Object.keys(e).length||!(1!==Object.keys(e).length||!P(e[Object.keys(e)[0]])))},i.hasSubfolder=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=k(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=k(e[o])?1:0;return t},i.hasFile=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=R(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=R(e[o])?1:0;return t},i.hasFolderData=function(e){for(var n in e)if(P(e[n]))return!0};var M=i.hasSubSharedFolder=function(e){for(var n in e){if(C(e[n]))return!0;if(k(e[n])&&M(e[n]))return!0}return!1},F=i.getFileData=function(n,r){if(n){var a,s;try{a=(t[y]||{})[n]}catch(e){console.error(e)}if(a){var c=r?a:e.clone(a);return r||(c.static=!0),c}try{s=t[p][n]||{}}catch(e){console.error(e),s={}}if(!r&&(s=JSON.parse(JSON.stringify(s))).href&&-1===s.href.indexOf("#"))if(o.editKey)try{s.href=i.cryptor.decrypt(s.href)}catch(e){delete s.href}else delete s.href;return s}};i.getFolderData=function(e){for(var n in e)if(P(e[n]))return e[n];return{}};var L=i.getTitle=function(e,n){if(C(e))return"??";var t=F(e);if(t){if(t.static)return t.name;if(e&&(t.href||t.roHref))return"title"===n?t.title:"name"===n?t.filename:t.filename||t.title||b;T("getTitle called with a non-existing file id: ",e,t)}else T("unable to retrieve data about the requested file: ",e,t)},H=i.comparePath=function(e,n){if(!(e&&n&&Array.isArray(e)&&Array.isArray(n)))return!1;if(e.length!==n.length)return!1;for(var t=!0,r=e.length-1;t&&r>=0;)t=e[r]===n[r],r--;return t},j=i.isSubpath=function(e,n){var t=n.slice(),r=e.slice(0,t.length);return H(t,r)},K=i.isPathIn=function(e,n){if(n){var t=n.indexOf("hrefArray");return-1!==t&&(n.splice(t,1),n=n.concat(N())),n.some((function(n){return Array.isArray(e)&&e[0]===n}))}},U=i.isInTrashRoot=function(e){return e[0]===f&&4===e.length},B=function(e,n){if(n){if(0===n.length)return e;var t=n.slice(),r=t.shift();if(void 0!==e[r])return B(e[r],t);_("Unable to find the key '"+r+"' in the root object provided:",e)}else T("Invalid path:\n",n,"\nin root\n",e)},V=i.find=function(e){return B(t,e)},Y=i.getFilesRecursively=function(e,n){for(var t in n=n||[],e)R(e[t])||C(e[t])?-1===n.indexOf(e[t])&&n.push(e[t]):P(e[t])||Y(e[t],n);return n},G={array:function(e){return t[e]||(t[e]=[]),t[e].slice()}};N().forEach((function(e){G[e]=function(){return G.array(e)}})),G.hrefArray=function(){var n=[];return O?n:(N().forEach((function(e){n=n.concat(G[e]())})),e.deduplicateString(n))},G[c]=function(){var e=[];return Y(t[c],e),e},G[f]=function(){var e=t[f],n=[],r=function(e){R(e.element)||C(e.element)?-1===n.indexOf(e.element)&&n.push(e.element):Y(e.element,n)};for(var o in e){if(!Array.isArray(e[o]))return void T("Trash contains a non-array element");e[o].forEach(r)}return n},G[v]=function(){var e=[];return t[v]?(t[v].forEach((function(n){n.href&&-1===e.indexOf(n.href)&&e.push(n.href)})),e):e},G[y]=function(){return t[y]?Object.keys(t[y]).map(Number).filter(Boolean):[]},G[p]=function(){return t[p]?Object.keys(t[p]).map(Number).filter(Boolean):[]},G[d]=function(){return t[d]?Object.keys(t[d]).map(Number).filter(Boolean):[]};var J=i.getFiles=function(n){var t=[];return n&&n.length||(n=[c,"hrefArray",f,v,p,d]),n.forEach((function(e){"function"==typeof G[e]&&(t=t.concat(G[e]()))})),e.deduplicateString(t)},q=i.getIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([p]).some((function(e){if(o(S(t[p][e]))===a||o(t[p][e].roHref)===a)return r=e,!0})),r};i.getSFIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([d]).some((function(e){if(o(S(t[d][e]))===a||o(t[d][e].roHref)===a)return r=e,!0})),r};var W=function(e,n){if(!K(e,[c,f]))return[];n=Array.isArray(n)?n:[n];var t={},r=V(e),o=function(e){Object.keys(e).forEach((n=>{t[n]||=[],Array.prototype.push.apply(t[n],e[n])}))};if(R(r)||C(r))return n.some((n=>{I(n,r)&&(t[n]||=[],t[n].push(e))})),t;if(k(r))for(var a in r){let t=e.slice();t.push(a),o(W(t,n))}return t},z=function(e,n){if(O)return{};if(!t[e])return{};var r=t[e].slice(),o={},a=-1;return n.forEach((n=>{for(;-1!==(a=r.indexOf(n,a+1));)o[n]||=[],o[n].push([e,a])})),o},Q=function(e,n){if(O)return[];var t=V(e),r={},o=function(e){Object.keys(e).forEach((n=>{r[n]||=[],Array.prototype.push.apply(r[n],e[n])}))};if(1===e.length&&"object"==typeof t&&Object.keys(t).forEach((function(r){var a=t[r];if(Array.isArray(a)){var i=e.slice();i.push(r),o(Q(i,n))}})),2===e.length){if(!Array.isArray(t))return[];t.forEach((function(t,a){var i=e.slice();i.push(a),i.push("element"),R(t.element)?n.some((e=>{I(e,t.element)&&(r[e]||=[],r[e].push(i))})):o(Q(i,n))}))}return e.length>=4&&o(W(e,n)),r},Z=i.findFiles=function(e){var n=W([c],e),t=z(l,e),r=Q([f],e);let o={};return e.forEach((e=>{o[e]=[]})),[n,t,r].forEach((e=>{Object.keys(e).forEach((n=>{o[n]||=[],Array.prototype.push.apply(o[n],e[n])}))})),o},X=i.findFile=function(e){return Z([e])[e]||[]};i.findChannels=function(e,n){var r=t[p],o=t[d],a=[p];return n&&a.push(d),J(a).filter((function(n){var t=r[n]||o[n]||{};return-1!==e.indexOf(t.channel)}))},i.search=function(r){if("string"!=typeof r)return[];r=r.trim();var o,a=[],s=t[p],u=t[d],f=r.toLowerCase();/^#/.test(f)&&(o=[f.slice(1).trim()]);J([p,d]).forEach((function(e){var n=s[e]||u[e];if(n)if(Array.isArray(n.tags)&&(t=n.tags,o&&t.length&&(t=t.map((function(e){return e.toLowerCase()})),o.some((function(e){return t.some((function(n){return n===e}))})))))a.push(e);else{var t,r=n.title||n.lastTitle;(r&&-1!==r.toLowerCase().indexOf(f)||n.filename&&-1!==n.filename.toLowerCase().indexOf(f))&&a.push(e)}}));var l=n.getRelativeHref(r);if(l){var h=q(l);h&&a.push(h)}a=e.deduplicateString(a);var v=[];a.forEach((function(e){v.push({id:e,paths:X(e),data:i.getFileData(e)})}));var y=[],m=function(e,n){for(var t in e)k(e[t])&&!C(e[t])&&(-1!==t.toLowerCase().indexOf(f)&&y.push({id:null,paths:[n.concat(t)],data:{title:t}}),m(e[t],n.concat(t)))};return m(t[c],[c]),y=y.sort((function(e,n){return e.data.title.toLowerCase()>n.data.title.toLowerCase()})),v=y.concat(v)},i.getRecentPads=function(){var e=t[p];return Object.keys(e).filter((function(n){return e[n]})).sort((function(n,t){return e[t].atime-e[n].atime})).map((function(e){return Number(e)}))},i.getOwnedPads=function(e){var n=t[p];return Object.keys(n).filter((function(t){return n[t].owners&&-1!==n[t].owners.indexOf(e)})).map((function(e){return Number(e)}))};var $=i.getAvailableName=function(e,n){if(void 0===e[n])return n;for(var t=n,r=1;void 0!==e[t];)t=n+"_"+r,r++;return t},ee=i.move=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"move",data:{paths:e,newPath:n}},t);else{var r=[];e.forEach((function(e){var t=e.slice();t.pop(),H(t,n)||(j(n,e)?w(a.fo_moveFolderToChildError):i.copyElement(e.slice(),n)&&r.push(e))})),i.delete(r,t)}};return i.restore=function(e,n){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"restore",data:{path:e}},n);else if(U(e)){var t=e.slice();t.pop();var r=V(t).path;ee([e],r,n)}},i.addFolder=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"addFolder",data:{path:e,name:n}},t);else{var r=V(e),o=$(r,n||E);r[o]={};var a=e.slice();a.push(o),t({newPath:a})}},i.delete=function(e,n,t){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"delete",data:{paths:e,nocheck:t}},n):(n=n||function(){},i.deleteMultiplePermanently(e,t,n))},i.emptyTrash=function(e){e=e||function(){},g?g.query("Q_DRIVE_USEROBJECT",{cmd:"emptyTrash"},e):(t[f]={},i.checkDeletedFiles(e))},i.ownedInTrash=function(e){return J([f]).map((function(n){var r=C(n)?t[d][n]:i.getFileData(n);if(r)return e(r.owners)?r.channel:void 0})).filter(Boolean)},i.rename=function(e,n,r){if(r=r||function(){},g)g.query("Q_DRIVE_USEROBJECT",{cmd:"rename",data:{path:e,newName:n}},r);else if(e.length<=1)D("Renaming `root` is forbidden");else{var o,i=V(e);if(k(i)&&!C(i)){var s=e.slice(),c=s.pop();if(!n||!n.trim()||c===n)return;var u=V(s);return void 0!==u[n]?void w(a.fo_existingNameError):(u[n]=i,delete u[c],void("function"==typeof r&&r()))}if(o=C(i)?t[d][i]:t[p][i]||t[y][i])return t[y][i]?n&&n.trim()?(o.name=n,void r()):void r():n&&""!==n.trim()?void(L(i,"name")!==n&&(o.filename=n,"function"==typeof r&&r())):(delete o.filename,void("function"==typeof r&&r()))}},i.getTagsList=function(){var e,n={},r=function(e){n[e]=n[e]?++n[e]:1};for(var o in t[p])(e=t[p][o]).tags&&Array.isArray(e.tags)&&e.tags.forEach(r);return n},i},s};e.exports&&(e.exports=n(Z(),te(),Y(),Ke(),M(),void 0))})()}(Fe)),Fe.exports}var Be,Ve,Ye,Ge={exports:{}},Je={exports:{}};function qe(){return Be||(Be=1,function(e){e.exports=function(e){var n,t=[],r=[],o=0,a=function(e){return o++,function(){for(e&&e.apply(null,arguments),o=(o||1)-1;!o&&t.length&&!n;)t.shift()(a)}};a.abort=function(){r.forEach(clearTimeout),n=1};var i={nThen:function(e){return n||(o?t.push(e):e(a)),i},orTimeout:function(e,s){if(n)return i;if(!s)throw Error("Must specify milliseconds to orTimeout()");var c,u=setTimeout((function(){for(;t.shift()!==c;);for(e(a),o=(o||1)-1;!o&&t.length;)t.shift()(a)}),s);return t.push(c=function(){var e=r.indexOf(u);if(e>-1)return r.splice(e,1),void clearTimeout(u);throw new Error("timeout not listed in array")}),r.push(u),i}};return i.nThen(e)}}(Je)),Je.exports}function We(){return Ve||(Ve=1,function(e){e.exports&&(e.exports=((e,n,t,r,o,a,i,s)=>{var c={},u={};return c.checkMigration=function(e,t,r,o){var a=n.once(n.mkAsync(o));if(t)if(e)if(t.version>=2)a();else if(t.migrateRo){var i,s=!1,c=setInterval((function(){if(t.version>=2)return s=!0,clearTimeout(i),clearInterval(c),void a()}),100);i=setTimeout((function(){clearInterval(c),r.migrateReadOnly((function(){s=!0,a()}))}),2e4),t.on("change",["version"],(function(){s||t.version>=2&&(s=!0,clearTimeout(i),clearInterval(c),a())}))}else r.migrateReadOnly(a);else a();else a()},c.migrate=function(e){var t=u[e];if(t){var r=t.teams;if(Array.isArray(r)&&r.length){var o=r[0];if(o.secondaryKey){var a=n.find(o,["store","manager","folders",o.id]);a&&a.proxy&&!a.proxy.version&&a.userObject.migrateReadOnly((function(){r.forEach((function(e){n.find(e,["store","manager","folders",e.id,"userObject"]).setReadOnly(!1,e.secondarykey)}))}))}}}},c.load=function(t,f,l,d){var h=n.once(n.mkAsync(d)),p=t.network,v=t.store,y=t.isNew,m=t.isNewChannel,g=v.id,E=v.handleSharedFolder,b=v.manager.user.userObject.getHref(l),O=e.parsePadUrl(b),A=e.getSecrets("drive",O.hash,l.password);if(!A.keys)return v.manager.deprecateProxy(f),void h(null);var w=A.keys.secondaryKey;o((function(e){t.cache&&r.getChannelCache(A.channel,e((function(n){if("EINVAL"===n)return e.abort(),v.manager.restrictedProxy(f,A.channel),void h(null)})))})).nThen((function(e){m(null,{channel:A.channel},e((function(n){if(n.isNew&&!y)return v.manager.deprecateProxy(f,A.channel,n.reason),e.abort(),void h(null)})))})).nThen((function(){var e=u[A.channel];if(e&&e.readOnly&&w&&c.upgrade(A.channel,A),e&&e.ready&&e.rt)return setTimeout((function(){v.manager.addProxy(f,e.rt,(function(){c.leave(A.channel,g)}),w),h(e.rt)})),e.teams.push({cb:h,store:v,id:f}),void(E&&E(f,e.rt));if(e&&!e.ready&&e.rt)return e.teams.push({cb:h,store:v,secondaryKey:w,id:f}),void(E&&E(f,e.rt));e=u[A.channel]={teams:[{cb:h,store:v,secondaryKey:w,id:f}],readOnly:!Boolean(w)};var n=l.owners,o={data:{},channel:A.channel,readOnly:!Boolean(w),crypto:a.createEncryptor(A.keys),userName:"sharedFolder",logLevel:1,ChainPad:s,classic:!0,network:p,Cache:r,metadata:{validateKey:A.keys.validateKey||void 0,owners:n},onRejected:t.Store&&t.Store.onRejected},d=e.rt=i.create(o);d.proxy.on("cacheready",(function(){e.teams&&(e.teams.forEach((function(n){d.cache=!0,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),t.updatePassword=!1,n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("ready",(function(){y&&!Object.keys(d.proxy).length&&(d.proxy.version=2),e.teams&&(e.teams.forEach((function(n){d.cache=!1,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("error",(function(n){if(n&&n.error){if("EDELETED"===n.error){try{e.teams.forEach((function(e){e.store.manager.deprecateProxy(e.id,A.channel,n.message),e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),e.cb()}))}catch(e){}return delete u[A.channel],void h()}if("ERESTRICTED"===n.error)return e.teams.forEach((function(e){e.store.manager.restrictedProxy(e.id,A.channel),e.cb()})),delete u[A.channel],void h()}})),E&&E(f,d)}))},c.upgrade=function(e,n){var t=u[e];if(t&&t.readOnly&&t.rt.setReadOnly&&n.keys&&n.keys.editKeyStr){var r=a.createEncryptor(n.keys);t.readOnly=!1,t.rt.setReadOnly(!1,r)}},c.leave=function(e,n){var t=u[e];if(t){var r,o=t.teams;Array.isArray(o)&&(o.some((function(e,t){if(e.store.id===n)return e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),r=t,!0})),void 0!==r&&(o.splice(r,1),o.length||t.rt&&t.rt.stop&&t.rt.stop()))}},c.updatePassword=function(r,a,i,s){var f=a.oldChannel,l=a.href,d=a.password,h=e.parsePadUrl(l),p=e.getSecrets(h.type,h.hash,d),v=u[f];if(v){if(v.rt&&v.rt.stop)try{v.rt.stop()}catch(e){}var y=o;v.teams.forEach((function(e){y=y((function(o){var a=e.store,s=e.id,u=n.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};if(s&&u[s]){var l=JSON.parse(JSON.stringify(u[s]));l.password=d,c.load({network:i,store:a,updatePassword:!0,Store:r,isNewChannel:r.isNewChannel},s,l,o()),a.rpc&&(a.rpc.unpin([f],o()),a.rpc.pin([p.channel],o()))}})).nThen})),y((function(){s()}))}else s({error:"ENOTFOUND"})},c.loadSharedFolders=function(e,n,r,a,i,s,u,f){var l=a[t.SHARED_FOLDERS]||{},d=Object.keys(l).length,h=1,p=s();u=u||function(){},o((function(t){Object.keys(l).forEach((function(o){var a=l[o];c.load({network:n,store:r,Store:e,cache:f,isNewChannel:e.isNewChannel},o,a,t((function(){u({progress:h,max:d}),h++})))}))})).nThen((function(){setTimeout(p)}))},c.isSharedFolderChannel=function(e){return Object.keys(u).includes(e)},c})(te(),Z(),Ue(),fe(),qe(),M(),g(),w()))}(Ge)),Ge.exports}function ze(){return Ye||(Ye=1,function(e){(()=>{const n=(e,n,t,r,o={},a,i)=>{var s=function(n,t,r,o,a,i){if(!n.folders[t]||i||n.folders[t].restricted){var s=function(e){var n={};for(var t in e.cfg)n[t]=e.cfg[t];return n}(n);s.sharedFolder=!0,s.id=t,s.editKey=a,s.rt=r.realtime,s.readOnly=Boolean(!a);var c=e.init(r.proxy,s);c.fixFiles&&c.fixFiles();var u=r.proxy;if(u.metadata&&u.metadata.title){var f=n.user.proxy[e.SHARED_FOLDERS][t];f&&(f.lastTitle=u.metadata.title)}return n.folders[t]={proxy:r.proxy,userObject:c,leave:o,restricted:u.restricted,offline:Boolean(r.cache)},u.on&&(u.on("disconnect",(function(){n.folders[t].offline=!0})),u.on("reconnect",(function(){n.folders[t].offline=!1}))),c}n.folders[t].offline&&!r.cache&&n.Store&&(n.folders[t].offline=!1,n.folders[t].userObject.fixFiles&&n.folders[t].userObject.fixFiles(),n.Store.refreshDriveUI())},c=function(e,n){var t=e.folders[n];t&&(t.leave(),delete e.folders[n])},u=function(t,r,o,a){if(!t.folders[r]||!t.folders[r].deleting){if(t.user.userObject.readOnly){return c(t,r),s(t,r,{proxy:{deprecated:!0}},(function(){})),void t.Store.refreshDriveUI()}if(o&&t.unpinPads([o],(function(){})),a&&"PASSWORD_CHANGE"!==a){let o=n.find(t,["user","proxy",e.SHARED_FOLDERS]),a=o[r]&&o[r].lastTitle;return a&&((e,n,t)=>{var r=e.store.mailbox;if(r){var o,a=e.cfg.teamId;o=a?e.store.modules.team.getTeamsData()[a]:e.Store.getMetadata(null,null,(()=>{})).user,r.sendTo("SF_DELETED",{sfId:n,team:a,title:t},{curvePublic:o.curvePublic,channel:o.notifications},(e=>{console.error(e)}))}})(t,r,a),delete o[r],void(t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI())}t.user.userObject.deprecateSharedFolder(r,a),c(t,r),t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI()}},f=function(e,n){c(e,n),s(e,n,{proxy:{restricted:!0,root:{},filesData:{}}},(function(){})),e.Store.refreshDriveUI()},l=function(e,n){return Array.isArray(n)&&-1!==n.indexOf(e.edPublic)},d=function(e){var n=[e.user.userObject],t=Object.keys(e.folders).map((function(n){return e.folders[n].userObject}));return Array.prototype.push.apply(n,t),n},h=function(e,n){var t=d(e),r=e.user.userObject;return t.some((function(e){if(Object.keys(e.getFileData(n)).length)return r=e,!0})),r},p=function(e,n){var t=Number(n.id);if(t)return e.user.userObject.findFile(t)[0]},v=function(n,t,r){var o=[];return n.user.userObject.findChannels([t],!0).forEach((function(t){var a=n.user.proxy[e.SHARED_FOLDERS][t];a&&!r&&(a=JSON.parse(JSON.stringify(a))),a||(a=n.user.userObject.getFileData(t,r)),o.push({id:t,data:a,userObject:n.user.userObject})})),Object.keys(n.folders).forEach((function(e){n.folders[e].userObject.findChannels([t]).forEach((function(t){o.push({id:t,fId:e,data:n.folders[e].userObject.getFileData(t,r),userObject:n.folders[e].userObject})}))})),o},y=function(e,n){var t=[],r=e.user.userObject.getIdFromHref(n);return r&&t.push({data:e.user.userObject.getFileData(r),userObject:e.user.userObject}),Object.keys(e.folders).forEach((function(r){var o=e.folders[r].userObject.getIdFromHref(n);o&&t.push({fId:r,data:e.folders[r].userObject.getFileData(o),userObject:e.folders[r].userObject})})),t},m=function(e,n){var t=[],r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);let i;if(a){i=e.findFile(n);let t=(o[a]||[])[0];if(!t)return;i.forEach((function(e){Array.prototype.unshift.apply(e,t)}))}else{let t=[n],a=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(t,a),o=e.findFiles(t),i=o[n]}Array.prototype.push.apply(t,i)})),t},g=function(e,n){var t={},r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);if(!e.id){let e=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(n,e)}var i=e.findFiles(n);if(e.id||(o=i),a){let e=(o[a]||[])[0];if(!e)return;Object.keys(i).forEach((n=>{i[n].forEach((n=>{Array.prototype.unshift.apply(n,e)}))}))}Object.keys(i).forEach((e=>{t[e]||=[],Array.prototype.push.apply(t[e],i[e])}))})),t},E=function(e,t,r){if(r)return e.user.userObject.findChannels(t);var o=[];return d(e).forEach((function(e){var n=e.findChannels(t);Array.prototype.push.apply(o,n)})),o=n.deduplicateString(o)},b=function(e,n,t){var r=d(e),o={};return r.some((function(e){if((o=e.getFileData(n,t))&&Object.keys(o).length)return!0})),o},O=function(t,r){var o;if(t.isHistoryMode&&!t.folders[r])o=!0;else if(!t.folders[r])return{};var a=o?{}:t.folders[r].proxy;Object.keys(a.metadata||{}).length>1&&(a.metadata={title:a.metadata.title});var i=n.clone(a.metadata||{});for(var s in t.user.proxy[e.SHARED_FOLDERS][r]||{})if(void 0!==t.user.proxy[e.SHARED_FOLDERS][r][s]){var c=n.clone(t.user.proxy[e.SHARED_FOLDERS][r][s]);if("href"===s&&-1===c.indexOf("#"))try{c=t.user.userObject.cryptor.decrypt(c)}catch(e){}"href"===s&&-1===c.indexOf("#")&&(c=void 0),i[s]=c}return i},A=function(e,n){var t,r={id:null,userObject:e.user.userObject,path:n};if(!Array.isArray(n)||n.length<=1)return r;for(var o=e.user.userObject,a=2;a{o=n.Messages,e.setCustomize(n)},create:function(n,t,r){var o={pinPads:t.pin,unpinPads:t.unpin,onSync:t.onSync,Store:t.Store,store:t.store,removeOwnedChannel:t.removeOwnedChannel,loadSharedFolder:t.loadSharedFolder,cfg:r,edPublic:t.edPublic,settings:t.settings,user:{proxy:n},folders:{}};r.removeProxy=function(e){c(o,e)},o.user.userObject=e.init(n,r);var a=function(e){return function(){return[].unshift.call(arguments,o),e.apply(null,arguments)}};return{addProxy:a(s),removeProxy:a(c),deprecateProxy:a(u),restrictedProxy:a(f),addSharedFolder:a(N),addPin:function(e,n){o.pinPads=e,o.unpinPads=n},removePin:function(){delete o.pinPads,delete o.unpinPads},command:a(P),getPadAttribute:a(M),setPadAttribute:a(k),getTagsList:a(F),getSecureFilesList:a(L),getSharedFolderData:a(O),getChannelsList:a(j),addPad:a(K),delete:a(I),deleteOwned:a(C),findChannel:a(v),findHref:a(y),findFile:a(m),getEditHash:a(S),user:o.user,folders:o.folders}},createInner:function(n,t,r,o){var a={cfg:o,sframeChan:t,edPublic:r,user:{proxy:n,userObject:e.init(n,o)},folders:{}},i=function(e){return function(){return[].unshift.call(arguments,a),e.apply(null,arguments)}};return{addProxy:i(s),removeProxy:i(c),setHistoryMode:i(le),rename:i(U),move:i(B),emptyTrash:i(V),addFolder:i(Y),addSharedFolder:i(G),addLink:i(J),restoreSharedFolder:i(q),convertFolderToSharedFolder:i(W),delete:i(z),deleteOwned:i(Q),restore:i(Z),setFolderData:i(X),updateStaticAccess:i($),getFileData:i(ne),find:i(re),getTitle:i(oe),isReadOnlyFile:i(ie),isStaticFile:i(ae),getFiles:i(se),search:i(ce),getRecentPads:i(ue),getOwnedPads:i(fe),getTagsList:i(F),findFile:i(m),findFiles:i(g),findChannels:i(ee),getSharedFolderData:i(O),getFolderData:i(de),isInSharedFolder:i(he),getUserObjectPath:i(te),isDuplicateOwned:i(Se),ownedInTrash:i(Te),isValidDrive:i(pe),isFile:i(ve),isFolder:i(ye),isSharedFolder:i(me),isFolderEmpty:i(ge),isPathIn:i(Ee),isSubpath:i(be),isInTrashRoot:i(Oe),comparePath:i(Ae),hasSubfolder:i(we),hasSubSharedFolder:i(De),hasFile:i(_e),user:a.user,folders:a.folders}}}};e.exports&&(e.exports=n(Ue(),Z(),te(),We(),void 0,Ae(),qe()))})()}(Me)),Me.exports}var Qe,Ze,Xe=ze(),$e=n({__proto__:null,default:r(Xe)},[Xe]),en=Ue(),nn=n({__proto__:null,default:r(en)},[en]),tn={exports:{}},rn={exports:{}};function on(){return Ze||(Ze=1,function(e){e.exports&&(e.exports=((e={},n={},t)=>{let r=[];const o=["sheet","doc","presentation"],a=a=>{e=a.AppConfig;const i=(n=a.ApiConfig).onlyOffice&&n.onlyOffice.availableVersions.includes(t.currentVersion);r=e.availablePadTypes.filter((e=>i||!o.includes(e)))};Object.keys(e).length&&a({AppConfig:e,ApiConfig:n});const i={setCustomize:a};return i.__defineGetter__("availableTypes",(function(){return n.appsToDisable?r.filter((e=>!n.appsToDisable.includes(e))):r})),i.__defineGetter__("appsToSelect",(function(){return r.filter((e=>!["drive","teams","file","contacts","convert"].includes(e)))})),i.isAvailable=e=>Array.isArray(i.availableTypes)&&i.availableTypes.includes(e),i})(void 0,void 0,(Qe||(Qe=1,function(e){e.exports&&(e.exports={currentVersion:"v7"})}(rn)),rn.exports)))}(tn)),tn.exports}var an,sn,cn=on(),un=n({__proto__:null,default:r(cn)},[cn]),fn={exports:{}},ln={exports:{}};function dn(){return an||(an=1,function(e){(()=>{const n=(e,n,t={},r)=>{const o=function(){if(Object.keys(t).length){var e,n=new URL(t.httpUnsafeOrigin);try{return(e=new URL(t.websocketPath,t.httpUnsafeOrigin)).protocol=n.protocol,e.origin}catch(e){return console.error(e),t.httpUnsafeOrigin}}};var a=o();var i=e=>JSON.parse(JSON.stringify(e)),s=function(e,t,r){var o=n.once(n.mkAsync(r));fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then((e=>{e.ok?e.text().then((e=>{o(void 0,n.tryParse(e))})):e.json().then().then((n=>{o(e.status,n)}))})).catch((e=>{o(e)}))},c=function(t,o,c){var u=i(o);u.publicKey=n.encodeBase64(t.publicKey),u.nonce=n.encodeBase64(r.randomBytes(24));var f,l,d=new URL("/api/auth/",a);e((function(e){s(d,u,e(((n,t)=>n?(e.abort(),console.error(n),t&&console.error(t),void c(n)):t.date&&t.txid?(f=t.txid,void(l=t.date)):(e.abort(),void c("REQUEST_REJECTED")))))})).nThen((function(e){var o=i(u);o.txid=f,o.date=l;var a=n.decodeUTF8(JSON.stringify(o)),h=r.sign.detached(a,t.secretKey),p=n.encodeBase64(h);s(d,{sig:p,txid:f},e(((n,t)=>{if(n)return e.abort(),console.error(n),t&&console.error(t),void c("RESPONSE_REJECTED",t);c(void 0,t)})))}))};return c.setCustomize=e=>{t=e.ApiConfig,a=o()},c};e.exports&&(e.exports=n(qe(),Z(),void 0,N()))})()}(ln)),ln.exports}function hn(){return sn||(sn=1,function(e){e.exports&&(e.exports=((e,n={},t,r)=>{var o={setCustomize:e=>{n=e.ApiConfig,t.setCustomize(e)}};o.join=e.uint8ArrayJoin,o.seed=function(){return r.hash(e.decodeUTF8("pewpewpew"))},o.genkeys=function(e){if(!(e instanceof Uint8Array))throw new Error("INVALID_SEED_FORMAT");if(!e||"number"!=typeof e.length||e.length<64)throw new Error("INVALID_SEED_LENGTH");var n=e.subarray(0,r.sign.seedLength),t=e.subarray(r.sign.seedLength,r.sign.seedLength+r.secretbox.keyLength);return{sign:r.sign.keyPair.fromSeed(n),symmetric:t}},o.keysToRPCFormat=function(n){try{var t=n.sign;return{edPrivate:e.encodeBase64(t.secretKey),edPublic:e.encodeBase64(t.publicKey)}}catch(e){return void console.error(e)}},o.encrypt=function(n,t,a){var i=e.decodeUTF8(t),s=r.randomBytes(r.secretbox.nonceLength);return o.join([[0],s,r.secretbox(i,s,a.symmetric)])},o.decrypt=function(n,t){var o=n.subarray(1,1+r.secretbox.nonceLength),a=n.subarray(1+r.secretbox.nonceLength),i=r.secretbox.open(a,o,t.symmetric);try{return JSON.parse(e.encodeUTF8(i))}catch(e){return void console.error(e)}},o.sign=function(e,n){return r.sign.detached(r.hash(e),n.sign.secretKey)},o.serialize=function(n,t){var r=o.encrypt(0,n,t),a=o.sign(r,t);return{publicKey:e.encodeBase64(t.sign.publicKey),signature:e.encodeBase64(a),ciphertext:e.encodeBase64(r)}},o.proveAncestor=function(n){var t=e.find(n,["sign","publicKey"]),o=e.find(n,["sign","secretKey"]);try{var a=r.sign.detached(t,o);return JSON.stringify([t,a].map(e.encodeBase64))}catch(e){return void console.error(e)}};var a=function(n){return e.encodeBase64(n).replace(/\//g,"-")};o.getBlockUrl=function(e){var t=a(e.sign.publicKey);return(n.fileHost||n.httpUnsafeOrigin||window.location.origin)+"/block/"+t.slice(0,2)+"/"+t},o.getBlockHash=function(e){return o.getBlockUrl(e)+"#"+a(e.symmetric)};var i=function(n){try{return e.decodeBase64(n.replace(/\-/g,"/"))}catch(e){return void console.error(e)}};return o.parseBlockHash=function(e){if("string"==typeof e){var n=e.split("#");if(2===n.length)try{return{href:n[0],keys:{symmetric:i(n[1])}}}catch(e){return void console.error(e)}}},o.checkRights=function(n,r){const o=e.mkAsync(r),{blockKeys:a,auth:i}=n;var s="MFA_CHECK";i&&i.type&&(s=`${i.type.toUpperCase()}_`+s),t(a.sign,{command:s,auth:i&&i.data},o)},o.writeLoginBlock=function(e,n){const{content:r,blockKeys:a,oldBlockKeys:i,auth:s,pw:c,session:u,token:f,userData:l}=e;var d="WRITE_BLOCK";s&&s.type&&(d=`${s.type.toUpperCase()}_`+d);var h=o.serialize(JSON.stringify(r),a);h.auth=s&&s.data,h.hasPassword=c,h.registrationProof=i&&o.proveAncestor(i),f&&(h.inviteToken=f),l&&(h.userData=l),t(a.sign,{command:d,content:h,session:u},n)},o.removeLoginBlock=function(e,n){const{reason:r,blockKeys:o,auth:a,edPublic:i}=e;var s="REMOVE_BLOCK";a&&a.type&&(s=`${a.type.toUpperCase()}_`+s),t(o.sign,{command:s,auth:a&&a.data,edPublic:i,reason:r},n)},o.updateSSOBlock=function(e,n){const{blockKeys:r,oldBlockKeys:a}=e;var i=a&&o.proveAncestor(a);t(r.sign,{command:"SSO_UPDATE_BLOCK",ancestorProof:i},n)},o})(Z(),void 0,dn(),N()))}(fn)),fn.exports}var pn,vn=hn(),yn=n({__proto__:null,default:r(vn)},[vn]),mn={exports:{}},gn={exports:{}};function En(){return pn||(pn=1,function(e){var n;n=function(){var e=function(n){if(Array.isArray(n))return n.map(e);if(n instanceof Object){var t=[],r=[];return Object.keys(n).forEach((function(e){/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce((function(t,r){return t[r]=e(n[r]),t}),{})}return n},n=JSON.stringify.bind(JSON);return function(t,r,o){var a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;var i=JSON.parse(a);return n(e(i),null,o)}},e.exports?e.exports=n():JSON.sortify=n()}(gn)),gn.exports}var bn,On={exports:{}},An={exports:{}};function wn(){return bn||(bn=1,function(e){e.exports&&(e.exports=((e,n,t,r,o)=>{var a={},i=a.createData=function(e,r){var o={channel:r||n.createChannelId(),displayName:e["cryptpad.username"],profile:e.profile&&e.profile.view,edPublic:e.edPublic,curvePublic:e.curvePublic,notifications:t.find(e,["mailboxes","notifications","channel"]),avatar:e.profile&&e.profile.avatar,badge:e.profile&&e.profile.badge,uid:e.uid};return!1===r&&delete o.channel,o},s=a.getFriend=function(e,n){if(n){if(n===e.curvePublic){var t=i(e);return delete t.channel,t}return e.friends?e.friends[n]:void 0}},c=a.getFriendList=function(e){return e.friends||(e.friends={}),e.friends},u=function(e,n){Object.keys(e).forEach((function(t){"me"!==t&&n(e[t],t,e)}))};return a.getFriendChannelsList=function(e){var n=[];return u(e.friends,(function(e){n.push(e.channel)})),n},a.declineFriendRequest=function(e,n,t){e.mailbox.sendTo("DECLINE_FRIEND_REQUEST",{},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},a.acceptFriendRequest=function(e,n,t){var r=s(e.proxy,n.curvePublic)||{},o=i(e.proxy,r.channel||n.channel);e.mailbox.sendTo("ACCEPT_FRIEND_REQUEST",{user:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},a.addToFriendList=function(e,n,t){var r=e.proxy,a=c(r),i=n.curvePublic;i!==r.curvePublic?(a[i]=n,o.whenRealtimeSyncs(e.realtime,(function(){t(),e.pinPads([n.channel],(function(e){e.error&&console.error(e.error)}))}))):t("E_MYKEY")},a.updateMyData=function(e,n){var r=i(e.proxy,!1);e.proxy.friends&&(e.proxy.friends.me=t.clone(r),delete e.proxy.friends.me.channel),e.modules.team&&e.modules.team.updateMyData(r);var o=function(n){n&&n.notifications&&(delete n.user,r.channel=n.channel,e.mailbox.sendTo("UPDATE_DATA",r,{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)})))};n?o(s(e.proxy,n)):u(e.proxy.friends||{},o)},a.removeFriend=function(e,n,t){var r=e.proxy,a=r.friends[n];a?a.notifications?e.mailbox.sendTo("UNFRIEND",{curvePublic:r.curvePublic},{channel:a.notifications,curvePublic:a.curvePublic},(function(i){i&&i.error?t(i):(e.messenger.onFriendRemoved(n,a.channel),delete r.friends[n],o.whenRealtimeSyncs(e.realtime,(function(){t(i)})))})):t({error:"EINVAL"}):t({error:"ENOENT"})},a})(M(),te(),Z(),Y(),je()))}(An)),An.exports}var Dn,_n,Tn,Sn={exports:{}},xn={exports:{}},Nn={exports:{}};function In(){return Dn||(Dn=1,function(e){e.exports&&(e.exports=function(e,n){var t=e.uid,r=e.tryParse,o=function(t,r){var o=e.decodeUTF8(JSON.stringify(t));return e.encodeBase64(n.sign.detached(o,r))},a=function(e,n,r){if("function"!=typeof r)throw new Error("expected callback");var o=e.network,a=o.historyKeeper;if("string"==typeof a){var i=t(),s=e.pending[i]=function(e,n){r(e,n)};return s.data=n,s.called=0,o.sendto(a,JSON.stringify([i,n]))}r("NO_HISTORY_KEEPER")},i=[],s=[],c=function(e){var n={network:e,connected:!0,anon:void 0,authenticated:[]};return i.push(e),s.push(n),e.on("message",(function(t,o){o===e.historyKeeper&&function(e,n){"string"!=typeof n&&console.error("received non-string message [%s]",n);var t=r(n);if(t){if(Array.isArray(t)&&!/(FULL_HISTORY|HISTORY_RANGE)/.test(t[0])){var o=t[0];"string"==typeof o&&(function(e,n){return!!e.anon&&"function"==typeof e.anon.pending[n]}(e,o)?function(e,n,t){var r=e.pending[n];"ERROR"===t[0]?r(t[1]):r(void 0,t.slice(1)),delete e.pending[n]}(e.anon,o,t.slice(1)):e.authenticated.some((function(e){var n=e.pending[o];return"function"==typeof n&&("ERROR"!==t[1]?(/\|/.test(t[1])&&e.cookie!==t[1]&&(e.cookie=t[1]),n(void 0,t.slice(2)),delete e.pending[o],!0):"NO_COOKIE"===t[2]?(e.send("COOKIE","",(function(t){if(t)return console.error(t),void n(t);e.resend(o)&&delete e.pending[o]})),!0):(n(t[2]),delete e.pending[o],!0))}))||console.error("UNHANDLED RPC MESSAGE",n))}}else console.error(new Error("could not parse message: %s",n))}(n,t)})),e.on("disconnect",(function(){n.connected=!1,n.anon&&(n.anon.connected=!1),n.authenticated.forEach((function(e){e.connected=!1}))})),e.on("reconnect",(function(){n.anon&&(n.anon.connected=!0),n.authenticated.forEach((function(e){e.connected=!0}))})),n},u=function(e){var n;return i.some((function(t,r){return e===t&&(n=r,!0)})),s[n]?s[n]:c(e)},f=function(n,r){if(!n)throw new Error("expected network context");var i,s=r.publicKeyString;return n.authenticated.some((function(e,n){return e.publicKey===s&&(i=n,!0)})),n.authenticated[i]?n.authenticated[i]:function(n,r){var i={network:n.network,publicKey:r.publicKeyString,timeouts:{},pending:{},cookie:null,connected:!0},s=i.send=function(n,t,s){var c=e.mkAsync(s);if(i.connected||"COOKIE"===n){var u=[n,t];i.cookie&&i.cookie.join?u.unshift(i.cookie.join("|")):u.unshift(i.cookie);var f=o(u,r.signKey);return u.unshift(r.publicKeyString),u.unshift(f),a(i,u,c)}c("DISCONNECTED")};return i.resend=function(e){var n=i.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++,n.data[2]=i.cookie,n.data[0]=o(n.data.slice(2),r.signKey);var a=t();i.pending[a]=n,delete i.pending[e];try{return i.network.sendto(i.network.historyKeeper,JSON.stringify([a,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},s.unauthenticated=function(n,t,o){var s=e.mkAsync(o);if(i.connected){var c=[null,r.publicKeyString,null,n,t];return i.cookie&&i.cookie.join?c[2]=i.cookie.join("|"):c[2]=i.cookie,a(i,c,s)}s("DISCONNECTED")},i.destroy=function(){Object.keys(i.timeouts).forEach((function(e){clearTimeout(e)}));var e=n.authenticated.indexOf(i);-1!==e&&n.authenticated.splice(e,1)},n.authenticated.push(i),i}(n,r)},l=function(n){return n.anon||function(n){var t={network:n.network,timeouts:{},pending:{},connected:!0};return n.anon=t,t.send=function(n,r,o){var i=e.mkAsync(o);if(t.connected)return a(t,[n,r],i);i("DISCONNECTED")},t.resend=function(e){var n=t.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++;try{return t.network.sendto(t.network.historyKeeper,JSON.stringify([e,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},t.destroy=function(){Object.keys(t.timeouts).forEach((function(e){clearTimeout(e)})),n.anon=void 0},t}(n)};return{create:function(n,t,r,o){if("function"!=typeof o)throw new Error("expected callback");var a,i=e.mkAsync(o);try{if(64!==(a=e.decodeBase64(t)).length)throw new Error("private key did not match expected length of 64")}catch(e){return void i(e)}try{if(32!==e.decodeBase64(r).length)return void i("expected public key to be 32 uint")}catch(e){return void i(e)}if(n){var s=u(n),c=f(s,{publicKeyString:r,signKey:a});c.send("COOKIE","",(function(e){e?i(e):i(void 0,{send:c.send,destroy:c.destroy})}))}else i("NO_NETWORK")},createAnonymous:function(n,t){var r=e.mkAsync(t);if("function"!=typeof r)throw new Error("expected callback");if(n){var o=l(u(n));r(void 0,{send:o.send,destroy:o.destroy})}else r("NO_NETWORK")}}}(Z(),N()))}(Nn)),Nn.exports}function Cn(){return _n||(_n=1,function(e){e.exports&&(e.exports=function(e,n){return{create:function(t,r,o,a){if("function"!=typeof o)throw new Error("Expected callback");var i=e.once(e.mkAsync(o));if(t)if(r){var s=r.edPrivate,c=r.edPublic;s&&c?n.create(t,s,c,(function(n,t){if(n)i(n);else{var r={};r.destroy=t.destroy,r.publicKey=c,r.send=t.send,r.pin=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("PIN",n,o):o("[TypeError] pin expects an array")},r.unpin=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("UNPIN",n,o):o("[TypeError] pin expects an array")},r.adminRpc=function(e,n){if(e.cmd){var r=[e.cmd,e.data];t.send("ADMIN",r,n)}else setTimeout((function(){n("[TypeError] admin rpc expects a command")}))},r.getServerHash=function(e){t.send("GET_HASH",c,(function(n,t){t&&t[0]?e(n,Array.isArray(t)&&t[0]||void 0):e("NO_HASH_RETURNED")}))},r.reset=function(n,r){var o=e.once(e.mkAsync(r));Array.isArray(n)?t.send("RESET",n,o):o("[TypeError] pin expects an array")},r.getFileListSize=function(e){t.send("GET_TOTAL_SIZE",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0]):e("INVALID_RESPONSE")}))},r.updatePinLimits=function(e){t.send("UPDATE_LIMITS",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.getLimit=function(e){t.send("GET_LIMIT",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.trimHistory=function(n,r){var o=e.once(e.mkAsync(r));"object"==typeof n&&n.channel&&n.hash?t.send("TRIM_HISTORY",n,(function(e){if(e)return o(e);o()})):o("INVALID_ARGUMENTS")},r.clearOwnedChannel=function(e,n){"string"==typeof e&&32===e.length?t.send("CLEAR_OWNED_CHANNEL",e,(function(e){if(e)return n(e);n()})):n("INVALID_ARGUMENTS")},r.removeOwnedChannel=function(e,n,r){if("string"!=typeof e||-1===[32,48].indexOf(e.length))return console.error("invalid channel to remove",e),void n("INVALID_ARGUMENTS");t.send("REMOVE_OWNED_CHANNEL",{channel:e,reason:r},(function(t,r){t?n(t):r&&r.length&&"OK"===r[0]?(n(),a&&a.clearChannel&&a.clearChannel(e)):n("INVALID_RESPONSE")}))},r.removePins=function(e){t.send("REMOVE_PINS",void 0,(function(n,t){n?e(n):t&&t.length&&"OK"===t[0]?e():e("INVALID_RESPONSE")}))},r.uploadComplete=function(e,n){t.send("UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.ownedUploadComplete=function(e,n){t.send("OWNED_UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.uploadStatus=function(e,n){"number"==typeof e?t.send("UPLOAD_STATUS",e,(function(e,t){if(e)n(e);else{var r=t[0];"boolean"==typeof r?n(void 0,r):n("INVALID_RESPONSE")}})):setTimeout((function(){n("INVALID_SIZE")}))},r.uploadCancel=function(e,n){t.send("UPLOAD_CANCEL",e,(function(e){e?n(e):n()}))},r.setMetadata=function(e,n){t.send("SET_METADATA",{channel:e.channel,command:e.command,value:e.value},n)},i(n,r)}})):i("INVALID_KEYS")}else i("INVALID_PROXY");else i("INVALID_NETWORK")}}}(Z(),In()))}(xn)),xn.exports}function Rn(){return Tn||(Tn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u)=>{var f=function(e,n,t){if(!e.done){if(e.cb(n&&n.error,t,n),e.done=!0,!e.hasNetwork){var o=r.find(e,["network","disconnect"]);"function"==typeof o&&o()}if(e.realtime&&e.realtime.stop)try{e.realtime.stop()}catch(e){console.error(e)}var a=r.find(e,["session","realtime","abort"]);"function"==typeof a&&(e.session.realtime.sync(),a())}},l=function(e,r){u((function(n){var o,a;e.hasNetwork||(o=n((function(e,n){e||(r.network=n)})),a=i.getWebsocketURL(),t.connect(a).then((function(e){o(null,e)}),(function(e){o(e)})))})).nThen((function(){e.realtime=n.start(r)}))},d=function(e,n,t,r){Array.isArray(t)&&t.length&&16===t[0].length&&Array.isArray(n.accessKeys)?(e.network.historyKeeper=t[0],u((function(t){n.accessKeys.forEach((function(n){c.create(e.network,n,t((function(e){console.log("done",n),e&&console.error(e)})))}))})).nThen((function(){r()}))):r(!0)},h=function(n,t){var r;return"string"==typeof n?r=o.getSecrets("pad",n,t.password):"object"==typeof n&&(r=n),r.keys||(r.keys=r.key),{websocketURL:i.getWebsocketURL(t.origin),channel:r.channel,validateKey:r.keys.validateKey||void 0,crypto:e.createEncryptor(r.keys),logLevel:0,initialState:t.initialState,Cache:s}},p=function(e){return"object"==typeof e},v=function(e,n){p(e)&&p(n)&&Object.keys(n).forEach((function(t){e[t]=n[t]}))};return{get:function(e,n,t,r){if("function"!=typeof n)throw new Error("Cryptget expects a callback");r=r||function(){};var o=h(e,t=t||{}),a={cb:n,accessKeys:t.accessKeys,hasNetwork:Boolean(t.network)};o.onRejected=function(e,n){d(o,a,e,n)},o.onReady=function(e){var n=a.session=e.realtime;a.network=e.network,r(1),f(a,void 0,n.getUserDoc())},o.onError=function(e){console.warn(e),f(a,e)},o.onChannelError=function(e){console.error(e),f(a,e)},o.onCacheReady=t.onCacheReady;var i=0;o.onMessage=function(){i++,r(Math.min(.99,i/100))},v(o,t),l(a,o)},put:function(e,n,t,r){if("function"!=typeof t)throw new Error("Cryptput expects a callback");var o=h(e,r=r||{}),i={cb:t,accessKeys:r.accessKeys,hasNetwork:Boolean(r.network)};o.onRejected=function(e,n){d(o,i,e,n)},o.onReady=function(e){var r=i.session=e.realtime;i.network=e.network,r.contentUpdate(n);var o=setTimeout((function(){t(new Error("Timeout"))}),15e3);a.whenRealtimeSyncs(r,(function(){clearTimeout(o);var e=r.getAuthDoc();r.abort(),f(i,void 0,e)}))},o.onChannelError=function(e){f(i,e)},v(o,r),l(i,o)}}};e.exports&&(e.exports=n(M(),y(),v(),Z(),te(),je(),j(),fe(),Cn(),qe(),w()))})()}(Sn)),Sn.exports}var Pn,kn={exports:{}},Mn={exports:{}};var Fn,Ln,Hn,jn={exports:{}};function Kn(){return Fn||(Fn=1,function(e){e.exports&&(e.exports=((e,n,t,r,o)=>{var a=function(e){var n=e.store.realtime.getLag().lag||0;return 20*(Math.max(0,n)+300)*(.5+Math.random())},i={},s={},c=function(e,n){var r=e.store.proxy.mutedUsers||{},o=t.find(n,["msg","author"]);return!!o&&Boolean(r[o])},u={};i.FRIEND_REQUEST=function(n,t,r,o){var a=r.msg.content.user||r.msg.content;if(c(n,r))o(!0);else if(u[r.msg.author])o(!0);else{if(u[r.msg.author]={type:t.type,hash:r.hash},e.getFriend(n.store.proxy,r.msg.author)||n.store.proxy.friends_pending[r.msg.author])return delete n.store.proxy.friends_pending[r.msg.author],void e.acceptFriendRequest(n.store,a,(function(t){t&&t.error?o():e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},a,(function(e){if(e)return console.error(e),void o(!0);n.store.messenger&&n.store.messenger.onFriendAdded(a),n.updateMetadata(),o(!0)}))}));o()}},s.FRIEND_REQUEST=function(e,n,t){var r=t.content.user||t.content;u[r.curvePublic]&&delete u[r.curvePublic]};var f={},l={};i.DECLINE_FRIEND_REQUEST=function(e,n,t,r){var o=t.msg.content.user||t.msg.content;o.curvePublic||(o.curvePublic=t.msg.author),setTimeout((function(){r(!0),e.store.proxy.friends_pending[t.msg.author]&&(delete e.store.proxy.friends_pending[t.msg.author],e.updateMetadata(),f[t.msg.author]||n.sendMessage({type:"FRIEND_REQUEST_DECLINED",content:{user:o}},(function(e){f[t.msg.author]={type:n.type,hash:e}})))}),a(e))},i.FRIEND_REQUEST_DECLINED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=l[o];delete l[o],f[o]?r(!0,a):(f[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_DECLINED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;f[r]&&delete f[r]},i.ACCEPT_FRIEND_REQUEST=function(n,t,r,o){var i=r.msg.content.user||r.msg.content;setTimeout((function(){o(!0),n.store.proxy.friends_pending[r.msg.author]&&(delete n.store.proxy.friends_pending[r.msg.author],e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},i,(function(e){e?console.error(e):(n.store.messenger&&n.store.messenger.onFriendAdded(i),n.updateMetadata(),n.store.modules.profile&&n.store.modules.profile.update(),l[r.msg.author]||t.sendMessage({type:"FRIEND_REQUEST_ACCEPTED",content:{user:i}},(function(e){l[r.msg.author]={type:t.type,hash:e}})))})))}),a(n))},i.FRIEND_REQUEST_ACCEPTED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=f[o];delete f[o],l[o]?r(!0,a):(l[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_ACCEPTED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;l[r]&&delete l[r]},i.CANCEL_FRIEND_REQUEST=function(e,n,t,r){var o=u[t.msg.author];o?r(!0,o):r(!0)},i.UNFRIEND=function(n,t,r,o){var a=r.msg.author,i=e.getFriend(n.store.proxy,a);i?(delete n.store.proxy.friends[a],delete n.store.proxy.friends_pending[a],n.store.messenger&&n.store.messenger.onFriendRemoved(a,i.channel),n.updateMetadata(),o(!0)):o(!0)},i.UPDATE_DATA=function(e,n,t,r){var o=t.msg,a=o.author,i=e.store.proxy.friends&&e.store.proxy.friends[a];i&&"object"==typeof o.content?(Object.keys(o.content).forEach((function(e){i[e]=o.content[e]})),e.store.messenger&&e.store.messenger.onFriendUpdate(a),e.updateMetadata(),r(!0)):r(!0)};var d=function(e,n){let t=e.store.data.blockHash,a=o.parseBlockHash(t).keys.symmetric;return r.encrypt(n,a)},h={};i.SHARE_PAD=function(e,t,r,o){var a=r.msg,i=r.hash,s=a.content;if(c(e,r))o(!0);else{var u,f=s.isStatic?s.href:n.hrefToHexChannelId(s.href,s.password),l=n.parsePadUrl(s.href),p=l.hashData&&l.hashData.mode||"n/a",v=h[f];if(v){if("edit"===v.mode&&"view"===p)return void o(!0);u=v.data}s.password&&(s.password=d(e,s.password)),h[f]={mode:p,data:{type:t.type,hash:i}},o(!1,u)}},s.SHARE_PAD=function(e,t,r,o){var a=r.content,i=n.hrefToHexChannelId(a.href,a.password),s=h[i];s&&s.data&&s.data.hash===o&&delete h[i]};var p=!1;i.SUPPORT_MESSAGE=function(e,n,t,r){p?r(!0):(p=!0,r())},s.SUPPORT_MESSAGE=function(){p=!1},i.REQUEST_PAD_ACCESS=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{var a=o.channel,i=e.store.manager.findChannel(a);if(i.length){var s,u,f=e.store.proxy.edPublic;i.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(f)&&e.data.href)return u=e.data.href,s=e.data.filename||e.data.title,!0}))?(o.title=s,o.href=u,r(!1)):r(!0)}else r(!0)}},i.GIVE_PAD_ACCESS=function(e,n,t,r){var o,a=t.msg.content,i=a.channel;e.store.manager.findChannel(i,!0).forEach((function(e){e.data&&!e.data.href&&(o||(o=e.data.filename||e.data.title),e.userObject.setHref(i,null,a.href))})),a.title=o||a.title,r(!1)},i.ADD_TO_ACCESS_LIST=function(e,n,t,r){var o=t.msg.content.channel;e.Store.getAllStores().forEach((function(n){var t=n.manager.findChannel(o);if(t.length){var r=t[0].data,a=t[0].id,i=n.id;e.Store.loadSharedFolder(i,a,r,(function(){}),!1)}})),r(!0)};var v={};i.ADD_OWNER=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{if(!(o.teamChannel||o.href&&o.title&&o.channel))return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;o.password&&(o.pw=o.password,o.password=d(e,o.password)),v[a]?r(!0):(v[a]={type:n.type,hash:t.hash},r(!1))}},s.ADD_OWNER=function(e,n,t){var r=t.content.channel||t.content.teamChannel;v[r]&&delete v[r]},i.RM_OWNER=function(e,n,t,r){var o=t.msg.content;if(!o.channel&&!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;if(o.teamChannel){var i=e.store.proxy.teams||{};Object.keys(i).some((function(e){if(i[e].channel===a)return i[e].owner=!1,!0}))}v[a]&&o.pending?r(!1,v[a]):r(!1)};var y={};i.INVITE_TO_TEAM=function(e,n,r,o){var a=r.msg.content;if(c(e,r))o(!0);else{if(!a.team)return console.log("Remove invalid notification"),void o(!0);var i=y[a.team.channel];if(i)return console.log("removing old invitation"),o(!1,i),void(y[a.team.channel]={type:n.type,hash:r.hash});var s=t.find(e,["store","proxy","teams"])||{};Object.keys(s).some((function(e){return s[e].channel===a.team.channel}))?o(!0):(y[a.team.channel]={type:n.type,hash:r.hash},o(!1))}},s.INVITE_TO_TEAM=function(e,n,r){var o=t.find(r,["content","team","channel"]);delete y[o]},i.KICKED_FROM_TEAM=function(e,n,t,r){var o=t.msg.content;if(!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);y[o.teamChannel]&&o.pending?r(!0,y[o.teamChannel]):r(!1)},i.INVITE_TO_TEAM_ANSWER=function(e,n,r,o){var a=r.msg,i=a.content;if(!i.teamChannel)return console.log("Remove invalid notification"),void o(!0);var s,c,u=t.find(e,["store","proxy","teams"])||{};if(Object.keys(u).some((function(e){var n=u[e];if(n.channel===i.teamChannel)return s=e,c=n,!0})),s){if(i.team=c,!i.answer)try{e.store.modules.team.removeFromTeam(s,a.author,!0)}catch(e){console.error(e)}var f=i.user||i;n.sendMessage({type:"INVITE_TO_TEAM_ANSWERED",content:{user:f,team:c,answer:i.answer}},(function(){})),o(!0)}else o(!0)},i.TEAM_EDIT_RIGHTS=function(e,n,r,o){var a=r.msg.content;if(!a.teamData)return console.log("Remove invalid notification"),void o(!0);var i,s=t.find(e,["store","proxy","teams"])||{};if(Object.keys(s).some((function(e){if(s[e].channel===a.teamData.channel)return i=e,!0})),i)try{e.store.modules.team.changeMyRights(i,a.state,a.teamData,(function(e){e||console.error("Can't update team rights"),o(!0)}))}catch(e){console.error(e)}else o(!0)},i.OWNED_PAD_REMOVED=function(e,n,t,r){var o=t.msg.content;if(!o.channel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel;e.store.manager.findChannel(a).forEach((function(n){var t=e.store.manager.findFile(n.id);e.store.manager.delete({paths:t},(function(){e.updateDrive()}))})),r(!0)},i.MOVE_TODO=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)},i.SAFE_LINKS_DEFAULT=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)};var m={};i.FORM_RESPONSE=function(e,n,t,r){var o,a,i=t.msg,s=t.hash,c=i.content,u=c.channel;if(u)if(function(e,n){return(e.store.proxy.mutedChannels||[]).includes(n)}(e,u))r(!0);else if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(u).some((function(e){if(e.data&&(!a||e.data.href))return a=e.data.href||e.data.roHref,o=e.data.filename||e.data.title,!!e.data.href||void 0}))})),a){c.href=a,c.title=o;var f=m[u],l=f?f.data:void 0;m[u]={data:{type:n.type,hash:s}},r(!1,l)}else r(!0);else r(!0)},s.FORM_RESPONSE=function(e,n,t,r){var o=t.content.channel,a=m[o];a&&a.data&&a.data.hash===r&&delete m[o]};var g={};i.COMMENT_REPLY=function(e,n,r,o){var a=r.msg,i=r.hash,s=a.content;if(t.find(e.store.proxy,["settings","pad","disableNotif"]))o(!0);else{var c,u,f=s.channel;if(f)if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(f).some((function(e){if(e.data&&(!u||e.data.href))return u=e.data.href||e.data.roHref,c=e.data.filename||e.data.title,!!e.data.href||void 0}))})),u){s.href=u,s.title=c;var l=g[f],d=l?l.data:void 0;g[f]={data:{type:n.type,hash:i}},o(!1,d)}else o(!0);else o(!0)}},s.COMMENT_REPLY=function(e,n,t,r){var o=t.content.channel,a=g[o];a&&a.data&&a.data.hash===r&&delete g[o]};var E,b,O={};i.MENTION=function(e,n,t,r){var o=t.msg,a=t.hash,i=o.content;if(c(e,t))r(!0);else{var s=i.channel;if(s){var u,f;e.Store.getAllStores().some((function(e){return e.manager.findChannel(s).some((function(e){if(e.data&&(!f||e.data.href))return f=e.data.href||e.data.roHref,u=e.data.filename||e.data.title,!!e.data.href||void 0}))})),i.href=f,i.title=u;var l=O[s],d=l?l.data:void 0;O[s]={data:{type:n.type,hash:a}},r(!1,d)}else r(!0)}},s.MENTION=function(e,n,t,r){var o=t.content.channel,a=O[o];a&&a.data&&a.data.hash===r&&delete O[o]},i.BROADCAST_MAINTENANCE=function(e,n,t,r){var o=t.msg.uid;e.Store.onMaintenanceUpdate(o),r(!0)},i.BROADCAST_SURVEY=function(e,n,t,r){var o=t.msg,a=o.content,i=o.uid,s=E;E={type:n.type,hash:t.hash},e.Store.onSurveyUpdate(i),r(!a.url,s)},i.BROADCAST_CUSTOM=function(e,n,t,r){var o=t.msg.uid,a=b;b={uid:o,type:n.type,hash:t.hash},r(!1,a)},i.BROADCAST_DELETE=function(e,n,t,r){var o=t.msg.content.uid;if(b&&b.uid===o)return r(!0,b),void(b=void 0);r(!0)};var A,w,D={};return i.SF_DELETED=function(e,n,t,r){var o=t.msg.content,a=o.team,i=o.sfId;if(D[i])r(!0);else if(D[i]=1,a){var s=e.store.proxy.teams[a];o.teamName=s.metadata&&s.metadata.name,r(!1)}else r(!1)},s.SF_DELETED=function(e,n,t){var r=t.content.sfId;delete D[r]},i.NEW_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);a.isAdmin&&i.addUserTicket(a,o),i.addAdminTicket(a,o)},i.NOTIF_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);if(a.isAdmin)return t.find(e,["store","proxy","support",a.channel])?(i.updateUserTicket(a),A?void o(!1,A):(A={channel:a.channel,type:n.type,hash:r.hash},void o(!1))):void o(!0);i.checkAdminTicket(a,(s=>{s?(i.updateAdminTicket(a),t.find(e.store.proxy,["settings","general","disableSupportNotif"])?o(!0):w?o(!1,w):(w={channel:a.channel,type:n.type,hash:r.hash},o(!1))):o(!0)}))},s.NOTIF_TICKET=function(e,n,t){var r=t.content.channel;A&&A.channel===r&&(A=void 0),w&&w.channel===r&&(w=void 0)},i.ADD_MODERATOR=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,o)},i.MODERATOR_NEW_KEY=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,(function(){o(!0)}))},{add:function(e,n,r,o){if(r.msg){var a=t.find(e,["store","proxy","curvePublic"]),s=t.find(r,["msg","content","user","curvePublic"])||t.find(r,["msg","content","curvePublic"]);if(s&&r.msg.author!==s&&r.msg.author!==a)return console.error("blocked"),void o(null,null,!0);var c=r.msg.type;if(i[c])try{i[c](e,n,r,o)}catch(e){console.error(e),o()}else o()}else o(null,null,!0)},remove:function(e,n,t,r){if(t){var o=t.type;if(s[o])try{s[o](e,n,t,r)}catch(e){console.error(e)}}}}})(wn(),te(),Z(),M(),hn()))}(jn)),jn.exports}function Un(){return Ln||(Ln=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c)=>{var u={setCustomize:n=>{e=n.Broadcast}},f=["notifications","supportteam","broadcast"],l=[],d="000000000000000000000000000000000",h=function(e,n,t,r,o){e.emit("MESSAGE",{type:n,content:t},r?[r]:e.clients,o)},p=function(e,n,t,r){e.emit("VIEWED",{type:n,hash:t},r||e.clients)},v=function(e){var n=e.store&&e.store.proxy;if(n.curvePrivate&&n.curvePublic)return{curvePrivate:n.curvePrivate,curvePublic:n.curvePublic}},y=u.sendTo=function(e,t,r,a,i){a=a||{};var s=i||function(e){e&&e.error&&console.error(e.error)};if(c.Mailbox){var u=n.find(e,["store","anon_rpc"]);if(u){var f={encrypt:function(e){return e}},l=d,h={uid:n.uid(),type:t,content:r};if(!/^BROADCAST/.test(t)){var p=v(e);if(!p)return void s({error:"missing asymmetric encryption keys"});if(!a||!a.channel||!a.curvePublic)return void s({error:"no notification channel"});if(l=a.channel,f=c.Mailbox.createEncryptor(p),"object"==typeof r&&!r.user){var y=o.createData(e.store.proxy,!1);r.user=y}h={type:t,content:r}}var m=JSON.stringify(h),g=f.encrypt(m,a.curvePublic);if(a.viewed){var E=n.find(e,["store","proxy","teams",a.viewed]);if(E){var b=g.slice(0,64),O=n.find(E,["keys","mailbox","viewed"]);Array.isArray(O)&&O.push(b)}}u.send("WRITE_PRIVATE_MESSAGE",[l,g],(function(e){s(e?{error:e}:{hash:g.slice(0,64)})}))}else s({error:"anonymous rpc session not ready"})}else s({error:"chainpad-crypto is outdated and doesn't support mailboxes."})};u.sendToAnon=function(e,t,r,o,a){var i=c.Nacl,s=i.randomBytes(32),u=i.box.keyPair.fromSecretKey(new Uint8Array(s)),f=n.encodeBase64(u.secretKey),l=n.encodeBase64(u.publicKey);y({store:{anon_rpc:e,proxy:{curvePrivate:f,curvePublic:l}}},t,r,o,a)};var m=function(e,t,o,a){var s=t.type,c=t.hash;if(/^REMINDER\|/.test(c)){a(),delete e.boxes.reminders.content[c],p(e,s,c,e.clients.filter((function(e){return e!==o})));var u=c.slice(9).split("-")[0],f=n.find(e,["store","proxy","hideReminders",u]);if(!f){var l=e.store.proxy.hideReminders=e.store.proxy.hideReminders||{};f=l[u]=l[u]||[]}var d=c.split("-")[1];d&&!f.includes(d)&&f.push(Number(d))}else{var h=e.boxes[s];if(h){var v,y,m=h.data||{},g=h.history.indexOf(c);-1!==g&&(0===g?(m.lastKnownHash=c,h.history.shift()):-1===m.viewed.indexOf(c)&&m.viewed.push(c));var E=[];h.history.some((function(e,n){if(-1===m.viewed.indexOf(e))return!0;v=n+1,E.push(e),y=e})),m.viewed=m.viewed.filter((function(e){return-1===E.indexOf(e)})),v&&(h.history=h.history.slice(v),m.lastKnownHash=y),Object.keys(h.content).forEach((function(n){-1!==h.history.indexOf(n)&&-1===m.viewed.indexOf(n)||(i.remove(e,h,h.content[n],n),delete h.content[n])})),r.whenRealtimeSyncs(e.store.realtime,(function(){a(),p(e,s,c,e.clients.filter((function(e){return e!==o})))}))}else a({error:"NOT_LOADED"})}},g=function(e,n,t,r,u){u=u||{};var f=e.boxes[n]={channel:t.channel,type:n,queue:[],history:[],content:{},sendMessage:function(n){if("object"==typeof n&&!n.user){var t=o.createData(e.store.proxy,!1);n.user=t}try{n=JSON.stringify(n)}catch(e){console.error(e)}f.queue.push(n)},data:t};if(c.Mailbox){var l=t.keys||v(e);if(l||t.decrypted){var d=t.decrypted?{encrypt:function(e){return e},decrypt:function(e){return e}}:c.Mailbox.createEncryptor(l);f.encryptor=d;var y,g={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:d,owners:"broadcast"===n?[]:u.owners||[e.store.proxy.edPublic],lastKnownHash:t.lastKnownHash};g.onConnectionChange=function(){},g.onConnect=function(t,r){f.sendMessage=function(t,o){var a;o=o||function(){};try{a=JSON.stringify(t)}catch(e){console.error(e)}r(a,(function(r,a){r?console.error(r):(f.history.push(a),t.ctime=+new Date,f.content[a]=t,h(e,n,{msg:t,hash:a}),o(a))}),l.curvePublic)},f.queue.forEach((function(e){f.sendMessage(e)})),f.queue=[]},f.onMessage=g.onMessage=function(r,o,s,c,l,d,p){if(l!==t.lastKnownHash&&l!==y){var v=p&&p.time;y=l;try{r=JSON.parse(r)}catch(e){console.error(e)}if(d&&(r.author=d),f.history.push(l),function(e,n){return-1===(n.viewed||[]).indexOf(e)&&e!==n.lastKnownHash}(l,t)){var g={msg:r,hash:l,time:v},E=f.ready;i.add(e,f,g,(function(t,o,i){o&&m(e,o,"",(function(){console.log("Notification handled automatically")})),i||t?m(e,{type:n,hash:l},"",(function(){console.log("Notification handled automatically")})):(r.ctime=v||0,f.content[l]=r,u.dump||h(e,n,g,null,(function(e){e&&e.msg&&E&&a.system(void 0,e.msg)})))}))}else if(0===Object.keys(f.content).length){t.lastKnownHash=l,f.history=[];var b=t.viewed.indexOf(l);-1!==b&&t.viewed.splice(b,1)}}},g.onReady=function(){var o=[];t.viewed.forEach((function(e,n){-1===f.history.indexOf(e)&&o.push(n)}));for(var a=o.length-1;a>=0;a--)t.viewed.splice(o[a],1);var s=function(t){i.remove(e,f,f.content[t],t),delete f.content[t],p(e,n,t)};e.store.proxy.on("change",["mailboxes",n],(function(e,n,t){var r;"lastKnownHash"===t[2]&&(f.history.some((function(e,t){if(r=t+1,s(e),e===n)return!0})),f.history=f.history.slice(r));"viewed"===t[2]&&s(n)})),f.ready=!0,r(f.content)},f.cpNf=s.start(g)}else console.error("missing asymmetric encryption keys")}else console.error("chainpad-crypto is outdated and doesn't support mailboxes.")};return u.init=function(r,o,s){var c={},u=r.store,v=u.proxy.mailboxes=u.proxy.mailboxes||{},E={Store:r.Store,store:u,pinPads:r.pinPads,updateMetadata:r.updateMetadata,updateDrive:r.updateDrive,mailboxes:v,emit:s,clients:[],boxes:{},req:{},loggedIn:u.loggedIn&&u.proxy.edPublic};return function(n,r){!r.notifications&&n.loggedIn&&(r.notifications={channel:t.createChannelId(),lastKnownHash:"",viewed:[]},n.pinPads([r.notifications.channel],(function(e){e.error&&console.error(e)}))),r.support&&delete r.support,r.broadcast||(r.broadcast={channel:d,lastKnownHash:e.lastBroadcastHash,decrypted:!0,viewed:[]})}(E,v),E.loggedIn&&function(e){var t=e.store.network;t.on("message",(function(r,o){if(o===t.historyKeeper){var a=JSON.parse(r);if(/HISTORY_RANGE/.test(a[0])){var i=a[1],s=e.req[i];if(s){var c=a[0],u=a[2],f=s.box;if("HISTORY_RANGE"===c){if(!Array.isArray(u))return;var l;if("broadcast"===s.box.type)l=n.tryParse(u[4]);else try{var d=f.encryptor.decrypt(u[4]);(l=JSON.parse(d.content)).author=d.author}catch(e){console.log(e)}var h=u[4].slice(0,64);e.emit("HISTORY",{txid:i,time:u[5],message:l,hash:h},[s.cId])}else"HISTORY_RANGE_END"===c&&(e.emit("HISTORY",{txid:i,complete:!0},[s.cId]),delete e.req[i])}}}}))}(E),E.boxes.reminders={content:{}},Object.keys(v).forEach((function(e){if(-1!==f.indexOf(e)){var n=v[e];-1===l.indexOf(e)?g(E,e,n,(function(){})):g(E,e,n,o((function(){})))}})),E.loggedIn&&Object.keys(u.proxy.teams||{}).forEach((function(e){var t=u.proxy.teams[e];if(t){var r=t.keys.mailbox||{};if(r.channel){var o={owners:[n.find(t,["keys","drive","edPublic"])]};g(E,"team-"+e,r,(function(){}),o)}}})),c.post=function(e,n,t){var r=E.boxes[e];r&&r.sendMessage({type:n,content:t,sender:u.proxy.curvePublic})},c.hideMessage=function(e,n){p(E,e,n.hash,E.clients)},c.showMessage=function(e,n,t,r){"reminders"===e&&n&&(E.boxes.reminders.content[n.hash]=n.msg,E.clients.length||(E.boxes.reminders.content[n.hash].requiresNotif=!0),p(E,e,n.hash,E.clients)),h(E,e,n,t,(function(e){a.system(void 0,e.msg),r&&r()}))},c.open=function(e,n,t,r,o){(-1!==f.indexOf(e)||r)&&g(E,e,n,t,o)},c.close=function(e,n){!function(e,n,t){t=t||function(){};var r=e.boxes[n];r?r.cpNf&&"function"==typeof r.cpNf.stop?(r.cpNf.stop(),Object.keys(r.content).forEach((function(t){i.remove(e,r,r.content[t],t),p(e,n,t,e.clients)})),delete e.boxes[n]):t("EINVAL"):t()}(E,e,n)},c.dismiss=function(e,n){m(E,e,"",n)},c.sendTo=function(e,n,t,r){E.loggedIn?y(E,e,n,t,r):r({error:"NOT_LOGGED_IN"})},c.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);e.clients.splice(t,1)}(E,e)},c.execCommand=function(e,n,t){var r=n.cmd,o=n.data;"SUBSCRIBE"!==r?"DISMISS"!==r?"SENDTO"!==r?"LOAD_HISTORY"!==r||function(e,n,t,r){var o=e.boxes[t.type];if(o){var a=["GET_HISTORY_RANGE",o.channel,{from:t.lastKnownHash,count:t.count,txid:t.txid}];"broadcast"===t.type&&(a=["GET_HISTORY_RANGE",o.channel,{to:t.lastKnownHash,txid:t.txid}]),e.req[t.txid]={cId:n,box:o};var i=e.store.network;i.sendto(i.historyKeeper,JSON.stringify(a)).then((function(){}),(function(e){console.error(e)}))}else r({error:"ENOENT"})}(E,e,o,t):y(E,o.type,o.msg,o.user,t):m(E,o,e,t):function(e,n,t,r){Object.keys(e.boxes).forEach((function(n){Object.keys(e.boxes[n].content).forEach((function(r){var o={msg:e.boxes[n].content[r],hash:r};h(e,n,o,t,(function(e){e.error||o.msg&&o.msg.requiresNotif&&(a.system(void 0,e.msg),delete o.msg.requiresNotif)}))}))})),-1===e.clients.indexOf(t)&&e.clients.push(t),r()}(E,0,e,t)},c},u};e.exports&&(e.exports=n(void 0,Z(),te(),je(),wn(),(Pn||(Pn=1,function(e){(()=>{const n=(e={})=>{let n=globalThis;var t={};e.requireConf=e.requireConf||{},t.setCustomize=n=>{e=n.ApiConfig};var r=n.location&&n.location.pathname.slice(1,-1),o=-1!==["code","slide","pad","kanban","whiteboard","diagram","sheet","poll","teams","form","doc","presentation"].indexOf(r)?"-"+r:"",a="/customize/favicon/main-favicon"+o+".png?"+e.requireConf.urlArgs,i="/customize/favicon/alt-favicon"+o+".png?"+e.requireConf.urlArgs,s="/customize/favicon/main-favicon"+o+".ico?"+e.requireConf.urlArgs,c="/customize/favicon/alt-favicon"+o+".ico?"+e.requireConf.urlArgs,u=n.document,f=t.isSupported=function(){return"function"==typeof n.Notification&&n.isSecureContext},l=t.hasPermission=function(){return"granted"===Notification.permission},d=t.getPermission=function(e){e=e||function(){},Notification&&"function"==typeof Notification.requestPermission?Notification.requestPermission((function(n){e("granted"===n)})):e(!1)},h=t.create=function(e,t,r){u&&!r?r=u.getElementById("favicon").getAttribute("data-main-favicon")||i:r||(r=i);var o=new Notification(t,{icon:r,body:e});return o.onclick=function(){if(u)try{parent.focus(),n.focus(),this.close()}catch(e){}},o};return t.system=function(e,n,t){if(f())return l()?h(e,n,t):void("denied"!==Notification.permission&&d((function(r){r&&h(e,n,t)})))},u&&!u.getElementById("favicon")&&function(){if(u){console.debug("creating favicon");var e={id:"favicon",type:"image/png",rel:"icon","data-main-favicon":a,"data-alt-favicon":i,href:a};if(!u.getElementById("favicon")){var n=u.createElement("link");Object.keys(e).forEach((function(t){n.setAttribute(t,e[t])})),u.head.appendChild(n)}if(!u.getElementById("favicon-ico")){var t=u.createElement("link");e.href=e.href.replace(/\.png/g,".ico"),e.id="favicon-ico",e.type="image/x-icon",Object.keys(e).forEach((function(n){t.setAttribute(n,e[n])})),u.head.appendChild(t)}}else console.error("document is not available in this context")}(),t.tab=function(e,r){if(u){var o="_pendingTabNotification",f=u.getElementById("favicon"),l=u.getElementById("favicon-ico"),d=a,h=i,p=s,v=c;f&&(d=f.getAttribute("data-main-favicon")||a,h=f.getAttribute("data-alt-favicon")||i,f.setAttribute("href",d)),l&&(p=l.getAttribute("data-main-favicon")||s,v=l.getAttribute("data-alt-favicon")||c,l.setAttribute("href",p));var y=function(e){return!!t[o]&&(n.clearInterval(t[o]),f&&f.setAttribute("href",e?h:d),l&&l.setAttribute("href",e?v:p),!0)};y();var m=function(){f&&f.setAttribute("href",f.getAttribute("href")===d?h:d),l&&l.setAttribute("href",l.getAttribute("href")===p?v:p),--r};return t[o]=n.setInterval((function(){if(r>0)return m();y(!0)}),e),m(),{cancel:y}}console.error("document is not available in this context")},t};e.exports&&(e.exports=n(void 0))})()}(Mn)),Mn.exports),Kn(),y(),M()))})()}(kn)),kn.exports}function Bn(){return Hn||(Hn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c,u)=>{let f=function(f,l,d,h){var p=f.version||0;c((function(){})).nThen((function(){var n,t,r,o,a;p<2&&(n="cryptpad.userlist-drawer",t="cryptpad.hide_poll_text",r="cryptpad.indentUnit",o="cryptpad.indentWithTabs",a=f.settings=f.settings||{},void 0!==f[r]&&(a.codemirror=a.codemirror||{},a.codemirror.indentUnit=f[r],delete f[r]),void 0!==f[o]&&(a.codemirror=a.codemirror||{},a.codemirror.indentWithTabs=f[o],delete f[o]),void 0!==f[n]&&(a.toolbar=a.toolbar||{},a.toolbar["userlist-drawer"]=f[n],delete f[n]),void 0!==f[t]&&(a.poll=a.poll||{},a.poll["hide-text"]=f[t],delete f[t]),e.send("Migrate-2",!0),f.version=p=2)})).nThen((function(){p<3&&(!function(){if(localStorage.CRYPTPAD_LANG){var e=localStorage.CRYPTPAD_LANG;f.settings.language=e}}(),e.send("Migrate-3",!0),f.version=p=3)})).nThen((function(){var n;p<4&&(n=f.settings=f.settings||{},void 0!==f.allowUserFeedback&&(n.general=n.general||{},n.general.allowUserFeedback=f.allowUserFeedback,delete f.allowUserFeedback),e.send("Migrate-4",!0),f.version=p=4)})).nThen((function(){p<5&&(!function(){var e=f.drive&&f.drive.filesData;if(e)for(var n in e)"number"!=typeof e[n].ctime&&(e[n].ctime=+new Date(e[n].ctime)),"number"!=typeof e[n].atime&&(e[n].atime=+new Date(e[n].atime))}(),e.send("Migrate-5",!0),f.version=p=5)})).nThen((function(t){var r,o,a,i,s;p<6&&(a=f.drive.filesData||{},i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if(r=a[e],o=n.parsePadUrl(r.href),r.href&&!r.channel){var i=n.getSecrets(o.type,o.hash,r.password);r.channel=i.channel,d(6,Math.round(100*t/s)),console.log("Adding missing channel in filesData ",r.channel)}})))}))})),i.nThen(t((function(){e.send("Migrate-6",!0),f.version=p=6}))))})).nThen((function(t){var r,o,a,i,s;p<7&&(a=f.drive.filesData,i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if((r=a[e]).href)if(-1!==r.href.indexOf("#"))if("pad"===(o=n.parsePadUrl(r.href)).hashData.type){if("view"===o.hashData.mode)r.roHref=r.href,delete r.href,console.log("Move href to roHref in filesData ",r.roHref);else{var i=n.getSecrets(o.type,o.hash,r.password),c=n.getViewHashFromKeys(i);c&&(r.roHref="/"+o.type+"/#"+c,console.log("Adding missing roHref in filesData ",r.href))}d(6,Math.round(100*t/s))}else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s))})))}))})),i.nThen(t((function(){e.send("Migrate-7",!0),f.version=p=7}))))})).nThen((function(){p<8&&(f.FS_hashes=t.deduplicateString(f.FS_hashes||[]),e.send("Migrate-8",!0),f.version=p=8)})).nThen((function(){p<9&&(!function(){var e=h.network,n={},t={store:h},o=r.createData(f),i=function(e){var t=n[e];if(t){try{t.wc.leave()}catch(e){}delete n[e]}};e.on("message",(function(r,s){try{!function(r,s){if(s===e.historyKeeper){var c=JSON.parse(r);if(!c.validateKey&&!c.owners||!c.channel){if(c.channel&&n[c.channel]){if(c.error&&"EINVAL"===c.error){var u=["GET_HISTORY",c.channel,{}];return void e.sendto(e.historyKeeper,JSON.stringify(u)).then((function(){}),(function(){}))}if(c.state&&1===c.state){o.channel=c.channel;var f=["UPDATE",o.curvePublic,+new Date,o],l=n[c.channel].encrypt(JSON.stringify(f));return n[c.channel].wc.bcast(l).then((function(){}),(function(e){console.error("Can't migrate this friend",n[c.channel].friend,e)})),void i(c.channel)}}else if(c.channel)return;var d=c[3];if(d&&n[d]){var h=n[d],p=h.decrypt(c[4]),v=JSON.parse(p);if("UPDATE"===v[0]){if(v[1]===o.curvePublic)return;var y=v[3];if(!y.notifications)return;h.friend.notifications=y.notifications,o.channel=d,a.sendTo(t,"UPDATE_DATA",o,{channel:y.notifications,curvePublic:y.curvePublic},(function(e){e&&e.error?console.error(e):console.log("friend migrated",h.friend)})),i(d)}}}}}(r,s)}catch(e){console.error(e)}}));var s=f.friends||{};Object.keys(s).forEach((function(t){if(44===t.length){var r=s[t];r.notifications||e.join(r.channel).then((function(t){var o=u.Curve.deriveKeys(r.curvePublic,f.curvePrivate),a=u.Curve.createEncryptor(o);n[r.channel]={wc:t,friend:r,decrypt:a.decrypt,encrypt:a.encrypt};var i={lastKnownHash:r.lastKnownHash},s=["GET_HISTORY",r.channel,i];e.sendto(e.historyKeeper,JSON.stringify(s)).then((function(){}),(function(e){console.error("Can't migrate this friend",r,e)}))}),(function(e){console.error("Can't migrate this friend",r,e)}))}}))}(),e.send("Migrate-9",!0),f.version=p=9)})).nThen((function(t){p<10&&function(){var s=h.proxy.todo;if(s){var u,l=t((function(){e.send("Migrate-10",!0),f.version=p=10})),d={network:h.network,initialState:"{}",metadata:{owners:h.proxy.edPublic?[h.proxy.edPublic]:[]}};c((function(e){o.get(s,e((function(n,t){if(n||!t)return e.abort(),void l();try{u=JSON.parse(t)}catch(e){}})),d)})).nThen((function(e){if(!u||"object"!=typeof u)return e.abort(),void l();var t={content:{data:{1:{id:"1",color:"color6",item:[],title:i.kanban_todo},2:{id:"2",color:"color3",item:[],title:i.kanban_working},3:{id:"3",color:"color5",item:[],title:i.kanban_done}},items:{},list:[1,2,3]},metadata:{title:i.type.todo,defaultTitle:i.type.todo,type:"kanban"}},c=4,p=!1;if((u.order||[]).forEach((function(e){var n=u.data[e];if(n&&n.task){p=!0;var r=n.state?"3":"1";t.content.data[r].item.push(c),t.content.items[c]={id:c,title:n.task},c++}})),!p)return e.abort(),void l();var v=n.createRandomHash("kanban"),y=n.getSecrets("kanban",v),m=n.getSecrets("todo",s);o.put(v,JSON.stringify(t),e((function(t){if(t)return e.abort(),void l();h.rpc&&(h.rpc.pin([y.channel],(function(){})),h.rpc.unpin([m.channel],(function(){})));var o=n.hashToHref(v,"kanban");h.manager.addPad(["root"],{title:i.type.todo,owners:d.metadata.owners,channel:y.channel,href:o,roHref:n.hashToHref(n.getViewHashFromKeys(y),"kanban"),atime:+new Date,ctime:+new Date},e((function(e){if(e)console.error(e);else{delete h.proxy.todo;var n=r.createData(f),t={store:h};a.sendTo(t,"MOVE_TODO",{user:n,href:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)}))}})))})),d)})).nThen((function(){l()}))}}()})).nThen((function(n){if(!(p>=11)){var o=function(){e.send("Migrate-11",!0),f.version=p=11};if(void 0===t.find(f,["settings","security","unsafeLinks"])){var i={store:h},s=r.createData(f);s.curvePublic?a.sendTo(i,"SAFE_LINKS_DEFAULT",{user:s},{channel:s.notifications,curvePublic:s.curvePublic},n((function(e){e&&e.error?console.error(e):o()}))):o()}else o()}})).nThen((function(){s.whenRealtimeSyncs(h.realtime,t.mkAsync(t.bake(l)))}))};return f.setCustomize=e=>{i=e.Messages},f};e.exports&&(e.exports=n(Ae(),te(),Z(),wn(),Rn(),Un(),void 0,je(),qe(),M()))})()}(On)),On.exports}var Vn,Yn={exports:{}};function Gn(){return Vn||(Vn=1,function(e){var n,t,r;e.exports&&(e.exports=(n=Rn(),t=Ue(),te(),r=je(),{anonDriveIntoUser:function(e,o,a){o&&e.loggedIn||"function"!=typeof a?n.get(o,(function(n,i){var s;if(n)console.error("Cannot migrate recent pads",n);else if(i){try{s=JSON.parse(i)}catch(e){return"function"==typeof a&&a(),void console.error("Cannot parsed recent pads",e)}if(s){var c=e.proxy,u=t.init(s.drive,{readOnly:!1,loggedIn:!0,outer:!0}),f=function(){u.fixFiles(!0);var n=e.manager;u.getFiles([u.FILES_DATA]).forEach((function(e){var t=u.getFileData(e),r=t.channel,o=n.findChannel(r);if(0===o.length)t&&n.addPad(null,t,(function(e){e&&console.error("Cannot import file:",t,e)}));else{if(!t.href)return;o.forEach((function(e){e.data&&!e.data.href&&e.userObject.setHref(r,null,t.href)}))}})),c.FS_hashes&&Array.isArray(c.FS_hashes)||(c.FS_hashes=[]),-1===c.FS_hashes.indexOf(o)&&c.FS_hashes.push(o),"function"==typeof a&&r.whenRealtimeSyncs(e.realtime,a)};u&&"function"==typeof u.migrate?u.migrate(f):(console.log("oldFo.migrate is not a function"),f())}else"function"==typeof a&&a()}else"function"==typeof a&&a()})):a()}}))}(Yn)),Yn.exports}var Jn=o(be);const qn=ie.mkEvent(!0),Wn=ie.mkEvent(!0),zn=ie.mkEvent(),Qn=ie.mkEvent(),Zn={init:e=>{var n;const{broadcast:t,store:r,account:o}=e,a=r.drive=r.drive||{};let i=null===(n=r.proxy)||void 0===n?void 0:n.drive;if((null==i?void 0:i.hash)||ae.createRandomHash("drive"),!i.hash)return a.proxy=i,o.onAccountCacheReady((()=>{qn.fire()})),o.onAccountReady((()=>{Wn.fire()})),{channel:"",onDriveCacheReady:qn.reg,onDriveReady:Wn.reg,onDisconnect:zn.reg,onReconnect:Qn.reg};throw new Error("NOT IMPLEMENTED")}};var Xn,$n=o(Object.freeze({__proto__:null,Drive:Zn})),et={exports:{}};function nt(){return Xn||(Xn=1,function(e){(()=>{const n=(e,n,t={},r={},o)=>{var a={setCustomize:e=>{t=e.Messages,r=e.AppConfig}},i=function(e,n){n.degraded||n.clients.forEach((function(t){var r=e.clients[t];if(r){var o={id:r.id,cursor:r.cursor};n.sendMsg(JSON.stringify(o))}}))},s=function(e,n,t){var o=n.members,a=r.degradedLimit||8;t.degraded=o.length-1>=a,e.emit("DEGRADED",{degraded:t.degraded},t.clients)},c=function(e,n,t,r){var a=n.channel,c=n.secret;c.keys.cryptKey&&(c.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=(e={},n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:n=>{e=n.ApiConfig}},d=s.Nacl,h=function(e,n,t,r){let o=Object.keys(e.clients).filter((t=>Boolean(e.clients[t].admin)===n));o.length&&e.emit(t,{channel:r},[o])},p=function(t,r,o,a){var i=n.mkAsync(a);if(r&&!t.adminRdyEvt)return void i("EFORBIDDEN");let s=e.httpUnsafeOrigin;n.fetchApi(s,"config",!0,(e=>{t.moderatorKeys=e.moderatorKeys,t.adminKeys=e.adminKeys;var a=e.supportMailboxKey;if(a){if(!r||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePublic"])===a)return r?t.adminRdyEvt.reg((()=>{i(null,{supportKey:a,myCurve:o.adminCurvePrivate||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePrivate"]),theirPublic:o.curvePublic,notifKey:o.curvePublic})})):void i(null,{supportKey:a,myCurve:t.store.proxy.curvePrivate,theirPublic:o.curvePublic||a,notifKey:a});i("EFORBIDDEN")}else i("E_NOT_INIT")}))},v=function(e,t,r,o){var a,c,u=n.once(n.mkAsync(o));i((n=>{p(e,r,t,n(((e,t)=>{if(e)return n.abort(),void u({error:e});a=t.theirPublic,c=t.myCurve})))})).nThen((()=>{var r,o=s.Curve.deriveKeys(a,c),i=s.Curve.createEncryptor(o),l={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:i,owners:[]},d=[];u=n.both((function(){r&&"function"==typeof r.stop&&r.stop()}),u),l.onMessage=function(e,n,t,r,o,a,i){var s=i&&i.time;try{e=JSON.parse(e)}catch(e){return void console.error(e)}e.time=s,a&&(e.author=a),d.push(e)},l.onError=u,l.onChannelError=u,l.onReady=function(){u(null,d)},r=f.start(l)}))},y=function(e,r,o,a){var c=n.find(e,["store","mailbox"]),u=n.find(e,["store","anon_rpc"]);if(c)if(u){var f,l,d,h=r.channel,v=r.title,y=r.ticket,m=+new Date;i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a({error:e});f=t.supportKey,l=t.theirPublic,d=t.myCurve})))})).nThen((e=>{var n=s.Curve.deriveKeys(l,d),t=s.Curve.createEncryptor(n),r=JSON.stringify(y),o=t.encrypt(r);u.send("WRITE_PRIVATE_MESSAGE",[h,o],e(((n,t)=>{if(n)return e.abort(),void a({error:n});m=t&&t[0]})))})).nThen((n=>{if(o){var t=e.adminDoc.proxy.tickets.active;if(t[h])return n.abort(),void a({error:"EEXISTS"});t[h]={title:y.title,restored:y.legacy,premium:!1,time:m,author:r.name,supportKey:f,lastAdmin:!0,authorKey:r.curvePublic,notifications:r.notifications}}})).nThen((n=>{o||(e.supportData[h]={time:+new Date,title:v,curvePublic:f},e.Store.onSync(null,n()))})).nThen((()=>{var i=o?r.notifications:t.getChannelIdFromKey(f);c.sendTo("NEW_TICKET",{title:v,channel:h,time:m,isAdmin:o,supportKey:f,premium:o?"":n.find(e,["store","account","plan"]),user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(n=>{console.error(n),n&&n.error&&delete e.supportData[h],a(n)})),c.sendTo("NOTIF_TICKET",{title:v,channel:h,time:m,isAdmin:o,isNewTicket:!0,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(()=>{}))}))}else a({error:"anonymous rpc session not ready"});else a({error:"E_NOT_READY"})},m=function(e,r,o,a){var c,u,f,l,d=n.find(e,["store","mailbox"]),h=n.find(e,["store","anon_rpc"]);d?h?r?.ticket?i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a(e);c=t.theirPublic,u=t.myCurve,f=t.notifKey})))})).nThen((e=>{var n=s.Curve.deriveKeys(c,u),t=s.Curve.createEncryptor(n),o=JSON.stringify(r.ticket),i=t.encrypt(o);h.send("WRITE_PRIVATE_MESSAGE",[r.channel,i],e(((n,t)=>{if(n)return e.abort(),void a(n);l=t&&t[0],a(void 0,l)})))})).nThen((()=>{var e=o?r.notifChannel:t.getChannelIdFromKey(f);e&&d.sendTo("NOTIF_TICKET",{isAdmin:o,title:r.ticket.title,isClose:r.ticket.close,channel:r.channel,time:l,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:e,curvePublic:f},(()=>{}))})):a("E_NO_DATA"):a("anonymous rpc session not ready"):a("E_NOT_READY")},g=function(e,r,o){var a=t.getSecrets("support",r),i={data:{},channel:a.channel,crypto:s.createEncryptor(a.keys),userName:"support",ChainPad:u,classic:!0,network:e.store.network,metadata:{validateKey:a.keys.validateKey||void 0}},f=e.adminDoc=c.create(i);f.proxy.on("ready",(function(){var r=f.proxy;if(r.tickets=r.tickets||{},r.tickets.active=r.tickets.active||{},r.tickets.closed=r.tickets.closed||{},r.tickets.pending=r.tickets.pending||{},e.adminRdyEvt.fire(),o(),!e.supportRpc)return;let a=function(e){if(!e.adminDoc||!e.supportRpc)return;let t=e.adminDoc.metadata&&e.adminDoc.metadata.channel,r=e.adminDoc.proxy.tickets,o=[t,...Object.keys(r.active),...Object.keys(r.pending),...Object.keys(r.closed)];return n.deduplicateString(o).sort()}(e),i=t.hashChannelList(a);e.supportRpc.getServerHash((function(n,t){n?console.warn(n):t!==i&&e.supportRpc.reset(a,(function(e){e&&console.warn(e)}))}))})),f.proxy.on("change",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")})),f.proxy.on("remove",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")}))},E=function(e,r,a){let s=a(),c=e.store.proxy,u=n.find(c,["mailboxes","supportteam","keys","curvePublic"]),f=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]);r||(e.adminRdyEvt=n.mkEvent(!0)),i((n=>{p(e,!1,{},n(((t,r)=>{if(setTimeout(s),t)n.abort();else if(r.theirPublic!==u){try{delete c.mailboxes.supportteam,e.store.mailbox.close("supportteam")}catch(e){}return delete e.adminRdyEvt,void n.abort()}})))})).nThen((t=>{!function(e,t){let r,a,i=n.mkAsync(t),s=e.store.proxy,c=n.find(s,["mailboxes","supportteam","keys","curvePrivate"]);if(c){try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(c));r=n.encodeBase64(e.secretKey),a=n.encodeBase64(e.publicKey)}catch(e){return void i(e)}o.create(e.store.network,{edPublic:a,edPrivate:r},((n,t)=>{n?i(n):(console.log("Support RPC ready, public key is ",a),e.supportRpc=t,i())}))}else i("EFORBIDDEN")}(e,t((e=>{e&&console.error("Support RPC not ready",e)})))})).nThen((n=>{let r=f.slice(0,24),o=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:r}});g(e,o,n())})).nThen((()=>{console.log("Support admin loaded")}))};var b=function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);i?e.store.mailbox.open("supportadmin",i,(function(t){e.store.mailbox.close("supportadmin",(function(){}));let r=n.clone(t||{}),a=[];Object.keys(r).forEach((n=>{let t=r[n];if("CLOSE"===t.type)return void(a.includes(t.content.id)||a.push(t.content.id));let o=t.author,i=t.content&&t.content.title;((e,n,t)=>{let r=e.adminDoc.proxy;return["active","pending","closed"].some((e=>{let o=r.tickets[e];return Object.keys(o).some((e=>{let r=o[e];return r.authorKey===n&&r.title===t&&r.restored}))}))})(e,o,i)&&(a.includes(t.content.id)||a.push(t.content.id))})),Object.keys(r).forEach((e=>{let n=r[e];n.content&&a.includes(n.content.id)&&delete r[e]})),o(r)}),!0,{dump:!0}):o({error:"ENOENT"})};let O=(e,t,r,o)=>{let a;try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(r));a=n.encodeBase64(e.publicKey)}catch(e){return void o(e)}e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",[t,a]]},o)},A=(e,n,t,r)=>{e.Store.adminRpc(null,{cmd:"GET_MODERATORS",data:{}},r)};return l.init=function(o,s,c){var u={};if(o.store&&o.store.modules&&o.store.modules.support)return o.store.modules.support;var f=o.store,l=f.proxy.support=f.proxy.support||{},g={moderatorKeys:e.moderatorKeys,adminKeys:e.adminKeys,supportData:l,store:o.store,Store:o.Store,emit:c,clients:{}};return n.find(f,["proxy","mailboxes","supportteam"])&&E(g,!1,s),u.ctx=g,u.removeClient=function(e){delete g.clients[e]},u.leavePad=function(){},u.addAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let o;i((r=>{p(e,!0,n,r(((e,n)=>{if(e)return r.abort(),void t(!0);o=n.supportKey})))})).nThen((()=>{var a=Math.floor(2e3*Math.random());setTimeout((()=>{var a=e.adminDoc.proxy;a.tickets.active[n.channel]||a.tickets.closed[n.channel]||a.tickets.pending[n.channel]?t(!0):(a.tickets.active[n.channel]={title:n.title,premium:n.premium,time:n.time,author:n.user&&n.user.displayName,supportKey:n.supportKey||o,authorKey:n.user&&n.user.curvePublic},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){t(!0)})),h(e,!0,"NEW_TICKET",n.channel),e.supportRpc&&e.supportRpc.pin([n.channel],(()=>{})))}),a)}))})):t(!0)}(g,e,n)},u.updateAdminTicket=function(e){!function(e,n){e.adminRdyEvt&&e.adminRdyEvt.reg((()=>{var t=Math.floor(2e3*Math.random());setTimeout((()=>{var t=e.adminDoc.proxy;let r=t.tickets.active[n.channel]||t.tickets.pending[n.channel];r&&(n.time<=r.time||(n.isClose&&(t.tickets.closed[n.channel]=r,delete t.tickets.active[n.channel],delete t.tickets.pending[n.channel]),r.time=n.time,r.lastAdmin=!1,h(e,!0,"UPDATE_TICKET",n.channel)))}),t)}))}(g,e)},u.updateAdminKey=function(e,r){((e,r,o)=>{let a=r.supportKey,s=t.getBoxPublicFromSecret(a),c=e.store.proxy;const u=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]),f=n.find(c,["mailboxes","supportteam","keys","curvePublic"]);p(e,!1,{},((t,r)=>{if(t)return void o(!0);if(s!==r.theirPublic)return void o(!0);if(u===a||f===s)return void o(!0);let c=n.find(e,["store","mailbox"]);try{e.adminDoc&&e.adminDoc.stop(),c&&c.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)}catch(e){console.error(e)}e.Store.addAdminMailbox(null,{version:2,priv:a},(n=>{n&&n.error?o(!0):i((n=>{E(e,!0,n),e.adminRdyEvt.reg((()=>{h(e,!0,"UPDATE_RIGHTS"),o(!1)}))}))}))}))})(g,e,r)},u.checkAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy,o=r.tickets.active[n.channel]||r.tickets.pending[n.channel];t(o)})):t(!0)}(g,e,n)},u.addUserTicket=function(e,n){!function(e,n,t){if(!e.supportData)return void t(!0);let r=n.channel;e.supportData[r]={time:n.time,title:n.title,curvePublic:n.supportKey},e.Store.onSync(null,(function(){t(!0)}))}(g,e,n)},u.updateUserTicket=function(e){!function(e,n){if(h(e,!1,"UPDATE_TICKET",n.channel),n.isClose){let t=e.supportData[n.channel];if(!t)return;t.closed=!0}}(g,e)},u.execCommand=function(e,o,s){var c=o.cmd,u=o.data;"MAKE_TICKET"!==c?"GET_MY_TICKETS"!==c?"REPLY_TICKET"!==c?"CLOSE_TICKET"!==c?"DELETE_TICKET"!==c?"MAKE_TICKET_ADMIN"!==c?"LIST_TICKETS_ADMIN"!==c?"LOAD_TICKET_ADMIN"!==c?"REPLY_TICKET_ADMIN"!==c?"CLOSE_TICKET_ADMIN"!==c?"MOVE_TICKET_ADMIN"!==c?"GET_RECORDED"!==c?"SET_RECORDED"!==c?"USE_RECORDED"!==c?"SEARCH_ADMIN"!==c?"FILTER_TAGS_ADMIN"!==c?"SET_TAGS_ADMIN"!==c?"GET_LEGACY"!==c?"DUMP_LEGACY"!==c?"CLEAR_LEGACY"!==c?"RESTORE_LEGACY"!==c?"GET_PRIVATE_KEY"!==c?"DISABLE_SUPPORT"!==c?"ROTATE_KEYS"!==c?"ADD_MODERATOR"!==c?s({error:"NOT_SUPPORTED"}):function(e,t,r,o){let a=e.store.proxy;var i=n.find(e,["store","mailbox"]);let s=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),c=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]),u=n.find(a,["mailboxes","supportteam","lastKnownHash"]),f=a.edPublic;p(e,!1,{},((n,r)=>{n?o({error:n}):r.theirPublic===s&&e.moderatorKeys.includes(f)?i.sendTo("ADD_MODERATOR",{supportKey:c,lastKnownHash:u},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{o()})):o({error:"EFORBIDDEN"})}))}(g,u,0,s):function(e,r,o,s){let c,u=n.once(n.mkAsync(s)),f=e.store.proxy,l=f.edPublic;const h=d.box.keyPair(),v=n.encodeBase64(h.publicKey),y=n.encodeBase64(h.secretKey),m=n.find(f,["mailboxes","supportteam","keys","curvePrivate"]),g=n.find(f,["mailboxes","supportteam","keys","curvePublic"]);if(!y||!v)return void u({error:"INVALID_KEY"});let b;i((n=>{p(e,!1,{},n(((e,t)=>{if("E_NOT_INIT"!==e)return e?(u({error:e}),void n.abort()):void(c=t.theirPublic)})))})).nThen((n=>{if(!e.adminKeys.includes(l))return n.abort(),void u({error:"EFORBIDDEN"})})).nThen((n=>{if(c)return e.moderatorKeys.includes(l)?g!==c?(n.abort(),void u({error:"EFORBIDDEN"})):void 0:(n.abort(),void u({error:"EINVAL"}))})).nThen((n=>{c&&e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;b=e.adminDoc.metadata&&e.adminDoc.metadata.channel;let o=y.slice(0,24),i=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:o}}),s={network:e.store.network,initialState:"{}"};(r.oldKeys=r.oldKeys||{})[g]={curvePrivate:m,rotatedOn:+new Date,rotatedBy:l},a.put(i,JSON.stringify(r),n((e=>{if(e)return n.abort(),void u({error:e})})),s)}))})).nThen((n=>{O(e,v,y,n((e=>{if(e&&e.error)return n.abort(),void u(e)})))})).nThen((()=>{if(!c)return;e.adminDoc&&e.adminDoc.stop();let t=n.find(e,["store","mailbox"]);t&&t.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)})).nThen((n=>{e.Store.addAdminMailbox(null,{version:2,priv:y},n((t=>{if(t&&t.error)return n.abort(),c?O(e,g,m,(()=>{u(t)})):void u(t)})))})).nThen((t=>{if(!c)return;let r=n.find(e,["store","mailbox"]);A(e,0,0,t((e=>{if(e&&e.error)return void u({success:!0,noNotify:!0});let n=e&&e[0];Object.keys(n||{}).forEach((e=>{let t=n[e];r.sendTo("MODERATOR_NEW_KEY",{supportKey:y},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{}))}))})))})).nThen((n=>{E(e,!0,n)})).nThen((n=>{b&&e.Store.adminRpc(null,{cmd:"ARCHIVE_DOCUMENT",data:{id:b,reason:"Deprecated support pad"}},n())})).nThen((()=>{u({success:!0})}))}(g,0,0,s):function(e,t,r,o){let a,s=n.once(n.mkAsync(o)),c=e.store.proxy.edPublic;i((n=>{p(e,!1,{},n((e=>{if(e)return s({error:e}),void n.abort()})))})).nThen((n=>{if(!e.adminKeys.includes(c))return n.abort(),void s({error:"EFORBIDDEN"})})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ARCHIVE_SUPPORT",data:{}},n((e=>{if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",["",""]]},n((function(e){if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{A(e,0,0,n((e=>{if(!e||e.error)return n.abort(),void s();a=e[0]||{}})))})).nThen((()=>{let n=i;Object.keys(a).forEach((t=>{n=n((n=>{e.Store.adminRpc(null,{cmd:"REMOVE_MODERATOR",data:t},n((e=>{e&&e.error&&console.error("Error removing moderator data",t,e.error)})))})).nThen})),n((()=>{s()}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),s=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]);p(e,!1,{},((e,n)=>{e?o({error:e}):(i&&n.theirPublic!==i&&(s=void 0),o({curvePrivate:s,curvePublic:n.theirPublic}))}))}(g,0,0,s):function(e,r,o,a){let i=e.store.proxy,s=n.find(i,["mailboxes","supportadmin"]);if(!s)return void a({error:"ENOENT"});if(!e.adminRdyEvt)return void a({error:"EFORBIDDEN"});let c=r.messages,u=r.hashes,f=c[0],l=c[c.length-1];f?e.adminRdyEvt.reg((()=>{let r={name:n.find(f,["sender","name"]),notifications:n.find(f,["sender","notifications"]),curvePublic:n.find(f,["sender","curvePublic"]),channel:t.createChannelId(),title:f.title,time:l.time,ticket:{legacy:!0,title:f.title,sender:f.sender,messages:c}};y(e,r,!0,(n=>{n&&n.error?a(n):(u.forEach((e=>{s.viewed.push(e)})),e.Store.onSync(null,(function(){a({done:!0})})))}))})):a({error:"EINVAL"})}(g,u,0,s):function(e,n,t,r){let o=e.store.proxy;e.store.mailbox.close("supportadmin",(function(){delete o.mailboxes.supportadmin,e.Store.onSync(null,(function(){r({done:!0})}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);if(!i)return void o({error:"ENOENT"});let s=n.clone(i);s.lastKnownHash=void 0,s.viewed=[],e.store.mailbox.open("supportadmin",s,(function(n){e.store.mailbox.close("supportadmin",(function(){})),o(n)}),!0,{dump:!0})}(g,0,0,s):b(g,0,0,s):((e,n,t,o)=>{e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,a=n.channel;(t.active[a]||t.pending[a]||t.closed[a]).tags=n.tags||[],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){let e=[];["active","pending","closed"].forEach((n=>{let r=t[n];Object.keys(r).forEach((n=>{(r[n].tags||[]).forEach((n=>{e.includes(n)||e.push(n)}))}))})),o({done:!0,allTags:e})}))})):o({error:"EFORBIDDEN"})})(g,u,0,s):((e,n,t,r)=>{if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.tags||[];e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy.tickets;if(!o.length)return void r({all:!0});let t=[];["active","pending","closed"].forEach((e=>{let r=n[e];Object.keys(r).forEach((e=>{(r[e].tags||[]).some((e=>o.includes(e)))||t.push(e)}))})),r({tickets:t})}))})(g,u,0,s):((e,t,r,o)=>{if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=t.tags||[],i=(t.text||"").toLowerCase();e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,r={},s=(e,t,o)=>{let a=n.clone(t);a.category=o,r[e]=a};["active","pending","closed"].some((e=>{let o=t[e];return Object.keys(o).some((t=>{let c=o[t];if(a.length&&!(c.tags||[]).some((e=>a.includes(e))))return;let u=n.hexToBase64(t).slice(0,10);if(i===u)return r={},s(t,c,e),!0;(!i||c.title.toLowerCase().includes(i))&&s(t,c,e)}))})),o({tickets:r})}))})(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.id;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=(n.recorded=n.recorded||{})[o];t&&(t.count=(t.count||0)+1),r()}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.id,i=n.content,s=Boolean(n.remove);e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.recorded=n.recorded||{};s?delete t[a]:t[a]={content:i,count:0},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({done:!0})}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy,r=t.recorded=t.recorded||{};o({messages:n.clone(r)})})):o({error:"EFORBIDDEN"})}(g,0,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.channel,i=n.from,s=n.to;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.tickets[i],c=n.tickets[s];if(!i||!s)return void o({error:"EINVAL"});let u=t[a];u&&!c[a]?(c[a]=u,delete t[a],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({moved:!0})}))):o({error:"CANT_MOVE"})}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[a]&&(n.adminCurvePrivate=t.oldKeys[a].curvePrivate),m(e,n,!0,(t=>{if(t)o({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=+new Date,i.lastAdmin=!0,a.tickets.closed[n.channel]=i,delete a.tickets.active[n.channel],delete a.tickets.pending[n.channel],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({closed:!0})}))}}))}))}(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[o]&&(n.adminCurvePrivate=t.oldKeys[o].curvePrivate),m(e,n,!0,((t,o)=>{if(t)r({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=o,i.lastAdmin=!0,r({sent:!0})}}))}))}(g,u,0,s):function(e,t,r,o){let a=t.supportKey;e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;r.oldKeys&&r.oldKeys[a]&&(t.adminCurvePrivate=r.oldKeys[a].curvePrivate),v(e,t,!0,(function(r,a){if(r)return void o({error:r});var i=e.adminDoc.proxy;if(!Array.isArray(a)||!a.length)return void o(a);a.sort(((e,n)=>e.time-n.time));let s=a[a.length-1],c=a.some((e=>{let r=n.find(e,["sender","curvePublic"]);if(t.curvePublic===r)return n.find(e,["sender","quota","plan"])}));var u=i.tickets.active[t.channel];u&&(s.legacy&&(s=Array.isArray(s.messages)&&s.messages[s.messages.length-1]),u.time=s.time,u.premium=c,s.sender&&(u.lastAdmin=!s.sender.blockLocation),s.close&&(i.tickets.closed[t.channel]=u,delete i.tickets.active[t.channel],h(e,!0,"UPDATE_TICKET",t.channel))),o(a)}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?(e.clients[r]||(e.clients[r]={admin:!0}),e.adminRdyEvt.reg((()=>{var r=e.adminDoc.proxy;return"pending"===t.type?o(n.clone(r.tickets.pending)):"closed"===t.type?o(n.clone(r.tickets.closed)):void o(n.clone(r.tickets.active))}))):o({error:"EFORBIDDEN"})}(g,u,e,s):function(e,n,t,r){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{y(e,n,!0,r)})):r({error:"EFORBIDDEN"})}(g,u,0,s):function(e,n,t,r){let o=e.supportData,a=n.channel;o[a]&&o[a].closed?(delete o[a],r({deleted:!0})):r({error:"ENOTCLOSED"})}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{closed:!0})}))}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{sent:!0})}))}(g,u,0,s):function(e,t,r,o){var a=[],s=i;e.clients[r]||(e.clients[r]={admin:!1}),Object.keys(e.supportData).forEach((function(t){s=s((r=>{var o=n.clone(e.supportData[t]);v(e,{channel:t,curvePublic:o.curvePublic},!1,r(((n,r)=>{if(n){if("EDELETED"===n.type)return void delete e.supportData[t];o.error=n}else o.messages=r,r.length&&r[r.length-1].close&&(e.supportData[t].closed=!0,o.closed=!0);o.id=t,a.push(o)})))})).nThen})),s((()=>{a.sort(((e,n)=>e.closed&&n.closed?e.time-n.time:e.closed?1:n.closed?-1:e.time-n.time)),o({tickets:a})}))}(g,0,e,s):function(e,n,t,r){y(e,n,!1,r)}(g,u,0,s)},u},l};e.exports&&(e.exports=n(void 0,Z(),te(),je(),Cn(),Rn(),qe(),M(),g(),w(),y()))})()}(rt)),rt.exports}var at,it={exports:{}};function st(){return at||(at=1,function(e){(()=>{const n=e=>{var n={},t=function(n,t,r,o){var a=t.channel,i=t.secret;i.keys.cryptKey&&(i.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=()=>{var e={},n=function(e,n,t){var r=e.clients[n];if(r){var o=e.channels[r.channel];o?(t(),o.history.forEach((function(t){e.emit("MESSAGE",{msg:t,validateKey:o.validateKey},[n])})),e.emit("HISTORY_SYNCED",{},[n])):t({error:"ENOCHAN"})}else t({error:"ENOENT"})};return e.init=function(e,t){var r={},o={store:e,emit:t,channels:{},clients:{}};return r.removeClient=function(e){!function(e,n){var t,r=function(e){return e!==n};for(var o in e.channels)(t=e.channels[o]).clients=t.clients.filter(r),0===t.clients.length&&(t.wc&&t.wc.leave(),delete e.channels[o]);if(e.clients[n]){var a=e.clients[n].channel,i=e.channels[a];i&&e.emit("LEAVE",{id:n},[i.clients[0]]),delete e.clients[n]}}(o,e)},r.leavePad=function(e){!function(e,n){Object.keys(e.channels).some((function(t){var r=e.channels[t];if(r.padChan===n)return r.wc&&r.wc.leave(),delete e.channels[t],!0}))}(o,e)},r.execCommand=function(e,t,r){var a=t.cmd,i=t.data;"SEND_MESSAGE"!==a?"UPDATE_HASH"!==a?"OPEN_CHANNEL"!==a?"GET_HISTORY"!==a?"REENCRYPT"!==a||function(e,n,t,r){var o=n.channel,a=e.store.network,i=function(e){var t=a.historyKeeper,o={metadata:n.metadata},i=["GET_HISTORY",e.id,o];a.sendto(t,JSON.stringify(i)),n.msgs.forEach((function(n){e.bcast(n)})),e.leave(),r()};e.store.anon_rpc.send("IS_NEW_CHANNEL",o,(function(e,n){var t;e?r({error:e}):(n&&n.length&&"object"==typeof n[0]?t=n[0].isNew:r({error:"INVALID_RESPONSE"}),t?a.join(o).then(i,(function(e){r({error:e})})):r({error:"EEXISTS"}))}))}(o,i,0,r):n(o,e,r):function(e,t,r,o){var a=t.channel,i=t.padChan,s=e.store.network,c=!0,u=e.clients[r];if(u)o();else{u=e.clients[r]={channel:a};var f=e.channels[a];if(f)return u.id||(u.id=f.wc.myID+"-"+r),n(e,r,(function(){e.emit("READY",f.clients,[r])})),f.clients.push(r),void o();var l=Math.floor(1e6*Math.random()),d=function(n){e.channels[a]=e.channels[a]||{history:[],validateKey:t.validateKey},(f=e.channels[a]).padChan=i,u.id||(u.id=n.myID+"-"+r),f.clients&&f.clients.forEach((function(t){e.clients[t]&&(e.clients[t].id=n.myID+"-"+t)})),n.on("join",(function(){})),n.on("leave",(function(){})),n.on("message",(function(n){f.history.push(n),e.emit("MESSAGE",{msg:n,validateKey:f.validateKey},f.clients)})),f.wc=n,f.sendMsg=function(e,t){t=t||function(){};var r=e.slice(0,64);n.bcast(e).then((function(){f.history.push(e),f.lastKnownHash=r,t()}),(function(e){t({error:e})}))},c&&(f.clients=[r],f.lastCpHash=t.lastCpHash,c=!1,o());var d=s.historyKeeper,h={txid:l,lastKnownHash:f.lastKnownHash||f.lastCpHash,metadata:{validateKey:t.validateKey,owners:t.owners,expire:t.expire}},p=["GET_HISTORY",n.id,h];d&&s.sendto(d,JSON.stringify(p)).then((function(){}),(function(e){console.error(e)}))};s.on("message",(function(n,t){if(e.channels[a]&&t===s.historyKeeper){var r;try{r=JSON.parse(n)}catch(e){}if(r&&!(r.txid&&r.txid!==l||r.channel&&r.channel!==a))if(r.validateKey&&r.channel)f.validateKey||(f.validateKey=r.validateKey);else if(r.state&&1===r.state&&r.channel)e.emit("READY",f.clients,f.clients);else if(!(r.error&&r.channel||Array.isArray(r)&&r[0]&&r[0]!==l||(n=r[4],r[3]!==a))){var o=n.slice(0,64);o!==f.lastKnownHash&&o!==f.lastCpHash&&(f.lastKnownHash=o,e.emit("MESSAGE",{msg:n},f.clients),f.history.push(n))}}})),s.join(a).then(d,(function(e){o({error:e})})),s.on("reconnect",(function(){e.channels[a]&&s.join(a).then(d,(function(e){console.error(e)}))}))}}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=n,s=-1;a.history.some((function(e,n){if(e.slice(0,64)===i)return s=n+1,!0})),-1!==s&&(a.history=a.history.slice(s)),r()}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=function(o){o&&o.error?r(o):(e.emit("MESSAGE",{msg:n.msg},a.clients.filter((function(e){return e!==t}))),r())};n.isCp?a.sendMsg(n.isCp,i):a.sendMsg(n.msg,i)}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r)},r},e};e.exports&&(e.exports=n())})()}(ut)),ut.exports}var lt,dt={exports:{}};function ht(){return lt||(lt=1,function(e){(()=>{const n=(e,n,t,r,o,a,i)=>{var s={};return s.init=function(s,c,u){var f={},l=s.store;if(l.loggedIn&&l.proxy.edPublic){var d={Store:s.Store,store:l,pinPads:s.pinPads,updateMetadata:s.updateMetadata,emit:u,onReadyHandlers:[],clients:[]};return d.profile=l.proxy.profile=l.proxy.profile||{},function(e,t){var r=e.profile;if(r.edit&&r.view)setTimeout(t);else{var o=n.createRandomHash("profile"),a=n.getSecrets("profile",o);e.pinPads([a.channel],(function(e){e.error?t(e.error):(r.edit=n.getEditHashFromKeys(a),r.view=n.getViewHashFromKeys(a),setTimeout(t))}))}}(d,c((function(r){r||function(r){var s=r.profile,c=n.getSecrets("profile",s.edit),u=a.createEncryptor(c.keys),f={data:{},network:r.store.network,channel:c.channel,crypto:u,owners:[r.store.proxy.edPublic],ChainPad:i,validateKey:c.keys.validateKey||void 0,userName:"profile",classic:!0},l=o.create(f);l.proxy.on("create",(function(){})).on("ready",(function(){l.proxy.name=r.store.proxy[t.displayNameKey]||"",r.listmap=l,l.proxy.curvePublic||(l.proxy.curvePublic=r.store.proxy.curvePublic),l.proxy.notifications||(l.proxy.notifications=e.find(r.store.proxy,["mailboxes","notifications","channel"])),l.proxy.edPublic||(l.proxy.edPublic=r.store.proxy.edPublic),r.onReadyHandlers.length&&(r.onReadyHandlers.forEach((function(e){try{e(l.proxy)}catch(e){console.error(e)}})),r.onReadyHandlers=[])})).on("change",[],(function(){r.emit("UPDATE",l.proxy,r.clients)}))}(d)}))),f.setName=function(e){!function(e,n){e.listmap.proxy.name=n,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.listmap&&e.emit("UPDATE",e.listmap.proxy,e.clients)}))}(d,e)},f.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1)}(d,e)},f.update=function(){d.listmap&&d.emit("UPDATE",d.listmap.proxy,d.clients)},f.execCommand=function(e,n,t){console.log(n);var o=n.cmd,a=n.data;"SUBSCRIBE"!==o?"SET"!==o||function(e,n,t,o){var a=n.key,i=n.value;a&&(e.listmap.proxy[a]=i,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.emit("UPDATE",e.listmap.proxy,e.clients.filter((function(e){return e!==t}))),"badge"===a&&e.Store.set(null,{key:["profile","badge"],value:i||void 0},(()=>{})),o(e.listmap.proxy)})))}(d,a,e,t):function(e,n,t,r){-1===e.clients.indexOf(t)&&e.clients.push(t),e.listmap?r(e.listmap.proxy):e.onReadyHandlers.push((function(e){r(e)}))}(d,0,e,t)},f}},s};e.exports&&(e.exports=n(Z(),te(),Y(),je(),g(),M(),w()))})()}(dt)),dt.exports}var pt,vt={exports:{}},yt={exports:{}};function mt(){return pt||(pt=1,function(e){e.exports&&(e.exports=function(e,n,t,r,o,a){var i={},s=function(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))},c=function(e){return e.slice(0,64)},u=function(n,t){var r=e.find(t,[n,"role"]);return-1!==["OWNER","ADMIN"].indexOf(r)},f=function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&!!function(e){return-1!==["OWNER","ADMIN","MEMBER","VIEWER"].indexOf(e)}(t)&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))},l=function(e){return"string"==typeof e&&44===e.length},d=i.commands={};d.ADD=function(e,n,t){if(!s(e))throw new Error("INVALID ARGS");if(!t.internal.initialized)throw new Error("UNITIALIZED");if(void 0===t.state.members)throw new Error("CANNOT_ADD_TO_UNITIALIZED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ALREADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="MEMBER"),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if("string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.RM=function(n,t,r){if(!Array.isArray(n))throw new Error("INVALID_ARGS");if(void 0===r.state.members)throw new Error("CANNOT_RM_FROM_UNITIALIZED_ROSTER");var o=r.state.members;n.forEach((function(n){if(!l(n))throw new Error("INVALID_CURVE_KEY");if(n!==t){var r=o[n].role;if(!function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))}(t,r,o))throw new Error("INSUFFICIENT_PERMISSIONS")}}));var a=!1;return n.forEach((function(e){o[e]&&(a=!0,delete o[e])})),a},d.DESCRIBE=function(n,t,o){if(!n||"object"!=typeof n||Array.isArray(n))throw new Error("INVALID_ARGUMENTS");if(void 0===o.state.members)throw new Error("NOT_READY");var a=o.state.members;Object.keys(n).forEach((function(r){if(!l(r))throw new Error("INVALID_ID");if(!a[r])throw new Error("NOT_PRESENT");if(!function(n,t,r){if(!r[t])return!1;if(n===t&&r[t])return!0;var o=e.find(r,[n,"role"]),a=e.find(r,[t,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&"OWNER"!==a)}(t,r,a))throw new Error("INSUFFICIENT_PERMISSIONS");var o=n[r];if(!s(o))throw new Error("INVALID_ARGUMENTS");var i=e.clone(a[r]);if("string"==typeof o.role&&!function(n,t,r,o){return!(n!==t||!o[t])&&("MEMBER"===e.find(o,[n,"role"])?"VIEWER"===r:void 0)}(t,r,o.role,a)&&!f(t,o.role,a))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof i.displayName&&"string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.displayName))throw new Error("INVALID_DISPLAYNAME");if("string"!=typeof i.notifications&&"string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.notifications))throw new Error("INVALID_NOTIFICATIONS")}));var i=!1;return Object.keys(n).forEach((function(t){var o=e.clone(a[t]),s=n[t];Object.keys(s).forEach((function(e){void 0===o[e]||null!==s[e]?o[e]=s[e]:delete o[e]})),r(o)!==r(a[t])&&(i=!0,a[t]=o)})),i},d.CHECKPOINT=function(e,n,t){if(!s(e))throw new Error("INVALID_CHECKPOINT_STATE");if(!t.internal.initialized){t.state=e;var o=t.state.metadata=t.state.metadata||{};return o.topic=o.topic||"",o.name=o.name||"",o.avatar=o.avatar||"",t.internal.initialized=!0,!0}if(r(e)!==r(t.state))throw new Error("CHECKPOINT_DOES_NOT_MATCH_PREVIOUS_STATE");if(!u(n,t.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");return t.state=e,!0};var h=["avatar","name","topic"];d.METADATA=function(n,t,r){if(!s(n))throw new Error("INVALID_ARGS");if(!function(n,t){var r=e.find(t,[n,"role"]);return Boolean(r&&-1!==["OWNER","ADMIN"].indexOf(r))}(t,r.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");Object.keys(n).forEach((function(e){if(null===n[e]){if(-1===h.indexOf(e))return;throw new Error("CANNOT_REMOVE_MANDATORY_METADATA")}if("string"!=typeof n[e])throw new Error("INVALID_ARGUMENTS")}));var o=!1;return Object.keys(n).forEach((function(e){void 0!==r.state.metadata[e]&&null===n[e]&&(o=!0,delete r.state.metadata[e]),n[e]!==r.state.metadata[e]&&(o=!0,r.state.metadata[e]=n[e])})),o},d.INVITE=function(e,n,t){if(!s(e))throw new Error("INVALID_ARGS");if(!t.internal.initialized)throw new Error("UNINITIALIED");if(void 0===t.state.members)throw new Error("CANNOT+INVITE_TO_UNINITIALIED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ARLEADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="VIEWER"),void 0===o.pending&&(o.pending=!0),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName||!o.displayName)throw new Error("DISPLAYNAME_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.ACCEPT=function(n,t,r){if(!r.internal.initialized)throw new Error("UNINITIALIED");if(void 0===r.state.members)throw new Error("CANNOT_ADD_TO_UNINITIALIED_ROSTER");var o=r.state.members;if(!s(o[t]))throw new Error("INSUFFICIENT_PERMISSIONS");if(!o[t].pending)throw new Error("ALREADY_PRESENT");if("string"!=typeof n)throw new Error("INVALID_ARGS");if(!l(n))throw new Error("INVALID_CURVE_KEY");var a=n;if(void 0!==o[a])throw new Error("MEMBER_ALREADY_PRESENT");var i=e.clone(o[t]);delete i.remaining,delete i.totalUses,delete i.inviteChannel,delete i.previewChannel,o[a]=i;var c=o[t].remaining||1;return-1===c||(c>1?o[t].remaining=c-1:delete o[t]),!0};var p=function(e,n,t){if(!Array.isArray(e)||"string"!=typeof n)throw new Error("INVALID ARGUMENTS");var r=e[0];if("function"!=typeof d[r])throw new Error("INVALID_COMMAND");return d[r](e[1],n,t)},v=function(n,t,r){return p(n,t,e.clone(r))};return i.create=function(n,i){if("function"!=typeof i)throw new Error("EXPECTED_CALLBACK");var f=e.once(e.mkAsync(i));if(n.network)if(n.channel&&"string"==typeof n.channel&&32===n.channel.length)if(n.keys&&"object"==typeof n.keys)if(n.store){var d=e.response((function(e,n){console.error("ROSTER_RESPONSE__"+e,n)})),h=n.store,y=n.keys,m=y.myCurvePublic,g=n.channel,E=n.lastKnownHash||-1;n.newTeam&&(E=void 0);var b={state:{members:{},metadata:{}},internal:{initialized:!1,sinceLastCheckpoint:0,lastCheckpointHash:E}},O={},A={change:e.mkEvent(),checkpoint:e.mkEvent()};O.on=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].reg(n),O},O.off=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].unreg(n),O},O.once=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");var t=function(){n.apply(null,Array.prototype.slice.call(arguments)),A[e].unreg(t)};return A[e].reg(t),O},O.getState=function(){return e.clone(b.state)},O.getLastCheckpointHash=function(){return b.internal.lastCheckpointHash||-1};var w=function(){b.internal.pendingCheckpointId&&(d.clear(b.internal.pendingCheckpointId),delete b.internal.pendingCheckpointId),clearTimeout(b.internal.checkpointTimeout),delete b.internal.checkpointTimeout};O.stop=function(){b.internal.cpNetflux&&"function"==typeof b.internal.cpNetflux.stop?(b.internal.cpNetflux.stop(),w()):console.log("FAILED TO LEAVE")};var D,_,T,S=!1,x=function(){if(n.onCacheReady){var e=b.state;if(Object.keys(e.members||{}).length)n.onCacheReady(O);else{try{b.internal.cpNetflux.resetCache()}catch(e){console.error(e)}n.onCacheReady({error:"CORRUPTED"})}}},N=function(){S=!0,f(void 0,O)},I=function(e){e&&"EUNKNOWN"===e.type||(S?console.error("CHANNEL_ERROR",e):f(e))},C=function(e){e.state||(S=!1)},R=function(){console.log("ROSTER CONNECTED")},P=function(){return Boolean(S&&m)},k=function(n,t,r,o,a,i){D!==a&&b.internal.sinceLastCheckpoint++,D=a;var s=e.tryParse(n);if(s){var f,l;try{f=p(s,i,b)}catch(e){l=e.message}var h=c(a);if(d.expected(h)){if(l)return void d.handle(h,[l]);try{f?d.handle(h,[void 0,O.getState()]):(d.handle(h,["NO_CHANGE"]),console.log(n))}catch(e){console.log("CAUGHT",e)}}if("CHECKPOINT"===s[0]&&f?(P()&&A.checkpoint.fire(a),b.internal.sinceLastCheckpoint=0,b.internal.lastCheckpointHash=a):f&&P()&&A.change.fire(),w(),P()&&function(e,n){if(!u(e,n.state.members))return!1;var t=n.internal.sinceLastCheckpoint;return!(!t||"number"!=typeof t||t<25)}(m,b)){var v=1e3*Math.floor(20*Math.random())+5e3;b.internal.checkpointTimeout=setTimeout((function(){b.internal.pendingCheckpointId=O.checkpoint((function(e){e&&console.error(e)}))}),v)}}else console.error("could not parse")},M=function(n,t){var r=e.tryParse(n);return"CHECKPOINT"===r[0]&&v(r,t,b)},F=function(e,n){if(P()){var t=h.anon_rpc;if(t){var o=!1;try{o=v(e,y.myCurvePublic,b)}catch(e){return void n(e.message)}if(o){var a=T.encrypt(r(e)),i=c(a);return d.expect(i,(function(e,t){e?n(e):n(void 0,t,i)}),3e4),t.send("WRITE_PRIVATE_MESSAGE",[g,a],(function(e){if(e)return d.handle(i,[e.message||e])})),i}n("NO_CHANGE")}else n("ANON_RPC_NOT_READY")}else n("NOT_READY")};O.init=function(n,t){var r=e.once(e.mkAsync(t));if(b.internal.initialized)r("ALREADY_INITIALIZED");else if(s(n)){var o=e.clone(n);o.role="OWNER";var a={};a[m]=o,F(["CHECKPOINT",{members:a}],r)}else r("INVALID_ARGUMENTS")},O.checkpoint=function(n){var t=e.once(e.mkAsync(n));F(["CHECKPOINT",e.clone(b.state)],t)},O.add=function(n,t){var r=e.once(e.mkAsync(t));if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["ADD",o],r)}else r("INVALID_ARGUMENTS")},O.remove=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(Array.isArray(n)){var a=e.clone(n),i=[],s=Object.keys(o.members);a.forEach((function(e){-1!==s.indexOf(e)&&i.push(e)})),F(["RM",i],r)}else r("INVALID_ARGUMENTS")},O.describe=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(s(n)){var a=e.clone(n);Object.keys(a).some((function(e){var n=a[e];if(s(n)||delete a[e],!s(o.members[e]))return!0;Object.keys(n).forEach((function(t){n[t]===o.members[e][t]&&delete n[t]}))}))?r("INVALID_ARGUMENTS"):F(["DESCRIBE",a],r)}else r("INVALID_ARGUMENTS")},O.metadata=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state.metadata;if(s(n)){var a=e.clone(n);Object.keys(a).forEach((function(e){a[e]===o[e]&&delete a[e]})),F(["METADATA",a],r)}else r("INVALID_ARGUMENTS")},O.invite=function(n,t){var r=e.once(e.mkAsync(t));if(!b.state)return r("UNINITIALIZED");if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["INVITE",o],r)}else r("INVALID_ARGUMENTS")},O.accept=function(n,t){var r=e.once(e.mkAsync(t));"string"==typeof n&&l(n)?F(["ACCEPT",n],r):r("INVALID_ARGUMENTS")},o((function(e){h.anon_rpc&&h.anon_rpc.send("GET_METADATA",g,(function(n,t){if(n)return e.abort(),void console.error(n);_=b.internal.metadata=t&&t[0]||void 0}))})).nThen((function(e){if(!n.keys.teamEdPublic&&_&&_.validateKey&&(n.keys.teamEdPublic=_.validateKey),!n.keys.teamEdPublic)return e.abort(),void f("NO_VALIDATE_KEY");try{T=a.Team.createEncryptor(n.keys)}catch(n){return e.abort(),void f(n)}})).nThen((function(){"string"==typeof E&&console.log("Synchronizing from checkpoint"),b.internal.cpNetflux=t.start({lastKnownHash:E,network:n.network,channel:n.channel,crypto:T,validateKey:n.keys.teamEdPublic,owners:n.owners,Cache:n.Cache,isCacheCheckpoint:M,onCacheReady:x,onChannelError:I,onReady:N,onConnect:R,onConnectionChange:C,onMessage:k,noChainPad:!0})}))}else f("EXPECTED_STORE");else f("EXPECTED_CRYPTO_KEYS");else f("EXPECTED_CHANNEL");else f("EXPECTED_NETWORK")},i}(Z(),te(),y(),En(),qe(),M()))}(yt)),yt.exports}var gt,Et,bt={exports:{}};function Ot(){return Et||(Et=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E)=>{var b={};E=E||"undefined"!=typeof window&&window.nacl;var O=e.mkEvent(!0),A=function(){},w=function(e,t,r,o){t&&(o||(r.on("change",["drive",a.SHARED_FOLDERS],(function(o,s,c){if(c.length>3&&"password"===c[3]){var u=c[2],f=r.drive[a.SHARED_FOLDERS][u],l=t.manager.user.userObject.getHref?t.manager.user.userObject.getHref(f):f.href,d=n.parsePadUrl(l),h=n.getSecrets(d.type,d.hash,o);return setTimeout((function(){i.updatePassword(e.Store,{oldChannel:h.channel,password:s,href:l},e.store.network,(function(){console.log("Shared folder password changed")}))})),!1}})),r.on("disconnect",(function(){t.offline=!0,t.sendEvent("NETWORK_DISCONNECT",t.id)})),r.on("reconnect",(function(){t.offline=!1,t.sendEvent("NETWORK_RECONNECT",t.id)}))),r.on("change",[],(function(n,r,i){if(o){if(i[0]===a.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var s=[r.channel];r.rtChannel&&s.push(r.rtChannel),r.lastVersion&&s.push(r.lastVersion),t.pin(s,(function(e){e&&e.error&&console.error(e.error)}))}if(i[0]===a.FILES_DATA&&"object"==typeof n&&n.channel&&!r){var c=[n.channel];t.manager.findChannel(n.channel).some((function(e){return e.fId!==o}))||(n.rtChannel&&c.push(n.rtChannel),n.lastVersion&&c.push(n.lastVersion),t.unpin(c,(function(e){e&&e.error&&console.error(e)})))}}n&&!r&&Array.isArray(i)&&(i[0]===a.FILES_DATA||"drive"===i[0]&&i[1]===a.FILES_DATA)&&setTimeout((function(){e.Store.checkDeletedPad(n&&n.channel)})),t.sendEvent("DRIVE_CHANGE",{id:o,old:n,new:r,path:i})})),r.on("remove",[],(function(e,n){t.sendEvent("DRIVE_REMOVE",{id:o,old:e,path:n})})))},D=function(e,n){var t=e.teams[n];if(t){try{t.listmap.stop()}catch(e){}try{t.roster.stop()}catch(e){}t.proxy={},t.stopped=!0,delete e.teams[n],delete e.cache[n],delete e.store.proxy.teams[n],e.emit("LEAVE_TEAM",n,t.clients),e.updateMetadata(),e.store.calendar&&e.store.calendar.closeTeam(n),e.store.mailbox&&e.store.mailbox.close("team-"+n,(function(){}))}},_=function(e,n,t,r){n.rpc?r():t.edPrivate&&t.edPublic?h.create(e.store.network,t,(function(e,t){e?r(e):(n.rpc=t,n&&n.onRpcReadyEvt&&n.onRpcReadyEvt.fire(),r())}),d):r("EFORBIDDEN")},T=function(t,r,a,s,c,u,f){var l=e.once(e.mkAsync(f));if(t.cache[r])l();else{var d=a.proxy,h={id:r,proxy:d,listmap:a,clients:[],realtime:a.realtime,handleSharedFolder:function(e,n){!function(e,n,t,r){var o=e.teams[n];o&&(r?(o.sharedFolders[t]=r,w(e,o,r.proxy,t)):delete o.sharedFolders[t])}(t,r,e,n)},sharedFolders:{},roster:s,onRpcReadyEvt:e.mkEvent(!0),offline:!0};t.cache[r]=h,u&&h.clients.push(u),s.on("change",(function(){var n=s.getState(),o=e.find(t,["store","proxy","curvePublic"]);if(n.members&&Object.keys(n.members).length)if(n.members[o]){var a=e.find(t,["store","proxy","teams",r]);a&&(a.metadata=n.metadata),t.updateMetadata(),t.emit("ROSTER_CHANGE",r,h.clients)}else D(t,r);else console.error(JSON.stringify(n))})),s.on("checkpoint",(function(n){e.find(t,["store","proxy","teams",r,"keys","roster"]).lastKnownHash=n})),h.sendEvent=function(e,n,r){t.emit(e,n,h.clients.filter((function(e){return e!==r})))},h.getChatData=function(){var e=c.chat||{},t=e.edit||e.view;if(!t)return{};var o=n.getSecrets("chat",t);return{teamId:r,channel:o.channel,secret:o,validateKey:e.validateKey}},h.pin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.pin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})},h.unpin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.unpin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})};var p=t.store.proxy.teams[h.id],v=p.hash||p.roHash,y=n.getSecrets("team",v,p.password),m=h.manager=o.create(d.drive,{onSync:function(e){t.Store.onSync(r,e)},edPublic:c.drive.edPublic,pin:h.pin,unpin:h.unpin,loadSharedFolder:function(e,n,r,o){i.load({isNew:o,network:t.store.network||t.store.networkPromise,store:h,isNewChannel:t.Store.isNewChannel,Store:t.Store},e,n,r)},settings:{drive:e.find(t.store,["proxy","settings","drive"])},removeOwnedChannel:function(e,n){var o;"object"==typeof e?(e.teamId=r,o=e):o={channel:e,teamId:r},t.Store.removeOwnedChannel("",o,n)},Store:t.Store,store:t.store},{teamId:h.id,outer:!0,edPublic:c.drive.edPublic,loggedIn:!0,log:function(e){h.sendEvent("DRIVE_LOG",e)},rt:h.realtime,editKey:y.keys.secondaryKey,readOnly:Boolean(!y.keys.secondaryKey)});h.secondaryKey=y&&y.keys.secondaryKey,h.userObject=m.user.userObject,g((function(e){t.teams[r]=h,w(t,h,d);var n=t.store.network||t.store.networkPromise;i.loadSharedFolders(t.Store,n,h,h.proxy.drive,h.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}),!0)})).nThen((function(){t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),l()}))}},S=function(t,r,o,a,s,c,u){var f,l=a.getState(),d=e.find(t,["store","proxy","teams",r]);d&&(d.metadata=l.metadata),delete t.nocache[r],t.store.proxy.teams[r]&&g((function(e){T(t,r,o,a,s,c,e()),f=t.teams[r]||t.cache[r],s.drive.edPrivate&&_(t,f,s.drive,e((function(){})))})).nThen((function(e){f.userObject.fixFiles(),i.checkMigration(f.secondaryKey,f.proxy?.drive,f.userObject,e()),i.loadSharedFolders(t.Store,t.store.network,f,f.proxy?.drive,f.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}))})).nThen((function(){if(f.rpc){var o=function(n,t){var r=n.teams[t];if(!r)return null;var o=r.manager.getChannelsList("pin"),a=n.store.proxy.teams[t];o.push(`${a.channel}#drive`);var i=e.find(a,["keys","chat","channel"]),s=e.find(a,["keys","roster","channel"]),c=e.find(a,["keys","mailbox","channel"]);if(i&&o.push(i),s&&o.push(s),c&&o.push(c),r.proxy.calendars){var u=Object.keys(r.proxy.calendars).map((function(e){return r.proxy.calendars[e].channel}));o=o.concat(u)}var f=r.roster.getState();return f.members&&Object.keys(f.members).forEach((function(e){var n=f.members[e];n.inviteChannel&&n.pending&&o.push(n.inviteChannel),n.previewChannel&&n.pending&&o.push(n.previewChannel)})),o.sort(),o}(t,r),a=n.hashChannelList(o);f.rpc.getServerHash((function(e,n){e?console.warn(e):n!==a&&f.rpc.reset(o,(function(e){e&&console.warn(e)}))}))}})).nThen((function(){f.offline=!1,t.onReadyHandlers[r]&&t.onReadyHandlers[r].forEach((function(e){("function"==typeof e.cb&&e.cb(),e.cId)&&(-1===f.clients.indexOf(e.cId)&&f.clients.push(e.cId))})),delete t.onReadyHandlers[r],t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),u()}))},x=function(e,n,t,r,o,a){var i=function(){(e.cache[n]||e.teams[n])&&D(e,n),delete e.store.proxy.teams[n],delete e.onReadyHandlers[n],o.abort(),a({error:"ENOENT"})};t&&e.store.anon_rpc.send("IS_NEW_CHANNEL",t,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()}))),r&&e.store.anon_rpc.send("IS_NEW_CHANNEL",r,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()})))},N=function(t,r,o,a,i){var f=e.once(e.mkAsync(a)),l=r.hash||r.roHash,h=n.getSecrets("team",l,r.password),y=v.createEncryptor(h.keys);r.roHash||(r.roHash=n.getViewHashFromKeys(h));var E,b,A=r.keys;if(!A.chat.validateKey&&A.chat.edit){var w=n.getSecrets("chat",A.chat.edit);A.chat.validateKey=w.keys.validateKey}var _={curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate},N=A.roster||{},I=N.edit?v.Team.deriveMemberKeys(N.edit,_):v.Team.deriveGuestKeys(N.view||"");g((function(e){if(i)return d.getChannelCache(h.channel,e((function(n,t){t&&t.c||(e.abort(),f({error:"NOCACHE"}))}))),void d.getChannelCache(I.channel,e((function(n,t){var r=t&&t.c,o=t&&t.k;o&&!I.teamEdPublic&&(I.teamEdPublic=o),r||(e.abort(),f({error:"NOCACHE"}))})));t.Store.onReadyEvt.reg((()=>{x(t,o,h.channel,I.channel,e,f)}))})).nThen((function(n){var a={lm:!1,roster:!1,check:function(){this.lm&&this.roster&&i&&(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress}),T(t,o,b,E,A,null,n(f)),this.check=function(){})}},u={data:{},readOnly:!Boolean(h.keys.signKey),network:t.store.network||t.store.networkPromise,channel:h.channel,crypto:y,ChainPad:m,Cache:d,metadata:{validateKey:h.keys.validateKey||void 0},userName:"team",classic:!0,onMetadataUpdate:function(){var e=t.teams[o];e&&t.emit("ROSTER_CHANGE",o,e.clients)}};(b=p.create(u)).proxy.on("cacheready",(function(){a.lm=!0,a.check()})),b.proxy.on("ready",n()),b.proxy.on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,o)})),s.create({network:t.store.network||t.store.networkPromise,channel:I.channel,keys:I,store:t.store,lastKnownHash:N.lastKnownHash,onCacheReady:function(e){if(i){if(e&&"CORRUPTED"===e.error)return console.error("Corrupted roster cache, cant load this team offline",r),b&&"function"==typeof b.stop&&b.stop(),n.abort(),void f({error:"CACHE_CORRUPTED_ROSTER"});E=e,a.roster=!0,a.check()}},Cache:d},n((function(r,o){if(r)return n.abort(),console.error(r),void f({error:"ROSTER_ERROR"});E=o,N.lastKnownHash=E.getLastCheckpointHash();var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);a.members[i]&&O.reg((function(){if(N.edit){var e={},n=c.createData(t.store.proxy,!1);n.pending=!1,e[t.store.proxy.curvePublic]=n,E.describe(e,(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}}))})))})).nThen((function(n){var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);if(!a.members||!Object.keys(a.members).length)return b.stop(),E.stop(),b.proxy={},f({error:"EINVAL"}),n.abort(),console.error(JSON.stringify(a)),void u.send("ROSTER_CORRUPTED");if(!a.members[i])return b.stop(),E.stop(),b.proxy={},delete t.store.proxy.teams[o],t.updateMetadata(),f({error:"EFORBIDDEN"}),void n.abort();var s=a.members[i],c=e.find(r,["keys","drive","edPrivate"]);if(r.hash&&c||-1===["ADMIN","MEMBER"].indexOf(s.role))r.hash&&c||"OWNER"!==s.role||u.send("TEAM_RIGHTS_OWNER");else{console.warn("Missing edit rights: demote to viewer");var l={};l[t.store.proxy.curvePublic]={role:"VIEWER"},E.describe(l,(function(e){u.send("TEAM_RIGHTS_FIXED"),delete r.hash,delete r.keys.drive.edPrivate,delete r.keys.chat.edit,e&&"NO_CHANGE"!==e&&console.error(e)}))}})).nThen((function(){i||(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress})),S(t,o,b,E,A,null,f)}))},I=function(n,t,r,o){var a=t.team;if(!((a.hash||a.roHash)&&a.channel&&a.password&&a.keys&&a.metadata))return void o({error:"EINVAL"});let i=n.store.proxy.teams;if(Object.values(i).some((e=>e.channel===a.channel)))o({error:"EEXISTS"});else{var s=e.createRandomInteger();n.store.proxy.teams[s]=a,n.onReadyHandlers[s]=[],N(n,a,s,(function(e){e&&e.error||console.debug("Team joined:"+s);var t=n.store.proxy.teams[s];n.store.mailbox.open("team-"+s,t.keys.mailbox,(function(){}),!0,{owners:t.keys.drive.edPublic}),n.updateMetadata(),o(e)}))}},C=function(n,t,r){var o=e.find(n,["store","proxy","teams",t]);if(!o)return{};var a=e.clone(o);return r||(delete a.hash,delete a.keys.drive.edPrivate,delete a.keys.chat.edit),delete a.owner,a},R=function(t,r,o){if(!r)return!0;var a=e.find(t,["store","proxy","teams",r]);if(!a)return!0;var s=t.teams[r];if(!s)return!0;var c=n.getSecrets("team",o||a.roHash,a.password);if(i.upgrade(a.channel,c),s.userObject&&s.userObject.setReadOnly(!c.keys.secondaryKey,c.keys.secondaryKey),c.keys.secondaryKey)try{t.store.modules.calendar.upgradeTeam(r)}catch(e){console.error(e)}!c.keys.secondaryKey&&s.rpc&&s.rpc.destroy();var u=e.find(s,["proxy","drive","sharedFolders"]);Object.keys(u||{}).forEach((function(t){var r=s.manager.getSharedFolderData(t),o=n.parsePadUrl(r.href||r.roHref),a=n.getSecrets(o.type,o.hash,r.password);i.upgrade(a.channel,a);var c=e.find(s,["manager","folders",t,"userObject"]);c&&c.setReadOnly(!a.keys.secondaryKey,a.keys.secondaryKey)})),t.updateMetadata(),t.emit("ROSTER_CHANGE_RIGHTS",r,s.clients)},P=function(t,r,o,a,i){if(r){var s=e.find(t,["store","proxy","teams",r]);if(s){var c=t.onReadyHandlers[r],u=t.teams[r];if(s.channel===a.channel&&s.password===a.password)if(o?(s.hash=a.hash,s.keys.drive.edPrivate=a.keys.drive.edPrivate,s.keys.chat.edit=a.keys.chat.edit):(delete s.hash,delete s.keys.drive.edPrivate,delete s.keys.chat.edit),u||!Array.isArray(c))if(u){if(o){_(t,u,s.keys.drive,(function(){u.manager.addPin(u.pin,u.unpin)}));var f=n.getSecrets("team",a.hash,s.password);u.secondaryKey=f&&f.keys.secondaryKey;var l=v.createEncryptor(f.keys);u.listmap.setReadOnly(!1,l)}else delete u.secondaryKey,u.rpc&&u.rpc.destroy&&u.rpc.destroy(),u.manager.removePin(),u.listmap.setReadOnly(!0);R(t,r,a.hash),i(!0)}else i(!1);else c.push({cb:function(){P(t,r,o,a,i)}});else i(!1)}else i(!1)}else i(!1)},k=function(n,t,r,o,a){t?e.find(n,["store","proxy","teams",t])&&n.teams[t]?n.store.mailbox.sendTo("TEAM_EDIT_RIGHTS",{state:o,teamData:C(n,t,o)},{channel:r.notifications,curvePublic:r.curvePublic},a):a({error:"ENOENT"}):a({error:"EINVAL"})},M=function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]),s=n.teams[a];if(i&&s)if(s.roster)if(t.curvePublic&&t.data){var c,u=s.roster.getState().members[t.curvePublic];g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(u.pendingOwner=Array.isArray(c.pending_owners)&&-1!==c.pending_owners.indexOf(u.edPublic),"OWNER"!==u.role||"OWNER"===t.data.role){"VIEWER"===u.role&&"VIEWER"!==t.data.role&&k(n,a,u,!0,(function(e){o(e)})),"VIEWER"!==u.role&&"VIEWER"===t.data.role&&k(n,a,u,!1,(function(e){o(e)}));var r={};r[t.curvePublic]=t.data,s.roster.describe(r,(function(e){e?o({error:e}):o()}))}else!function(n,t,r,o){var a=e.once(o);if(t){var i=e.find(n,["store","proxy","teams",t]);if(i){var s=n.teams[t];if(s){var c=r.pendingOwner;g((function(t){var o=c?"RM_PENDING_OWNERS":"RM_OWNERS",s=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a(n)},u=function(e){n.Store.setPadMetadata(null,{channel:e,command:o,value:[r.edPublic]},t(s))};u(i.channel),u(e.find(i,["keys","roster","channel"])),u(e.find(i,["keys","chat","channel"]))})).nThen((function(e){var n={};n[r.curvePublic]={role:"ADMIN",pendingOwner:!1},s.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(e){n.store.mailbox.sendTo("RM_OWNER",{teamChannel:i.channel,title:i.metadata.name,pending:c},{channel:r.notifications,curvePublic:r.curvePublic},e())})).nThen((function(){a()}))}else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(n,a,u,(function(e){e?(console.error(e),o({error:e})):o()}))}))}else o({error:"MISSING_DATA"});else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"EINVAL"})},F=function(e,n){Object.keys(e.onReadyHandlers).forEach((function(t){var r=-1;e.onReadyHandlers[t].some((function(e,t){if(e.cId===n)return r=t,!0})),-1!==r&&e.onReadyHandlers[t].splice(r,1)})),Object.keys(e.teams).forEach((function(t){var r=e.teams[t].clients,o=r.indexOf(n);-1!==o&&r.splice(o,1)}))},L=function(n,t,r,o){var a,i=t.seeds;try{a=f.derivePreviewKeys(i.preview)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})},H=function(n,t,r,o){var a,i;g((function(r){!function(n,t,r,o){var a,i=t.bytes64;try{a=f.deriveInviteKeys(i)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})}(n,t,0,r((function(e){if(e&&e.error)return r.abort(),void o(e);a=e})))})).nThen((function(t){var r=e.find(a,["teamData","channel"]),u=n.store.proxy.teams||{};if(Object.keys(u).some((function(e){return u[e].channel===r})))return t.abort(),void o({error:"ALREADY_MEMBER"});var f=e.find(a,["teamData","keys","roster"]),l=a.ephemeral;if(!f||!l)return t.abort(),void o({error:"INVALID_INVITE_CONTENT"});var h=v.Team.deriveMemberKeys(f.edit,l);s.create({network:n.store.network||n.store.networkPromise,channel:f.channel,keys:h,store:n.store,Cache:d},t((function(e,r){if(e)return t.abort(),console.error(e),void o({error:"ROSTER_ERROR"});var a=c.createData(n.store.proxy,!1),s=r.getState();i=s.members[l.curvePublic],r.accept(a.curvePublic,t((function(e){if(r.stop(),e)return t.abort(),console.error(e),void o({error:"ACCEPT_ERROR"})})))})))})).nThen((function(){var e={};i.remaining&&1!==i.remaining||_(n,e,a.ephemeral,(function(n){if(!n){var t=e.rpc;i.inviteChannel&&t.removeOwnedChannel(i.inviteChannel,(function(e){e&&console.error(e)})),i.previewChannel&&t.removeOwnedChannel(i.previewChannel,(function(e){e&&console.error(e)}))}})),I(n,{team:a.teamData},0,o)}))},j=function(n){if(n){if(n.keys&&n.keys.mailbox)return n.keys.mailbox;var t=e.find(n,["keys","roster","edit"]);if(t){var r=E.hash(e.decodeUTF8(t)),o=r.slice(0,32),a=e.uint8ArrayToHex(r.slice(32,48)),i=E.box.keyPair.fromSecretKey(o);return{channel:a,viewed:[],keys:{curvePrivate:e.encodeBase64(i.secretKey),curvePublic:e.encodeBase64(i.publicKey)}}}}};return b.init=function(t,r,o){var a={},i=t.store;if(i.loggedIn&&i.proxy.edPublic&&!i.modules?.team){var h={store:i,Store:t.Store,pinPads:t.pinPads,emit:o,onReadyHandlers:{},teams:{},cache:{},nocache:{},updateMetadata:t.updateMetadata,updateProgress:t.updateLoadingProgress,progress:0};i.proxy.teams||(i.proxy.teams={});var b=i.proxy.teams;h.numberOfTeams=Object.keys(b).length,h.store.proxy.on("change",["teams"],(function(e,n,t){"hash"===t[2]&&R(h,t[1],n)})),h.store.proxy.on("remove",["teams"],(function(e,n){"hash"===n[2]&&R(h,n[1])}));var w=function(n,t){if(!n||!t)return!0;try{var r=e.decodeBase64(n),o=E.sign.keyPair.fromSecretKey(r);return e.encodeBase64(o.publicKey)===t}catch(e){return!1}};Object.keys(b).forEach((function(n){h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,r((function(e){if(e){delete h.onReadyHandlers[n],delete h.cache[n],"NOCACHE"===e?.error&&(h.nocache[n]=!0);var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" cache ready")})),d.isEnabled())})),a.onReady=function(t){var r;r={},Object.keys(b).forEach((function(t){try{var o=b[t],a=r[o.channel],i=e.find(o,["keys","drive","edPrivate"]),s=e.find(o,["keys","drive","edPublic"]);if(s?i&&s&&!w(i,s)&&(u.send("TEAM_CORRUPTED_EDPRIVATE"),delete b[t].keys.drive.edPrivate,i=void 0):u.send("TEAM_CORRUPTED_EDPUBLIC"),o.hash&&2===n.parseTypeHash("drive",o.hash).version&&40!==o.hash.length&&u.send("TEAM_CORRUPTED_HASH"),!a)return void(r[o.channel]=t);var c=b[a],f=e.find(c,["keys","drive","edPrivate"]),l=e.find(c,["keys","chat","edit"]),d=e.find(o,["keys","chat","edit"]);!c.hash&&o.hash&&(c.hash=o.hash),!f&&i&&(c.keys.drive.edPrivate=i),!l&&d&&(c.keys.chat.edit=d),h.store.proxy.duplicateTeams=h.store.proxy.duplicateTeams||{},h.store.proxy.duplicateTeams[t]=b[t],delete b[t]}catch(e){console.error(e)}}));var o=function(e){return!b[e]&&(D(h,e),delete h.onReadyHandlers[e],!0)};Object.keys(h.teams).forEach(o),Object.keys(h.onReadyHandlers).forEach((function(n){if(!o(n)){var r=h.store.proxy.teams[n],a=e.find(r,["keys","roster","channel"]),i=e.once(e.mkAsync(t()));g((function(e){x(h,n,r.channel,a,e,i)})),h.onReadyHandlers[n].push({cb:i})}})),Object.keys(b).forEach((function(n){h.onReadyHandlers[n]||h.teams[n]||(h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,t((function(e){if(e){var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" ready")}))))})),A(),O.fire()},a.getTeam=function(e){return h.teams[e]},a.getTeamsData=function(n){var t={},r=!1;return-1!==["drive","teams","settings"].indexOf(n)&&(r=!0),Object.keys(b).forEach((function(n){if(h.teams[n]){var o=h.teams[n].proxy||{},a=o.drive&&Object.keys(o.drive.filesData||{}).length,i=o.drive&&Object.keys(o.drive.sharedFolders||{}).length;t[n]={owner:b[n].owner,name:b[n].metadata.name,channel:b[n].channel,numberPads:a,numberSf:i,roster:e.find(b[n],["keys","roster","channel"]),edPublic:e.find(b[n],["keys","drive","edPublic"]),avatar:e.find(b[n],["metadata","avatar"]),viewer:!e.find(b[n],["keys","drive","edPrivate"]),notifications:e.find(b[n],["keys","mailbox","channel"]),curvePublic:e.find(b[n],["keys","mailbox","keys","curvePublic"]),validKeys:w(e.find(b[n],["keys","drive","edPrivate"]),e.find(b[n],["keys","drive","edPublic"]))},r&&h.teams[n]&&(t[n].secondaryKey=h.teams[n].secondaryKey),h.teams[n]&&(t[n].hasSecondaryKey=Boolean(h.teams[n].secondaryKey))}})),t},a.getTeams=function(){return Object.keys(h.teams)};a.removeFromTeam=function(e,n,t){if(b[e]&&(!t||function(e,n){var t=h.teams[e];if(t){var r=t.roster&&t.roster.getState();if(r.members)return(r.members[n]||{}).pending}}(e,n)))if(h.onReadyHandlers[e])h.onReadyHandlers[e].push({cb:function(){h.teams[e].roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}});else{var r=h.teams[e];r?r.roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)})):console.error("TEAM MODULE ERROR")}},a.changeMyRights=function(e,n,t,r){P(h,e,n,t,r)},a.updateMyData=function(e){Object.keys(h.teams).forEach((function(n){var t=h.teams[n];if(t.roster){var r={};r[e.curvePublic]=e,t.roster.describe(r,(function(e){e&&console.error(e)}))}}))},a.removeClient=function(e){F(h,e)};return a.execCommand=function(t,r,o){var a=r.cmd,i=r.data;if("SUBSCRIBE"!==a)if("LIST_TEAMS"!==a)if("OPEN_TEAM_CHAT"!==a)if("GET_TEAM_ROSTER"!==a)if("GET_TEAM_METADATA"!==a)if("SET_TEAM_METADATA"!==a){if("OFFER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=e.once(o),i=t.teamId;if(i){var s=e.find(n,["store","proxy","teams",i]);if(s){var c=n.teams[i];if(c)if(c.roster)if(t.curvePublic){var u=c.roster.getState().members[t.curvePublic];g((function(t){var r=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a({error:n})},o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"ADD_PENDING_OWNERS",value:[u.edPublic]},t(r))};o(s.channel),o(e.find(s,["keys","roster","channel"])),o(e.find(s,["keys","chat","channel"]))})).nThen((function(e){var n={};n[u.curvePublic]={role:"OWNER"},c.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(t){n.store.mailbox.sendTo("ADD_OWNER",{teamChannel:s.channel,chatChannel:e.find(s,["keys","chat","channel"]),rosterChannel:e.find(s,["keys","roster","channel"]),title:s.metadata.name},{channel:u.notifications,curvePublic:u.curvePublic},t())})).nThen((function(){a()}))}else a({error:"MISSING_DATA"});else a({error:"NO_ROSTER"});else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(h,i,0,o);if("ANSWER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a,i=n.store.proxy.teams;if(Object.keys(i).forEach((function(e){if(i[e].channel===t.teamChannel)return a=e,!0})),a){var s=e.find(n,["store","proxy","teams",a]);if(s){var c=n.teams[a];if(c)if(c.roster){var u={};t.answer?s.owner=!0:(u[n.store.proxy.curvePublic]={role:"ADMIN"},c.roster.describe(u,(function(e){e?o({error:e}):o()})))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("DESCRIBE_USER"!==a){if("INVITE_TO_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=n.user;if(i&&i.curvePublic&&i.notifications){delete i.channel,delete i.lastKnownHash,i.pending=!0;var s={};s[i.curvePublic]=i,s[i.curvePublic].role="VIEWER",a.roster.add(s,(function(n){n&&"NO_CHANGE"!==n?r({error:n}):e.store.mailbox.sendTo("INVITE_TO_TEAM",{team:C(e,o)},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)}))}))}else r({error:"MISSING_DATA"})}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);if("LEAVE_TEAM"!==a){if("JOIN_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void I(h,i,0,o);if("REMOVE_USER"!==a){if("DELETE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a],s=e.find(n,["store","proxy","teams",a]);if(i&&s){var c=i.roster.getState(),f=e.find(n,["store","proxy","curvePublic"]),l=c.members[f];if(!l||"OWNER"!==l.role)return o({error:"EFORBIDDEN"});var d=e.find(n,["store","proxy","edPublic"]),h=e.find(s,["keys","drive","edPublic"]);g((function(e){n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:s.channel},e((function(n){if(n&&n.error)return e.abort(),o({error:n.error});var t=n[0];t&&Array.isArray(t.owners)&&-1!==t.owners.indexOf(d)||(e.abort(),o({error:"EFORBIDDEN"}))})))})).nThen((function(t){i.proxy.delete=!0;var r=i.manager.getChannelsList("owned"),o=e.Saferphore.create(10);r.forEach((function(e){var r=t();o.take((function(t){var o=!1;g((function(r){32===e.length&&n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:e},r((function(e){if(e&&e.error)return t(),void r.abort();var n=e[0];if(!n||!Array.isArray(n.owners)||-1===n.owners.indexOf(h))return t(),void r.abort();o=n.owners.some((function(e){return e!==h}))})))})).nThen((function(t){o?n.Store.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[h]},t()):i.rpc.removeOwnedChannel(e,t((function(e){e&&console.error(e)})))})).nThen((function(){t(),r()}))}))}))})).nThen((function(t){i.rpc.removePins(t((function(e){e&&console.error(e)})));var r=e.find(s,["keys","mailbox","channel"]);i.rpc.removeOwnedChannel(r,t((function(e){e&&console.error(e)})));var o=e.find(s,["keys","roster","channel"]);n.store.rpc.removeOwnedChannel(o,t((function(e){e&&console.error(e)})));var a=e.find(s,["keys","chat","channel"]);n.store.rpc.removeOwnedChannel(a,t((function(e){e&&console.error(e)}))),n.store.rpc.removeOwnedChannel(s.channel,t((function(e){e&&console.error(e)})))})).nThen((function(){u.send("TEAM_DELETION"),D(n,a),o()}))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("CREATE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(t,r,o,a){var i,f=e.once(a),l=n.createChannelId(),h=n.createRandomHash("team",l),b=n.getSecrets("team",h,l),O=n.getViewHashFromKeys(b),A=E.sign.keyPair(),w=E.box.keyPair(),_=v.Team.createSeed(),T=v.Team.deriveMemberKeys(_,{curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate}),x=n.getSecrets("chat"),N=n.getHashes(x),I={network:t.store.network,channel:b.channel,data:{},validateKey:b.keys.validateKey,crypto:v.createEncryptor(b.keys),logLevel:1,classic:!0,ChainPad:m,Cache:d,owners:[t.store.proxy.edPublic]};g((function(e){s.create({network:t.store.network||t.store.networkPromise,channel:T.channel,owners:[t.store.proxy.edPublic],keys:T,store:t.store,lastKnownHash:void 0,newTeam:!0,Cache:d},e((function(n,r){if(n)return e.abort(),console.error(n),void f({error:"ROSTER_ERROR"});i=r;var o=c.createData(t.store.proxy);delete o.channel,i.init(o,e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})));var n,r=v.createEncryptor(x.keys),o={network:t.store.network,channel:x.channel,noChainPad:!0,crypto:r,metadata:{validateKey:x.keys.validateKey,owners:[t.store.proxy.edPublic]}},a=e();o.onReady=function(){n&&n.stop(),a()},o.onError=function(){e.abort(),f({error:"CHAT_INIT_ERROR"})},n=y.start(o)})).nThen((function(e){i.metadata({name:r.name},e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})).nThen((function(){var a=e.createRandomInteger();I.onMetadataUpdate=function(){var e=t.teams[a];e&&t.emit("ROSTER_CHANGE",a,e.clients)};var s=p.create(I),c=s.proxy;c.version=2,c.on("ready",(function(){var d={mailbox:{channel:n.createChannelId(),viewed:[],keys:{curvePrivate:e.encodeBase64(w.secretKey),curvePublic:e.encodeBase64(w.publicKey)}},drive:{edPrivate:e.encodeBase64(A.secretKey),edPublic:e.encodeBase64(A.publicKey)},chat:{edit:N.editHash,view:N.viewHash,validateKey:x.keys.validateKey,channel:x.channel},roster:{channel:T.channel,edit:_,view:T.viewKeyStr}},p=t.store.proxy.teams[a]={owner:!0,channel:b.channel,hash:h,roHash:O,password:l,keys:d,metadata:{name:r.name}};c.drive={},S(t,a,s,i,d,o,(function(){u.send("TEAM_CREATION"),t.store.mailbox.open("team-"+a,p.keys.mailbox,(function(){}),!0,{owners:p.keys.drive.edPublic}),t.updateMetadata(),f()}))})).on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,a)}))}))}(h,i,t,o);if("GET_EDITABLE_FOLDERS"!==a)if("CREATE_INVITE_LINK"!==a){if("GET_PREVIEW_CONTENT"!==a)return"ACCEPT_LINK_INVITATION"===a?h.store.offline?void o({error:"OFFLINE"}):void H(h,i,0,o):void 0;L(h,i,0,o)}else!function(n,t,r,o){var a=e.mkAsync(e.once(o)),i=t.teamId,s=n.teams[t.teamId],u=t.seeds,d=t.bytes64;if(i&&s){var h,p=s.roster;try{h=p.getState().metadata.name}catch(e){return void a({error:"TEAM_NAME_ERR"})}var v=t.message,y=t.name,m=t.hash,E=e.find(n,["store","proxy","teams",i]);try{var b=f.encryptHash(m,E.hash)}catch(e){console.error(e)}var O=f.derivePreviewKeys(u.preview),A=f.deriveInviteKeys(d),w=f.generateKeys(),D=t.role||"VIEWER",_=t.uses||1;g((function(e){!function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamName:h,message:v,author:c.createData(n.store.proxy,!1),displayName:y},i={channel:O.channel,type:"pad",version:2,keys:{cryptKey:O.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(i,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}(),function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamData:C(n,i,"MEMBER"===D),ephemeral:{edPublic:w.edPublic,edPrivate:w.edPrivate,curvePublic:w.curvePublic,curvePrivate:w.curvePrivate}},s={channel:A.channel,type:"pad",version:2,keys:{cryptKey:A.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(s,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}()})).nThen((function(e){s.pin([A.channel,O.channel],(function(e){e&&e.error&&console.error(e.error)})),f.createRosterEntry(s.roster,{curvePublic:w.curvePublic,content:{curvePublic:w.curvePublic,displayName:t.name,pending:!0,remaining:_,totalUses:_,role:D,hash:b,inviteChannel:A.channel,previewChannel:O.channel}},e((function(n){n&&(e.abort(),a(n))})))})).nThen((function(){a()}))}else a({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a];if(i){var s=i.manager.folders||{};o(Object.keys(s).filter((function(e){return!s[e].proxy.version})).map((function(n){var t=e.find(i,["user","userObject"]);return{name:e.find(s,[n,"proxy","metadata","title"]),path:t?t.findFile(n)[0]:[]}})))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster)if(n.curvePublic){var i=a.roster.getState().members[n.curvePublic];a.roster.remove([n.curvePublic],(function(t){if(!t)return i&&i.notifications?void e.store.mailbox.sendTo("KICKED_FROM_TEAM",{pending:n.pending,teamChannel:C(e,o).channel,teamName:C(e,o).metadata.name},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)})):r();r({error:t})}))}else r({error:"MISSING_DATA"});else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=e.store.proxy.curvePublic;a.roster.remove([i],(function(n){n?r({error:n}):(D(e,o),r())}))}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else M(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];a?a.offline?r({error:"OFFLINE"}):a.roster?(n.metadata&&delete n.metadata.offline,a.roster.metadata(n.metadata,(function(t){if(t)r({error:t});else{var a=e.store.proxy.teams[o];a&&(a.metadata=n.metadata),r()}}))):r({error:"NO_ROSTER"}):r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=(a.roster.getState()||{}).metadata||{};i.offline=a.offline,r(i)}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]);if(i){var s=n.teams[a];if(s)if(s.roster){var c,u=(s.roster.getState()||{}).members||{};g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(n.pending_owners=c.pending_owners,Array.isArray(c.pending_owners)&&c.pending_owners.forEach((function(t){var r;if(Object.keys(u).some((function(e){if(u[e].edPublic===t)return r=u[e],!0})),!r&&i.owner){var o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"RM_PENDING_OWNERS",value:[t]},(function(){}))};return o(i.channel),o(e.find(i,["keys","roster","channel"])),void o(e.find(i,["keys","chat","channel"]))}r.pendingOwner=!0})),n.store.messenger){var t=s.getChatData();(n.store.messenger.getOnlineList(t.channel)||[]).forEach((function(e){u[e]&&(u[e].online=!0)}))}Object.keys(u).forEach((function(e){var n=u[e];if(n.inviteChannel&&n.hash)if(i.hash)try{n.hash=f.decryptHash(n.hash,i.hash)}catch(e){console.error(e)}else delete n.hash})),o(u)}))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=e.teams[n.teamId];if(o){var a=function(){e.emit("ROSTER_CHANGE",n.teamId,o.clients)};e.store.messenger?e.store.messenger.openTeamChat(o.getChatData(),a,t,r):A=function(){e.store.messenger.openTeamChat(o.getChatData(),a,t,r)}}else r({error:"ENOENT"})}(h,i,t,o);else!function(n){var t=e.clone(b);Object.keys(t).forEach((function(e){h.teams[e]?t[e].offline=h.teams[e].offline:(t[e].error=!0,h.nocache[e]&&(t[e].offline=!0))})),n(t)}(o);else!function(e,n,t,r){F(e,t);try{e.store.messenger.removeClient(t)}catch(e){}if(A=function(){},n)if(!e.onReadyHandlers[n]||e.teams[n])if(e.teams[n]){var o=e.teams[n].clients;-1===o.indexOf(t)&&o.push(t),r()}else r({error:"EINVAL"});else-1===e.onReadyHandlers[n].indexOf(t)&&e.onReadyHandlers[n].push({cId:t,cb:r});else r()}(h,i,t,o)},a}},b.anonGetPreviewContent=function(e,n,t){L(e,n,0,t)},b};e.exports&&(e.exports=n(Z(),te(),Y(),je(),ze(),Ue(),We(),mt(),wn(),Ae(),(gt||(gt=1,function(e){e.exports&&(e.exports=function(e,n,t,r){var o={},a=e.encodeBase64,i=e.decodeBase64;o.generateKeys=function(){var e=t.sign.keyPair(),n=t.box.keyPair();return{edPublic:a(e.publicKey),edPrivate:a(e.secretKey),curvePublic:a(n.publicKey),curvePrivate:a(n.secretKey)}},o.generateSignPair=function(){var e=t.sign.keyPair();return{validateKey:a(e.publicKey),signKey:a(e.secretKey)}};var s=function(r){var o=n.dispenser(i(r));return{channel:e.uint8ArrayToHex(o(16)),cryptKey:o(t.secretbox.keyLength)}};o.deriveInviteKeys=s,o.derivePreviewKeys=s,o.createRosterEntry=function(e,n,t){var r={};r[n.curvePublic]=n.content,e.invite(r,t)};var c=e.decodeUTF8;return o.encryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.encrypt(e,a)},o.decryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.decrypt(e,a)},o}(Z(),Ne(),N(),M()))}(bt)),bt.exports),Rn(),fe(),Cn(),g(),M(),y(),w(),qe(),N()))})()}(vt)),vt.exports}var At,wt={exports:{}};function Dt(){return At||(At=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c)=>{var u=e.Curve,f={setCustomize:e=>{i=e.Messages}},l="MSG",d="UNFRIEND",h="MAP_ID",p="MAP_ID_ACK",v=function(e){return JSON.parse(JSON.stringify(e))},y=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=p.store.network||e;n.on("message",(function(e,n){N(p,e,n)})),n.on("disconnect",(function(){p.emit("DISCONNECT",null,C(p))})),n.on("reconnect",(function(){p.emit("RECONNECT",null,C(p))}))}));return h.networkPromise?.then(b),p.store.network&&b(),f.onFriendUpdate=function(e){var n=g(h.proxy,e);if(n&&n.channel){var t=p.channels[n.channel];t&&p.emit("UPDATE_DATA",{info:v(n),channel:n.channel},t.clients)}},f.onFriendAdded=function(e){if(p.friendsClients.length){var n=g(p.store.proxy,e.curvePublic);if("object"==typeof n)if(n.channel){var t=n.channel;p.channels[t]||P(p,null,n,(function(){u("FRIEND",{curvePublic:n.curvePublic},p.friendsClients)}))}}},f.onFriendRemoved=function(e,n){I(p,e,n)},f.getOnlineList=function(e){return function(e,n){var t=e.channels[n];if(t){var r=[],o=m(e.store.proxy,!1);return r.push(o.curvePublic),t.wc.members.forEach((function(n){if(n!==e.store.network.historyKeeper){var o=t.mapId[n]||{};o.curvePublic&&-1===r.indexOf(o.curvePublic)&&r.push(o.curvePublic)}})),r}}(p,e)},f.storeValidateKey=function(e,n){p.validateKeys[e]=n},f.leavePad=function(e){delete p.validateKeys[e],Object.keys(p.channels).some((function(n){var t=p.channels[n];if(t.padChan===e){t.wc&&t.wc.leave();var r=p.store.network;return t.onReconnect&&r.off("reconnect",t.onReconnect),t.stopped=!0,delete p.channels[n],!0}}))},f.openTeamChat=function(n,r,o,a){!function(n,r,o,a,i){var s=o,c=s.channel,u=s.secret;if(c&&u){var f=t.once(t.mkAsync((function(){n.emit("TEAMCHAT_READY",c,[r]),i({readOnly:"object"==typeof u.keys&&!u.keys.validateKey,channel:c})}))),l=n.channels[c];if(l)l.onReady.reg((function(){-1===l.clients.indexOf(r)&&l.clients.push(r),f()}));else{u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var d=e.createEncryptor(u.keys),h=u.keys&&u.keys.validateKey||s.validateKey,p={teamId:o.teamId,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:d,channel:c,isTeamChat:!0,decrypt:function(e){return d.decrypt(e,h)},clients:[r],onUserlistUpdate:a,onReady:f};R(n,p)}}else i({error:"EINVAL"})}(p,o,n,r,a)},f.removeClient=function(e){!function(e,n){var t=e.friendsClients.indexOf(n);-1!==t&&e.friendsClients.splice(t,1),Object.keys(e.channels).forEach((function(t){var r=e.channels[t],o=r.clients,a=o.indexOf(n);if(-1!==a&&o.splice(a,1),0===o.length){r.wc&&r.wc.leave();var i=e.store.network;return r.onReconnect&&i.off("reconnect",r.onReconnect),r.stopped=!0,delete e.channels[t],!0}}))}(p,e)},f.execCommand=function(n,r,s){var u=r.cmd,f=r.data;"INIT_FRIENDS"!==u?"GET_ROOMS"!==u?"GET_MUTED_USERS"!==u?"GET_USERLIST"!==u?"OPEN_PAD_CHAT"!==u?"GET_MY_INFO"!==u?"REMOVE_FRIEND"!==u?"CANCEL_FRIEND"!==u?"MUTE_USER"!==u?"UNMUTE_USER"!==u?"GET_STATUS"!==u?"GET_MORE_HISTORY"!==u?"SEND_MESSAGE"!==u?"SET_CHANNEL_HEAD"!==u?"CLEAR_OWNED_CHANNEL"!==u||function(e,n,t){var r=e.channels[n];r?e.store.rpc?e.store.rpc.clearOwnedChannel(n,(function(o){t({error:o}),o||(r.messages=[],e.emit("CLEAR_CHANNEL",n,r.clients))})):t({error:"RPC_NOT_READY"}):t({error:"NO_CHANNEL"})}(p,f,s):_(p,f.id,f.sig,s):function(e,n,t,r){var o=e.channels[n];if(o)if(o.readOnly)r({error:"FORBIDDEN"});else if(e.store.network.webChannels.some((function(e){if(e.id===o.wc.id)return!0}))){var s=e.store.proxy||{},c=[l,s.curvePublic,+new Date,t];if(!o.isFriendChat){var u=s[a.displayNameKey]||i.anonymous+"#"+(s.uid||e.store.noDriveUid).slice(0,5);c.push(u)}var f=JSON.stringify(c),d=o.encrypt(f);o.wc.bcast(d).then((function(){x(e,o,d),r()}),(function(e){r({error:e})}))}else r({error:"NO_SUCH_CHANNEL"});else r({error:"NO_CHANNEL"})}(p,f.id,f.content,s):function(e,n,r,o,a){if("function"==typeof a)if("string"==typeof r){var i=e.channels[n];if(void 0!==i){var s=t.uid();A(e,s,n,a);var c=["GET_HISTORY_RANGE",i.id,{from:r,count:o,txid:s}],u=e.store.network;u.sendto(u.historyKeeper,JSON.stringify(c)).then((function(){}),(function(e){console.error(e)}))}else console.error("chan is undefined. we're going to have a problem here")}else a([])}(p,f.id,f.sig,f.count,s):function(e,n,t){var r=e.channels[n];if(r){r.onUserlistUpdate&&r.onUserlistUpdate();var o=e.store.proxy||{};t(r.wc.members.some((function(n){if(n!==e.store.network.historyKeeper){var t=r.mapId[n]||void 0;return!!t&&t.curvePublic!==o.curvePublic}})))}else t("NO_SUCH_CHANNEL")}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};delete i[n],e.emit("UPDATE_MUTED",null,C(e)),o(Object.keys(i).length)}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};i[n.curvePublic]||(i[n.curvePublic]=n,e.emit("UPDATE_MUTED",null,C(e))),o()}(p,f,s):function(e,n,r){var o=t.once(r);"function"==typeof o?e.Store.cancelFriendRequest(n,o):console.error("NO_CALLBACK")}(p,f,s):function(e,n,r){var a=t.once(r);if("function"==typeof a){var i=e.store.proxy,s=g(i,n);if(!s)return console.error("friend is not valid"),void a({error:"INVALID_FRIEND"});var c=e.channels[s.channel];if(e.store.mailbox&&s.curvePublic&&s.notifications)o.removeFriend(e.store,n,(function(n){n&&n.error?a({error:n.error}):(e.updateMetadata(),a(n))}));else if(c)try{var u=[d,i.curvePublic,+new Date],f=JSON.stringify(u),l=c.encrypt(f);c.wc.bcast(l).then((function(){I(e,n,s.channel),S(e,n,(function(){a()}))}),(function(t){t?a({error:t}):(I(e,n,s.channel),S(e,n,(function(){a()})))}))}catch(e){a({error:e})}else a({error:"NO_SUCH_CHANNEL"})}else console.error("NO_CALLBACK")}(p,f,s):function(e,n){var t=e.store.proxy||{};n({curvePublic:t.curvePublic,displayName:t[a.displayNameKey]})}(p,s):function(n,r,o,a){var i=o.channel,s=t.once(t.mkAsync((function(){n.emit("PADCHAT_READY",i,[r]),a()}))),c=n.channels[i];if(c)c.onReady.reg((function(){-1===c.clients.indexOf(r)&&c.clients.push(r),s()}));else{var u=o.secret;u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var f=e.createEncryptor(u.keys),l=u.keys&&u.keys.validateKey||n.validateKeys[u.channel],d={padChan:o.secret&&o.secret.channel,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:f,channel:o.channel,isPadChat:!0,decrypt:function(e){return f.decrypt(e,l)},clients:[r],onReady:s};R(n,d)}}(p,n,f,s):function(e,n,t){var r=e.channels[n.id];if(r)if(r.isFriendChat){var o=O(e,n.id);if(!o)return void t({error:"NO_SUCH_FRIEND"});t([o])}else t([]);else t({error:"NO_SUCH_CHANNEL"})}(p,f,s):function(e,n){var t=e.store.proxy;if(!n)return t.mutedUsers||{};n(t.mutedUsers||{})}(p,s):function(e,n,t){var r=e.store.proxy;if(n&&n.curvePublic){var o=n.curvePublic,a=g(r,o);if(!a)return void t({error:"NO_SUCH_FRIEND"});var i=e.channels[a.channel];return i?void t([{id:i.id,isFriendChat:!0,name:a.displayName,lastKnownHash:a.lastKnownHash,curvePublic:a.curvePublic,messages:i.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.padChat){var s=e.channels[n.padChat];return s?void t([{id:s.id,isPadChat:!0,messages:s.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.teamChat){var c=e.channels[n.teamChat];return c?void t([{id:c.id,isTeamChat:!0,messages:c.messages}]):void t({error:"NO_SUCH_CHANNEL"})}var u=Object.keys(e.channels).map((function(n){var t,r,o,a=e.channels[n];if(a.isFriendChat){var i=O(e,n);if(!i)return null;t=i.displayName,r=i.lastKnownHash,o=i.curvePublic}else{if(a.isPadChat)return;if(a.isTeamChat)return}return{id:a.id,isFriendChat:a.isFriendChat,name:t,lastKnownHash:r,curvePublic:o,messages:a.messages}})).filter((function(e){return e}));t(u)}(p,f,s):function(e,n,t){var r=E(e.store.proxy);c((function(t){Object.keys(r).forEach((function(o){if("me"!==o){var a=v(r[o]);"object"==typeof a&&a.channel&&P(e,n,a,t())}else delete r.me.channel}))})).nThen((function(){-1===e.friendsClients.indexOf(n)&&e.friendsClients.push(n),t()}))}(p,n,s)},f},f};e.exports&&(e.exports=n(M(),te(),Z(),je(),wn(),Y(),void 0,on(),qe()))})()}(wt)),wt.exports}var _t,Tt={exports:{}};function St(){return _t||(_t=1,function(e){(()=>{const n=(e,n,t,r)=>{var o={},a={};var i=function(n,t,o,a,i){var s,c=e.once(e.mkAsync(i)),u=function(n,t){if(!t)return e.find(n.store,["proxy","edPublic"]);var r=e.find(n,["store","proxy","teams",t]);return e.find(r,["keys","drive","edPublic"])}(n,a),f=n.Store,l=0,d=0,h=0;r((function(e){f.getFileSize(null,{channel:t},e((function(n){return n&&n.error?(e.abort(),void c(n)):void 0===n.size?(e.abort(),void c({error:"ENOENT"})):void(l=n.size)}))),f.getHistory(null,{channel:t,lastKnownHash:o},e((function(n){if(n&&n.error)return e.abort(),void c(n);if(!Array.isArray(n))return e.abort(),void c({error:"EINVAL"});if(n.length){s=n[0].hash;var t=n.map((function(e){return e.msg}));d=t.join("\n").length}})),!0),f.getPadMetadata(null,{channel:t},e((function(n){if((!n||!n.error)&&n&&"object"==typeof n)return h=JSON.stringify(n).length,n&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(u)?void 0:(e.abort(),void c({error:"INSUFFICIENT_PERMISSIONS"}))})))})).nThen((function(){c({size:l-h-d,hash:s})}))};return a.GET_HISTORY_SIZE=function(o,a,s,c){if(o.store.loggedIn&&o.store.rpc){var u=a.channels;if(Array.isArray(u)){var f=[];a.account?u=function(r){var o=[],a=e.find(r.store,["proxy","edPublic"]);-1!==(e.find(r.store,["driveMetadata","owners"])||[]).indexOf(a)&&o.push(r.store.driveChannel);var i=r.store.proxy.profile;if(i){var s=i.edit?n.hrefToHexChannelId("/profile/#"+i.edit,null):null;s&&o.push(s)}r.store.proxy.todo&&o.push(n.hrefToHexChannelId("/todo/#"+r.store.proxy.todo,null));var c=r.store.proxy.mailboxes;if(c){var u=Object.keys(c).map((function(e){return{lastKnownHash:c[e].lastKnownHash,channel:c[e].channel}}));Array.prototype.push.apply(o,u)}var f=r.store.proxy[t.SHARED_FOLDERS];if(f){var l=Object.keys(f).map((function(e){var n=f[e];if(n&&n.owners&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(a))return n.channel})).filter(Boolean);Array.prototype.push.apply(o,l)}return o}(o):a.team&&(u=function(n,t){let r=e.find(n.store,["proxy","teams",t]);if(!r)return[];let o=[r.channel],a=r.keys.roster;return o.push({channel:a.channel,lastKnownHash:a.lastKnownHash}),o}(o,a.team));var l=0,d=[];r((function(e){u.forEach((function(n){var t,r=n;"object"==typeof n&&n.channel&&(r=n.channel,t=n.lastKnownHash),i(o,r,t,a.teamId,e((function(e){e&&e.error?f.push(e.error):(l+=e.size,e.hash&&d.push({channel:r,hash:e.hash}))})))}))})).nThen((function(){c({warning:f.length?f:void 0,channels:d,size:l})}))}else c({error:"EINVAL"})}else c({error:"INSUFFICIENT_PERMISSIONS"})},a.TRIM_HISTORY=function(e,n,t,o){if(e.store.loggedIn&&e.store.rpc){var a=n.channels;if(Array.isArray(a)){var i=function(e,n){if(!n)return e.store.rpc;var t=e.store.modules.team;if(t){var r=t.getTeam(n);if(r)return r.rpc}}(e,n.teamId);if(i){var s=[];r((function(e){a.forEach((function(n){i.trimHistory(n,e((function(e){e&&s.push(e)})))}))})).nThen((function(){1===a.length&&s.length?o({error:s[0]}):o({warning:s.length?s:void 0})}))}else o({error:"ENORPC"})}else o({error:"EINVAL"})}else o({error:"INSUFFICIENT_PERMISSIONS"})},o.init=function(e,n,t){var r={};if(e.store){var o={store:e.store,Store:e.Store,pinPads:e.pinPads,updateMetadata:e.updateMetadata,emit:t};return r.execCommand=function(e,n,t){var r=n.cmd,i=n.data;try{a[r](o,i,e,t)}catch(e){console.error(e)}},r}},o};e.exports&&(e.exports=n(Z(),te(),Ue(),qe()))})()}(Tt)),Tt.exports}var xt,Nt={exports:{}},It={exports:{}};function Ct(){return xt||(xt=1,function(e){(()=>{const n=e=>{var n={};const t=globalThis;var r=function(){},o=n.getWeekNo=function(e,n){"number"!=typeof n&&(n=1);var t=new Date(e.getFullYear(),0,1),r=t.getDay()-n;r=r>=0?r:r+7;var o,a=Math.floor((e.getTime()-t.getTime())/864e5)+1;if(r<4){if((o=Math.floor((a+r-1)/7)+1)>52){var i=new Date(e.getFullYear()+1,0,1).getDay()-n;o=(i=i>=0?i:i+7)<4?1:53}}else o=Math.floor((a+r-1)/7);return o},a=function(e){var n=new Date(e.getFullYear(),0,0),t=e-n+60*(n.getTimezoneOffset()-e.getTimezoneOffset())*1e3;return Math.floor(t/864e5)},i=n.DAYORDER=["SU","MO","TU","WE","TH","FR","SA"],s=function(e){var n=Number(e.slice(0,-2)),t=i.indexOf(e.slice(-2));return n?[n,t]:t},c=function(e,n){var t=e.getDay();t>=(n="number"==typeof n?n:1)?e.setDate(e.getDate()-(t-n)):e.setDate(e.getDate()-(7+t-n))},u=function(e){return e.getFullYear()+"-"+(e.getMonth()+1)+"-"+e.getDate()},f={daily:function(e,n){e.setDate(e.getDate()+n)},weekly:function(e,n){e.setDate(e.getDate()+7*n)},monthly:function(e,n){e.setMonth(e.getMonth()+n)},yearly:function(e,n){e.setFullYear(e.getFullYear()+n)}},l={month:function(e,n,t){var r=new Date(n.start),o=(t-(e.getMonth()+1)+12)%12,a=e.getMonth()+o;if(e.setMonth(a),e.setDate(r.getDate()),e.getMonth()===a)return!0},weekno:function(e,n,t,r){var a=r&&r.wkst;"number"!=typeof a&&(a=1);var i=new Date(n.start),s=new Date(e.getFullYear(),11,31),u=o(s,a),f=1===u;1===u&&(u=52);var l=o(e,a);if(!t||t>u)return!1;t<0&&(t=u+t+1);var d=t-l,h=new Date(+e);h.setDate(h.getDate()+7*d),c(h,a);var p="aaaaaaa".split("").map((function(n,t){var r=new Date(+h);if(r.setDate(r.getDate()+t),r.getFullYear()===e.getFullYear())return r.toLocaleDateString()!==i.toLocaleDateString()&&r})).filter(Boolean);return 1===t&&f&&(c(s,a),"aaaaaaa".split("").some((function(n,t){var r=new Date(+s);if(r.setDate(r.getDate()+t),r.toLocaleDateString()!==i.toLocaleDateString())return r.getFullYear()>e.getFullYear()||void p.push(r)}))),p.length?p:void 0}};l.yearday=function(e,n,t){var r=e.getFullYear();if(function(e,n){if(!("number"!=typeof n||Math.abs(n)<1||Math.abs(n)>366))return n<0&&(n=a(new Date(e.getFullYear(),11,31))+n+1),e.setMonth(0),e.setDate(n),!0}(e,t)&&e.getFullYear()===r)return!0},l.monthday=function(e,n,t,r){if("number"!=typeof t||Math.abs(t)<1||Math.abs(t)>31)return!1;var o=function(e,n){var t=e.getMonth();n<0&&(n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate()+n+1);return e.setDate(n),e.getMonth()===t};if("monthly"===r.freq)return o(e,t);var a="aaaaaaaaaaaa".split("").map((function(n,r){var a=new Date(e.getFullYear(),r,1);return o(a,t)?a:void 0})).filter(Boolean);return a.length?a:void 0},l.day=function(e,n,t,r){var o,a=s(t);Array.isArray(a)&&(o=a[0],a=a[1]);var i=[];if(![0,1,2,3,4,5,6].includes(a))return!1;var c,u=function(e){if(o){var n=[];"aaaaaaaaaaaa".split("").some((function(t,r){if(void 0===e||r===e){var a,s=i.filter((function(e){return e.getMonth()===r}));return a=o<0?s.length+o:o-1,n.push(s[a]),void 0!==e&&r===e}})),i=n.filter(Boolean)}};if("yearly"===r.freq){c=new Date(+e);for(var f=e.getFullYear();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getFullYear()===f;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(),i}if("monthly"===r.freq){c=new Date(+e);for(var l=e.getMonth();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getMonth()===l;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(l),i}if("weekly"===r.freq)for(;e.getDay()!==a;)e.setDate(e.getDate()+1);return!0};var d={month:function(e,n){return e.filter((function(e){return n.includes(e.getMonth()+1)}))},weekno:function(e,n,t){return e.filter((function(e){var r=t&&t.wkst;"number"!=typeof r&&(r=1);var a=new Date(e.getFullYear(),11,31),i=o(a,r);1===i&&(i=52);var s=o(e,r);return n.some((function(e){return e>0?e===s:s===i+e+1}))}))},yearday:function(e,n){return e.filter((function(e){var t=a(e),r=a(new Date(e.getFullYear(),11,31));return n.some((function(e){return e>0?e===t:t===r+e+1}))}))},monthday:function(n,t){return n.filter((function(n){var r=e.clone(t);return(r=r.map((function(e){e<0&&(e=new Date(n.getFullYear(),n.getMonth()+1,0).getDate()+e+1);return e}))).includes(n.getDate())}))},day:function(e,n,t){return e.filter((function(e){var r=e.toLocaleDateString(),o="yearly";return("monthly"===t.freq||"yearly"===t.freq&&t.by&&t.by.month)&&(o="monthly"),n.some((function(n){var t,a=s(n);if(Array.isArray(a)&&(t=a[0],a=a[1]),!t)return e.getDay()===a;var i=new Date(e.getFullYear(),e.getMonth(),1);return"yearly"===o&&i.setMonth(0),l.day(i,{},n,{freq:o}).some((function(e){return e.toLocaleDateString()===r}))}))}))},setpos:function(n,t){var r=n.slice(),o=e.deduplicateString(t.slice().map((function(e){return e>0?e-1:0!==e?r.length+e:void 0})));return n.filter((function(e){var n=r.indexOf(e);return o.includes(n)}))}},h=["month","weekno","yearday","monthday","day"],p=["month","monthday","day"];n.getMonthId=function(e){return e.getFullYear()+"-"+e.getMonth()};var v=t.CP_calendar_cache={},y={};n.resetCache=function(){v=t.CP_calendar_cache={},y={}};var m=function(n){if(!n.recUpdate)return[];var t={},r=n.recUpdate.from;return Object.keys(r||{}).forEach((function(e){var n=r[e];n.recurrenceRule&&(t[e]=n.recurrenceRule)})),Object.keys(t).sort((function(e,n){return Number(e)-Number(n)})).map((function(n){var r=e.clone(t[n]);if(f[r.freq]&&!(r.interval&&r.interval<1))return r._start=Number(n),r})).filter(Boolean)};n.getRecurring=function(n,o){t.CP_DEV_MODE&&(r=console.warn);var i=[];return n.forEach((function(n){var t=n.split("-"),s=new Date(t[0],t[1]),g=new Date(+s);g.setMonth(g.getMonth()+1),g.setMilliseconds(-1),r("Compute month",s.toLocaleDateString()),(o||[]).forEach((function(n){var t=new Date(n.start),o=new Date(n.end),E=n,b=n.recurrenceRule;if(b){var O=m(n),A=O.shift();if(!(t>=g)){for(var w=b.until,D=O.slice(),_=A;_&&_._start&&_._startn)){var t;if(n.getFullYear()===e.getFullYear())t=a(n)-a(e);else{var r=new Date(e.getFullYear(),11,31);for(t=a(r)-a(e)+a(n);r.getFullYear()+1=S)){r("Start iteration",a.toLocaleDateString());var m=function(n,t,o){var a=e.clone(t),i=new Date(a.start),s=a.id.split("|")[0],u=o.toLocaleDateString();v[s]=v[s]||{};var y=n.interval||1,m=n.freq,g=[],E=function(e,t){g=d[e](g,t,n)},b=function(e){return function(t){var r=new Date(+o);"yearly"===n.freq?(r.setMonth(0),r.setDate(1)):"monthly"===n.freq?r.setDate(1):"weekly"===n.freq?c(r,n.wkst):n.freq;var s=l[e](r,a,t,n);if(s)if(Array.isArray(s))s=s.filter((function(e){return e.toLocaleDateString()!==i.toLocaleDateString()})),Array.prototype.push.apply(g,s);else{if(r.toLocaleDateString()===i.toLocaleDateString())return;g.push(r)}}},O=e.once((function(){f[m](o,y)})),A=function(){"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O();var e=new Date(+o);if("monthly"===m||"yearly"===m){if(e.setDate(i.getDate()),e.getDate()!==i.getDate())return;if("yearly"===m&&e.getMonth()!==i.getMonth())return}g.push(e)};if(Array.isArray(v[s][u]))return r("Get cache",s,u),"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O(),v[s][u];if(n.by&&"yearly"===m){var w=h.slice(),D=!1;(n.by.weekno||n.by.yearday||n.by.monthday||n.by.day)&&(w.shift(),D=!0);var _=!0;w.forEach((function(e){var t=n.by[e];t&&(_?(t.forEach(b(e)),_=!1):"day"===e?n.by.yearday||n.by.monthday||n.by.weekno?E("day",n.by.day):n.by.day.forEach(b("day")):E(e,t))})),n.by.month&&D&&E("month",n.by.month)}n.by&&"monthly"===m&&(n.by.monthday||n.by.day?n.by.monthday?n.by.monthday.forEach(b("monthday")):n.by.day&&n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month),n.by.day&&n.by.monthday&&E("day",n.by.day)),n.by&&"weekly"===m&&(n.by.day?n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month)),n.by&&"daily"===m&&(A(),p.forEach((function(e){var t=n.by[e];t&&E(e,t)}))),g.sort((function(e,n){return e-n})),n.by&&n.by.setpos&&E("setpos",n.by.setpos),n.by&&Object.keys(n.by).length?O():A();var T=[];return g=g.filter((function(e){var n=new Date(+e).toLocaleDateString();return!T.includes(n)&&(T.push(n),!0)})),r("Set cache",s,u),v[s][u]=g,g}(b,n,a);if(r("Iteration results",JSON.stringify(m.map((function(e){return new Date(e).toLocaleDateString()})))),!m.length)return a.getFullYear()=S)return r(h.toLocaleDateString(),"count"),w=!0,!0;if(h>=g)return r(h.toLocaleDateString(),"endMonth"),w=!0,!0;if(b.until&&h>b.until)return r(h.toLocaleDateString(),"until"),w=!0,!0;if(!(h=g||h=s){if(y[c.id]&&y[c.id].includes(c.start))return;y[c.id]=y[c.id]||[],y[c.id].push(c.start)}if(E.timeZone&&!c.isAllDay){var m=function(e,n,t){var r=function(e,n){let t=e.toLocaleString("en-CA",{timeZone:n,hour12:!1}).replace(", ","T");return t+="."+e.getMilliseconds().toString().padStart(3,"0"),-(new Date(t+"Z")-e)},o=Intl.DateTimeFormat().resolvedOptions().timeZone,a=r(n,e)-r(t,e);return r(n,o)-r(t,o)-a}(E.timeZone,t,h);c.start+=m,c.end+=m}return i.push(c),D?(v(),!0):void 0}r(h.toLocaleDateString(),"start")})),w||N(a)}};N(t),r("Added this month (all events)",i.map((function(e){return new Date(e.start).toLocaleDateString()})))}}}}}))})),i},n.getAllOccurrences=function(e){if(!e.recurrenceRule)return[e.start];var t=e.recurrenceRule;if(!t.until&&!t.count)return!1;var r=[e.start],o=new Date(e.start);o.setDate(15);for(var a=[],i=0;(a=n.getRecurring([n.getMonthId(o)],[e]))&&(t.count?r.length=1e4;)t.setDate(t.getDate()-a),o++;return{d:o*=a,h:(t=new Date(n)).getHours()-r.getHours(),m:t.getMinutes()-r.getMinutes()}};return n.applyUpdates=function(e){return e.forEach((function(e){if(e.raw={start:e.start,end:e.end},e.recUpdate){var n,t=e.recUpdate.from||{},r=e.recUpdate.one||{},o=e.start,a=m(e).filter((function(e){return e._start>o})).shift(),i=function(n,t){var r=n[t],o=new Date(e.raw[t]);o.setDate(o.getDate()+r.d),o.setHours(o.getHours()+r.h),o.setMinutes(o.getMinutes()+r.m),e[t]=+o};(n=t,Object.keys(n).sort((function(e,n){return Number(e)-Number(n)}))).forEach((function(n){o",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},o={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var n=e%100;if(n>3&&n<21)return"th";switch(n%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},a=function(e,n){return void 0===n&&(n=2),("000"+e).slice(-1*n)},i=function(e){return!0===e?1:0};function s(e,n){var t;return function(){var r=this;clearTimeout(t),t=setTimeout((function(){return e.apply(r,arguments)}),n)}}var c=function(e){return e instanceof Array?e:[e]};function u(e,n,t){if(!0===t)return e.classList.add(n);e.classList.remove(n)}function f(e,n,t){var r=window.document.createElement(e);return n=n||"",t=t||"",r.className=n,void 0!==t&&(r.textContent=t),r}function l(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function d(e,n){return n(e)?e:e.parentNode?d(e.parentNode,n):void 0}function h(e,n){var t=f("div","numInputWrapper"),r=f("input","numInput "+e),o=f("span","arrowUp"),a=f("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?r.type="number":(r.type="text",r.pattern="\\d*"),void 0!==n)for(var i in n)r.setAttribute(i,n[i]);return t.appendChild(r),t.appendChild(o),t.appendChild(a),t}function p(e){try{return"function"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(n){return e.target}}var v=function(){},y=function(e,n,t){return t.months[n?"shorthand":"longhand"][e]},m={D:v,F:function(e,n,t){e.setMonth(t.months.longhand.indexOf(n))},G:function(e,n){e.setHours(parseFloat(n))},H:function(e,n){e.setHours(parseFloat(n))},J:function(e,n){e.setDate(parseFloat(n))},K:function(e,n,t){e.setHours(e.getHours()%12+12*i(new RegExp(t.amPM[1],"i").test(n)))},M:function(e,n,t){e.setMonth(t.months.shorthand.indexOf(n))},S:function(e,n){e.setSeconds(parseFloat(n))},U:function(e,n){return new Date(1e3*parseFloat(n))},W:function(e,n,t){var r=parseInt(n),o=new Date(e.getFullYear(),0,2+7*(r-1),0,0,0,0);return o.setDate(o.getDate()-o.getDay()+t.firstDayOfWeek),o},Y:function(e,n){e.setFullYear(parseFloat(n))},Z:function(e,n){return new Date(n)},d:function(e,n){e.setDate(parseFloat(n))},h:function(e,n){e.setHours(parseFloat(n))},i:function(e,n){e.setMinutes(parseFloat(n))},j:function(e,n){e.setDate(parseFloat(n))},l:v,m:function(e,n){e.setMonth(parseFloat(n)-1)},n:function(e,n){e.setMonth(parseFloat(n)-1)},s:function(e,n){e.setSeconds(parseFloat(n))},u:function(e,n){return new Date(parseFloat(n))},w:v,y:function(e,n){e.setFullYear(2e3+parseFloat(n))}},g={D:"(\\w+)",F:"(\\w+)",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"(\\w+)",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"(\\w+)",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},E={Z:function(e){return e.toISOString()},D:function(e,n,t){return n.weekdays.shorthand[E.w(e,n,t)]},F:function(e,n,t){return y(E.n(e,n,t)-1,!1,n)},G:function(e,n,t){return a(E.h(e,n,t))},H:function(e){return a(e.getHours())},J:function(e,n){return void 0!==n.ordinal?e.getDate()+n.ordinal(e.getDate()):e.getDate()},K:function(e,n){return n.amPM[i(e.getHours()>11)]},M:function(e,n){return y(e.getMonth(),!0,n)},S:function(e){return a(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,n,t){return t.getWeek(e)},Y:function(e){return a(e.getFullYear(),4)},d:function(e){return a(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return a(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,n){return n.weekdays.longhand[e.getDay()]},m:function(e){return a(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a,s=e.isMobile,c=void 0!==s&&s;return function(e,n,r){var o=r||i;return void 0===t.formatDate||c?n.split("").map((function(n,r,a){return E[n]&&"\\"!==a[r-1]?E[n](e,o,t):"\\"!==n?n:""})).join(""):t.formatDate(e,n,o)}},O=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a;return function(e,n,o,a){if(0===e||e){var s,c=a||i,u=e;if(e instanceof Date)s=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)s=new Date(e);else if("string"==typeof e){var f=n||(t||r).dateFormat,l=String(e).trim();if("today"===l)s=new Date,o=!0;else if(/Z$/.test(l)||/GMT$/.test(l))s=new Date(e);else if(t&&t.parseDate)s=t.parseDate(e,f);else{s=t&&t.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var d=void 0,h=[],p=0,v=0,y="";p=0?new Date:new Date(E.config.minDate.getTime()),t=D(E.config);n.setHours(t.hours,t.minutes,t.seconds,n.getMilliseconds()),E.selectedDates=[n],E.latestSelectedDateObj=n}void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var n="keydown"===e.type,t=p(e),r=t;void 0!==E.amPM&&t===E.amPM&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]);var o=parseFloat(r.getAttribute("min")),s=parseFloat(r.getAttribute("max")),c=parseFloat(r.getAttribute("step")),u=parseInt(r.value,10),f=u+c*(e.delta||(n?38===e.which?1:-1:0));if(void 0!==r.value&&2===r.value.length){var l=r===E.hourElement,d=r===E.minuteElement;fs&&(f=r===E.hourElement?f-s-i(!E.amPM):o,d&&L(void 0,1,E.hourElement)),E.amPM&&l&&(1===c?f+u===23:Math.abs(f-u)>c)&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]),r.value=a(f)}}(e);var r=E._input.value;N(),be(),E._input.value!==r&&E._debouncedChange()}function N(){if(void 0!==E.hourElement&&void 0!==E.minuteElement){var e,n,t=(parseInt(E.hourElement.value.slice(-2),10)||0)%24,r=(parseInt(E.minuteElement.value,10)||0)%60,o=void 0!==E.secondElement?(parseInt(E.secondElement.value,10)||0)%60:0;void 0!==E.amPM&&(e=t,n=E.amPM.textContent,t=e%12+12*i(n===E.l10n.amPM[1]));var a=void 0!==E.config.minTime||E.config.minDate&&E.minDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.minDate,!0);if(void 0!==E.config.maxTime||E.config.maxDate&&E.maxDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.maxDate,!0)){var s=void 0!==E.config.maxTime?E.config.maxTime:E.config.maxDate;(t=Math.min(t,s.getHours()))===s.getHours()&&(r=Math.min(r,s.getMinutes())),r===s.getMinutes()&&(o=Math.min(o,s.getSeconds()))}if(a){var c=void 0!==E.config.minTime?E.config.minTime:E.config.minDate;(t=Math.max(t,c.getHours()))===c.getHours()&&r=12)]),void 0!==E.secondElement&&(E.secondElement.value=a(t)))}function R(e){var n=p(e),t=parseInt(n.value)+(e.delta||0);(t/1e3>1||"Enter"===e.key&&!/[^\d]/.test(t.toString()))&&X(t)}function P(e,n,t,r){return n instanceof Array?n.forEach((function(n){return P(e,n,t,r)})):e instanceof Array?e.forEach((function(e){return P(e,n,t,r)})):(e.addEventListener(n,t,r),void E._handlers.push({remove:function(){return e.removeEventListener(n,t)}}))}function k(){ve("onChange")}function M(e,n){var t=void 0!==e?E.parseDate(e):E.latestSelectedDateObj||(E.config.minDate&&E.config.minDate>E.now?E.config.minDate:E.config.maxDate&&E.config.maxDate=0&&A(e,E.selectedDates[1])<=0}(n)&&!me(n)&&a.classList.add("inRange"),E.weekNumbers&&1===E.config.showMonths&&"prevMonthDay"!==e&&t%7==1&&E.weekNumbers.insertAdjacentHTML("beforeend",""+E.config.getWeek(n)+""),ve("onDayCreate",a),a}function j(e){e.focus(),"range"===E.config.mode&&re(e)}function K(e){for(var n=e>0?0:E.config.showMonths-1,t=e>0?E.config.showMonths:-1,r=n;r!=t;r+=e)for(var o=E.daysContainer.children[r],a=e>0?0:o.children.length-1,i=e>0?o.children.length:-1,s=a;s!=i;s+=e){var c=o.children[s];if(-1===c.className.indexOf("hidden")&&$(c.dateObj))return c}}function U(e,n){var t=ee(document.activeElement||document.body),r=void 0!==e?e:t?document.activeElement:void 0!==E.selectedDateElem&&ee(E.selectedDateElem)?E.selectedDateElem:void 0!==E.todayDateElem&&ee(E.todayDateElem)?E.todayDateElem:K(n>0?1:-1);void 0===r?E._input.focus():t?function(e,n){for(var t=-1===e.className.indexOf("Month")?e.dateObj.getMonth():E.currentMonth,r=n>0?E.config.showMonths:-1,o=n>0?1:-1,a=t-E.currentMonth;a!=r;a+=o)for(var i=E.daysContainer.children[a],s=t-E.currentMonth===a?e.$i+n:n<0?i.children.length-1:0,c=i.children.length,u=s;u>=0&&u0?c:-1);u+=o){var f=i.children[u];if(-1===f.className.indexOf("hidden")&&$(f.dateObj)&&Math.abs(e.$i-u)>=Math.abs(n))return j(f)}E.changeMonth(o),U(K(o),0)}(r,n):j(r)}function B(e,n){for(var t=(new Date(e,n,1).getDay()-E.l10n.firstDayOfWeek+7)%7,r=E.utils.getDaysInMonth((n-1+12)%12,e),o=E.utils.getDaysInMonth(n,e),a=window.document.createDocumentFragment(),i=E.config.showMonths>1,s=i?"prevMonthDay hidden":"prevMonthDay",c=i?"nextMonthDay hidden":"nextMonthDay",u=r+1-t,l=0;u<=r;u++,l++)a.appendChild(H(s,new Date(e,n-1,u),u,l));for(u=1;u<=o;u++,l++)a.appendChild(H("",new Date(e,n,u),u,l));for(var d=o+1;d<=42-t&&(1===E.config.showMonths||l%7!=0);d++,l++)a.appendChild(H(c,new Date(e,n+1,d%o),d,l));var h=f("div","dayContainer");return h.appendChild(a),h}function V(){if(void 0!==E.daysContainer){l(E.daysContainer),E.weekNumbers&&l(E.weekNumbers);for(var e=document.createDocumentFragment(),n=0;n1||"dropdown"!==E.config.monthSelectorType)){var e=function(e){return!(void 0!==E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&eE.config.maxDate.getMonth())};E.monthsDropdownContainer.tabIndex=-1,E.monthsDropdownContainer.innerHTML="";for(var n=0;n<12;n++)if(e(n)){var t=f("option","flatpickr-monthDropdown-month");t.value=new Date(E.currentYear,n).getMonth().toString(),t.textContent=y(n,E.config.shorthandCurrentMonth,E.l10n),t.tabIndex=-1,E.currentMonth===n&&(t.selected=!0),E.monthsDropdownContainer.appendChild(t)}}}function G(){var e,n=f("div","flatpickr-month"),t=window.document.createDocumentFragment();E.config.showMonths>1||"static"===E.config.monthSelectorType?e=f("span","cur-month"):(E.monthsDropdownContainer=f("select","flatpickr-monthDropdown-months"),E.monthsDropdownContainer.setAttribute("aria-label",E.l10n.monthAriaLabel),P(E.monthsDropdownContainer,"change",(function(e){var n=p(e),t=parseInt(n.value,10);E.changeMonth(t-E.currentMonth),ve("onMonthChange")})),Y(),e=E.monthsDropdownContainer);var r=h("cur-year",{tabindex:"-1"}),o=r.getElementsByTagName("input")[0];o.setAttribute("aria-label",E.l10n.yearAriaLabel),E.config.minDate&&o.setAttribute("min",E.config.minDate.getFullYear().toString()),E.config.maxDate&&(o.setAttribute("max",E.config.maxDate.getFullYear().toString()),o.disabled=!!E.config.minDate&&E.config.minDate.getFullYear()===E.config.maxDate.getFullYear());var a=f("div","flatpickr-current-month");return a.appendChild(e),a.appendChild(r),t.appendChild(a),n.appendChild(t),{container:n,yearElement:o,monthElement:e}}function J(){l(E.monthNav),E.monthNav.appendChild(E.prevMonthNav),E.config.showMonths&&(E.yearElements=[],E.monthElements=[]);for(var e=E.config.showMonths;e--;){var n=G();E.yearElements.push(n.yearElement),E.monthElements.push(n.monthElement),E.monthNav.appendChild(n.container)}E.monthNav.appendChild(E.nextMonthNav)}function q(){E.weekdayContainer?l(E.weekdayContainer):E.weekdayContainer=f("div","flatpickr-weekdays");for(var e=E.config.showMonths;e--;){var n=f("div","flatpickr-weekdaycontainer");E.weekdayContainer.appendChild(n)}return W(),E.weekdayContainer}function W(){if(E.weekdayContainer){var e=E.l10n.firstDayOfWeek,t=n(E.l10n.weekdays.shorthand);e>0&&e\n "+t.join("")+"\n \n "}}function z(e,n){void 0===n&&(n=!0);var t=n?e:e-E.currentMonth;t<0&&!0===E._hidePrevMonthArrow||t>0&&!0===E._hideNextMonthArrow||(E.currentMonth+=t,(E.currentMonth<0||E.currentMonth>11)&&(E.currentYear+=E.currentMonth>11?1:-1,E.currentMonth=(E.currentMonth+12)%12,ve("onYearChange"),Y()),V(),ve("onMonthChange"),ge())}function Q(e){return!(!E.config.appendTo||!E.config.appendTo.contains(e))||E.calendarContainer.contains(e)}function Z(e){if(E.isOpen&&!E.config.inline){var n=p(e),t=Q(n),r=n===E.input||n===E.altInput||E.element.contains(n)||e.path&&e.path.indexOf&&(~e.path.indexOf(E.input)||~e.path.indexOf(E.altInput)),o="blur"===e.type?r&&e.relatedTarget&&!Q(e.relatedTarget):!r&&!t&&!Q(e.relatedTarget),a=!E.config.ignoredFocusElements.some((function(e){return e.contains(n)}));o&&a&&(void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement&&""!==E.input.value&&void 0!==E.input.value&&x(),E.close(),E.config&&"range"===E.config.mode&&1===E.selectedDates.length&&(E.clear(!1),E.redraw()))}}function X(e){if(!(!e||E.config.minDate&&eE.config.maxDate.getFullYear())){var n=e,t=E.currentYear!==n;E.currentYear=n||E.currentYear,E.config.maxDate&&E.currentYear===E.config.maxDate.getFullYear()?E.currentMonth=Math.min(E.config.maxDate.getMonth(),E.currentMonth):E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&(E.currentMonth=Math.max(E.config.minDate.getMonth(),E.currentMonth)),t&&(E.redraw(),ve("onYearChange"),Y())}}function $(e,n){var t;void 0===n&&(n=!0);var r=E.parseDate(e,void 0,n);if(E.config.minDate&&r&&A(r,E.config.minDate,void 0!==n?n:!E.minDateHasTime)<0||E.config.maxDate&&r&&A(r,E.config.maxDate,void 0!==n?n:!E.maxDateHasTime)>0)return!1;if(!E.config.enable&&0===E.config.disable.length)return!0;if(void 0===r)return!1;for(var o=!!E.config.enable,a=null!==(t=E.config.enable)&&void 0!==t?t:E.config.disable,i=0,s=void 0;i=s.from.getTime()&&r.getTime()<=s.to.getTime())return o}return!o}function ee(e){return void 0!==E.daysContainer&&-1===e.className.indexOf("hidden")&&-1===e.className.indexOf("flatpickr-disabled")&&E.daysContainer.contains(e)}function ne(e){e.target!==E._input||!(E.selectedDates.length>0||E._input.value.length>0)||e.relatedTarget&&Q(e.relatedTarget)||E.setDate(E._input.value,!0,e.target===E.altInput?E.config.altFormat:E.config.dateFormat)}function te(e){var n=p(e),t=E.config.wrap?v.contains(n):n===E._input,r=E.config.allowInput,o=E.isOpen&&(!r||!t),a=E.config.inline&&t&&!r;if(13===e.keyCode&&t){if(r)return E.setDate(E._input.value,!0,n===E.altInput?E.config.altFormat:E.config.dateFormat),n.blur();E.open()}else if(Q(n)||o||a){var i=!!E.timeContainer&&E.timeContainer.contains(n);switch(e.keyCode){case 13:i?(e.preventDefault(),x(),fe()):le(e);break;case 27:e.preventDefault(),fe();break;case 8:case 46:t&&!E.config.allowInput&&(e.preventDefault(),E.clear());break;case 37:case 39:if(i||t)E.hourElement&&E.hourElement.focus();else if(e.preventDefault(),void 0!==E.daysContainer&&(!1===r||document.activeElement&&ee(document.activeElement))){var s=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),z(s),U(K(1),0)):U(void 0,s)}break;case 38:case 40:e.preventDefault();var c=40===e.keyCode?1:-1;E.daysContainer&&void 0!==n.$i||n===E.input||n===E.altInput?e.ctrlKey?(e.stopPropagation(),X(E.currentYear-c),U(K(1),0)):i||U(void 0,7*c):n===E.currentYearElement?X(E.currentYear-c):E.config.enableTime&&(!i&&E.hourElement&&E.hourElement.focus(),x(e),E._debouncedChange());break;case 9:if(i){var u=[E.hourElement,E.minuteElement,E.secondElement,E.amPM].concat(E.pluginElements).filter((function(e){return e})),f=u.indexOf(n);if(-1!==f){var l=u[f+(e.shiftKey?-1:1)];e.preventDefault(),(l||E._input).focus()}}else!E.config.noCalendar&&E.daysContainer&&E.daysContainer.contains(n)&&e.shiftKey&&(e.preventDefault(),E._input.focus())}}if(void 0!==E.amPM&&n===E.amPM)switch(e.key){case E.l10n.amPM[0].charAt(0):case E.l10n.amPM[0].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[0],N(),be();break;case E.l10n.amPM[1].charAt(0):case E.l10n.amPM[1].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[1],N(),be()}(t||Q(n))&&ve("onKeyDown",e)}function re(e){if(1===E.selectedDates.length&&(!e||e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled"))){for(var n=e?e.dateObj.getTime():E.days.firstElementChild.dateObj.getTime(),t=E.parseDate(E.selectedDates[0],void 0,!0).getTime(),r=Math.min(n,E.selectedDates[0].getTime()),o=Math.max(n,E.selectedDates[0].getTime()),a=!1,i=0,s=0,c=r;cr&&ci)?i=c:c>t&&(!s||c0&&h0&&h>s;return p?(d.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach((function(e){d.classList.remove(e)})),"continue"):a&&!p?"continue":(["startRange","inRange","endRange","notAllowed"].forEach((function(e){d.classList.remove(e)})),void(void 0!==e&&(e.classList.add(n<=E.selectedDates[0].getTime()?"startRange":"endRange"),tn&&h===t&&d.classList.add("endRange"),h>=i&&(0===s||h<=s)&&(u=t,l=n,(c=h)>Math.min(u,l)&&c0||t.getMinutes()>0||t.getSeconds()>0),E.selectedDates&&(E.selectedDates=E.selectedDates.filter((function(e){return $(e)})),E.selectedDates.length||"min"!==e||I(t),be()),E.daysContainer&&(ue(),void 0!==t?E.currentYearElement[e]=t.getFullYear().toString():E.currentYearElement.removeAttribute(e),E.currentYearElement.disabled=!!r&&void 0!==t&&r.getFullYear()===t.getFullYear())}}function ie(){return E.config.wrap?v.querySelector("[data-input]"):v}function se(){"object"!=typeof E.config.locale&&void 0===S.l10ns[E.config.locale]&&E.config.errorHandler(new Error("flatpickr: invalid locale "+E.config.locale)),E.l10n=e(e({},S.l10ns.default),"object"==typeof E.config.locale?E.config.locale:"default"!==E.config.locale?S.l10ns[E.config.locale]:void 0),g.K="("+E.l10n.amPM[0]+"|"+E.l10n.amPM[1]+"|"+E.l10n.amPM[0].toLowerCase()+"|"+E.l10n.amPM[1].toLowerCase()+")",void 0===e(e({},m),JSON.parse(JSON.stringify(v.dataset||{}))).time_24hr&&void 0===S.defaultConfig.time_24hr&&(E.config.time_24hr=E.l10n.time_24hr),E.formatDate=b(E),E.parseDate=O({config:E.config,l10n:E.l10n})}function ce(e){if("function"!=typeof E.config.position){if(void 0!==E.calendarContainer){ve("onPreCalendarPosition");var n=e||E._positionElement,t=Array.prototype.reduce.call(E.calendarContainer.children,(function(e,n){return e+n.offsetHeight}),0),r=E.calendarContainer.offsetWidth,o=E.config.position.split(" "),a=o[0],i=o.length>1?o[1]:null,s=n.getBoundingClientRect(),c=window.innerHeight-s.bottom,f="above"===a||"below"!==a&&ct,l=window.pageYOffset+s.top+(f?-t-2:n.offsetHeight+2);if(u(E.calendarContainer,"arrowTop",!f),u(E.calendarContainer,"arrowBottom",f),!E.config.inline){var d=window.pageXOffset+s.left,h=!1,p=!1;"center"===i?(d-=(r-s.width)/2,h=!0):"right"===i&&(d-=r-s.width,p=!0),u(E.calendarContainer,"arrowLeft",!h&&!p),u(E.calendarContainer,"arrowCenter",h),u(E.calendarContainer,"arrowRight",p);var v=window.document.body.offsetWidth-(window.pageXOffset+s.right),y=d+r>window.document.body.offsetWidth,m=v+r>window.document.body.offsetWidth;if(u(E.calendarContainer,"rightMost",y),!E.config.static)if(E.calendarContainer.style.top=l+"px",y)if(m){var g=function(){for(var e=null,n=0;nE.currentMonth+E.config.showMonths-1)&&"range"!==E.config.mode;if(E.selectedDateElem=t,"single"===E.config.mode)E.selectedDates=[r];else if("multiple"===E.config.mode){var a=me(r);a?E.selectedDates.splice(parseInt(a),1):E.selectedDates.push(r)}else"range"===E.config.mode&&(2===E.selectedDates.length&&E.clear(!1,!1),E.latestSelectedDateObj=r,E.selectedDates.push(r),0!==A(r,E.selectedDates[0],!0)&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()})));if(N(),o){var i=E.currentYear!==r.getFullYear();E.currentYear=r.getFullYear(),E.currentMonth=r.getMonth(),i&&(ve("onYearChange"),Y()),ve("onMonthChange")}if(ge(),V(),be(),o||"range"===E.config.mode||1!==E.config.showMonths?void 0!==E.selectedDateElem&&void 0===E.hourElement&&E.selectedDateElem&&E.selectedDateElem.focus():j(t),void 0!==E.hourElement&&void 0!==E.hourElement&&E.hourElement.focus(),E.config.closeOnSelect){var s="single"===E.config.mode&&!E.config.enableTime,c="range"===E.config.mode&&2===E.selectedDates.length&&!E.config.enableTime;(s||c)&&fe()}k()}}E.parseDate=O({config:E.config,l10n:E.l10n}),E._handlers=[],E.pluginElements=[],E.loadedPlugins=[],E._bind=P,E._setHoursFromDate=I,E._positionCalendar=ce,E.changeMonth=z,E.changeYear=X,E.clear=function(e,n){if(void 0===e&&(e=!0),void 0===n&&(n=!0),E.input.value="",void 0!==E.altInput&&(E.altInput.value=""),void 0!==E.mobileInput&&(E.mobileInput.value=""),E.selectedDates=[],E.latestSelectedDateObj=void 0,!0===n&&(E.currentYear=E._initialDate.getFullYear(),E.currentMonth=E._initialDate.getMonth()),!0===E.config.enableTime){var t=D(E.config);C(t.hours,t.minutes,t.seconds)}E.redraw(),e&&ve("onChange")},E.close=function(){E.isOpen=!1,E.isMobile||(void 0!==E.calendarContainer&&E.calendarContainer.classList.remove("open"),void 0!==E._input&&E._input.classList.remove("active")),ve("onClose")},E._createElement=f,E.destroy=function(){void 0!==E.config&&ve("onDestroy");for(var e=E._handlers.length;e--;)E._handlers[e].remove();if(E._handlers=[],E.mobileInput)E.mobileInput.parentNode&&E.mobileInput.parentNode.removeChild(E.mobileInput),E.mobileInput=void 0;else if(E.calendarContainer&&E.calendarContainer.parentNode)if(E.config.static&&E.calendarContainer.parentNode){var n=E.calendarContainer.parentNode;if(n.lastChild&&n.removeChild(n.lastChild),n.parentNode){for(;n.firstChild;)n.parentNode.insertBefore(n.firstChild,n);n.parentNode.removeChild(n)}}else E.calendarContainer.parentNode.removeChild(E.calendarContainer);E.altInput&&(E.input.type="text",E.altInput.parentNode&&E.altInput.parentNode.removeChild(E.altInput),delete E.altInput),E.input&&(E.input.type=E.input._type,E.input.classList.remove("flatpickr-input"),E.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach((function(e){try{delete E[e]}catch(e){}}))},E.isEnabled=$,E.jumpToDate=M,E.open=function(e,n){if(void 0===n&&(n=E._positionElement),!0===E.isMobile){if(e){e.preventDefault();var t=p(e);t&&t.blur()}return void 0!==E.mobileInput&&(E.mobileInput.focus(),E.mobileInput.click()),void ve("onOpen")}if(!E._input.disabled&&!E.config.inline){var r=E.isOpen;E.isOpen=!0,r||(E.calendarContainer.classList.add("open"),E._input.classList.add("active"),ve("onOpen"),ce(n)),!0===E.config.enableTime&&!0===E.config.noCalendar&&(!1!==E.config.allowInput||void 0!==e&&E.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return E.hourElement.select()}),50))}},E.redraw=ue,E.set=function(e,n){if(null!==e&&"object"==typeof e)for(var r in Object.assign(E.config,e),e)void 0!==de[r]&&de[r].forEach((function(e){return e()}));else E.config[e]=n,void 0!==de[e]?de[e].forEach((function(e){return e()})):t.indexOf(e)>-1&&(E.config[e]=c(n));E.redraw(),be(!0)},E.setDate=function(e,n,t){if(void 0===n&&(n=!1),void 0===t&&(t=E.config.dateFormat),0!==e&&!e||e instanceof Array&&0===e.length)return E.clear(n);he(e,t),E.latestSelectedDateObj=E.selectedDates[E.selectedDates.length-1],E.redraw(),M(void 0,n),I(),0===E.selectedDates.length&&E.clear(!1),be(n),n&&ve("onChange")},E.toggle=function(e){if(!0===E.isOpen)return E.close();E.open(e)};var de={locale:[se,W],showMonths:[J,T,q],minDate:[M],maxDate:[M],clickOpens:[function(){!0===E.config.clickOpens?(P(E._input,"focus",E.open),P(E._input,"click",E.open)):(E._input.removeEventListener("focus",E.open),E._input.removeEventListener("click",E.open))}]};function he(e,n){var t=[];if(e instanceof Array)t=e.map((function(e){return E.parseDate(e,n)}));else if(e instanceof Date||"number"==typeof e)t=[E.parseDate(e,n)];else if("string"==typeof e)switch(E.config.mode){case"single":case"time":t=[E.parseDate(e,n)];break;case"multiple":t=e.split(E.config.conjunction).map((function(e){return E.parseDate(e,n)}));break;case"range":t=e.split(E.l10n.rangeSeparator).map((function(e){return E.parseDate(e,n)}))}else E.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));E.selectedDates=E.config.allowInvalidPreload?t:t.filter((function(e){return e instanceof Date&&$(e,!1)})),"range"===E.config.mode&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()}))}function pe(e){return e.slice().map((function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?E.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:E.parseDate(e.from,void 0),to:E.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function ve(e,n){if(void 0!==E.config){var t=E.config[e];if(void 0!==t&&t.length>0)for(var r=0;t[r]&&r1||"static"===E.config.monthSelectorType?E.monthElements[n].textContent=y(t.getMonth(),E.config.shorthandCurrentMonth,E.l10n)+" ":E.monthsDropdownContainer.value=t.getMonth().toString(),e.value=t.getFullYear().toString()})),E._hidePrevMonthArrow=void 0!==E.config.minDate&&(E.currentYear===E.config.minDate.getFullYear()?E.currentMonth<=E.config.minDate.getMonth():E.currentYearE.config.maxDate.getMonth():E.currentYear>E.config.maxDate.getFullYear()))}function Ee(e){return E.selectedDates.map((function(n){return E.formatDate(n,e)})).filter((function(e,n,t){return"range"!==E.config.mode||E.config.enableTime||t.indexOf(e)===n})).join("range"!==E.config.mode?E.config.conjunction:E.l10n.rangeSeparator)}function be(e){void 0===e&&(e=!0),void 0!==E.mobileInput&&E.mobileFormatStr&&(E.mobileInput.value=void 0!==E.latestSelectedDateObj?E.formatDate(E.latestSelectedDateObj,E.mobileFormatStr):""),E.input.value=Ee(E.config.dateFormat),void 0!==E.altInput&&(E.altInput.value=Ee(E.config.altFormat)),!1!==e&&ve("onValueUpdate")}function Oe(e){var n=p(e),t=E.prevMonthNav.contains(n),r=E.nextMonthNav.contains(n);t||r?z(t?-1:1):E.yearElements.indexOf(n)>=0?n.select():n.classList.contains("arrowUp")?E.changeYear(E.currentYear+1):n.classList.contains("arrowDown")&&E.changeYear(E.currentYear-1)}return function(){E.element=E.input=v,E.isOpen=!1,function(){var n=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],o=e(e({},JSON.parse(JSON.stringify(v.dataset||{}))),m),a={};E.config.parseDate=o.parseDate,E.config.formatDate=o.formatDate,Object.defineProperty(E.config,"enable",{get:function(){return E.config._enable},set:function(e){E.config._enable=pe(e)}}),Object.defineProperty(E.config,"disable",{get:function(){return E.config._disable},set:function(e){E.config._disable=pe(e)}});var i="time"===o.mode;if(!o.dateFormat&&(o.enableTime||i)){var s=S.defaultConfig.dateFormat||r.dateFormat;a.dateFormat=o.noCalendar||i?"H:i"+(o.enableSeconds?":S":""):s+" H:i"+(o.enableSeconds?":S":"")}if(o.altInput&&(o.enableTime||i)&&!o.altFormat){var u=S.defaultConfig.altFormat||r.altFormat;a.altFormat=o.noCalendar||i?"h:i"+(o.enableSeconds?":S K":" K"):u+" h:i"+(o.enableSeconds?":S":"")+" K"}Object.defineProperty(E.config,"minDate",{get:function(){return E.config._minDate},set:ae("min")}),Object.defineProperty(E.config,"maxDate",{get:function(){return E.config._maxDate},set:ae("max")});var f=function(e){return function(n){E.config["min"===e?"_minTime":"_maxTime"]=E.parseDate(n,"H:i:S")}};Object.defineProperty(E.config,"minTime",{get:function(){return E.config._minTime},set:f("min")}),Object.defineProperty(E.config,"maxTime",{get:function(){return E.config._maxTime},set:f("max")}),"time"===o.mode&&(E.config.noCalendar=!0,E.config.enableTime=!0),Object.assign(E.config,a,o);for(var l=0;l-1?E.config[h]=c(d[h]).map(_).concat(E.config[h]):void 0===o[h]&&(E.config[h]=d[h])}o.altInputClass||(E.config.altInputClass=ie().className+" "+E.config.altInputClass),ve("onParseConfig")}(),se(),E.input=ie(),E.input?(E.input._type=E.input.type,E.input.type="text",E.input.classList.add("flatpickr-input"),E._input=E.input,E.config.altInput&&(E.altInput=f(E.input.nodeName,E.config.altInputClass),E._input=E.altInput,E.altInput.placeholder=E.input.placeholder,E.altInput.disabled=E.input.disabled,E.altInput.required=E.input.required,E.altInput.tabIndex=E.input.tabIndex,E.altInput.type="text",E.input.setAttribute("type","hidden"),!E.config.static&&E.input.parentNode&&E.input.parentNode.insertBefore(E.altInput,E.input.nextSibling)),E.config.allowInput||E._input.setAttribute("readonly","readonly"),E._positionElement=E.config.positionElement||E._input):E.config.errorHandler(new Error("Invalid input element specified")),function(){E.selectedDates=[],E.now=E.parseDate(E.config.now)||new Date;var e=E.config.defaultDate||("INPUT"!==E.input.nodeName&&"TEXTAREA"!==E.input.nodeName||!E.input.placeholder||E.input.value!==E.input.placeholder?E.input.value:null);e&&he(e,E.config.dateFormat),E._initialDate=E.selectedDates.length>0?E.selectedDates[0]:E.config.minDate&&E.config.minDate.getTime()>E.now.getTime()?E.config.minDate:E.config.maxDate&&E.config.maxDate.getTime()0&&(E.latestSelectedDateObj=E.selectedDates[0]),void 0!==E.config.minTime&&(E.config.minTime=E.parseDate(E.config.minTime,"H:i")),void 0!==E.config.maxTime&&(E.config.maxTime=E.parseDate(E.config.maxTime,"H:i")),E.minDateHasTime=!!E.config.minDate&&(E.config.minDate.getHours()>0||E.config.minDate.getMinutes()>0||E.config.minDate.getSeconds()>0),E.maxDateHasTime=!!E.config.maxDate&&(E.config.maxDate.getHours()>0||E.config.maxDate.getMinutes()>0||E.config.maxDate.getSeconds()>0)}(),E.utils={getDaysInMonth:function(e,n){return void 0===e&&(e=E.currentMonth),void 0===n&&(n=E.currentYear),1===e&&(n%4==0&&n%100!=0||n%400==0)?29:E.l10n.daysInMonth[e]}},E.isMobile||function(){var e=window.document.createDocumentFragment();if(E.calendarContainer=f("div","flatpickr-calendar"),E.calendarContainer.tabIndex=-1,!E.config.noCalendar){if(e.appendChild((E.monthNav=f("div","flatpickr-months"),E.yearElements=[],E.monthElements=[],E.prevMonthNav=f("span","flatpickr-prev-month"),E.prevMonthNav.innerHTML=E.config.prevArrow,E.nextMonthNav=f("span","flatpickr-next-month"),E.nextMonthNav.innerHTML=E.config.nextArrow,J(),Object.defineProperty(E,"_hidePrevMonthArrow",{get:function(){return E.__hidePrevMonthArrow},set:function(e){E.__hidePrevMonthArrow!==e&&(u(E.prevMonthNav,"flatpickr-disabled",e),E.__hidePrevMonthArrow=e)}}),Object.defineProperty(E,"_hideNextMonthArrow",{get:function(){return E.__hideNextMonthArrow},set:function(e){E.__hideNextMonthArrow!==e&&(u(E.nextMonthNav,"flatpickr-disabled",e),E.__hideNextMonthArrow=e)}}),E.currentYearElement=E.yearElements[0],ge(),E.monthNav)),E.innerContainer=f("div","flatpickr-innerContainer"),E.config.weekNumbers){var n=function(){E.calendarContainer.classList.add("hasWeeks");var e=f("div","flatpickr-weekwrapper");e.appendChild(f("span","flatpickr-weekday",E.l10n.weekAbbreviation));var n=f("div","flatpickr-weeks");return e.appendChild(n),{weekWrapper:e,weekNumbers:n}}(),t=n.weekWrapper,r=n.weekNumbers;E.innerContainer.appendChild(t),E.weekNumbers=r,E.weekWrapper=t}E.rContainer=f("div","flatpickr-rContainer"),E.rContainer.appendChild(q()),E.daysContainer||(E.daysContainer=f("div","flatpickr-days"),E.daysContainer.tabIndex=-1),V(),E.rContainer.appendChild(E.daysContainer),E.innerContainer.appendChild(E.rContainer),e.appendChild(E.innerContainer)}E.config.enableTime&&e.appendChild(function(){E.calendarContainer.classList.add("hasTime"),E.config.noCalendar&&E.calendarContainer.classList.add("noCalendar");var e=D(E.config);E.timeContainer=f("div","flatpickr-time"),E.timeContainer.tabIndex=-1;var n=f("span","flatpickr-time-separator",":"),t=h("flatpickr-hour",{"aria-label":E.l10n.hourAriaLabel});E.hourElement=t.getElementsByTagName("input")[0];var r=h("flatpickr-minute",{"aria-label":E.l10n.minuteAriaLabel});if(E.minuteElement=r.getElementsByTagName("input")[0],E.hourElement.tabIndex=E.minuteElement.tabIndex=-1,E.hourElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getHours():E.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),E.minuteElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getMinutes():e.minutes),E.hourElement.setAttribute("step",E.config.hourIncrement.toString()),E.minuteElement.setAttribute("step",E.config.minuteIncrement.toString()),E.hourElement.setAttribute("min",E.config.time_24hr?"0":"1"),E.hourElement.setAttribute("max",E.config.time_24hr?"23":"12"),E.hourElement.setAttribute("maxlength","2"),E.minuteElement.setAttribute("min","0"),E.minuteElement.setAttribute("max","59"),E.minuteElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(t),E.timeContainer.appendChild(n),E.timeContainer.appendChild(r),E.config.time_24hr&&E.timeContainer.classList.add("time24hr"),E.config.enableSeconds){E.timeContainer.classList.add("hasSeconds");var o=h("flatpickr-second");E.secondElement=o.getElementsByTagName("input")[0],E.secondElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getSeconds():e.seconds),E.secondElement.setAttribute("step",E.minuteElement.getAttribute("step")),E.secondElement.setAttribute("min","0"),E.secondElement.setAttribute("max","59"),E.secondElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(f("span","flatpickr-time-separator",":")),E.timeContainer.appendChild(o)}return E.config.time_24hr||(E.amPM=f("span","flatpickr-am-pm",E.l10n.amPM[i((E.latestSelectedDateObj?E.hourElement.value:E.config.defaultHour)>11)]),E.amPM.title=E.l10n.toggleTitle,E.amPM.tabIndex=-1,E.timeContainer.appendChild(E.amPM)),E.timeContainer}()),u(E.calendarContainer,"rangeMode","range"===E.config.mode),u(E.calendarContainer,"animate",!0===E.config.animate),u(E.calendarContainer,"multiMonth",E.config.showMonths>1),E.calendarContainer.appendChild(e);var o=void 0!==E.config.appendTo&&void 0!==E.config.appendTo.nodeType;if((E.config.inline||E.config.static)&&(E.calendarContainer.classList.add(E.config.inline?"inline":"static"),E.config.inline&&(!o&&E.element.parentNode?E.element.parentNode.insertBefore(E.calendarContainer,E._input.nextSibling):void 0!==E.config.appendTo&&E.config.appendTo.appendChild(E.calendarContainer)),E.config.static)){var s=f("div","flatpickr-wrapper");E.element.parentNode&&E.element.parentNode.insertBefore(s,E.element),s.appendChild(E.element),E.altInput&&s.appendChild(E.altInput),s.appendChild(E.calendarContainer)}E.config.static||E.config.inline||(void 0!==E.config.appendTo?E.config.appendTo:window.document.body).appendChild(E.calendarContainer)}(),function(){if(E.config.wrap&&["open","close","toggle","clear"].forEach((function(e){Array.prototype.forEach.call(E.element.querySelectorAll("[data-"+e+"]"),(function(n){return P(n,"click",E[e])}))})),E.isMobile)!function(){var e=E.config.enableTime?E.config.noCalendar?"time":"datetime-local":"date";E.mobileInput=f("input",E.input.className+" flatpickr-mobile"),E.mobileInput.tabIndex=1,E.mobileInput.type=e,E.mobileInput.disabled=E.input.disabled,E.mobileInput.required=E.input.required,E.mobileInput.placeholder=E.input.placeholder,E.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",E.selectedDates.length>0&&(E.mobileInput.defaultValue=E.mobileInput.value=E.formatDate(E.selectedDates[0],E.mobileFormatStr)),E.config.minDate&&(E.mobileInput.min=E.formatDate(E.config.minDate,"Y-m-d")),E.config.maxDate&&(E.mobileInput.max=E.formatDate(E.config.maxDate,"Y-m-d")),E.input.getAttribute("step")&&(E.mobileInput.step=String(E.input.getAttribute("step"))),E.input.type="hidden",void 0!==E.altInput&&(E.altInput.type="hidden");try{E.input.parentNode&&E.input.parentNode.insertBefore(E.mobileInput,E.input.nextSibling)}catch(e){}P(E.mobileInput,"change",(function(e){E.setDate(p(e).value,!1,E.mobileFormatStr),ve("onChange"),ve("onClose")}))}();else{var e=s(oe,50);if(E._debouncedChange=s(k,300),E.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&P(E.daysContainer,"mouseover",(function(e){"range"===E.config.mode&&re(p(e))})),P(window.document.body,"keydown",te),E.config.inline||E.config.static||P(window,"resize",e),void 0!==window.ontouchstart?P(window.document,"touchstart",Z):P(window.document,"mousedown",Z),P(window.document,"focus",Z,{capture:!0}),!0===E.config.clickOpens&&(P(E._input,"focus",E.open),P(E._input,"click",E.open)),void 0!==E.daysContainer&&(P(E.monthNav,"click",Oe),P(E.monthNav,["keyup","increment"],R),P(E.daysContainer,"click",le)),void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement){var n=function(e){return p(e).select()};P(E.timeContainer,["increment"],x),P(E.timeContainer,"blur",x,{capture:!0}),P(E.timeContainer,"click",F),P([E.hourElement,E.minuteElement],["focus","click"],n),void 0!==E.secondElement&&P(E.secondElement,"focus",(function(){return E.secondElement&&E.secondElement.select()})),void 0!==E.amPM&&P(E.amPM,"click",(function(e){x(e),k()}))}E.config.allowInput&&P(E._input,"blur",ne)}}(),(E.selectedDates.length||E.config.noCalendar)&&(E.config.enableTime&&I(E.config.noCalendar?E.latestSelectedDateObj:void 0),be(!1)),T();var n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!E.isMobile&&n&&ce(),ve("onReady")}(),E}function T(e,n){for(var t=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),r=[],o=0;o{const n=(e,n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:()=>{}},d=function(e,n){if(!n||1===n)return e.store;var t=e.store.modules&&e.store.modules.team;return t?t.getTeam(n):void 0},h=function(n,t){n.emit("UPDATE",{teams:t.stores,roTeams:t.roStores,id:t.channel,loading:!t.ready&&!t.cacheready,readOnly:t.readOnly||!t.ready&&t.cacheready||t.offline,offline:t.offline,deleted:!t.stores.length,restricted:t.restricted,owned:n.Store.isOwned(t.owners),content:e.clone(t.proxy),hashes:t.hashes},n.clients)},p=function(e,n){var t=e.calendars[n];t&&t.reminders&&Object.keys(t.reminders).forEach((function(e){Array.isArray(t.reminders[e])&&t.reminders[e].forEach((function(e){clearTimeout(e)}))}))},v=function(e,n){var t=e.calendars[n];t&&(t.stores.length||(t.lm.stop(),p(e,n),delete e.calendars[n]))},y=function(e,n,t){n.stores.forEach((function(r){var o=d(e,r);if(o&&o.proxy&&o.rpc&&o.proxy.calendars){var a=o.proxy.calendars[n.channel];a&&(a.color!==t.color&&(a.color=t.color),a.title!==t.title&&(a.title=t.title))}}))},m=function(n,t,r,o){var a=+new Date,i=e.clone(r),s=i.id;if(Array.isArray(t[s])&&t[s].forEach((function(e){clearTimeout(e)})),t[s]=[],!r.deleted){var u=e.find(n,["store","proxy","hideReminders",s])||[],f=n.store.data.lastVisit;if(i.isAllDay&&(i.startDay&&(i.start=+c.parseDate(i.startDay)),i.endDay)){var l=c.parseDate(i.endDay);l.setHours(23),l.setMinutes(59),l.setSeconds(59),i.end=+l}var d=a-6048e5,h=o&&i.start>f&&i.end<=a&&i.end>d;if(i.end<=a&&!h)return delete t[s],void function(n,t){var r=e.find(n,["store","proxy","hideReminders"])||{};Object.keys(r).filter((function(e){return e===t})).forEach((function(e){delete r[e]}))}(n,s);var p=!1,v=function(t){p=!0,n.Store.onReadyEvt.reg((function(){!function(t){if(!e.find(n,["store","proxy","settings","general","calendar","hideNotif"])){var r=i.start<=a?i.start:+new Date;n.store.mailbox.showMessage("reminders",{msg:{ctime:r,type:"REMINDER",missed:Boolean(h),content:i},hash:"REMINDER|"+s+"-"+t},null,(function(){}))}}(t)}))},y=i.reminders||[];y.sort((function(e,n){return e-n})),y.some((function(e){var n=a+6e4*e;if(!u.some((function(n){return e>=n})))return i.start-n>=2147483647||(i.start<=n?(v(e),!0):void t[s].push(setTimeout((function(){v(e)}),i.start-n)))})),p||n.Store.onReadyEvt.reg((function(){n.store.mailbox.hideMessage("reminders",{hash:"REMINDER|"+s},null,(function(){}))}))}},g=function(n,t,r,o){var i=function(e){var n=new Date,t=new Date(n.getFullYear(),n.getMonth()-1,15),r=new Date(n.getFullYear(),n.getMonth()+1,15),o=a.getMonthId(t),i=a.getMonthId(n),s=a.getMonthId(r),c=a.getRecurring([o,i,s],[e]),u=[e];return Array.prototype.push.apply(u,c),a.applyUpdates(u)}(e.clone(r));i.forEach((function(e){m(n,t,e,o)}))},E=function(e,n,t){var r=e.calendars[n];t&&r&&r.reminders&&(1===r.stores.length&&0===r.stores[0]||g(e,r.reminders,t))},b=function(n,t,r){var o=n.calendars[t];if(o&&o.reminders&&!Object.keys(o.reminders).length&&(1!==o.stores.length||0!==o.stores[0])){var a=e.find(o,["proxy","content"]);a&&Object.keys(a).forEach((function(e){g(n,o.reminders,a[e],r)}))}},O=function(t,r,a){var c=e.once(e.mkAsync(a||function(){})),l=r.storeId,v=r.data,m=v.channel;if(m){var g=t.calendars[m],O=function(){h(t,g)};if(g){if(g.readOnly&&v.href){var A=n.parsePadUrl(v.href),w=n.getSecrets("calendar",A.hash,v.password),D=u.createEncryptor(w.keys);g.hashes.editHash=n.getEditHashFromKeys(w),g.lm.setReadOnly(!1,D),g.readOnly=!1}else if(0===l)return 1===g.stores.length&&0===g.stores[0]&&g.tempId.length&&r.cId&&g.tempId.push(r.cId),void c();return-1!==g.roStores.indexOf(l)&&v.href&&(g.roStores.splice(g.roStores.indexOf(l),1),-1!==g.stores.indexOf(0)&&g.stores.splice(g.stores.indexOf(0),1),O()),g.stores&&-1!==g.stores.indexOf(l)?void c():(-1!==g.stores.indexOf(0)&&(g.stores.splice(g.stores.indexOf(0),1),g.tempId=[]),g.stores.push(l),v.href||g.roStores.push(l),O(),void c())}g=t.calendars[m]={ready:!1,channel:m,readOnly:!v.href,tempId:[],stores:[l],roStores:v.href?[]:[l],reminders:{},hashes:{}},0===l&&g.tempId.push(r.cId);var _=n.parsePadUrl(v.href||v.roHref),T=n.getSecrets("calendar",_.hash,v.password),S=u.createEncryptor(T.keys);g.hashes.viewHash=n.getViewHashFromKeys(T),v.href&&(g.hashes.editHash=n.getEditHashFromKeys(T)),g.proxy={metadata:{color:v.color,title:v.title}},O();var x=function(){g.stores.forEach((function(e){var n=d(t,e);n&&n.rpc&&n.proxy.calendars&&(delete n.proxy.calendars[m],(n.unpin||t.unpinPads)([m],(function(e){e&&e.error&&console.error(e.error)})))})),g.lm&&g.lm.stop(),g.stores=[],h(t,g),p(t,m),delete t.calendars[m]};i((function(e){t.store.network&&!r.isNew&&t.Store.isNewChannel(null,m,e((function(n){if(!n||!n.error)return n&&"boolean"==typeof n.isNew&&n.isNew?(x(),c({error:"EDELETED"}),void e.abort()):void 0})))})).nThen((function(){var e;if(1!==l&&l){var n=t.store.modules.team&&t.store.modules.team.getTeamsData(),a=n&&n[l];e=a?a.edPublic:void 0}else e=t.store.proxy.edPublic;var i={data:{},network:t.store.network||t.store.networkPromise,channel:T.channel,crypto:S,owners:[e],ChainPad:f,validateKey:T.keys.validateKey||void 0,userName:"calendar",Cache:o,classic:!0,onRejected:t.Store&&t.Store.onRejected},u=s.create(i);g.lm=u;var d=g.proxy=u.proxy,h=!1,p=function(){h||(h=!0,setTimeout((function(){h=!1,O()})))};u.proxy.on("cacheready",(function(){d.metadata&&(g.cacheready=!0,p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif))})).on("ready",(function(e){var n=e.metadata;if(g.owners=n.owners||[],g.ready=!0,!d.metadata){if(!r.isNew)return void x();d.metadata={color:v.color,title:v.title}}p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif)})).on("change",[],(function(){g.ready&&p()})).on("change",["content"],(function(e,n,r){2!==r.length||!n||e?2!==r.length||n||!e?(r.length>=3&&["start","reminders","isAllDay"].includes(r[2])||r.length>=6&&["start","reminders","isAllDay"].includes(r[5]))&&setTimeout((function(){E(t,m,d.content[r[1]])})):E(t,m,{id:r[1],start:0}):E(t,m,n)})).on("remove",["content"],(function(e,n){p(),(n.length>=3&&"reminders"===n[2]||n.length>=6&&"reminders"===n[5])&&setTimeout((function(){E(t,m,d.content[n[1]])}))})).on("change",["metadata"],(function(){var e=d.metadata;e&&e.title&&e.color&&y(t,g,e)})).on("disconnect",(function(){g.offline=!0,p()})).on("reconnect",(function(){g.offline=!1,p()})).on("error",(function(e){e&&e.error&&("EDELETED"!==e.error?("ERESTRICTED"===e.error&&(g.restricted=!0,p()),c(e)):x())}))}))}},A=function(e,n){if(n.href&&-1===n.href.indexOf("#"))if(e.secondaryKey)try{n.href=e.userObject.cryptor.decrypt(n.href)}catch(e){console.error(e),delete n.href}else delete n.href},w=function(n,t){var r=t.proxy.calendars,o=t.id||1;t.proxy.on("change",["calendars"],(function(r,a,i){i.length<2||(r&&!a&&function(){var e=i[1],t=n.calendars[e];if(t){var r=t.stores.indexOf(o);if(-1!==r){t.stores.splice(r,1);var a=t.roStores.indexOf(o);-1!==a&&t.roStores.splice(a,1),v(n,e),h(n,t)}}}(),!r&&a&&function(){var r=i[1],a=t.proxy.calendars[r];if(a){var s=e.clone(a);A(t,s),O(n,{storeId:o,data:s})}}())})),Object.keys(r||{}).forEach((function(a){var i=e.clone(r[a]);A(t,i),O(n,{storeId:o,lastVisitNotif:!0,data:i})}))},D=function(e,t,o,a){var i=d(e,t.teamId);if(i)if(i.rpc){var s,c,u,f=i.proxy.calendars=i.proxy.calendars||{},l=(s=n.createRandomHash("calendar"),c=n.getSecrets("calendar",s),u=n.getViewHashFromKeys(c),{href:n.hashToHref(s,"calendar"),roHref:n.hashToHref(u,"calendar"),channel:c.channel});l.color=t.color,l.title=t.title,O(e,{storeId:i.id||1,data:l,isNew:!0},(function(n){if(n)return console.error(n),void a({error:n.error});var t=e.calendars[l.channel];r.whenRealtimeSyncs(t.lm.realtime,(function(){f[l.channel]=l,(i.pin||e.pinPads)([l.channel],(function(e){e&&e.error&&console.error(e.error)})),e.Store.onSync(i.id,a)}))}))}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})};return l.init=function(t,o,a){var s={},c=t.store,u={loggedIn:c.loggedIn&&c.proxy.edPublic,store:c,Store:t.Store,pinPads:t.pinPads,unpinPads:t.unpinPads,updateMetadata:t.updateMetadata,emit:a,onReady:e.mkEvent(!0),calendars:{},clients:[]};return function(e,n){var t=e.store.proxy;t.calendars=t.calendars||{},setTimeout(n)}(u,o((function(e){e||function(e){w(e,e.store);var n=e.store.modules.team&&e.store.modules.team.getTeamsData();n&&Object.keys(n).forEach((function(n){var t=d(e,n);w(e,t)}))}(u)}))),u.store.proxy.on("change",["hideReminders"],(function(e,n,t){var r=t[1].split("|")[0];Object.keys(u.calendars).some((function(e){var n=u.calendars[e];if(n&&n.proxy&&n.proxy.content)return n.proxy.content[r]?(setTimeout((function(){E(u,e,n.proxy.content[r])})),!0):void 0}))})),s.closeTeam=function(e){Object.keys(u.calendars).forEach((function(n){var t=u.calendars[n],r=t.stores.indexOf(e);if(-1!==r){t.stores.splice(r,1);var o=t.roStores.indexOf(e);-1!==o&&t.roStores.splice(o,1),v(u,n),h(u,t)}}))},s.openTeam=function(e){var n=d(u,e);n&&w(u,n)},s.upgradeTeam=function(n){if(n){var t=d(u,n);t&&Object.keys(u.calendars).forEach((function(r){var o=u.calendars[r];if(-1!==o.stores.indexOf(n)){var a=t.proxy.calendars[r],i=e.clone(a);A(t,i),O(u,{storeId:n,data:i}),h(u,o)}}))}},s.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1),Object.keys(e.calendars).forEach((function(t){var r=e.calendars[t];if(1===r.stores.length&&0===r.stores[0]&&r.tempId.length){var o=r.tempId.indexOf(n);-1!==o&&r.tempId.splice(o,1),r.tempId.length||(r.stores=[],v(e,t))}}))}(u,e)},s.execCommand=function(t,o,a){var s=o.cmd,c=o.data;if("SUBSCRIBE"!==s){if("OPEN"!==s)return"IMPORT"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=r.id,s=t.calendars[i];if(s)if(Array.isArray(s.stores)&&-1!==s.stores.indexOf(r.teamId)){var c=t.store,u=c.proxy.calendars=c.proxy.calendars||{},f=s.hashes.editHash,l=s.hashes.viewHash;u[i]={href:f&&n.hashToHref(f,"calendar"),roHref:l&&n.hashToHref(l,"calendar"),channel:i,color:e.find(s,["proxy","metadata","color"])||e.getRandomColor(),title:e.find(s,["proxy","metadata","title"])||"..."},t.Store.onSync(null,a),O(t,{storeId:1,data:{href:u[i].href,toHref:u[i].roHref,channel:i}})}else a({error:"EINVAL"});else a({error:"ENOENT"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"IMPORT_ICS"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.id,i=e.calendars[a];if(i&&i.proxy){var s=n.json;i.proxy.content=i.proxy.content||{},Object.keys(s).forEach((function(n){i.proxy.content[n]=s[n],E(e,a,s[n])})),r.whenRealtimeSyncs(i.lm.realtime,(function(){h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"ADD"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=d(t,r.teamId);if(i)if(i.rpc){var s=i.proxy.calendars=i.proxy.calendars||{},c=n.parsePadUrl(r.href),u=n.getSecrets(c.type,c.hash,r.password);if(u.channel===r.channel){var f=n.getEditHashFromKeys(u),l=n.getViewHashFromKeys(u),h=f&&n.hashToHref(f,"calendar"),p={href:h,roHref:l&&n.hashToHref(l,"calendar"),color:r.color,title:r.title,channel:r.channel};!s[r.channel]||!s[r.channel].href&&p.href?(p.color=r.color,p.title=r.title,O(t,{storeId:i.id||1,data:e.clone(p)},(function(e){if(e)return console.error(e),void a({error:e.error});if(h&&i.id&&i.secondaryKey)try{p.href=i.userObject.cryptor.encrypt(h)}catch(e){console.error(e)}s[p.channel]=p,(i.pin||t.pinPads)([p.channel],(function(e){e&&e.error&&console.error(e.error)})),t.Store.onSync(i.id,a)}))):a()}else a({error:"EINVAL"})}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE"===s?u.loggedIn?c.initialCalendar?void u.Store.onReadyEvt.reg((function(){D(u,c,0,a)})):u.store.offline?void a({error:"OFFLINE"}):void D(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"UPDATE"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){var i=t.id,s=n.calendars[i];if(s){var c=e.find(s,["proxy","metadata"]);c?(c.title=t.title,c.color=t.color,r.whenRealtimeSyncs(s.lm.realtime,a),h(n,s),y(n,s,t)):a({error:"EINVAL"})}else a({error:"ENOENT"})}(u,c,0,a):"DELETE"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(e,n,t,r){var o=d(e,n.teamId);if(o)if(o.rpc){if(o.proxy.calendars){var a=n.id;if(o.proxy.calendars[a]){delete o.proxy.calendars[a],(o.unpin||e.unpinPads)([a],(function(e){e&&e.error&&console.error(e.error)}));var i=e.calendars[a],s=i.stores.indexOf(o.id||1);i.stores.splice(s,1),v(e,a),e.Store.onSync(o.id,(function(){h(e,i),r()}))}else r()}}else r({error:"EFORBIDDEN"});else r({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.calendarId,i=e.calendars[a];if(i){var s=new Date(n.start),c=new Date(n.end);n.isAllDay?(n.startDay=s.getFullYear()+"-"+(s.getMonth()+1)+"-"+s.getDate(),n.endDay=c.getFullYear()+"-"+(c.getMonth()+1)+"-"+c.getDate()):(delete n.startDay,delete n.endDay),i.proxy.content=i.proxy.content||{},i.proxy.content[n.id]=n,r.whenRealtimeSyncs(i.lm.realtime,(function(){E(e,a,n),h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"UPDATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){if(t&&t.ev){var s=t.ev.calendarId,c=n.calendars[s];if(c&&c.proxy&&c.proxy.content){var u=c.proxy.content[t.ev.id];if(u){t.rawData=t.rawData||{};var f,l=t.changes||{},d=t.type||{};if(l.calendarId){if(!(f=n.calendars[l.calendarId])||!f.proxy)return void a({error:"ENOENT"});f.proxy.content=f.proxy.content||{}}var p={one:{},from:{}};["one","from","all"].includes(d.which)&&(u.recUpdate=u.recUpdate||p,u.recUpdate.one||(u.recUpdate.one={}),u.recUpdate.from||(u.recUpdate.from={}));var v=u.recUpdate,y=["calendarId"],m=Object.keys(l).filter((function(e){return!y.includes(e)})),g=function(e){[v.from,v.one].forEach((function(n){Object.keys(n).forEach((function(t){Number(t){const r=[],o=null==jt?void 0:jt.httpUnsafeOrigin;ie.fetchApi(o,"config",!0,(e=>{var o,a;(null===(o=null==e?void 0:e.adminKeys)||void 0===o?void 0:o.includes(n))&&r.push("admin");(null===(a=null==e?void 0:e.moderatorKeys)||void 0===a?void 0:a.includes(n))&&r.push("moderator"),t(r)}))},Ut=(e,n,t)=>{e.Store.anonRpcMsg("",{msg:"IS_PREMIUM",data:n},(e=>{let n=Array.isArray(e)&&e[0];t(n?["premium"]:[])}))},Bt={admin:Kt,moderator:Kt,premium:Ut},Vt={init:(e,n,t)=>{const r={store:e.store,Store:e.Store,updateMetadata:e.updateMetadata};return{removeClient:()=>{},execCommand:(e,n,t)=>{console.log("Exex command",e,n);const o=n.cmd,a=n.data;"LIST_BADGES"!==o?"CHECK_BADGE"!==o?t():((e,n,t,r)=>{const{badge:o,ed:a,sig:i,nid:s}=n,c=ie.decodeBase64(a),u=ie.decodeBase64(i),f=Lt.sign.open(u,c);if(!f)return void r({verified:!1});if(ie.encodeUTF8(f)!==s)return void r({verified:!1});let l=Bt[o];l?l(e,a,(e=>{r({verified:e.includes(o),badge:o})})):r({verified:!1,error:"EINVAL"})})(r,a,0,t):((e,n,t,r)=>{var o,a;const i=[];null==jt||jt.httpUnsafeOrigin;const s=n.edPublic||(null===(a=null===(o=e.store)||void 0===o?void 0:o.proxy)||void 0===a?void 0:a.edPublic);Ht((e=>{Kt(0,s,e((e=>{Array.prototype.push.apply(i,e)})))})).nThen((n=>{Ut(e,s,n((e=>{Array.prototype.push.apply(i,e)})))})).nThen((()=>{r(i)}))})(r,a,0,t)}}},setCustomize:e=>{jt=null==e?void 0:e.ApiConfig}};var Yt,Gt=o(Object.freeze({__proto__:null,Badge:Vt}));function Jt(){return Yt||(Yt=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A,w,D,_,T,S,x,N,I,C={},R,P,k,M,F,L)=>{const H=y.Account,j=m.Drive,K=x.Badge,U=globalThis;globalThis.nacl=globalThis.nacl||R.Nacl;const B=i.Saferphore;var V=i.mkEvent(!0),Y=i.mkEvent(!0),G=i.mkEvent(!0),J=i.mkEvent(!0);var q={drive:{hideDuplicate:!0},pad:{width:!0,spellcheck:!0},security:{unsafeLinks:!1},general:{allowUserFeedback:!0}};return{setCustomize:n=>{e=n.ApiConfig,C=n.AppConfig},create:function(y){var m=U.Cryptpad_Store={};let x=y.query||function(){},P=y.broadcast||function(){};var M=U.CryptPad_AsyncStore={modules:{}};m.onReadyEvt=V;var W=[],z=function(e,n,t){W.forEach((function(r){r!==t&&x(r,e,n)}))},Q=function(e){if(!e)return M;try{var n=M.modules.team.getTeam(e);return n||void console.error("Team not found",e)}catch(n){return console.error(n),void console.error("Team not found",e)}},Z=m.onSync=function(e,n){var t=Q(e);t?L((function(e){if(t.realtime&&u.whenRealtimeSyncs(t.realtime,e()),!t.id&&t.drive?.realtime&&u.whenRealtimeSyncs(t.drive.realtime,e()),t.sharedFolders&&"object"==typeof t.sharedFolders)for(var n in t.sharedFolders)t.sharedFolders[n].realtime&&u.whenRealtimeSyncs(t.sharedFolders[n].realtime,e())})).nThen((function(){n()})):n({error:"ENOTFOUND"})};m.get=function(e,n,t){var r=Q(n.teamId);r?r.proxy?t(i.find(r.proxy,n.key)):t({error:"ENODRIVE"}):t({error:"ENOTFOUND"})},m.set=function(e,n,t){var r=Q(n.teamId);if(r)if(r.proxy){var o=n.key.slice(),a=o.pop(),s=i.find(r.proxy,o);s&&"object"==typeof s?(void 0===n.value?delete s[a]:s[a]=n.value,n.teamId||(P([e],"UPDATE_METADATA"),Array.isArray(o)&&"profile"===o[0]&&M.messenger&&f.updateMyData(M)),Z(n.teamId,t)):t({error:"INVALID_PATH"})}else t({error:"ENODRIVE"});else t({error:"ENOTFOUND"})};const X=e=>{let n;if(e){const t=Q(e);n=t?.drive?.proxy}else n=M.drive?.proxy;return n};m.drive={get:(e,n,t)=>{let r=X(n.teamId);t(r||{error:"ENOTFOUND"})},set:(e,n,t)=>{let r=X(n.teamId);var o,a;r?(o=r,a=n.value,Object.keys(o).forEach((e=>{delete o[e]})),Object.keys(a).forEach((e=>{o[e]=i.clone(a[e])})),Z(n.teamId,t)):t({error:"ENOTFOUND"})}},m.getSharedFolder=function(e,n,r){var o,a=Q(n.teamId),s=n.id;if(a&&a.manager){if(a.manager.folders[s])return(o=i.clone(a.manager.folders[s].proxy)).offline=Boolean(a.manager.folders[s].offline),void r(o);var c=i.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};c[s]?m.loadSharedFolder(n.teamId,s,c[s],(function(){r(a.manager.folders[s].proxy)})):r({})}else r({error:"ENOTFOUND"})},m.restoreSharedFolder=function(e,n,t){if(n.sfId&&n.drive){var r=Q(n.teamId);r.sharedFolders[n.sfId]&&(Object.keys(n.drive).forEach((function(e){r.sharedFolders[n.sfId].proxy[e]=n.drive[e]})),Object.keys(r.sharedFolders[n.sfId].proxy).forEach((function(e){n.drive[e]||delete r.sharedFolders[n.sfId].proxy[e]}))),Z(n.teamId,t)}else t({error:"EINVAL"})},m.hasSigningKeys=function(){if(M.proxy)return"string"==typeof M.proxy.edPrivate&&"string"==typeof M.proxy.edPublic},m.hasCurveKeys=function(){if(M.proxy)return"string"==typeof M.proxy.curvePrivate&&"string"==typeof M.proxy.curvePublic},m.isOwned=function(e){var n=M.proxy.edPublic;if(!n)return!1;if(!Array.isArray(e)||!e.length)return!1;if(-1!==e.indexOf(n))return!0;var t=M.proxy.teams;return!!t&&Object.keys(t).some((function(n){var r=i.find(t[n],["keys","drive","edPublic"]);return r&&-1!==e.indexOf(r)}))};var $=function(e){var n=e?M.manager.getChannelsList("expirable"):function(){var e=`${M.driveChannel}#drive`;if(!e)return null;var n=M.manager.getChannelsList("pin"),t=M.proxy.profile;if(t){var r=t.edit?a.hrefToHexChannelId("/profile/#"+t.edit,null):null;r&&n.push(r);var o=t.avatar?a.hrefToHexChannelId(t.avatar,null):null;o&&n.push(o)}if(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.friends){var i=f.getFriendChannelsList(M.proxy);n=n.concat(i)}if(M.proxy.mailboxes){var s=Object.keys(M.proxy.mailboxes).map((function(e){if("broadcast"!==e||M.isAdmin)return M.proxy.mailboxes[e].channel})).filter(Boolean);n=n.concat(s)}if(M.proxy.calendars){var c=Object.keys(M.proxy.calendars).map((function(e){return M.proxy.calendars[e].channel}));n=n.concat(c)}return n.push(e),M.data&&M.data.blockId&&n.push(`${M.data.blockId}#block`),n.sort(),n}();return i.deduplicateString(n).sort()};m.pinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){"function"!=typeof t&&(console.error("expected a callback"),t=function(){});var o=n.pads||n;r.rpc.pin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})},m.unpinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){var o=n.pads||n;r.rpc.unpin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})};var ee=M.account={};m.getPinnedUsage=function(e,n,t){var r=Q(n&&n.teamId);r&&r.rpc?r.rpc.getFileListSize((function(e,n){r.id||"number"!=typeof n||(ee.usage=n),t({bytes:n})})):t({error:"RPC_NOT_READY"})},m.updatePinLimit=function(e,n,t){M.rpc?M.rpc.updatePinLimits((function(e,n,r,o){e?t({error:e}):(ee.limit=n,ee.plan=r,ee.note=o,t(ee))})):t({error:"RPC_NOT_READY"})},m.getPinLimit=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.getLimit((function(e,n,o,a){if(e)t({error:e});else{var i=r.id?{}:ee;i.limit=n,i.plan=o,i.note=a,t(i)}})):t({error:"RPC_NOT_READY"})},m.clearOwnedChannel=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.clearOwnedChannel(n.channel,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})};var ne={};m.removeOwnedChannel=function(e,n,t){var r,o,a=n,i=!1;if(n&&"object"==typeof n&&(a=n.channel,i=n.force,r=n.teamId,o=n.reason),a!==M.driveChannel||i){var s=Q(r);s?s.rpc?(m.channels[a]&&(ne[a]=!0),s.rpc.removeOwnedChannel(a,(function(e){e&&delete ne[a],t({error:e})}),o)):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})}else t({error:"User drive removal blocked!"})};m.uploadComplete=function(e,n,t){var r=Q(n.teamId);r?r.rpc?n.owned?r.rpc.ownedUploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):r.rpc.uploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadStatus=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadStatus(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadCancel=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadCancel(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadChunk=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.send.unauthenticated("UPLOAD",n.chunk,(function(e,n){t({error:e,msg:n})})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})};m.anonRpcMsg=function(e,n,t){M.anon_rpc?M.anon_rpc.send(n.msg,n.data,(function(e,n){t(e?{error:e}:n)})):t({error:"ANON_RPC_NOT_READY"})},m.getFileSize=function(e,n,t){var r=i.once(i.mkAsync(t));if(M.anon_rpc){var o=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("GET_FILE_SIZE",o,(function(e,n){if(!e)return n&&n.length&&"number"==typeof n[0]?(0===n[0]&&p.clearChannel(o),void r({size:n[0]})):void r({error:"INVALID_RESPONSE"});r({error:e})}))}else r({error:"ANON_RPC_NOT_READY"})},m.isNewChannel=function(e,n,t){if(M.anon_rpc){var r=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("IS_NEW_CHANNEL",r,(function(e,n){if(!e)return n&&n.length&&"object"==typeof n[0]?(n[0].isNew&&p.clearChannel(r),void t(n[0])):void t({error:"INVALID_RESPONSE"});t({error:e})}))}else t({error:"ANON_RPC_NOT_READY"})},m.getMultipleFileSize=function(e,n,t){M.anon_rpc?Array.isArray(n.files)?M.anon_rpc.send("GET_MULTIPLE_FILE_SIZE",n.files,(function(e,n){e?t({error:e}):n&&n.length&&"object"==typeof n[0]?t({size:n[0]}):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"}):t({error:"ANON_RPC_NOT_READY"})},m.getDeletedPads=function(e,n,t){if(M.anon_rpc){var r=n&&n.list||$(!0);Array.isArray(r)?M.anon_rpc.send("GET_DELETED_PADS",r,(function(e,n){e?t({error:e}):n&&n.length&&Array.isArray(n[0])?t(n[0]):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"})}else t({error:"ANON_RPC_NOT_READY"})};var te=function(e,n,t){M.anon_rpc?t():d.createAnonymous(M.network,(function(e,n){e?t({error:e}):(M.anon_rpc=n,t())}))},re=m.getAllStores=function(){if(!M.proxy||!M.manager)return[];var e=[M],n=M.modules.team;if(n){var t=n.getTeams().map((function(e){return n.getTeam(e)}));Array.prototype.push.apply(e,t)}return e};m.getUserColor=function(){var e=i.find(M,["proxy","settings","general","cursor","color"]);return e||(e=i.getRandomColor(!0),m.setAttribute(null,{attr:["general","cursor","color"],value:e},(function(){}))),e},m.getMetadata=function(e,n,t){var r=M.proxy||{},o=i.find(r,["settings","general","disableThumbnails"]),c=M.modules.team&&M.modules.team.getTeamsData(n)||{};r.uid||(M.noDriveUid=M.noDriveUid||a.createChannelId());var u={user:{name:r[s.displayNameKey]||M.noDriveName||"",uid:r.uid||M.noDriveUid,avatar:i.find(r,["profile","avatar"]),profile:i.find(r,["profile","view"]),color:m.getUserColor(),notifications:i.find(r,["mailboxes","notifications","channel"]),curvePublic:r.curvePublic,edPublic:r.edPublic,netfluxId:M?.network?.webChannels?.[0]?.myID,badge:i.find(r,["profile","badge"])},priv:{clientId:e,edPublic:r.edPublic,edPrivate:r.edPrivate,friends:r.friends||{},settings:r.settings||q,thumbnails:!1===o,isDriveOwned:Boolean(i.find(M,["driveMetadata","owners"])),driveChannel:M.driveChannel,pendingFriends:r.friends_pending||{},supportPrivateKey:i.find(r,["mailboxes","supportadmin","keys","curvePrivate"]),accountName:r.login_name||"",offline:M.proxy&&M.offline,teams:c,plan:M.ready?ee.plan||"":void 0,mutedChannels:r.mutedChannels}};return t(JSON.parse(JSON.stringify(u))),u},m.onMaintenanceUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{e&&P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"MAINTENANCE",data:e.maintenance}})}))},m.onSurveyUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"SURVEY",data:e.surveyURL}})}))};m.addPad=function(e,n,r){if(n.href||n.roHref){var o;if(!n.roHref){var i=a.parsePadUrl(n.href);"pad"===i.hashData.type&&(o=a.getSecrets(i.type,i.hash,n.password),n.roHref="/"+i.type+"/#"+a.getViewHashFromKeys(o))}var s,c,u,f,l=(s=n.href,c=n.roHref,u=n.title,f=+new Date,{href:s,roHref:c,atime:f,ctime:f,title:u||t.getDefaultName(a.parsePadUrl(s))});n.owners&&(l.owners=n.owners),n.expire&&(l.expire=n.expire),n.password&&(l.password=n.password),(n.channel||o)&&(l.channel=n.channel||o.channel),n.readme&&(l.readme=1),-1===n.teamId&&(n.teamId=void 0);var d=Q(n.teamId);d&&d.manager?d.manager.addPad(n.path,l,(function(o){o?r({error:o}):(re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,r))})):r({error:"ENOTFOUND"})}else r({error:"NO_HREF"})};var oe=function(e,n){var t=i.find(M,["proxy","edPublic"]),r=function(e){var n=[];return e?(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.profile&&M.proxy.profile.edit&&n.push(a.hrefToHexChannelId("/profile/#"+M.proxy.profile.edit,null)),M.proxy.mailboxes&&Object.keys(M.proxy.mailboxes||{}).forEach((function(e){if("supportadmin"!==e){var t=M.proxy.mailboxes[e];n.push(t.channel)}}))):n=M.manager.getChannelsList("owned"),n.filter((function(e){if("string"==typeof e)return-1!==[32,48].indexOf(e.length)}))}(e),o=B.create(10),s=function(n){e||M.manager.findChannel(n).forEach((function(e){var n=M.manager.findFile(e.id);M.manager.delete({paths:n})}))};r.forEach((function(e){var r=n();o.take((function(n){var o=!1;L((function(a){32===e.length&&m.anonRpcMsg(null,{msg:"GET_METADATA",data:e},a((function(i){if(i&&i.error)return n(),r(),void a.abort();var c=i[0];return Object.keys(c||{}).length?c&&Array.isArray(c.owners)&&-1!==c.owners.indexOf(t)?void(o=c.owners.some((function(e){return e!==t}))):(n(),r(),void a.abort()):(s(e),n(),r(),void a.abort())})))})).nThen((function(n){o?m.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[t]},n()):M.rpc.removeOwnedChannel(e,n((function(n){n?console.error(n):s(e)})))})).nThen((function(){n(),r()}))}))}))};m.removeOwnedPads=function(e,n,t){M.proxy.edPublic?L((function(e){oe(!1,e)})).nThen(t):t({error:"NOT_LOGGED_IN"})},m.deleteAccount=function(e,t,r){var o=M.proxy.edPublic,a=t&&t.keys,c=t&&t.auth;m.anonRpcMsg(e,{msg:"GET_METADATA",data:M.driveChannel},(function(t){var u=t[0];if(u&&u.owners&&1===u.owners.length&&-1!==u.owners.indexOf(o))L((function(e){N.checkRights({auth:c,blockKeys:a},e((function(n){if(n)return e.abort(),console.error(n),void r({error:"INVALID_CODE"})})))})).nThen((function(n){globalThis.accountDeletion=e,M.proxy[s.tokenKey]="DELETED",Z(null,n())})).nThen((function(e){M.rpc.removePins(e((function(e){e&&console.error(e)})))})).nThen((function(n){M.ownDeletion=!0,m.removeOwnedChannel(e,{channel:M.driveChannel,force:!0},n())})).nThen((function(e){a&&N.removeLoginBlock({reason:"ARCHIVE_OWNED",auth:c,edPublic:o,blockKeys:a},e((function(e){e&&console.error(e)})))})).nThen((function(e){oe(!0,e)})).nThen((function(){P([e],"DRIVE_DELETED","ARCHIVE_OWNED"),x(e,"DELETE_ACCOUNT","DELETED",(function(){})),M.network.disconnect(),r({state:!0})}));else{var f={intent:"Please delete my account."};f.drive=M.driveChannel,f.edPublic=o;var l=i.decodeBase64(M.proxy.edPrivate),d=R.Nacl.sign.detached(i.decodeUTF8(n(f)),l);R.Nacl.sign.detached.verify(i.decodeUTF8(n(f)),d,i.decodeBase64(o))||console.error("signed message failed verification");var h=i.encodeBase64(d);r({proof:h,toSign:JSON.parse(n(f))})}}))},m.migrateAnonDrive=function(e,n,t){var r=n.anonHash;h.anonDriveIntoUser(M,r,t)},m.setDisplayName=function(e,n,t){if(!M.proxy)return M.noDriveName=n,P([e],"UPDATE_METADATA"),void t();M.modules.profile&&M.modules.profile.setName(n),M.proxy[s.displayNameKey]=n,P([e],"UPDATE_METADATA"),f.updateMyData(M),Z(null,t)},m.resetDrive=function(e,n,t){L((function(e){oe(e)})).nThen((function(){M.proxy.drive=M.userObject.getStructure(),z("DRIVE_CHANGE",{path:["drive","filesData"]},e),Z(null,t)}))},m.setPadAttribute=function(e,n,r){L((function(r){re().forEach((function(o){o.manager.setPadAttribute(n,r((function(){(o.id?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),Z(o.id,r())})))}))})).nThen(r)},m.getPadAttribute=function(e,n,t){var r={};L((function(e){re().forEach((function(t){t.manager.getPadAttribute(n,e((function(e,n){e||(n&&"object"==typeof n?(!r.value||r.atime{if(M.loggedIn&&M.proxy.edPublic){var n,r=M.modules.team,o=r&&r.getTeams()||[];-1!==e.indexOf(M.proxy.edPublic)?n=M:o.some((function(t){var o=i.find(M,["proxy","teams",t,"keys","drive","edPublic"]),a=i.find(M,["proxy","teams",t,"keys","drive","edPrivate"]);if(-1===e.indexOf(o))return!1;if(!a)return!1;var s=r.getTeam(t);return n=s,!0}));var a=function(){if(n){var e=n.rpc;e?e.send("COOKIE","",(function(e){t(e)})):t("ERESTRICTED")}else t("ERESTRICTED")};n&&n.onRpcReadyEvt?n.onRpcReadyEvt.reg((function(){a()})):a()}else t("ERESTRICTED")}))):t("ERESTRICTED")},m.joinPad=function(e,n){if(n.versionHash)!function(e,n){var t,r=a.createChannelId();L((function(r){m.getPadMetadata(null,{channel:n.channel},r((function(n){if(n&&n.rejected)return x(e,"PAD_ERROR",{type:"ERESTRICTED"}),void r.abort();t=n.validateKey})))})).nThen((function(){m.getHistoryRange(e,{cpCount:1,channel:n.channel,lastKnownHash:n.versionHash},(function(o){if(o&&o.error)x(e,"PAD_ERROR",o.error);else{var a=o.messages||[];a.length&&a[a.length-1].serverHash!==n.versionHash?x(e,"PAD_ERROR",{type:"HASH_NOT_FOUND"}):(x(e,"PAD_CONNECT",{myID:r,id:n.channel,members:[r]}),(o.messages||[]).forEach((function(n){x(e,"PAD_MESSAGE",{msg:n.msg,time:n.time,user:r.slice(0,16)})})),t&&M.messenger&&M.messenger.storeValidateKey(n.channel,t),x(e,"PAD_READY"))}}))}))}(e,n);else if(a.isValidChannel(n.channel)){var r=void 0===se[n.channel],o=se[n.channel]=se[n.channel]||{queue:[],data:{},clients:[],bcast:function(e,n,t){o.clients.forEach((function(r){r!==t&&x(r,e,n)}))},history:[],pushHistory:function(e,n){if(n){var t;for(o.history.push("cp|"+e),t=o.history.length-101;t>0&&!/^cp\|/.test(o.history[t]);t--);o.history=o.history.slice(Math.max(t,0))}else o.history.push(e)}};if(-1===o.clients.indexOf(e)&&o.clients.push(e),!r&&o.wc)return x(e,"PAD_CONNECT",{myID:o.wc.myID,id:o.wc.id,members:o.wc.members}),o.wc.members.forEach((function(n){x(e,"PAD_JOIN",n)})),o.history.forEach((function(n){x(e,"PAD_MESSAGE",{msg:k.removeCp(n),user:o.wc.myID,validateKey:o.data.validateKey})})),void x(e,"PAD_READY");var i=function(e){e&&"EDELETED"===e.type&&ne[n.channel]&&(delete ne[o],e.ownDeletion=!0),o.bcast("PAD_ERROR",e),e&&"EDELETED"===e.type&&p&&p.clearChannel&&p.clearChannel(n.channel),-1!==["EDELETED","EEXPIRED","ERESTRICTED"].indexOf(e.type)&&m.leavePad(null,n,(function(){}))},s={Cache:M.neverCache?void 0:p,priority:1,onCacheStart:function(){x(e,"PAD_CACHE")},onCacheReady:function(){x(e,"PAD_CACHE_READY")},onReady:function(t){var r=t.metadata||{};o.data=r,r&&r.validateKey&&M.messenger&&M.messenger.storeValidateKey(n.channel,r.validateKey),x(e,"PAD_READY",t.noCache)},onMessage:function(e,n,t,r,a){o.lastHash=a,o.pushHistory(e,r),o.bcast("PAD_MESSAGE",{user:n,msg:e,validateKey:t})},onJoin:function(e){o.bcast("PAD_JOIN",e)},onLeave:function(e){o.bcast("PAD_LEAVE",e)},onError:i,onChannelError:i,onRejected:m.onRejected,onConnectionChange:function(e){e.state||o.bcast("PAD_DISCONNECT")},onMetadataUpdate:function(e){o.data=e||{},re().forEach((function(r){r.manager.findChannel(n.channel,!0).forEach((function(n){n.data.owners=e.owners,n.data.atime=+new Date,e.expire&&(n.data.expire=+e.expire)})),(r.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})})),o.bcast("PAD_METADATA",e)},crypto:{encrypt:function(e){return e},decrypt:function(e){return e}},noChainPad:!0,channel:n.channel,metadata:n.metadata,network:M.network||M.networkPromise,websocketURL:I.getWebsocketURL(),onInit:function(){G.fire()},onConnect:function(n,t){o.sendMessage=function(e,r,a){t(e,(function(t){t?a({error:t}):(o.lastHash=e.slice(0,64),o.pushHistory(k.removeCp(e),/^cp\|/.test(e)),o.bcast("PAD_MESSAGE",{user:n.myID,msg:k.removeCp(e),validateKey:o.data.validateKey},r),a())}))},o.wc=n,o.queue.forEach((function(n){o.sendMessage(n.message,e)})),o.queue=[],o.bcast("PAD_CONNECT",{myID:n.myID,id:n.id,members:n.members})}};o.cpNf=k.start(s)}else x(e,"PAD_ERROR","INVALID_CHAN")},m.leavePad=function(e,n,t){var r=se[n.channel];r&&r.cpNf?(m.dropChannel(n.channel),t()):t({error:"EINVAL"})},m.sendPadMsg=function(e,n,t){var r=n.msg,o=se[n.channel];if(o)return o.wc?void o.sendMessage(r,e,t):(o.queue.push(r),void t())},m.corruptedCache=function(e,n){var t=se[n];t&&t.cpNf&&(p.clearChannel(n),t.cpNf.resetCache&&t.cpNf.resetCache())},m.changePadPasswordPin=function(e,n,t){var r=n.oldChannel,o=n.channel;L((function(e){re().forEach((function(n){n.manager.findChannel(o).length&&(n.rpc.unpin([r],e()),n.rpc.pin([o],e()))}))})).nThen(t)},m.contactPadOwner=function(e,n,t){var r=n.owners;if(!Array.isArray(r)||!r.length)return t({state:!1});n.send?L((function(e){r.forEach((function(t){!function(e,t,r,o){if(M.mailbox&&!n.anon)return M.mailbox.sendTo(e,t,r,o);A.sendToAnon(M.anon_rpc,e,t,r,o)}(n.query,{channel:n.channel,data:n.msgData},{channel:t.notifications,curvePublic:t.curvePublic},e())}))})).nThen((function(){t({state:!0})})):t({state:!0})},m.givePadAccess=function(e,n,t){var r,o,a=M.proxy.edPublic,i=n.channel,s=M.manager.findChannel(i);n.user&&n.user.notifications&&n.user.curvePublic?s.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(a)&&e.data.href)return r=e.data.href,o=e.data.title,!0}))?(M.mailbox.sendTo("GIVE_PAD_ACCESS",{channel:i,href:r,title:o},{channel:n.user.notifications,curvePublic:n.user.curvePublic}),t()):t({error:"ENOTFOUND"}):t({error:"EINVAL"})},m.getLastHash=function(e,n,t){var r=se[n.channel];r?r.lastHash?t({hash:r.lastHash}):t({error:"EINVAL"}):t({error:"ENOCHAN"})};m.burnPad=function(e,n){var t=n.channel,r=R.b64AddSlashes(n.ownerKey||"");if(t&&r)try{var o=a.decodeBase64(r),i=R.Nacl.sign.keyPair.fromSecretKey(o);l.create(M.network,{edPublic:a.encodeBase64(i.publicKey),edPrivate:a.encodeBase64(i.secretKey)},(function(e,r){e?console.error(e):m.getPadMetadata(null,{channel:t},(function(e){r.removeOwnedChannel(t,(function(t){t?console.error(t):function(e,n){var t=e.channel,r=e.href,o=a.parsePadUrl(r),i=a.getSecrets(o.type,o.hash,e.password);if((!n||!n.error)&&n.mailbox){var s,c=R.createEncryptor(i.keys),u=[];try{"string"==typeof n.mailbox?u.push(c.decrypt(n.mailbox,!0,!0)):Object.keys(n.mailbox).forEach((function(e){u.push(c.decrypt(n.mailbox[e],!0,!0))}))}catch(e){console.error(e)}try{s=M.proxy.curvePublic}catch(e){return void console.error(e)}u.forEach((function(e){var n=JSON.parse(e);n.curvePublic!==s&&M.mailbox.sendTo("OWNED_PAD_REMOVED",{channel:t},{channel:n.notifications,curvePublic:n.curvePublic},(function(){}))}))}}(n,e)}))}))}))}catch(e){console.error(e)}else console.error("Can't delete BAR pad")},m.getPadMetadata=function(e,r,o){var s=i.once(i.mkAsync(o));if(!M.offline&&M.anon_rpc)if(r.channel){if(32===r.channel.length)return a.isValidChannel(r.channel)?void M.anon_rpc.send("GET_METADATA",r.channel,(function(e,o){if(e)s({error:e});else{var a=o&&o[0]||{};s(a),a.rejected||re().forEach((function(e){var o=e.manager.findChannel(r.channel,!0),i=!1;(o.forEach((function(e){n(e.data.owners)!==n(a.owners)&&(i=!0),e.data.owners=a.owners,e.data.atime=+new Date,a.expire&&(e.data.expire=+a.expire)})),i)&&(e.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))}})):(c.send("METADATA_INVALID_CHAN"),void s({error:"EINVAL"}));s({error:"EINVAL"})}else s({error:"ENOTFOUND"});else s({error:"OFFLINE"})},m.setPadMetadata=function(e,n,t){if(n.channel)if(n.command){var r=Q(n.teamId);if(r){var o=n.channels;delete n.channels,r.rpc.setMetadata(n,(function(e,n){e?t({error:e}):Array.isArray(n)&&n.length?t(n[0]):t({})})),Array.isArray(o)&&o.forEach((function(t){var r=i.clone(n);r.channel=t,m.setPadMetadata(e,r,(function(){}))}))}else t({error:"ENOTFOUND"})}else t({error:"EINVAL"});else t({error:"ENOTFOUND"})},m.deleteMailboxMessage=function(e,n,t){M.anon_rpc?M.anon_rpc.send("DELETE_MAILBOX_MESSAGE",n,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})},m.getFullHistory=function(e,n,t){var r=M.network,o=r.historyKeeper,a=[],i=!1,s=function(e){if(!i){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o)return"FULL_HISTORY_END"===o[0]?(t(a),r.off("message",s),void(i=!0)):void("FULL_HISTORY"===o[0]&&(o[1]&&o[1].validateKey||o[1][3]===n.channel&&(e=o[1][4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),n.debug?a.push({serverHash:e.slice(0,64),msg:e,author:o[1][1],time:o[1][5]}):a.push(e))))}};r.on("message",s),r.sendto(o,JSON.stringify(["GET_FULL_HISTORY",n.channel,n.validateKey]))},m.getHistory=function(e,n,t,r){var o=i.once(i.mkAsync(t)),a=M.network,s=a.historyKeeper,c=Math.floor(1e6*Math.random()),u=[],f=!1,l=function(e,t){if(!f&&t===s){var i=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(i&&!(i.txid&&i.txid!==c||i.validateKey&&i.channel))if(i.error&&i.channel)i.channel===n.channel&&(a.off("message",l),f=!0,o({error:i.error}));else{if(1===i.state&&i.channel){if(i.channel!==n.channel)return;return o(u),a.off("message",l),void(f=!0)}Array.isArray(i)&&i[0]&&i[0]!==c||i[3]===n.channel&&(i[4]&&r?u.push({msg:e,hash:i[4].slice(0,64)}):(e=i[4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),u.push(e)))}}};a.on("message",l);var d={txid:c,lastKnownHash:n.lastKnownHash},h=["GET_HISTORY",n.channel,d];a.sendto(s,JSON.stringify(h))},m.getHistoryRange=function(e,n,t){var r,o=M.network,a=o.historyKeeper,s=[],c=!0,u=!1,f=!1,l=i.uid();o.on("message",(function(e){if(!f){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o[1]===l){if("HISTORY_RANGE_ERROR"!==o[0])return"HISTORY_RANGE_END"===o[0]?(t({messages:s,isFull:u,lastKnownHash:r}),void(f=!0)):void("HISTORY_RANGE"===o[0]&&(o[2]&&o[1].validateKey||o[2][3]===n.channel&&(e=o[2][4])&&(c&&(/^cp\|/.test(e)||n.toHash||(u=!0),r=e.slice(0,64),c=!1),e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),s.push({serverHash:e.slice(0,64),msg:e,author:o[2][1],time:o[2][5]}))));t({error:o[2]})}else console.log("bad txid")}})),o.sendto(a,JSON.stringify(["GET_HISTORY_RANGE",n.channel,{from:n.lastKnownHash,to:n.toHash,cpCount:n.cpCount||2,txid:l}]))};var ce=function(e,n){e&&(e.deprecated||e.restricted||(n||e.on("change",["drive",t.SHARED_FOLDERS],(function(n,r,o){if(o.length>3&&"password"===o[3]){var i=o[2],s=e.drive[t.SHARED_FOLDERS][i],c=M.manager.user.userObject.getHref?M.manager.user.userObject.getHref(s):s.href,u=a.parsePadUrl(c),f=a.getSecrets(u.type,u.hash,n);return v.updatePassword(m,{oldChannel:f.channel,password:r,href:c},M.network,(function(){console.log("Shared folder password changed")})),!1}})),e.on("change",[],(function(e,r,o){if(n){if(o[0]===t.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var a=[r.channel];r.rtChannel&&a.push(r.rtChannel),r.lastVersion&&a.push(r.lastVersion),m.pinPads(null,a,(function(e){console.error(e)}))}if(o[0]===t.FILES_DATA&&"object"==typeof e&&e.channel&&!r){var i=[e.channel];M.manager.findChannel(e.channel).some((function(e){return e.fId!==n}))||(e.rtChannel&&i.push(e.rtChannel),e.lastVersion&&i.push(e.lastVersion),m.unpinPads(null,i,(function(e){console.error(e)})))}}e&&!r&&Array.isArray(o)&&(o[0]===t.FILES_DATA||"drive"===o[0]&&o[1]===t.FILES_DATA)&&setTimeout((function(){m.checkDeletedPad(e&&e.channel)})),z("DRIVE_CHANGE",{id:n,old:e,new:r,path:o})})),e.on("remove",[],(function(e,t){z("DRIVE_REMOVE",{id:n,old:e,path:t})}))))};m.loadSharedFolder=function(e,n,t,r,o){var i=Q(e);if(i){var s=a.parsePadUrl(t.href||t.roHref);s||s.hashData?v.load({isNew:o,network:M.network||M.networkPromise,store:i,Store:m,isNewChannel:m.isNewChannel},n,t,r):r({error:"EINVAL"})}else r({error:"ENOTFOUND"})};var ue=function(e,n,t,r){m.loadSharedFolder(null,e,n,t,r)};m.loadSharedFolderAnon=function(e,n,t){m.loadSharedFolder(null,n.id,n.data,(function(e){t({error:e?void 0:"EDELETED"})}))},m.addSharedFolder=function(e,n,r){V.reg((function(){var o=Q(n.teamId);o.manager.addSharedFolder(n,(function(a){a&&"object"==typeof a&&a.error?r(a):((n.teamId?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),r(a))}))}))},m.updateSharedFolderPassword=function(e,n,t){v.updatePassword(m,n,M.network,t)},m.userObjectCommand=function(e,n,r){if(n&&n.cmd){var o=Q(n.teamId);if(o.offline)return(o.id?o.sendEvent:z)("NETWORK_DISCONNECT"),void r({error:"OFFLINE"});o.manager.command(n,(function(o){re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,(function(){r(o)}))}))}};var fe=m.dropChannel=function(e){console.error("Drop channel",e);try{M.messenger.leavePad(e)}catch(e){console.error(e)}try{M.modules.cursor.leavePad(e)}catch(e){console.error(e)}try{M.modules.integration.leavePad(e)}catch(e){console.error(e)}try{M.onlyoffice.leavePad(e)}catch(e){console.error(e)}try{if(function(e){if(M){if(M.driveChannel===e)return!0;if(v.isSharedFolderChannel(e))return!0;if(i.find(M,["proxy","teams"])){var n=i.find(M,["proxy","teams"])||{};return Object.keys(n).some((function(t){return n[t].channel===e}))}return i.find(M,["proxy","profile","href"])?a.hrefToHexChannelId(i.find(M,["proxy","profile","href"]))===e:void 0}}(e))return void delete m.channels[e]}catch(e){console.error(e)}try{p.leaveChannel(e)}catch(e){console.error(e)}m.channels[e]&&(m.channels[e].cpNf&&m.channels[e].cpNf.stop(),delete m.channels[e])};m._removeClient=function(e){var n=W.indexOf(e);-1!==n&&W.splice(n,1);try{M.onlyoffice?.removeClient(e)}catch(e){console.error(e)}try{M.mailbox?.removeClient(e)}catch(e){console.error(e)}Object.keys(M.modules).forEach((function(n){if(M.modules[n]&&M.modules[n].removeClient)try{M.modules[n].removeClient(e)}catch(e){console.error(e)}})),Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients.indexOf(e);-1!==t&&m.channels[n].clients.splice(t,1),0===m.channels[n].clients.length&&fe(n)}))};m.refreshDriveUI=function(){re().forEach((function(e){(e.id?e.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))};var le=function(e,n){const t=i.mkAsync(n);var o=M.proxy,a=M.drive;if(M.manager)t();else{var s=M.manager=r.create(a.proxy,{onSync:function(e){Z(null,e)},edPublic:o.edPublic,pin:function(e,n){M.loggedIn?m.pinPads(null,e,n):n()},unpin:function(e,n){M.loggedIn?m.unpinPads(null,e,n):n()},loadSharedFolder:ue,settings:o.settings,removeOwnedChannel:function(e,n){m.removeOwnedChannel("",e,n)},store:M,Store:m},{outer:!0,edPublic:M.proxy.edPublic,loggedIn:M.loggedIn,log:function(e){z("DRIVE_LOG",e)},rt:a.realtime}),c=M.userObject=s.user.userObject;L((function(e){M.sharedFolders={},M.handleSharedFolder=function(e,n){n?(M.sharedFolders[e]=n,M.driveEvents&&ce(n.proxy,e)):delete M.sharedFolders[e]},c.migrate(e())})).nThen((function(n){var t=M.network||M.networkPromise;v.loadSharedFolders(m,t,M,a.proxy,c,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)}),!0)})).nThen((function(n){ie(D,"team",n,e)})).nThen((function(e){ie(S,"calendar",e)})).nThen((function(){t()}))}};const de=(e=function(){})=>{ie(g,"cursor",e),ie(b,"integration",e),ie(_,"messenger",e),ie(T,"history",e),ie(K,"badge",e),M.onlyoffice||(M.onlyoffice=O.init(M,(function(e,n,t){t.forEach((function(t){x(t,"OO_EVENT",{ev:e,data:n})}))}))),M&&(M.messenger=M.modules.messenger)};var he=function(e,n,t){M.ready=!0;var r=M.proxy,u=M.manager,f=M.userObject;L((function(n){r.settings||(r.settings=q),r.forms||(r.forms={}),r.friends_pending||(r.friends_pending={}),r.form_seed||(r.form_seed=a.createChannelId()),u||(le(e,n()),u=M.manager,f=M.userObject),te(0,0,n()),function(e,n,t){if(!M.loggedIn)return t();M.rpc?t(ee):l.create(M.network,M.proxy,(function(e,n){e?t({error:e}):(M.rpc=n,M.onRpcReadyEvt.fire(),m.getPinLimit(null,null,(function(e){e.error&&console.error(e.error),ee.limit=e.limit,ee.plan=e.plan,ee.note=e.note,t(e)})))}),p)}(0,0,n()),x(e,"LOADING_DRIVE",{type:"migrate",progress:0})})).nThen((function(n){void 0===r.version&&(r.version=11),o(r,n(),(function(n,t){x(e,"LOADING_DRIVE",{type:"migrate",progress:t})}),M)})).nThen((function(n){x(e,"LOADING_DRIVE",{type:"sf",progress:0}),f.fixFiles(),v.loadSharedFolders(m,M.network,M,M.drive.proxy,f,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)})),de(n),ie(w,"profile",n),ie(S,"calendar",n),ie(E,"support",n),L((e=>{M.modules.team&&M.modules.team.onReady(e)}))})).nThen((function(){var e,o=function(){P([],"REQUEST_LOGIN")};M.loggedIn&&(function(e){if(M.rpc){var n=$(!1),t=a.hashChannelList(n);M.rpc.getServerHash((function(n,r){n?e(n):e(null,r===t)}))}else e({error:"RPC_NOT_READY"})}((function(e,n){n||function(e){if(M.rpc){var n=$(!1);M.rpc.reset(n,(function(n){e(n||null)}))}else e({error:"RPC_NOT_READY"})}((function(e){if(e)return console.error(e);console.log("RESET DONE")}))})),"number"!=typeof r.loginToken&&(r[s.tokenKey]=M.data.localToken||Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),n[s.tokenKey]=r[s.tokenKey],M.data.localToken&&M.data.localToken!==r[s.tokenKey])?o():(n.feedback=i.find(r,["settings","general","allowUserFeedback"]),c.init(n.feedback),M.returned=n,"function"==typeof t&&t(n),M.offline=!1,z("NETWORK_RECONNECT"),P([],"UPDATE_METADATA"),P([],"STORE_READY",n),"string"==typeof r.uid&&32===r.uid.length||(console.log("generating a persistent identifier"),r.uid=a.createChannelId()),!M.loggedIn||m.hasSigningKeys()&&m.hasCurveKeys()?(r.on("change",[s.displayNameKey],(function(e,n){"string"==typeof n&&P([],"UPDATE_METADATA")})),r.on("change",["profile"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["friends"],(function(e,n,t){if(P([],"UPDATE_METADATA"),M.messenger&&void 0===e){var o=t.slice(-1)[0],a=r.friends&&r.friends[o];M.messenger.onFriendAdded(a)}})),r.on("remove",["friends"],(function(e,n){if(P([],"UPDATE_METADATA"),M.messenger){var t=n[1];t&&"channel"===n[2]&&M.messenger.onFriendRemoved(t,e)}})),r.on("change",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("remove",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["settings"],(function(){P([],"UPDATE_METADATA")})),r.on("change",[s.tokenKey],(function(){M.isDeleted||"DELETED"===r[s.tokenKey]||P([],"UPDATE_TOKEN",{token:r[s.tokenKey]})})),M.mailbox=A.init({Store:m,store:M,updateMetadata:function(){P([],"UPDATE_METADATA")},updateDrive:function(){z("DRIVE_CHANGE",{path:["drive","filesData"]})},pinPads:function(e,n){m.pinPads(null,e,n)}},e,(function(e,n,t,r){var o=i.once(r||function(){});t.forEach((function(t){x(t,"MAILBOX_EVENT",{ev:e,data:n},o)}))})),V.fire()):o())}))};const pe=(e,n,t,r)=>{if(M.accountModule)return M.accountModule;const o=H.init({userHash:n.userHash,anonHash:n.anonHash,cache:n.cache,form_seed:n.form_seed,store:M,broadcast:P,postMessage:x});M.accountModule=o;const{channel:a,onAccountReady:s,onAccountCacheReady:c,onDisconnect:u,onReconnect:f}=o;M.driveChannel=a,c((e=>{M.returned||=e,t(e)})),s((e=>{M.returned||=e,r(e)})),u((()=>{z("NETWORK_DISCONNECT")})),f((()=>{z("NETWORK_RECONNECT")}));return setInterval((function(){var e=[];Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients;Array.prototype.push.apply(e,t)})),(e=i.deduplicateString(e)).forEach((function(e){var n=0,t=function(){if(n>=2)return m._removeClient(e),x(e,"TIMEOUT"),void console.error("TIMEOUT",e);n++;var r=setTimeout(t,3e4);x(e,"PING",null,(function(e){e&&console.error(e),clearTimeout(r)}))};t()}))}),12e4),o},ve=(e,n,t,r)=>{const o=i.once((e=>{const n=j.init({account:e,store:M,broadcast:P,postMessage:x}),{onDriveReady:o,onDriveCacheReady:a,onDisconnect:i,onReconnect:s}=n;a((()=>{t(M.returned)})),o((()=>{r(M.returned)})),i((()=>{})),s((()=>{}))})),a=()=>{},s=pe(0,n,a,a);s.onAccountCacheReady((()=>{o(s)})),s.onAccountReady((()=>{o(s)}))};m.disableCache=function(e,n,t){n?p.disable():p.enable(),t()};var ye=!1;m.hasDrive=function(e,n,t){t({state:Boolean(M.proxy)})};const me=e=>{if(M?.network?.historyKeeper)return setTimeout(e);const n=n=>{M.network||=n;n.join("0000000000000000000000000000000000").then((function(t){let r;t.members.forEach((e=>{16===e.length&&(r=e)})),n.historyKeeper=r,t.leave(),e()}),(function(n){console.error(n),e({error:"GET_HK"})}))};if(M.network)return n(M.network);M.networkPromise?.then(n)};var ge=function(e,n,t){var r=function(){de();let e=()=>{te(0,0,(function(){c.send("NO_DRIVE",!0),n({})}))};if(t)return((e,n)=>{if(M.rpc)n(M.rpc);else{var t=R.Nacl.sign.keyPair(),r={edPublic:i.encodeBase64(t.publicKey),edPrivate:i.encodeBase64(t.secretKey)};l.create(M.network,r,(function(e,t){e?n({error:e}):(M.rpc=t,n(t))}))}})(0,e);e()};if(M.network)r();else{var o=I.getWebsocketURL();F.connect(o).then((function(e){M.network?(e.disconnect(),e=M.network):M.network=e,me((e=>{e?n(e):r()}))}),(function(e){console.error(e),n({error:"OFFLINE"})}))}};const Ee=(e,n,t)=>{le(e,(function(){t(n),Y.fire()}))},be=(e,n,t)=>{M.manager?Y.reg((function(){me((r=>{M.network||=r,he(e,n,(()=>{t(n)}))}))})):he(e,n,(()=>{t(n)}))};return m.init=function(e,n,t){var r=i.once((function(r){n.driveEvents&&function(e){Y.reg((()=>{-1===W.indexOf(e)&&W.push(e),M.driveEvents||(M.driveEvents=!0,ce(M.proxy),Object.keys(M.manager.folders).forEach((function(e){var n=M.manager.folders[e].proxy;ce(n,e)})))}))}(e),t(r)}));if(ye&&!M.returned&&n.cache)Y.reg((function(){r({state:"ALREADY_INIT",returned:M.cacheReturned})}));else{if(ye)return M.networkTimeout&&x(e,"LOADING_DRIVE",{type:"offline"}),void V.reg((function(){r({state:"ALREADY_INIT",returned:M.returned})}));n.disableCache&&p.disable(),n.noDrive&&!n.requires&&(n.requires="pad"),((e,n,t)=>{if(n.neverDrive||n.noDrive&&!n.userHash&&!n.anonHash)return n.neverDrive&&(M.neverCache=!0),void ge(0,(e=>{e?.error&&c.send("NO_DRIVE_ERROR",!0),t(e)}),!!n.neverDrive);const r=n.requires;ye=!0,M.data=n;let o=e=>{1===Object.keys(M.proxy).length&&c.send("FIRST_APP_USE",!0),e&&e.error&&(ye=!1)};if("pad"===r)return void ge(0,(function(r){if(r&&r.error)return;t(r);let a=i.once((()=>{ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))}));G.reg(a),J.reg(a)}));if("file"===r)return void ge(0,(function(r){r&&r.error||(t(r),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)})))}));if("team"===r){let r=!1;const a=a=>i=>{r||(r=!0,L((e=>{a||te(0,0,e())})).nThen((n=>{ie(D,"team",n,e)})).nThen((e=>{!a&&M.modules.team&&M.modules.team.onReady(e)})).nThen((()=>{t(i),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))})))};return void pe(0,n,a(!0),a(!1))}if("drive"===r)return void ve(0,n,(n=>{t(n),Ee(e,n,o)}),(n=>{t(n),be(e,n,o)}));let a=e=>{o(e);const n=s.prefersDriveRedirectKey,r=i.find(M,["proxy","settings","general",n]);e[n]=r,t(e)};ve(0,n,(n=>{Ee(e,n,a)}),(n=>{be(e,n,a)}))})(e,n,i.once((e=>{"GET_HK"!==e.error?r(e):r({error:"ERROR"})})))}},V.reg((function(){var e=+new Date-7776e6;p.getKeys((function(n,t){if(n)console.error(n);else{var r=function(){if(t.length){var n=t.pop();p.getTime(n,(function(t,o){t?r():!o||o{const n=(e,n={})=>({create:function(t,r,o){var a,i=[],s=e.mkEvent(!0);t.reg((function(e){if(!a){var n=e.data;if("_READY"===n)return r("_READY"),a=!0,s.fire(),void i.forEach((function(e){t.fire(e)}));i.push(n)}}));var c={},u={},f={},l=[],d={},h={};h.query=function(e,n,t,o){var a,i=Math.random().toString(16).replace("0.","")+Math.random().toString(16).replace("0.",""),c=(o=o||{}).timeout||3e4;c>0&&(a=setTimeout((function(){delete u[i],t("TIMEOUT")}),c)),f[i]=function(e){clearTimeout(a),delete f[i],e&&(delete u[i],t("UNHANDLED"))},u[i]=function(e,n){delete u[i],t(void 0,e.content,n)},s.reg((function(){var t={txid:i,content:n,q:e,raw:o.raw};r(o.raw?t:JSON.stringify(t))}))};var p=h.event=function(e,n,t){t=t||{},s.reg((function(){var o={content:n,q:e,raw:t.raw};r(t.raw?o:JSON.stringify(o))}))};h.on=function(e,n,t){var o=function(e,t,o){n(e.content,(function(n){var t={txid:e.txid,content:n};r(o?t:JSON.stringify(t))}),t)};return(c[e]=c[e]||[]).push(o),t||p("EV_REGISTER_HANDLER",e),{stop:function(){var n=c[e].indexOf(o);-1!==n&&c[e].splice(n,1)}}},h.whenReg=function(e,n,t){var r=t;l.indexOf(e)>-1?n():r=!0,r&&(d[e]=d[e]||[]).push(n)},h.onReg=function(e,n){h.whenReg(e,n,!0)},h.on("EV_REGISTER_HANDLER",(function(e){d[e]&&(d[e].forEach((function(e){e()})),delete d[e]),l.push(e)}));var v=!1;h.onReady=function(e){v?e():"function"==typeof e&&h.on("EV_RPC_READY",(function(){v=!0,e()}))},h.ready=function(){h.whenReg("EV_RPC_READY",(function(){h.event("EV_RPC_READY")}))};var y=[""];n.httpUnsafeOrigin?(y.push(n.httpUnsafeOrigin),y.push(n.httpSafeOrigin)):globalThis.location&&y.push(globalThis.location.origin),t.reg((function(e){if(a&&e.data&&"_READY"!==e.data&&y.includes(e.origin)){var n;try{n="object"==typeof e.data?e.data:JSON.parse(e.data)}catch(e){return void console.warn(e)}void 0!==n.ack?f[n.txid]&&f[n.txid](!n.ack):"string"==typeof n.q?c[n.q]?(n.txid&&r(JSON.stringify({txid:n.txid,ack:!0})),c[n.q].forEach((function(t){t(n||JSON.parse(e.data),e,n&&n.raw),n=void 0}))):n.txid&&r(JSON.stringify({txid:n.txid,ack:!1})):void 0===n.q&&u[n.txid]&&u[n.txid](n,e)}})),r("_READY"),o(h)}});e.exports&&(e.exports=n(Z()))})()}(rr)),rr.exports}function ar(){return er||(er=1,function(e){e.exports&&(e.exports=((e,n,t)=>{const r={};let o,a,i={},s=()=>{};return r.init=n=>{a||(a=e.create({query:(e,n,t,r)=>{r=r||function(){},i[e].chan.query(n,t,(function(e,n){r(e?{error:e}:n)}))},broadcast:(e,n,t,r)=>{r=r||function(){},Object.keys(i).forEach((o=>{-1===e.indexOf(+o)&&i[o].chan.query(n,t,((e,n)=>{r(e?{error:e}:n)}))}))}}),s=n)},r.initClient=(e,r)=>{if(!a)return console.error("Not initialized"),void r("NOT_INIT");const{postMsg:c}=e,u=t.mkEvent(),f=Number(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),l=()=>{a._removeClient(f)};n.create(u,c,(function(e){let n=i[f]={chan:e};console.debug("SharedW Channel created"),Object.keys(a.queries).forEach((function(t){"CONNECT"!==t&&"JOIN_PAD"!==t&&"SEND_PAD_MSG"!==t&&"STOPWORKER"!==t&&e.on(t,(function(e,r){try{a.queries[t](f,e,r)}catch(n){console.error("Error in webworker when executing query "+t),console.error(n),console.log(e)}"DISCONNECT"===t&&(l(),globalThis.accountDeletion&&globalThis.accountDeletion===n.id&&(a=void 0,o=void 0))}))})),e.on("STOPWORKER",(function(e,n){s(),a.queries.DISCONNECT(f,e,n)})),e.on("CONNECT",(function(e,n){console.debug("Connecting to store..."),a.queries.CONNECT(f,e,(function(e){if(e&&"ALREADY_INIT"===e.state)return console.debug("Store already exists!"),o=o||e.returned,void n(e);o=e,n(e)}))})),e.on("JOIN_PAD",(function(e,t){n.channelId=e.channel;try{a.queries.JOIN_PAD(f,e,t)}catch(n){console.error("Error in webworker when executing query JOIN_PAD"),console.error(n),console.log(e)}})),e.on("SEND_PAD_MSG",(function(e,t){var r={msg:e,channel:n.channelId};try{a.queries.SEND_PAD_MSG(f,r,t)}catch(e){console.error("Error in webworker when executing query SEND_PAD_MSG"),console.error(e),console.log(r)}})),r(u,l)}),!0)},r})(Xt(),or(),Z()))}(Qt)),Qt.exports}var ir,sr,cr=function(){if(tr)return nr;tr=1;const e=ar();return nr={start:n=>{let t=!1,r=()=>{globalThis.close()};globalThis.window=globalThis,addEventListener("connect",(o=>{console.debug("New SharedWorker client");const a=o.ports[0],i=e=>{a.postMessage(e)};let s,c=!1,u=()=>{};a.onmessage=function(o){if("INIT"===o.data?.type){if((o=>{t||(n(o),e.init(r),t=!0)})(o.data.cfg),c)return;c=!0,e.initClient({postMsg:i},(function(e,n){s=e,u=n,i("SW_READY")}))}else"CLOSE"===o.data?(console.debug("leave"),u()):s&&s.fire(o)}}))}}}();var ur,fr,lr=function(){if(sr)return ir;sr=1;const e=ar();return ir={start:n=>{let t,r=!1;const o=()=>{globalThis.close()},a=e=>{postMessage(e)};globalThis.window=globalThis,onmessage=function(i){if("INIT"===i.data?.type){let s=i.data.cfg;if(r)return;return n(s),e.init(o),r=!0,void e.initClient({postMsg:a},(function(e){t=e,a("WW_READY")}))}t&&t.fire(i)}}}}();var dr=function(){if(fr)return ur;fr=1;const e=ar(),n=Z();return ur={start:t=>{let r,o=!1,a=!1;const i=n.mkEvent(),s=()=>{a=!0},c=e=>{a||i.fire(e)};return{init:n=>{o||(t(n),e.init(s),o=!0,e.initClient({postMsg:c},(function(e){r=e,c("STORE_READY")})))},onMessage:e=>{i.reg((n=>{setTimeout((()=>{e(n)}))}))},query:e=>{r&&!a&&r.fire({data:e,origin:""})}}}}}(),hr=Bn(),pr=n({__proto__:null,default:r(hr)},[hr]),vr=Un(),yr=n({__proto__:null,default:r(vr)},[vr]),mr=nt(),gr=n({__proto__:null,default:r(mr)},[mr]),Er=ot(),br=n({__proto__:null,default:r(Er)},[Er]),Or=Ft(),Ar=n({__proto__:null,default:r(Or)},[Or]);let wr=e=>{[Te,nn,q,$e,B,pr,yn,un,ke,gr,br,Ar,zt,ge,yr,Vt].forEach((n=>{"function"==typeof n.setCustomize&&n.setCustomize(e)}))},Dr="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,_r="undefined"!=typeof SharedWorkerGlobalScope&&self instanceof SharedWorkerGlobalScope;e.store={},_r?cr.start(wr):Dr?lr.start(wr):("undefined"!=typeof module&&module.exports,e.store=dr.start(wr)),e.start=wr})); +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["cryptpad-worker-min"]={})}(this,(function(e){"use strict";function n(e,n){return n.forEach((function(n){n&&"string"!=typeof n&&!Array.isArray(n)&&Object.keys(n).forEach((function(t){if("default"!==t&&!(t in e)){var r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:function(){return n[t]}})}}))})),Object.freeze(e)}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function o(e){if(e.__esModule)return e;var n=e.default;if("function"==typeof n){var t=function e(){return this instanceof e?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};t.prototype=n.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t}var a,i,s,c,u,f,l,d={exports:{}},h={exports:{}},p={exports:{}};function v(){return a||(a=1,function(e){var n;n=function(){var e=function(){},n=function(){return(new Date).getTime()},t=function(e,n,t){e.timeouts.push(setTimeout(n,t))},r=function(n,r){n.ws&&(n.ws.onmessage=e,n.ws.onopen=e,n.ws.close(),r?n.ws.onclose({reason:"offline"}):t(n,(function(){n.ws&&n.ws.onclose({reason:"forced closed because websocket failed to close"})}),1e4))},o=function(e,n){return!!e.ws&&(e.ws.send(JSON.stringify(n)),!0)},a=function(e,n){return function(e,t){var r=n[e];if(!r)throw new Error("no such event "+e);r.push(t)}},i=function(e,n,t,r){var o=r[n];if(!o)throw new Error("no such event "+n);var a=o.indexOf(t);-1!==a&&o.splice(a,1)},s=function(e,t,r){if(e.channels[t])return new Promise((function(n){n(e.channels[t])}));var s=e.queues.p2;1===r?s=e.queues.p1:3===r&&(s=e.queues.p3);var c={queue:s,onMessage:[],onJoin:[],onLeave:[],members:[],jSeq:e.seq++},u={message:c.onMessage,join:c.onJoin,leave:c.onLeave},f={_:c,time:n(),id:t,members:c.members,bcast:function(t){return function(e,t,r){var a=e.channels[t],i=e.seq++,s=[i,"MSG",t,r];if(!a)return new Promise((function(e,n){n({type:"NO_SUCH_CHANNEL",message:JSON.stringify(s)})}));var c=o(e,s);return new Promise((function(t,r){c?e.requests[i]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(s)})}))}(e,f.id,t)},leave:function(t){return function(e,t,r){if(e.channels[t]){if(delete e.channels[t],e.ws&&1===e.ws.readyState){var a=e.seq++;o(e,[a,"LEAVE",t,r]);var i=function(){};e.requests[a]={reject:i,resolve:i,time:n()}}}else console.debug("no such channel",t)}(e,f.id,t)},on:a(0,u),off:function(e,n){i(0,e,n,u)}};e.requests[c.jSeq]=f;var l=[c.jSeq,"JOIN",t],d=o(e,l);return new Promise((function(e,n){d?(f._.resolve=e,f._.reject=n):n({type:"DISCONNECTED",message:JSON.stringify(l)})}))},c=function(t){var r={message:t.onMessage,disconnect:t.onDisconnect,reconnect:t.onReconnect},c={webChannels:t.channels,getLag:function(){return function(e){return e.ws?e.pingOutstanding?Math.max(n()-e.timeOfLastPingSent,e.lastObservedLag):e.lastObservedLag:null}(t)},sendto:function(e,r){return function(e,t,r){var a=e.seq++,i=[a,"MSG",t,r],s=o(e,i);return new Promise((function(t,r){s?e.requests[a]={reject:r,resolve:t,time:n()}:r({type:"DISCONNECTED",message:JSON.stringify(i)})}))}(t,e,r)},join:function(e,n){return s(t,e,n)},disconnect:function(){return function(n){if(n.ws){var t=n.ws.onclose;n.ws.onclose=e,n.ws.close(),t({reason:"network.disconnect() called"})}n.timeouts.forEach(clearTimeout),n.timeouts=[]}(t)},on:a(0,r),off:function(e,n){i(0,e,n,r)}};return c.__defineGetter__("webChannels",(function(){return Object.keys(t.channels).map((function(e){return t.channels[e]}))})),c},u=function(e,t){var a=void 0;try{a=JSON.parse(t.data)}catch(e){return void console.log(e.stack)}if(e.timeOfLastMsgReceived=n(),0===a[0]){if("IDENT"===a[2])return e.uid=a[3],e.ws._onident(),void(e.pingInterval=setInterval((function(){if(!(n()-e.timeOfLastPingReceived<15e3||(n()-e.timeOfLastMsgReceived>6e4&&r(e),e.pingOutstanding))){var t=e.seq++,a=n();e.timeOfLastPingSent=a,e.pingOutstanding++,e.requests[t]={time:a,ping:a},o(e,[t,"PING"])}}),5e3));if(e.uid){if("PING"===a[2])return a[2]="PONG",void o(e,a);if("MSG"===a[2]){var i=void 0,s=e.queues.p2;if(a[3]===e.uid)i=e.onMessage,"number"==typeof a[5]&&(1===a[5]&&(s=e.queues.p1),3===a[5]&&(s=e.queues.p3));else{var c=e.channels[a[3]];if(!c)return void console.log("message to non-existent chan "+JSON.stringify(a));i=c._.onMessage,c._.queue&&(s=c._.queue)}s.push({msg:a,h:i}),function(e){if(!e.queues.busy){var n=function(){var t=e.queues.p1.shift()||e.queues.p2.shift()||e.queues.p3.shift();if(t){e.queues.busy=!0;var r=t.h,o=t.msg;r.forEach((function(e){setTimeout((function(){try{e(o[4],o[1])}catch(e){console.error(e)}}))})),setTimeout((function(){n()}))}else e.queues.busy=!1};n()}}(e)}if("LEAVE"===a[2]){var u=e.channels[a[3]];if(!u)return void(a[1]!==e.uid&&console.log("leaving non-existent chan "+JSON.stringify(a)));var f=u._.members.indexOf(a[1]);-1!==f&&u._.members.splice(f,1),u._.onLeave.forEach((function(e){try{e(a[1],a[4])}catch(e){console.log(e.stack)}}))}if("JOIN"===a[2]){var l=e.channels[a[3]];if(!l)return void console.log("ERROR: join to non-existent chan "+JSON.stringify(a));if(-1!==l._.members.indexOf(a[1]))return;var d=-1!==l._.members.indexOf(e.uid);l._.members.push(a[1]),d||a[1]!==e.uid||(l.myID=e.uid,l._.resolve(l)),d&&l._.onJoin.forEach((function(e){try{e(a[1])}catch(e){console.log(e.stack)}}))}}}else{var h=e.requests[a[0]];if(!h)return void console.log("error: "+JSON.stringify(a));if(delete e.requests[a[0]],"ACK"===a[1]){if(h.ping)return e.lastObservedLag=n()-Number(h.ping),e.timeOfLastPingReceived=n(),void e.pingOutstanding--;h.resolve()}else if("JACK"===a[1]){if(h._){if(!a[2])throw new Error("wrong type of ACK for channel join");return h.id=a[2],void(e.channels[h.id]=h)}h.resolve()}else if("ERROR"===a[1])if("function"==typeof h.reject)h.reject({type:a[2],message:a[3]});else if(h._&&"function"==typeof h._.reject){if("EJOINED"===a[2]&&!e.channels[a[3]])return h.id=a[3],void(e.channels[h.id]=h);h._.reject({type:a[2],message:a[3]})}else console.error(a);else h.reject({type:"UNKNOWN",message:JSON.stringify(a)})}};return{connect:function(o,a){a=a||function(e){return new window.WebSocket(e)};var i={ws:null,seq:1,uid:null,network:null,channels:{},onMessage:[],onDisconnect:[],onReconnect:[],timeouts:[],requests:{},pingInterval:null,queues:{p1:[],p2:[],p3:[]},timeOfLastPingSent:-1,timeOfLastPingReceived:-1,timeOfLastMsgReceived:-1,lastObservedLag:0,pingOutstanding:0};i.network=c(i);var s=e,f=e;"undefined"!=typeof window&&window.addEventListener("offline",(function(){-1===["localhost","127.0.0.1",""].indexOf(window.location.hostname)&&r(i,!0)}));var l=function(){var c=i.ws=a(o);i.timeOfLastPingSent=i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),c.onmessage=function(e){return u(i,e)},c.onclose=function(n){c.onclose=e,clearInterval(i.pingInterval),i.timeouts.forEach(clearTimeout),i.ws=null,i.uid&&(i.uid=null,i.onDisconnect.forEach((function(e){try{e(n.reason)}catch(e){console.log(e.stack)}}))),t(i,l,i.uid?0:7e3)},c.onopen=function(){t(i,(function(){i.uid||(f({type:"TIMEOUT",message:"waited 30000ms"}),s=f=e,r(i))}),3e4)},i.ws._onident=function(){i.timeOfLastPingReceived=n(),i.timeOfLastMsgReceived=n(),i.lastObservedLag=n()-i.timeOfLastPingSent,s!==e?(s(i.network),s=f=e):(i.channels={},i.requests={},i.pingOutstanding=0,i.onReconnect.forEach((function(e){try{e(i.uid)}catch(e){console.log(e.stack)}})))}};return new Promise((function(e,n){s=e,f=n,l()}))}}},e.exports?e.exports=n():window.netflux_websocket=n()}(p)),p.exports}function y(){return i||(i=1,function(e){var n,t,r,o;e.exports&&(e.exports=(n=v(),r=function(e){return e.replace(/^\d+:/,"")},o=(t={}).removeCp=function(e){return e.replace(/^cp\|([A-Za-z0-9+\/=]{0,20}\|)?/,"")},t.start=function(e){var t,a=(e=e||{}).network,i=e.websocketURL,s=e.userName,c=e.channel,u=e.crypto,f=e.readOnly||!1,l=!e.noChainPad&&(e.ChainPad||window.ChainPad),d=void 0===e.useHistory||!!e.useHistory,h=!1,p=e.lastKnownHash,v={},y=[],m=e.priority||2,g=e.Cache,E=!1,b=Math.floor(1e6*Math.random()),O=e.metadata||{},A=O.validateKey=e.validateKey||O.validateKey;O.owners=e.owners||O.owners,O.expire=e.expire||O.expire;var w,D,_=!0,T=!1,S={setReadOnly:function(e,n){f=e,n&&(u=n)}},x=function(){},N=[],I={send:function(){}},C=function(){w&&"function"==typeof w.abort&&w.abort();var n=l.create({userName:s,initialState:e.initialState,transformFunction:e.transformFunction,patchTransformer:e.patchTransformer,validateContent:e.validateContent,avgSyncMilliseconds:e.avgSyncMilliseconds,logLevel:void 0!==e.logLevel?e.logLevel:1});return g&&Array.isArray(t)&&t.length&&(t.forEach((function(e){var t=e.patch;if(!/^\[/.test(t)){try{t=u.decrypt(t,A,!0)}catch(e){console.error(t,A,c),console.error(e)}t=r(t)}n.message(t)})),""===n.getUserDoc())?(n.abort(),t=[],g.clearChannel(c),C()):(n.onMessage((function(e,n,t){I.send(e,n,t)})),n.onPatch((function(t){e.onRemote&&e.onRemote({realtime:n,patch:t})})),n)},R={change:[],onChange:function(e){R.change.forEach((function(n){n(e)}))},users:[]},P=function(n){e.onJoin&&e.onJoin(n),32===n.length&&(-1===R.users.indexOf(n)&&R.users.push(n),R.onChange())},k=function(){},M=function(n){e.onLeave&&e.onLeave(n);var t=R.users.indexOf(n);-1!==t&&R.users.splice(t,1),R.onChange()},F=function(n,t){if(_){try{var r=w&&w.getUserDoc();if(E&&w&&(""===r||r===e.initialState))return void S.resetCache()}catch(e){console.error(e)}w&&w.start(),e.setMyID&&e.setMyID({myID:n.myID}),_=!1,e.onReady&&e.onReady({realtime:w,network:t,userList:R,myId:n.myID,leave:n.leave,metadata:O}),y.length&&(y.forEach((function(e){"function"==typeof e&&e()})),y=[])}},L=function(n,r){if(e.onChannelError&&e.onChannelError({channel:r.id,type:n.error,loaded:!_,error:n.error,message:n.message}),"EUNKNOWN"===n.error)return p=void 0,r&&r.leave(),g?(t=[],void g.clearChannel(c,(function(){l&&(S.realtime=w=C()),x(a,k)}))):void x(a,k);if("function"==typeof S.stop)try{S.stop()}catch(e){}},H=!0,j=function(e){g&&(t.length&&t[t.length-1].hash===e.hash||(!t.length&&H&&(e.isCheckpoint=!0,H=!1),(t.length||e.isCheckpoint)&&(t.push(e),g.storeCache(c,A,t,(function(e){if(e){g.clearChannel(c,(function(){console.warn("Cache cleared",c)}));var n=t;return t=[],void console.error(e,c,n,A)}})))))},K=function(n,t,a,i,s){var f=i.historyKeeper,l=n===f;if(!a||0!==t&&"0"!==t){if(!s||n===f){if(s){var d=JSON.parse(t);if(d.txid&&d.txid!==b)return;if(d.validateKey&&d.channel)return d.channel!==a.id||A||(A=d.validateKey),void(d.channel===a.id&&(O=d,e.onMetadataUpdate&&!_&&e.onMetadataUpdate(O)));if(d.state&&1===d.state&&d.channel)return void(d.channel===a.id&&(Object.keys(v).forEach((function(e){"function"==typeof v[e]&&v[e]("FAILED")})),v={},F(a,i)))}if(l){var h=JSON.parse(t);if(Array.isArray(h)&&h[0]&&h[0]!==b)return;if(h.channel===a.id&&h.error)return void L(h,a);if(t=h[4],h[3]!==a.id)return}if(p=t.slice(0,64),"function"==typeof v[p])return v[p](null,p),void delete v[p];var m,g=/^cp\|/.test(t);t=o(t);try{t=u.decrypt(t,A,l)}catch(e){console.error(t,A,c),console.error(e)}var E="string"==typeof t;!E&&t.content&&(m=t.author,t=t.content),_||e.onLocal&&e.onLocal(!0);var D=E?r(t):t,T=function(){try{if(w&&E&&w.message(D),e.onMessage){var t={time:h?h[5]:+new Date};e.onMessage(D,n,A,g,p,m,t)}var r=g;e.isCacheCheckpoint&&(r=e.isCacheCheckpoint(D,m)),j({patch:D,hash:p,isCheckpoint:r,author:m,time:h?h[5]:+new Date})}catch(e){console.error(e)}};_&&n!==f?y.push(T):T()}}else F(a,i)},U=function(n,r,a){I.wc=n,c=n.id,n.members.forEach(P);var i,s=function(e,t){K(t,e,n,r)};n.on("message",s),n.on("join",P),n.on("leave",M),I.stop=function(){n.off("message",s),n.off("join",P),n.off("leave",M),n.leave(),w&&w.abort()},a&&(I.send=function(n,t,a){var i=function(e,n){if(!f)try{var t=u.encrypt(e,n);if(0===e.indexOf("[4")){var r="";if(window.nacl){var o=window.nacl.hash(window.nacl.util.decodeUTF8(e));r=window.nacl.util.encodeBase64(o.slice(0,8))+"|"}else console.log("Checkpoint sent without an ID. Nacl is missing.");t="cp|"+r+t}return t}catch(n){throw console.log(e),n}}(n,a);if(i){var s=i.slice(0,64),l=/^cp\|/.test(i);e.isCacheCheckpoint&&(l=e.isCacheCheckpoint(n,a)),v[s]=function(e,r){!e&&r&&j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(e,r)},I.wc.bcast(i).then((function(){p=s,delete v[s],j({patch:o(n),hash:s,isCheckpoint:l,author:a,time:+new Date}),t(null,s)}),(function(e){if(console.error(e),!e||"enoent"!==e.type&&"ENOENT"!==e.type)delete v[s],t(e&&e.type||e);else{if(I.wc.leave(),h)return delete v[s],void t("STOPPED");_=!0,r.join(c,m).then((function(e){U(e,r,!1),I.send(n,t,a)}))}}))}},l&&!w&&(S.realtime=w=C()),e.onInit&&e.onInit({myID:n.myID,realtime:w,getLag:r.getLag,userList:R,network:r,channel:c})),e.onConnect&&e.onConnect(n,I.send),d?(n.members.forEach((function(e){16===e.length&&(i=e)})),D!==i&&(r.historyKeeper=i,D=i,N.forEach((function(e){e(i)}))),function(){var e={txid:b,priority:m,lastKnownHash:p,metadata:O};g&&Array.isArray(t)&&t.length&&(e.lastKnownHash=t[t.length-1].hash),y=[];var o=["GET_HISTORY",n.id,e];i&&r.sendto(i,JSON.stringify(o))}(),S.resetCache=function(){_=!0,t=[],g&&g.clearChannel(c),b=Math.floor(1e6*Math.random()),L({error:"EUNKNOWN",message:"Corrupted cache"},n)}):F(n,r)},B=!1;"undefined"!=typeof window&&window.addEventListener("beforeunload",(function(){B=!0}));var V=function(e,n){var t;return e.some((function(e){if(e.id===n)return t=e,!0})),t},Y=function(n){e.onError&&e.onError({type:n.type||n,message:n.message,error:n.type,loaded:!_})};x=function(r,o){var a;"string"==typeof r&&(a=n.connect(r));var i=function(){T=!1,"string"==typeof r?a.then(o,Y):"function"==typeof r.then?r.then(o,Y):o(r)};if(g&&!T)return g.getChannelCache(c,(function(n,r){A=r?r.k:void 0,(t=r?r.c:[]).length?(E=!0,e.onCacheStart&&e.onCacheStart(),l&&(S.realtime=w=C()),t.length?(e.onMessage&&t.forEach((function(n){var t={time:n.time};e.onMessage(n.patch,"cache",A,n.isCheckpoint,n.hash,n.author,t)})),e.onCacheReady&&e.onCacheReady({id:c,realtime:w,networkPromise:a}),i()):i()):i()})),void(S.resetCache=function(){g&&g.clearChannel(c),t=[]});i()};var G=!0;return k=function(n,t){h||n.join(c||null,m).then((function(e){if(h)try{e.leave()}catch(e){}else U(e,n,t)}),(function(r){r&&"ERESTRICTED"===r.type&&Array.isArray(r.message)&&e.onRejected?e.onRejected(r.message,(function(e){e?Y(r):k(n,t)})):Y(r)}))},S.stop=function(){h=!0},x(a||i,(function(n){if(a=n,G){if(G=!1,h)return;var t=function(n){B||"network.disconnect() called"!==n&&(e.onConnectionChange?e.onConnectionChange({state:!1}):e.onAbort&&e.onAbort({reason:n}))},r=function(n){if(e.onConnectionChange){e.onConnectionChange({state:!0,myId:n});var t=function(){_=!0,T=!0,R.users=[],x(a,k)};if(e.beforeReconnecting)return void e.beforeReconnecting((function(n,r){c=n,e.initialState=r,t()}));t()}},o=function(e,n){var t=V(a.webChannels,c);t&&K(n,e,t,a,!0)};a.on("disconnect",t),a.on("reconnect",r),a.on("message",o),S.network=a,S.stop=function(){I&&I.stop&&I.stop();var e=V(a.webChannels,c);if(e)try{e.leave("")}catch(e){}a.off("disconnect",t),a.off("reconnect",r),a.off("message",o),h=!0},a.onHistoryKeeperChange=function(e){N.push(e)}}k(a,!0)})),S},t))}(h)),h.exports}function m(){return f?u:(f=1,u=function(){if(c)return s;c=1;const e=n=>{if(Array.isArray(n))return n.map(e);if(n instanceof Object){let t=[],r=[];return Object.keys(n).forEach((e=>{/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce(((t,r)=>(t[r]=e(n[r]),t)),{})}return n},n=JSON.stringify.bind(JSON);return s=(t,r,o)=>{let a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;let i=JSON.parse(a);return n(e(i),null,o)}}())}function g(){return l||(l=1,function(e){e.exports&&(e.exports=function(e,n){const t=globalThis;var r,o={},a=void 0===t.Proxy,i=o.DeepProxy=function(){var e={},r=e.isArray=Array.isArray||function(e){return"[object Array]"===Object.toString(e)},o=e.type=function(e){return null===e?"null":r(e)?"array":typeof e},i=e.isProxyable=function(e,n){return(void 0!==n||!a)&&-1!==["object","array"].indexOf(o(e))},s=e.set=function(n){return function(t,r,o){if("on"===r)throw new Error("'on' is a reserved attribute name for realtime lists and maps");return i(o)?t[r]=e.create(o,n):t[r]=o,n(),t[r]||!0}},c=e.pathMatches=function(e,n){return!n.some((function(n,t){return n!==e[t]}))},u=function(e,n){return n.pattern.length-e.pattern.length},f=function(e){return function(n,t,r){switch(n){case"change":t="array"===o(t)?t:[t],e.change.push({cb:function(e,n,o,a){if(c(o,t))return r(e,n,o,a)},pattern:t}),e.change.sort(u);break;case"remove":t="array"===o(t)?t:[t],e.remove.push({cb:function(e,n,o){if(c(n,t))return r(e,n,o)},pattern:t}),e.remove.sort(u);break;case"ready":e.ready.push({cb:function(e){t(e)}});break;case"cacheready":e.cacheready.push({cb:function(e){t(e)}});break;case"disconnect":e.disconnect.push({cb:function(e){t(e)}});break;case"reconnect":e.reconnect.push({cb:function(e){t(e)}});break;case"create":e.create.push({cb:function(e){t(e)}});break;case"error":e.error.push({cb:function(e){t(e)}})}return this}},l=e.get=function(){var e={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};return function(n,t){return"on"===t?f(e):"_isProxy"===t||("_events"===t?e:n[t])}},d=e.delete=function(e){return function(n,t){return void 0===n[t]||(delete n[t],e()),!0}},h=e.handlers=function(e,n){return n?{set:s(e),get:l(e),deleteProperty:d(e)}:{set:s(e),get:function(e,n){return"_isProxy"===n||e[n]},deleteProperty:d(e)}},p=e.remoteChangeFlag=!1,v=e.stringifyFakeProxy=function(e){var t=JSON.parse(n(e));return delete t._events,delete t._isProxy,n(t)};e.checkLocalChange=function(n,r){if(a&&!e.interval){var o=v(n);e.interval=t.setInterval((function(){var e=v(n);e!==o&&(o=e,p?p=!1:r())}),300)}};var y=e.create=function(e,n,r){var s="function"===o(n)?h(n,r):n;switch(o(e)){case"object":Object.keys(e).forEach((function(t){i(e[t])&&!e[t]._isProxy&&(e[t]=y(e[t],n))}));break;case"array":e.forEach((function(t,r){i(t)&&!t._isProxy&&(e[r]=y(e[r],n))}));break;default:throw new Error("attempted to make a proxy of an unproxyable object")}if(!a)return e._isProxy?e:new t.Proxy(e,s);var c=JSON.parse(JSON.stringify(e));if(r){var u={cacheready:[],disconnect:[],reconnect:[],change:[],ready:[],remove:[],create:[],error:[]};c.on=f(u),c._events=u}return c},m=function(e,n,t,r,o){var a=e.slice(0);a.push(n),t._events.change.some((function(e){return!1===e.cb(r,o,a,t)}))},g=e.find=function(e,n){for(var t=n.length,r=0;rs)for(var c,u=s;u<=s;u++)c=e[u],E(r,u,a,c,!0);e.length=s}};return e.update=function(e,n,t){var r=o(e),a=o(n);if(r!==a)throw new Error("Proxy updates can't result in type changes");switch(a){case"array":O.call(e,e,n,(function(e){return y(e,t)}),[],e);break;case"object":b.call(e,e,n,(function(e){return y(e,t)}),[],e);break;default:throw new Error("unsupported realtime datatype:"+a)}},e}();return o.create=function(o){if(!i.isProxyable(o.data,!0))throw new Error("unsupported datatype: "+i.type(o.data));if("function"!=typeof(r=o.ChainPad||t.ChainPad).SmartJSONTransformer)throw new Error("Please update ChainPad");o.classic&&!o.crypto&&(console.error("[chainpad-listmap] no crypto module provided. messages will not be encrypted"),o.crypto={encrypt:function(e){return e},decrypt:function(e){return e}});var s=o.readOnly,c={initialState:n(o.data),patchTransformer:r.SmartJSONTransformer,validateContent:o.validateContent||function(e){try{return JSON.parse(e),!0}catch(n){return console.log(e),console.error("Failed to parse, rejecting patch"),!1}},readOnly:o.readOnly,userName:o.userName||"listmap",Cache:o.Cache,logLevel:void 0===o.logLevel?0:o.logLevel};o.classic&&(c.channel=o.channel,c.crypto=o.crypto,c.network=o.network,c.websocketURL=o.websocketURL,c.metadata=o.metadata||{validateKey:o.validateKey,owners:o.owners,expire:o.expire},c.onRejected=o.onRejected);var u,f,l,d={metadata:{}},h=!0,p=!1,v=a?i.stringifyFakeProxy:n,y=function(){var e=v(f);try{u.contentUpdate(e)}catch(e){f._events.error.forEach((function(n){n.cb({type:"CHAINPAD",error:e.message})}))}o.onLocal&&o.onLocal()},m=c.onLocal=function(e){h||s||(clearTimeout(l),e?y():l=setTimeout(y))},g=function(){i.remoteChangeFlag||m()};f=i.create(o.data,g,!0),c.onInit=function(e){f._events.create.forEach((function(n){n.cb(e)}))},c.onCacheReady=function(e){u&&u===e.realtime||(u=d.realtime=e.realtime);var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),p||f._events.cacheready.forEach((function(n){n.cb(e)}))};var E=0;c.onReady=function(e){if(E=-1,p)return h=!1,c.onRemote(),void f._events.reconnect.forEach((function(n){n.cb(e)}));u&&u===e.realtime||(u=d.realtime=e.realtime),d.metadata=e.metadata;var n=u.getUserDoc(),t=JSON.parse(n);i.update(f,t,g),i.checkLocalChange(f,m),h=!1,p=!0,f._events.ready.forEach((function(n){n.cb(e)}))},c.onRemote=function(){if(!h){var e=u.getUserDoc(),n=JSON.parse(e);i.remoteChangeFlag=!0,i.update(f,n,g),i.remoteChangeFlag=!1}},c.onMessage=function(){-1!==E&&o.updateProgress&&o.updateProgress({progress:E++})},c.onAbort=function(e){f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onConnectionChange=function(e){e.state?h=!0:f._events.disconnect.forEach((function(n){n.cb(e)}))},c.onMetadataUpdate=function(e){d.metadata=e,"function"==typeof o.onMetadataUpdate&&o.onMetadataUpdate(e)},c.onError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},c.onChannelError=function(e){f._events.error.forEach((function(n){n.cb(e)}))},o.common&&"function"==typeof o.common.startRealtime?u=d.cpCnInner=o.common.startRealtime(c):d=e.start(c),d.proxy=f,d.realtime=u;var b=d.setReadOnly;return d.setReadOnly=function(e,n){s=e,b&&b(e,n)},d},o}(y(),m()))}(d)),d.exports}var E=g();function b(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var O,A={exports:{}};function w(){return O||(O=1,function(e){var n,r,o,a;a=function(){var e=b,n=function(t,r,o){r||(r=0);var a=n.resolve(t,r),i=n.m[r][a];if(!i&&e){if(i=e(a))return i}else if(i&&i.c&&(r=i.c,a=i.m,!(i=n.m[r][i.m])))throw new Error('failed to require "'+a+'" from '+r);if(!i)throw new Error('failed to require "'+t+'" from '+o);return i.exports||(i.exports={},i.call(i.exports,i,i.exports,n.relative(a,r))),i.exports};return n.resolve=function(e,t){var r=e,o=e+".js",a=e+"/index.js";return n.m[t][o]&&o?o:n.m[t][a]&&a?a:r},n.relative=function(e,t){return function(r){if("."!=r.charAt(0))return n(r,t,e);var o=e.split("/"),a=r.split("/");o.pop();for(var i=0;i=0;t--)o.check(e.operations[t],n),t>0&&r.assert(!o.shouldMerge(e.operations[t],e.operations[t-1])),"number"==typeof n&&(n+=o.lengthChange(e.operations[t]));return e.isCheckpoint&&(r.assert(1===e.operations.length),r.assert(0===e.operations[0].offset),"number"==typeof n&&r.assert(!n||e.operations[0].toRemove===n)),e};i.toObj=function(e){r.PARANOIA&&c(e);var n,t=new Array(e.operations.length+1);for(n=0;n0);var t,i=s(a.check(e[e.length-1]),n);for(t=0;t=0;t--)f(e,n.operations[t]);return e},i.apply=function(e,n){r.PARANOIA&&(c(e),r.assert("string"==typeof n),r.assert(a.hex_sha256(n)===e.parentHash));for(var t=n,i=e.operations.length-1;i>=0;i--)t=o.apply(e.operations[i],t);return t},i.lengthChange=function(e){r.PARANOIA&&c(e);for(var n=0,t=0;t=0;u--)i[u]=o.invert(e.operations[u],t),t=o.apply(e.operations[u],t);var f=new Array(e.operations.length);!function(){for(var e=i.length-1;e>=0;e--){f[e]=i[e].offset;for(var n=e-1;n>=0;n--)f[e]+=i[n].toRemove-i[n].toInsert.length}}();var l=s(a.hex_sha256(t),e.isCheckpoint);l.operations.splice(0,l.operations.length);for(var d=0;d=0;d--){var h=t(e.operations[d],u,o.simplify);h&&(u=o.apply(h,u),f[l++]=h)}return Array.prototype.push.apply(i.operations,f.reverse()),i.operations[0]||i.operations.shift(),r.PARANOIA&&c(i),i},i.equals=function(e,n){if(e.operations.length!==n.operations.length)return!1;for(var t=0;t0;){var u=o.random(i);i+=o.lengthChange(u),f(t,u)}return c(t),t},Object.freeze(e.exports)},"SHA256.js":function(e,n,t){!function(){function n(e,n){var t=(65535&e)+(65535&n);return(e>>16)+(n>>16)+(t>>16)<<16|65535&t}function t(e,n){return e>>>n|e<<32-n}function r(e,n){return e>>>n}function o(e,n,t){return e&n^~e&t}function a(e,n,t){return e&n^e&t^n&t}function i(e){return t(e,2)^t(e,13)^t(e,22)}function s(e){return t(e,6)^t(e,11)^t(e,25)}function c(e){return t(e,7)^t(e,18)^r(e,3)}e.exports.hex_sha256=function(e){return function(e){for(var n="0123456789abcdef",t="",r=0;r<4*e.length;r++)t+=n.charAt(e[r>>2]>>8*(3-r%4)+4&15)+n.charAt(e[r>>2]>>8*(3-r%4)&15);return t}(function(e,u){var f,l,d,h,p,v,y,m,g,E,b,O=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],A=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],w=function(e){for(var n=[];e>0;e--)n.push(void 0);return n}(64);e[u>>5]|=128<<24-u%32,e[15+(u+64>>9<<4)]=u;for(var D=0;D>5]|=(255&e.charCodeAt(t/8))<<24-t%32;return n}(e),8*e.length))}}()},"Common.js":function(e,n,r){e.exports.global=function(){if("undefined"!=typeof self)return self;if(void 0!==t)return t;if("undefined"!=typeof window)return window;throw new Error("no self, nor global, nor window")}();var o=function(n){return"undefined"!=typeof localStorage&&localStorage[n]?localStorage[n]:e.exports.global[n]},a=e.exports.PARANOIA=o("ChainPad_PARANOIA");e.exports.VALIDATE_ENTIRE_CHAIN_EACH_MSG=o("ChainPad_VALIDATE_ENTIRE_CHAIN_EACH_MSG"),e.exports.TESTING=o("ChainPad_TESTING"),e.exports.assert=function(e){if(!e)throw new Error("Failed assertion")},e.exports.isUint=function(e){return"number"==typeof e&&Math.floor(e)===e&&e>=0},e.exports.randomASCII=function(e){for(var n=[],t=0;tn?1:-1},Object.freeze(e.exports)},"sha256.js":function(e,n,t){var r=t("./sha256/exports.js"),o=t("./SHA256.js"),a=t("./Common");e.exports.check=function(e){if("string"!=typeof e)throw new Error;if(!/[a-f0-9]{64}/.test(e))throw new Error;return e},e.exports.hex_sha256=function(e){e+="";var n=r.hex(function(e){for(var n=new Uint8Array(e.length),t=0;t1&&console.log("["+e.userName+"] "+n)},d=function(e,n){e.logLevel>0&&console.error("["+e.userName+"] "+n)},h=function(e,n,t){if(!e.aborted){t||(t=Math.floor(2*Math.random()*e.config.avgSyncMilliseconds));var r=setTimeout((function(){e.schedules.splice(e.schedules.indexOf(r),1),n()}),t);return e.schedules.push(r),r}},p=function(e,n){var t=e.schedules.indexOf(n);t>-1&&e.schedules.splice(t,1),clearTimeout(n)},v=function(e,n,t,o){var a=i.toStr(n);if(function(e,n,t){e.messageHandlers.length||t("no onMessage() handler registered");try{e.messageHandlers.forEach((function(e){e(n,(function(){t.apply(null,arguments),t=function(){}}))}))}catch(e){t(e.stack)}}(e,a,(function(t){if(t)l(e,"Posting to server failed ["+t+"]"),e.pending=null,e.syncSchedule=h(e,(function(){g(e)}));else{var o=e.pending;if(e.pending=null,!o)throw new Error;r.assert(o.hash===n.hashOf),R(e,a,!0)?(e.timeOfLastSuccess=+new Date,e.lag=+new Date-o.timeSent):l(e,"Our message ["+n.hashOf+"] failed validation"),o.callback()}})),e.pending)throw new Error("there is already a pending message");-1===e.timeOfLastSuccess&&(e.timeOfLastSuccess=+new Date),e.pending={hash:n.hashOf,timeSent:+new Date,callback:function(){e.syncSchedule=h(e,(function(){g(e)}),0),t()}},r.PARANOIA&&A(e)},y=function(e){var n=e.onSettle;e.onSettle=[],n.forEach((function(n){try{n()}catch(n){d(e,"Error in onSettle handler ["+n.stack+"]")}}))},m=function(e){if(!e.mut.inverseOf)throw new Error;return e.mut.inverseOf},g=function(e,n){if(r.PARANOIA&&A(e),e.syncSchedule&&!e.pending){if(p(e,e.syncSchedule),e.syncSchedule=null,e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify),0===e.uncommitted.operations.length)return y(e),e.timeOfLastSuccess=+new Date,void(e.syncSchedule=h(e,(function(){g(e)})));var t=_(e,e.best)+1;if(t%e.config.checkpointInterval!=0){var o;o=e.setContentPatch?e.setContentPatch:i.create(i.PATCH,e.uncommitted,e.best.hashOf),v(e,o,(function(){e.setContentPatch&&(l(e,"initial Ack received ["+o.hashOf+"]"),e.setContentPatch=null)}))}else{var s=e.best;if(l(e,"Sending checkpoint (interval ["+e.config.checkpointInterval+"]) patch no ["+t+"]"),l(e,_(e,e.best)),!s||!s.content||!m(s.content))throw new Error;var c=a.createCheckpoint(e.authDoc,e.authDoc,m(s.content).parentHash),u=i.create(i.CHECKPOINT,c,s.hashOf);v(e,u,(function(){l(e,"Checkpoint sent and accepted")}))}}},E=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),e.messages[n.hashOf]=n,(e.messagesByParent[n.lastMsgHash]=e.messagesByParent[n.lastMsgHash]||[]).push(n)},b=function(e,n){r.assert(n.lastMsgHash),r.assert(n.hashOf),delete e.messages[n.hashOf];var t=e.messagesByParent[n.lastMsgHash];r.assert(t.indexOf(n)>-1),t.splice(t.indexOf(n),1),0===t.length&&delete e.messagesByParent[n.lastMsgHash];var o=e.messagesByParent[n.hashOf];if(o)for(var a=0;a_(e,t)&&(t=o)})),t},x=function(e,n){n.operations.length&&(e.patchHandlers.forEach((function(e){e(n)})),e.changeHandlers.forEach((function(e){n.operations.forEach((function(n){e(n.offset,n.toRemove,n.toInsert)}))})))},N=function(e,n){try{return e.config.validateContent(n())}catch(n){d(e,"Error in content validator ["+n.stack+"]")}return!1},I=function(e,n,t){for(var r=O(e,n);r;r=O(e,r))if(!1===t(r))return},C=function(e,n){e.mut.inverseOf||((e.mut.inverseOf=a.invert(e,n)).mut.inverseOf=e)},R=function(e,n,t){r.PARANOIA&&A(e);var c=i.fromString(n);if(l(e,JSON.stringify([c.hashOf,c.content.operations])),e.messages[c.hashOf]){if(e.setContentPatch&&e.setContentPatch.hashOf===c.hashOf)e.setContentPatch=null;else{if(c.content.isCheckpoint)return l(e,"["+(t?"our":"their")+"] Checkpoint ["+c.hashOf+"] is already known"),!0;l(e,"Patch ["+c.hashOf+"] is already known")}r.PARANOIA&&A(e)}else if(!c.content.isCheckpoint||N(e,(function(){return c.content.operations[0].toInsert}))){if(E(e,c),!D(e,e.rootMessage,c)){if(c.content.isCheckpoint&&e.best.mut.isInitialMessage){l(e,"applying checkpoint ["+c.hashOf+"]");var u=a.apply(e.uncommitted,e.authDoc);r.assert(!r.PARANOIA||e.userInterfaceContent===u);var f=a.invert(e.uncommitted,e.authDoc);return a.addOperation(f,o.create(0,e.authDoc.length,c.content.operations[0].toInsert)),f=a.simplify(f,u,e.config.operationSimplify),c.mut.parentCount=0,e.rootMessage=e.best=c,e.authDoc=c.content.operations[0].toInsert,e.uncommitted=a.create(s.hex_sha256(e.authDoc)),x(e,f),r.PARANOIA&&(e.userInterfaceContent=e.authDoc),!0}return l(e,"Patch ["+c.hashOf+"] not connected to root (parent: ["+c.lastMsgHash+"])"),void(r.PARANOIA&&A(e))}(c=S(e,c)).mut.isFromMe=t;var d=c.content,h=[],p=e.best;if(!D(e,e.best,c)){var v=_(e,e.best),g=_(e,c);if(!(v0))return l(e,"Patch ["+c.hashOf+"] chain is ["+g+"] best chain is ["+v+"]"),r.PARANOIA&&A(e),!0;for(;p&&!D(e,p,c);)h.push(p),p=O(e,p);r.assert(p),l(e,"Patch ["+c.hashOf+"] better than best chain, switching")}var R=[],P=c;do{R.unshift(P),P=O(e,P),r.assert(P)}while(P!==p);var k=e.authDoc;h.forEach((function(e){k=a.apply(m(e.content),k)})),R.forEach((function(e,n){n!==R.length-1&&(C(e.content,k),k=a.apply(e.content,k))}));var M=e.best;if(R.length>1?(M=R[R.length-2],r.assert(M)):h.length&&(M=O(e,h[h.length-1]),r.assert(M)),r.assert(m(M.content).parentHash),r.assert(!r.PARANOIA||m(M.content).parentHash===s.hex_sha256(k)),m(M.content).parentHash===d.parentHash){if(d.isCheckpoint&&e.config.noPrune);else if(d.isCheckpoint){var F;if(I(e,c,(function(e){if(e.content.isCheckpoint){if(F)return F=e,!1;F=e}})),F&&F!==e.rootMessage){var L=_(e,F);if(e.config.strictCheckpointValidation&&L%e.config.checkpointInterval!=0){if(l(e,"checkpoint ["+c.hashOf+"] at invalid point ["+L+"]"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}l(e,"checkpoint ["+c.hashOf+"]"),I(e,F,(function(n){l(e,"pruning ["+n.hashOf+"]"),b(e,n)})),e.rootMessage=F}}else{var H=a.simplify(d,k,e.config.operationSimplify);if(!a.equals(H,d)){if(l(e,"patch ["+c.hashOf+"] can be simplified"),r.PARANOIA&&A(e),r.TESTING)throw new Error;return void b(e,c)}if(!N(e,(function(){return a.apply(d,k)})))return void l(e,"Patch ["+c.hashOf+"] failed content validation")}C(d,k),e.uncommitted=a.simplify(e.uncommitted,e.authDoc,e.config.operationSimplify);var j=a.apply(e.uncommitted,e.authDoc);r.PARANOIA&&r.assert(j===e.userInterfaceContent);var K=a.invert(e.uncommitted,e.authDoc);if(h.forEach((function(n){l(e,"reverting ["+n.hashOf+"]"),n.mut.isFromMe&&l(e,"reverting patch 'from me' ["+JSON.stringify(n.content.operations)+"]"),K=a.merge(K,m(n.content)),function(e,n,t){T(e,n,m(t))}(e,n.mut.isFromMe,n.content)})),R.forEach((function(n){l(e,"applying ["+n.hashOf+"]"),K=a.merge(K,n.content),T(e,n.mut.isFromMe,n.content)})),K=a.merge(K,e.uncommitted),K=a.simplify(K,j,e.config.operationSimplify),e.best=c,r.PARANOIA){var U=a.apply(K,j);r.assert(e.userInterfaceContent.length===w(e)),r.assert(U===e.userInterfaceContent)}return x(e,K),e.uncommitted.operations.length||y(e),r.PARANOIA&&A(e),!0}if(l(e,"patch ["+c.hashOf+"] parentHash is not valid"),r.PARANOIA&&A(e),r.TESTING)throw new Error;b(e,c)}else l(e,"Checkpoint ["+c.hashOf+"] failed content validation")},P=function(e,n){return Object.freeze({type:"Block",hashOf:n.hashOf,lastMsgHash:n.lastMsgHash,isCheckpoint:!!n.content.isCheckpoint,isFromMe:n.mut&&n.mut.isFromMe,author:n.mut&&n.mut.author,serverHash:n.mut&&n.mut.serverHash,time:n.mut&&n.mut.time,getParent:function(){var t=O(e,n);if(t)return P(e,t)},getContent:function(){return function(e,n){for(var t=[n];t[0]!==e.rootMessage;){var o=O(e,t[0]);if(!o)return{error:"not connected to root",doc:void 0};t.unshift(o)}var i="";e.rootMessage.content.operations.length&&(r.assert(1===e.rootMessage.content.operations.length),i=e.rootMessage.content.operations[0].toInsert);for(var s=1;s=0;t--)n=s(e[t],n);return n};var c=o.invert=function(e,n){return r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length)),i(e.offset,e.toInsert.length,(" "+n.substring(e.offset,e.offset+e.toRemove)).slice(1))},u=/[\uD800-\uDBFF]|[\uDC00-\uDFFF]/,f=o.hasSurrogate=function(e){return u.test(e)};o.simplify=function(e,n){r.PARANOIA&&(a(e),r.assert("string"==typeof n),r.assert(e.offset+e.toRemove<=n.length));for(var t=c(e,n),o=Math.min(e.toInsert.length,t.toInsert.length),s=0;s=0&&h[s]===d[s];s--);d=d.substring(0,s+1),l=s+1}return 0===l&&0===d.length?null:i(u,l,d)},o.equals=function(e,n){return e.toRemove===n.toRemove&&e.toInsert===n.toInsert&&e.offset===n.offset},o.lengthChange=function(e){return r.PARANOIA&&a(e),e.toInsert.length-e.toRemove},o.merge=function(e,n){r.PARANOIA&&(a(n),a(e));var t=e.offset,o=e.toRemove,s=e.toInsert,c=n.offset,u=n.toRemove,f=n.toInsert,l=c-t;if(u>0){var d=s;s=s.substring(0,l)+s.substring(l+u),(u-=d.length-s.length)<0&&(u=0),o+=u,u=0}if(l<0)t+=l,s=f+s;else if(s.length===l)s+=f;else{if(!(s.length>l))throw new Error("should never happen\n"+JSON.stringify([e,n],null," "));s=s.substring(0,l)+f+s.substring(l)}return""===s&&0===o?null:i(t,o,s)},o.shouldMerge=function(e,n){return r.PARANOIA&&(a(e),a(n)),n.offset0;)a+=c=r._heap_write(t,o+a,e,i,s),i+=c,s-=c,o+=c=n.process(o,a),(a-=c)||(o=0);return this.pos=o,this.len=a,this},e.exports.hash_finish=function(){if(null!==this.result)throw new IllegalStateError("state must be reset before processing new data");return this.asm.finish(this.pos,this.len,0),this.result=new Uint8Array(this.HASH_SIZE),this.result.set(this.heap.subarray(0,this.HASH_SIZE)),this.pos=0,this.len=0,this}},"sha256/utils.js":function(e,n,t){var r=e.exports.string_to_bytes=function(e,n){n=!!n;for(var t=e.length,r=new Uint8Array(n?4*t:t),o=0,a=0;o=t)throw new Error("Malformed string, low surrogate expected at position "+o);i=(55296^i)<<10|65536|56320^e.charCodeAt(o)}else if(!n&&i>>>8)throw new Error("Wide characters are not allowed.");!n||i<=127?r[a++]=i:i<=2047?(r[a++]=192|i>>6,r[a++]=128|63&i):i<=65535?(r[a++]=224|i>>12,r[a++]=128|i>>6&63,r[a++]=128|63&i):(r[a++]=240|i>>18,r[a++]=128|i>>12&63,r[a++]=128|i>>6&63,r[a++]=128|63&i)}return r.subarray(0,a)};e.exports.hex_to_bytes=function(e){var n=e.length;1&n&&(e="0"+e,n++);for(var t=new Uint8Array(n>>1),r=0;r>1]=parseInt(e.substr(r,2),16);return t},e.exports.base64_to_bytes=function(e){return r(atob(e))};var o=e.exports.bytes_to_string=function(e,n){n=!!n;for(var t=e.length,r=new Array(t),o=0,a=0;o=192&&i<224&&o+1=224&&i<240&&o+2=240&&i<248&&o+3>10,r[a++]=56320|1023&s)}}for(var c="",u=16384,f=0;f>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+=1},e.exports.is_number=function(e){return"number"==typeof e},e.exports.is_string=function(e){return"string"==typeof e},e.exports.is_buffer=function(e){return e instanceof ArrayBuffer},e.exports.is_bytes=function(e){return e instanceof Uint8Array},e.exports.is_typed_array=function(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array},e.exports._heap_init=function(e,n){var t=n.heap,r=t?t.byteLength:n.heapSize||65536;if(4095&r||r<=0)throw new Error("heap size must be a positive integer and a multiple of 4096");return t=t||new e(new ArrayBuffer(r))},e.exports._heap_write=function(e,n,t,r,o){var a=e.length-n,i=a>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x428a2f98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=n+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x71374491|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=t+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb5c0fbcf|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=l+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe9b5dba5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=d+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x3956c25b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=h+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x59f111f1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=p+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x923f82a4|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=v+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xab1c5ed5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=y+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd807aa98|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=m+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x12835b01|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=g+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x243185be|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=E+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x550c7dc3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=b+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x72be5d74|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=O+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x80deb1fe|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=A+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x9bdc06a7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;R=w+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc19bf174|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xe49b69c1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xefbe4786|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x0fc19dc6|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x240ca1cc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2de92c6f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4a7484aa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5cb0a9dc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x76f988da|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x983e5152|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa831c66d|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xb00327c8|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbf597fc7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc6e00bf3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd5a79147|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x06ca6351|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x14292967|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x27b70a85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2e1b2138|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4d2c6dfc|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x53380d13|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x650a7354|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x766a0abb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x81c2c92e|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x92722c85|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa2bfe8a1|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa81a664b|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc24b8b70|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc76c51a3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd192e819|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xd6990624|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xf40e3585|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x106aa070|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;e=R=(n>>>7^n>>>18^n>>>3^n<<25^n<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+e+m|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x19a4c116|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;n=R=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+n+g|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x1e376c08|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;t=R=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+t+E|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x2748774c|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;l=R=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+l+b|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x34b0bcb5|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;d=R=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+O|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x391c0cb3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;h=R=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+h+A|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x4ed8aa4a|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;p=R=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+p+w|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x5b9cca4f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;v=R=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+v+e|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x682e6ff3|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;y=R=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+n|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x748f82ee|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;m=R=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+m+t|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x78a5636f|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;g=R=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+g+l|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x84c87814|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;E=R=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+E+d|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x8cc70208|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;b=R=(O>>>7^O>>>18^O>>>3^O<<25^O<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+b+h|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0x90befffa|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;O=R=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+O+p|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xa4506ceb|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;A=R=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+A+v|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xbef9a3f7|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;w=R=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(O>>>17^O>>>19^O>>>10^O<<15^O<<13)+w+y|0;R=R+C+(x>>>6^x>>>11^x>>>25^x<<26^x<<21^x<<7)+(I^x&(N^I))+0xc67178f2|0;C=I;I=N;N=x;x=S+R|0;S=T;T=_;_=D;D=R+(_&T^S&(_^T))+(_>>>2^_>>>13^_>>>22^_<<30^_<<19^_<<10)|0;r=r+D|0;o=o+_|0;a=a+T|0;i=i+S|0;s=s+x|0;c=c+N|0;u=u+I|0;f=f+C|0}function C(e){e=e|0;I(N[e|0]<<24|N[e|1]<<16|N[e|2]<<8|N[e|3],N[e|4]<<24|N[e|5]<<16|N[e|6]<<8|N[e|7],N[e|8]<<24|N[e|9]<<16|N[e|10]<<8|N[e|11],N[e|12]<<24|N[e|13]<<16|N[e|14]<<8|N[e|15],N[e|16]<<24|N[e|17]<<16|N[e|18]<<8|N[e|19],N[e|20]<<24|N[e|21]<<16|N[e|22]<<8|N[e|23],N[e|24]<<24|N[e|25]<<16|N[e|26]<<8|N[e|27],N[e|28]<<24|N[e|29]<<16|N[e|30]<<8|N[e|31],N[e|32]<<24|N[e|33]<<16|N[e|34]<<8|N[e|35],N[e|36]<<24|N[e|37]<<16|N[e|38]<<8|N[e|39],N[e|40]<<24|N[e|41]<<16|N[e|42]<<8|N[e|43],N[e|44]<<24|N[e|45]<<16|N[e|46]<<8|N[e|47],N[e|48]<<24|N[e|49]<<16|N[e|50]<<8|N[e|51],N[e|52]<<24|N[e|53]<<16|N[e|54]<<8|N[e|55],N[e|56]<<24|N[e|57]<<16|N[e|58]<<8|N[e|59],N[e|60]<<24|N[e|61]<<16|N[e|62]<<8|N[e|63])}function R(e){e=e|0;N[e|0]=r>>>24;N[e|1]=r>>>16&255;N[e|2]=r>>>8&255;N[e|3]=r&255;N[e|4]=o>>>24;N[e|5]=o>>>16&255;N[e|6]=o>>>8&255;N[e|7]=o&255;N[e|8]=a>>>24;N[e|9]=a>>>16&255;N[e|10]=a>>>8&255;N[e|11]=a&255;N[e|12]=i>>>24;N[e|13]=i>>>16&255;N[e|14]=i>>>8&255;N[e|15]=i&255;N[e|16]=s>>>24;N[e|17]=s>>>16&255;N[e|18]=s>>>8&255;N[e|19]=s&255;N[e|20]=c>>>24;N[e|21]=c>>>16&255;N[e|22]=c>>>8&255;N[e|23]=c&255;N[e|24]=u>>>24;N[e|25]=u>>>16&255;N[e|26]=u>>>8&255;N[e|27]=u&255;N[e|28]=f>>>24;N[e|29]=f>>>16&255;N[e|30]=f>>>8&255;N[e|31]=f&255}function P(){r=0x6a09e667;o=0xbb67ae85;a=0x3c6ef372;i=0xa54ff53a;s=0x510e527f;c=0x9b05688c;u=0x1f83d9ab;f=0x5be0cd19;l=d=0}function k(e,n,t,h,p,v,y,m,g,E){e=e|0;n=n|0;t=t|0;h=h|0;p=p|0;v=v|0;y=y|0;m=m|0;g=g|0;E=E|0;r=e;o=n;a=t;i=h;s=p;c=v;u=y;f=m;l=g;d=E}function M(e,n){e=e|0;n=n|0;var t=0;if(e&63)return-1;while((n|0)>=64){C(e);e=e+64|0;n=n-64|0;t=t+64|0}l=l+t|0;if(l>>>0>>0)d=d+1|0;return t|0}function F(e,n,t){e=e|0;n=n|0;t=t|0;var r=0,o=0;if(e&63)return-1;if(~t)if(t&31)return-1;if((n|0)>=64){r=M(e,n)|0;if((r|0)==-1)return-1;e=e+r|0;n=n-r|0}r=r+n|0;l=l+n|0;if(l>>>0>>0)d=d+1|0;N[e|n]=0x80;if((n|0)>=56){for(o=n+1|0;(o|0)<64;o=o+1|0)N[e|o]=0x00;C(e);n=0;N[e|0]=0}for(o=n+1|0;(o|0)<59;o=o+1|0)N[e|o]=0;N[e|56]=d>>>21&255;N[e|57]=d>>>13&255;N[e|58]=d>>>5&255;N[e|59]=d<<3&255|l>>>29;N[e|60]=l>>>21&255;N[e|61]=l>>>13&255;N[e|62]=l>>>5&255;N[e|63]=l<<3&255;C(e);if(~t)R(t);return r|0}function L(){r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;l=64;d=0}function H(){r=O;o=A;a=w;i=D;s=_;c=T;u=S;f=x;l=64;d=0}function j(e,n,t,N,C,R,k,M,F,L,H,j,K,U,B,V){e=e|0;n=n|0;t=t|0;N=N|0;C=C|0;R=R|0;k=k|0;M=M|0;F=F|0;L=L|0;H=H|0;j=j|0;K=K|0;U=U|0;B=B|0;V=V|0;P();I(e^0x5c5c5c5c,n^0x5c5c5c5c,t^0x5c5c5c5c,N^0x5c5c5c5c,C^0x5c5c5c5c,R^0x5c5c5c5c,k^0x5c5c5c5c,M^0x5c5c5c5c,F^0x5c5c5c5c,L^0x5c5c5c5c,H^0x5c5c5c5c,j^0x5c5c5c5c,K^0x5c5c5c5c,U^0x5c5c5c5c,B^0x5c5c5c5c,V^0x5c5c5c5c);O=r;A=o;w=a;D=i;_=s;T=c;S=u;x=f;P();I(e^0x36363636,n^0x36363636,t^0x36363636,N^0x36363636,C^0x36363636,R^0x36363636,k^0x36363636,M^0x36363636,F^0x36363636,L^0x36363636,H^0x36363636,j^0x36363636,K^0x36363636,U^0x36363636,B^0x36363636,V^0x36363636);h=r;p=o;v=a;y=i;m=s;g=c;E=u;b=f;l=64;d=0}function K(e,n,t){e=e|0;n=n|0;t=t|0;var l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0;if(e&63)return-1;if(~t)if(t&31)return-1;E=F(e,n,-1)|0;l=r,d=o,h=a,p=i,v=s,y=c,m=u,g=f;H();I(l,d,h,p,v,y,m,g,0x80000000,0,0,0,0,0,0,768);if(~t)R(t);return E|0}function U(e,n,t,l,d){e=e|0;n=n|0;t=t|0;l=l|0;d=d|0;var h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0;if(e&63)return-1;if(~d)if(d&31)return-1;N[e+n|0]=t>>>24;N[e+n+1|0]=t>>>16&255;N[e+n+2|0]=t>>>8&255;N[e+n+3|0]=t&255;K(e,n+4|0,-1)|0;h=O=r,p=A=o,v=w=a,y=D=i,m=_=s,g=T=c,E=S=u,b=x=f;l=l-1|0;while((l|0)>0){L();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;H();I(O,A,w,D,_,T,S,x,0x80000000,0,0,0,0,0,0,768);O=r,A=o,w=a,D=i,_=s,T=c,S=u,x=f;h=h^r;p=p^o;v=v^a;y=y^i;m=m^s;g=g^c;E=E^u;b=b^f;l=l-1|0}r=h;o=p;a=v;i=y;s=m;c=g;u=E;f=b;if(~d)R(d);return 0}return{reset:P,init:k,process:M,finish:F,hmac_reset:L,hmac_init:j,hmac_finish:K,pbkdf2_generate_block:U}}},"transform/TextTransformer.js":function(e,n,t){var r=t("../Operation"),o=t("../Common"),a=function(e,n){o.PARANOIA&&(r.check(e),r.check(n));var t=function(e,n){if(e.offset>n.offset){if(e.offset>n.offset+n.toRemove)return r.create(e.offset-n.toRemove+n.toInsert.length,e.toRemove,e.toInsert);var t=e.toRemove-(n.offset+n.toRemove-e.offset);return t<0&&(t=0),0===t&&0===e.toInsert.length?null:r.create(n.offset+n.toInsert.length,t,e.toInsert)}if(e.offset+e.toRemove=0;i--)s=r.apply(n[i],s);var c=[];for(i=e.length-1;i>=0;i--){for(var u=e[i],f=n.length-1;f>=0;f--){try{u=a(u,n[f])}catch(e){return console.error("The pluggable transform function threw an error, failing operational transformation"),console.error(e.stack),[]}if(!u)break}u&&(o.PARANOIA&&r.check(u,s.length),c.unshift(u))}return c}},"transform/NaiveJSONTransformer.js":function(e,n,t){var r=t("./TextTransformer"),o=t("../Operation"),a=t("../Common");e.exports=function(e,n,t){var i,s,c,u=a.global.REALTIME_DEBUG=a.global.REALTIME_DEBUG||{};try{i=r(e,n,t),s=o.applyMulti(n,t),c=o.applyMulti(i,s);try{return JSON.parse(c),i}catch(r){console.error(r),u.ot_parseError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_parseError`")}}catch(r){console.error(r),u.ot_applyError={type:"resultParseError",resultOps:i,toTransform:e,transformBy:n,text1:t,text2:s,text3:c,error:r},console.log("Debugging info available at `window.REALTIME_DEBUG.ot_applyError`")}return[]}},"transform/SmartJSONTransformer.js":function(e,n,t){var r,o,a,i=t("json.sortify"),s=t("../Diff"),c=t("../Operation"),u=t("./TextTransformer"),f=function(e){return null===e?"null":(n=e,"[object Array]"===Object.prototype.toString.call(n)?"array":typeof e);var n},l=function(e,n){for(var t=n.length,r=0;r1)return!0}))&&("splice"!==n.type||!e.some((function(e){if("splice"===e.type&&y(e.path,n.path)&&e.path.length-n.path.length<0){if(!e.removals)return;for(var t=e.offset,r=e.offset+e.removals;te.offset+n.removals)return void(n.offset+=e.value.length-e.removals);if(n.offseti)){var d=n.slice(0,l);if((y=n.slice(l))===u){var p=Math.min(s,l);if((g=c.slice(0,p))===(b=d.slice(0,p)))return h(g,c.slice(p),d.slice(p),u)}}if(null===f||f===s){var v=s,y=(d=n.slice(0,v),n.slice(v));if(d===c){var m=Math.min(a-v,i-v);if((E=u.slice(u.length-m))===(O=y.slice(y.length-m)))return h(c,u.slice(0,u.length-m),y.slice(0,y.length-m),E)}}}if(r.length>0&&o&&0===o.length){var g=e.slice(0,r.index),E=e.slice(r.index+r.length);if(!(i<(p=g.length)+(m=E.length))){var b=n.slice(0,p),O=n.slice(i-m);if(g===b&&E===O)return h(g,e.slice(p,a-m),n.slice(p,i-m),E)}}return null}(e,n,t);if(f)return f}var l=i(e,n),d=e.substring(0,l);l=s(e=e.substring(l),n=n.substring(l));var p=e.substring(e.length-l),v=function(e,n){var t;if(!e)return[[1,n]];if(!n)return[[r,e]];var c=e.length>n.length?e:n,u=e.length>n.length?n:e,f=c.indexOf(u);if(-1!==f)return t=[[1,c.substring(0,f)],[0,u],[1,c.substring(f+u.length)]],e.length>n.length&&(t[0][0]=t[2][0]=r),t;if(1===u.length)return[[r,e],[1,n]];var l=function(e,n){var t=e.length>n.length?e:n,r=e.length>n.length?n:e;if(t.length<4||2*r.length=e.length?[r,o,a,c,l]:null}var a,c,u,f,l,d=o(t,r,Math.ceil(t.length/4)),h=o(t,r,Math.ceil(t.length/2));if(!d&&!h)return null;a=h?d&&d[4].length>h[4].length?d:h:d,e.length>n.length?(c=a[0],u=a[1],f=a[2],l=a[3]):(f=a[0],l=a[1],c=a[2],u=a[3]);var p=a[4];return[c,u,f,l,p]}(e,n);if(l){var d=l[0],h=l[1],p=l[2],v=l[3],y=l[4],m=o(d,p),g=o(h,v);return m.concat([[0,y]],g)}return function(e,n){for(var t=e.length,o=n.length,i=Math.ceil((t+o)/2),s=i,c=2*i,u=new Array(c),f=new Array(c),l=0;lt)v+=2;else if(O>o)p+=2;else if(h&&(D=s+d-E)>=0&&D=(w=t-f[D]))return a(e,n,T,O)}for(var A=-g+y;A<=g-m;A+=2){for(var w,D=s+A,_=(w=A===-g||A!==g&&f[D-1]t)m+=2;else if(_>o)y+=2;else if(!h){var T;if((b=s+d-A)>=0&&b=(w=t-w))return a(e,n,T,O)}}}return[[r,e],[1,n]]}(e,n)}(e=e.substring(0,e.length-l),n=n.substring(0,n.length-l));return d&&v.unshift([0,d]),p&&v.push([0,p]),c(v,u),v}function a(e,n,t,r){var a=e.substring(0,t),i=n.substring(0,r),s=e.substring(t),c=n.substring(r),u=o(a,i),f=o(s,c);return u.concat(f)}function i(e,n){if(!e||!n||e.charAt(0)!==n.charAt(0))return 0;for(var t=0,r=Math.min(e.length,n.length),o=r,a=0;t=0&&d(e[p][1])){var v=e[p][1].slice(-1);if(e[p][1]=e[p][1].slice(0,-1),f=v+f,h=v+h,!e[p][1]){e.splice(p,1),o--;var y=p-1;e[y]&&1===e[y][0]&&(u++,h=e[y][1]+h,y--),e[y]&&e[y][0]===r&&(a++,f=e[y][1]+f,y--),p=y}}l(e[o][1])&&(v=e[o][1].charAt(0),e[o][1]=e[o][1].slice(1),f+=v,h+=v)}if(o0||h.length>0){f.length>0&&h.length>0&&(0!==(t=i(h,f))&&(p>=0?e[p][1]+=h.substring(0,t):(e.splice(0,0,[0,h.substring(0,t)]),o++),h=h.substring(t),f=f.substring(t)),0!==(t=s(h,f))&&(e[o][1]=h.substring(h.length-t)+e[o][1],h=h.substring(0,h.length-t),f=f.substring(0,f.length-t)));var m=u+a;0===f.length&&0===h.length?(e.splice(o-m,m),o-=m):0===f.length?(e.splice(o-m,m,[1,h]),o=o-m+1):0===h.length?(e.splice(o-m,m,[r,f]),o=o-m+1):(e.splice(o-m,m,[r,f],[1,h]),o=o-m+2)}0!==o&&0===e[o-1][0]?(e[o-1][1]+=e[o][1],e.splice(o,1)):o++,u=0,a=0,f="",h=""}""===e[e.length-1][1]&&e.pop();var g=!1;for(o=1;o=55296&&e<=56319}function f(e){return e>=56320&&e<=57343}function l(e){return f(e.charCodeAt(0))}function d(e){return u(e.charCodeAt(e.length-1))}function h(e,n,t,o){return d(e)||l(o)?null:function(e){for(var n=[],t=0;t0&&n.push(e[t]);return n}([[0,e],[r,n],[1,t],[0,o]])}function p(e,n,t){return o(e,n,t,!0)}p.INSERT=1,p.DELETE=r,p.EQUAL=0,e.exports=p}},n=a("ChainPad.js"),r="ChainPad",e.exports=n,"undefined"!=typeof window?o=window:void 0!==t?o=t:"undefined"!=typeof self&&(o=self),o[r]=n}(A)),A.exports}var D,_=w(),T=n({__proto__:null,default:r(_)},[_]),S={exports:{}},x={exports:{}};function N(){return D||(D=1,function(e){!function(e){var n=function(e){var n,t=new Float64Array(16);if(e)for(n=0;n>24&255,e[n+1]=t>>16&255,e[n+2]=t>>8&255,e[n+3]=255&t,e[n+4]=r>>24&255,e[n+5]=r>>16&255,e[n+6]=r>>8&255,e[n+7]=255&r}function p(e,n,t,r,o){var a,i=0;for(a=0;a>>8)-1}function v(e,n,t,r){return p(e,n,t,r,16)}function y(e,n,t,r){return p(e,n,t,r,32)}function m(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=a,A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=0;L<20;L+=2)O^=(o=(P^=(o=(N^=(o=(_^=(o=O+P|0)<<7|o>>>25)+O|0)<<9|o>>>23)+_|0)<<13|o>>>19)+N|0)<<18|o>>>14,T^=(o=(A^=(o=(k^=(o=(I^=(o=T+A|0)<<7|o>>>25)+T|0)<<9|o>>>23)+I|0)<<13|o>>>19)+k|0)<<18|o>>>14,C^=(o=(S^=(o=(w^=(o=(M^=(o=C+S|0)<<7|o>>>25)+C|0)<<9|o>>>23)+M|0)<<13|o>>>19)+w|0)<<18|o>>>14,F^=(o=(R^=(o=(x^=(o=(D^=(o=F+R|0)<<7|o>>>25)+F|0)<<9|o>>>23)+D|0)<<13|o>>>19)+x|0)<<18|o>>>14,O^=(o=(D^=(o=(w^=(o=(A^=(o=O+D|0)<<7|o>>>25)+O|0)<<9|o>>>23)+A|0)<<13|o>>>19)+w|0)<<18|o>>>14,T^=(o=(_^=(o=(x^=(o=(S^=(o=T+_|0)<<7|o>>>25)+T|0)<<9|o>>>23)+S|0)<<13|o>>>19)+x|0)<<18|o>>>14,C^=(o=(I^=(o=(N^=(o=(R^=(o=C+I|0)<<7|o>>>25)+C|0)<<9|o>>>23)+R|0)<<13|o>>>19)+N|0)<<18|o>>>14,F^=(o=(M^=(o=(k^=(o=(P^=(o=F+M|0)<<7|o>>>25)+F|0)<<9|o>>>23)+P|0)<<13|o>>>19)+k|0)<<18|o>>>14;O=O+a|0,A=A+i|0,w=w+s|0,D=D+c|0,_=_+u|0,T=T+f|0,S=S+l|0,x=x+d|0,N=N+h|0,I=I+p|0,C=C+v|0,R=R+y|0,P=P+m|0,k=k+g|0,M=M+E|0,F=F+b|0,e[0]=O>>>0&255,e[1]=O>>>8&255,e[2]=O>>>16&255,e[3]=O>>>24&255,e[4]=A>>>0&255,e[5]=A>>>8&255,e[6]=A>>>16&255,e[7]=A>>>24&255,e[8]=w>>>0&255,e[9]=w>>>8&255,e[10]=w>>>16&255,e[11]=w>>>24&255,e[12]=D>>>0&255,e[13]=D>>>8&255,e[14]=D>>>16&255,e[15]=D>>>24&255,e[16]=_>>>0&255,e[17]=_>>>8&255,e[18]=_>>>16&255,e[19]=_>>>24&255,e[20]=T>>>0&255,e[21]=T>>>8&255,e[22]=T>>>16&255,e[23]=T>>>24&255,e[24]=S>>>0&255,e[25]=S>>>8&255,e[26]=S>>>16&255,e[27]=S>>>24&255,e[28]=x>>>0&255,e[29]=x>>>8&255,e[30]=x>>>16&255,e[31]=x>>>24&255,e[32]=N>>>0&255,e[33]=N>>>8&255,e[34]=N>>>16&255,e[35]=N>>>24&255,e[36]=I>>>0&255,e[37]=I>>>8&255,e[38]=I>>>16&255,e[39]=I>>>24&255,e[40]=C>>>0&255,e[41]=C>>>8&255,e[42]=C>>>16&255,e[43]=C>>>24&255,e[44]=R>>>0&255,e[45]=R>>>8&255,e[46]=R>>>16&255,e[47]=R>>>24&255,e[48]=P>>>0&255,e[49]=P>>>8&255,e[50]=P>>>16&255,e[51]=P>>>24&255,e[52]=k>>>0&255,e[53]=k>>>8&255,e[54]=k>>>16&255,e[55]=k>>>24&255,e[56]=M>>>0&255,e[57]=M>>>8&255,e[58]=M>>>16&255,e[59]=M>>>24&255,e[60]=F>>>0&255,e[61]=F>>>8&255,e[62]=F>>>16&255,e[63]=F>>>24&255}(e,n,t,r)}function g(e,n,t,r){!function(e,n,t,r){for(var o,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,i=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,s=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,c=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,u=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,l=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,d=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,p=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,y=255&t[16]|(255&t[17])<<8|(255&t[18])<<16|(255&t[19])<<24,m=255&t[20]|(255&t[21])<<8|(255&t[22])<<16|(255&t[23])<<24,g=255&t[24]|(255&t[25])<<8|(255&t[26])<<16|(255&t[27])<<24,E=255&t[28]|(255&t[29])<<8|(255&t[30])<<16|(255&t[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,O=0;O<20;O+=2)a^=(o=(m^=(o=(h^=(o=(u^=(o=a+m|0)<<7|o>>>25)+a|0)<<9|o>>>23)+u|0)<<13|o>>>19)+h|0)<<18|o>>>14,f^=(o=(i^=(o=(g^=(o=(p^=(o=f+i|0)<<7|o>>>25)+f|0)<<9|o>>>23)+p|0)<<13|o>>>19)+g|0)<<18|o>>>14,v^=(o=(l^=(o=(s^=(o=(E^=(o=v+l|0)<<7|o>>>25)+v|0)<<9|o>>>23)+E|0)<<13|o>>>19)+s|0)<<18|o>>>14,b^=(o=(y^=(o=(d^=(o=(c^=(o=b+y|0)<<7|o>>>25)+b|0)<<9|o>>>23)+c|0)<<13|o>>>19)+d|0)<<18|o>>>14,a^=(o=(c^=(o=(s^=(o=(i^=(o=a+c|0)<<7|o>>>25)+a|0)<<9|o>>>23)+i|0)<<13|o>>>19)+s|0)<<18|o>>>14,f^=(o=(u^=(o=(d^=(o=(l^=(o=f+u|0)<<7|o>>>25)+f|0)<<9|o>>>23)+l|0)<<13|o>>>19)+d|0)<<18|o>>>14,v^=(o=(p^=(o=(h^=(o=(y^=(o=v+p|0)<<7|o>>>25)+v|0)<<9|o>>>23)+y|0)<<13|o>>>19)+h|0)<<18|o>>>14,b^=(o=(E^=(o=(g^=(o=(m^=(o=b+E|0)<<7|o>>>25)+b|0)<<9|o>>>23)+m|0)<<13|o>>>19)+g|0)<<18|o>>>14;e[0]=a>>>0&255,e[1]=a>>>8&255,e[2]=a>>>16&255,e[3]=a>>>24&255,e[4]=f>>>0&255,e[5]=f>>>8&255,e[6]=f>>>16&255,e[7]=f>>>24&255,e[8]=v>>>0&255,e[9]=v>>>8&255,e[10]=v>>>16&255,e[11]=v>>>24&255,e[12]=b>>>0&255,e[13]=b>>>8&255,e[14]=b>>>16&255,e[15]=b>>>24&255,e[16]=l>>>0&255,e[17]=l>>>8&255,e[18]=l>>>16&255,e[19]=l>>>24&255,e[20]=d>>>0&255,e[21]=d>>>8&255,e[22]=d>>>16&255,e[23]=d>>>24&255,e[24]=h>>>0&255,e[25]=h>>>8&255,e[26]=h>>>16&255,e[27]=h>>>24&255,e[28]=p>>>0&255,e[29]=p>>>8&255,e[30]=p>>>16&255,e[31]=p>>>24&255}(e,n,t,r)}var E=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function O(e,n,t,r,o,a,i){var s,c,u=new Uint8Array(16),f=new Uint8Array(64);for(c=0;c<16;c++)u[c]=0;for(c=0;c<8;c++)u[c]=a[c];for(;o>=64;){for(m(f,u,i,E),c=0;c<64;c++)e[n+c]=t[r+c]^f[c];for(s=1,c=8;c<16;c++)s=s+(255&u[c])|0,u[c]=255&s,s>>>=8;o-=64,n+=64,r+=64}if(o>0)for(m(f,u,i,E),c=0;c=64;){for(m(c,s,o,E),i=0;i<64;i++)e[n+i]=c[i];for(a=1,i=8;i<16;i++)a=a+(255&s[i])|0,s[i]=255&a,a>>>=8;t-=64,n+=64}if(t>0)for(m(c,s,o,E),i=0;i>>13|t<<3),r=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(t>>>10|r<<6),o=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(r>>>7|o<<9),a=255&e[8]|(255&e[9])<<8,this.r[4]=255&(o>>>4|a<<12),this.r[5]=a>>>1&8190,i=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(a>>>14|i<<2),s=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(i>>>11|s<<5),c=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(s>>>8|c<<8),this.r[9]=c>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function T(e,n,t,r,o,a){var i=new _(a);return i.update(t,r,o),i.finish(e,n),0}function S(e,n,t,r,o,a){var i=new Uint8Array(16);return T(i,0,t,r,o,a),v(e,n,i,0)}function x(e,n,t,r,o){var a;if(t<32)return-1;for(D(e,0,n,0,t,r,o),T(e,16,e,32,t-32,e),a=0;a<16;a++)e[a]=0;return 0}function N(e,n,t,r,o){var a,i=new Uint8Array(32);if(t<32)return-1;if(w(i,0,32,r,o),0!==S(n,16,n,32,t-32,i))return-1;for(D(e,0,n,0,t,r,o),a=0;a<32;a++)e[a]=0;return 0}function I(e,n){var t;for(t=0;t<16;t++)e[t]=0|n[t]}function C(e){var n,t,r=1;for(n=0;n<16;n++)t=e[n]+r+65535,r=Math.floor(t/65536),e[n]=t-65536*r;e[0]+=r-1+37*(r-1)}function R(e,n,t){for(var r,o=~(t-1),a=0;a<16;a++)r=o&(e[a]^n[a]),e[a]^=r,n[a]^=r}function P(e,t){var r,o,a,i=n(),s=n();for(r=0;r<16;r++)s[r]=t[r];for(C(s),C(s),C(s),o=0;o<2;o++){for(i[0]=s[0]-65517,r=1;r<15;r++)i[r]=s[r]-65535-(i[r-1]>>16&1),i[r-1]&=65535;i[15]=s[15]-32767-(i[14]>>16&1),a=i[15]>>16&1,i[14]&=65535,R(s,i,1-a)}for(r=0;r<16;r++)e[2*r]=255&s[r],e[2*r+1]=s[r]>>8}function k(e,n){var t=new Uint8Array(32),r=new Uint8Array(32);return P(t,e),P(r,n),y(t,0,r,0)}function M(e){var n=new Uint8Array(32);return P(n,e),1&n[0]}function F(e,n){var t;for(t=0;t<16;t++)e[t]=n[2*t]+(n[2*t+1]<<8);e[15]&=32767}function L(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]+t[r]}function H(e,n,t){for(var r=0;r<16;r++)e[r]=n[r]-t[r]}function j(e,n,t){var r,o,a=0,i=0,s=0,c=0,u=0,f=0,l=0,d=0,h=0,p=0,v=0,y=0,m=0,g=0,E=0,b=0,O=0,A=0,w=0,D=0,_=0,T=0,S=0,x=0,N=0,I=0,C=0,R=0,P=0,k=0,M=0,F=t[0],L=t[1],H=t[2],j=t[3],K=t[4],U=t[5],B=t[6],V=t[7],Y=t[8],G=t[9],J=t[10],q=t[11],W=t[12],z=t[13],Q=t[14],Z=t[15];a+=(r=n[0])*F,i+=r*L,s+=r*H,c+=r*j,u+=r*K,f+=r*U,l+=r*B,d+=r*V,h+=r*Y,p+=r*G,v+=r*J,y+=r*q,m+=r*W,g+=r*z,E+=r*Q,b+=r*Z,i+=(r=n[1])*F,s+=r*L,c+=r*H,u+=r*j,f+=r*K,l+=r*U,d+=r*B,h+=r*V,p+=r*Y,v+=r*G,y+=r*J,m+=r*q,g+=r*W,E+=r*z,b+=r*Q,O+=r*Z,s+=(r=n[2])*F,c+=r*L,u+=r*H,f+=r*j,l+=r*K,d+=r*U,h+=r*B,p+=r*V,v+=r*Y,y+=r*G,m+=r*J,g+=r*q,E+=r*W,b+=r*z,O+=r*Q,A+=r*Z,c+=(r=n[3])*F,u+=r*L,f+=r*H,l+=r*j,d+=r*K,h+=r*U,p+=r*B,v+=r*V,y+=r*Y,m+=r*G,g+=r*J,E+=r*q,b+=r*W,O+=r*z,A+=r*Q,w+=r*Z,u+=(r=n[4])*F,f+=r*L,l+=r*H,d+=r*j,h+=r*K,p+=r*U,v+=r*B,y+=r*V,m+=r*Y,g+=r*G,E+=r*J,b+=r*q,O+=r*W,A+=r*z,w+=r*Q,D+=r*Z,f+=(r=n[5])*F,l+=r*L,d+=r*H,h+=r*j,p+=r*K,v+=r*U,y+=r*B,m+=r*V,g+=r*Y,E+=r*G,b+=r*J,O+=r*q,A+=r*W,w+=r*z,D+=r*Q,_+=r*Z,l+=(r=n[6])*F,d+=r*L,h+=r*H,p+=r*j,v+=r*K,y+=r*U,m+=r*B,g+=r*V,E+=r*Y,b+=r*G,O+=r*J,A+=r*q,w+=r*W,D+=r*z,_+=r*Q,T+=r*Z,d+=(r=n[7])*F,h+=r*L,p+=r*H,v+=r*j,y+=r*K,m+=r*U,g+=r*B,E+=r*V,b+=r*Y,O+=r*G,A+=r*J,w+=r*q,D+=r*W,_+=r*z,T+=r*Q,S+=r*Z,h+=(r=n[8])*F,p+=r*L,v+=r*H,y+=r*j,m+=r*K,g+=r*U,E+=r*B,b+=r*V,O+=r*Y,A+=r*G,w+=r*J,D+=r*q,_+=r*W,T+=r*z,S+=r*Q,x+=r*Z,p+=(r=n[9])*F,v+=r*L,y+=r*H,m+=r*j,g+=r*K,E+=r*U,b+=r*B,O+=r*V,A+=r*Y,w+=r*G,D+=r*J,_+=r*q,T+=r*W,S+=r*z,x+=r*Q,N+=r*Z,v+=(r=n[10])*F,y+=r*L,m+=r*H,g+=r*j,E+=r*K,b+=r*U,O+=r*B,A+=r*V,w+=r*Y,D+=r*G,_+=r*J,T+=r*q,S+=r*W,x+=r*z,N+=r*Q,I+=r*Z,y+=(r=n[11])*F,m+=r*L,g+=r*H,E+=r*j,b+=r*K,O+=r*U,A+=r*B,w+=r*V,D+=r*Y,_+=r*G,T+=r*J,S+=r*q,x+=r*W,N+=r*z,I+=r*Q,C+=r*Z,m+=(r=n[12])*F,g+=r*L,E+=r*H,b+=r*j,O+=r*K,A+=r*U,w+=r*B,D+=r*V,_+=r*Y,T+=r*G,S+=r*J,x+=r*q,N+=r*W,I+=r*z,C+=r*Q,R+=r*Z,g+=(r=n[13])*F,E+=r*L,b+=r*H,O+=r*j,A+=r*K,w+=r*U,D+=r*B,_+=r*V,T+=r*Y,S+=r*G,x+=r*J,N+=r*q,I+=r*W,C+=r*z,R+=r*Q,P+=r*Z,E+=(r=n[14])*F,b+=r*L,O+=r*H,A+=r*j,w+=r*K,D+=r*U,_+=r*B,T+=r*V,S+=r*Y,x+=r*G,N+=r*J,I+=r*q,C+=r*W,R+=r*z,P+=r*Q,k+=r*Z,b+=(r=n[15])*F,i+=38*(A+=r*H),s+=38*(w+=r*j),c+=38*(D+=r*K),u+=38*(_+=r*U),f+=38*(T+=r*B),l+=38*(S+=r*V),d+=38*(x+=r*Y),h+=38*(N+=r*G),p+=38*(I+=r*J),v+=38*(C+=r*q),y+=38*(R+=r*W),m+=38*(P+=r*z),g+=38*(k+=r*Q),E+=38*(M+=r*Z),a=(r=(a+=38*(O+=r*L))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a=(r=(a+=o-1+37*(o-1))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),i=(r=i+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),E=(r=E+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),a+=o-1+37*(o-1),e[0]=a,e[1]=i,e[2]=s,e[3]=c,e[4]=u,e[5]=f,e[6]=l,e[7]=d,e[8]=h,e[9]=p,e[10]=v,e[11]=y,e[12]=m,e[13]=g,e[14]=E,e[15]=b}function K(e,n){j(e,n,n)}function U(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=253;r>=0;r--)K(o,o),2!==r&&4!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function B(e,t){var r,o=n();for(r=0;r<16;r++)o[r]=t[r];for(r=250;r>=0;r--)K(o,o),1!==r&&j(o,o,t);for(r=0;r<16;r++)e[r]=o[r]}function V(e,t,r){var o,a,i=new Uint8Array(32),c=new Float64Array(80),u=n(),f=n(),l=n(),d=n(),h=n(),p=n();for(a=0;a<31;a++)i[a]=t[a];for(i[31]=127&t[31]|64,i[0]&=248,F(c,r),a=0;a<16;a++)f[a]=c[a],d[a]=u[a]=l[a]=0;for(u[0]=d[0]=1,a=254;a>=0;--a)R(u,f,o=i[a>>>3]>>>(7&a)&1),R(l,d,o),L(h,u,l),H(u,u,l),L(l,f,d),H(f,f,d),K(d,h),K(p,u),j(u,l,u),j(l,f,h),L(h,u,l),H(u,u,l),K(f,u),H(l,d,p),j(u,l,s),L(u,u,d),j(l,l,u),j(u,d,p),j(d,f,c),K(f,h),R(u,f,o),R(l,d,o);for(a=0;a<16;a++)c[a+16]=u[a],c[a+32]=l[a],c[a+48]=f[a],c[a+64]=d[a];var v=c.subarray(32),y=c.subarray(16);return U(v,v),j(y,y,v),P(e,y),0}function Y(e,n){return V(e,n,o)}function G(e,n){return t(n,32),Y(e,n)}function J(e,n,t){var o=new Uint8Array(32);return V(o,t,n),g(e,r,o,E)}_.prototype.blocks=function(e,n,t){for(var r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A=this.fin?0:2048,w=this.h[0],D=this.h[1],_=this.h[2],T=this.h[3],S=this.h[4],x=this.h[5],N=this.h[6],I=this.h[7],C=this.h[8],R=this.h[9],P=this.r[0],k=this.r[1],M=this.r[2],F=this.r[3],L=this.r[4],H=this.r[5],j=this.r[6],K=this.r[7],U=this.r[8],B=this.r[9];t>=16;)d=l=0,d+=(w+=8191&(r=255&e[n+0]|(255&e[n+1])<<8))*P,d+=(D+=8191&(r>>>13|(o=255&e[n+2]|(255&e[n+3])<<8)<<3))*(5*B),d+=(_+=8191&(o>>>10|(a=255&e[n+4]|(255&e[n+5])<<8)<<6))*(5*U),d+=(T+=8191&(a>>>7|(i=255&e[n+6]|(255&e[n+7])<<8)<<9))*(5*K),l=(d+=(S+=8191&(i>>>4|(s=255&e[n+8]|(255&e[n+9])<<8)<<12))*(5*j))>>>13,d&=8191,d+=(x+=s>>>1&8191)*(5*H),d+=(N+=8191&(s>>>14|(c=255&e[n+10]|(255&e[n+11])<<8)<<2))*(5*L),d+=(I+=8191&(c>>>11|(u=255&e[n+12]|(255&e[n+13])<<8)<<5))*(5*F),d+=(C+=8191&(u>>>8|(f=255&e[n+14]|(255&e[n+15])<<8)<<8))*(5*M),h=l+=(d+=(R+=f>>>5|A)*(5*k))>>>13,h+=w*k,h+=D*P,h+=_*(5*B),h+=T*(5*U),l=(h+=S*(5*K))>>>13,h&=8191,h+=x*(5*j),h+=N*(5*H),h+=I*(5*L),h+=C*(5*F),l+=(h+=R*(5*M))>>>13,h&=8191,p=l,p+=w*M,p+=D*k,p+=_*P,p+=T*(5*B),l=(p+=S*(5*U))>>>13,p&=8191,p+=x*(5*K),p+=N*(5*j),p+=I*(5*H),p+=C*(5*L),v=l+=(p+=R*(5*F))>>>13,v+=w*F,v+=D*M,v+=_*k,v+=T*P,l=(v+=S*(5*B))>>>13,v&=8191,v+=x*(5*U),v+=N*(5*K),v+=I*(5*j),v+=C*(5*H),y=l+=(v+=R*(5*L))>>>13,y+=w*L,y+=D*F,y+=_*M,y+=T*k,l=(y+=S*P)>>>13,y&=8191,y+=x*(5*B),y+=N*(5*U),y+=I*(5*K),y+=C*(5*j),m=l+=(y+=R*(5*H))>>>13,m+=w*H,m+=D*L,m+=_*F,m+=T*M,l=(m+=S*k)>>>13,m&=8191,m+=x*P,m+=N*(5*B),m+=I*(5*U),m+=C*(5*K),g=l+=(m+=R*(5*j))>>>13,g+=w*j,g+=D*H,g+=_*L,g+=T*F,l=(g+=S*M)>>>13,g&=8191,g+=x*k,g+=N*P,g+=I*(5*B),g+=C*(5*U),E=l+=(g+=R*(5*K))>>>13,E+=w*K,E+=D*j,E+=_*H,E+=T*L,l=(E+=S*F)>>>13,E&=8191,E+=x*M,E+=N*k,E+=I*P,E+=C*(5*B),b=l+=(E+=R*(5*U))>>>13,b+=w*U,b+=D*K,b+=_*j,b+=T*H,l=(b+=S*L)>>>13,b&=8191,b+=x*F,b+=N*M,b+=I*k,b+=C*P,O=l+=(b+=R*(5*B))>>>13,O+=w*B,O+=D*U,O+=_*K,O+=T*j,l=(O+=S*H)>>>13,O&=8191,O+=x*L,O+=N*F,O+=I*M,O+=C*k,w=d=8191&(l=(l=((l+=(O+=R*P)>>>13)<<2)+l|0)+(d&=8191)|0),D=h+=l>>>=13,_=p&=8191,T=v&=8191,S=y&=8191,x=m&=8191,N=g&=8191,I=E&=8191,C=b&=8191,R=O&=8191,n+=16,t-=16;this.h[0]=w,this.h[1]=D,this.h[2]=_,this.h[3]=T,this.h[4]=S,this.h[5]=x,this.h[6]=N,this.h[7]=I,this.h[8]=C,this.h[9]=R},_.prototype.finish=function(e,n){var t,r,o,a,i=new Uint16Array(10);if(this.leftover){for(a=this.leftover,this.buffer[a++]=1;a<16;a++)this.buffer[a]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(t=this.h[1]>>>13,this.h[1]&=8191,a=2;a<10;a++)this.h[a]+=t,t=this.h[a]>>>13,this.h[a]&=8191;for(this.h[0]+=5*t,t=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=t,t=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=t,i[0]=this.h[0]+5,t=i[0]>>>13,i[0]&=8191,a=1;a<10;a++)i[a]=this.h[a]+t,t=i[a]>>>13,i[a]&=8191;for(i[9]-=8192,r=(1^t)-1,a=0;a<10;a++)i[a]&=r;for(r=~r,a=0;a<10;a++)this.h[a]=this.h[a]&r|i[a];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,a=1;a<8;a++)o=(this.h[a]+this.pad[a]|0)+(o>>>16)|0,this.h[a]=65535&o;e[n+0]=this.h[0]>>>0&255,e[n+1]=this.h[0]>>>8&255,e[n+2]=this.h[1]>>>0&255,e[n+3]=this.h[1]>>>8&255,e[n+4]=this.h[2]>>>0&255,e[n+5]=this.h[2]>>>8&255,e[n+6]=this.h[3]>>>0&255,e[n+7]=this.h[3]>>>8&255,e[n+8]=this.h[4]>>>0&255,e[n+9]=this.h[4]>>>8&255,e[n+10]=this.h[5]>>>0&255,e[n+11]=this.h[5]>>>8&255,e[n+12]=this.h[6]>>>0&255,e[n+13]=this.h[6]>>>8&255,e[n+14]=this.h[7]>>>0&255,e[n+15]=this.h[7]>>>8&255},_.prototype.update=function(e,n,t){var r,o;if(this.leftover){for((o=16-this.leftover)>t&&(o=t),r=0;r=16&&(o=t-t%16,this.blocks(e,n,o),n+=o,t-=o),t){for(r=0;r=128;){for(A=0;A<16;A++)w=8*A+W,I[A]=t[w+0]<<24|t[w+1]<<16|t[w+2]<<8|t[w+3],C[A]=t[w+4]<<24|t[w+5]<<16|t[w+6]<<8|t[w+7];for(A=0;A<80;A++)if(o=R,a=P,i=k,s=M,c=F,u=L,f=H,j,d=K,h=U,p=B,v=V,y=Y,m=G,g=J,q,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,T+=65535&(_=(Y>>>14|F<<18)^(Y>>>18|F<<14)^(F>>>9|Y<<23)),S+=_>>>16,x+=65535&(D=(F>>>14|Y<<18)^(F>>>18|Y<<14)^(Y>>>9|F<<23)),N+=D>>>16,T+=65535&(_=Y&G^~Y&J),S+=_>>>16,x+=65535&(D=F&L^~F&H),N+=D>>>16,T+=65535&(_=z[2*A+1]),S+=_>>>16,x+=65535&(D=z[2*A]),N+=D>>>16,D=I[A%16],S+=(_=C[A%16])>>>16,x+=65535&D,N+=D>>>16,x+=(S+=(T+=65535&_)>>>16)>>>16,T=65535&(_=O=65535&T|S<<16),S=_>>>16,x=65535&(D=b=65535&x|(N+=x>>>16)<<16),N=D>>>16,T+=65535&(_=(K>>>28|R<<4)^(R>>>2|K<<30)^(R>>>7|K<<25)),S+=_>>>16,x+=65535&(D=(R>>>28|K<<4)^(K>>>2|R<<30)^(K>>>7|R<<25)),N+=D>>>16,S+=(_=K&U^K&B^U&B)>>>16,x+=65535&(D=R&P^R&k^P&k),N+=D>>>16,l=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,E=65535&T|S<<16,T=65535&(_=v),S=_>>>16,x=65535&(D=s),N=D>>>16,S+=(_=O)>>>16,x+=65535&(D=b),N+=D>>>16,P=o,k=a,M=i,F=s=65535&(x+=(S+=(T+=65535&_)>>>16)>>>16)|(N+=x>>>16)<<16,L=c,H=u,j=f,R=l,U=d,B=h,V=p,Y=v=65535&T|S<<16,G=y,J=m,q=g,K=E,A%16==15)for(w=0;w<16;w++)D=I[w],T=65535&(_=C[w]),S=_>>>16,x=65535&D,N=D>>>16,D=I[(w+9)%16],T+=65535&(_=C[(w+9)%16]),S+=_>>>16,x+=65535&D,N+=D>>>16,b=I[(w+1)%16],T+=65535&(_=((O=C[(w+1)%16])>>>1|b<<31)^(O>>>8|b<<24)^(O>>>7|b<<25)),S+=_>>>16,x+=65535&(D=(b>>>1|O<<31)^(b>>>8|O<<24)^b>>>7),N+=D>>>16,b=I[(w+14)%16],S+=(_=((O=C[(w+14)%16])>>>19|b<<13)^(b>>>29|O<<3)^(O>>>6|b<<26))>>>16,x+=65535&(D=(b>>>19|O<<13)^(O>>>29|b<<3)^b>>>6),N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,I[w]=65535&x|N<<16,C[w]=65535&T|S<<16;T=65535&(_=K),S=_>>>16,x=65535&(D=R),N=D>>>16,D=e[0],S+=(_=n[0])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[0]=R=65535&x|N<<16,n[0]=K=65535&T|S<<16,T=65535&(_=U),S=_>>>16,x=65535&(D=P),N=D>>>16,D=e[1],S+=(_=n[1])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[1]=P=65535&x|N<<16,n[1]=U=65535&T|S<<16,T=65535&(_=B),S=_>>>16,x=65535&(D=k),N=D>>>16,D=e[2],S+=(_=n[2])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[2]=k=65535&x|N<<16,n[2]=B=65535&T|S<<16,T=65535&(_=V),S=_>>>16,x=65535&(D=M),N=D>>>16,D=e[3],S+=(_=n[3])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[3]=M=65535&x|N<<16,n[3]=V=65535&T|S<<16,T=65535&(_=Y),S=_>>>16,x=65535&(D=F),N=D>>>16,D=e[4],S+=(_=n[4])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[4]=F=65535&x|N<<16,n[4]=Y=65535&T|S<<16,T=65535&(_=G),S=_>>>16,x=65535&(D=L),N=D>>>16,D=e[5],S+=(_=n[5])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[5]=L=65535&x|N<<16,n[5]=G=65535&T|S<<16,T=65535&(_=J),S=_>>>16,x=65535&(D=H),N=D>>>16,D=e[6],S+=(_=n[6])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[6]=H=65535&x|N<<16,n[6]=J=65535&T|S<<16,T=65535&(_=q),S=_>>>16,x=65535&(D=j),N=D>>>16,D=e[7],S+=(_=n[7])>>>16,x+=65535&D,N+=D>>>16,N+=(x+=(S+=(T+=65535&_)>>>16)>>>16)>>>16,e[7]=j=65535&x|N<<16,n[7]=q=65535&T|S<<16,W+=128,r-=128}return r}function Z(e,n,t){var r,o=new Int32Array(8),a=new Int32Array(8),i=new Uint8Array(256),s=t;for(o[0]=1779033703,o[1]=3144134277,o[2]=1013904242,o[3]=2773480762,o[4]=1359893119,o[5]=2600822924,o[6]=528734635,o[7]=1541459225,a[0]=4089235720,a[1]=2227873595,a[2]=4271175723,a[3]=1595750129,a[4]=2917565137,a[5]=725511199,a[6]=4215389547,a[7]=327033209,Q(o,a,n,t),t%=128,r=0;r=0;--o)$(e,n,r=t[o/8|0]>>(7&o)&1),X(n,e),X(e,e),$(e,n,r)}function te(e,t){var r=[n(),n(),n(),n()];I(r[0],f),I(r[1],l),I(r[2],i),j(r[3],f,l),ne(e,r,t)}function re(e,r,o){var a,i=new Uint8Array(64),s=[n(),n(),n(),n()];for(o||t(r,32),Z(i,r,32),i[0]&=248,i[31]&=127,i[31]|=64,te(s,i),ee(e,s),a=0;a<32;a++)r[a+32]=e[a];return 0}var oe=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function ae(e,n){var t,r,o,a;for(r=63;r>=32;--r){for(t=0,o=r-32,a=r-12;o>4)*oe[o],t=n[o]>>8,n[o]&=255;for(o=0;o<32;o++)n[o]-=t*oe[o];for(r=0;r<32;r++)n[r+1]+=n[r]>>8,e[r]=255&n[r]}function ie(e){var n,t=new Float64Array(64);for(n=0;n<64;n++)t[n]=e[n];for(n=0;n<64;n++)e[n]=0;ae(e,t)}function se(e,t,r,o){var a,i,s=new Uint8Array(64),c=new Uint8Array(64),u=new Uint8Array(64),f=new Float64Array(64),l=[n(),n(),n(),n()];Z(s,o,32),s[0]&=248,s[31]&=127,s[31]|=64;var d=r+64;for(a=0;a>7&&H(e[0],a,e[0]),j(e[3],e[0],e[1]),0)}(h,o))return-1;for(s=0;s=0},e.sign.keyPair=function(){var e=new Uint8Array(le),n=new Uint8Array(de);return re(e,n),{publicKey:e,secretKey:n}},e.sign.keyPair.fromSecretKey=function(e){if(pe(e),e.length!==de)throw new Error("bad secret key size");for(var n=new Uint8Array(le),t=0;t{let t;return(t=e.length%4)&&(e+="=".repeat(4-t)),n.decodeBase64(e)},a=n.decodeUTF8,i=n.encodeUTF8,s=function(e){for(var n="",t=0;t{var n={setCustomize:n=>{e=n.ApiConfig},getWebsocketURL:function(n){var t=e.websocketPath||"/cryptpad_websocket";if(/^ws{1,2}:\/\//.test(t))return t;var r=new URL(n||self?.location?.href);return n&&(r.href=n),r.protocol.replace(/http/,"ws")+"//"+r.host+t}};return n})())}(H)),H.exports}var K,U=j(),B=n({__proto__:null,default:r(U)},[U]),V={exports:{}};function Y(){return K||(K=1,function(e){e.exports&&(e.exports=function(e={}){return{setCustomize:n=>{e=n.AppConfig},userHashKey:"User_hash",userNameKey:"User_name",blockHashKey:"Block_hash",fileHashKey:"FS_hash",sessionJWT:"Session_JWT",ssoSeed:"SSO_seed",displayNameKey:"cryptpad.username",oldStorageKey:"CryptPad_RECENTPADS",storageKey:"filesData",tokenKey:"loginToken",prefersDriveRedirectKey:"prefersDriveRedirect",isPremiumKey:"isPremiumUser",displayPadCreationScreen:"displayPadCreationScreen",deprecatedKey:"deprecated",MAX_TEAMS_SLOTS:e.maxTeamsSlots||5,MAX_TEAMS_OWNED:e.maxOwnedTeams||5,MAX_PREMIUM_TEAMS_SLOTS:Math.max(e.maxTeamsSlots||0,e.maxPremiumTeamsSlots||0)||5,MAX_PREMIUM_TEAMS_OWNED:Math.max(e.maxOwnedTeams||0,e.maxPremiumTeamsOwned||0)||5,criticalApps:["profile","settings","debug","admin","support","notifications","calendar","moderation","oldadmin"],earlyAccessApps:[]}}(void 0))}(V)),V.exports}var G,J=Y(),q=n({__proto__:null,default:r(J)},[J]),W={exports:{}},z={exports:{}},Q=z.exports;function Z(){return G||(G=1,function(e){!function(n){const t=e=>{var t=n.CryptPad_Util={};n.atob=n.atob||function(e){return Buffer.from(e,"base64").toString("binary")},n.btoa=n.btoa||function(e){return Buffer.from(e,"binary").toString("base64")},t.encodeBase64=e.encodeBase64,t.decodeBase64=n=>{let t=n.length%4;return t&&(n+="=".repeat(4-t)),e.decodeBase64(n)},t.encodeUTF8=e.encodeUTF8,t.decodeUTF8=e.decodeUTF8,t.slice=function(e,n,t){return Array.prototype.slice.call(e,n,t)},t.u8ToBase64=(e,n)=>{const t=new FileReader;t.onload=()=>{let e=t.result,r=e.slice(e.indexOf(",")+1);n(r)},t.readAsDataURL(new Blob([e]))},t.shuffleArray=function(e){for(var n=e.length-1;n>0;n--){var t=Math.floor(Math.random()*(n+1)),r=e[n];e[n]=e[t],e[t]=r}},t.bake=function(e,n){return void 0===n&&(n=[]),Array.isArray(n)||(n=[n]),function(){return e.apply(null,n)}},t.both=function(e,n){if("function"!=typeof e)throw new Error("INVALID_USAGE");return"function"!=typeof n&&(n=function(e){return e}),function(){return e.apply(null,arguments),n.apply(null,arguments)}},t.clone=function(e){return null==e?e:JSON.parse(JSON.stringify(e))},t.serializeError=function(e){if(!(e instanceof Error))return e;var n={};return Object.getOwnPropertyNames(e).forEach((function(t){n[t]=e[t]})),n},t.tryParse=function(e){try{return JSON.parse(e)}catch(e){return}},t.mkAsync=function(e,n){if("function"!=typeof e)throw new Error("EXPECTED_FUNCTION");return function(){var t=Array.prototype.slice.call(arguments);setTimeout((function(){e.apply(null,t)}),n)}},t.mkEvent=function(e){var n=[],t=!1;let r;return{reg:function(r){e&&t?setTimeout(r):n.push(r)},unreg:function(e){-1!==n.indexOf(e)?n.splice(n.indexOf(e),1):console.log("event handler was already unregistered")},fire:function(){if(!e||!t){var o=Array.prototype.slice.call(arguments);t||r.apply(null,o),t=!0,n.forEach((function(e){e.apply(null,o)}))}},promise:new Promise((e=>{r=e}))}},t.mkTimeout=function(e,n){n=n||0;var r=t.once(e),o=setTimeout((function(){r("TIMEOUT")}),n);return t.both(r,(function(){clearTimeout(o)}))},t.onClickEnter=function(e,n,t){e.on("click keydown",(function(e){var r="click"===e.type,o="keydown"===e.type&&13===e.which,a="keydown"===e.type&&32===e.which&&t&&t.space;(r||o||a)&&("keydown"===e.type&&e.preventDefault(),n(e))}))},t.response=function(e){var n={},t={};"function"!=typeof e&&(e=function(e){throw new Error(e)});var r=function(e){clearTimeout(t[e]),delete t[e],delete n[e]};return{clear:r,expected:function(e){return Boolean(n[e])},expectation:function(e){return n[e]},expect:function(o,a,i){"string"!=typeof o&&e("EXPECTED_STRING"),"function"!=typeof a&&e("EXPECTED_CALLBACK"),n[o]=a,"number"==typeof i&&i&&(t[o]=setTimeout((function(){"function"==typeof n[o]&&n[o]("TIMEOUT"),r(o)}),i))},handle:function(t,o){var a=n[t];if("function"==typeof a){try{a.apply(null,Array.isArray(o)?o:[o])}catch(n){e("HANDLER_ERROR",{error:n,id:t,args:o})}r(t)}else e("MISSING_CALLBACK",{id:t,args:o})},_pending:n}},t.inc=function(e,n,t){e[n]=(e[n]||0)+("number"==typeof t?t:1)},t.values=function(e){return Object.keys(e).map((function(n){return e[n]}))},t.find=function(e,n){for(var t=n.length,r=0;r&"']/g,(function(e){return{"<":"<",">":">","&":"&",'"':""","'":"'"}[e]})):""},t.hexToBase64=function(e){var t=e.replace(/\r|\n/g,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" "),r=String.fromCharCode.apply(null,t);return n.btoa(r).replace(/\//g,"-").replace(/=+$/,"")},t.base64ToHex=function(e){var t=[];return n.atob(e.replace(/-/g,"/")).split("").forEach((function(e){var n=e.charCodeAt(0).toString(16);1===n.length&&(n="0"+n),t.push(n)})),t.join("")},t.uint8ArrayToHex=function(e){for(var n="",t=0;t=o?"GB":e>=r?"MB":"KB"};t.getBlock=function(e,n,r){var o=t.once(t.mkAsync(r)),a={};"string"==typeof n.bearer&&n.bearer&&(a.authorization=`Bearer ${n.bearer}`),fetch(e,{method:"GET",credentials:"include",headers:a}).then((e=>{e.ok?o(void 0,e):401!==e.status&&404!==e.status?o(e.status,e):e.json().then((n=>{o(e.status,n)})).catch((()=>{o(e.status)}))})).catch((e=>{o(e)}))},t.fetchApi=function(e,n,t,r){const o=new URL(e);o.pathname=`api/${n}`;let a=o.href+(t?"?"+ +new Date:"");if("undefined"!=typeof self&&self.crypto)fetch(a).then((e=>{if(!e.ok)throw new Error(`Fetch error: ${e.status}`);return e.text()})).then((e=>{r(JSON.parse(e.slice(27,-5)))})).catch((e=>{console.error(e.message),r({})}));else if(void 0!==b){("http:"===o.protocol?require("node:http"):require("node:https")).get(o.href,(e=>{let n="";e.on("data",(e=>{n+=e})),e.on("end",(()=>{try{r(JSON.parse(n.slice(27,-5)))}catch(e){console.error(e),r({})}}))}))}},t.fetch=function(e,n,r,o){var a,i=t.once(t.mkAsync(n)),s=function(e){var n=e.replace(/(\/)*$/,""),t=n.lastIndexOf("/"),r=n.slice(t+1);return/^[a-f0-9]{48}$/.test(r)||(r=void 0),r}(e),c=function(){(a=new XMLHttpRequest).open("GET",e,!0),r&&a.addEventListener("progress",(function(e){if(e.lengthComputable){var n=e.loaded/e.total;r(n)}}),!1),a.responseType="arraybuffer",a.onerror=function(e){i(e)},a.onload=function(){if(/^4/.test(""+this.status))return i("XHR_ERROR");var e=a.response;if(e){var n=new Uint8Array(e);return s?void function(e,n,t){o&&"function"==typeof o.setBlobCache?o.setBlobCache(e,n,t):t("EINVAL")}(s,n,(function(){i(null,n)})):void i(void 0,n)}i("ENOENT")},a.send(null)};if(s)return function(e,n){o&&"function"==typeof o.getBlobCache?o.getBlobCache(e,n):n("EINVAL")}(s,(function(e,n){!e&&n?i(void 0,n):c()})),{cancel:function(){a&&a.abort&&a.abort()}};c()},t.dataURIToBlob=function(e){for(var n=atob(e.split(",")[1]),t=e.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(n.length),o=new Uint8Array(r),a=0;aparseInt(e,10).toString(16).padStart(2,"0"))).join("")}`},t.isSmallScreen=function(){return n.innerHeight<800||n.innerWidth<800},t.stripTags=function(e){var n=document.createElement("div");return n.innerHTML=e,n.innerText},t.parseFilename=function(e){if(!e||!e.trim())return{};var n=/^(\.?.+?)(\.[^.]+)?$/.exec(e)||[];return{name:n[1],ext:n[2]}},t.isPlainTextFile=function(e,n){if(e&&0===e.indexOf("text/"))return!0;var r=t.parseFilename(n);return!(e||!n||r.ext)||("application/x-javascript"===e||"application/xml"===e)},t.isSpreadsheet=function(e,n){return e&&("application/vnd.oasis.opendocument.spreadsheet"===e||"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"===e)||n&&(n.endsWith(".xlsx")||n.endsWith(".ods"))},t.isOfficeDoc=function(e,n){return e&&("application/vnd.oasis.opendocument.text"===e||"application/vnd.openxmlformats-officedocument.wordprocessingml.document"===e)||n&&(n.endsWith(".docx")||n.endsWith(".odt"))},t.isPresentation=function(e,n){return e&&("application/vnd.oasis.opendocument.presentation"===e||"application/vnd.openxmlformats-officedocument.presentationml.presentation"===e)||n&&(n.endsWith(".pptx")||n.endsWith(".odp"))},t.isValidURL=function(e){return!!new RegExp("^(https?:\\/\\/)((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?").test(e)};var a=/([\uD800-\uDBFF][\uDC00-\uDFFF])/;t.getFirstCharacter=function(e){if(!e||!e.trim())return"?";var n=function(e){for(var n=e.split(a),t=[],r=0;r{let n=/ver=([0-9.]+)(-[0-9]*)?/.exec(e);return Array.isArray(n)&&n[1]||void 0},t.Saferphore={create:e=>{var n,t=[];return n=function(){if(e<0)throw new Error("(resourceCount < 0) should never happen");var r;0!==e&&0!==t.length&&(e--,t.shift()((r=0,function(t){if(r++)throw new Error("returnAfter() called multiple times");var o=0;return function(){if(o++)throw new Error("returnAfter wrapped callback called multiple times");t&&t.apply(null,arguments),e++,n()}})))},{take:function(e){t.push(e),n()}}}},t};e.exports&&(e.exports=t(k()))}("undefined"!=typeof self?self:Q)}(z)),z.exports}var X,$,ee={exports:{}};function ne(){return X||(X=1,function(e){e.exports&&(e.exports=function(){var e={},n=function(e){return e.replace(/-/g,"/")};return e.parseUser=function(e){var t,r,o,a=function(e){if(/^\[.*?@.*\]$/.test(e)){var t,r=e.slice(1,-1);if(r=r.replace(/\/([a-zA-Z0-9+-]{43}=)$/,(function(e,r){return t=n(r),""})),t){var o=r.lastIndexOf("@");if(!(o<1))return{domain:r.slice(o+1),user:r.slice(0,o),pubkey:t}}}}(e);if(function(e){if(e&&e.domain&&e.user&&e.pubkey)return!0}(a))return a;if(e.replace(/^https*:\/\/([^\/]+)\/user\/#\/1\/([^\/]+)\/([a-zA-Z0-9+-]{43}=)$/,(function(e,a,i,s){return t=a,r=i,o=n(s),""})),!t)throw new Error("Could not parse user id ["+e+"]");return{domain:t,user:r,pubkey:o}},e.serialize=function(e,n,t){return"["+n+"@"+e.replace(/https*:\/\//,"")+"/"+t.replace(/\//g,"-")+"]"},e.canonicalize=function(t){if("string"==typeof t){if(44===t.length)return n(t);try{return e.parseUser(t).pubkey}catch(e){return}}},e}())}(ee)),ee.exports}function te(){return $||($=1,function(e){!function(n){e.exports&&(e.exports=function(e,t,r,o){var a=n.CryptPad_Hash={},i=e.uint8ArrayToHex,s=e.hexToBase64,c=e.base64ToHex;a.encodeBase64=e.encodeBase64,a.decodeBase64=e.decodeBase64,a.hashChannelList=function(n){return e.encodeBase64(o.hash(e.decodeUTF8(JSON.stringify(n))))},a.generateSignPair=function(){var e=o.sign.keyPair(),n=function(e){return t.b64RemoveSlashes(e).replace(/=+$/g,"")};return{validateKey:a.encodeBase64(e.publicKey),signKey:a.encodeBase64(e.secretKey),safeValidateKey:n(a.encodeBase64(e.publicKey)),safeSignKey:n(a.encodeBase64(e.secretKey))}},a.getSignPublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.sign.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)},a.getCurvePublicFromPrivate=function(n){var r=t.b64AddSlashes(n),a=e.decodeBase64(r),i=o.box.keyPair.fromSecretKey(a);return e.encodeBase64(i.publicKey)};var u=a.getEditHashFromKeys=function(e){var n=e.version,r=e.keys;if(0===n)return e.channel+e.key;if(1===n){if(!r.editKeyStr)return;return"/1/edit/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.editKeyStr)+"/"}if(2===n){if(!r.editKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/edit/"+t.b64RemoveSlashes(r.editKeyStr)+"/"+o}},f=a.getViewHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n){if(!r.viewKeyStr)return;return"/1/view/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"}if(2===n){if(!r.viewKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/view/"+t.b64RemoveSlashes(r.viewKeyStr)+"/"+o}}};a.getHiddenHashFromKeys=function(e,n,t){t=t||{};var r=n.keys&&n.keys.editKeyStr||n.key,o=!t.view&&r?"edit/":"view/",i=n.password?"p/":"";n.keys&&n.keys.fileKeyStr&&(o="");var s="/3/"+e+"/"+o+n.channel+"/"+i,c=a.parseTypeHash(e,s);return c&&c.getHash?c.getHash(t||{}):s};var l=a.getFileHashFromKeys=function(e){var n=e.version,r=e.keys;if(0!==n){if(1===n)return"/1/"+s(e.channel)+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/";if(2===n){if(!r.fileKeyStr)return;var o=e.password?"p/":"";return"/2/"+e.type+"/"+t.b64RemoveSlashes(r.fileKeyStr)+"/"+o}}};a.getPublicSigningKeyString=r.serialize,a.ephemeralChannelLength=34,a.createChannelId=function(e){var n=i(t.Nacl.randomBytes(e?17:16));if(-1===[32,34].indexOf(n.length)||/[^a-f0-9]/.test(n))throw new Error("channel ids must consist of 32 hex characters");return n},a.getChannelIdFromKey=function(e){if(e)return i(a.decodeBase64(e).subarray(0,16))},a.getBoxPublicFromSecret=function(e){if(e){var n=a.decodeBase64(e),t=o.box.keyPair.fromSecretKey(n);return a.encodeBase64(t.publicKey)}},a.checkBoxKeyPair=function(e,n){if(!n||!e)return!1;var t=a.decodeBase64(e),r=o.box.keyPair.fromSecretKey(t);return n===a.encodeBase64(r.publicKey)},a.createRandomHash=function(e,n){var r;return"file"===e?(r=t.createFileCryptor2(void 0,n),l({password:Boolean(n),version:2,type:e,keys:r})):(r=t.createEditCryptor2(void 0,void 0,n),u({password:Boolean(n),version:2,type:e,keys:r}))};var d=a.parseTypeHash=function(e,n){if(n){var r,o=[],a={},i=(r=n,r.replace(/\/+/g,"/")).split("/"),s=function(){a.password=-1!==o.indexOf("p"),a.present=-1!==o.indexOf("present"),a.embed=-1!==o.indexOf("embed"),a.versionHash=function(e){var n;return e.some((function(e){if(/^hash=/.test(e))return n=e.slice(5),!0})),n?t.b64AddSlashes(n):""}(o),a.auditorKey=function(e){var n;return e.some((function(e){if(/^auditor=/.test(e))return n=e.slice(8),!0})),n?t.b64AddSlashes(n):""}(o),a.newPadOpts=function(e){var n;return e.some((function(e){if(/^newpad=/.test(e))return n=e.slice(7),!0})),n||""}(o),a.loginOpts=function(e){var n;return e.some((function(e){if(/^login=/.test(e))return n=e.slice(6),!0})),n||""}(o),a.ownerKey=function(e){var n;return e.some((function(e){if(86===e.length)return n=e,!0})),n}(o)};return i[1]&&"4"===i[1]?(a.getHash=function(n){if(!n||!Object.keys(n).length)return"";var t="/4/"+e+"/";return n.newPadOpts&&(t+="newpad="+n.newPadOpts+"/"),n.loginOpts&&(t+="login="+n.loginOpts+"/"),t},a.getOptions=function(){var e={};return a.newPadOpts&&(e.newPadOpts=a.newPadOpts),a.loginOpts&&(e.loginOpts=a.loginOpts),e},a.version=4,a.app=i[2],o=i.slice(3),s(),a):-1===["media","file","user","invite"].indexOf(e)?(a.type="pad",a.getHash=function(){return n},a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,versionHash:a.versionHash,auditorKey:a.auditorKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},"/"!==n.slice(0,1)&&n.length>=56?(a.channel=n.slice(0,32),a.key=n.slice(32,56),a.version=0,a):(a.getHash=function(e){var n=i.slice(0,5).join("/")+"/",r=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;r&&(n+=r+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/");var o=void 0!==e.versionHash?e.versionHash:a.versionHash;o&&(n+="hash="+t.b64RemoveSlashes(o)+"/");var s=void 0!==e.auditorKey?e.auditorKey:a.auditorKey;return s&&(n+="auditor="+t.b64RemoveSlashes(s)+"/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.mode=i[2],a.channel=i[3],a.key=t.b64AddSlashes(i[4]),o=i.slice(5),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.mode=i[3],a.channel=i[4],o=i.slice(5),s(),a):a)):(a.getHash=function(){return i.join("/")},-1!==["media","file"].indexOf(e)?(a.type="file",a.getOptions=function(){return{embed:a.embed,present:a.present,ownerKey:a.ownerKey,newPadOpts:a.newPadOpts,loginOpts:a.loginOpts,password:a.password}},a.getHash=function(e){var n=i.slice(0,4).join("/")+"/",t=void 0!==e.ownerKey?e.ownerKey:a.ownerKey;return t&&(n+=t+"/"),(a.password||e.password)&&(n+="p/"),e.embed&&(n+="embed/"),e.present&&(n+="present/"),e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n},i[1]&&"1"===i[1]?(a.version=1,a.channel=i[2].replace(/-/g,"/"),a.key=i[3].replace(/-/g,"/"),o=i.slice(4),s(),a):i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.key=i[3],o=i.slice(4),s(),a):i[1]&&"3"===i[1]?(a.version=3,a.app=i[2],a.channel=i[3],o=i.slice(4),s(),a):a):-1!==["user"].indexOf(e)?(a.type="user",i[1]&&"1"===i[1]?(a.version=1,a.user=i[2],a.pubkey=i[3].replace(/-/g,"/"),a):a):-1!==["invite"].indexOf(e)?(a.type="invite",i[1]&&"2"===i[1]?(a.version=2,a.app=i[2],a.mode=i[3],a.key=i[4],o=i.slice(5),a.password=-1!==o.indexOf("p"),a):a):void 0)}},h=a.parsePadUrl=function(e){var n,t={};return e?("/"!==e.slice(-1)&&"#"!==e.slice(-1)&&(e+="/"),e=e.replace(/\/\?[^#]+#/,"/#"),t.getUrl=function(e){e=e||{};var n="/";return t.type?(n+=t.type+"/",!t.hashData&&e&&Object.keys(e).length?n+"#"+function(e){if(!e||!Object.keys(e).length)return"";var n="/4/"+t.type+"/";return e.newPadOpts&&(n+="newpad="+e.newPadOpts+"/"),e.loginOpts&&(n+="login="+e.loginOpts+"/"),n}(e):t.hashData?n+="#"+t.hashData.getHash(e):n):n},t.getOptions=function(){return t.hashData&&t.hashData.getOptions?t.hashData.getOptions():{}},/^https*:\/\//.test(e)?(e.replace(/^https*:\/\/([^\/]*)\/(.*?)\//i,(function(e,n,r){return t.domain=n,t.type=r,""})),-1===(n=e.indexOf("/#"))||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):/^\/($|[^\/])/.test(e)?(n=e.indexOf("/#"),t.type=e.slice(1,n),-1===n||(t.hash=e.slice(n+2),t.hashData=d(t.type,t.hash)),t):t):t};return a.hashToHref=function(e,n){return"/"+n+"/#"+e},a.hrefToHash=function(e){return a.parsePadUrl(e).hash},a.getRelativeHref=function(e){if(e&&-1!==e.indexOf("#")){var n=h(e);return"/"+n.type+"/#"+n.hash}},a.getSecrets=function(n,r,o){var a,i,s={},u=function(){s.keys=t.createEditCryptor2(void 0,void 0,o),s.channel=c(s.keys.chanId),s.version=2,s.type=n};if(!r)return u(),s;if(r){if(!n)throw new Error("getSecrets with a hash requires a type parameter");a=d(n,r),i=r}if(0===i.length)return u(),s;if(0===a.version)s.channel=a.channel,s.key=a.key,s.version=0;else if(1===a.version){if(s.version=1,"pad"===a.type){if(s.channel=c(a.channel),"edit"===a.mode){if(s.keys=t.createEditCryptor(a.key),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor(a.key),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type)s.channel=c(a.channel),s.keys={fileKeyStr:a.key,cryptKey:e.decodeBase64(a.key)};else if("user"===a.type)throw new Error("User hashes can't be opened (yet)")}else if(2===a.version)if(s.version=2,s.type=n,s.password=o,"pad"===a.type){if("edit"===a.mode){if(s.keys=t.createEditCryptor2(a.key,void 0,o),s.channel=c(s.keys.chanId),s.key=s.keys.editKeyStr,32!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("view"===a.mode&&(s.keys=t.createViewCryptor2(a.key,o),s.channel=c(s.keys.chanId),32!==s.channel.length))throw new Error("The channel key is invalid")}else if("file"===a.type){if(s.keys=t.createFileCryptor2(a.key,o),s.channel=c(s.keys.chanId),s.key=s.keys.fileKeyStr,48!==s.channel.length||24!==s.key.length)throw new Error("The channel key and/or the encryption key is invalid")}else if("user"===a.type)throw new Error("User hashes can't be opened (yet)");return s},a.getHashes=function(e){var n={};return(e=JSON.parse(JSON.stringify(e))).keys||e.key?(e.keys||(e.keys={}),(e.keys.editKeyStr||0===e.version&&e.key)&&(n.editHash=u(e)),e.keys.viewKeyStr&&(n.viewHash=f(e)),e.keys.fileKeyStr&&(n.fileHash=l(e)),n):n},a.getFormData=function(n,t,r){var i=(n=n||a.getSecrets("form",t,r))&&n.keys,s=i&&i.secondaryKey;if(s){var c=o.box.keyPair.fromSecretKey(e.decodeUTF8(s).slice(0,32)),u={};u.form_public=e.encodeBase64(c.publicKey);var f=u.form_private=e.encodeBase64(c.secretKey),l=a.getViewHashFromKeys({version:1,channel:n.channel,keys:{viewKeyStr:e.encodeBase64(i.cryptKey)}}),d=a.parseTypeHash("pad",l);return u.form_auditorHash=d.getHash({auditorKey:f}),u}},a.hrefToHexChannelId=function(e,n){var t=a.parsePadUrl(e);if(t&&t.hash)return a.getSecrets(t.type,t.hash,n).channel},a.getBlobPathFromHex=function(e){return"/blob/"+e.slice(0,2)+"/"+e},a.serializeHash=function(e){return e&&"/"!==e.slice(-1)&&(e+="/"),e},a.createInviteUrl=function(e,t){return t=t||a.createChannelId(),n.location.origin+"/invite/#/1/"+t+"/"+e.replace(/\//g,"-")+"/"},a.isValidChannel=function(e){return/^[a-zA-Z0-9]{32,48}$/.test(e)},a.isValidHref=function(e){if(e){var n=a.parsePadUrl(e);if(n&&n.type){if(n.hash){if(!n.hashData)return;if(void 0===n.hashData.version)return;if("pad"===n.hashData.type||"file"===n.hashData.type){if(!n.hashData.key&&!n.hashData.channel)return;if(n.hashData.key&&!/^[a-zA-Z0-9+-/=]+$/.test(n.hashData.key))return}}return n}}},a.decodeDataOptions=function(n){var t=decodeURIComponent(n),r=e.encodeUTF8(e.decodeBase64(t));return e.tryParse(r)||{}},a.encodeDataOptions=function(n){var t=JSON.stringify(n),r=e.encodeBase64(e.decodeUTF8(t));return encodeURIComponent(r)},a.getNewPadURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.newPadOpts=a.encodeDataOptions(n),t.getUrl(r)},a.getLoginURL=function(e,n){var t=a.parsePadUrl(e),r=t.getOptions();return r.loginOpts=a.encodeDataOptions(n),t.getUrl(r)},a}(Z(),M(),ne(),N()))}("undefined"!=typeof window?window:{})}(W)),W.exports}var re,oe,ae=te(),ie=Z(),se={exports:{}},ce={exports:{}};function ue(){return re||(re=1,function(e){e.exports=function e(n,t,r){function o(i,s){if(!t[i]){if(!n[i]){if(!s&&b)return b(i);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=t[i]={exports:{}};n[i][0].call(u.exports,(function(e){var t=n[i][1][e];return o(t||e)}),u,u.exports,e,n,t,r)}return t[i].exports}for(var a=b,i=0;i=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof v?u.resolve(v):O(e).then((function(e){return v=e}))}function w(e){var n=y[e.name],t={};t.promise=new u((function(e,n){t.resolve=e,t.reject=n})),n.deferredOperations.push(t),n.dbReady?n.dbReady=n.dbReady.then((function(){return t.promise})):n.dbReady=t.promise}function D(e){var n=y[e.name].deferredOperations.pop();if(n)return n.resolve(),n.promise}function _(e,n){var t=y[e.name].deferredOperations.pop();if(t)return t.reject(n),t.promise}function T(e,n){return new u((function(t,r){if(y[e.name]=y[e.name]||F(),e.db){if(!n)return t(e.db);w(e),e.db.close()}var o=[e.name];n&&o.push(e.version);var a=i.open.apply(i,o);n&&(a.onupgradeneeded=function(n){var t=a.result;try{t.createObjectStore(e.storeName),n.oldVersion<=1&&t.createObjectStore(p)}catch(t){if("ConstraintError"!==t.name)throw t;console.warn('The database "'+e.name+'" has been upgraded from version '+n.oldVersion+" to version "+n.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){var n=a.result;n.onversionchange=function(e){e.target.close()},t(n),D(e)}}))}function S(e){return T(e,!1)}function x(e){return T(e,!0)}function N(e,n){if(!e.db)return!0;var t=!e.db.objectStoreNames.contains(e.storeName),r=e.versione.db.version;if(r&&(e.version!==n&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||t){if(t){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function I(e){return new u((function(n,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");n({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)}))}function C(e){return c([b(atob(e.data))],{type:e.type})}function R(e){return e&&e.__local_forage_encoded_blob}function P(e){var n=this,t=n._initReady().then((function(){var e=y[n._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return l(t,e,e),t}function k(e){w(e);for(var n=y[e.name],t=n.forages,r=0;r0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)})).then((function(){return k(e).then((function(){M(e,n,t,r-1)}))})).catch(t);t(o)}}function F(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function L(e){var n=this,t={db:null};if(e)for(var r in e)t[r]=e[r];var o=y[t.name];o||(o=F(),y[t.name]=o),o.forages.push(n),n._initReady||(n._initReady=n.ready,n.ready=P);var a=[];function i(){return u.resolve()}for(var s=0;s>4,f[c++]=(15&r)<<4|o>>2,f[c++]=(3&o)<<6|63&a;return u}function pe(e){var n,t=new Uint8Array(e),r="";for(n=0;n>2],r+=z[(3&t[n])<<4|t[n+1]>>4],r+=z[(15&t[n+1])<<2|t[n+2]>>6],r+=z[63&t[n+2]];return t.length%3==2?r=r.substring(0,r.length-1)+"=":t.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function ve(e,n){var t="";if(e&&(t=de.call(e)),e&&("[object ArrayBuffer]"===t||e.buffer&&"[object ArrayBuffer]"===de.call(e.buffer))){var r,o=X;e instanceof ArrayBuffer?(r=e,o+=ee):(r=e.buffer,"[object Int8Array]"===t?o+=te:"[object Uint8Array]"===t?o+=re:"[object Uint8ClampedArray]"===t?o+=oe:"[object Int16Array]"===t?o+=ae:"[object Uint16Array]"===t?o+=se:"[object Int32Array]"===t?o+=ie:"[object Uint32Array]"===t?o+=ce:"[object Float32Array]"===t?o+=ue:"[object Float64Array]"===t?o+=fe:n(new Error("Failed to get type for BinaryArray"))),n(o+pe(r))}else if("[object Blob]"===t){var a=new FileReader;a.onload=function(){var t=Q+e.type+"~"+pe(this.result);n(X+ne+t)},a.readAsArrayBuffer(e)}else try{n(JSON.stringify(e))}catch(t){console.error("Couldn't convert value into a JSON string: ",e),n(null,t)}}function ye(e){if(e.substring(0,$)!==X)return JSON.parse(e);var n,t=e.substring(le),r=e.substring($,le);if(r===ne&&Z.test(t)){var o=t.match(Z);n=o[1],t=t.substring(o[0].length)}var a=he(t);switch(r){case ee:return a;case ne:return c([a],{type:n});case te:return new Int8Array(a);case re:return new Uint8Array(a);case oe:return new Uint8ClampedArray(a);case ae:return new Int16Array(a);case se:return new Uint16Array(a);case ie:return new Int32Array(a);case ce:return new Uint32Array(a);case ue:return new Float32Array(a);case fe:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}}var me={serialize:ve,deserialize:ye,stringToBuffer:he,bufferToString:pe};function ge(e,n,t,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+n.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],t,r)}function Ee(e){var n=this,t={db:null};if(e)for(var r in e)t[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new u((function(e,r){try{t.db=openDatabase(t.name,String(t.version),t.description,t.size)}catch(e){return r(e)}t.db.transaction((function(o){ge(o,t,(function(){n._dbInfo=t,e()}),(function(e,n){r(n)}))}),r)}));return t.serializer=me,o}function be(e,n,t,r,o,a){e.executeSql(t,r,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[n.storeName],(function(e,s){s.rows.length?a(e,i):ge(e,n,(function(){e.executeSql(t,r,o,a)}),a)}),a):a(e,i)}),a)}function Oe(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,t){var r=t.rows.length?t.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ae(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT * FROM "+o.storeName,[],(function(t,r){for(var a=r.rows,i=a.length,s=0;s0)return void a(we.apply(o,[e,s,t,r-1]));i(n)}}))}))})).catch(i)}));return f(a,t),a}function De(e,n,t){return we.apply(this,[e,n,t,1])}function _e(e,n){var t=this;e=d(e);var r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){n()}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Te(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function Se(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(n,t){var r=t.rows.item(0).c;e(r)}),(function(e,n){t(n)}))}))})).catch(t)}));return f(t,e),t}function xe(e,n){var t=this,r=new u((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){be(t,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,t){var r=t.rows.length?t.rows.item(0).key:null;n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return f(r,n),r}function Ne(e){var n=this,t=new u((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){be(n,r,"SELECT key FROM "+r.storeName,[],(function(n,t){for(var r=[],o=0;o '__WebKitDatabaseInfoTable__'",[],(function(t,r){for(var o=[],a=0;a0}function Le(e){var n=this,t={};if(e)for(var r in e)t[r]=e[r];return t.keyPrefix=ke(e,n._defaultConfig),Fe()?(n._dbInfo=t,t.serializer=me,u.resolve()):u.reject()}function He(e){var n=this,t=n.ready().then((function(){for(var e=n._dbInfo.keyPrefix,t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return f(t,e),t}function je(e,n){var t=this;e=d(e);var r=t.ready().then((function(){var n=t._dbInfo,r=localStorage.getItem(n.keyPrefix+e);return r&&(r=n.serializer.deserialize(r)),r}));return f(r,n),r}function Ke(e,n){var t=this,r=t.ready().then((function(){for(var n=t._dbInfo,r=n.keyPrefix,o=r.length,a=localStorage.length,i=1,s=0;s=0;n--){var t=localStorage.key(n);0===t.indexOf(e)&&localStorage.removeItem(t)}})):u.reject("Invalid arguments"),f(r,n),r}var qe={_driver:"localStorageWrapper",_initStorage:Le,_support:Pe(),iterate:Ke,getItem:je,setItem:Ge,removeItem:Ye,clear:He,length:Ve,key:Ue,keys:Be,dropInstance:Je},We=function(e,n){return e===n||"number"==typeof e&&"number"==typeof n&&isNaN(e)&&isNaN(n)},ze=function(e,n){for(var t=e.length,r=0;r{const n=(e,n)=>{let t=globalThis,r=globalThis;var o=t.CryptPad_Cache={},a=e.mkEvent(!0),i=!1,s=!1,c=!1;try{var u=t.indexedDB.open("test_db",1);u.onsuccess=function(){i=(c=!0)&&!s,a.fire()},u.onerror=function(){a.fire()}}catch(e){a.fire()}o.enable=function(){s=!1,i=c&&!s},o.disable=function(){s=!0,i=c&&!s},o.isEnabled=()=>i;var f=n.createInstance({driver:n.INDEXEDDB,name:"cp_cache"});o.getBlobCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&o.c?(t(null,o.c),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))},o.setBlobCache=function(n,t,r){r=e.once(e.mkAsync(r||function(){})),a.reg((function(){i?t?f.setItem(n,{c:t,t:+new Date},(function(n){r(e.serializeError(n))})):r("EINVAL"):r("NOCACHE")}))},o.getChannelCache=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(r,o){!r&&o&&Array.isArray(o.c)?(t(null,o),o.t=+new Date,f.setItem(n,o,(function(e){e&&console.error(e)}))):t(e.serializeError(r||"EINVAL"))})):t("NOCACHE")}))};var l={};return o.storeCache=function(n,t,r,o){o=e.once(e.mkAsync(o||function(){})),a.reg((function(){l[n]=l[n]||e.throttle((function(t,r,o){var a,s;i?Array.isArray(r)&&t?(a=r,Array.isArray(a)&&(a.length>100&&a.splice(0,a.length-100),a.some((function(e,n){if(e.isCheckpoint)return s=n,!0})),a.splice(0,s)),f.setItem(n,{k:t,c:r,t:+new Date},(function(n){n&&o(e.serializeError(n))}))):o("EINVAL"):o("NOCACHE")}),50),l[n](t,r,o)}))},o.leaveChannel=function(e){delete l[e]},o.clearChannel=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.removeItem(n,(function(){t()})):t("NOCACHE")}))},o.clear=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.clear(n):n("NOCACHE")}))},o.getKeys=function(n){n=e.once(e.mkAsync(n||function(){})),a.reg((function(){i?f.keys().then((function(e){n(null,e)})).catch((function(e){n(e)})):n("NOCACHE")}))},o.getTime=function(n,t){t=e.once(e.mkAsync(t||function(){})),a.reg((function(){i?f.getItem(n,(function(n,r){!n&&r&&r.c?t(null,r.t):t(e.serializeError(n||"EINVAL"))})):t("NOCACHE")}))},r.CryptPad_clearIndexedDB=o.clear,o};e.exports&&(e.exports=n(Z(),ue()))})()}(se)),se.exports}var le=fe(),de=n({__proto__:null,default:r(le)},[le]);const he=ie.mkEvent(!0),pe=ie.mkEvent(!0),ve=ie.mkEvent(),ye=ie.mkEvent();let me={};const ge={setCustomize:e=>{me=e.ApiConfig},init:e=>{var n,t;const{broadcast:r,userHash:o,anonHash:a}=e,i=o||a||ae.createRandomHash("drive"),s=e.store,c=ae.getSecrets("drive",i),u={data:{},websocketURL:U.getWebsocketURL(),network:null===(n=e.store)||void 0===n?void 0:n.network,channel:c.channel,readOnly:!1,validateKey:(null===(t=c.keys)||void 0===t?void 0:t.validateKey)||void 0,crypto:L.createEncryptor(c.keys),Cache:de,userName:"fs",logLevel:1,ChainPad:T,updateProgress:function(e){e.type="drive",r([],"LOADING_DRIVE",e)},classic:!0},f=globalThis.CP_account_rt=E.create(u);s.driveSecret=c,s.proxy=f.proxy,s.onRpcReadyEvt=ie.mkEvent(!0),s.loggedIn=void 0!==e.userHash;const l={loggedIn:s.loggedIn};return f.proxy.on("create",(function(e){s.realtime=e.realtime,s.network=e.network,s.loggedIn||(l.anonHash=ae.getEditHashFromKeys(c))})).on("cacheready",(function(n){if(s.realtime=n.realtime,s.offline=!0,s.networkPromise=n.networkPromise,s.cacheReturned=l,s.networkPromise&&s.networkPromise.then){const e=setTimeout((function(){s.networkTimeout=!0,r([],"LOADING_DRIVE",{type:"offline"})}),5e3);s.networkPromise.then((function(n){s.network||(s.network=n),clearTimeout(e)}),(function(n){console.error(n),clearTimeout(e)}))}e.cache&&(l.edPublic=f.proxy.edPublic,he.fire(l))})).on("ready",(function(n){delete s.networkTimeout,s.ready||(s.driveMetadata=n.metadata,f.proxy.drive||(f.proxy.drive={}),!f.proxy[J.displayNameKey]&&s.noDriveName&&(f.proxy[J.displayNameKey]=s.noDriveName),!f.proxy.uid&&s.noDriveUid&&(f.proxy.uid=s.noDriveUid),!f.proxy.form_seed&&e.form_seed&&(f.proxy.form_seed=e.form_seed),f.proxy.edPublic&&Array.isArray(me.adminKeys)&&-1!==me.adminKeys.indexOf(f.proxy.edPublic)&&(s.isAdmin=!0),l.edPublic=f.proxy.edPublic,pe.fire(l))})).on("error",(function(e){"EDELETED"===e.error&&(s.ownDeletion||(s.isDeleted=!0,r([],"DRIVE_DELETED",e.message)))})).on("disconnect",(function(){s.offline=!0,ve.fire(),r([],"UPDATE_METADATA")})).on("reconnect",(function(){s.offline=!1,ye.fire(),r([],"UPDATE_METADATA")})),{channel:c.channel,onAccountCacheReady:he.reg,onAccountReady:pe.reg,onDisconnect:ve.reg,onReconnect:ye.reg}}};var Ee,be=Object.freeze({__proto__:null,Account:ge}),Oe={exports:{}};function Ae(){return Ee||(Ee=1,function(e){(()=>{const n=(e={},n={})=>{var t={setCustomize:t=>{n=t.Messages,e=t.AppConfig},init:function(e){t.state=e}};return t.send=function(n,r,o){("function"!=typeof o&&(o=function(){}),e.disableFeedback)?o():n&&(!0===r||t.state)?function(e,n){var t=new XMLHttpRequest;t.open("HEAD",e),t.onreadystatechange=function(){this.readyState===this.DONE&&n&&n()},t.send()}("/common/feedback.html?"+n+"="+Math.random().toString(16).replace(/0./,""),o):o()},t.reportAppUsage=function(){var e=window.location.pathname.split("/").filter((function(e){return e})).join(".");/^#\/1\/view\//.test(window.location.hash)?t.send(e+"_VIEW"):t.send(e)},t.reportScreenDimensions=function(){var e=window.innerHeight,n=window.innerWidth;t.send("DIMENSIONS:"+e+"x"+n)},t.reportLanguage=function(){n&&t.send("LANG_"+n._languageUsed)},t};e.exports&&(e.exports=n(void 0,void 0))})()}(Oe)),Oe.exports}var we,De,_e=Ae(),Te=n({__proto__:null,default:r(_e)},[_e]),Se={exports:{}},xe={exports:{}};function Ne(){return De||(De=1,function(e){e.exports&&(e.exports=function(e={},n){var t={setCustomize:n=>{e=n.AppConfig}};t.MINIMUM_PASSWORD_LENGTH="number"==typeof e.minimumPasswordLength?e.minimumPasswordLength:8,t.MINIMUM_NAME_LENGTH=1,t.MAXIMUM_NAME_LENGTH=64,t.isEmail=function(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())},t.isLongEnoughPassword=function(e){return e.length>=t.MINIMUM_PASSWORD_LENGTH};var r=t.isString=function(e){return"string"==typeof e};return t.isValidUsername=function(e){return!!(r(e)&&e.length>=t.MINIMUM_NAME_LENGTH)},t.isValidPassword=function(e){return!(!e||!r(e))},t.passwordsMatch=function(e,n){return r(e)&&r(n)&&e===n},t.customSalt=function(){return"string"==typeof e.loginSalt?e.loginSalt:""},t.deriveFromPassphrase=function(e,r,o,a){n(r,e+t.customSalt(),8,1024,o||128,200,a,void 0)},t.dispenser=function(e){var n={used:0};return function(t){if(n.used+t>e.length)throw new Error("exceeded available entropy");if("number"!=typeof t)throw new Error("expected a number");if(t<=0)throw new Error("expected to consume a positive number of bytes");var r;return r=e.slice?e.slice(n.used,n.used+t):e.subarray(n.used,n.used+t),n.used+=t,r}},t}(void 0,(we||(we=1,function(e){e.exports=function(e,n,t,r,o,a,i,s){function c(e){var n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],t=1779033703,r=3144134277,o=1013904242,a=2773480762,i=1359893119,s=2600822924,c=528734635,u=1541459225,f=new Array(64);function l(e){for(var l=0,d=e.length;d>=64;){var h,p,v,y,m,g=t,E=r,b=o,O=a,A=i,w=s,D=c,_=u;for(p=0;p<16;p++)v=l+4*p,f[p]=(255&e[v])<<24|(255&e[v+1])<<16|(255&e[v+2])<<8|255&e[v+3];for(p=16;p<64;p++)y=((h=f[p-2])>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,m=((h=f[p-15])>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,f[p]=(y+f[p-7]|0)+(m+f[p-16]|0)|0;for(p=0;p<64;p++)y=(((A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))+(A&w^~A&D)|0)+(_+(n[p]+f[p]|0)|0)|0,m=((g>>>2|g<<30)^(g>>>13|g<<19)^(g>>>22|g<<10))+(g&E^g&b^E&b)|0,_=D,D=w,w=A,A=O+y|0,O=b,b=E,E=g,g=y+m|0;t=t+g|0,r=r+E|0,o=o+b|0,a=a+O|0,i=i+A|0,s=s+w|0,c=c+D|0,u=u+_|0,l+=64,d-=64}}l(e);var d,h=e.length%64,p=e.length/536870912|0,v=e.length<<3,y=h<56?56:120,m=e.slice(e.length-h,e.length);for(m.push(128),d=h+1;d>>24&255),m.push(p>>>16&255),m.push(p>>>8&255),m.push(p>>>0&255),m.push(v>>>24&255),m.push(v>>>16&255),m.push(v>>>8&255),m.push(v>>>0&255),l(m),[t>>>24&255,t>>>16&255,t>>>8&255,t>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255]}function u(e,n,t){e=e.length<=64?e:c(e);var r,o=64+n.length+4,a=new Array(o),i=new Array(64),s=[];for(r=0;r<64;r++)a[r]=54;for(r=0;r=o-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;t>=32;)u(),s=s.concat(c(i.concat(c(a)))),t-=32;return t>0&&(u(),s=s.concat(c(i.concat(c(a))).slice(0,t))),s}function f(e,n,t,r){var o,a,i=e[0]^n[t++],s=e[1]^n[t++],c=e[2]^n[t++],u=e[3]^n[t++],f=e[4]^n[t++],l=e[5]^n[t++],d=e[6]^n[t++],h=e[7]^n[t++],p=e[8]^n[t++],v=e[9]^n[t++],y=e[10]^n[t++],m=e[11]^n[t++],g=e[12]^n[t++],E=e[13]^n[t++],b=e[14]^n[t++],O=e[15]^n[t++],A=i,w=s,D=c,_=u,T=f,S=l,x=d,N=h,I=p,C=v,R=y,P=m,k=g,M=E,F=b,L=O;for(a=0;a<8;a+=2)A^=(o=(k^=(o=(I^=(o=(T^=(o=A+k)<<7|o>>>25)+A)<<9|o>>>23)+T)<<13|o>>>19)+I)<<18|o>>>14,S^=(o=(w^=(o=(M^=(o=(C^=(o=S+w)<<7|o>>>25)+S)<<9|o>>>23)+C)<<13|o>>>19)+M)<<18|o>>>14,R^=(o=(x^=(o=(D^=(o=(F^=(o=R+x)<<7|o>>>25)+R)<<9|o>>>23)+F)<<13|o>>>19)+D)<<18|o>>>14,L^=(o=(P^=(o=(N^=(o=(_^=(o=L+P)<<7|o>>>25)+L)<<9|o>>>23)+_)<<13|o>>>19)+N)<<18|o>>>14,A^=(o=(_^=(o=(D^=(o=(w^=(o=A+_)<<7|o>>>25)+A)<<9|o>>>23)+w)<<13|o>>>19)+D)<<18|o>>>14,S^=(o=(T^=(o=(N^=(o=(x^=(o=S+T)<<7|o>>>25)+S)<<9|o>>>23)+x)<<13|o>>>19)+N)<<18|o>>>14,R^=(o=(C^=(o=(I^=(o=(P^=(o=R+C)<<7|o>>>25)+R)<<9|o>>>23)+P)<<13|o>>>19)+I)<<18|o>>>14,L^=(o=(F^=(o=(M^=(o=(k^=(o=L+F)<<7|o>>>25)+L)<<9|o>>>23)+k)<<13|o>>>19)+M)<<18|o>>>14;n[r++]=e[0]=A+i|0,n[r++]=e[1]=w+s|0,n[r++]=e[2]=D+c|0,n[r++]=e[3]=_+u|0,n[r++]=e[4]=T+f|0,n[r++]=e[5]=S+l|0,n[r++]=e[6]=x+d|0,n[r++]=e[7]=N+h|0,n[r++]=e[8]=I+p|0,n[r++]=e[9]=C+v|0,n[r++]=e[10]=R+y|0,n[r++]=e[11]=P+m|0,n[r++]=e[12]=k+g|0,n[r++]=e[13]=M+E|0,n[r++]=e[14]=F+b|0,n[r++]=e[15]=L+O|0}function l(e,n,t,r,o){for(;o--;)e[n++]=t[r++]}function d(e,n,t,r,o){for(;o--;)e[n++]^=t[r++]}function h(e,n,t,r,o){l(e,0,n,t+16*(2*o-1),16);for(var a=0;a<2*o;a+=2)f(e,n,t+16*a,r+8*a),f(e,n,t+16*a+16,r+8*a+16*o)}function p(e,n,t){return e[n+16*(2*t-1)]}function v(e){for(var n=[],t=0;t127&&r<2048?(n.push(r>>6|192),n.push(63&r|128)):(n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128))}return n}if(t<1||t>31)throw new Error("scrypt: logN not be between 1 and 31");var y,m,g,E,b=1<>>0;if(1*r>=1<<30||r>16777216||r>8388608||b>16777216/r)throw new Error("scrypt: parameters are too large");"string"==typeof e&&(e=v(e)),"string"==typeof n&&(n=v(n)),"undefined"!=typeof Int32Array?(y=new Int32Array(64*r),m=new Int32Array(32*b*r),E=new Int32Array(16)):(y=[],m=[],E=new Array(16)),g=u(e,n,128*r);var O=32*r;function A(){for(var e=0;e<32*r;e++){var n=4*e;y[0+e]=(255&g[n+3])<<24|(255&g[n+2])<<16|(255&g[n+1])<<8|255&g[n+0]}}function w(e,n){for(var t=e;t>>0&255,g[4*e+1]=n>>>8&255,g[4*e+2]=n>>>16&255,g[4*e+3]=n>>>24&255}}var T="undefined"!=typeof setImmediate?setImmediate:setTimeout;function S(e,n,t,r,o){!function a(){T((function(){r(e,e+t>>18&63]),o.push(t[n>>>12&63]),o.push(t[n>>>6&63]),o.push(t[n>>>0&63]);return r%3>0&&(o[o.length-1]="=",r%3==1&&(o[o.length-2]="=")),o.join("")}(t):"hex"===n?function(e){for(var n="0123456789abcdef".split(""),t=e.length,r=[],o=0;o>>4&15]),r.push(n[e[o]>>>0&15]);return r.join("")}(t):t}"function"==typeof a&&(s=i,i=a,a=1e3),a<=0?(A(),w(0,b),D(0,b),_(),i(x(s))):(A(),S(0,b,2*a,w,(function(){S(0,b,2*a,D,(function(){_(),i(x(s))}))})))}}(xe)),xe.exports)))}(Se)),Se.exports}var Ie,Ce,Re,Pe=Ne(),ke=n({__proto__:null,default:r(Pe)},[Pe]),Me={exports:{}},Fe={exports:{}},Le={exports:{}},He={exports:{}};function je(){return Ie||(Ie=1,function(e){e.exports&&(e.exports={whenRealtimeSyncs:function(e,n){"function"==typeof e.getAuthDoc?setTimeout((function(){e.getAuthDoc()!==e.getUserDoc()?e.onSettle(n):n()}),0):console.error("improper use of this function")}})}(He)),He.exports}function Ke(){return Ce||(Ce=1,function(e){(()=>{const n=(e,n,t)=>{let r=globalThis;var o={setCustomize:()=>{}},a=function(e){try{return JSON.parse(JSON.stringify(e))}catch(e){return}};return o.init=function(o,i,s){var c=o.loggedIn,u=o.sharedFolder,f=o.readOnly,l=o.Messages||{},d=i.ROOT,h=i.FILES_DATA,p=i.STATIC_DATA,v=i.OLD_FILES_DATA,y=i.UNSORTED,m=i.TRASH,g=i.TEMPLATE,E=i.SHARED_FOLDERS,b=i.SHARED_FOLDERS_TEMP,O=i.debug;i._setReadOnly=function(e){(f=e)||i.fixFiles()},i.setHref=function(e,n,t){(n||e)&&(f||(n?[n]:i.findChannels([e])).forEach((function(e){var n=i.getFileData(e,!0);i.getHref(n)!==t&&(n.href=i.cryptor.encrypt(t))})))},i.setPadAttribute=function(e,n,t,r){if(r=r||function(){},f)r("EFORBIDDEN");else{var o=i.getIdFromHref(e);if(o)if(n&&n.trim()){var s=i.getFileData(o,!0);"href"===n?i.setHref(null,o,t):s[n]=a(t),r(null)}else r("E_INVAL_ATTR");else r("E_INVAL_HREF")}},i.getPadAttribute=function(e,n,t){t=t||function(){};var r=i.getIdFromHref(e);if(r){var o=i.getFileData(r);t(null,a(o[n]))}else t(null,void 0)},i.pushData=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);o.href&&-1!==o.href.indexOf("#")&&(o.href=i.cryptor.encrypt(o.href)),s[h][r]=o,t(null,r)}},i.pushLink=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r=e.createRandomInteger(),o=a(n);s[p][r]=o,t(null,r)}},i.pushSharedFolder=function(n,t){if("function"!=typeof t&&(t=function(){}),f)t("EFORBIDDEN");else{var r,u=a(n);if(Object.keys(s[E]).some((function(e){if(s[E][e].channel===u.channel)return u.href&&!s[E][e].href&&(s[E][e].href=u.href),r=e,!0})))t("EEXISTS",r);else if(c&&!o.testMode){var l=e.createRandomInteger();u.href&&-1!==u.href.indexOf("#")&&(u.href=i.cryptor.encrypt(u.href)),s[E][l]=u,t(null,l)}else t("EAUTH")}},i.deprecateSharedFolder=function(e,n){if(!f){var t=s[E][e];if(t){if(!(!t.href||-1===i.cryptor.decrypt(t.href).indexOf("#")))(s[b][e]=JSON.parse(JSON.stringify(t))).legacy="PASSWORD_CHANGE"!==n;var r=i.findFile(Number(e));i.delete(r,null,!0),delete s[E][e]}}};var A=function(e){f||delete s[h][e]};i.checkDeletedFiles=function(e){if(c||o.testMode)if(f)e("EFORBIDDEN");else{var t=i.getFiles([d,"hrefArray",m]),r=[];i.getFiles([h,E,p]).forEach((function(e){if(-1===t.indexOf(e)){var a=i.isSharedFolder(e)?s[E][e]:i.getFileData(e),c=a.channel;a.lastVersion&&r.push(n.hrefToHexChannelId(a.lastVersion)),a.rtChannel&&r.push(a.rtChannel),c&&r.push(c),i.isSharedFolder(e)?(delete s[E][e],o.removeProxy&&o.removeProxy(e)):s[p][e]?delete s[p][e]:A(e)}})),r.length?e(null,r):e()}else e()};i.deleteMultiplePermanently=function(e,n,t){if(f)t("EFORBIDDEN");else{var r=e.filter((function(e){return i.isPathIn(e,[h])}));if(!c&&!o.testMode)return r.forEach((function(e){var n=e[1];n&&A(n)})),void t();var a=e.filter((function(e){return i.isPathIn(e,["hrefArray"])})),u=e.filter((function(e){return i.isPathIn(e,[d])})),l=e.filter((function(e){return i.isPathIn(e,[m])})),p=[];a.forEach((function(e){var n=i.find(e);p.push({root:e[0],id:n})})),function(e){f||e.forEach((function(e){var n=s[e.root].indexOf(e.id);s[e.root].splice(n,1)}))}(p),u.forEach((function(e){var n=e.slice(),t=n.pop();delete i.find(n)[t]}));var v,y=[];l.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);4!==e.length?delete r[t]:y.push({name:e[1],el:r})})),v=y,f||v.forEach((function(e){var n=s[m][e.name].indexOf(e.el);s[m][e.name].splice(n,1)})),n?t():i.checkDeletedFiles(t)}},i.copyFromOtherDrive=function(e,t,r,o){if(!f){var a=[];if(Object.keys(r).forEach((function(e){e=Number(e);var n=r[e];if(n.static)return delete n.static,void(s[p][e]=n);n.href&&(n.href=i.cryptor.encrypt(n.href));var t=!1;for(var o in s[h])if(s[h][o].channel===n.channel){s[h][o].href||(s[h][o].href=n.href),t=!0;break}t?a.push(e):s[h][e]=n})),i.isFile(t)&&-1!==a.indexOf(t))i.log(l.sharedFolders_duplicate);else{if(i.isFolder(t)){var c=function(e){for(var n in e)i.isFile(e[n])?-1!==a.indexOf(e[n])&&(i.log(l.sharedFolders_duplicate),delete e[n]):i.isFolder(e[n])&&c(e[n])};c(t)}var u=i.find(e),d=i.isFile(t)?n.createChannelId():o,v=i.getAvailableName(u,d);Array.isArray(u)?u.push(t):u[v]=t}}};i.copyElement=function(e,t){if(!f&&!i.comparePath(e,t)){var r=i.find(e),o=i.find(t);if(i.isPathIn(t,[m])){if(!e||e.length<2||e[0]===m)return void O("Can't move an element from the trash to the trash: ",e);var a=e[e.length-1],c=i.isPathIn(e,["hrefArray"])?i.getTitle(r):a,u=e.slice();return u.pop(),function(e,n,t){if(!f){var r=s[m];void 0===r[e]&&(r[e]=[]);var o={element:n,path:t};r[e].push(o)}}(c,r,u),!0}if(i.isPathIn(t,["hrefArray"])){if(i.isFolder(r))return void i.log(l.fo_moveUnsortedError);if(e[0]===t[0])return;var d=t[0];return-1===s[d].indexOf(r)&&s[d].push(r),!0}var h=i.isFile(r)?i.getAvailableName(o,n.createChannelId()):i.isInTrashRoot(e)?e[1]:e.pop();if(void 0===o[h])return o[h]=r,!0;i.log(l.fo_unavailableName)}},i.forget=function(e){if(!f){var n=i.getIdFromHref(e);if(n){if(!c&&!o.testMode)return A(n),!0;var t=i.findFile(n);return i.move(t,[m]),!0}}},i.restoreHref=function(e){if(!f){var n=i.getIdFromHref(e);if(n&&i.isFile(n)){var t=i.findFile(n),r=!0;t.forEach((function(e){e[0]!==m?r=!1:i.delete(e,null,!0)})),r&&i.add(n)}}},i.add=function(e,t){if(!f&&(c||o.testMode)){e=Number(e);var r=s[h][e]||s[p][e]||s[E][e];if(r&&"object"==typeof r){var a,u=t;if(t&&!Array.isArray(t)&&(u=decodeURIComponent(t).split(",")),t&&i.isPathIn(u,["hrefArray"]))(a=i.find(u)).push(e);else if(-1!==i.getFiles([d,m,"hrefArray"]).indexOf(e)||u||(u=[d]),t&&i.isPathIn(u,[d])){if(a=i.find(u)){var l=i.getAvailableName(a,n.createChannelId());return void(a[l]=e)}a=i.find([d]),u.slice(1).forEach((function(e){a=a[e]=a[e]||{}})),a[n.createChannelId()]=e}}}},i.setFolderData=function(e,t,r,o){if(!f){var a=i.find(e);if(i.isFolder(a)&&!i.isSharedFolder(a)){if(!i.hasFolderData(a))a["000"+n.createChannelId().slice(0,-3)]={metadata:!0};i.getFolderData(a)[t]=r,o()}}};var w=function(e){i.rt?(i.rt.sync(),t.whenRealtimeSyncs(i.rt,e)):r.setTimeout(e,1e3)};return i.migrateReadOnly=function(e){if(!f&&o.editKey)if(s.version>=2)e();else{s.migrateRo=1;w((function(){var n=JSON.parse(JSON.stringify(s));i.reencrypt(o.editKey,o.editKey,n),setTimeout((function(){s.version>=2?e():(Object.keys(n).forEach((function(e){s[e]=n[e]})),s.version=2,delete s.migrateRo,w(e))}),1e3)}))}else e({error:"EFORBIDDEN"})},i.migrate=function(t){if(f)t();else{!function(){if(s[y]&&s[v]){O("UNSORTED still exists in the object, removing it...");var e=s[y];0!==e.length?(e.forEach((function(e){"string"==typeof e&&(0===s[v].filter((function(n){return n.href===e})).length&&s[v].push({href:e}))})),delete s[y]):delete s[y]}}(),function(t){if(s[v])try{O("Migrating file system..."),s.migrate=1;w((function(){var r=s[v].slice();s[h]||(s[h]={});var o=s[h];r.forEach((function(t){if(t&&t.href){var r=t.href,a=e.createRandomInteger(),s=i.findFile(r),c=t,u=n.createChannelId();o[a]=c||{href:r},s.forEach((function(e){var n=e.slice(),t=n.pop(),r=i.find(n);if(i.isInTrashRoot(e))return r.element=a,void(o[a].filename=e[1]);i.isPathIn(e,["hrefArray"])?r[t]=a:(r[u]=a,o[a].filename=t,delete r[t])}))}})),delete s[v],delete s.migrate,t()}))}catch(e){console.error(e),t()}else t()}(t)}},i.fixFiles=function(t){if(!f){t&&(O=function(){});var r=+new Date;O("Cleaning file system...");var a=JSON.stringify(s),l=function(t){"object"!=typeof s[d]&&(O("ROOT was not an object"),s[d]={});var r=t||s[d];if(!r)return console.error("Invalid element in root");var o,a=0,c=s[p],u=s[h];for(var f in r)if(null!==(o=r[f]))if(i.isFolderData(o))0!==a&&(O("Multiple metadata files in folder"),delete r[f]),a++;else if(i.isFile(o,!0)||i.isFolder(o))if(i.isFolder(o))l(o);else{if("string"==typeof o){var v=e.createRandomInteger(),y=n.createChannelId();u[v]={href:i.cryptor.encrypt(o),filename:f},r[y]=v,delete r[f]}if("number"==typeof o)u[o]||c[o]||(O("An element in ROOT doesn't have associated data",o,f),delete r[f])}else O("An element in ROOT was not a folder nor a file. ",o),delete r[f];else console.error("element[%s] is null",f),delete r[f]};e.isObject(s[p])||(O("STATIC_DATA was not an object"),s[p]={}),l(),function(){if(!u){"object"!=typeof s[m]&&(O("TRASH was not an object"),s[m]={});var n,t=s[m],r=function(t,r,o){if("object"==typeof t){if(!i.isSharedFolder(t.element))if(i.isFile(t.element,!0)||i.isFolder(t.element))if(Array.isArray(t.path)){if("string"==typeof t.element){var a=e.createRandomInteger();s[h][a]={href:i.cryptor.encrypt(t.element),filename:o},t.element=a}if(i.isFolder(t.element)&&l(t.element),"number"==typeof t.element)s[h][t.element]||s[p][t.element]||(O("An element in TRASH doesn't have associated data",t.element,o),n.push(r))}else n.push(r);else n.push(r)}else n.push(r)};for(var o in t)if(Array.isArray(t[o]))if(0===t[o].length)O("Empty array in TRASH root. ",t[o]),delete t[o];else{n=[];for(var a=0;a=0;c--)t[o].splice(n[c],1)}else O("An element in TRASH root is not an array. ",t[o]),delete t[o]}}(),function(){if(!u){Array.isArray(s[g])||(O("TEMPLATE was not an array"),s[g]=[]);var n=e.deduplicateString(s[g]);n.length!==s[g].length&&(s[g]=n);var t=s[g],r=i.getFiles([d]),o=[];t.forEach((function(n,a){if(i.isFile(n,!0)&&-1===r.indexOf(n)){if("string"==typeof n){var c=e.createRandomInteger();return s[h][c]={href:i.cryptor.encrypt(n)},void(t[a]=c)}if("number"==typeof n)s[h][n]||(O("An element in TEMPLATE doesn't have associated data",n),o.push(n))}else o.push(n)})),o.forEach((function(e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}))}}(),function(){"object"!=typeof s[h]&&(O("FILES_DATA was not an object"),s[h]={});var e=s[h],t=i.getFiles([d,m,"hrefArray"]),r=i.find([d]),a=[];for(var u in e)if(String(u)===String(Number(u))){var l=e[u=Number(u)];if(l&&"object"==typeof l)if(l.href||l.roHref){var v;try{v=l.href&&(-1!==l.href.indexOf("#")?l.href:i.cryptor.decrypt(l.href))}catch(e){}if(!v||-1!==v.indexOf("#")){var y,g=n.parsePadUrl(v||l.roHref);if(g.hash)if(g.type){if(v&&"pad"===g.hashData.type&&g.hashData.version)if("view"===g.hashData.mode)l.roHref=v,delete l.href;else if(l.roHref){var E=n.parsePadUrl(l.roHref);E.hash&&E.type||(y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y))}else y=n.getSecrets(g.type,g.hash,l.password),l.roHref="/"+g.type+"/#"+n.getViewHashFromKeys(y);if(0===g.hashData.version&&delete l.roHref,v&&"/"!==v.slice(0,1)&&(l.href=i.cryptor.encrypt(n.getRelativeHref(v))),l.ctime||(l.ctime=l.atime),l.title||(l.title=i.getDefaultName(g)),!l.channel)try{y||(y=n.getSecrets(g.type,g.hash,l.password)),l.channel=y.channel,console.log(l),O("Adding missing channel in filesData ",l.channel)}catch(e){console.error(e)}if(n.isValidChannel(l.channel)||console.error("Remove invalid channel",l.channel,l),!c&&!o.testMode||-1!==t.indexOf(u));else O("An element in filesData was not in ROOT, TEMPLATE or TRASH.",u,l),r[n.createChannelId()]=u}else O("Removing an element in filesData with a invalid type.",l),a.push(u);else O("Removing an element in filesData with a invalid href.",l),a.push(u)}}else O("Removing an element in filesData with a missing href.",l),a.push(u);else O("An element in filesData was not an object.",l),a.push(u)}else O("Invalid file ID in filesData.",u),a.push(u);a.forEach((function(e){A(e)}));var b=s[p],w=[];for(var D in b){var _=b[D=Number(D)];_&&"object"==typeof _&&_.href?!c&&!o.testMode||-1!==t.indexOf(D)||w.push(D):w.push(D)}w.forEach((function(e){f||delete s[p][e]}))}(),Object.keys(s).forEach((function(e){"/"===e.slice(0,1)&&delete s[e]})),function(){if(!u){"object"!=typeof s[E]&&(O("SHARED_FOLDER was not an object"),s[E]={});var e,t,r=s[E],o=i.getFiles([d,m]),a=i.find([d]);for(var c in r){var f;t=r[c],c=Number(c);try{f=t.href&&(-1!==t.href.indexOf("#")?t.href:i.cryptor.decrypt(t.href))}catch(e){}if((e=n.parsePadUrl(f||t.roHref))&&e.hash&&"undefined"!==e.hash){if(-1===o.indexOf(c))console.log("missing"+c),a[n.createChannelId()]=c}else delete r[c]}}}(),function(){if(!u){"object"!=typeof s[b]&&(O("SHARED_FOLDER_TEMP was not an object"),s[b]={});var e=s[b],n=s[E];for(var t in e)n[t]&&delete e[t]}}();var v=+new Date-r+"ms";JSON.stringify(s)===a?O("File system was clean.",v):O("Your file system was corrupted. It has been cleaned so that the pads you visit can be stored safely.",v)}},i},o};e.exports&&(e.exports=n(Z(),te(),je()))})()}(Le)),Le.exports}function Ue(){return Re||(Re=1,function(e){(()=>{const n=(e,n,t,r,o,a={})=>{let i=globalThis;var s={setCustomize:e=>{a=e.Messages,r.setCustomize(e)}},c=s.ROOT="root",u=s.UNSORTED="unsorted",f=s.TRASH="trash",l=s.TEMPLATE="template",d=s.SHARED_FOLDERS="sharedFolders",h=s.SHARED_FOLDERS_TEMP="sharedFoldersTemp",p=s.FILES_DATA=t.storageKey,v=s.OLD_FILES_DATA=t.oldStorageKey,y=s.STATIC_DATA="static";s.getDefaultName=function(e){var n=e.type;return a.type[n]+" - "+function(){if(i.Intl&&i.Intl.DateTimeFormat)return new i.Intl.DateTimeFormat(void 0,{weekday:"short",year:"numeric",month:"long",day:"numeric"}).format(new Date);return(new Date).toString().split(" ").slice(0,4).join(" ")}()};var m=s.createCryptor=function(e){var n={};if(!e)return n.encrypt=function(e){return e},n.decrypt=function(e){return e},n;try{var t=o.createEncryptor(e);n.encrypt=function(e){try{return"/file/#"===e.slice(0,7)?e:t.encrypt(e)}catch(e){return}},n.decrypt=function(e){try{return t.decrypt(e)}catch(e){return}}}catch(e){console.error(e)}return n};return s.getHref=function(e,n){if(e.href&&-1!==e.href.indexOf("#"))return e.href;if(e.href&&n){var t=n.decrypt(e.href);if(t&&-1!==t.indexOf("#"))return t}return e.roHref},s.reencrypt=function(e,n,t){if(t){var r=m(e),o=m(n);Object.keys(t[p]).forEach((function(e){var n=t[p][e]||{};if(n.href&&n.roHref&&!n.fileType){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[d]||{}).forEach((function(e){var n=t[d][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}})),Object.keys(t[h]||{}).forEach((function(e){var n=t[h][e]||{};if(n.href){var a=n.href&&-1===n.href.indexOf("#")?r.decrypt(n.href):n.href;if(!a)return;n.href=o.encrypt(a)}}))}else console.error("Nothing to reencrypt")},s.init=function(t,o){var i={};i.cryptor=m(o.editKey),i.setReadOnly=function(e,n){o.editKey=n,i.cryptor=m(n),i.cryptor.k=Math.random(),i.readOnly=e,i._setReadOnly&&i._setReadOnly(e)},i.readOnly=o.readOnly,i.reencrypt=s.reencrypt,i.getDefaultName=s.getDefaultName;var g=o.sframeChan,E=a.fm_newFolder||"New folder",b=a.fm_newFile||"New file";i.ROOT=c,i.STATIC_DATA=y,i.UNSORTED=u,i.TRASH=f,i.TEMPLATE=l,i.SHARED_FOLDERS=d,i.SHARED_FOLDERS_TEMP=h,i.FILES_DATA=p,i.OLD_FILES_DATA=v;var O=i.sharedFolder=o.sharedFolder;i.id=o.id;var A=function(){console.debug.apply(console,arguments)},w=i.log=o.log||A,D=o.logError||A,_=i.debug=o.debug||A;i.fixFiles=function(){};var T=i.error=function(){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"fixFiles",data:{}},(function(){})):("function"==typeof i.fixFiles&&i.fixFiles(),console.error.apply(console,arguments),i.fixFiles())};o.outer&&r.init(o,i,t),i.getStructure=function(){var e={};return e[c]={},e[f]={},e[p]={},e[l]=[],e[d]={},e};var S=i.getHref=function(e){return s.getHref(e,i.cryptor)},x=function(e){return null===e?"null":Array.isArray(e)?"array":typeof e};i.isValidDrive=function(e){var n=i.getStructure();return"object"==typeof e&&Object.keys(n).every((function(t){return e[t]&&x(n[t])===x(e[t])}))};var N=function(){return[l]},I=function(e,n){return e===n},C=i.isSharedFolder=function(e){return!O&&Boolean(t[d]&&t[d][e])},R=i.isFile=function(e,n){return!C(e)&&("number"==typeof e||(void 0!==t[v]||n)&&"string"==typeof e)},P=i.isFolderData=function(e){return"object"==typeof e&&!0===e.metadata};i.isReadOnlyFile=function(e){if(!R(e))return!1;var n=i.getFileData(e);return n.roHref?Boolean(n.roHref&&!n.href):void 0},i.isStaticFile=function(e){return Boolean(t[y]&&t[y][e])};var k=i.isFolder=function(e){return!P(e)&&("object"==typeof e&&!e.channel||C(e))};i.isFolderEmpty=function(e){return!!k(e)&&(0===Object.keys(e).length||!(1!==Object.keys(e).length||!P(e[Object.keys(e)[0]])))},i.hasSubfolder=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=k(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=k(e[o])?1:0;return t},i.hasFile=function(e,n){if(!k(e))return!1;var t=0,r=function(e){t+=R(e.element)?1:0};for(var o in e)n?Array.isArray(e[o])&&e[o].forEach(r):t+=R(e[o])?1:0;return t},i.hasFolderData=function(e){for(var n in e)if(P(e[n]))return!0};var M=i.hasSubSharedFolder=function(e){for(var n in e){if(C(e[n]))return!0;if(k(e[n])&&M(e[n]))return!0}return!1},F=i.getFileData=function(n,r){if(n){var a,s;try{a=(t[y]||{})[n]}catch(e){console.error(e)}if(a){var c=r?a:e.clone(a);return r||(c.static=!0),c}try{s=t[p][n]||{}}catch(e){console.error(e),s={}}if(!r&&(s=JSON.parse(JSON.stringify(s))).href&&-1===s.href.indexOf("#"))if(o.editKey)try{s.href=i.cryptor.decrypt(s.href)}catch(e){delete s.href}else delete s.href;return s}};i.getFolderData=function(e){for(var n in e)if(P(e[n]))return e[n];return{}};var L=i.getTitle=function(e,n){if(C(e))return"??";var t=F(e);if(t){if(t.static)return t.name;if(e&&(t.href||t.roHref))return"title"===n?t.title:"name"===n?t.filename:t.filename||t.title||b;T("getTitle called with a non-existing file id: ",e,t)}else T("unable to retrieve data about the requested file: ",e,t)},H=i.comparePath=function(e,n){if(!(e&&n&&Array.isArray(e)&&Array.isArray(n)))return!1;if(e.length!==n.length)return!1;for(var t=!0,r=e.length-1;t&&r>=0;)t=e[r]===n[r],r--;return t},j=i.isSubpath=function(e,n){var t=n.slice(),r=e.slice(0,t.length);return H(t,r)},K=i.isPathIn=function(e,n){if(n){var t=n.indexOf("hrefArray");return-1!==t&&(n.splice(t,1),n=n.concat(N())),n.some((function(n){return Array.isArray(e)&&e[0]===n}))}},U=i.isInTrashRoot=function(e){return e[0]===f&&4===e.length},B=function(e,n){if(n){if(0===n.length)return e;var t=n.slice(),r=t.shift();if(void 0!==e[r])return B(e[r],t);_("Unable to find the key '"+r+"' in the root object provided:",e)}else T("Invalid path:\n",n,"\nin root\n",e)},V=i.find=function(e){return B(t,e)},Y=i.getFilesRecursively=function(e,n){for(var t in n=n||[],e)R(e[t])||C(e[t])?-1===n.indexOf(e[t])&&n.push(e[t]):P(e[t])||Y(e[t],n);return n},G={array:function(e){return t[e]||(t[e]=[]),t[e].slice()}};N().forEach((function(e){G[e]=function(){return G.array(e)}})),G.hrefArray=function(){var n=[];return O?n:(N().forEach((function(e){n=n.concat(G[e]())})),e.deduplicateString(n))},G[c]=function(){var e=[];return Y(t[c],e),e},G[f]=function(){var e=t[f],n=[],r=function(e){R(e.element)||C(e.element)?-1===n.indexOf(e.element)&&n.push(e.element):Y(e.element,n)};for(var o in e){if(!Array.isArray(e[o]))return void T("Trash contains a non-array element");e[o].forEach(r)}return n},G[v]=function(){var e=[];return t[v]?(t[v].forEach((function(n){n.href&&-1===e.indexOf(n.href)&&e.push(n.href)})),e):e},G[y]=function(){return t[y]?Object.keys(t[y]).map(Number).filter(Boolean):[]},G[p]=function(){return t[p]?Object.keys(t[p]).map(Number).filter(Boolean):[]},G[d]=function(){return t[d]?Object.keys(t[d]).map(Number).filter(Boolean):[]};var J=i.getFiles=function(n){var t=[];return n&&n.length||(n=[c,"hrefArray",f,v,p,d]),n.forEach((function(e){"function"==typeof G[e]&&(t=t.concat(G[e]()))})),e.deduplicateString(t)},q=i.getIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([p]).some((function(e){if(o(S(t[p][e]))===a||o(t[p][e].roHref)===a)return r=e,!0})),r};i.getSFIdFromHref=function(e){var r,o=function(e){if(e)return n.parsePadUrl(e).getUrl().replace(/\/p\/?/,"/")},a=o(e);return J([d]).some((function(e){if(o(S(t[d][e]))===a||o(t[d][e].roHref)===a)return r=e,!0})),r};var W=function(e,n){if(!K(e,[c,f]))return[];n=Array.isArray(n)?n:[n];var t={},r=V(e),o=function(e){Object.keys(e).forEach((n=>{t[n]||=[],Array.prototype.push.apply(t[n],e[n])}))};if(R(r)||C(r))return n.some((n=>{I(n,r)&&(t[n]||=[],t[n].push(e))})),t;if(k(r))for(var a in r){let t=e.slice();t.push(a),o(W(t,n))}return t},z=function(e,n){if(O)return{};if(!t[e])return{};var r=t[e].slice(),o={},a=-1;return n.forEach((n=>{for(;-1!==(a=r.indexOf(n,a+1));)o[n]||=[],o[n].push([e,a])})),o},Q=function(e,n){if(O)return[];var t=V(e),r={},o=function(e){Object.keys(e).forEach((n=>{r[n]||=[],Array.prototype.push.apply(r[n],e[n])}))};if(1===e.length&&"object"==typeof t&&Object.keys(t).forEach((function(r){var a=t[r];if(Array.isArray(a)){var i=e.slice();i.push(r),o(Q(i,n))}})),2===e.length){if(!Array.isArray(t))return[];t.forEach((function(t,a){var i=e.slice();i.push(a),i.push("element"),R(t.element)?n.some((e=>{I(e,t.element)&&(r[e]||=[],r[e].push(i))})):o(Q(i,n))}))}return e.length>=4&&o(W(e,n)),r},Z=i.findFiles=function(e){var n=W([c],e),t=z(l,e),r=Q([f],e);let o={};return e.forEach((e=>{o[e]=[]})),[n,t,r].forEach((e=>{Object.keys(e).forEach((n=>{o[n]||=[],Array.prototype.push.apply(o[n],e[n])}))})),o},X=i.findFile=function(e){return Z([e])[e]||[]};i.findChannels=function(e,n){var r=t[p],o=t[d],a=[p];return n&&a.push(d),J(a).filter((function(n){var t=r[n]||o[n]||{};return-1!==e.indexOf(t.channel)}))},i.search=function(r){if("string"!=typeof r)return[];r=r.trim();var o,a=[],s=t[p],u=t[d],f=r.toLowerCase();/^#/.test(f)&&(o=[f.slice(1).trim()]);J([p,d]).forEach((function(e){var n=s[e]||u[e];if(n)if(Array.isArray(n.tags)&&(t=n.tags,o&&t.length&&(t=t.map((function(e){return e.toLowerCase()})),o.some((function(e){return t.some((function(n){return n===e}))})))))a.push(e);else{var t,r=n.title||n.lastTitle;(r&&-1!==r.toLowerCase().indexOf(f)||n.filename&&-1!==n.filename.toLowerCase().indexOf(f))&&a.push(e)}}));var l=n.getRelativeHref(r);if(l){var h=q(l);h&&a.push(h)}a=e.deduplicateString(a);var v=[];a.forEach((function(e){v.push({id:e,paths:X(e),data:i.getFileData(e)})}));var y=[],m=function(e,n){for(var t in e)k(e[t])&&!C(e[t])&&(-1!==t.toLowerCase().indexOf(f)&&y.push({id:null,paths:[n.concat(t)],data:{title:t}}),m(e[t],n.concat(t)))};return m(t[c],[c]),y=y.sort((function(e,n){return e.data.title.toLowerCase()>n.data.title.toLowerCase()})),v=y.concat(v)},i.getRecentPads=function(){var e=t[p];return Object.keys(e).filter((function(n){return e[n]})).sort((function(n,t){return e[t].atime-e[n].atime})).map((function(e){return Number(e)}))},i.getOwnedPads=function(e){var n=t[p];return Object.keys(n).filter((function(t){return n[t].owners&&-1!==n[t].owners.indexOf(e)})).map((function(e){return Number(e)}))};var $=i.getAvailableName=function(e,n){if(void 0===e[n])return n;for(var t=n,r=1;void 0!==e[t];)t=n+"_"+r,r++;return t},ee=i.move=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"move",data:{paths:e,newPath:n}},t);else{var r=[];e.forEach((function(e){var t=e.slice();t.pop(),H(t,n)||(j(n,e)?w(a.fo_moveFolderToChildError):i.copyElement(e.slice(),n)&&r.push(e))})),i.delete(r,t)}};return i.restore=function(e,n){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"restore",data:{path:e}},n);else if(U(e)){var t=e.slice();t.pop();var r=V(t).path;ee([e],r,n)}},i.addFolder=function(e,n,t){if(g)g.query("Q_DRIVE_USEROBJECT",{cmd:"addFolder",data:{path:e,name:n}},t);else{var r=V(e),o=$(r,n||E);r[o]={};var a=e.slice();a.push(o),t({newPath:a})}},i.delete=function(e,n,t){g?g.query("Q_DRIVE_USEROBJECT",{cmd:"delete",data:{paths:e,nocheck:t}},n):(n=n||function(){},i.deleteMultiplePermanently(e,t,n))},i.emptyTrash=function(e){e=e||function(){},g?g.query("Q_DRIVE_USEROBJECT",{cmd:"emptyTrash"},e):(t[f]={},i.checkDeletedFiles(e))},i.ownedInTrash=function(e){return J([f]).map((function(n){var r=C(n)?t[d][n]:i.getFileData(n);if(r)return e(r.owners)?r.channel:void 0})).filter(Boolean)},i.rename=function(e,n,r){if(r=r||function(){},g)g.query("Q_DRIVE_USEROBJECT",{cmd:"rename",data:{path:e,newName:n}},r);else if(e.length<=1)D("Renaming `root` is forbidden");else{var o,i=V(e);if(k(i)&&!C(i)){var s=e.slice(),c=s.pop();if(!n||!n.trim()||c===n)return;var u=V(s);return void 0!==u[n]?void w(a.fo_existingNameError):(u[n]=i,delete u[c],void("function"==typeof r&&r()))}if(o=C(i)?t[d][i]:t[p][i]||t[y][i])return t[y][i]?n&&n.trim()?(o.name=n,void r()):void r():n&&""!==n.trim()?void(L(i,"name")!==n&&(o.filename=n,"function"==typeof r&&r())):(delete o.filename,void("function"==typeof r&&r()))}},i.getTagsList=function(){var e,n={},r=function(e){n[e]=n[e]?++n[e]:1};for(var o in t[p])(e=t[p][o]).tags&&Array.isArray(e.tags)&&e.tags.forEach(r);return n},i},s};e.exports&&(e.exports=n(Z(),te(),Y(),Ke(),M(),void 0))})()}(Fe)),Fe.exports}var Be,Ve,Ye,Ge={exports:{}},Je={exports:{}};function qe(){return Be||(Be=1,function(e){e.exports=function(e){var n,t=[],r=[],o=0,a=function(e){return o++,function(){for(e&&e.apply(null,arguments),o=(o||1)-1;!o&&t.length&&!n;)t.shift()(a)}};a.abort=function(){r.forEach(clearTimeout),n=1};var i={nThen:function(e){return n||(o?t.push(e):e(a)),i},orTimeout:function(e,s){if(n)return i;if(!s)throw Error("Must specify milliseconds to orTimeout()");var c,u=setTimeout((function(){for(;t.shift()!==c;);for(e(a),o=(o||1)-1;!o&&t.length;)t.shift()(a)}),s);return t.push(c=function(){var e=r.indexOf(u);if(e>-1)return r.splice(e,1),void clearTimeout(u);throw new Error("timeout not listed in array")}),r.push(u),i}};return i.nThen(e)}}(Je)),Je.exports}function We(){return Ve||(Ve=1,function(e){e.exports&&(e.exports=((e,n,t,r,o,a,i,s)=>{var c={},u={};return c.checkMigration=function(e,t,r,o){var a=n.once(n.mkAsync(o));if(t)if(e)if(t.version>=2)a();else if(t.migrateRo){var i,s=!1,c=setInterval((function(){if(t.version>=2)return s=!0,clearTimeout(i),clearInterval(c),void a()}),100);i=setTimeout((function(){clearInterval(c),r.migrateReadOnly((function(){s=!0,a()}))}),2e4),t.on("change",["version"],(function(){s||t.version>=2&&(s=!0,clearTimeout(i),clearInterval(c),a())}))}else r.migrateReadOnly(a);else a();else a()},c.migrate=function(e){var t=u[e];if(t){var r=t.teams;if(Array.isArray(r)&&r.length){var o=r[0];if(o.secondaryKey){var a=n.find(o,["store","manager","folders",o.id]);a&&a.proxy&&!a.proxy.version&&a.userObject.migrateReadOnly((function(){r.forEach((function(e){n.find(e,["store","manager","folders",e.id,"userObject"]).setReadOnly(!1,e.secondarykey)}))}))}}}},c.load=function(t,f,l,d){var h=n.once(n.mkAsync(d)),p=t.network,v=t.store,y=t.isNew,m=t.isNewChannel,g=v.id,E=v.handleSharedFolder,b=v.manager.user.userObject.getHref(l),O=e.parsePadUrl(b),A=e.getSecrets("drive",O.hash,l.password);if(!A.keys)return v.manager.deprecateProxy(f),void h(null);var w=A.keys.secondaryKey;o((function(e){t.cache&&r.getChannelCache(A.channel,e((function(n){if("EINVAL"===n)return e.abort(),v.manager.restrictedProxy(f,A.channel),void h(null)})))})).nThen((function(e){m(null,{channel:A.channel},e((function(n){if(n.isNew&&!y)return v.manager.deprecateProxy(f,A.channel,n.reason),e.abort(),void h(null)})))})).nThen((function(){var e=u[A.channel];if(e&&e.readOnly&&w&&c.upgrade(A.channel,A),e&&e.ready&&e.rt)return setTimeout((function(){v.manager.addProxy(f,e.rt,(function(){c.leave(A.channel,g)}),w),h(e.rt)})),e.teams.push({cb:h,store:v,id:f}),void(E&&E(f,e.rt));if(e&&!e.ready&&e.rt)return e.teams.push({cb:h,store:v,secondaryKey:w,id:f}),void(E&&E(f,e.rt));e=u[A.channel]={teams:[{cb:h,store:v,secondaryKey:w,id:f}],readOnly:!Boolean(w)};var n=l.owners,o={data:{},channel:A.channel,readOnly:!Boolean(w),crypto:a.createEncryptor(A.keys),userName:"sharedFolder",logLevel:1,ChainPad:s,classic:!0,network:p,Cache:r,metadata:{validateKey:A.keys.validateKey||void 0,owners:n},onRejected:t.Store&&t.Store.onRejected},d=e.rt=i.create(o);d.proxy.on("cacheready",(function(){e.teams&&(e.teams.forEach((function(n){d.cache=!0,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),t.updatePassword=!1,n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("ready",(function(){y&&!Object.keys(d.proxy).length&&(d.proxy.version=2),e.teams&&(e.teams.forEach((function(n){d.cache=!1,n.store.manager.addProxy(n.id,d,(function(){c.leave(A.channel,n.store.id)}),n.secondaryKey,t.updatePassword),n.cb(e.rt)})),e.ready=!0)})),d.proxy.on("error",(function(n){if(n&&n.error){if("EDELETED"===n.error){try{e.teams.forEach((function(e){e.store.manager.deprecateProxy(e.id,A.channel,n.message),e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),e.cb()}))}catch(e){}return delete u[A.channel],void h()}if("ERESTRICTED"===n.error)return e.teams.forEach((function(e){e.store.manager.restrictedProxy(e.id,A.channel),e.cb()})),delete u[A.channel],void h()}})),E&&E(f,d)}))},c.upgrade=function(e,n){var t=u[e];if(t&&t.readOnly&&t.rt.setReadOnly&&n.keys&&n.keys.editKeyStr){var r=a.createEncryptor(n.keys);t.readOnly=!1,t.rt.setReadOnly(!1,r)}},c.leave=function(e,n){var t=u[e];if(t){var r,o=t.teams;Array.isArray(o)&&(o.some((function(e,t){if(e.store.id===n)return e.store.handleSharedFolder&&e.store.handleSharedFolder(e.id,null),r=t,!0})),void 0!==r&&(o.splice(r,1),o.length||t.rt&&t.rt.stop&&t.rt.stop()))}},c.updatePassword=function(r,a,i,s){var f=a.oldChannel,l=a.href,d=a.password,h=e.parsePadUrl(l),p=e.getSecrets(h.type,h.hash,d),v=u[f];if(v){if(v.rt&&v.rt.stop)try{v.rt.stop()}catch(e){}var y=o;v.teams.forEach((function(e){y=y((function(o){var a=e.store,s=e.id,u=n.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};if(s&&u[s]){var l=JSON.parse(JSON.stringify(u[s]));l.password=d,c.load({network:i,store:a,updatePassword:!0,Store:r,isNewChannel:r.isNewChannel},s,l,o()),a.rpc&&(a.rpc.unpin([f],o()),a.rpc.pin([p.channel],o()))}})).nThen})),y((function(){s()}))}else s({error:"ENOTFOUND"})},c.loadSharedFolders=function(e,n,r,a,i,s,u,f){var l=a[t.SHARED_FOLDERS]||{},d=Object.keys(l).length,h=1,p=s();u=u||function(){},o((function(t){Object.keys(l).forEach((function(o){var a=l[o];c.load({network:n,store:r,Store:e,cache:f,isNewChannel:e.isNewChannel},o,a,t((function(){u({progress:h,max:d}),h++})))}))})).nThen((function(){setTimeout(p)}))},c.isSharedFolderChannel=function(e){return Object.keys(u).includes(e)},c})(te(),Z(),Ue(),fe(),qe(),M(),g(),w()))}(Ge)),Ge.exports}function ze(){return Ye||(Ye=1,function(e){(()=>{const n=(e,n,t,r,o={},a,i)=>{var s=function(n,t,r,o,a,i){if(!n.folders[t]||i||n.folders[t].restricted){var s=function(e){var n={};for(var t in e.cfg)n[t]=e.cfg[t];return n}(n);s.sharedFolder=!0,s.id=t,s.editKey=a,s.rt=r.realtime,s.readOnly=Boolean(!a);var c=e.init(r.proxy,s);c.fixFiles&&c.fixFiles();var u=r.proxy;if(u.metadata&&u.metadata.title){var f=n.user.proxy[e.SHARED_FOLDERS][t];f&&(f.lastTitle=u.metadata.title)}return n.folders[t]={proxy:r.proxy,userObject:c,leave:o,restricted:u.restricted,offline:Boolean(r.cache)},u.on&&(u.on("disconnect",(function(){n.folders[t].offline=!0})),u.on("reconnect",(function(){n.folders[t].offline=!1}))),c}n.folders[t].offline&&!r.cache&&n.Store&&(n.folders[t].offline=!1,n.folders[t].userObject.fixFiles&&n.folders[t].userObject.fixFiles(),n.Store.refreshDriveUI())},c=function(e,n){var t=e.folders[n];t&&(t.leave(),delete e.folders[n])},u=function(t,r,o,a){if(!t.folders[r]||!t.folders[r].deleting){if(t.user.userObject.readOnly){return c(t,r),s(t,r,{proxy:{deprecated:!0}},(function(){})),void t.Store.refreshDriveUI()}if(o&&t.unpinPads([o],(function(){})),a&&"PASSWORD_CHANGE"!==a){let o=n.find(t,["user","proxy",e.SHARED_FOLDERS]),a=o[r]&&o[r].lastTitle;return a&&((e,n,t)=>{var r=e.store.mailbox;if(r){var o,a=e.cfg.teamId;o=a?e.store.modules.team.getTeamsData()[a]:e.Store.getMetadata(null,null,(()=>{})).user,r.sendTo("SF_DELETED",{sfId:n,team:a,title:t},{curvePublic:o.curvePublic,channel:o.notifications},(e=>{console.error(e)}))}})(t,r,a),delete o[r],void(t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI())}t.user.userObject.deprecateSharedFolder(r,a),c(t,r),t.Store&&t.Store.refreshDriveUI&&t.Store.refreshDriveUI()}},f=function(e,n){c(e,n),s(e,n,{proxy:{restricted:!0,root:{},filesData:{}}},(function(){})),e.Store.refreshDriveUI()},l=function(e,n){return Array.isArray(n)&&-1!==n.indexOf(e.edPublic)},d=function(e){var n=[e.user.userObject],t=Object.keys(e.folders).map((function(n){return e.folders[n].userObject}));return Array.prototype.push.apply(n,t),n},h=function(e,n){var t=d(e),r=e.user.userObject;return t.some((function(e){if(Object.keys(e.getFileData(n)).length)return r=e,!0})),r},p=function(e,n){var t=Number(n.id);if(t)return e.user.userObject.findFile(t)[0]},v=function(n,t,r){var o=[];return n.user.userObject.findChannels([t],!0).forEach((function(t){var a=n.user.proxy[e.SHARED_FOLDERS][t];a&&!r&&(a=JSON.parse(JSON.stringify(a))),a||(a=n.user.userObject.getFileData(t,r)),o.push({id:t,data:a,userObject:n.user.userObject})})),Object.keys(n.folders).forEach((function(e){n.folders[e].userObject.findChannels([t]).forEach((function(t){o.push({id:t,fId:e,data:n.folders[e].userObject.getFileData(t,r),userObject:n.folders[e].userObject})}))})),o},y=function(e,n){var t=[],r=e.user.userObject.getIdFromHref(n);return r&&t.push({data:e.user.userObject.getFileData(r),userObject:e.user.userObject}),Object.keys(e.folders).forEach((function(r){var o=e.folders[r].userObject.getIdFromHref(n);o&&t.push({fId:r,data:e.folders[r].userObject.getFileData(o),userObject:e.folders[r].userObject})})),t},m=function(e,n){var t=[],r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);let i;if(a){i=e.findFile(n);let t=(o[a]||[])[0];if(!t)return;i.forEach((function(e){Array.prototype.unshift.apply(e,t)}))}else{let t=[n],a=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(t,a),o=e.findFiles(t),i=o[n]}Array.prototype.push.apply(t,i)})),t},g=function(e,n){var t={},r=d(e);let o={};return r.forEach((function(e){var a=Number(e.id);if(!e.id){let e=r.map((e=>+e.id)).filter(Boolean);Array.prototype.push.apply(n,e)}var i=e.findFiles(n);if(e.id||(o=i),a){let e=(o[a]||[])[0];if(!e)return;Object.keys(i).forEach((n=>{i[n].forEach((n=>{Array.prototype.unshift.apply(n,e)}))}))}Object.keys(i).forEach((e=>{t[e]||=[],Array.prototype.push.apply(t[e],i[e])}))})),t},E=function(e,t,r){if(r)return e.user.userObject.findChannels(t);var o=[];return d(e).forEach((function(e){var n=e.findChannels(t);Array.prototype.push.apply(o,n)})),o=n.deduplicateString(o)},b=function(e,n,t){var r=d(e),o={};return r.some((function(e){if((o=e.getFileData(n,t))&&Object.keys(o).length)return!0})),o},O=function(t,r){var o;if(t.isHistoryMode&&!t.folders[r])o=!0;else if(!t.folders[r])return{};var a=o?{}:t.folders[r].proxy;Object.keys(a.metadata||{}).length>1&&(a.metadata={title:a.metadata.title});var i=n.clone(a.metadata||{});for(var s in t.user.proxy[e.SHARED_FOLDERS][r]||{})if(void 0!==t.user.proxy[e.SHARED_FOLDERS][r][s]){var c=n.clone(t.user.proxy[e.SHARED_FOLDERS][r][s]);if("href"===s&&-1===c.indexOf("#"))try{c=t.user.userObject.cryptor.decrypt(c)}catch(e){}"href"===s&&-1===c.indexOf("#")&&(c=void 0),i[s]=c}return i},A=function(e,n){var t,r={id:null,userObject:e.user.userObject,path:n};if(!Array.isArray(n)||n.length<=1)return r;for(var o=e.user.userObject,a=2;a{o=n.Messages,e.setCustomize(n)},create:function(n,t,r){var o={pinPads:t.pin,unpinPads:t.unpin,onSync:t.onSync,Store:t.Store,store:t.store,removeOwnedChannel:t.removeOwnedChannel,loadSharedFolder:t.loadSharedFolder,cfg:r,edPublic:t.edPublic,settings:t.settings,user:{proxy:n},folders:{}};r.removeProxy=function(e){c(o,e)},o.user.userObject=e.init(n,r);var a=function(e){return function(){return[].unshift.call(arguments,o),e.apply(null,arguments)}};return{addProxy:a(s),removeProxy:a(c),deprecateProxy:a(u),restrictedProxy:a(f),addSharedFolder:a(N),addPin:function(e,n){o.pinPads=e,o.unpinPads=n},removePin:function(){delete o.pinPads,delete o.unpinPads},command:a(P),getPadAttribute:a(M),setPadAttribute:a(k),getTagsList:a(F),getSecureFilesList:a(L),getSharedFolderData:a(O),getChannelsList:a(j),addPad:a(K),delete:a(I),deleteOwned:a(C),findChannel:a(v),findHref:a(y),findFile:a(m),getEditHash:a(S),user:o.user,folders:o.folders}},createInner:function(n,t,r,o){var a={cfg:o,sframeChan:t,edPublic:r,user:{proxy:n,userObject:e.init(n,o)},folders:{}},i=function(e){return function(){return[].unshift.call(arguments,a),e.apply(null,arguments)}};return{addProxy:i(s),removeProxy:i(c),setHistoryMode:i(le),rename:i(U),move:i(B),emptyTrash:i(V),addFolder:i(Y),addSharedFolder:i(G),addLink:i(J),restoreSharedFolder:i(q),convertFolderToSharedFolder:i(W),delete:i(z),deleteOwned:i(Q),restore:i(Z),setFolderData:i(X),updateStaticAccess:i($),getFileData:i(ne),find:i(re),getTitle:i(oe),isReadOnlyFile:i(ie),isStaticFile:i(ae),getFiles:i(se),search:i(ce),getRecentPads:i(ue),getOwnedPads:i(fe),getTagsList:i(F),findFile:i(m),findFiles:i(g),findChannels:i(ee),getSharedFolderData:i(O),getFolderData:i(de),isInSharedFolder:i(he),getUserObjectPath:i(te),isDuplicateOwned:i(Se),ownedInTrash:i(Te),isValidDrive:i(pe),isFile:i(ve),isFolder:i(ye),isSharedFolder:i(me),isFolderEmpty:i(ge),isPathIn:i(Ee),isSubpath:i(be),isInTrashRoot:i(Oe),comparePath:i(Ae),hasSubfolder:i(we),hasSubSharedFolder:i(De),hasFile:i(_e),user:a.user,folders:a.folders}}}};e.exports&&(e.exports=n(Ue(),Z(),te(),We(),void 0,Ae(),qe()))})()}(Me)),Me.exports}var Qe,Ze,Xe=ze(),$e=n({__proto__:null,default:r(Xe)},[Xe]),en=Ue(),nn=n({__proto__:null,default:r(en)},[en]),tn={exports:{}},rn={exports:{}};function on(){return Ze||(Ze=1,function(e){e.exports&&(e.exports=((e={},n={},t)=>{let r=[];const o=["sheet","doc","presentation"],a=a=>{e=a.AppConfig;const i=(n=a.ApiConfig).onlyOffice&&n.onlyOffice.availableVersions.includes(t.currentVersion);r=e.availablePadTypes.filter((e=>i||!o.includes(e)))};Object.keys(e).length&&a({AppConfig:e,ApiConfig:n});const i={setCustomize:a};return i.__defineGetter__("availableTypes",(function(){return n.appsToDisable?r.filter((e=>!n.appsToDisable.includes(e))):r})),i.__defineGetter__("appsToSelect",(function(){return r.filter((e=>!["drive","teams","file","contacts","convert"].includes(e)))})),i.isAvailable=e=>Array.isArray(i.availableTypes)&&i.availableTypes.includes(e),i})(void 0,void 0,(Qe||(Qe=1,function(e){e.exports&&(e.exports={currentVersionNumber:8,currentVersion:"v8"})}(rn)),rn.exports)))}(tn)),tn.exports}var an,sn,cn=on(),un=n({__proto__:null,default:r(cn)},[cn]),fn={exports:{}},ln={exports:{}};function dn(){return an||(an=1,function(e){(()=>{const n=(e,n,t={},r)=>{const o=function(){if(Object.keys(t).length){var e,n=new URL(t.httpUnsafeOrigin);try{return(e=new URL(t.websocketPath,t.httpUnsafeOrigin)).protocol=n.protocol,e.origin}catch(e){return console.error(e),t.httpUnsafeOrigin}}};var a=o();var i=e=>JSON.parse(JSON.stringify(e)),s=function(e,t,r){var o=n.once(n.mkAsync(r));fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then((e=>{e.ok?e.text().then((e=>{o(void 0,n.tryParse(e))})):e.json().then().then((n=>{o(e.status,n)}))})).catch((e=>{o(e)}))},c=function(t,o,c){var u=i(o);u.publicKey=n.encodeBase64(t.publicKey),u.nonce=n.encodeBase64(r.randomBytes(24));var f,l,d=new URL("/api/auth/",a);e((function(e){s(d,u,e(((n,t)=>n?(e.abort(),console.error(n),t&&console.error(t),void c(n)):t.date&&t.txid?(f=t.txid,void(l=t.date)):(e.abort(),void c("REQUEST_REJECTED")))))})).nThen((function(e){var o=i(u);o.txid=f,o.date=l;var a=n.decodeUTF8(JSON.stringify(o)),h=r.sign.detached(a,t.secretKey),p=n.encodeBase64(h);s(d,{sig:p,txid:f},e(((n,t)=>{if(n)return e.abort(),console.error(n),t&&console.error(t),void c("RESPONSE_REJECTED",t);c(void 0,t)})))}))};return c.setCustomize=e=>{t=e.ApiConfig,a=o()},c};e.exports&&(e.exports=n(qe(),Z(),void 0,N()))})()}(ln)),ln.exports}function hn(){return sn||(sn=1,function(e){e.exports&&(e.exports=((e,n={},t,r)=>{var o={setCustomize:e=>{n=e.ApiConfig,t.setCustomize(e)}};o.join=e.uint8ArrayJoin,o.seed=function(){return r.hash(e.decodeUTF8("pewpewpew"))},o.genkeys=function(e){if(!(e instanceof Uint8Array))throw new Error("INVALID_SEED_FORMAT");if(!e||"number"!=typeof e.length||e.length<64)throw new Error("INVALID_SEED_LENGTH");var n=e.subarray(0,r.sign.seedLength),t=e.subarray(r.sign.seedLength,r.sign.seedLength+r.secretbox.keyLength);return{sign:r.sign.keyPair.fromSeed(n),symmetric:t}},o.keysToRPCFormat=function(n){try{var t=n.sign;return{edPrivate:e.encodeBase64(t.secretKey),edPublic:e.encodeBase64(t.publicKey)}}catch(e){return void console.error(e)}},o.encrypt=function(n,t,a){var i=e.decodeUTF8(t),s=r.randomBytes(r.secretbox.nonceLength);return o.join([[0],s,r.secretbox(i,s,a.symmetric)])},o.decrypt=function(n,t){var o=n.subarray(1,1+r.secretbox.nonceLength),a=n.subarray(1+r.secretbox.nonceLength),i=r.secretbox.open(a,o,t.symmetric);try{return JSON.parse(e.encodeUTF8(i))}catch(e){return void console.error(e)}},o.sign=function(e,n){return r.sign.detached(r.hash(e),n.sign.secretKey)},o.serialize=function(n,t){var r=o.encrypt(0,n,t),a=o.sign(r,t);return{publicKey:e.encodeBase64(t.sign.publicKey),signature:e.encodeBase64(a),ciphertext:e.encodeBase64(r)}},o.proveAncestor=function(n){var t=e.find(n,["sign","publicKey"]),o=e.find(n,["sign","secretKey"]);try{var a=r.sign.detached(t,o);return JSON.stringify([t,a].map(e.encodeBase64))}catch(e){return void console.error(e)}};var a=function(n){return e.encodeBase64(n).replace(/\//g,"-")};o.getBlockUrl=function(e){var t=a(e.sign.publicKey);return(n.fileHost||n.httpUnsafeOrigin||window.location.origin)+"/block/"+t.slice(0,2)+"/"+t},o.getBlockHash=function(e){return o.getBlockUrl(e)+"#"+a(e.symmetric)};var i=function(n){try{return e.decodeBase64(n.replace(/\-/g,"/"))}catch(e){return void console.error(e)}};return o.parseBlockHash=function(e){if("string"==typeof e){var n=e.split("#");if(2===n.length)try{return{href:n[0],keys:{symmetric:i(n[1])}}}catch(e){return void console.error(e)}}},o.checkRights=function(n,r){const o=e.mkAsync(r),{blockKeys:a,auth:i}=n;var s="MFA_CHECK";i&&i.type&&(s=`${i.type.toUpperCase()}_`+s),t(a.sign,{command:s,auth:i&&i.data},o)},o.writeLoginBlock=function(e,n){const{content:r,blockKeys:a,oldBlockKeys:i,auth:s,pw:c,session:u,token:f,userData:l}=e;var d="WRITE_BLOCK";s&&s.type&&(d=`${s.type.toUpperCase()}_`+d);var h=o.serialize(JSON.stringify(r),a);h.auth=s&&s.data,h.hasPassword=c,h.registrationProof=i&&o.proveAncestor(i),f&&(h.inviteToken=f),l&&(h.userData=l),t(a.sign,{command:d,content:h,session:u},n)},o.removeLoginBlock=function(e,n){const{reason:r,blockKeys:o,auth:a,edPublic:i}=e;var s="REMOVE_BLOCK";a&&a.type&&(s=`${a.type.toUpperCase()}_`+s),t(o.sign,{command:s,auth:a&&a.data,edPublic:i,reason:r},n)},o.updateSSOBlock=function(e,n){const{blockKeys:r,oldBlockKeys:a}=e;var i=a&&o.proveAncestor(a);t(r.sign,{command:"SSO_UPDATE_BLOCK",ancestorProof:i},n)},o})(Z(),void 0,dn(),N()))}(fn)),fn.exports}var pn,vn=hn(),yn=n({__proto__:null,default:r(vn)},[vn]),mn={exports:{}},gn={exports:{}};function En(){return pn||(pn=1,function(e){var n;n=function(){var e=function(n){if(Array.isArray(n))return n.map(e);if(n instanceof Object){var t=[],r=[];return Object.keys(n).forEach((function(e){/^(0|[1-9][0-9]*)$/.test(e)?t.push(+e):r.push(e)})),t.sort((function(e,n){return e-n})).concat(r.sort()).reduce((function(t,r){return t[r]=e(n[r]),t}),{})}return n},n=JSON.stringify.bind(JSON);return function(t,r,o){var a=n(t,r,0);if(!a||"{"!==a[0]&&"["!==a[0])return a;var i=JSON.parse(a);return n(e(i),null,o)}},e.exports?e.exports=n():JSON.sortify=n()}(gn)),gn.exports}var bn,On={exports:{}},An={exports:{}};function wn(){return bn||(bn=1,function(e){var n,t,r,o,a,i,s,c;e.exports&&(e.exports=(M(),n=te(),t=Z(),Y(),r=je(),a=(o={}).createData=function(e,r){var o={channel:r||n.createChannelId(),displayName:e["cryptpad.username"],profile:e.profile&&e.profile.view,edPublic:e.edPublic,curvePublic:e.curvePublic,notifications:t.find(e,["mailboxes","notifications","channel"]),avatar:e.profile&&e.profile.avatar,badge:e.profile&&e.profile.badge,uid:e.uid};return!1===r&&delete o.channel,o},i=o.getFriend=function(e,n){if(n){if(n===e.curvePublic){var t=a(e);return delete t.channel,t}return e.friends?e.friends[n]:void 0}},s=o.getFriendList=function(e){return e.friends||(e.friends={}),e.friends},c=function(e,n){Object.keys(e).forEach((function(t){"me"!==t&&n(e[t],t,e)}))},o.getFriendChannelsList=function(e){var n=[];return c(e.friends,(function(e){n.push(e.channel)})),n},o.declineFriendRequest=function(e,n,t){e.mailbox.sendTo("DECLINE_FRIEND_REQUEST",{},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},o.acceptFriendRequest=function(e,n,t){var r=i(e.proxy,n.curvePublic)||{},o=a(e.proxy,r.channel||n.channel);e.mailbox.sendTo("ACCEPT_FRIEND_REQUEST",{user:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){t(e)}))},o.addToFriendList=function(e,n,t){var o=e.proxy,a=s(o),i=n.curvePublic;i!==o.curvePublic?(a[i]=n,r.whenRealtimeSyncs(e.realtime,(function(){t(),e.pinPads([n.channel],(function(e){e.error&&console.error(e.error)}))}))):t("E_MYKEY")},o.updateMyData=function(e,n){var r=a(e.proxy,!1);e.proxy.friends&&(e.proxy.friends.me=t.clone(r),delete e.proxy.friends.me.channel),e.modules.team&&e.modules.team.updateMyData(r);var o=function(n){n&&n.notifications&&(delete n.user,r.channel=n.channel,e.mailbox.sendTo("UPDATE_DATA",r,{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)})))};n?o(i(e.proxy,n)):c(e.proxy.friends||{},o)},o.removeFriend=function(e,n,t){var o=e.proxy,a=o.friends[n];a?a.notifications?e.mailbox.sendTo("UNFRIEND",{curvePublic:o.curvePublic},{channel:a.notifications,curvePublic:a.curvePublic},(function(i){i&&i.error?t(i):(e.messenger.onFriendRemoved(n,a.channel),delete o.friends[n],r.whenRealtimeSyncs(e.realtime,(function(){t(i)})))})):t({error:"EINVAL"}):t({error:"ENOENT"})},o))}(An)),An.exports}var Dn,_n,Tn,Sn={exports:{}},xn={exports:{}},Nn={exports:{}};function In(){return Dn||(Dn=1,function(e){var n,t,r,o,a,i,s,c,u,f,l,d;e.exports&&(e.exports=(n=Z(),t=N(),r=n.uid,o=n.tryParse,a=function(e,r){var o=n.decodeUTF8(JSON.stringify(e));return n.encodeBase64(t.sign.detached(o,r))},i=function(e,n,t){if("function"!=typeof t)throw new Error("expected callback");var o=e.network,a=o.historyKeeper;if("string"==typeof a){var i=r(),s=e.pending[i]=function(e,n){t(e,n)};return s.data=n,s.called=0,o.sendto(a,JSON.stringify([i,n]))}t("NO_HISTORY_KEEPER")},s=[],c=[],u=function(e){var n={network:e,connected:!0,anon:void 0,authenticated:[]};return s.push(e),c.push(n),e.on("message",(function(t,r){r===e.historyKeeper&&function(e,n){"string"!=typeof n&&console.error("received non-string message [%s]",n);var t=o(n);if(t){if(Array.isArray(t)&&!/(FULL_HISTORY|HISTORY_RANGE)/.test(t[0])){var r=t[0];"string"==typeof r&&(function(e,n){return!!e.anon&&"function"==typeof e.anon.pending[n]}(e,r)?function(e,n,t){var r=e.pending[n];"ERROR"===t[0]?r(t[1]):r(void 0,t.slice(1)),delete e.pending[n]}(e.anon,r,t.slice(1)):e.authenticated.some((function(e){var n=e.pending[r];return"function"==typeof n&&("ERROR"!==t[1]?(/\|/.test(t[1])&&e.cookie!==t[1]&&(e.cookie=t[1]),n(void 0,t.slice(2)),delete e.pending[r],!0):"NO_COOKIE"===t[2]?(e.send("COOKIE","",(function(t){if(t)return console.error(t),void n(t);e.resend(r)&&delete e.pending[r]})),!0):(n(t[2]),delete e.pending[r],!0))}))||console.error("UNHANDLED RPC MESSAGE",n))}}else console.error(new Error("could not parse message: %s",n))}(n,t)})),e.on("disconnect",(function(){n.connected=!1,n.anon&&(n.anon.connected=!1),n.authenticated.forEach((function(e){e.connected=!1}))})),e.on("reconnect",(function(){n.anon&&(n.anon.connected=!0),n.authenticated.forEach((function(e){e.connected=!0}))})),n},f=function(e){var n;return s.some((function(t,r){return e===t&&(n=r,!0)})),c[n]?c[n]:u(e)},l=function(e,t){if(!e)throw new Error("expected network context");var o,s=t.publicKeyString;return e.authenticated.some((function(e,n){return e.publicKey===s&&(o=n,!0)})),e.authenticated[o]?e.authenticated[o]:function(e,t){var o={network:e.network,publicKey:t.publicKeyString,timeouts:{},pending:{},cookie:null,connected:!0},s=o.send=function(e,r,s){var c=n.mkAsync(s);if(o.connected||"COOKIE"===e){var u=[e,r];o.cookie&&o.cookie.join?u.unshift(o.cookie.join("|")):u.unshift(o.cookie);var f=a(u,t.signKey);return u.unshift(t.publicKeyString),u.unshift(f),i(o,u,c)}c("DISCONNECTED")};return o.resend=function(e){var n=o.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++,n.data[2]=o.cookie,n.data[0]=a(n.data.slice(2),t.signKey);var i=r();o.pending[i]=n,delete o.pending[e];try{return o.network.sendto(o.network.historyKeeper,JSON.stringify([i,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},s.unauthenticated=function(e,r,a){var s=n.mkAsync(a);if(o.connected){var c=[null,t.publicKeyString,null,e,r];return o.cookie&&o.cookie.join?c[2]=o.cookie.join("|"):c[2]=o.cookie,i(o,c,s)}s("DISCONNECTED")},o.destroy=function(){Object.keys(o.timeouts).forEach((function(e){clearTimeout(e)}));var n=e.authenticated.indexOf(o);-1!==n&&e.authenticated.splice(n,1)},e.authenticated.push(o),o}(e,t)},d=function(e){return e.anon||function(e){var t={network:e.network,timeouts:{},pending:{},connected:!0};return e.anon=t,t.send=function(e,r,o){var a=n.mkAsync(o);if(t.connected)return i(t,[e,r],a);a("DISCONNECTED")},t.resend=function(e){var n=t.pending[e];if(n.called)return console.error("[%s] called too many times",e),!0;n.called++;try{return t.network.sendto(t.network.historyKeeper,JSON.stringify([e,n.data]))}catch(e){console.log("failed to resend"),console.error(e)}},t.destroy=function(){Object.keys(t.timeouts).forEach((function(e){clearTimeout(e)})),e.anon=void 0},t}(e)},{create:function(e,t,r,o){if("function"!=typeof o)throw new Error("expected callback");var a,i=n.mkAsync(o);try{if(64!==(a=n.decodeBase64(t)).length)throw new Error("private key did not match expected length of 64")}catch(e){return void i(e)}try{if(32!==n.decodeBase64(r).length)return void i("expected public key to be 32 uint")}catch(e){return void i(e)}if(e){var s=f(e),c=l(s,{publicKeyString:r,signKey:a});c.send("COOKIE","",(function(e){e?i(e):i(void 0,{send:c.send,destroy:c.destroy})}))}else i("NO_NETWORK")},createAnonymous:function(e,t){var r=n.mkAsync(t);if("function"!=typeof r)throw new Error("expected callback");if(e){var o=d(f(e));r(void 0,{send:o.send,destroy:o.destroy})}else r("NO_NETWORK")}}))}(Nn)),Nn.exports}function Cn(){return _n||(_n=1,function(e){var n,t;e.exports&&(e.exports=(n=Z(),t=In(),{create:function(e,r,o,a){if("function"!=typeof o)throw new Error("Expected callback");var i=n.once(n.mkAsync(o));if(e)if(r){var s=r.edPrivate,c=r.edPublic;s&&c?t.create(e,s,c,(function(e,t){if(e)i(e);else{var r={};r.destroy=t.destroy,r.publicKey=c,r.send=t.send,r.pin=function(e,r){var o=n.once(n.mkAsync(r));Array.isArray(e)?t.send("PIN",e,o):o("[TypeError] pin expects an array")},r.unpin=function(e,r){var o=n.once(n.mkAsync(r));Array.isArray(e)?t.send("UNPIN",e,o):o("[TypeError] pin expects an array")},r.adminRpc=function(e,n){if(e.cmd){var r=[e.cmd,e.data];t.send("ADMIN",r,n)}else setTimeout((function(){n("[TypeError] admin rpc expects a command")}))},r.getServerHash=function(e){t.send("GET_HASH",c,(function(n,t){t&&t[0]?e(n,Array.isArray(t)&&t[0]||void 0):e("NO_HASH_RETURNED")}))},r.reset=function(e,r){var o=n.once(n.mkAsync(r));Array.isArray(e)?t.send("RESET",e,o):o("[TypeError] pin expects an array")},r.getFileListSize=function(e){t.send("GET_TOTAL_SIZE",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0]):e("INVALID_RESPONSE")}))},r.updatePinLimits=function(e){t.send("UPDATE_LIMITS",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.getLimit=function(e){t.send("GET_LIMIT",void 0,(function(n,t){n?e(n):t&&t.length&&"number"==typeof t[0]?e(void 0,t[0],t[1],t[2]):e("INVALID_RESPONSE")}))},r.trimHistory=function(e,r){var o=n.once(n.mkAsync(r));"object"==typeof e&&e.channel&&e.hash?t.send("TRIM_HISTORY",e,(function(e){if(e)return o(e);o()})):o("INVALID_ARGUMENTS")},r.clearOwnedChannel=function(e,n){"string"==typeof e&&32===e.length?t.send("CLEAR_OWNED_CHANNEL",e,(function(e){if(e)return n(e);n()})):n("INVALID_ARGUMENTS")},r.removeOwnedChannel=function(e,n,r){if("string"!=typeof e||-1===[32,48].indexOf(e.length))return console.error("invalid channel to remove",e),void n("INVALID_ARGUMENTS");t.send("REMOVE_OWNED_CHANNEL",{channel:e,reason:r},(function(t,r){t?n(t):r&&r.length&&"OK"===r[0]?(n(),a&&a.clearChannel&&a.clearChannel(e)):n("INVALID_RESPONSE")}))},r.removePins=function(e){t.send("REMOVE_PINS",void 0,(function(n,t){n?e(n):t&&t.length&&"OK"===t[0]?e():e("INVALID_RESPONSE")}))},r.uploadComplete=function(e,n){t.send("UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.ownedUploadComplete=function(e,n){t.send("OWNED_UPLOAD_COMPLETE",e,(function(e,t){if(e)n(e);else{var r=t[0];"string"==typeof r?n(void 0,r):n("INVALID_ID")}}))},r.uploadStatus=function(e,n){"number"==typeof e?t.send("UPLOAD_STATUS",e,(function(e,t){if(e)n(e);else{var r=t[0];"boolean"==typeof r?n(void 0,r):n("INVALID_RESPONSE")}})):setTimeout((function(){n("INVALID_SIZE")}))},r.uploadCancel=function(e,n){t.send("UPLOAD_CANCEL",e,(function(e){e?n(e):n()}))},r.setMetadata=function(e,n){t.send("SET_METADATA",{channel:e.channel,command:e.command,value:e.value},n)},i(e,r)}})):i("INVALID_KEYS")}else i("INVALID_PROXY");else i("INVALID_NETWORK")}}))}(xn)),xn.exports}function Rn(){return Tn||(Tn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u)=>{var f=function(e,n,t){if(!e.done){if(e.cb(n&&n.error,t,n),e.done=!0,!e.hasNetwork){var o=r.find(e,["network","disconnect"]);"function"==typeof o&&o()}if(e.realtime&&e.realtime.stop)try{e.realtime.stop()}catch(e){console.error(e)}var a=r.find(e,["session","realtime","abort"]);"function"==typeof a&&(e.session.realtime.sync(),a())}},l=function(e,r){u((function(n){var o,a;e.hasNetwork||(o=n((function(e,n){e||(r.network=n)})),a=i.getWebsocketURL(),t.connect(a).then((function(e){o(null,e)}),(function(e){o(e)})))})).nThen((function(){e.realtime=n.start(r)}))},d=function(e,n,t,r){Array.isArray(t)&&t.length&&16===t[0].length&&Array.isArray(n.accessKeys)?(e.network.historyKeeper=t[0],u((function(t){n.accessKeys.forEach((function(n){c.create(e.network,n,t((function(e){console.log("done",n),e&&console.error(e)})))}))})).nThen((function(){r()}))):r(!0)},h=function(n,t){var r;return"string"==typeof n?r=o.getSecrets("pad",n,t.password):"object"==typeof n&&(r=n),r.keys||(r.keys=r.key),{websocketURL:i.getWebsocketURL(t.origin),channel:r.channel,validateKey:r.keys.validateKey||void 0,crypto:e.createEncryptor(r.keys),logLevel:0,initialState:t.initialState,Cache:s}},p=function(e){return"object"==typeof e},v=function(e,n){p(e)&&p(n)&&Object.keys(n).forEach((function(t){e[t]=n[t]}))};return{get:function(e,n,t,r){if("function"!=typeof n)throw new Error("Cryptget expects a callback");r=r||function(){};var o=h(e,t=t||{}),a={cb:n,accessKeys:t.accessKeys,hasNetwork:Boolean(t.network)};o.onRejected=function(e,n){d(o,a,e,n)},o.onReady=function(e){var n=a.session=e.realtime;a.network=e.network,r(1),f(a,void 0,n.getUserDoc())},o.onError=function(e){console.warn(e),f(a,e)},o.onChannelError=function(e){console.error(e),f(a,e)},o.onCacheReady=t.onCacheReady;var i=0;o.onMessage=function(){i++,r(Math.min(.99,i/100))},v(o,t),l(a,o)},put:function(e,n,t,r){if("function"!=typeof t)throw new Error("Cryptput expects a callback");var o=h(e,r=r||{}),i={cb:t,accessKeys:r.accessKeys,hasNetwork:Boolean(r.network)};o.onRejected=function(e,n){d(o,i,e,n)},o.onReady=function(e){var r=i.session=e.realtime;i.network=e.network,r.contentUpdate(n);var o=setTimeout((function(){t(new Error("Timeout"))}),15e3);a.whenRealtimeSyncs(r,(function(){clearTimeout(o);var e=r.getAuthDoc();r.abort(),f(i,void 0,e)}))},o.onChannelError=function(e){f(i,e)},v(o,r),l(i,o)}}};e.exports&&(e.exports=n(M(),y(),v(),Z(),te(),je(),j(),fe(),Cn(),qe(),w()))})()}(Sn)),Sn.exports}var Pn,kn={exports:{}},Mn={exports:{}};var Fn,Ln,Hn,jn={exports:{}};function Kn(){return Fn||(Fn=1,function(e){e.exports&&(e.exports=((e,n,t,r,o)=>{var a=function(e){var n=e.store.realtime.getLag().lag||0;return 20*(Math.max(0,n)+300)*(.5+Math.random())},i={},s={},c=function(e,n){var r=e.store.proxy.mutedUsers||{},o=t.find(n,["msg","author"]);return!!o&&Boolean(r[o])},u={};i.FRIEND_REQUEST=function(n,t,r,o){var a=r.msg.content.user||r.msg.content;if(c(n,r))o(!0);else if(u[r.msg.author])o(!0);else{if(u[r.msg.author]={type:t.type,hash:r.hash},e.getFriend(n.store.proxy,r.msg.author)||n.store.proxy.friends_pending[r.msg.author])return delete n.store.proxy.friends_pending[r.msg.author],void e.acceptFriendRequest(n.store,a,(function(t){t&&t.error?o():e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},a,(function(e){if(e)return console.error(e),void o(!0);n.store.messenger&&n.store.messenger.onFriendAdded(a),n.updateMetadata(),o(!0)}))}));o()}},s.FRIEND_REQUEST=function(e,n,t){var r=t.content.user||t.content;u[r.curvePublic]&&delete u[r.curvePublic]};var f={},l={};i.DECLINE_FRIEND_REQUEST=function(e,n,t,r){var o=t.msg.content.user||t.msg.content;o.curvePublic||(o.curvePublic=t.msg.author),setTimeout((function(){r(!0),e.store.proxy.friends_pending[t.msg.author]&&(delete e.store.proxy.friends_pending[t.msg.author],e.updateMetadata(),f[t.msg.author]||n.sendMessage({type:"FRIEND_REQUEST_DECLINED",content:{user:o}},(function(e){f[t.msg.author]={type:n.type,hash:e}})))}),a(e))},i.FRIEND_REQUEST_DECLINED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=l[o];delete l[o],f[o]?r(!0,a):(f[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_DECLINED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;f[r]&&delete f[r]},i.ACCEPT_FRIEND_REQUEST=function(n,t,r,o){var i=r.msg.content.user||r.msg.content;setTimeout((function(){o(!0),n.store.proxy.friends_pending[r.msg.author]&&(delete n.store.proxy.friends_pending[r.msg.author],e.addToFriendList({proxy:n.store.proxy,realtime:n.store.realtime,pinPads:n.pinPads},i,(function(e){e?console.error(e):(n.store.messenger&&n.store.messenger.onFriendAdded(i),n.updateMetadata(),n.store.modules.profile&&n.store.modules.profile.update(),l[r.msg.author]||t.sendMessage({type:"FRIEND_REQUEST_ACCEPTED",content:{user:i}},(function(e){l[r.msg.author]={type:t.type,hash:e}})))})))}),a(n))},i.FRIEND_REQUEST_ACCEPTED=function(e,n,t,r){e.updateMetadata();var o=t.msg.content.user.curvePublic||t.msg.content.user,a=f[o];delete f[o],l[o]?r(!0,a):(l[o]={type:n.type,hash:t.hash},r(!1,a))},s.FRIEND_REQUEST_ACCEPTED=function(e,n,t){var r=t.content.user.curvePublic||t.content.user;l[r]&&delete l[r]},i.CANCEL_FRIEND_REQUEST=function(e,n,t,r){var o=u[t.msg.author];o?r(!0,o):r(!0)},i.UNFRIEND=function(n,t,r,o){var a=r.msg.author,i=e.getFriend(n.store.proxy,a);i?(delete n.store.proxy.friends[a],delete n.store.proxy.friends_pending[a],n.store.messenger&&n.store.messenger.onFriendRemoved(a,i.channel),n.updateMetadata(),o(!0)):o(!0)},i.UPDATE_DATA=function(e,n,t,r){var o=t.msg,a=o.author,i=e.store.proxy.friends&&e.store.proxy.friends[a];i&&"object"==typeof o.content?(Object.keys(o.content).forEach((function(e){i[e]=o.content[e]})),e.store.messenger&&e.store.messenger.onFriendUpdate(a),e.updateMetadata(),r(!0)):r(!0)};var d=function(e,n){let t=e.store.data.blockHash,a=o.parseBlockHash(t).keys.symmetric;return r.encrypt(n,a)},h={};i.SHARE_PAD=function(e,t,r,o){var a=r.msg,i=r.hash,s=a.content;if(c(e,r))o(!0);else{var u,f=s.isStatic?s.href:n.hrefToHexChannelId(s.href,s.password),l=n.parsePadUrl(s.href),p=l.hashData&&l.hashData.mode||"n/a",v=h[f];if(v){if("edit"===v.mode&&"view"===p)return void o(!0);u=v.data}s.password&&(s.password=d(e,s.password)),h[f]={mode:p,data:{type:t.type,hash:i}},o(!1,u)}},s.SHARE_PAD=function(e,t,r,o){var a=r.content,i=n.hrefToHexChannelId(a.href,a.password),s=h[i];s&&s.data&&s.data.hash===o&&delete h[i]};var p=!1;i.SUPPORT_MESSAGE=function(e,n,t,r){p?r(!0):(p=!0,r())},s.SUPPORT_MESSAGE=function(){p=!1},i.REQUEST_PAD_ACCESS=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{var a=o.channel,i=e.store.manager.findChannel(a);if(i.length){var s,u,f=e.store.proxy.edPublic;i.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(f)&&e.data.href)return u=e.data.href,s=e.data.filename||e.data.title,!0}))?(o.title=s,o.href=u,r(!1)):r(!0)}else r(!0)}},i.GIVE_PAD_ACCESS=function(e,n,t,r){var o,a=t.msg.content,i=a.channel;e.store.manager.findChannel(i,!0).forEach((function(e){e.data&&!e.data.href&&(o||(o=e.data.filename||e.data.title),e.userObject.setHref(i,null,a.href))})),a.title=o||a.title,r(!1)},i.ADD_TO_ACCESS_LIST=function(e,n,t,r){var o=t.msg.content.channel;e.Store.getAllStores().forEach((function(n){var t=n.manager.findChannel(o);if(t.length){var r=t[0].data,a=t[0].id,i=n.id;e.Store.loadSharedFolder(i,a,r,(function(){}),!1)}})),r(!0)};var v={};i.ADD_OWNER=function(e,n,t,r){var o=t.msg.content;if(c(e,t))r(!0);else{if(!(o.teamChannel||o.href&&o.title&&o.channel))return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;o.password&&(o.pw=o.password,o.password=d(e,o.password)),v[a]?r(!0):(v[a]={type:n.type,hash:t.hash},r(!1))}},s.ADD_OWNER=function(e,n,t){var r=t.content.channel||t.content.teamChannel;v[r]&&delete v[r]},i.RM_OWNER=function(e,n,t,r){var o=t.msg.content;if(!o.channel&&!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel||o.teamChannel;if(o.teamChannel){var i=e.store.proxy.teams||{};Object.keys(i).some((function(e){if(i[e].channel===a)return i[e].owner=!1,!0}))}v[a]&&o.pending?r(!1,v[a]):r(!1)};var y={};i.INVITE_TO_TEAM=function(e,n,r,o){var a=r.msg.content;if(c(e,r))o(!0);else{if(!a.team)return console.log("Remove invalid notification"),void o(!0);var i=y[a.team.channel];if(i)return console.log("removing old invitation"),o(!1,i),void(y[a.team.channel]={type:n.type,hash:r.hash});var s=t.find(e,["store","proxy","teams"])||{};Object.keys(s).some((function(e){return s[e].channel===a.team.channel}))?o(!0):(y[a.team.channel]={type:n.type,hash:r.hash},o(!1))}},s.INVITE_TO_TEAM=function(e,n,r){var o=t.find(r,["content","team","channel"]);delete y[o]},i.KICKED_FROM_TEAM=function(e,n,t,r){var o=t.msg.content;if(!o.teamChannel)return console.log("Remove invalid notification"),void r(!0);y[o.teamChannel]&&o.pending?r(!0,y[o.teamChannel]):r(!1)},i.INVITE_TO_TEAM_ANSWER=function(e,n,r,o){var a=r.msg,i=a.content;if(!i.teamChannel)return console.log("Remove invalid notification"),void o(!0);var s,c,u=t.find(e,["store","proxy","teams"])||{};if(Object.keys(u).some((function(e){var n=u[e];if(n.channel===i.teamChannel)return s=e,c=n,!0})),s){if(i.team=c,!i.answer)try{e.store.modules.team.removeFromTeam(s,a.author,!0)}catch(e){console.error(e)}var f=i.user||i;n.sendMessage({type:"INVITE_TO_TEAM_ANSWERED",content:{user:f,team:c,answer:i.answer}},(function(){})),o(!0)}else o(!0)},i.TEAM_EDIT_RIGHTS=function(e,n,r,o){var a=r.msg.content;if(!a.teamData)return console.log("Remove invalid notification"),void o(!0);var i,s=t.find(e,["store","proxy","teams"])||{};if(Object.keys(s).some((function(e){if(s[e].channel===a.teamData.channel)return i=e,!0})),i)try{e.store.modules.team.changeMyRights(i,a.state,a.teamData,(function(e){e||console.error("Can't update team rights"),o(!0)}))}catch(e){console.error(e)}else o(!0)},i.OWNED_PAD_REMOVED=function(e,n,t,r){var o=t.msg.content;if(!o.channel)return console.log("Remove invalid notification"),void r(!0);var a=o.channel;e.store.manager.findChannel(a).forEach((function(n){var t=e.store.manager.findFile(n.id);e.store.manager.delete({paths:t},(function(){e.updateDrive()}))})),r(!0)},i.MOVE_TODO=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)},i.SAFE_LINKS_DEFAULT=function(e,n,t,r){var o=e.store.proxy.curvePublic;t.msg.author===o?r():r(!0)};var m={};i.FORM_RESPONSE=function(e,n,t,r){var o,a,i=t.msg,s=t.hash,c=i.content,u=c.channel;if(u)if(function(e,n){return(e.store.proxy.mutedChannels||[]).includes(n)}(e,u))r(!0);else if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(u).some((function(e){if(e.data&&(!a||e.data.href))return a=e.data.href||e.data.roHref,o=e.data.filename||e.data.title,!!e.data.href||void 0}))})),a){c.href=a,c.title=o;var f=m[u],l=f?f.data:void 0;m[u]={data:{type:n.type,hash:s}},r(!1,l)}else r(!0);else r(!0)},s.FORM_RESPONSE=function(e,n,t,r){var o=t.content.channel,a=m[o];a&&a.data&&a.data.hash===r&&delete m[o]};var g={};i.COMMENT_REPLY=function(e,n,r,o){var a=r.msg,i=r.hash,s=a.content;if(t.find(e.store.proxy,["settings","pad","disableNotif"]))o(!0);else{var c,u,f=s.channel;if(f)if(e.Store.getAllStores().some((function(e){return e.manager.findChannel(f).some((function(e){if(e.data&&(!u||e.data.href))return u=e.data.href||e.data.roHref,c=e.data.filename||e.data.title,!!e.data.href||void 0}))})),u){s.href=u,s.title=c;var l=g[f],d=l?l.data:void 0;g[f]={data:{type:n.type,hash:i}},o(!1,d)}else o(!0);else o(!0)}},s.COMMENT_REPLY=function(e,n,t,r){var o=t.content.channel,a=g[o];a&&a.data&&a.data.hash===r&&delete g[o]};var E,b,O={};i.MENTION=function(e,n,t,r){var o=t.msg,a=t.hash,i=o.content;if(c(e,t))r(!0);else{var s=i.channel;if(s){var u,f;e.Store.getAllStores().some((function(e){return e.manager.findChannel(s).some((function(e){if(e.data&&(!f||e.data.href))return f=e.data.href||e.data.roHref,u=e.data.filename||e.data.title,!!e.data.href||void 0}))})),i.href=f,i.title=u;var l=O[s],d=l?l.data:void 0;O[s]={data:{type:n.type,hash:a}},r(!1,d)}else r(!0)}},s.MENTION=function(e,n,t,r){var o=t.content.channel,a=O[o];a&&a.data&&a.data.hash===r&&delete O[o]},i.BROADCAST_MAINTENANCE=function(e,n,t,r){var o=t.msg.uid;e.Store.onMaintenanceUpdate(o),r(!0)},i.BROADCAST_SURVEY=function(e,n,t,r){var o=t.msg,a=o.content,i=o.uid,s=E;E={type:n.type,hash:t.hash},e.Store.onSurveyUpdate(i),r(!a.url,s)},i.BROADCAST_CUSTOM=function(e,n,t,r){var o=t.msg.uid,a=b;b={uid:o,type:n.type,hash:t.hash},r(!1,a)},i.BROADCAST_DELETE=function(e,n,t,r){var o=t.msg.content.uid;if(b&&b.uid===o)return r(!0,b),void(b=void 0);r(!0)};var A,w,D={};return i.SF_DELETED=function(e,n,t,r){var o=t.msg.content,a=o.team,i=o.sfId;if(D[i])r(!0);else if(D[i]=1,a){var s=e.store.proxy.teams[a];o.teamName=s.metadata&&s.metadata.name,r(!1)}else r(!1)},s.SF_DELETED=function(e,n,t){var r=t.content.sfId;delete D[r]},i.NEW_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);a.isAdmin&&i.addUserTicket(a,o),i.addAdminTicket(a,o)},i.NOTIF_TICKET=function(e,n,r,o){var a=r.msg.content;a.time||(a.time=r.time);var i=t.find(e,["store","modules","support"]);if(a.isAdmin)return t.find(e,["store","proxy","support",a.channel])?(i.updateUserTicket(a),A?void o(!1,A):(A={channel:a.channel,type:n.type,hash:r.hash},void o(!1))):void o(!0);i.checkAdminTicket(a,(s=>{s?(i.updateAdminTicket(a),t.find(e.store.proxy,["settings","general","disableSupportNotif"])?o(!0):w?o(!1,w):(w={channel:a.channel,type:n.type,hash:r.hash},o(!1))):o(!0)}))},s.NOTIF_TICKET=function(e,n,t){var r=t.content.channel;A&&A.channel===r&&(A=void 0),w&&w.channel===r&&(w=void 0)},i.ADD_MODERATOR=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,o)},i.MODERATOR_NEW_KEY=function(e,n,r,o){var a=r.msg.content;t.find(e,["store","modules","support"]).updateAdminKey(a,(function(){o(!0)}))},{add:function(e,n,r,o){if(r.msg){var a=t.find(e,["store","proxy","curvePublic"]),s=t.find(r,["msg","content","user","curvePublic"])||t.find(r,["msg","content","curvePublic"]);if(s&&r.msg.author!==s&&r.msg.author!==a)return console.error("blocked"),void o(null,null,!0);var c=r.msg.type;if(i[c])try{i[c](e,n,r,o)}catch(e){console.error(e),o()}else o()}else o(null,null,!0)},remove:function(e,n,t,r){if(t){var o=t.type;if(s[o])try{s[o](e,n,t,r)}catch(e){console.error(e)}}}}})(wn(),te(),Z(),M(),hn()))}(jn)),jn.exports}function Un(){return Ln||(Ln=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c)=>{var u={setCustomize:n=>{e=n.Broadcast}},f=["notifications","supportteam","broadcast"],l=[],d="000000000000000000000000000000000",h=function(e,n,t,r,o){e.emit("MESSAGE",{type:n,content:t},r?[r]:e.clients,o)},p=function(e,n,t,r){e.emit("VIEWED",{type:n,hash:t},r||e.clients)},v=function(e){var n=e.store&&e.store.proxy;if(n.curvePrivate&&n.curvePublic)return{curvePrivate:n.curvePrivate,curvePublic:n.curvePublic}},y=u.sendTo=function(e,t,r,a,i){a=a||{};var s=i||function(e){e&&e.error&&console.error(e.error)};if(c.Mailbox){var u=n.find(e,["store","anon_rpc"]);if(u){var f={encrypt:function(e){return e}},l=d,h={uid:n.uid(),type:t,content:r};if(!/^BROADCAST/.test(t)){var p=v(e);if(!p)return void s({error:"missing asymmetric encryption keys"});if(!a||!a.channel||!a.curvePublic)return void s({error:"no notification channel"});if(l=a.channel,f=c.Mailbox.createEncryptor(p),"object"==typeof r&&!r.user){var y=o.createData(e.store.proxy,!1);r.user=y}h={type:t,content:r}}var m=JSON.stringify(h),g=f.encrypt(m,a.curvePublic);if(a.viewed){var E=n.find(e,["store","proxy","teams",a.viewed]);if(E){var b=g.slice(0,64),O=n.find(E,["keys","mailbox","viewed"]);Array.isArray(O)&&O.push(b)}}u.send("WRITE_PRIVATE_MESSAGE",[l,g],(function(e){s(e?{error:e}:{hash:g.slice(0,64)})}))}else s({error:"anonymous rpc session not ready"})}else s({error:"chainpad-crypto is outdated and doesn't support mailboxes."})};u.sendToAnon=function(e,t,r,o,a){var i=c.Nacl,s=i.randomBytes(32),u=i.box.keyPair.fromSecretKey(new Uint8Array(s)),f=n.encodeBase64(u.secretKey),l=n.encodeBase64(u.publicKey);y({store:{anon_rpc:e,proxy:{curvePrivate:f,curvePublic:l}}},t,r,o,a)};var m=function(e,t,o,a){var s=t.type,c=t.hash;if(/^REMINDER\|/.test(c)){a(),delete e.boxes.reminders.content[c],p(e,s,c,e.clients.filter((function(e){return e!==o})));var u=c.slice(9).split("-")[0],f=n.find(e,["store","proxy","hideReminders",u]);if(!f){var l=e.store.proxy.hideReminders=e.store.proxy.hideReminders||{};f=l[u]=l[u]||[]}var d=c.split("-")[1];d&&!f.includes(d)&&f.push(Number(d))}else{var h=e.boxes[s];if(h){var v,y,m=h.data||{},g=h.history.indexOf(c);-1!==g&&(0===g?(m.lastKnownHash=c,h.history.shift()):-1===m.viewed.indexOf(c)&&m.viewed.push(c));var E=[];h.history.some((function(e,n){if(-1===m.viewed.indexOf(e))return!0;v=n+1,E.push(e),y=e})),m.viewed=m.viewed.filter((function(e){return-1===E.indexOf(e)})),v&&(h.history=h.history.slice(v),m.lastKnownHash=y),Object.keys(h.content).forEach((function(n){-1!==h.history.indexOf(n)&&-1===m.viewed.indexOf(n)||(i.remove(e,h,h.content[n],n),delete h.content[n])})),r.whenRealtimeSyncs(e.store.realtime,(function(){a(),p(e,s,c,e.clients.filter((function(e){return e!==o})))}))}else a({error:"NOT_LOADED"})}},g=function(e,n,t,r,u){u=u||{};var f=e.boxes[n]={channel:t.channel,type:n,queue:[],history:[],content:{},sendMessage:function(n){if("object"==typeof n&&!n.user){var t=o.createData(e.store.proxy,!1);n.user=t}try{n=JSON.stringify(n)}catch(e){console.error(e)}f.queue.push(n)},data:t};if(c.Mailbox){var l=t.keys||v(e);if(l||t.decrypted){var d=t.decrypted?{encrypt:function(e){return e},decrypt:function(e){return e}}:c.Mailbox.createEncryptor(l);f.encryptor=d;var y,g={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:d,owners:"broadcast"===n?[]:u.owners||[e.store.proxy.edPublic],lastKnownHash:t.lastKnownHash};g.onConnectionChange=function(){},g.onConnect=function(t,r){f.sendMessage=function(t,o){var a;o=o||function(){};try{a=JSON.stringify(t)}catch(e){console.error(e)}r(a,(function(r,a){r?console.error(r):(f.history.push(a),t.ctime=+new Date,f.content[a]=t,h(e,n,{msg:t,hash:a}),o(a))}),l.curvePublic)},f.queue.forEach((function(e){f.sendMessage(e)})),f.queue=[]},f.onMessage=g.onMessage=function(r,o,s,c,l,d,p){if(l!==t.lastKnownHash&&l!==y){var v=p&&p.time;y=l;try{r=JSON.parse(r)}catch(e){console.error(e)}if(d&&(r.author=d),f.history.push(l),function(e,n){return-1===(n.viewed||[]).indexOf(e)&&e!==n.lastKnownHash}(l,t)){var g={msg:r,hash:l,time:v},E=f.ready;i.add(e,f,g,(function(t,o,i){o&&m(e,o,"",(function(){console.log("Notification handled automatically")})),i||t?m(e,{type:n,hash:l},"",(function(){console.log("Notification handled automatically")})):(r.ctime=v||0,f.content[l]=r,u.dump||h(e,n,g,null,(function(e){e&&e.msg&&E&&a.system(void 0,e.msg)})))}))}else if(0===Object.keys(f.content).length){t.lastKnownHash=l,f.history=[];var b=t.viewed.indexOf(l);-1!==b&&t.viewed.splice(b,1)}}},g.onReady=function(){var o=[];t.viewed.forEach((function(e,n){-1===f.history.indexOf(e)&&o.push(n)}));for(var a=o.length-1;a>=0;a--)t.viewed.splice(o[a],1);var s=function(t){i.remove(e,f,f.content[t],t),delete f.content[t],p(e,n,t)};e.store.proxy.on("change",["mailboxes",n],(function(e,n,t){var r;"lastKnownHash"===t[2]&&(f.history.some((function(e,t){if(r=t+1,s(e),e===n)return!0})),f.history=f.history.slice(r));"viewed"===t[2]&&s(n)})),f.ready=!0,r(f.content)},f.cpNf=s.start(g)}else console.error("missing asymmetric encryption keys")}else console.error("chainpad-crypto is outdated and doesn't support mailboxes.")};return u.init=function(r,o,s){var c={},u=r.store,v=u.proxy.mailboxes=u.proxy.mailboxes||{},E={Store:r.Store,store:u,pinPads:r.pinPads,updateMetadata:r.updateMetadata,updateDrive:r.updateDrive,mailboxes:v,emit:s,clients:[],boxes:{},req:{},loggedIn:u.loggedIn&&u.proxy.edPublic};return function(n,r){!r.notifications&&n.loggedIn&&(r.notifications={channel:t.createChannelId(),lastKnownHash:"",viewed:[]},n.pinPads([r.notifications.channel],(function(e){e.error&&console.error(e)}))),r.support&&delete r.support,r.broadcast||(r.broadcast={channel:d,lastKnownHash:e.lastBroadcastHash,decrypted:!0,viewed:[]})}(E,v),E.loggedIn&&function(e){var t=e.store.network;t.on("message",(function(r,o){if(o===t.historyKeeper){var a=JSON.parse(r);if(/HISTORY_RANGE/.test(a[0])){var i=a[1],s=e.req[i];if(s){var c=a[0],u=a[2],f=s.box;if("HISTORY_RANGE"===c){if(!Array.isArray(u))return;var l;if("broadcast"===s.box.type)l=n.tryParse(u[4]);else try{var d=f.encryptor.decrypt(u[4]);(l=JSON.parse(d.content)).author=d.author}catch(e){console.log(e)}var h=u[4].slice(0,64);e.emit("HISTORY",{txid:i,time:u[5],message:l,hash:h},[s.cId])}else"HISTORY_RANGE_END"===c&&(e.emit("HISTORY",{txid:i,complete:!0},[s.cId]),delete e.req[i])}}}}))}(E),E.boxes.reminders={content:{}},Object.keys(v).forEach((function(e){if(-1!==f.indexOf(e)){var n=v[e];-1===l.indexOf(e)?g(E,e,n,(function(){})):g(E,e,n,o((function(){})))}})),E.loggedIn&&Object.keys(u.proxy.teams||{}).forEach((function(e){var t=u.proxy.teams[e];if(t){var r=t.keys.mailbox||{};if(r.channel){var o={owners:[n.find(t,["keys","drive","edPublic"])]};g(E,"team-"+e,r,(function(){}),o)}}})),c.post=function(e,n,t){var r=E.boxes[e];r&&r.sendMessage({type:n,content:t,sender:u.proxy.curvePublic})},c.hideMessage=function(e,n){p(E,e,n.hash,E.clients)},c.showMessage=function(e,n,t,r){"reminders"===e&&n&&(E.boxes.reminders.content[n.hash]=n.msg,E.clients.length||(E.boxes.reminders.content[n.hash].requiresNotif=!0),p(E,e,n.hash,E.clients)),h(E,e,n,t,(function(e){a.system(void 0,e.msg),r&&r()}))},c.open=function(e,n,t,r,o){(-1!==f.indexOf(e)||r)&&g(E,e,n,t,o)},c.close=function(e,n){!function(e,n,t){t=t||function(){};var r=e.boxes[n];r?r.cpNf&&"function"==typeof r.cpNf.stop?(r.cpNf.stop(),Object.keys(r.content).forEach((function(t){i.remove(e,r,r.content[t],t),p(e,n,t,e.clients)})),delete e.boxes[n]):t("EINVAL"):t()}(E,e,n)},c.dismiss=function(e,n){m(E,e,"",n)},c.sendTo=function(e,n,t,r){E.loggedIn?y(E,e,n,t,r):r({error:"NOT_LOGGED_IN"})},c.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);e.clients.splice(t,1)}(E,e)},c.execCommand=function(e,n,t){var r=n.cmd,o=n.data;"SUBSCRIBE"!==r?"DISMISS"!==r?"SENDTO"!==r?"LOAD_HISTORY"!==r||function(e,n,t,r){var o=e.boxes[t.type];if(o){var a=["GET_HISTORY_RANGE",o.channel,{from:t.lastKnownHash,count:t.count,txid:t.txid}];"broadcast"===t.type&&(a=["GET_HISTORY_RANGE",o.channel,{to:t.lastKnownHash,txid:t.txid}]),e.req[t.txid]={cId:n,box:o};var i=e.store.network;i.sendto(i.historyKeeper,JSON.stringify(a)).then((function(){}),(function(e){console.error(e)}))}else r({error:"ENOENT"})}(E,e,o,t):y(E,o.type,o.msg,o.user,t):m(E,o,e,t):function(e,n,t,r){Object.keys(e.boxes).forEach((function(n){Object.keys(e.boxes[n].content).forEach((function(r){var o={msg:e.boxes[n].content[r],hash:r};h(e,n,o,t,(function(e){e.error||o.msg&&o.msg.requiresNotif&&(a.system(void 0,e.msg),delete o.msg.requiresNotif)}))}))})),-1===e.clients.indexOf(t)&&e.clients.push(t),r()}(E,0,e,t)},c},u};e.exports&&(e.exports=n(void 0,Z(),te(),je(),wn(),(Pn||(Pn=1,function(e){(()=>{const n=(e={})=>{let n=globalThis;var t={};e.requireConf=e.requireConf||{},t.setCustomize=n=>{e=n.ApiConfig};var r=n.location&&n.location.pathname.slice(1,-1),o=-1!==["code","slide","pad","kanban","whiteboard","diagram","sheet","poll","teams","form","doc","presentation"].indexOf(r)?"-"+r:"",a="/customize/favicon/main-favicon"+o+".png?"+e.requireConf.urlArgs,i="/customize/favicon/alt-favicon"+o+".png?"+e.requireConf.urlArgs,s="/customize/favicon/main-favicon"+o+".ico?"+e.requireConf.urlArgs,c="/customize/favicon/alt-favicon"+o+".ico?"+e.requireConf.urlArgs,u=n.document,f=t.isSupported=function(){return"function"==typeof n.Notification&&n.isSecureContext},l=t.hasPermission=function(){return"granted"===Notification.permission},d=t.getPermission=function(e){e=e||function(){},Notification&&"function"==typeof Notification.requestPermission?Notification.requestPermission((function(n){e("granted"===n)})):e(!1)},h=t.create=function(e,t,r){u&&!r?r=u.getElementById("favicon").getAttribute("data-main-favicon")||i:r||(r=i);var o=new Notification(t,{icon:r,body:e});return o.onclick=function(){if(u)try{parent.focus(),n.focus(),this.close()}catch(e){}},o};return t.system=function(e,n,t){if(f())return l()?h(e,n,t):void("denied"!==Notification.permission&&d((function(r){r&&h(e,n,t)})))},u&&!u.getElementById("favicon")&&function(){if(u){console.debug("creating favicon");var e={id:"favicon",type:"image/png",rel:"icon","data-main-favicon":a,"data-alt-favicon":i,href:a};if(!u.getElementById("favicon")){var n=u.createElement("link");Object.keys(e).forEach((function(t){n.setAttribute(t,e[t])})),u.head.appendChild(n)}if(!u.getElementById("favicon-ico")){var t=u.createElement("link");e.href=e.href.replace(/\.png/g,".ico"),e.id="favicon-ico",e.type="image/x-icon",Object.keys(e).forEach((function(n){t.setAttribute(n,e[n])})),u.head.appendChild(t)}}else console.error("document is not available in this context")}(),t.tab=function(e,r){if(u){var o="_pendingTabNotification",f=u.getElementById("favicon"),l=u.getElementById("favicon-ico"),d=a,h=i,p=s,v=c;f&&(d=f.getAttribute("data-main-favicon")||a,h=f.getAttribute("data-alt-favicon")||i,f.setAttribute("href",d)),l&&(p=l.getAttribute("data-main-favicon")||s,v=l.getAttribute("data-alt-favicon")||c,l.setAttribute("href",p));var y=function(e){return!!t[o]&&(n.clearInterval(t[o]),f&&f.setAttribute("href",e?h:d),l&&l.setAttribute("href",e?v:p),!0)};y();var m=function(){f&&f.setAttribute("href",f.getAttribute("href")===d?h:d),l&&l.setAttribute("href",l.getAttribute("href")===p?v:p),--r};return t[o]=n.setInterval((function(){if(r>0)return m();y(!0)}),e),m(),{cancel:y}}console.error("document is not available in this context")},t};e.exports&&(e.exports=n(void 0))})()}(Mn)),Mn.exports),Kn(),y(),M()))})()}(kn)),kn.exports}function Bn(){return Hn||(Hn=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c,u)=>{let f=function(f,l,d,h){var p=f.version||0;c((function(){})).nThen((function(){var n,t,r,o,a;p<2&&(n="cryptpad.userlist-drawer",t="cryptpad.hide_poll_text",r="cryptpad.indentUnit",o="cryptpad.indentWithTabs",a=f.settings=f.settings||{},void 0!==f[r]&&(a.codemirror=a.codemirror||{},a.codemirror.indentUnit=f[r],delete f[r]),void 0!==f[o]&&(a.codemirror=a.codemirror||{},a.codemirror.indentWithTabs=f[o],delete f[o]),void 0!==f[n]&&(a.toolbar=a.toolbar||{},a.toolbar["userlist-drawer"]=f[n],delete f[n]),void 0!==f[t]&&(a.poll=a.poll||{},a.poll["hide-text"]=f[t],delete f[t]),e.send("Migrate-2",!0),f.version=p=2)})).nThen((function(){p<3&&(!function(){if(localStorage.CRYPTPAD_LANG){var e=localStorage.CRYPTPAD_LANG;f.settings.language=e}}(),e.send("Migrate-3",!0),f.version=p=3)})).nThen((function(){var n;p<4&&(n=f.settings=f.settings||{},void 0!==f.allowUserFeedback&&(n.general=n.general||{},n.general.allowUserFeedback=f.allowUserFeedback,delete f.allowUserFeedback),e.send("Migrate-4",!0),f.version=p=4)})).nThen((function(){p<5&&(!function(){var e=f.drive&&f.drive.filesData;if(e)for(var n in e)"number"!=typeof e[n].ctime&&(e[n].ctime=+new Date(e[n].ctime)),"number"!=typeof e[n].atime&&(e[n].atime=+new Date(e[n].atime))}(),e.send("Migrate-5",!0),f.version=p=5)})).nThen((function(t){var r,o,a,i,s;p<6&&(a=f.drive.filesData||{},i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if(r=a[e],o=n.parsePadUrl(r.href),r.href&&!r.channel){var i=n.getSecrets(o.type,o.hash,r.password);r.channel=i.channel,d(6,Math.round(100*t/s)),console.log("Adding missing channel in filesData ",r.channel)}})))}))})),i.nThen(t((function(){e.send("Migrate-6",!0),f.version=p=6}))))})).nThen((function(t){var r,o,a,i,s;p<7&&(a=f.drive.filesData,i=c((function(){})),s=Object.keys(a).length,Object.keys(a).forEach((function(e,t){i=i.nThen((function(i){setTimeout(i((function(){if((r=a[e]).href)if(-1!==r.href.indexOf("#"))if("pad"===(o=n.parsePadUrl(r.href)).hashData.type){if("view"===o.hashData.mode)r.roHref=r.href,delete r.href,console.log("Move href to roHref in filesData ",r.roHref);else{var i=n.getSecrets(o.type,o.hash,r.password),c=n.getViewHashFromKeys(i);c&&(r.roHref="/"+o.type+"/#"+c,console.log("Adding missing roHref in filesData ",r.href))}d(6,Math.round(100*t/s))}else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s));else d(7,Math.round(100*t/s))})))}))})),i.nThen(t((function(){e.send("Migrate-7",!0),f.version=p=7}))))})).nThen((function(){p<8&&(f.FS_hashes=t.deduplicateString(f.FS_hashes||[]),e.send("Migrate-8",!0),f.version=p=8)})).nThen((function(){p<9&&(!function(){var e=h.network,n={},t={store:h},o=r.createData(f),i=function(e){var t=n[e];if(t){try{t.wc.leave()}catch(e){}delete n[e]}};e.on("message",(function(r,s){try{!function(r,s){if(s===e.historyKeeper){var c=JSON.parse(r);if(!c.validateKey&&!c.owners||!c.channel){if(c.channel&&n[c.channel]){if(c.error&&"EINVAL"===c.error){var u=["GET_HISTORY",c.channel,{}];return void e.sendto(e.historyKeeper,JSON.stringify(u)).then((function(){}),(function(){}))}if(c.state&&1===c.state){o.channel=c.channel;var f=["UPDATE",o.curvePublic,+new Date,o],l=n[c.channel].encrypt(JSON.stringify(f));return n[c.channel].wc.bcast(l).then((function(){}),(function(e){console.error("Can't migrate this friend",n[c.channel].friend,e)})),void i(c.channel)}}else if(c.channel)return;var d=c[3];if(d&&n[d]){var h=n[d],p=h.decrypt(c[4]),v=JSON.parse(p);if("UPDATE"===v[0]){if(v[1]===o.curvePublic)return;var y=v[3];if(!y.notifications)return;h.friend.notifications=y.notifications,o.channel=d,a.sendTo(t,"UPDATE_DATA",o,{channel:y.notifications,curvePublic:y.curvePublic},(function(e){e&&e.error?console.error(e):console.log("friend migrated",h.friend)})),i(d)}}}}}(r,s)}catch(e){console.error(e)}}));var s=f.friends||{};Object.keys(s).forEach((function(t){if(44===t.length){var r=s[t];r.notifications||e.join(r.channel).then((function(t){var o=u.Curve.deriveKeys(r.curvePublic,f.curvePrivate),a=u.Curve.createEncryptor(o);n[r.channel]={wc:t,friend:r,decrypt:a.decrypt,encrypt:a.encrypt};var i={lastKnownHash:r.lastKnownHash},s=["GET_HISTORY",r.channel,i];e.sendto(e.historyKeeper,JSON.stringify(s)).then((function(){}),(function(e){console.error("Can't migrate this friend",r,e)}))}),(function(e){console.error("Can't migrate this friend",r,e)}))}}))}(),e.send("Migrate-9",!0),f.version=p=9)})).nThen((function(t){p<10&&function(){var s=h.proxy.todo;if(s){var u,l=t((function(){e.send("Migrate-10",!0),f.version=p=10})),d={network:h.network,initialState:"{}",metadata:{owners:h.proxy.edPublic?[h.proxy.edPublic]:[]}};c((function(e){o.get(s,e((function(n,t){if(n||!t)return e.abort(),void l();try{u=JSON.parse(t)}catch(e){}})),d)})).nThen((function(e){if(!u||"object"!=typeof u)return e.abort(),void l();var t={content:{data:{1:{id:"1",color:"color6",item:[],title:i.kanban_todo},2:{id:"2",color:"color3",item:[],title:i.kanban_working},3:{id:"3",color:"color5",item:[],title:i.kanban_done}},items:{},list:[1,2,3]},metadata:{title:i.type.todo,defaultTitle:i.type.todo,type:"kanban"}},c=4,p=!1;if((u.order||[]).forEach((function(e){var n=u.data[e];if(n&&n.task){p=!0;var r=n.state?"3":"1";t.content.data[r].item.push(c),t.content.items[c]={id:c,title:n.task},c++}})),!p)return e.abort(),void l();var v=n.createRandomHash("kanban"),y=n.getSecrets("kanban",v),m=n.getSecrets("todo",s);o.put(v,JSON.stringify(t),e((function(t){if(t)return e.abort(),void l();h.rpc&&(h.rpc.pin([y.channel],(function(){})),h.rpc.unpin([m.channel],(function(){})));var o=n.hashToHref(v,"kanban");h.manager.addPad(["root"],{title:i.type.todo,owners:d.metadata.owners,channel:y.channel,href:o,roHref:n.hashToHref(n.getViewHashFromKeys(y),"kanban"),atime:+new Date,ctime:+new Date},e((function(e){if(e)console.error(e);else{delete h.proxy.todo;var n=r.createData(f),t={store:h};a.sendTo(t,"MOVE_TODO",{user:n,href:o},{channel:n.notifications,curvePublic:n.curvePublic},(function(e){e&&e.error&&console.error(e)}))}})))})),d)})).nThen((function(){l()}))}}()})).nThen((function(n){if(!(p>=11)){var o=function(){e.send("Migrate-11",!0),f.version=p=11};if(void 0===t.find(f,["settings","security","unsafeLinks"])){var i={store:h},s=r.createData(f);s.curvePublic?a.sendTo(i,"SAFE_LINKS_DEFAULT",{user:s},{channel:s.notifications,curvePublic:s.curvePublic},n((function(e){e&&e.error?console.error(e):o()}))):o()}else o()}})).nThen((function(){s.whenRealtimeSyncs(h.realtime,t.mkAsync(t.bake(l)))}))};return f.setCustomize=e=>{i=e.Messages},f};e.exports&&(e.exports=n(Ae(),te(),Z(),wn(),Rn(),Un(),void 0,je(),qe(),M()))})()}(On)),On.exports}var Vn,Yn={exports:{}};function Gn(){return Vn||(Vn=1,function(e){var n,t,r;e.exports&&(e.exports=(n=Rn(),t=Ue(),te(),r=je(),{anonDriveIntoUser:function(e,o,a){o&&e.loggedIn||"function"!=typeof a?n.get(o,(function(n,i){var s;if(n)console.error("Cannot migrate recent pads",n);else if(i){try{s=JSON.parse(i)}catch(e){return"function"==typeof a&&a(),void console.error("Cannot parsed recent pads",e)}if(s){var c=e.proxy,u=t.init(s.drive,{readOnly:!1,loggedIn:!0,outer:!0}),f=function(){u.fixFiles(!0);var n=e.manager;u.getFiles([u.FILES_DATA]).forEach((function(e){var t=u.getFileData(e),r=t.channel,o=n.findChannel(r);if(0===o.length)t&&n.addPad(null,t,(function(e){e&&console.error("Cannot import file:",t,e)}));else{if(!t.href)return;o.forEach((function(e){e.data&&!e.data.href&&e.userObject.setHref(r,null,t.href)}))}})),c.FS_hashes&&Array.isArray(c.FS_hashes)||(c.FS_hashes=[]),-1===c.FS_hashes.indexOf(o)&&c.FS_hashes.push(o),"function"==typeof a&&r.whenRealtimeSyncs(e.realtime,a)};u&&"function"==typeof u.migrate?u.migrate(f):(console.log("oldFo.migrate is not a function"),f())}else"function"==typeof a&&a()}else"function"==typeof a&&a()})):a()}}))}(Yn)),Yn.exports}var Jn=o(be);const qn=ie.mkEvent(!0),Wn=ie.mkEvent(!0),zn=ie.mkEvent(),Qn=ie.mkEvent(),Zn={init:e=>{var n;const{broadcast:t,store:r,account:o}=e,a=r.drive=r.drive||{};let i=null===(n=r.proxy)||void 0===n?void 0:n.drive;if((null==i?void 0:i.hash)||ae.createRandomHash("drive"),!i.hash)return a.proxy=i,o.onAccountCacheReady((()=>{qn.fire()})),o.onAccountReady((()=>{Wn.fire()})),{channel:"",onDriveCacheReady:qn.reg,onDriveReady:Wn.reg,onDisconnect:zn.reg,onReconnect:Qn.reg};throw new Error("NOT IMPLEMENTED")}};var Xn,$n=o(Object.freeze({__proto__:null,Drive:Zn})),et={exports:{}};function nt(){return Xn||(Xn=1,function(e){(()=>{const n=(e,n,t={},r={},o)=>{var a={setCustomize:e=>{t=e.Messages,r=e.AppConfig}},i=function(e,n){n.degraded||n.clients.forEach((function(t){var r=e.clients[t];if(r){var o={id:r.id,cursor:r.cursor};n.sendMsg(JSON.stringify(o))}}))},s=function(e,n,t){var o=n.members,a=r.degradedLimit||8;t.degraded=o.length-1>=a,e.emit("DEGRADED",{degraded:t.degraded},t.clients)},c=function(e,n,t,r){var a=n.channel,c=n.secret;c.keys.cryptKey&&(c.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=(e={},n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:n=>{e=n.ApiConfig}},d=s.Nacl,h=function(e,n,t,r){let o=Object.keys(e.clients).filter((t=>Boolean(e.clients[t].admin)===n));o.length&&e.emit(t,{channel:r},[o])},p=function(t,r,o,a){var i=n.mkAsync(a);if(r&&!t.adminRdyEvt)return void i("EFORBIDDEN");let s=e.httpUnsafeOrigin;n.fetchApi(s,"config",!0,(e=>{t.moderatorKeys=e.moderatorKeys,t.adminKeys=e.adminKeys;var a=e.supportMailboxKey;if(a){if(!r||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePublic"])===a)return r?t.adminRdyEvt.reg((()=>{i(null,{supportKey:a,myCurve:o.adminCurvePrivate||n.find(t.store.proxy,["mailboxes","supportteam","keys","curvePrivate"]),theirPublic:o.curvePublic,notifKey:o.curvePublic})})):void i(null,{supportKey:a,myCurve:t.store.proxy.curvePrivate,theirPublic:o.curvePublic||a,notifKey:a});i("EFORBIDDEN")}else i("E_NOT_INIT")}))},v=function(e,t,r,o){var a,c,u=n.once(n.mkAsync(o));i((n=>{p(e,r,t,n(((e,t)=>{if(e)return n.abort(),void u({error:e});a=t.theirPublic,c=t.myCurve})))})).nThen((()=>{var r,o=s.Curve.deriveKeys(a,c),i=s.Curve.createEncryptor(o),l={network:e.store.network,channel:t.channel,noChainPad:!0,crypto:i,owners:[]},d=[];u=n.both((function(){r&&"function"==typeof r.stop&&r.stop()}),u),l.onMessage=function(e,n,t,r,o,a,i){var s=i&&i.time;try{e=JSON.parse(e)}catch(e){return void console.error(e)}e.time=s,a&&(e.author=a),d.push(e)},l.onError=u,l.onChannelError=u,l.onReady=function(){u(null,d)},r=f.start(l)}))},y=function(e,r,o,a){var c=n.find(e,["store","mailbox"]),u=n.find(e,["store","anon_rpc"]);if(c)if(u){var f,l,d,h=r.channel,v=r.title,y=r.ticket,m=+new Date;i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a({error:e});f=t.supportKey,l=t.theirPublic,d=t.myCurve})))})).nThen((e=>{var n=s.Curve.deriveKeys(l,d),t=s.Curve.createEncryptor(n),r=JSON.stringify(y),o=t.encrypt(r);u.send("WRITE_PRIVATE_MESSAGE",[h,o],e(((n,t)=>{if(n)return e.abort(),void a({error:n});m=t&&t[0]})))})).nThen((n=>{if(o){var t=e.adminDoc.proxy.tickets.active;if(t[h])return n.abort(),void a({error:"EEXISTS"});t[h]={title:y.title,restored:y.legacy,premium:!1,time:m,author:r.name,supportKey:f,lastAdmin:!0,authorKey:r.curvePublic,notifications:r.notifications}}})).nThen((n=>{o||(e.supportData[h]={time:+new Date,title:v,curvePublic:f},e.Store.onSync(null,n()))})).nThen((()=>{var i=o?r.notifications:t.getChannelIdFromKey(f);c.sendTo("NEW_TICKET",{title:v,channel:h,time:m,isAdmin:o,supportKey:f,premium:o?"":n.find(e,["store","account","plan"]),user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(n=>{console.error(n),n&&n.error&&delete e.supportData[h],a(n)})),c.sendTo("NOTIF_TICKET",{title:v,channel:h,time:m,isAdmin:o,isNewTicket:!0,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:i,curvePublic:l},(()=>{}))}))}else a({error:"anonymous rpc session not ready"});else a({error:"E_NOT_READY"})},m=function(e,r,o,a){var c,u,f,l,d=n.find(e,["store","mailbox"]),h=n.find(e,["store","anon_rpc"]);d?h?r?.ticket?i((n=>{p(e,o,r,n(((e,t)=>{if(e)return n.abort(),void a(e);c=t.theirPublic,u=t.myCurve,f=t.notifKey})))})).nThen((e=>{var n=s.Curve.deriveKeys(c,u),t=s.Curve.createEncryptor(n),o=JSON.stringify(r.ticket),i=t.encrypt(o);h.send("WRITE_PRIVATE_MESSAGE",[r.channel,i],e(((n,t)=>{if(n)return e.abort(),void a(n);l=t&&t[0],a(void 0,l)})))})).nThen((()=>{var e=o?r.notifChannel:t.getChannelIdFromKey(f);e&&d.sendTo("NOTIF_TICKET",{isAdmin:o,title:r.ticket.title,isClose:r.ticket.close,channel:r.channel,time:l,user:n.find(r.ticket,["sender","curvePublic"])?void 0:{supportTeam:!0}},{channel:e,curvePublic:f},(()=>{}))})):a("E_NO_DATA"):a("anonymous rpc session not ready"):a("E_NOT_READY")},g=function(e,r,o){var a=t.getSecrets("support",r),i={data:{},channel:a.channel,crypto:s.createEncryptor(a.keys),userName:"support",ChainPad:u,classic:!0,network:e.store.network,metadata:{validateKey:a.keys.validateKey||void 0}},f=e.adminDoc=c.create(i);f.proxy.on("ready",(function(){var r=f.proxy;if(r.tickets=r.tickets||{},r.tickets.active=r.tickets.active||{},r.tickets.closed=r.tickets.closed||{},r.tickets.pending=r.tickets.pending||{},e.adminRdyEvt.fire(),o(),!e.supportRpc)return;let a=function(e){if(!e.adminDoc||!e.supportRpc)return;let t=e.adminDoc.metadata&&e.adminDoc.metadata.channel,r=e.adminDoc.proxy.tickets,o=[t,...Object.keys(r.active),...Object.keys(r.pending),...Object.keys(r.closed)];return n.deduplicateString(o).sort()}(e),i=t.hashChannelList(a);e.supportRpc.getServerHash((function(n,t){n?console.warn(n):t!==i&&e.supportRpc.reset(a,(function(e){e&&console.warn(e)}))}))})),f.proxy.on("change",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")})),f.proxy.on("remove",["recorded"],(function(){h(e,!0,"RECORDED_CHANGE","")}))},E=function(e,r,a){let s=a(),c=e.store.proxy,u=n.find(c,["mailboxes","supportteam","keys","curvePublic"]),f=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]);r||(e.adminRdyEvt=n.mkEvent(!0)),i((n=>{p(e,!1,{},n(((t,r)=>{if(setTimeout(s),t)n.abort();else if(r.theirPublic!==u){try{delete c.mailboxes.supportteam,e.store.mailbox.close("supportteam")}catch(e){}return delete e.adminRdyEvt,void n.abort()}})))})).nThen((t=>{!function(e,t){let r,a,i=n.mkAsync(t),s=e.store.proxy,c=n.find(s,["mailboxes","supportteam","keys","curvePrivate"]);if(c){try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(c));r=n.encodeBase64(e.secretKey),a=n.encodeBase64(e.publicKey)}catch(e){return void i(e)}o.create(e.store.network,{edPublic:a,edPrivate:r},((n,t)=>{n?i(n):(console.log("Support RPC ready, public key is ",a),e.supportRpc=t,i())}))}else i("EFORBIDDEN")}(e,t((e=>{e&&console.error("Support RPC not ready",e)})))})).nThen((n=>{let r=f.slice(0,24),o=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:r}});g(e,o,n())})).nThen((()=>{console.log("Support admin loaded")}))};var b=function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);i?e.store.mailbox.open("supportadmin",i,(function(t){e.store.mailbox.close("supportadmin",(function(){}));let r=n.clone(t||{}),a=[];Object.keys(r).forEach((n=>{let t=r[n];if("CLOSE"===t.type)return void(a.includes(t.content.id)||a.push(t.content.id));let o=t.author,i=t.content&&t.content.title;((e,n,t)=>{let r=e.adminDoc.proxy;return["active","pending","closed"].some((e=>{let o=r.tickets[e];return Object.keys(o).some((e=>{let r=o[e];return r.authorKey===n&&r.title===t&&r.restored}))}))})(e,o,i)&&(a.includes(t.content.id)||a.push(t.content.id))})),Object.keys(r).forEach((e=>{let n=r[e];n.content&&a.includes(n.content.id)&&delete r[e]})),o(r)}),!0,{dump:!0}):o({error:"ENOENT"})};let O=(e,t,r,o)=>{let a;try{let e=d.sign.keyPair.fromSeed(n.decodeBase64(r));a=n.encodeBase64(e.publicKey)}catch(e){return void o(e)}e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",[t,a]]},o)},A=(e,n,t,r)=>{e.Store.adminRpc(null,{cmd:"GET_MODERATORS",data:{}},r)};return l.init=function(o,s,c){var u={};if(o.store&&o.store.modules&&o.store.modules.support)return o.store.modules.support;var f=o.store,l=f.proxy.support=f.proxy.support||{},g={moderatorKeys:e.moderatorKeys,adminKeys:e.adminKeys,supportData:l,store:o.store,Store:o.Store,emit:c,clients:{}};return n.find(f,["proxy","mailboxes","supportteam"])&&E(g,!1,s),u.ctx=g,u.removeClient=function(e){delete g.clients[e]},u.leavePad=function(){},u.addAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let o;i((r=>{p(e,!0,n,r(((e,n)=>{if(e)return r.abort(),void t(!0);o=n.supportKey})))})).nThen((()=>{var a=Math.floor(2e3*Math.random());setTimeout((()=>{var a=e.adminDoc.proxy;a.tickets.active[n.channel]||a.tickets.closed[n.channel]||a.tickets.pending[n.channel]?t(!0):(a.tickets.active[n.channel]={title:n.title,premium:n.premium,time:n.time,author:n.user&&n.user.displayName,supportKey:n.supportKey||o,authorKey:n.user&&n.user.curvePublic},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){t(!0)})),h(e,!0,"NEW_TICKET",n.channel),e.supportRpc&&e.supportRpc.pin([n.channel],(()=>{})))}),a)}))})):t(!0)}(g,e,n)},u.updateAdminTicket=function(e){!function(e,n){e.adminRdyEvt&&e.adminRdyEvt.reg((()=>{var t=Math.floor(2e3*Math.random());setTimeout((()=>{var t=e.adminDoc.proxy;let r=t.tickets.active[n.channel]||t.tickets.pending[n.channel];r&&(n.time<=r.time||(n.isClose&&(t.tickets.closed[n.channel]=r,delete t.tickets.active[n.channel],delete t.tickets.pending[n.channel]),r.time=n.time,r.lastAdmin=!1,h(e,!0,"UPDATE_TICKET",n.channel)))}),t)}))}(g,e)},u.updateAdminKey=function(e,r){((e,r,o)=>{let a=r.supportKey,s=t.getBoxPublicFromSecret(a),c=e.store.proxy;const u=n.find(c,["mailboxes","supportteam","keys","curvePrivate"]),f=n.find(c,["mailboxes","supportteam","keys","curvePublic"]);p(e,!1,{},((t,r)=>{if(t)return void o(!0);if(s!==r.theirPublic)return void o(!0);if(u===a||f===s)return void o(!0);let c=n.find(e,["store","mailbox"]);try{e.adminDoc&&e.adminDoc.stop(),c&&c.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)}catch(e){console.error(e)}e.Store.addAdminMailbox(null,{version:2,priv:a},(n=>{n&&n.error?o(!0):i((n=>{E(e,!0,n),e.adminRdyEvt.reg((()=>{h(e,!0,"UPDATE_RIGHTS"),o(!1)}))}))}))}))})(g,e,r)},u.checkAdminTicket=function(e,n){!function(e,n,t){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy,o=r.tickets.active[n.channel]||r.tickets.pending[n.channel];t(o)})):t(!0)}(g,e,n)},u.addUserTicket=function(e,n){!function(e,n,t){if(!e.supportData)return void t(!0);let r=n.channel;e.supportData[r]={time:n.time,title:n.title,curvePublic:n.supportKey},e.Store.onSync(null,(function(){t(!0)}))}(g,e,n)},u.updateUserTicket=function(e){!function(e,n){if(h(e,!1,"UPDATE_TICKET",n.channel),n.isClose){let t=e.supportData[n.channel];if(!t)return;t.closed=!0}}(g,e)},u.execCommand=function(e,o,s){var c=o.cmd,u=o.data;"MAKE_TICKET"!==c?"GET_MY_TICKETS"!==c?"REPLY_TICKET"!==c?"CLOSE_TICKET"!==c?"DELETE_TICKET"!==c?"MAKE_TICKET_ADMIN"!==c?"LIST_TICKETS_ADMIN"!==c?"LOAD_TICKET_ADMIN"!==c?"REPLY_TICKET_ADMIN"!==c?"CLOSE_TICKET_ADMIN"!==c?"MOVE_TICKET_ADMIN"!==c?"GET_RECORDED"!==c?"SET_RECORDED"!==c?"USE_RECORDED"!==c?"SEARCH_ADMIN"!==c?"FILTER_TAGS_ADMIN"!==c?"SET_TAGS_ADMIN"!==c?"GET_LEGACY"!==c?"DUMP_LEGACY"!==c?"CLEAR_LEGACY"!==c?"RESTORE_LEGACY"!==c?"GET_PRIVATE_KEY"!==c?"DISABLE_SUPPORT"!==c?"ROTATE_KEYS"!==c?"ADD_MODERATOR"!==c?s({error:"NOT_SUPPORTED"}):function(e,t,r,o){let a=e.store.proxy;var i=n.find(e,["store","mailbox"]);let s=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),c=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]),u=n.find(a,["mailboxes","supportteam","lastKnownHash"]),f=a.edPublic;p(e,!1,{},((n,r)=>{n?o({error:n}):r.theirPublic===s&&e.moderatorKeys.includes(f)?i.sendTo("ADD_MODERATOR",{supportKey:c,lastKnownHash:u},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{o()})):o({error:"EFORBIDDEN"})}))}(g,u,0,s):function(e,r,o,s){let c,u=n.once(n.mkAsync(s)),f=e.store.proxy,l=f.edPublic;const h=d.box.keyPair(),v=n.encodeBase64(h.publicKey),y=n.encodeBase64(h.secretKey),m=n.find(f,["mailboxes","supportteam","keys","curvePrivate"]),g=n.find(f,["mailboxes","supportteam","keys","curvePublic"]);if(!y||!v)return void u({error:"INVALID_KEY"});let b;i((n=>{p(e,!1,{},n(((e,t)=>{if("E_NOT_INIT"!==e)return e?(u({error:e}),void n.abort()):void(c=t.theirPublic)})))})).nThen((n=>{if(!e.adminKeys.includes(l))return n.abort(),void u({error:"EFORBIDDEN"})})).nThen((n=>{if(c)return e.moderatorKeys.includes(l)?g!==c?(n.abort(),void u({error:"EFORBIDDEN"})):void 0:(n.abort(),void u({error:"EINVAL"}))})).nThen((n=>{c&&e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;b=e.adminDoc.metadata&&e.adminDoc.metadata.channel;let o=y.slice(0,24),i=t.getEditHashFromKeys({version:2,type:"support",keys:{editKeyStr:o}}),s={network:e.store.network,initialState:"{}"};(r.oldKeys=r.oldKeys||{})[g]={curvePrivate:m,rotatedOn:+new Date,rotatedBy:l},a.put(i,JSON.stringify(r),n((e=>{if(e)return n.abort(),void u({error:e})})),s)}))})).nThen((n=>{O(e,v,y,n((e=>{if(e&&e.error)return n.abort(),void u(e)})))})).nThen((()=>{if(!c)return;e.adminDoc&&e.adminDoc.stop();let t=n.find(e,["store","mailbox"]);t&&t.close("supportteam"),e.supportRpc&&e.supportRpc.destroy(),e.adminRdyEvt=n.mkEvent(!0)})).nThen((n=>{e.Store.addAdminMailbox(null,{version:2,priv:y},n((t=>{if(t&&t.error)return n.abort(),c?O(e,g,m,(()=>{u(t)})):void u(t)})))})).nThen((t=>{if(!c)return;let r=n.find(e,["store","mailbox"]);A(e,0,0,t((e=>{if(e&&e.error)return void u({success:!0,noNotify:!0});let n=e&&e[0];Object.keys(n||{}).forEach((e=>{let t=n[e];r.sendTo("MODERATOR_NEW_KEY",{supportKey:y},{channel:t.mailbox,curvePublic:t.curvePublic},(()=>{}))}))})))})).nThen((n=>{E(e,!0,n)})).nThen((n=>{b&&e.Store.adminRpc(null,{cmd:"ARCHIVE_DOCUMENT",data:{id:b,reason:"Deprecated support pad"}},n())})).nThen((()=>{u({success:!0})}))}(g,0,0,s):function(e,t,r,o){let a,s=n.once(n.mkAsync(o)),c=e.store.proxy.edPublic;i((n=>{p(e,!1,{},n((e=>{if(e)return s({error:e}),void n.abort()})))})).nThen((n=>{if(!e.adminKeys.includes(c))return n.abort(),void s({error:"EFORBIDDEN"})})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ARCHIVE_SUPPORT",data:{}},n((e=>{if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{e.Store.adminRpc(null,{cmd:"ADMIN_DECREE",data:["SET_SUPPORT_KEYS",["",""]]},n((function(e){if(e&&e.error)return n.abort(),void s(e)})))})).nThen((n=>{A(e,0,0,n((e=>{if(!e||e.error)return n.abort(),void s();a=e[0]||{}})))})).nThen((()=>{let n=i;Object.keys(a).forEach((t=>{n=n((n=>{e.Store.adminRpc(null,{cmd:"REMOVE_MODERATOR",data:t},n((e=>{e&&e.error&&console.error("Error removing moderator data",t,e.error)})))})).nThen})),n((()=>{s()}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportteam","keys","curvePublic"]),s=n.find(a,["mailboxes","supportteam","keys","curvePrivate"]);p(e,!1,{},((e,n)=>{e?o({error:e}):(i&&n.theirPublic!==i&&(s=void 0),o({curvePrivate:s,curvePublic:n.theirPublic}))}))}(g,0,0,s):function(e,r,o,a){let i=e.store.proxy,s=n.find(i,["mailboxes","supportadmin"]);if(!s)return void a({error:"ENOENT"});if(!e.adminRdyEvt)return void a({error:"EFORBIDDEN"});let c=r.messages,u=r.hashes,f=c[0],l=c[c.length-1];f?e.adminRdyEvt.reg((()=>{let r={name:n.find(f,["sender","name"]),notifications:n.find(f,["sender","notifications"]),curvePublic:n.find(f,["sender","curvePublic"]),channel:t.createChannelId(),title:f.title,time:l.time,ticket:{legacy:!0,title:f.title,sender:f.sender,messages:c}};y(e,r,!0,(n=>{n&&n.error?a(n):(u.forEach((e=>{s.viewed.push(e)})),e.Store.onSync(null,(function(){a({done:!0})})))}))})):a({error:"EINVAL"})}(g,u,0,s):function(e,n,t,r){let o=e.store.proxy;e.store.mailbox.close("supportadmin",(function(){delete o.mailboxes.supportadmin,e.Store.onSync(null,(function(){r({done:!0})}))}))}(g,0,0,s):function(e,t,r,o){let a=e.store.proxy,i=n.find(a,["mailboxes","supportadmin"]);if(!i)return void o({error:"ENOENT"});let s=n.clone(i);s.lastKnownHash=void 0,s.viewed=[],e.store.mailbox.open("supportadmin",s,(function(n){e.store.mailbox.close("supportadmin",(function(){})),o(n)}),!0,{dump:!0})}(g,0,0,s):b(g,0,0,s):((e,n,t,o)=>{e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,a=n.channel;(t.active[a]||t.pending[a]||t.closed[a]).tags=n.tags||[],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){let e=[];["active","pending","closed"].forEach((n=>{let r=t[n];Object.keys(r).forEach((n=>{(r[n].tags||[]).forEach((n=>{e.includes(n)||e.push(n)}))}))})),o({done:!0,allTags:e})}))})):o({error:"EFORBIDDEN"})})(g,u,0,s):((e,n,t,r)=>{if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.tags||[];e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy.tickets;if(!o.length)return void r({all:!0});let t=[];["active","pending","closed"].forEach((e=>{let r=n[e];Object.keys(r).forEach((e=>{(r[e].tags||[]).some((e=>o.includes(e)))||t.push(e)}))})),r({tickets:t})}))})(g,u,0,s):((e,t,r,o)=>{if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=t.tags||[],i=(t.text||"").toLowerCase();e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy.tickets,r={},s=(e,t,o)=>{let a=n.clone(t);a.category=o,r[e]=a};["active","pending","closed"].some((e=>{let o=t[e];return Object.keys(o).some((t=>{let c=o[t];if(a.length&&!(c.tags||[]).some((e=>a.includes(e))))return;let u=n.hexToBase64(t).slice(0,10);if(i===u)return r={},s(t,c,e),!0;(!i||c.title.toLowerCase().includes(i))&&s(t,c,e)}))})),o({tickets:r})}))})(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.id;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=(n.recorded=n.recorded||{})[o];t&&(t.count=(t.count||0)+1),r()}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.id,i=n.content,s=Boolean(n.remove);e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.recorded=n.recorded||{};s?delete t[a]:t[a]={content:i,count:0},r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({done:!0})}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy,r=t.recorded=t.recorded||{};o({messages:n.clone(r)})})):o({error:"EFORBIDDEN"})}(g,0,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.channel,i=n.from,s=n.to;e.adminRdyEvt.reg((()=>{let n=e.adminDoc.proxy,t=n.tickets[i],c=n.tickets[s];if(!i||!s)return void o({error:"EINVAL"});let u=t[a];u&&!c[a]?(c[a]=u,delete t[a],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({moved:!0})}))):o({error:"CANT_MOVE"})}))}(g,u,0,s):function(e,n,t,o){if(!e.adminRdyEvt)return void o({error:"EFORBIDDEN"});let a=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[a]&&(n.adminCurvePrivate=t.oldKeys[a].curvePrivate),m(e,n,!0,(t=>{if(t)o({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=+new Date,i.lastAdmin=!0,a.tickets.closed[n.channel]=i,delete a.tickets.active[n.channel],delete a.tickets.pending[n.channel],r.whenRealtimeSyncs(e.adminDoc.realtime,(function(){o({closed:!0})}))}}))}))}(g,u,0,s):function(e,n,t,r){if(!e.adminRdyEvt)return void r({error:"EFORBIDDEN"});let o=n.supportKey;e.adminRdyEvt.reg((()=>{let t=e.adminDoc.proxy;t.oldKeys&&t.oldKeys[o]&&(n.adminCurvePrivate=t.oldKeys[o].curvePrivate),m(e,n,!0,((t,o)=>{if(t)r({error:t});else{var a=e.adminDoc.proxy,i=a.tickets.active[n.channel]||a.tickets.pending[n.channel];i.time=o,i.lastAdmin=!0,r({sent:!0})}}))}))}(g,u,0,s):function(e,t,r,o){let a=t.supportKey;e.adminRdyEvt.reg((()=>{let r=e.adminDoc.proxy;r.oldKeys&&r.oldKeys[a]&&(t.adminCurvePrivate=r.oldKeys[a].curvePrivate),v(e,t,!0,(function(r,a){if(r)return void o({error:r});var i=e.adminDoc.proxy;if(!Array.isArray(a)||!a.length)return void o(a);a.sort(((e,n)=>e.time-n.time));let s=a[a.length-1],c=a.some((e=>{let r=n.find(e,["sender","curvePublic"]);if(t.curvePublic===r)return n.find(e,["sender","quota","plan"])}));var u=i.tickets.active[t.channel];u&&(s.legacy&&(s=Array.isArray(s.messages)&&s.messages[s.messages.length-1]),u.time=s.time,u.premium=c,s.sender&&(u.lastAdmin=!s.sender.blockLocation),s.close&&(i.tickets.closed[t.channel]=u,delete i.tickets.active[t.channel],h(e,!0,"UPDATE_TICKET",t.channel))),o(a)}))}))}(g,u,0,s):function(e,t,r,o){e.adminRdyEvt?(e.clients[r]||(e.clients[r]={admin:!0}),e.adminRdyEvt.reg((()=>{var r=e.adminDoc.proxy;return"pending"===t.type?o(n.clone(r.tickets.pending)):"closed"===t.type?o(n.clone(r.tickets.closed)):void o(n.clone(r.tickets.active))}))):o({error:"EFORBIDDEN"})}(g,u,e,s):function(e,n,t,r){e.adminRdyEvt?e.adminRdyEvt.reg((()=>{y(e,n,!0,r)})):r({error:"EFORBIDDEN"})}(g,u,0,s):function(e,n,t,r){let o=e.supportData,a=n.channel;o[a]&&o[a].closed?(delete o[a],r({deleted:!0})):r({error:"ENOTCLOSED"})}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{closed:!0})}))}(g,u,0,s):function(e,n,t,r){m(e,n,!1,(e=>{r(e?{error:e}:{sent:!0})}))}(g,u,0,s):function(e,t,r,o){var a=[],s=i;e.clients[r]||(e.clients[r]={admin:!1}),Object.keys(e.supportData).forEach((function(t){s=s((r=>{var o=n.clone(e.supportData[t]);v(e,{channel:t,curvePublic:o.curvePublic},!1,r(((n,r)=>{if(n){if("EDELETED"===n.type)return void delete e.supportData[t];o.error=n}else o.messages=r,r.length&&r[r.length-1].close&&(e.supportData[t].closed=!0,o.closed=!0);o.id=t,a.push(o)})))})).nThen})),s((()=>{a.sort(((e,n)=>e.closed&&n.closed?e.time-n.time:e.closed?1:n.closed?-1:e.time-n.time)),o({tickets:a})}))}(g,0,e,s):function(e,n,t,r){y(e,n,!1,r)}(g,u,0,s)},u},l};e.exports&&(e.exports=n(void 0,Z(),te(),je(),Cn(),Rn(),qe(),M(),g(),w(),y()))})()}(rt)),rt.exports}var at,it={exports:{}};function st(){return at||(at=1,function(e){(()=>{const n=e=>{var n={},t=function(n,t,r,o){var a=t.channel,i=t.secret;i.keys.cryptKey&&(i.keys.cryptKey=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=()=>{var e={},n=function(e,n,t){var r=e.clients[n];if(r){var o=e.channels[r.channel];o?(t(),o.history.forEach((function(t){e.emit("MESSAGE",{msg:t,validateKey:o.validateKey},[n])})),e.emit("HISTORY_SYNCED",{},[n])):t({error:"ENOCHAN"})}else t({error:"ENOENT"})};return e.init=function(e,t){var r={},o={store:e,emit:t,channels:{},clients:{}};return r.removeClient=function(e){!function(e,n){var t,r=function(e){return e!==n};for(var o in e.channels)(t=e.channels[o]).clients=t.clients.filter(r),0===t.clients.length&&(t.wc&&t.wc.leave(),delete e.channels[o]);if(e.clients[n]){var a=e.clients[n].channel,i=e.channels[a];i&&e.emit("LEAVE",{id:n},[i.clients[0]]),delete e.clients[n]}}(o,e)},r.leavePad=function(e){!function(e,n){Object.keys(e.channels).some((function(t){var r=e.channels[t];if(r.padChan===n)return r.wc&&r.wc.leave(),delete e.channels[t],!0}))}(o,e)},r.execCommand=function(e,t,r){var a=t.cmd,i=t.data;"SEND_MESSAGE"!==a?"UPDATE_HASH"!==a?"OPEN_CHANNEL"!==a?"GET_HISTORY"!==a?"REENCRYPT"!==a||function(e,n,t,r){var o=n.channel,a=e.store.network,i=function(e){var t=a.historyKeeper,o={metadata:n.metadata},i=["GET_HISTORY",e.id,o];a.sendto(t,JSON.stringify(i)),n.msgs.forEach((function(n){e.bcast(n)})),e.leave(),r()};e.store.anon_rpc.send("IS_NEW_CHANNEL",o,(function(e,n){var t;e?r({error:e}):(n&&n.length&&"object"==typeof n[0]?t=n[0].isNew:r({error:"INVALID_RESPONSE"}),t?a.join(o).then(i,(function(e){r({error:e})})):r({error:"EEXISTS"}))}))}(o,i,0,r):n(o,e,r):function(e,t,r,o){var a=t.channel,i=t.padChan,s=e.store.network,c=!0,u=e.clients[r];if(u)o();else{u=e.clients[r]={channel:a};var f=e.channels[a];if(f)return u.id||(u.id=f.wc.myID+"-"+r),n(e,r,(function(){e.emit("READY",f.clients,[r])})),f.clients.push(r),void o();var l=Math.floor(1e6*Math.random()),d=function(n){e.channels[a]=e.channels[a]||{history:[],validateKey:t.validateKey},(f=e.channels[a]).padChan=i,u.id||(u.id=n.myID+"-"+r),f.clients&&f.clients.forEach((function(t){e.clients[t]&&(e.clients[t].id=n.myID+"-"+t)})),n.on("join",(function(){})),n.on("leave",(function(){})),n.on("message",(function(n){f.history.push(n),e.emit("MESSAGE",{msg:n,validateKey:f.validateKey},f.clients)})),f.wc=n,f.sendMsg=function(e,t){t=t||function(){};var r=e.slice(0,64);n.bcast(e).then((function(){f.history.push(e),f.lastKnownHash=r,t()}),(function(e){t({error:e})}))},c&&(f.clients=[r],f.lastCpHash=t.lastCpHash,c=!1,o());var d=s.historyKeeper,h={txid:l,lastKnownHash:f.lastKnownHash||f.lastCpHash,metadata:{validateKey:t.validateKey,owners:t.owners,expire:t.expire}},p=["GET_HISTORY",n.id,h];d&&s.sendto(d,JSON.stringify(p)).then((function(){}),(function(e){console.error(e)}))};s.on("message",(function(n,t){if(e.channels[a]&&t===s.historyKeeper){var r;try{r=JSON.parse(n)}catch(e){}if(r&&!(r.txid&&r.txid!==l||r.channel&&r.channel!==a))if(r.validateKey&&r.channel)f.validateKey||(f.validateKey=r.validateKey);else if(r.state&&1===r.state&&r.channel)e.emit("READY",f.clients,f.clients);else if(!(r.error&&r.channel||Array.isArray(r)&&r[0]&&r[0]!==l||(n=r[4],r[3]!==a))){var o=n.slice(0,64);o!==f.lastKnownHash&&o!==f.lastCpHash&&(f.lastKnownHash=o,e.emit("MESSAGE",{msg:n},f.clients),f.history.push(n))}}})),s.join(a).then(d,(function(e){o({error:e})})),s.on("reconnect",(function(){e.channels[a]&&s.join(a).then(d,(function(e){console.error(e)}))}))}}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=n,s=-1;a.history.some((function(e,n){if(e.slice(0,64)===i)return s=n+1,!0})),-1!==s&&(a.history=a.history.slice(s)),r()}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r):function(e,n,t,r){var o=e.clients[t];if(o){var a=e.channels[o.channel];if(a){var i=function(o){o&&o.error?r(o):(e.emit("MESSAGE",{msg:n.msg},a.clients.filter((function(e){return e!==t}))),r())};n.isCp?a.sendMsg(n.isCp,i):a.sendMsg(n.msg,i)}else r({error:"INVALID_CHANNEL"})}else r({error:"NOT_IN_CHANNEL"})}(o,i,e,r)},r},e};e.exports&&(e.exports=n())})()}(ut)),ut.exports}var lt,dt={exports:{}};function ht(){return lt||(lt=1,function(e){(()=>{const n=(e,n,t,r,o,a,i)=>{var s={};return s.init=function(s,c,u){var f={},l=s.store;if(l.loggedIn&&l.proxy.edPublic){var d={Store:s.Store,store:l,pinPads:s.pinPads,updateMetadata:s.updateMetadata,emit:u,onReadyHandlers:[],clients:[]};return d.profile=l.proxy.profile=l.proxy.profile||{},function(e,t){var r=e.profile;if(r.edit&&r.view)setTimeout(t);else{var o=n.createRandomHash("profile"),a=n.getSecrets("profile",o);e.pinPads([a.channel],(function(e){e.error?t(e.error):(r.edit=n.getEditHashFromKeys(a),r.view=n.getViewHashFromKeys(a),setTimeout(t))}))}}(d,c((function(r){r||function(r){var s=r.profile,c=n.getSecrets("profile",s.edit),u=a.createEncryptor(c.keys),f={data:{},network:r.store.network,channel:c.channel,crypto:u,owners:[r.store.proxy.edPublic],ChainPad:i,validateKey:c.keys.validateKey||void 0,userName:"profile",classic:!0},l=o.create(f);l.proxy.on("create",(function(){})).on("ready",(function(){l.proxy.name=r.store.proxy[t.displayNameKey]||"",r.listmap=l,l.proxy.curvePublic||(l.proxy.curvePublic=r.store.proxy.curvePublic),l.proxy.notifications||(l.proxy.notifications=e.find(r.store.proxy,["mailboxes","notifications","channel"])),l.proxy.edPublic||(l.proxy.edPublic=r.store.proxy.edPublic),r.onReadyHandlers.length&&(r.onReadyHandlers.forEach((function(e){try{e(l.proxy)}catch(e){console.error(e)}})),r.onReadyHandlers=[])})).on("change",[],(function(){r.emit("UPDATE",l.proxy,r.clients)}))}(d)}))),f.setName=function(e){!function(e,n){e.listmap.proxy.name=n,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.listmap&&e.emit("UPDATE",e.listmap.proxy,e.clients)}))}(d,e)},f.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1)}(d,e)},f.update=function(){d.listmap&&d.emit("UPDATE",d.listmap.proxy,d.clients)},f.execCommand=function(e,n,t){console.log(n);var o=n.cmd,a=n.data;"SUBSCRIBE"!==o?"SET"!==o||function(e,n,t,o){var a=n.key,i=n.value;a&&(e.listmap.proxy[a]=i,r.whenRealtimeSyncs(e.listmap.realtime,(function(){e.emit("UPDATE",e.listmap.proxy,e.clients.filter((function(e){return e!==t}))),"badge"===a&&e.Store.set(null,{key:["profile","badge"],value:i||void 0},(()=>{})),o(e.listmap.proxy)})))}(d,a,e,t):function(e,n,t,r){-1===e.clients.indexOf(t)&&e.clients.push(t),e.listmap?r(e.listmap.proxy):e.onReadyHandlers.push((function(e){r(e)}))}(d,0,e,t)},f}},s};e.exports&&(e.exports=n(Z(),te(),Y(),je(),g(),M(),w()))})()}(dt)),dt.exports}var pt,vt={exports:{}},yt={exports:{}};function mt(){return pt||(pt=1,function(e){e.exports&&(e.exports=function(e,n,t,r,o,a){var i={},s=function(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))},c=function(e){return e.slice(0,64)},u=function(n,t){var r=e.find(t,[n,"role"]);return-1!==["OWNER","ADMIN"].indexOf(r)},f=function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&!!function(e){return-1!==["OWNER","ADMIN","MEMBER","VIEWER"].indexOf(e)}(t)&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))},l=function(e){return"string"==typeof e&&44===e.length},d=i.commands={};d.ADD=function(e,n,t){if(!s(e))throw new Error("INVALID ARGS");if(!t.internal.initialized)throw new Error("UNITIALIZED");if(void 0===t.state.members)throw new Error("CANNOT_ADD_TO_UNITIALIZED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ALREADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="MEMBER"),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if("string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.RM=function(n,t,r){if(!Array.isArray(n))throw new Error("INVALID_ARGS");if(void 0===r.state.members)throw new Error("CANNOT_RM_FROM_UNITIALIZED_ROSTER");var o=r.state.members;n.forEach((function(n){if(!l(n))throw new Error("INVALID_CURVE_KEY");if(n!==t){var r=o[n].role;if(!function(n,t,r){var o=e.find(r,[n,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&-1!==["ADMIN","MEMBER","VIEWER"].indexOf(t))}(t,r,o))throw new Error("INSUFFICIENT_PERMISSIONS")}}));var a=!1;return n.forEach((function(e){o[e]&&(a=!0,delete o[e])})),a},d.DESCRIBE=function(n,t,o){if(!n||"object"!=typeof n||Array.isArray(n))throw new Error("INVALID_ARGUMENTS");if(void 0===o.state.members)throw new Error("NOT_READY");var a=o.state.members;Object.keys(n).forEach((function(r){if(!l(r))throw new Error("INVALID_ID");if(!a[r])throw new Error("NOT_PRESENT");if(!function(n,t,r){if(!r[t])return!1;if(n===t&&r[t])return!0;var o=e.find(r,[n,"role"]),a=e.find(r,[t,"role"]);return!!o&&("OWNER"===o||"ADMIN"===o&&"OWNER"!==a)}(t,r,a))throw new Error("INSUFFICIENT_PERMISSIONS");var o=n[r];if(!s(o))throw new Error("INVALID_ARGUMENTS");var i=e.clone(a[r]);if("string"==typeof o.role&&!function(n,t,r,o){return!(n!==t||!o[t])&&("MEMBER"===e.find(o,[n,"role"])?"VIEWER"===r:void 0)}(t,r,o.role,a)&&!f(t,o.role,a))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof i.displayName&&"string"!=typeof o.displayName)throw new Error("DISPLAYNAME_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.displayName))throw new Error("INVALID_DISPLAYNAME");if("string"!=typeof i.notifications&&"string"!=typeof o.notifications)throw new Error("NOTIFICATIONS_REQUIRED");if(-1===["undefined","string"].indexOf(typeof o.notifications))throw new Error("INVALID_NOTIFICATIONS")}));var i=!1;return Object.keys(n).forEach((function(t){var o=e.clone(a[t]),s=n[t];Object.keys(s).forEach((function(e){void 0===o[e]||null!==s[e]?o[e]=s[e]:delete o[e]})),r(o)!==r(a[t])&&(i=!0,a[t]=o)})),i},d.CHECKPOINT=function(e,n,t){if(!s(e))throw new Error("INVALID_CHECKPOINT_STATE");if(!t.internal.initialized){t.state=e;var o=t.state.metadata=t.state.metadata||{};return o.topic=o.topic||"",o.name=o.name||"",o.avatar=o.avatar||"",t.internal.initialized=!0,!0}if(r(e)!==r(t.state))throw new Error("CHECKPOINT_DOES_NOT_MATCH_PREVIOUS_STATE");if(!u(n,t.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");return t.state=e,!0};var h=["avatar","name","topic"];d.METADATA=function(n,t,r){if(!s(n))throw new Error("INVALID_ARGS");if(!function(n,t){var r=e.find(t,[n,"role"]);return Boolean(r&&-1!==["OWNER","ADMIN"].indexOf(r))}(t,r.state.members))throw new Error("INSUFFICIENT_PERMISSIONS");Object.keys(n).forEach((function(e){if(null===n[e]){if(-1===h.indexOf(e))return;throw new Error("CANNOT_REMOVE_MANDATORY_METADATA")}if("string"!=typeof n[e])throw new Error("INVALID_ARGUMENTS")}));var o=!1;return Object.keys(n).forEach((function(e){void 0!==r.state.metadata[e]&&null===n[e]&&(o=!0,delete r.state.metadata[e]),n[e]!==r.state.metadata[e]&&(o=!0,r.state.metadata[e]=n[e])})),o},d.INVITE=function(e,n,t){if(!s(e))throw new Error("INVALID_ARGS");if(!t.internal.initialized)throw new Error("UNINITIALIED");if(void 0===t.state.members)throw new Error("CANNOT+INVITE_TO_UNINITIALIED_ROSTER");var r=t.state.members;Object.keys(e).forEach((function(t){if(!l(t))throw console.log(t,t.length),new Error("INVALID_CURVE_KEY");if(!s(e[t]))throw new Error("INVALID_CONTENT");if(r[t])throw new Error("ARLEADY_PRESENT");var o=e[t];if("string"!=typeof o.role&&(o.role="VIEWER"),void 0===o.pending&&(o.pending=!0),!f(n,o.role,r))throw new Error("INSUFFICIENT_PERMISSIONS");if("string"!=typeof o.displayName||!o.displayName)throw new Error("DISPLAYNAME_REQUIRED")}));var o=!1;return Object.keys(e).forEach((function(n){o=!0,r[n]=e[n]})),o},d.ACCEPT=function(n,t,r){if(!r.internal.initialized)throw new Error("UNINITIALIED");if(void 0===r.state.members)throw new Error("CANNOT_ADD_TO_UNINITIALIED_ROSTER");var o=r.state.members;if(!s(o[t]))throw new Error("INSUFFICIENT_PERMISSIONS");if(!o[t].pending)throw new Error("ALREADY_PRESENT");if("string"!=typeof n)throw new Error("INVALID_ARGS");if(!l(n))throw new Error("INVALID_CURVE_KEY");var a=n;if(void 0!==o[a])throw new Error("MEMBER_ALREADY_PRESENT");var i=e.clone(o[t]);delete i.remaining,delete i.totalUses,delete i.inviteChannel,delete i.previewChannel,o[a]=i;var c=o[t].remaining||1;return-1===c||(c>1?o[t].remaining=c-1:delete o[t]),!0};var p=function(e,n,t){if(!Array.isArray(e)||"string"!=typeof n)throw new Error("INVALID ARGUMENTS");var r=e[0];if("function"!=typeof d[r])throw new Error("INVALID_COMMAND");return d[r](e[1],n,t)},v=function(n,t,r){return p(n,t,e.clone(r))};return i.create=function(n,i){if("function"!=typeof i)throw new Error("EXPECTED_CALLBACK");var f=e.once(e.mkAsync(i));if(n.network)if(n.channel&&"string"==typeof n.channel&&32===n.channel.length)if(n.keys&&"object"==typeof n.keys)if(n.store){var d=e.response((function(e,n){console.error("ROSTER_RESPONSE__"+e,n)})),h=n.store,y=n.keys,m=y.myCurvePublic,g=n.channel,E=n.lastKnownHash||-1;n.newTeam&&(E=void 0);var b={state:{members:{},metadata:{}},internal:{initialized:!1,sinceLastCheckpoint:0,lastCheckpointHash:E}},O={},A={change:e.mkEvent(),checkpoint:e.mkEvent()};O.on=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].reg(n),O},O.off=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");return A[e].unreg(n),O},O.once=function(e,n){if("object"!=typeof A[e])throw new Error("unsupported event");var t=function(){n.apply(null,Array.prototype.slice.call(arguments)),A[e].unreg(t)};return A[e].reg(t),O},O.getState=function(){return e.clone(b.state)},O.getLastCheckpointHash=function(){return b.internal.lastCheckpointHash||-1};var w=function(){b.internal.pendingCheckpointId&&(d.clear(b.internal.pendingCheckpointId),delete b.internal.pendingCheckpointId),clearTimeout(b.internal.checkpointTimeout),delete b.internal.checkpointTimeout};O.stop=function(){b.internal.cpNetflux&&"function"==typeof b.internal.cpNetflux.stop?(b.internal.cpNetflux.stop(),w()):console.log("FAILED TO LEAVE")};var D,_,T,S=!1,x=function(){if(n.onCacheReady){var e=b.state;if(Object.keys(e.members||{}).length)n.onCacheReady(O);else{try{b.internal.cpNetflux.resetCache()}catch(e){console.error(e)}n.onCacheReady({error:"CORRUPTED"})}}},N=function(){S=!0,f(void 0,O)},I=function(e){e&&"EUNKNOWN"===e.type||(S?console.error("CHANNEL_ERROR",e):f(e))},C=function(e){e.state||(S=!1)},R=function(){console.log("ROSTER CONNECTED")},P=function(){return Boolean(S&&m)},k=function(n,t,r,o,a,i){D!==a&&b.internal.sinceLastCheckpoint++,D=a;var s=e.tryParse(n);if(s){var f,l;try{f=p(s,i,b)}catch(e){l=e.message}var h=c(a);if(d.expected(h)){if(l)return void d.handle(h,[l]);try{f?d.handle(h,[void 0,O.getState()]):(d.handle(h,["NO_CHANGE"]),console.log(n))}catch(e){console.log("CAUGHT",e)}}if("CHECKPOINT"===s[0]&&f?(P()&&A.checkpoint.fire(a),b.internal.sinceLastCheckpoint=0,b.internal.lastCheckpointHash=a):f&&P()&&A.change.fire(),w(),P()&&function(e,n){if(!u(e,n.state.members))return!1;var t=n.internal.sinceLastCheckpoint;return!(!t||"number"!=typeof t||t<25)}(m,b)){var v=1e3*Math.floor(20*Math.random())+5e3;b.internal.checkpointTimeout=setTimeout((function(){b.internal.pendingCheckpointId=O.checkpoint((function(e){e&&console.error(e)}))}),v)}}else console.error("could not parse")},M=function(n,t){var r=e.tryParse(n);return"CHECKPOINT"===r[0]&&v(r,t,b)},F=function(e,n){if(P()){var t=h.anon_rpc;if(t){var o=!1;try{o=v(e,y.myCurvePublic,b)}catch(e){return void n(e.message)}if(o){var a=T.encrypt(r(e)),i=c(a);return d.expect(i,(function(e,t){e?n(e):n(void 0,t,i)}),3e4),t.send("WRITE_PRIVATE_MESSAGE",[g,a],(function(e){if(e)return d.handle(i,[e.message||e])})),i}n("NO_CHANGE")}else n("ANON_RPC_NOT_READY")}else n("NOT_READY")};O.init=function(n,t){var r=e.once(e.mkAsync(t));if(b.internal.initialized)r("ALREADY_INITIALIZED");else if(s(n)){var o=e.clone(n);o.role="OWNER";var a={};a[m]=o,F(["CHECKPOINT",{members:a}],r)}else r("INVALID_ARGUMENTS")},O.checkpoint=function(n){var t=e.once(e.mkAsync(n));F(["CHECKPOINT",e.clone(b.state)],t)},O.add=function(n,t){var r=e.once(e.mkAsync(t));if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["ADD",o],r)}else r("INVALID_ARGUMENTS")},O.remove=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(Array.isArray(n)){var a=e.clone(n),i=[],s=Object.keys(o.members);a.forEach((function(e){-1!==s.indexOf(e)&&i.push(e)})),F(["RM",i],r)}else r("INVALID_ARGUMENTS")},O.describe=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state;if(!o)return r("UNINITIALIZED");if(s(n)){var a=e.clone(n);Object.keys(a).some((function(e){var n=a[e];if(s(n)||delete a[e],!s(o.members[e]))return!0;Object.keys(n).forEach((function(t){n[t]===o.members[e][t]&&delete n[t]}))}))?r("INVALID_ARGUMENTS"):F(["DESCRIBE",a],r)}else r("INVALID_ARGUMENTS")},O.metadata=function(n,t){var r=e.once(e.mkAsync(t)),o=b.state.metadata;if(s(n)){var a=e.clone(n);Object.keys(a).forEach((function(e){a[e]===o[e]&&delete a[e]})),F(["METADATA",a],r)}else r("INVALID_ARGUMENTS")},O.invite=function(n,t){var r=e.once(e.mkAsync(t));if(!b.state)return r("UNINITIALIZED");if(!b.internal.initialized)return r("UNINITIALIZED");if(s(n)){var o=e.clone(n);Object.keys(o).forEach((function(e){if(!l(e)||s(b.state.members[e]))return delete o[e]})),F(["INVITE",o],r)}else r("INVALID_ARGUMENTS")},O.accept=function(n,t){var r=e.once(e.mkAsync(t));"string"==typeof n&&l(n)?F(["ACCEPT",n],r):r("INVALID_ARGUMENTS")},o((function(e){h.anon_rpc&&h.anon_rpc.send("GET_METADATA",g,(function(n,t){if(n)return e.abort(),void console.error(n);_=b.internal.metadata=t&&t[0]||void 0}))})).nThen((function(e){if(!n.keys.teamEdPublic&&_&&_.validateKey&&(n.keys.teamEdPublic=_.validateKey),!n.keys.teamEdPublic)return e.abort(),void f("NO_VALIDATE_KEY");try{T=a.Team.createEncryptor(n.keys)}catch(n){return e.abort(),void f(n)}})).nThen((function(){"string"==typeof E&&console.log("Synchronizing from checkpoint"),b.internal.cpNetflux=t.start({lastKnownHash:E,network:n.network,channel:n.channel,crypto:T,validateKey:n.keys.teamEdPublic,owners:n.owners,Cache:n.Cache,isCacheCheckpoint:M,onCacheReady:x,onChannelError:I,onReady:N,onConnect:R,onConnectionChange:C,onMessage:k,noChainPad:!0})}))}else f("EXPECTED_STORE");else f("EXPECTED_CRYPTO_KEYS");else f("EXPECTED_CHANNEL");else f("EXPECTED_NETWORK")},i}(Z(),te(),y(),En(),qe(),M()))}(yt)),yt.exports}var gt,Et,bt={exports:{}};function Ot(){return Et||(Et=1,function(e){(()=>{const n=(e,n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E)=>{var b={};E=E||"undefined"!=typeof window&&window.nacl;var O=e.mkEvent(!0),A=function(){},w=function(e,t,r,o){t&&(o||(r.on("change",["drive",a.SHARED_FOLDERS],(function(o,s,c){if(c.length>3&&"password"===c[3]){var u=c[2],f=r.drive[a.SHARED_FOLDERS][u],l=t.manager.user.userObject.getHref?t.manager.user.userObject.getHref(f):f.href,d=n.parsePadUrl(l),h=n.getSecrets(d.type,d.hash,o);return setTimeout((function(){i.updatePassword(e.Store,{oldChannel:h.channel,password:s,href:l},e.store.network,(function(){console.log("Shared folder password changed")}))})),!1}})),r.on("disconnect",(function(){t.offline=!0,t.sendEvent("NETWORK_DISCONNECT",t.id)})),r.on("reconnect",(function(){t.offline=!1,t.sendEvent("NETWORK_RECONNECT",t.id)}))),r.on("change",[],(function(n,r,i){if(o){if(i[0]===a.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var s=[r.channel];r.rtChannel&&s.push(r.rtChannel),r.lastVersion&&s.push(r.lastVersion),t.pin(s,(function(e){e&&e.error&&console.error(e.error)}))}if(i[0]===a.FILES_DATA&&"object"==typeof n&&n.channel&&!r){var c=[n.channel];t.manager.findChannel(n.channel).some((function(e){return e.fId!==o}))||(n.rtChannel&&c.push(n.rtChannel),n.lastVersion&&c.push(n.lastVersion),t.unpin(c,(function(e){e&&e.error&&console.error(e)})))}}n&&!r&&Array.isArray(i)&&(i[0]===a.FILES_DATA||"drive"===i[0]&&i[1]===a.FILES_DATA)&&setTimeout((function(){e.Store.checkDeletedPad(n&&n.channel)})),t.sendEvent("DRIVE_CHANGE",{id:o,old:n,new:r,path:i})})),r.on("remove",[],(function(e,n){t.sendEvent("DRIVE_REMOVE",{id:o,old:e,path:n})})))},D=function(e,n){var t=e.teams[n];if(t){try{t.listmap.stop()}catch(e){}try{t.roster.stop()}catch(e){}t.proxy={},t.stopped=!0,delete e.teams[n],delete e.cache[n],delete e.store.proxy.teams[n],e.emit("LEAVE_TEAM",n,t.clients),e.updateMetadata(),e.store.calendar&&e.store.calendar.closeTeam(n),e.store.mailbox&&e.store.mailbox.close("team-"+n,(function(){}))}},_=function(e,n,t,r){n.rpc?r():t.edPrivate&&t.edPublic?h.create(e.store.network,t,(function(e,t){e?r(e):(n.rpc=t,n&&n.onRpcReadyEvt&&n.onRpcReadyEvt.fire(),r())}),d):r("EFORBIDDEN")},T=function(t,r,a,s,c,u,f){var l=e.once(e.mkAsync(f));if(t.cache[r])l();else{var d=a.proxy,h={id:r,proxy:d,listmap:a,clients:[],realtime:a.realtime,handleSharedFolder:function(e,n){!function(e,n,t,r){var o=e.teams[n];o&&(r?(o.sharedFolders[t]=r,w(e,o,r.proxy,t)):delete o.sharedFolders[t])}(t,r,e,n)},sharedFolders:{},roster:s,onRpcReadyEvt:e.mkEvent(!0),offline:!0};t.cache[r]=h,u&&h.clients.push(u),s.on("change",(function(){var n=s.getState(),o=e.find(t,["store","proxy","curvePublic"]);if(n.members&&Object.keys(n.members).length)if(n.members[o]){var a=e.find(t,["store","proxy","teams",r]);a&&(a.metadata=n.metadata),t.updateMetadata(),t.emit("ROSTER_CHANGE",r,h.clients)}else D(t,r);else console.error(JSON.stringify(n))})),s.on("checkpoint",(function(n){e.find(t,["store","proxy","teams",r,"keys","roster"]).lastKnownHash=n})),h.sendEvent=function(e,n,r){t.emit(e,n,h.clients.filter((function(e){return e!==r})))},h.getChatData=function(){var e=c.chat||{},t=e.edit||e.view;if(!t)return{};var o=n.getSecrets("chat",t);return{teamId:r,channel:o.channel,secret:o,validateKey:e.validateKey}},h.pin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.pin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})},h.unpin=function(e,n){c.drive.edPrivate?h.rpc?("function"!=typeof n&&console.error("expected a callback"),h.rpc.unpin(e,(function(e,t){n(e?{error:e}:{hash:t})}))):n({error:"TEAM_RPC_NOT_READY"}):n({error:"EFORBIDDEN"})};var p=t.store.proxy.teams[h.id],v=p.hash||p.roHash,y=n.getSecrets("team",v,p.password),m=h.manager=o.create(d.drive,{onSync:function(e){t.Store.onSync(r,e)},edPublic:c.drive.edPublic,pin:h.pin,unpin:h.unpin,loadSharedFolder:function(e,n,r,o){i.load({isNew:o,network:t.store.network||t.store.networkPromise,store:h,isNewChannel:t.Store.isNewChannel,Store:t.Store},e,n,r)},settings:{drive:e.find(t.store,["proxy","settings","drive"])},removeOwnedChannel:function(e,n){var o;"object"==typeof e?(e.teamId=r,o=e):o={channel:e,teamId:r},t.Store.removeOwnedChannel("",o,n)},Store:t.Store,store:t.store},{teamId:h.id,outer:!0,edPublic:c.drive.edPublic,loggedIn:!0,log:function(e){h.sendEvent("DRIVE_LOG",e)},rt:h.realtime,editKey:y.keys.secondaryKey,readOnly:Boolean(!y.keys.secondaryKey)});h.secondaryKey=y&&y.keys.secondaryKey,h.userObject=m.user.userObject,g((function(e){t.teams[r]=h,w(t,h,d);var n=t.store.network||t.store.networkPromise;i.loadSharedFolders(t.Store,n,h,h.proxy.drive,h.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}),!0)})).nThen((function(){t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),l()}))}},S=function(t,r,o,a,s,c,u){var f,l=a.getState(),d=e.find(t,["store","proxy","teams",r]);d&&(d.metadata=l.metadata),delete t.nocache[r],t.store.proxy.teams[r]&&g((function(e){T(t,r,o,a,s,c,e()),f=t.teams[r]||t.cache[r],s.drive.edPrivate&&_(t,f,s.drive,e((function(){})))})).nThen((function(e){f.userObject.fixFiles(),i.checkMigration(f.secondaryKey,f.proxy?.drive,f.userObject,e()),i.loadSharedFolders(t.Store,t.store.network,f,f.proxy?.drive,f.userObject,e,(function(e){t.progress+=70/(t.numberOfTeams*e.max),t.updateProgress({progress:t.progress})}))})).nThen((function(){if(f.rpc){var o=function(n,t){var r=n.teams[t];if(!r)return null;var o=r.manager.getChannelsList("pin"),a=n.store.proxy.teams[t];o.push(`${a.channel}#drive`);var i=e.find(a,["keys","chat","channel"]),s=e.find(a,["keys","roster","channel"]),c=e.find(a,["keys","mailbox","channel"]);if(i&&o.push(i),s&&o.push(s),c&&o.push(c),r.proxy.calendars){var u=Object.keys(r.proxy.calendars).map((function(e){return r.proxy.calendars[e].channel}));o=o.concat(u)}var f=r.roster.getState();return f.members&&Object.keys(f.members).forEach((function(e){var n=f.members[e];n.inviteChannel&&n.pending&&o.push(n.inviteChannel),n.previewChannel&&n.pending&&o.push(n.previewChannel)})),o.sort(),o}(t,r),a=n.hashChannelList(o);f.rpc.getServerHash((function(e,n){e?console.warn(e):n!==a&&f.rpc.reset(o,(function(e){e&&console.warn(e)}))}))}})).nThen((function(){f.offline=!1,t.onReadyHandlers[r]&&t.onReadyHandlers[r].forEach((function(e){("function"==typeof e.cb&&e.cb(),e.cId)&&(-1===f.clients.indexOf(e.cId)&&f.clients.push(e.cId))})),delete t.onReadyHandlers[r],t.store.modules.calendar&&t.store.modules.calendar.openTeam(r),u()}))},x=function(e,n,t,r,o,a){var i=function(){(e.cache[n]||e.teams[n])&&D(e,n),delete e.store.proxy.teams[n],delete e.onReadyHandlers[n],o.abort(),a({error:"ENOENT"})};t&&e.store.anon_rpc.send("IS_NEW_CHANNEL",t,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()}))),r&&e.store.anon_rpc.send("IS_NEW_CHANNEL",r,o((function(e,n){n&&n.length&&"object"==typeof n[0]&&n[0].isNew&&i()})))},N=function(t,r,o,a,i){var f=e.once(e.mkAsync(a)),l=r.hash||r.roHash,h=n.getSecrets("team",l,r.password),y=v.createEncryptor(h.keys);r.roHash||(r.roHash=n.getViewHashFromKeys(h));var E,b,A=r.keys;if(!A.chat.validateKey&&A.chat.edit){var w=n.getSecrets("chat",A.chat.edit);A.chat.validateKey=w.keys.validateKey}var _={curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate},N=A.roster||{},I=N.edit?v.Team.deriveMemberKeys(N.edit,_):v.Team.deriveGuestKeys(N.view||"");g((function(e){if(i)return d.getChannelCache(h.channel,e((function(n,t){t&&t.c||(e.abort(),f({error:"NOCACHE"}))}))),void d.getChannelCache(I.channel,e((function(n,t){var r=t&&t.c,o=t&&t.k;o&&!I.teamEdPublic&&(I.teamEdPublic=o),r||(e.abort(),f({error:"NOCACHE"}))})));t.Store.onReadyEvt.reg((()=>{x(t,o,h.channel,I.channel,e,f)}))})).nThen((function(n){var a={lm:!1,roster:!1,check:function(){this.lm&&this.roster&&i&&(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress}),T(t,o,b,E,A,null,n(f)),this.check=function(){})}},u={data:{},readOnly:!Boolean(h.keys.signKey),network:t.store.network||t.store.networkPromise,channel:h.channel,crypto:y,ChainPad:m,Cache:d,metadata:{validateKey:h.keys.validateKey||void 0},userName:"team",classic:!0,onMetadataUpdate:function(){var e=t.teams[o];e&&t.emit("ROSTER_CHANGE",o,e.clients)}};(b=p.create(u)).proxy.on("cacheready",(function(){a.lm=!0,a.check()})),b.proxy.on("ready",n()),b.proxy.on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,o)})),s.create({network:t.store.network||t.store.networkPromise,channel:I.channel,keys:I,store:t.store,lastKnownHash:N.lastKnownHash,onCacheReady:function(e){if(i){if(e&&"CORRUPTED"===e.error)return console.error("Corrupted roster cache, cant load this team offline",r),b&&"function"==typeof b.stop&&b.stop(),n.abort(),void f({error:"CACHE_CORRUPTED_ROSTER"});E=e,a.roster=!0,a.check()}},Cache:d},n((function(r,o){if(r)return n.abort(),console.error(r),void f({error:"ROSTER_ERROR"});E=o,N.lastKnownHash=E.getLastCheckpointHash();var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);a.members[i]&&O.reg((function(){if(N.edit){var e={},n=c.createData(t.store.proxy,!1);n.pending=!1,e[t.store.proxy.curvePublic]=n,E.describe(e,(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}}))})))})).nThen((function(n){var a=E.getState(),i=e.find(t,["store","proxy","curvePublic"]);if(!a.members||!Object.keys(a.members).length)return b.stop(),E.stop(),b.proxy={},f({error:"EINVAL"}),n.abort(),console.error(JSON.stringify(a)),void u.send("ROSTER_CORRUPTED");if(!a.members[i])return b.stop(),E.stop(),b.proxy={},delete t.store.proxy.teams[o],t.updateMetadata(),f({error:"EFORBIDDEN"}),void n.abort();var s=a.members[i],c=e.find(r,["keys","drive","edPrivate"]);if(r.hash&&c||-1===["ADMIN","MEMBER"].indexOf(s.role))r.hash&&c||"OWNER"!==s.role||u.send("TEAM_RIGHTS_OWNER");else{console.warn("Missing edit rights: demote to viewer");var l={};l[t.store.proxy.curvePublic]={role:"VIEWER"},E.describe(l,(function(e){u.send("TEAM_RIGHTS_FIXED"),delete r.hash,delete r.keys.drive.edPrivate,delete r.keys.chat.edit,e&&"NO_CHANGE"!==e&&console.error(e)}))}})).nThen((function(){i||(t.progress+=30/t.numberOfTeams,t.updateProgress({progress:t.progress})),S(t,o,b,E,A,null,f)}))},I=function(n,t,r,o){var a=t.team;if(!((a.hash||a.roHash)&&a.channel&&a.password&&a.keys&&a.metadata))return void o({error:"EINVAL"});let i=n.store.proxy.teams;if(Object.values(i).some((e=>e.channel===a.channel)))o({error:"EEXISTS"});else{var s=e.createRandomInteger();n.store.proxy.teams[s]=a,n.onReadyHandlers[s]=[],N(n,a,s,(function(e){e&&e.error||console.debug("Team joined:"+s);var t=n.store.proxy.teams[s];n.store.mailbox.open("team-"+s,t.keys.mailbox,(function(){}),!0,{owners:t.keys.drive.edPublic}),n.updateMetadata(),o(e)}))}},C=function(n,t,r){var o=e.find(n,["store","proxy","teams",t]);if(!o)return{};var a=e.clone(o);return r||(delete a.hash,delete a.keys.drive.edPrivate,delete a.keys.chat.edit),delete a.owner,a},R=function(t,r,o){if(!r)return!0;var a=e.find(t,["store","proxy","teams",r]);if(!a)return!0;var s=t.teams[r];if(!s)return!0;var c=n.getSecrets("team",o||a.roHash,a.password);if(i.upgrade(a.channel,c),s.userObject&&s.userObject.setReadOnly(!c.keys.secondaryKey,c.keys.secondaryKey),c.keys.secondaryKey)try{t.store.modules.calendar.upgradeTeam(r)}catch(e){console.error(e)}!c.keys.secondaryKey&&s.rpc&&s.rpc.destroy();var u=e.find(s,["proxy","drive","sharedFolders"]);Object.keys(u||{}).forEach((function(t){var r=s.manager.getSharedFolderData(t),o=n.parsePadUrl(r.href||r.roHref),a=n.getSecrets(o.type,o.hash,r.password);i.upgrade(a.channel,a);var c=e.find(s,["manager","folders",t,"userObject"]);c&&c.setReadOnly(!a.keys.secondaryKey,a.keys.secondaryKey)})),t.updateMetadata(),t.emit("ROSTER_CHANGE_RIGHTS",r,s.clients)},P=function(t,r,o,a,i){if(r){var s=e.find(t,["store","proxy","teams",r]);if(s){var c=t.onReadyHandlers[r],u=t.teams[r];if(s.channel===a.channel&&s.password===a.password)if(o?(s.hash=a.hash,s.keys.drive.edPrivate=a.keys.drive.edPrivate,s.keys.chat.edit=a.keys.chat.edit):(delete s.hash,delete s.keys.drive.edPrivate,delete s.keys.chat.edit),u||!Array.isArray(c))if(u){if(o){_(t,u,s.keys.drive,(function(){u.manager.addPin(u.pin,u.unpin)}));var f=n.getSecrets("team",a.hash,s.password);u.secondaryKey=f&&f.keys.secondaryKey;var l=v.createEncryptor(f.keys);u.listmap.setReadOnly(!1,l)}else delete u.secondaryKey,u.rpc&&u.rpc.destroy&&u.rpc.destroy(),u.manager.removePin(),u.listmap.setReadOnly(!0);R(t,r,a.hash),i(!0)}else i(!1);else c.push({cb:function(){P(t,r,o,a,i)}});else i(!1)}else i(!1)}else i(!1)},k=function(n,t,r,o,a){t?e.find(n,["store","proxy","teams",t])&&n.teams[t]?n.store.mailbox.sendTo("TEAM_EDIT_RIGHTS",{state:o,teamData:C(n,t,o)},{channel:r.notifications,curvePublic:r.curvePublic},a):a({error:"ENOENT"}):a({error:"EINVAL"})},M=function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]),s=n.teams[a];if(i&&s)if(s.roster)if(t.curvePublic&&t.data){var c,u=s.roster.getState().members[t.curvePublic];g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(u.pendingOwner=Array.isArray(c.pending_owners)&&-1!==c.pending_owners.indexOf(u.edPublic),"OWNER"!==u.role||"OWNER"===t.data.role){"VIEWER"===u.role&&"VIEWER"!==t.data.role&&k(n,a,u,!0,(function(e){o(e)})),"VIEWER"!==u.role&&"VIEWER"===t.data.role&&k(n,a,u,!1,(function(e){o(e)}));var r={};r[t.curvePublic]=t.data,s.roster.describe(r,(function(e){e?o({error:e}):o()}))}else!function(n,t,r,o){var a=e.once(o);if(t){var i=e.find(n,["store","proxy","teams",t]);if(i){var s=n.teams[t];if(s){var c=r.pendingOwner;g((function(t){var o=c?"RM_PENDING_OWNERS":"RM_OWNERS",s=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a(n)},u=function(e){n.Store.setPadMetadata(null,{channel:e,command:o,value:[r.edPublic]},t(s))};u(i.channel),u(e.find(i,["keys","roster","channel"])),u(e.find(i,["keys","chat","channel"]))})).nThen((function(e){var n={};n[r.curvePublic]={role:"ADMIN",pendingOwner:!1},s.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(e){n.store.mailbox.sendTo("RM_OWNER",{teamChannel:i.channel,title:i.metadata.name,pending:c},{channel:r.notifications,curvePublic:r.curvePublic},e())})).nThen((function(){a()}))}else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(n,a,u,(function(e){e?(console.error(e),o({error:e})):o()}))}))}else o({error:"MISSING_DATA"});else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"EINVAL"})},F=function(e,n){Object.keys(e.onReadyHandlers).forEach((function(t){var r=-1;e.onReadyHandlers[t].some((function(e,t){if(e.cId===n)return r=t,!0})),-1!==r&&e.onReadyHandlers[t].splice(r,1)})),Object.keys(e.teams).forEach((function(t){var r=e.teams[t].clients,o=r.indexOf(n);-1!==o&&r.splice(o,1)}))},L=function(n,t,r,o){var a,i=t.seeds;try{a=f.derivePreviewKeys(i.preview)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})},H=function(n,t,r,o){var a,i;g((function(r){!function(n,t,r,o){var a,i=t.bytes64;try{a=f.deriveInviteKeys(i)}catch(e){return void o({error:"INVALID_SEEDS"})}l.get({channel:a.channel,type:"pad",version:2,keys:{cryptKey:a.cryptKey}},(function(n,t){if(n)o({error:n});else if(t){var r=e.tryParse(t);o(r||{error:"parseError"})}else o({error:"DELETED"})}),{network:n.store.network,initialState:"{}"})}(n,t,0,r((function(e){if(e&&e.error)return r.abort(),void o(e);a=e})))})).nThen((function(t){var r=e.find(a,["teamData","channel"]),u=n.store.proxy.teams||{};if(Object.keys(u).some((function(e){return u[e].channel===r})))return t.abort(),void o({error:"ALREADY_MEMBER"});var f=e.find(a,["teamData","keys","roster"]),l=a.ephemeral;if(!f||!l)return t.abort(),void o({error:"INVALID_INVITE_CONTENT"});var h=v.Team.deriveMemberKeys(f.edit,l);s.create({network:n.store.network||n.store.networkPromise,channel:f.channel,keys:h,store:n.store,Cache:d},t((function(e,r){if(e)return t.abort(),console.error(e),void o({error:"ROSTER_ERROR"});var a=c.createData(n.store.proxy,!1),s=r.getState();i=s.members[l.curvePublic],r.accept(a.curvePublic,t((function(e){if(r.stop(),e)return t.abort(),console.error(e),void o({error:"ACCEPT_ERROR"})})))})))})).nThen((function(){var e={};i.remaining&&1!==i.remaining||_(n,e,a.ephemeral,(function(n){if(!n){var t=e.rpc;i.inviteChannel&&t.removeOwnedChannel(i.inviteChannel,(function(e){e&&console.error(e)})),i.previewChannel&&t.removeOwnedChannel(i.previewChannel,(function(e){e&&console.error(e)}))}})),I(n,{team:a.teamData},0,o)}))},j=function(n){if(n){if(n.keys&&n.keys.mailbox)return n.keys.mailbox;var t=e.find(n,["keys","roster","edit"]);if(t){var r=E.hash(e.decodeUTF8(t)),o=r.slice(0,32),a=e.uint8ArrayToHex(r.slice(32,48)),i=E.box.keyPair.fromSecretKey(o);return{channel:a,viewed:[],keys:{curvePrivate:e.encodeBase64(i.secretKey),curvePublic:e.encodeBase64(i.publicKey)}}}}};return b.init=function(t,r,o){var a={},i=t.store;if(i.loggedIn&&i.proxy.edPublic&&!i.modules?.team){var h={store:i,Store:t.Store,pinPads:t.pinPads,emit:o,onReadyHandlers:{},teams:{},cache:{},nocache:{},updateMetadata:t.updateMetadata,updateProgress:t.updateLoadingProgress,progress:0};i.proxy.teams||(i.proxy.teams={});var b=i.proxy.teams;h.numberOfTeams=Object.keys(b).length,h.store.proxy.on("change",["teams"],(function(e,n,t){"hash"===t[2]&&R(h,t[1],n)})),h.store.proxy.on("remove",["teams"],(function(e,n){"hash"===n[2]&&R(h,n[1])}));var w=function(n,t){if(!n||!t)return!0;try{var r=e.decodeBase64(n),o=E.sign.keyPair.fromSecretKey(r);return e.encodeBase64(o.publicKey)===t}catch(e){return!1}};Object.keys(b).forEach((function(n){h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,r((function(e){if(e){delete h.onReadyHandlers[n],delete h.cache[n],"NOCACHE"===e?.error&&(h.nocache[n]=!0);var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" cache ready")})),d.isEnabled())})),a.onReady=function(t){var r;r={},Object.keys(b).forEach((function(t){try{var o=b[t],a=r[o.channel],i=e.find(o,["keys","drive","edPrivate"]),s=e.find(o,["keys","drive","edPublic"]);if(s?i&&s&&!w(i,s)&&(u.send("TEAM_CORRUPTED_EDPRIVATE"),delete b[t].keys.drive.edPrivate,i=void 0):u.send("TEAM_CORRUPTED_EDPUBLIC"),o.hash&&2===n.parseTypeHash("drive",o.hash).version&&40!==o.hash.length&&u.send("TEAM_CORRUPTED_HASH"),!a)return void(r[o.channel]=t);var c=b[a],f=e.find(c,["keys","drive","edPrivate"]),l=e.find(c,["keys","chat","edit"]),d=e.find(o,["keys","chat","edit"]);!c.hash&&o.hash&&(c.hash=o.hash),!f&&i&&(c.keys.drive.edPrivate=i),!l&&d&&(c.keys.chat.edit=d),h.store.proxy.duplicateTeams=h.store.proxy.duplicateTeams||{},h.store.proxy.duplicateTeams[t]=b[t],delete b[t]}catch(e){console.error(e)}}));var o=function(e){return!b[e]&&(D(h,e),delete h.onReadyHandlers[e],!0)};Object.keys(h.teams).forEach(o),Object.keys(h.onReadyHandlers).forEach((function(n){if(!o(n)){var r=h.store.proxy.teams[n],a=e.find(r,["keys","roster","channel"]),i=e.once(e.mkAsync(t()));g((function(e){x(h,n,r.channel,a,e,i)})),h.onReadyHandlers[n].push({cb:i})}})),Object.keys(b).forEach((function(n){h.onReadyHandlers[n]||h.teams[n]||(h.onReadyHandlers[n]=[],e.find(b,[n,"keys","mailbox"])||(b[n].keys.mailbox=j(b[n])),N(h,b[n],n,t((function(e){if(e){var t="string"==typeof e?e:e.type||e.message;return u.send("TEAM_LOADING_ERROR="+t),void console.error(e)}console.debug("Team "+n+" ready")}))))})),A(),O.fire()},a.getTeam=function(e){return h.teams[e]},a.getTeamsData=function(n){var t={},r=!1;return-1!==["drive","teams","settings"].indexOf(n)&&(r=!0),Object.keys(b).forEach((function(n){if(h.teams[n]){var o=h.teams[n].proxy||{},a=o.drive&&Object.keys(o.drive.filesData||{}).length,i=o.drive&&Object.keys(o.drive.sharedFolders||{}).length;t[n]={owner:b[n].owner,name:b[n].metadata.name,channel:b[n].channel,numberPads:a,numberSf:i,roster:e.find(b[n],["keys","roster","channel"]),edPublic:e.find(b[n],["keys","drive","edPublic"]),avatar:e.find(b[n],["metadata","avatar"]),viewer:!e.find(b[n],["keys","drive","edPrivate"]),notifications:e.find(b[n],["keys","mailbox","channel"]),curvePublic:e.find(b[n],["keys","mailbox","keys","curvePublic"]),validKeys:w(e.find(b[n],["keys","drive","edPrivate"]),e.find(b[n],["keys","drive","edPublic"]))},r&&h.teams[n]&&(t[n].secondaryKey=h.teams[n].secondaryKey),h.teams[n]&&(t[n].hasSecondaryKey=Boolean(h.teams[n].secondaryKey))}})),t},a.getTeams=function(){return Object.keys(h.teams)};a.removeFromTeam=function(e,n,t){if(b[e]&&(!t||function(e,n){var t=h.teams[e];if(t){var r=t.roster&&t.roster.getState();if(r.members)return(r.members[n]||{}).pending}}(e,n)))if(h.onReadyHandlers[e])h.onReadyHandlers[e].push({cb:function(){h.teams[e].roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)}))}});else{var r=h.teams[e];r?r.roster.remove([n],(function(e){e&&"NO_CHANGE"!==e&&console.error(e)})):console.error("TEAM MODULE ERROR")}},a.changeMyRights=function(e,n,t,r){P(h,e,n,t,r)},a.updateMyData=function(e){Object.keys(h.teams).forEach((function(n){var t=h.teams[n];if(t.roster){var r={};r[e.curvePublic]=e,t.roster.describe(r,(function(e){e&&console.error(e)}))}}))},a.removeClient=function(e){F(h,e)};return a.execCommand=function(t,r,o){var a=r.cmd,i=r.data;if("SUBSCRIBE"!==a)if("LIST_TEAMS"!==a)if("OPEN_TEAM_CHAT"!==a)if("GET_TEAM_ROSTER"!==a)if("GET_TEAM_METADATA"!==a)if("SET_TEAM_METADATA"!==a){if("OFFER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=e.once(o),i=t.teamId;if(i){var s=e.find(n,["store","proxy","teams",i]);if(s){var c=n.teams[i];if(c)if(c.roster)if(t.curvePublic){var u=c.roster.getState().members[t.curvePublic];g((function(t){var r=function(e){var n=e&&e.error;if(n)return console.error(n),t.abort(),void a({error:n})},o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"ADD_PENDING_OWNERS",value:[u.edPublic]},t(r))};o(s.channel),o(e.find(s,["keys","roster","channel"])),o(e.find(s,["keys","chat","channel"]))})).nThen((function(e){var n={};n[u.curvePublic]={role:"OWNER"},c.roster.describe(n,e((function(e){e&&console.error(e)})))})).nThen((function(t){n.store.mailbox.sendTo("ADD_OWNER",{teamChannel:s.channel,chatChannel:e.find(s,["keys","chat","channel"]),rosterChannel:e.find(s,["keys","roster","channel"]),title:s.metadata.name},{channel:u.notifications,curvePublic:u.curvePublic},t())})).nThen((function(){a()}))}else a({error:"MISSING_DATA"});else a({error:"NO_ROSTER"});else a({error:"ENOENT"})}else a({error:"ENOENT"})}else a({error:"EINVAL"})}(h,i,0,o);if("ANSWER_OWNERSHIP"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a,i=n.store.proxy.teams;if(Object.keys(i).forEach((function(e){if(i[e].channel===t.teamChannel)return a=e,!0})),a){var s=e.find(n,["store","proxy","teams",a]);if(s){var c=n.teams[a];if(c)if(c.roster){var u={};t.answer?s.owner=!0:(u[n.store.proxy.curvePublic]={role:"ADMIN"},c.roster.describe(u,(function(e){e?o({error:e}):o()})))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("DESCRIBE_USER"!==a){if("INVITE_TO_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=n.user;if(i&&i.curvePublic&&i.notifications){delete i.channel,delete i.lastKnownHash,i.pending=!0;var s={};s[i.curvePublic]=i,s[i.curvePublic].role="VIEWER",a.roster.add(s,(function(n){n&&"NO_CHANGE"!==n?r({error:n}):e.store.mailbox.sendTo("INVITE_TO_TEAM",{team:C(e,o)},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)}))}))}else r({error:"MISSING_DATA"})}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);if("LEAVE_TEAM"!==a){if("JOIN_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void I(h,i,0,o);if("REMOVE_USER"!==a){if("DELETE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a],s=e.find(n,["store","proxy","teams",a]);if(i&&s){var c=i.roster.getState(),f=e.find(n,["store","proxy","curvePublic"]),l=c.members[f];if(!l||"OWNER"!==l.role)return o({error:"EFORBIDDEN"});var d=e.find(n,["store","proxy","edPublic"]),h=e.find(s,["keys","drive","edPublic"]);g((function(e){n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:s.channel},e((function(n){if(n&&n.error)return e.abort(),o({error:n.error});var t=n[0];t&&Array.isArray(t.owners)&&-1!==t.owners.indexOf(d)||(e.abort(),o({error:"EFORBIDDEN"}))})))})).nThen((function(t){i.proxy.delete=!0;var r=i.manager.getChannelsList("owned"),o=e.Saferphore.create(10);r.forEach((function(e){var r=t();o.take((function(t){var o=!1;g((function(r){32===e.length&&n.Store.anonRpcMsg(null,{msg:"GET_METADATA",data:e},r((function(e){if(e&&e.error)return t(),void r.abort();var n=e[0];if(!n||!Array.isArray(n.owners)||-1===n.owners.indexOf(h))return t(),void r.abort();o=n.owners.some((function(e){return e!==h}))})))})).nThen((function(t){o?n.Store.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[h]},t()):i.rpc.removeOwnedChannel(e,t((function(e){e&&console.error(e)})))})).nThen((function(){t(),r()}))}))}))})).nThen((function(t){i.rpc.removePins(t((function(e){e&&console.error(e)})));var r=e.find(s,["keys","mailbox","channel"]);i.rpc.removeOwnedChannel(r,t((function(e){e&&console.error(e)})));var o=e.find(s,["keys","roster","channel"]);n.store.rpc.removeOwnedChannel(o,t((function(e){e&&console.error(e)})));var a=e.find(s,["keys","chat","channel"]);n.store.rpc.removeOwnedChannel(a,t((function(e){e&&console.error(e)}))),n.store.rpc.removeOwnedChannel(s.channel,t((function(e){e&&console.error(e)})))})).nThen((function(){u.send("TEAM_DELETION"),D(n,a),o()}))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);if("CREATE_TEAM"===a)return h.store.offline?void o({error:"OFFLINE"}):void function(t,r,o,a){var i,f=e.once(a),l=n.createChannelId(),h=n.createRandomHash("team",l),b=n.getSecrets("team",h,l),O=n.getViewHashFromKeys(b),A=E.sign.keyPair(),w=E.box.keyPair(),_=v.Team.createSeed(),T=v.Team.deriveMemberKeys(_,{curvePublic:t.store.proxy.curvePublic,curvePrivate:t.store.proxy.curvePrivate}),x=n.getSecrets("chat"),N=n.getHashes(x),I={network:t.store.network,channel:b.channel,data:{},validateKey:b.keys.validateKey,crypto:v.createEncryptor(b.keys),logLevel:1,classic:!0,ChainPad:m,Cache:d,owners:[t.store.proxy.edPublic]};g((function(e){s.create({network:t.store.network||t.store.networkPromise,channel:T.channel,owners:[t.store.proxy.edPublic],keys:T,store:t.store,lastKnownHash:void 0,newTeam:!0,Cache:d},e((function(n,r){if(n)return e.abort(),console.error(n),void f({error:"ROSTER_ERROR"});i=r;var o=c.createData(t.store.proxy);delete o.channel,i.init(o,e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})));var n,r=v.createEncryptor(x.keys),o={network:t.store.network,channel:x.channel,noChainPad:!0,crypto:r,metadata:{validateKey:x.keys.validateKey,owners:[t.store.proxy.edPublic]}},a=e();o.onReady=function(){n&&n.stop(),a()},o.onError=function(){e.abort(),f({error:"CHAT_INIT_ERROR"})},n=y.start(o)})).nThen((function(e){i.metadata({name:r.name},e((function(n){if(n)return e.abort(),void f({error:"ROSTER_INIT_ERROR"})})))})).nThen((function(){var a=e.createRandomInteger();I.onMetadataUpdate=function(){var e=t.teams[a];e&&t.emit("ROSTER_CHANGE",a,e.clients)};var s=p.create(I),c=s.proxy;c.version=2,c.on("ready",(function(){var d={mailbox:{channel:n.createChannelId(),viewed:[],keys:{curvePrivate:e.encodeBase64(w.secretKey),curvePublic:e.encodeBase64(w.publicKey)}},drive:{edPrivate:e.encodeBase64(A.secretKey),edPublic:e.encodeBase64(A.publicKey)},chat:{edit:N.editHash,view:N.viewHash,validateKey:x.keys.validateKey,channel:x.channel},roster:{channel:T.channel,edit:_,view:T.viewKeyStr}},p=t.store.proxy.teams[a]={owner:!0,channel:b.channel,hash:h,roHash:O,password:l,keys:d,metadata:{name:r.name}};c.drive={},S(t,a,s,i,d,o,(function(){u.send("TEAM_CREATION"),t.store.mailbox.open("team-"+a,p.keys.mailbox,(function(){}),!0,{owners:p.keys.drive.edPublic}),t.updateMetadata(),f()}))})).on("error",(function(e){e&&void 0!==e.loaded&&!e.loaded&&f({error:"ECONNECT"}),e&&e.error&&"EDELETED"===e.error&&D(t,a)}))}))}(h,i,t,o);if("GET_EDITABLE_FOLDERS"!==a)if("CREATE_INVITE_LINK"!==a){if("GET_PREVIEW_CONTENT"!==a)return"ACCEPT_LINK_INVITATION"===a?h.store.offline?void o({error:"OFFLINE"}):void H(h,i,0,o):void 0;L(h,i,0,o)}else!function(n,t,r,o){var a=e.mkAsync(e.once(o)),i=t.teamId,s=n.teams[t.teamId],u=t.seeds,d=t.bytes64;if(i&&s){var h,p=s.roster;try{h=p.getState().metadata.name}catch(e){return void a({error:"TEAM_NAME_ERR"})}var v=t.message,y=t.name,m=t.hash,E=e.find(n,["store","proxy","teams",i]);try{var b=f.encryptHash(m,E.hash)}catch(e){console.error(e)}var O=f.derivePreviewKeys(u.preview),A=f.deriveInviteKeys(d),w=f.generateKeys(),D=t.role||"VIEWER",_=t.uses||1;g((function(e){!function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamName:h,message:v,author:c.createData(n.store.proxy,!1),displayName:y},i={channel:O.channel,type:"pad",version:2,keys:{cryptKey:O.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(i,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}(),function(){var t=f.generateSignPair(),r={initialState:"{}",network:n.store.network,metadata:{owners:[n.store.proxy.edPublic,w.edPublic]}};r.metadata.validateKey=t.validateKey;var o={teamData:C(n,i,"MEMBER"===D),ephemeral:{edPublic:w.edPublic,edPrivate:w.edPrivate,curvePublic:w.curvePublic,curvePrivate:w.curvePrivate}},s={channel:A.channel,type:"pad",version:2,keys:{cryptKey:A.cryptKey,validateKey:t.validateKey,signKey:t.signKey}};l.put(s,JSON.stringify(o),e((function(n){if(n)return console.error("CRYPTPUT_ERR",n),e.abort(),void a({error:"SET_PREVIEW_CONTENT"})})),r)}()})).nThen((function(e){s.pin([A.channel,O.channel],(function(e){e&&e.error&&console.error(e.error)})),f.createRosterEntry(s.roster,{curvePublic:w.curvePublic,content:{curvePublic:w.curvePublic,displayName:t.name,pending:!0,remaining:_,totalUses:_,role:D,hash:b,inviteChannel:A.channel,previewChannel:O.channel}},e((function(n){n&&(e.abort(),a(n))})))})).nThen((function(){a()}))}else a({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=n.teams[a];if(i){var s=i.manager.folders||{};o(Object.keys(s).filter((function(e){return!s[e].proxy.version})).map((function(n){var t=e.find(i,["user","userObject"]);return{name:e.find(s,[n,"proxy","metadata","title"]),path:t?t.findFile(n)[0]:[]}})))}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster)if(n.curvePublic){var i=a.roster.getState().members[n.curvePublic];a.roster.remove([n.curvePublic],(function(t){if(!t)return i&&i.notifications?void e.store.mailbox.sendTo("KICKED_FROM_TEAM",{pending:n.pending,teamChannel:C(e,o).channel,teamName:C(e,o).metadata.name},{channel:i.notifications,curvePublic:i.curvePublic},(function(e){r(e)})):r();r({error:t})}))}else r({error:"MISSING_DATA"});else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=e.store.proxy.curvePublic;a.roster.remove([i],(function(n){n?r({error:n}):(D(e,o),r())}))}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o)}else M(h,i,0,o)}else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];a?a.offline?r({error:"OFFLINE"}):a.roster?(n.metadata&&delete n.metadata.offline,a.roster.metadata(n.metadata,(function(t){if(t)r({error:t});else{var a=e.store.proxy.teams[o];a&&(a.metadata=n.metadata),r()}}))):r({error:"NO_ROSTER"}):r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=n.teamId;if(o){var a=e.teams[o];if(a)if(a.roster){var i=(a.roster.getState()||{}).metadata||{};i.offline=a.offline,r(i)}else r({error:"NO_ROSTER"});else r({error:"ENOENT"})}else r({error:"EINVAL"})}(h,i,0,o);else!function(n,t,r,o){var a=t.teamId;if(a){var i=e.find(n,["store","proxy","teams",a]);if(i){var s=n.teams[a];if(s)if(s.roster){var c,u=(s.roster.getState()||{}).members||{};g((function(e){n.Store.getPadMetadata(null,{channel:i.channel},e((function(e){c=e&&e.error?s.listmap.metadata||{}:e})))})).nThen((function(){if(n.pending_owners=c.pending_owners,Array.isArray(c.pending_owners)&&c.pending_owners.forEach((function(t){var r;if(Object.keys(u).some((function(e){if(u[e].edPublic===t)return r=u[e],!0})),!r&&i.owner){var o=function(e){n.Store.setPadMetadata(null,{channel:e,command:"RM_PENDING_OWNERS",value:[t]},(function(){}))};return o(i.channel),o(e.find(i,["keys","roster","channel"])),void o(e.find(i,["keys","chat","channel"]))}r.pendingOwner=!0})),n.store.messenger){var t=s.getChatData();(n.store.messenger.getOnlineList(t.channel)||[]).forEach((function(e){u[e]&&(u[e].online=!0)}))}Object.keys(u).forEach((function(e){var n=u[e];if(n.inviteChannel&&n.hash)if(i.hash)try{n.hash=f.decryptHash(n.hash,i.hash)}catch(e){console.error(e)}else delete n.hash})),o(u)}))}else o({error:"NO_ROSTER"});else o({error:"ENOENT"})}else o({error:"ENOENT"})}else o({error:"EINVAL"})}(h,i,0,o);else!function(e,n,t,r){var o=e.teams[n.teamId];if(o){var a=function(){e.emit("ROSTER_CHANGE",n.teamId,o.clients)};e.store.messenger?e.store.messenger.openTeamChat(o.getChatData(),a,t,r):A=function(){e.store.messenger.openTeamChat(o.getChatData(),a,t,r)}}else r({error:"ENOENT"})}(h,i,t,o);else!function(n){var t=e.clone(b);Object.keys(t).forEach((function(e){h.teams[e]?t[e].offline=h.teams[e].offline:(t[e].error=!0,h.nocache[e]&&(t[e].offline=!0))})),n(t)}(o);else!function(e,n,t,r){F(e,t);try{e.store.messenger.removeClient(t)}catch(e){}if(A=function(){},n)if(!e.onReadyHandlers[n]||e.teams[n])if(e.teams[n]){var o=e.teams[n].clients;-1===o.indexOf(t)&&o.push(t),r()}else r({error:"EINVAL"});else-1===e.onReadyHandlers[n].indexOf(t)&&e.onReadyHandlers[n].push({cId:t,cb:r});else r()}(h,i,t,o)},a}},b.anonGetPreviewContent=function(e,n,t){L(e,n,0,t)},b};e.exports&&(e.exports=n(Z(),te(),Y(),je(),ze(),Ue(),We(),mt(),wn(),Ae(),(gt||(gt=1,function(e){e.exports&&(e.exports=function(e,n,t,r){var o={},a=e.encodeBase64,i=e.decodeBase64;o.generateKeys=function(){var e=t.sign.keyPair(),n=t.box.keyPair();return{edPublic:a(e.publicKey),edPrivate:a(e.secretKey),curvePublic:a(n.publicKey),curvePrivate:a(n.secretKey)}},o.generateSignPair=function(){var e=t.sign.keyPair();return{validateKey:a(e.publicKey),signKey:a(e.secretKey)}};var s=function(r){var o=n.dispenser(i(r));return{channel:e.uint8ArrayToHex(o(16)),cryptKey:o(t.secretbox.keyLength)}};o.deriveInviteKeys=s,o.derivePreviewKeys=s,o.createRosterEntry=function(e,n,t){var r={};r[n.curvePublic]=n.content,e.invite(r,t)};var c=e.decodeUTF8;return o.encryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.encrypt(e,a)},o.decryptHash=function(e,n){var o=c(n),a=t.hash(o).subarray(0,32);return r.decrypt(e,a)},o}(Z(),Ne(),N(),M()))}(bt)),bt.exports),Rn(),fe(),Cn(),g(),M(),y(),w(),qe(),N()))})()}(vt)),vt.exports}var At,wt={exports:{}};function Dt(){return At||(At=1,function(e){(()=>{const n=(e,n,t,r,o,a,i={},s,c)=>{var u=e.Curve,f={setCustomize:e=>{i=e.Messages}},l="MSG",d="UNFRIEND",h="MAP_ID",p="MAP_ID_ACK",v=function(e){return JSON.parse(JSON.stringify(e))},y=function(e){for(var n=Object.keys(e).length,t=new Uint8Array(n),r=0;r{const n=p.store.network||e;n.on("message",(function(e,n){N(p,e,n)})),n.on("disconnect",(function(){p.emit("DISCONNECT",null,C(p))})),n.on("reconnect",(function(){p.emit("RECONNECT",null,C(p))}))}));return h.networkPromise?.then(b),p.store.network&&b(),f.onFriendUpdate=function(e){var n=g(h.proxy,e);if(n&&n.channel){var t=p.channels[n.channel];t&&p.emit("UPDATE_DATA",{info:v(n),channel:n.channel},t.clients)}},f.onFriendAdded=function(e){if(p.friendsClients.length){var n=g(p.store.proxy,e.curvePublic);if("object"==typeof n)if(n.channel){var t=n.channel;p.channels[t]||P(p,null,n,(function(){u("FRIEND",{curvePublic:n.curvePublic},p.friendsClients)}))}}},f.onFriendRemoved=function(e,n){I(p,e,n)},f.getOnlineList=function(e){return function(e,n){var t=e.channels[n];if(t){var r=[],o=m(e.store.proxy,!1);return r.push(o.curvePublic),t.wc.members.forEach((function(n){if(n!==e.store.network.historyKeeper){var o=t.mapId[n]||{};o.curvePublic&&-1===r.indexOf(o.curvePublic)&&r.push(o.curvePublic)}})),r}}(p,e)},f.storeValidateKey=function(e,n){p.validateKeys[e]=n},f.leavePad=function(e){delete p.validateKeys[e],Object.keys(p.channels).some((function(n){var t=p.channels[n];if(t.padChan===e){t.wc&&t.wc.leave();var r=p.store.network;return t.onReconnect&&r.off("reconnect",t.onReconnect),t.stopped=!0,delete p.channels[n],!0}}))},f.openTeamChat=function(n,r,o,a){!function(n,r,o,a,i){var s=o,c=s.channel,u=s.secret;if(c&&u){var f=t.once(t.mkAsync((function(){n.emit("TEAMCHAT_READY",c,[r]),i({readOnly:"object"==typeof u.keys&&!u.keys.validateKey,channel:c})}))),l=n.channels[c];if(l)l.onReady.reg((function(){-1===l.clients.indexOf(r)&&l.clients.push(r),f()}));else{u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var d=e.createEncryptor(u.keys),h=u.keys&&u.keys.validateKey||s.validateKey,p={teamId:o.teamId,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:d,channel:c,isTeamChat:!0,decrypt:function(e){return d.decrypt(e,h)},clients:[r],onUserlistUpdate:a,onReady:f};R(n,p)}}else i({error:"EINVAL"})}(p,o,n,r,a)},f.removeClient=function(e){!function(e,n){var t=e.friendsClients.indexOf(n);-1!==t&&e.friendsClients.splice(t,1),Object.keys(e.channels).forEach((function(t){var r=e.channels[t],o=r.clients,a=o.indexOf(n);if(-1!==a&&o.splice(a,1),0===o.length){r.wc&&r.wc.leave();var i=e.store.network;return r.onReconnect&&i.off("reconnect",r.onReconnect),r.stopped=!0,delete e.channels[t],!0}}))}(p,e)},f.execCommand=function(n,r,s){var u=r.cmd,f=r.data;"INIT_FRIENDS"!==u?"GET_ROOMS"!==u?"GET_MUTED_USERS"!==u?"GET_USERLIST"!==u?"OPEN_PAD_CHAT"!==u?"GET_MY_INFO"!==u?"REMOVE_FRIEND"!==u?"CANCEL_FRIEND"!==u?"MUTE_USER"!==u?"UNMUTE_USER"!==u?"GET_STATUS"!==u?"GET_MORE_HISTORY"!==u?"SEND_MESSAGE"!==u?"SET_CHANNEL_HEAD"!==u?"CLEAR_OWNED_CHANNEL"!==u||function(e,n,t){var r=e.channels[n];r?e.store.rpc?e.store.rpc.clearOwnedChannel(n,(function(o){t({error:o}),o||(r.messages=[],e.emit("CLEAR_CHANNEL",n,r.clients))})):t({error:"RPC_NOT_READY"}):t({error:"NO_CHANNEL"})}(p,f,s):_(p,f.id,f.sig,s):function(e,n,t,r){var o=e.channels[n];if(o)if(o.readOnly)r({error:"FORBIDDEN"});else if(e.store.network.webChannels.some((function(e){if(e.id===o.wc.id)return!0}))){var s=e.store.proxy||{},c=[l,s.curvePublic,+new Date,t];if(!o.isFriendChat){var u=s[a.displayNameKey]||i.anonymous+"#"+(s.uid||e.store.noDriveUid).slice(0,5);c.push(u)}var f=JSON.stringify(c),d=o.encrypt(f);o.wc.bcast(d).then((function(){x(e,o,d),r()}),(function(e){r({error:e})}))}else r({error:"NO_SUCH_CHANNEL"});else r({error:"NO_CHANNEL"})}(p,f.id,f.content,s):function(e,n,r,o,a){if("function"==typeof a)if("string"==typeof r){var i=e.channels[n];if(void 0!==i){var s=t.uid();A(e,s,n,a);var c=["GET_HISTORY_RANGE",i.id,{from:r,count:o,txid:s}],u=e.store.network;u.sendto(u.historyKeeper,JSON.stringify(c)).then((function(){}),(function(e){console.error(e)}))}else console.error("chan is undefined. we're going to have a problem here")}else a([])}(p,f.id,f.sig,f.count,s):function(e,n,t){var r=e.channels[n];if(r){r.onUserlistUpdate&&r.onUserlistUpdate();var o=e.store.proxy||{};t(r.wc.members.some((function(n){if(n!==e.store.network.historyKeeper){var t=r.mapId[n]||void 0;return!!t&&t.curvePublic!==o.curvePublic}})))}else t("NO_SUCH_CHANNEL")}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};delete i[n],e.emit("UPDATE_MUTED",null,C(e)),o(Object.keys(i).length)}(p,f,s):function(e,n,r){var o=t.once(t.mkAsync(r)),a=e.store.proxy,i=a.mutedUsers=a.mutedUsers||{};i[n.curvePublic]||(i[n.curvePublic]=n,e.emit("UPDATE_MUTED",null,C(e))),o()}(p,f,s):function(e,n,r){var o=t.once(r);"function"==typeof o?e.Store.cancelFriendRequest(n,o):console.error("NO_CALLBACK")}(p,f,s):function(e,n,r){var a=t.once(r);if("function"==typeof a){var i=e.store.proxy,s=g(i,n);if(!s)return console.error("friend is not valid"),void a({error:"INVALID_FRIEND"});var c=e.channels[s.channel];if(e.store.mailbox&&s.curvePublic&&s.notifications)o.removeFriend(e.store,n,(function(n){n&&n.error?a({error:n.error}):(e.updateMetadata(),a(n))}));else if(c)try{var u=[d,i.curvePublic,+new Date],f=JSON.stringify(u),l=c.encrypt(f);c.wc.bcast(l).then((function(){I(e,n,s.channel),S(e,n,(function(){a()}))}),(function(t){t?a({error:t}):(I(e,n,s.channel),S(e,n,(function(){a()})))}))}catch(e){a({error:e})}else a({error:"NO_SUCH_CHANNEL"})}else console.error("NO_CALLBACK")}(p,f,s):function(e,n){var t=e.store.proxy||{};n({curvePublic:t.curvePublic,displayName:t[a.displayNameKey]})}(p,s):function(n,r,o,a){var i=o.channel,s=t.once(t.mkAsync((function(){n.emit("PADCHAT_READY",i,[r]),a()}))),c=n.channels[i];if(c)c.onReady.reg((function(){-1===c.clients.indexOf(r)&&c.clients.push(r),s()}));else{var u=o.secret;u.keys.cryptKey&&(u.keys.cryptKey=y(u.keys.cryptKey));var f=e.createEncryptor(u.keys),l=u.keys&&u.keys.validateKey||n.validateKeys[u.channel],d={padChan:o.secret&&o.secret.channel,readOnly:"object"==typeof u.keys&&!u.keys.validateKey,encryptor:f,channel:o.channel,isPadChat:!0,decrypt:function(e){return f.decrypt(e,l)},clients:[r],onReady:s};R(n,d)}}(p,n,f,s):function(e,n,t){var r=e.channels[n.id];if(r)if(r.isFriendChat){var o=O(e,n.id);if(!o)return void t({error:"NO_SUCH_FRIEND"});t([o])}else t([]);else t({error:"NO_SUCH_CHANNEL"})}(p,f,s):function(e,n){var t=e.store.proxy;if(!n)return t.mutedUsers||{};n(t.mutedUsers||{})}(p,s):function(e,n,t){var r=e.store.proxy;if(n&&n.curvePublic){var o=n.curvePublic,a=g(r,o);if(!a)return void t({error:"NO_SUCH_FRIEND"});var i=e.channels[a.channel];return i?void t([{id:i.id,isFriendChat:!0,name:a.displayName,lastKnownHash:a.lastKnownHash,curvePublic:a.curvePublic,messages:i.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.padChat){var s=e.channels[n.padChat];return s?void t([{id:s.id,isPadChat:!0,messages:s.messages}]):void t({error:"NO_SUCH_CHANNEL"})}if(n&&n.teamChat){var c=e.channels[n.teamChat];return c?void t([{id:c.id,isTeamChat:!0,messages:c.messages}]):void t({error:"NO_SUCH_CHANNEL"})}var u=Object.keys(e.channels).map((function(n){var t,r,o,a=e.channels[n];if(a.isFriendChat){var i=O(e,n);if(!i)return null;t=i.displayName,r=i.lastKnownHash,o=i.curvePublic}else{if(a.isPadChat)return;if(a.isTeamChat)return}return{id:a.id,isFriendChat:a.isFriendChat,name:t,lastKnownHash:r,curvePublic:o,messages:a.messages}})).filter((function(e){return e}));t(u)}(p,f,s):function(e,n,t){var r=E(e.store.proxy);c((function(t){Object.keys(r).forEach((function(o){if("me"!==o){var a=v(r[o]);"object"==typeof a&&a.channel&&P(e,n,a,t())}else delete r.me.channel}))})).nThen((function(){-1===e.friendsClients.indexOf(n)&&e.friendsClients.push(n),t()}))}(p,n,s)},f},f};e.exports&&(e.exports=n(M(),te(),Z(),je(),wn(),Y(),void 0,on(),qe()))})()}(wt)),wt.exports}var _t,Tt={exports:{}};function St(){return _t||(_t=1,function(e){(()=>{const n=(e,n,t,r)=>{var o={},a={};var i=function(n,t,o,a,i){var s,c=e.once(e.mkAsync(i)),u=function(n,t){if(!t)return e.find(n.store,["proxy","edPublic"]);var r=e.find(n,["store","proxy","teams",t]);return e.find(r,["keys","drive","edPublic"])}(n,a),f=n.Store,l=0,d=0,h=0;r((function(e){f.getFileSize(null,{channel:t},e((function(n){return n&&n.error?(e.abort(),void c(n)):void 0===n.size?(e.abort(),void c({error:"ENOENT"})):void(l=n.size)}))),f.getHistory(null,{channel:t,lastKnownHash:o},e((function(n){if(n&&n.error)return e.abort(),void c(n);if(!Array.isArray(n))return e.abort(),void c({error:"EINVAL"});if(n.length){s=n[0].hash;var t=n.map((function(e){return e.msg}));d=t.join("\n").length}})),!0),f.getPadMetadata(null,{channel:t},e((function(n){if((!n||!n.error)&&n&&"object"==typeof n)return h=JSON.stringify(n).length,n&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(u)?void 0:(e.abort(),void c({error:"INSUFFICIENT_PERMISSIONS"}))})))})).nThen((function(){c({size:l-h-d,hash:s})}))};return a.GET_HISTORY_SIZE=function(o,a,s,c){if(o.store.loggedIn&&o.store.rpc){var u=a.channels;if(Array.isArray(u)){var f=[];a.account?u=function(r){var o=[],a=e.find(r.store,["proxy","edPublic"]);-1!==(e.find(r.store,["driveMetadata","owners"])||[]).indexOf(a)&&o.push(r.store.driveChannel);var i=r.store.proxy.profile;if(i){var s=i.edit?n.hrefToHexChannelId("/profile/#"+i.edit,null):null;s&&o.push(s)}r.store.proxy.todo&&o.push(n.hrefToHexChannelId("/todo/#"+r.store.proxy.todo,null));var c=r.store.proxy.mailboxes;if(c){var u=Object.keys(c).map((function(e){return{lastKnownHash:c[e].lastKnownHash,channel:c[e].channel}}));Array.prototype.push.apply(o,u)}var f=r.store.proxy[t.SHARED_FOLDERS];if(f){var l=Object.keys(f).map((function(e){var n=f[e];if(n&&n.owners&&Array.isArray(n.owners)&&-1!==n.owners.indexOf(a))return n.channel})).filter(Boolean);Array.prototype.push.apply(o,l)}return o}(o):a.team&&(u=function(n,t){let r=e.find(n.store,["proxy","teams",t]);if(!r)return[];let o=[r.channel],a=r.keys.roster;return o.push({channel:a.channel,lastKnownHash:a.lastKnownHash}),o}(o,a.team));var l=0,d=[];r((function(e){u.forEach((function(n){var t,r=n;"object"==typeof n&&n.channel&&(r=n.channel,t=n.lastKnownHash),i(o,r,t,a.teamId,e((function(e){e&&e.error?f.push(e.error):(l+=e.size,e.hash&&d.push({channel:r,hash:e.hash}))})))}))})).nThen((function(){c({warning:f.length?f:void 0,channels:d,size:l})}))}else c({error:"EINVAL"})}else c({error:"INSUFFICIENT_PERMISSIONS"})},a.TRIM_HISTORY=function(e,n,t,o){if(e.store.loggedIn&&e.store.rpc){var a=n.channels;if(Array.isArray(a)){var i=function(e,n){if(!n)return e.store.rpc;var t=e.store.modules.team;if(t){var r=t.getTeam(n);if(r)return r.rpc}}(e,n.teamId);if(i){var s=[];r((function(e){a.forEach((function(n){i.trimHistory(n,e((function(e){e&&s.push(e)})))}))})).nThen((function(){1===a.length&&s.length?o({error:s[0]}):o({warning:s.length?s:void 0})}))}else o({error:"ENORPC"})}else o({error:"EINVAL"})}else o({error:"INSUFFICIENT_PERMISSIONS"})},o.init=function(e,n,t){var r={};if(e.store){var o={store:e.store,Store:e.Store,pinPads:e.pinPads,updateMetadata:e.updateMetadata,emit:t};return r.execCommand=function(e,n,t){var r=n.cmd,i=n.data;try{a[r](o,i,e,t)}catch(e){console.error(e)}},r}},o};e.exports&&(e.exports=n(Z(),te(),Ue(),qe()))})()}(Tt)),Tt.exports}var xt,Nt={exports:{}},It={exports:{}};function Ct(){return xt||(xt=1,function(e){(()=>{const n=e=>{var n={};const t=globalThis;var r=function(){},o=n.getWeekNo=function(e,n){"number"!=typeof n&&(n=1);var t=new Date(e.getFullYear(),0,1),r=t.getDay()-n;r=r>=0?r:r+7;var o,a=Math.floor((e.getTime()-t.getTime())/864e5)+1;if(r<4){if((o=Math.floor((a+r-1)/7)+1)>52){var i=new Date(e.getFullYear()+1,0,1).getDay()-n;o=(i=i>=0?i:i+7)<4?1:53}}else o=Math.floor((a+r-1)/7);return o},a=function(e){var n=new Date(e.getFullYear(),0,0),t=e-n+60*(n.getTimezoneOffset()-e.getTimezoneOffset())*1e3;return Math.floor(t/864e5)},i=n.DAYORDER=["SU","MO","TU","WE","TH","FR","SA"],s=function(e){var n=Number(e.slice(0,-2)),t=i.indexOf(e.slice(-2));return n?[n,t]:t},c=function(e,n){var t=e.getDay();t>=(n="number"==typeof n?n:1)?e.setDate(e.getDate()-(t-n)):e.setDate(e.getDate()-(7+t-n))},u=function(e){return e.getFullYear()+"-"+(e.getMonth()+1)+"-"+e.getDate()},f={daily:function(e,n){e.setDate(e.getDate()+n)},weekly:function(e,n){e.setDate(e.getDate()+7*n)},monthly:function(e,n){e.setMonth(e.getMonth()+n)},yearly:function(e,n){e.setFullYear(e.getFullYear()+n)}},l={month:function(e,n,t){var r=new Date(n.start),o=(t-(e.getMonth()+1)+12)%12,a=e.getMonth()+o;if(e.setMonth(a),e.setDate(r.getDate()),e.getMonth()===a)return!0},weekno:function(e,n,t,r){var a=r&&r.wkst;"number"!=typeof a&&(a=1);var i=new Date(n.start),s=new Date(e.getFullYear(),11,31),u=o(s,a),f=1===u;1===u&&(u=52);var l=o(e,a);if(!t||t>u)return!1;t<0&&(t=u+t+1);var d=t-l,h=new Date(+e);h.setDate(h.getDate()+7*d),c(h,a);var p="aaaaaaa".split("").map((function(n,t){var r=new Date(+h);if(r.setDate(r.getDate()+t),r.getFullYear()===e.getFullYear())return r.toLocaleDateString()!==i.toLocaleDateString()&&r})).filter(Boolean);return 1===t&&f&&(c(s,a),"aaaaaaa".split("").some((function(n,t){var r=new Date(+s);if(r.setDate(r.getDate()+t),r.toLocaleDateString()!==i.toLocaleDateString())return r.getFullYear()>e.getFullYear()||void p.push(r)}))),p.length?p:void 0}};l.yearday=function(e,n,t){var r=e.getFullYear();if(function(e,n){if(!("number"!=typeof n||Math.abs(n)<1||Math.abs(n)>366))return n<0&&(n=a(new Date(e.getFullYear(),11,31))+n+1),e.setMonth(0),e.setDate(n),!0}(e,t)&&e.getFullYear()===r)return!0},l.monthday=function(e,n,t,r){if("number"!=typeof t||Math.abs(t)<1||Math.abs(t)>31)return!1;var o=function(e,n){var t=e.getMonth();n<0&&(n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate()+n+1);return e.setDate(n),e.getMonth()===t};if("monthly"===r.freq)return o(e,t);var a="aaaaaaaaaaaa".split("").map((function(n,r){var a=new Date(e.getFullYear(),r,1);return o(a,t)?a:void 0})).filter(Boolean);return a.length?a:void 0},l.day=function(e,n,t,r){var o,a=s(t);Array.isArray(a)&&(o=a[0],a=a[1]);var i=[];if(![0,1,2,3,4,5,6].includes(a))return!1;var c,u=function(e){if(o){var n=[];"aaaaaaaaaaaa".split("").some((function(t,r){if(void 0===e||r===e){var a,s=i.filter((function(e){return e.getMonth()===r}));return a=o<0?s.length+o:o-1,n.push(s[a]),void 0!==e&&r===e}})),i=n.filter(Boolean)}};if("yearly"===r.freq){c=new Date(+e);for(var f=e.getFullYear();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getFullYear()===f;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(),i}if("monthly"===r.freq){c=new Date(+e);for(var l=e.getMonth();c.getDay()!==a;)c.setDate(c.getDate()+1);for(;c.getMonth()===l;)i.push(new Date(+c)),c.setDate(c.getDate()+7);return u(l),i}if("weekly"===r.freq)for(;e.getDay()!==a;)e.setDate(e.getDate()+1);return!0};var d={month:function(e,n){return e.filter((function(e){return n.includes(e.getMonth()+1)}))},weekno:function(e,n,t){return e.filter((function(e){var r=t&&t.wkst;"number"!=typeof r&&(r=1);var a=new Date(e.getFullYear(),11,31),i=o(a,r);1===i&&(i=52);var s=o(e,r);return n.some((function(e){return e>0?e===s:s===i+e+1}))}))},yearday:function(e,n){return e.filter((function(e){var t=a(e),r=a(new Date(e.getFullYear(),11,31));return n.some((function(e){return e>0?e===t:t===r+e+1}))}))},monthday:function(n,t){return n.filter((function(n){var r=e.clone(t);return(r=r.map((function(e){e<0&&(e=new Date(n.getFullYear(),n.getMonth()+1,0).getDate()+e+1);return e}))).includes(n.getDate())}))},day:function(e,n,t){return e.filter((function(e){var r=e.toLocaleDateString(),o="yearly";return("monthly"===t.freq||"yearly"===t.freq&&t.by&&t.by.month)&&(o="monthly"),n.some((function(n){var t,a=s(n);if(Array.isArray(a)&&(t=a[0],a=a[1]),!t)return e.getDay()===a;var i=new Date(e.getFullYear(),e.getMonth(),1);return"yearly"===o&&i.setMonth(0),l.day(i,{},n,{freq:o}).some((function(e){return e.toLocaleDateString()===r}))}))}))},setpos:function(n,t){var r=n.slice(),o=e.deduplicateString(t.slice().map((function(e){return e>0?e-1:0!==e?r.length+e:void 0})));return n.filter((function(e){var n=r.indexOf(e);return o.includes(n)}))}},h=["month","weekno","yearday","monthday","day"],p=["month","monthday","day"];n.getMonthId=function(e){return e.getFullYear()+"-"+e.getMonth()};var v=t.CP_calendar_cache={},y={};n.resetCache=function(){v=t.CP_calendar_cache={},y={}};var m=function(n){if(!n.recUpdate)return[];var t={},r=n.recUpdate.from;return Object.keys(r||{}).forEach((function(e){var n=r[e];n.recurrenceRule&&(t[e]=n.recurrenceRule)})),Object.keys(t).sort((function(e,n){return Number(e)-Number(n)})).map((function(n){var r=e.clone(t[n]);if(f[r.freq]&&!(r.interval&&r.interval<1))return r._start=Number(n),r})).filter(Boolean)};n.getRecurring=function(n,o){t.CP_DEV_MODE&&(r=console.warn);var i=[];return n.forEach((function(n){var t=n.split("-"),s=new Date(t[0],t[1]),g=new Date(+s);g.setMonth(g.getMonth()+1),g.setMilliseconds(-1),r("Compute month",s.toLocaleDateString()),(o||[]).forEach((function(n){var t=new Date(n.start),o=new Date(n.end),E=n,b=n.recurrenceRule;if(b){var O=m(n),A=O.shift();if(!(t>=g)){for(var w=b.until,D=O.slice(),_=A;_&&_._start&&_._startn)){var t;if(n.getFullYear()===e.getFullYear())t=a(n)-a(e);else{var r=new Date(e.getFullYear(),11,31);for(t=a(r)-a(e)+a(n);r.getFullYear()+1=S)){r("Start iteration",a.toLocaleDateString());var m=function(n,t,o){var a=e.clone(t),i=new Date(a.start),s=a.id.split("|")[0],u=o.toLocaleDateString();v[s]=v[s]||{};var y=n.interval||1,m=n.freq,g=[],E=function(e,t){g=d[e](g,t,n)},b=function(e){return function(t){var r=new Date(+o);"yearly"===n.freq?(r.setMonth(0),r.setDate(1)):"monthly"===n.freq?r.setDate(1):"weekly"===n.freq?c(r,n.wkst):n.freq;var s=l[e](r,a,t,n);if(s)if(Array.isArray(s))s=s.filter((function(e){return e.toLocaleDateString()!==i.toLocaleDateString()})),Array.prototype.push.apply(g,s);else{if(r.toLocaleDateString()===i.toLocaleDateString())return;g.push(r)}}},O=e.once((function(){f[m](o,y)})),A=function(){"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O();var e=new Date(+o);if("monthly"===m||"yearly"===m){if(e.setDate(i.getDate()),e.getDate()!==i.getDate())return;if("yearly"===m&&e.getMonth()!==i.getMonth())return}g.push(e)};if(Array.isArray(v[s][u]))return r("Get cache",s,u),"monthly"===m?o.setDate(15):"yearly"===m&&1===i.getMonth()&&29===i.getDate()&&o.setDate(28),O(),v[s][u];if(n.by&&"yearly"===m){var w=h.slice(),D=!1;(n.by.weekno||n.by.yearday||n.by.monthday||n.by.day)&&(w.shift(),D=!0);var _=!0;w.forEach((function(e){var t=n.by[e];t&&(_?(t.forEach(b(e)),_=!1):"day"===e?n.by.yearday||n.by.monthday||n.by.weekno?E("day",n.by.day):n.by.day.forEach(b("day")):E(e,t))})),n.by.month&&D&&E("month",n.by.month)}n.by&&"monthly"===m&&(n.by.monthday||n.by.day?n.by.monthday?n.by.monthday.forEach(b("monthday")):n.by.day&&n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month),n.by.day&&n.by.monthday&&E("day",n.by.day)),n.by&&"weekly"===m&&(n.by.day?n.by.day.forEach(b("day")):A(),n.by.month&&E("month",n.by.month)),n.by&&"daily"===m&&(A(),p.forEach((function(e){var t=n.by[e];t&&E(e,t)}))),g.sort((function(e,n){return e-n})),n.by&&n.by.setpos&&E("setpos",n.by.setpos),n.by&&Object.keys(n.by).length?O():A();var T=[];return g=g.filter((function(e){var n=new Date(+e).toLocaleDateString();return!T.includes(n)&&(T.push(n),!0)})),r("Set cache",s,u),v[s][u]=g,g}(b,n,a);if(r("Iteration results",JSON.stringify(m.map((function(e){return new Date(e).toLocaleDateString()})))),!m.length)return a.getFullYear()=S)return r(h.toLocaleDateString(),"count"),w=!0,!0;if(h>=g)return r(h.toLocaleDateString(),"endMonth"),w=!0,!0;if(b.until&&h>b.until)return r(h.toLocaleDateString(),"until"),w=!0,!0;if(!(h=g||h=s){if(y[c.id]&&y[c.id].includes(c.start))return;y[c.id]=y[c.id]||[],y[c.id].push(c.start)}if(E.timeZone&&!c.isAllDay){var m=function(e,n,t){var r=function(e,n){let t=e.toLocaleString("en-CA",{timeZone:n,hour12:!1}).replace(", ","T");return t+="."+e.getMilliseconds().toString().padStart(3,"0"),-(new Date(t+"Z")-e)},o=Intl.DateTimeFormat().resolvedOptions().timeZone,a=r(n,e)-r(t,e);return r(n,o)-r(t,o)-a}(E.timeZone,t,h);c.start+=m,c.end+=m}return i.push(c),D?(v(),!0):void 0}r(h.toLocaleDateString(),"start")})),w||N(a)}};N(t),r("Added this month (all events)",i.map((function(e){return new Date(e.start).toLocaleDateString()})))}}}}}))})),i},n.getAllOccurrences=function(e){if(!e.recurrenceRule)return[e.start];var t=e.recurrenceRule;if(!t.until&&!t.count)return!1;var r=[e.start],o=new Date(e.start);o.setDate(15);for(var a=[],i=0;(a=n.getRecurring([n.getMonthId(o)],[e]))&&(t.count?r.length=1e4;)t.setDate(t.getDate()-a),o++;return{d:o*=a,h:(t=new Date(n)).getHours()-r.getHours(),m:t.getMinutes()-r.getMinutes()}};return n.applyUpdates=function(e){return e.forEach((function(e){if(e.raw={start:e.start,end:e.end},e.recUpdate){var n,t=e.recUpdate.from||{},r=e.recUpdate.one||{},o=e.start,a=m(e).filter((function(e){return e._start>o})).shift(),i=function(n,t){var r=n[t],o=new Date(e.raw[t]);o.setDate(o.getDate()+r.d),o.setHours(o.getHours()+r.h),o.setMinutes(o.getMinutes()+r.m),e[t]=+o};(n=t,Object.keys(n).sort((function(e,n){return Number(e)-Number(n)}))).forEach((function(n){o",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},o={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var n=e%100;if(n>3&&n<21)return"th";switch(n%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},a=function(e,n){return void 0===n&&(n=2),("000"+e).slice(-1*n)},i=function(e){return!0===e?1:0};function s(e,n){var t;return function(){var r=this;clearTimeout(t),t=setTimeout((function(){return e.apply(r,arguments)}),n)}}var c=function(e){return e instanceof Array?e:[e]};function u(e,n,t){if(!0===t)return e.classList.add(n);e.classList.remove(n)}function f(e,n,t){var r=window.document.createElement(e);return n=n||"",t=t||"",r.className=n,void 0!==t&&(r.textContent=t),r}function l(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function d(e,n){return n(e)?e:e.parentNode?d(e.parentNode,n):void 0}function h(e,n){var t=f("div","numInputWrapper"),r=f("input","numInput "+e),o=f("span","arrowUp"),a=f("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?r.type="number":(r.type="text",r.pattern="\\d*"),void 0!==n)for(var i in n)r.setAttribute(i,n[i]);return t.appendChild(r),t.appendChild(o),t.appendChild(a),t}function p(e){try{return"function"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(n){return e.target}}var v=function(){},y=function(e,n,t){return t.months[n?"shorthand":"longhand"][e]},m={D:v,F:function(e,n,t){e.setMonth(t.months.longhand.indexOf(n))},G:function(e,n){e.setHours(parseFloat(n))},H:function(e,n){e.setHours(parseFloat(n))},J:function(e,n){e.setDate(parseFloat(n))},K:function(e,n,t){e.setHours(e.getHours()%12+12*i(new RegExp(t.amPM[1],"i").test(n)))},M:function(e,n,t){e.setMonth(t.months.shorthand.indexOf(n))},S:function(e,n){e.setSeconds(parseFloat(n))},U:function(e,n){return new Date(1e3*parseFloat(n))},W:function(e,n,t){var r=parseInt(n),o=new Date(e.getFullYear(),0,2+7*(r-1),0,0,0,0);return o.setDate(o.getDate()-o.getDay()+t.firstDayOfWeek),o},Y:function(e,n){e.setFullYear(parseFloat(n))},Z:function(e,n){return new Date(n)},d:function(e,n){e.setDate(parseFloat(n))},h:function(e,n){e.setHours(parseFloat(n))},i:function(e,n){e.setMinutes(parseFloat(n))},j:function(e,n){e.setDate(parseFloat(n))},l:v,m:function(e,n){e.setMonth(parseFloat(n)-1)},n:function(e,n){e.setMonth(parseFloat(n)-1)},s:function(e,n){e.setSeconds(parseFloat(n))},u:function(e,n){return new Date(parseFloat(n))},w:v,y:function(e,n){e.setFullYear(2e3+parseFloat(n))}},g={D:"(\\w+)",F:"(\\w+)",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"(\\w+)",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"(\\w+)",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},E={Z:function(e){return e.toISOString()},D:function(e,n,t){return n.weekdays.shorthand[E.w(e,n,t)]},F:function(e,n,t){return y(E.n(e,n,t)-1,!1,n)},G:function(e,n,t){return a(E.h(e,n,t))},H:function(e){return a(e.getHours())},J:function(e,n){return void 0!==n.ordinal?e.getDate()+n.ordinal(e.getDate()):e.getDate()},K:function(e,n){return n.amPM[i(e.getHours()>11)]},M:function(e,n){return y(e.getMonth(),!0,n)},S:function(e){return a(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,n,t){return t.getWeek(e)},Y:function(e){return a(e.getFullYear(),4)},d:function(e){return a(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return a(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,n){return n.weekdays.longhand[e.getDay()]},m:function(e){return a(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a,s=e.isMobile,c=void 0!==s&&s;return function(e,n,r){var o=r||i;return void 0===t.formatDate||c?n.split("").map((function(n,r,a){return E[n]&&"\\"!==a[r-1]?E[n](e,o,t):"\\"!==n?n:""})).join(""):t.formatDate(e,n,o)}},O=function(e){var n=e.config,t=void 0===n?r:n,a=e.l10n,i=void 0===a?o:a;return function(e,n,o,a){if(0===e||e){var s,c=a||i,u=e;if(e instanceof Date)s=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)s=new Date(e);else if("string"==typeof e){var f=n||(t||r).dateFormat,l=String(e).trim();if("today"===l)s=new Date,o=!0;else if(/Z$/.test(l)||/GMT$/.test(l))s=new Date(e);else if(t&&t.parseDate)s=t.parseDate(e,f);else{s=t&&t.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var d=void 0,h=[],p=0,v=0,y="";p=0?new Date:new Date(E.config.minDate.getTime()),t=D(E.config);n.setHours(t.hours,t.minutes,t.seconds,n.getMilliseconds()),E.selectedDates=[n],E.latestSelectedDateObj=n}void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var n="keydown"===e.type,t=p(e),r=t;void 0!==E.amPM&&t===E.amPM&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]);var o=parseFloat(r.getAttribute("min")),s=parseFloat(r.getAttribute("max")),c=parseFloat(r.getAttribute("step")),u=parseInt(r.value,10),f=u+c*(e.delta||(n?38===e.which?1:-1:0));if(void 0!==r.value&&2===r.value.length){var l=r===E.hourElement,d=r===E.minuteElement;fs&&(f=r===E.hourElement?f-s-i(!E.amPM):o,d&&L(void 0,1,E.hourElement)),E.amPM&&l&&(1===c?f+u===23:Math.abs(f-u)>c)&&(E.amPM.textContent=E.l10n.amPM[i(E.amPM.textContent===E.l10n.amPM[0])]),r.value=a(f)}}(e);var r=E._input.value;N(),be(),E._input.value!==r&&E._debouncedChange()}function N(){if(void 0!==E.hourElement&&void 0!==E.minuteElement){var e,n,t=(parseInt(E.hourElement.value.slice(-2),10)||0)%24,r=(parseInt(E.minuteElement.value,10)||0)%60,o=void 0!==E.secondElement?(parseInt(E.secondElement.value,10)||0)%60:0;void 0!==E.amPM&&(e=t,n=E.amPM.textContent,t=e%12+12*i(n===E.l10n.amPM[1]));var a=void 0!==E.config.minTime||E.config.minDate&&E.minDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.minDate,!0);if(void 0!==E.config.maxTime||E.config.maxDate&&E.maxDateHasTime&&E.latestSelectedDateObj&&0===A(E.latestSelectedDateObj,E.config.maxDate,!0)){var s=void 0!==E.config.maxTime?E.config.maxTime:E.config.maxDate;(t=Math.min(t,s.getHours()))===s.getHours()&&(r=Math.min(r,s.getMinutes())),r===s.getMinutes()&&(o=Math.min(o,s.getSeconds()))}if(a){var c=void 0!==E.config.minTime?E.config.minTime:E.config.minDate;(t=Math.max(t,c.getHours()))===c.getHours()&&r=12)]),void 0!==E.secondElement&&(E.secondElement.value=a(t)))}function R(e){var n=p(e),t=parseInt(n.value)+(e.delta||0);(t/1e3>1||"Enter"===e.key&&!/[^\d]/.test(t.toString()))&&X(t)}function P(e,n,t,r){return n instanceof Array?n.forEach((function(n){return P(e,n,t,r)})):e instanceof Array?e.forEach((function(e){return P(e,n,t,r)})):(e.addEventListener(n,t,r),void E._handlers.push({remove:function(){return e.removeEventListener(n,t)}}))}function k(){ve("onChange")}function M(e,n){var t=void 0!==e?E.parseDate(e):E.latestSelectedDateObj||(E.config.minDate&&E.config.minDate>E.now?E.config.minDate:E.config.maxDate&&E.config.maxDate=0&&A(e,E.selectedDates[1])<=0}(n)&&!me(n)&&a.classList.add("inRange"),E.weekNumbers&&1===E.config.showMonths&&"prevMonthDay"!==e&&t%7==1&&E.weekNumbers.insertAdjacentHTML("beforeend",""+E.config.getWeek(n)+""),ve("onDayCreate",a),a}function j(e){e.focus(),"range"===E.config.mode&&re(e)}function K(e){for(var n=e>0?0:E.config.showMonths-1,t=e>0?E.config.showMonths:-1,r=n;r!=t;r+=e)for(var o=E.daysContainer.children[r],a=e>0?0:o.children.length-1,i=e>0?o.children.length:-1,s=a;s!=i;s+=e){var c=o.children[s];if(-1===c.className.indexOf("hidden")&&$(c.dateObj))return c}}function U(e,n){var t=ee(document.activeElement||document.body),r=void 0!==e?e:t?document.activeElement:void 0!==E.selectedDateElem&&ee(E.selectedDateElem)?E.selectedDateElem:void 0!==E.todayDateElem&&ee(E.todayDateElem)?E.todayDateElem:K(n>0?1:-1);void 0===r?E._input.focus():t?function(e,n){for(var t=-1===e.className.indexOf("Month")?e.dateObj.getMonth():E.currentMonth,r=n>0?E.config.showMonths:-1,o=n>0?1:-1,a=t-E.currentMonth;a!=r;a+=o)for(var i=E.daysContainer.children[a],s=t-E.currentMonth===a?e.$i+n:n<0?i.children.length-1:0,c=i.children.length,u=s;u>=0&&u0?c:-1);u+=o){var f=i.children[u];if(-1===f.className.indexOf("hidden")&&$(f.dateObj)&&Math.abs(e.$i-u)>=Math.abs(n))return j(f)}E.changeMonth(o),U(K(o),0)}(r,n):j(r)}function B(e,n){for(var t=(new Date(e,n,1).getDay()-E.l10n.firstDayOfWeek+7)%7,r=E.utils.getDaysInMonth((n-1+12)%12,e),o=E.utils.getDaysInMonth(n,e),a=window.document.createDocumentFragment(),i=E.config.showMonths>1,s=i?"prevMonthDay hidden":"prevMonthDay",c=i?"nextMonthDay hidden":"nextMonthDay",u=r+1-t,l=0;u<=r;u++,l++)a.appendChild(H(s,new Date(e,n-1,u),u,l));for(u=1;u<=o;u++,l++)a.appendChild(H("",new Date(e,n,u),u,l));for(var d=o+1;d<=42-t&&(1===E.config.showMonths||l%7!=0);d++,l++)a.appendChild(H(c,new Date(e,n+1,d%o),d,l));var h=f("div","dayContainer");return h.appendChild(a),h}function V(){if(void 0!==E.daysContainer){l(E.daysContainer),E.weekNumbers&&l(E.weekNumbers);for(var e=document.createDocumentFragment(),n=0;n1||"dropdown"!==E.config.monthSelectorType)){var e=function(e){return!(void 0!==E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&eE.config.maxDate.getMonth())};E.monthsDropdownContainer.tabIndex=-1,E.monthsDropdownContainer.innerHTML="";for(var n=0;n<12;n++)if(e(n)){var t=f("option","flatpickr-monthDropdown-month");t.value=new Date(E.currentYear,n).getMonth().toString(),t.textContent=y(n,E.config.shorthandCurrentMonth,E.l10n),t.tabIndex=-1,E.currentMonth===n&&(t.selected=!0),E.monthsDropdownContainer.appendChild(t)}}}function G(){var e,n=f("div","flatpickr-month"),t=window.document.createDocumentFragment();E.config.showMonths>1||"static"===E.config.monthSelectorType?e=f("span","cur-month"):(E.monthsDropdownContainer=f("select","flatpickr-monthDropdown-months"),E.monthsDropdownContainer.setAttribute("aria-label",E.l10n.monthAriaLabel),P(E.monthsDropdownContainer,"change",(function(e){var n=p(e),t=parseInt(n.value,10);E.changeMonth(t-E.currentMonth),ve("onMonthChange")})),Y(),e=E.monthsDropdownContainer);var r=h("cur-year",{tabindex:"-1"}),o=r.getElementsByTagName("input")[0];o.setAttribute("aria-label",E.l10n.yearAriaLabel),E.config.minDate&&o.setAttribute("min",E.config.minDate.getFullYear().toString()),E.config.maxDate&&(o.setAttribute("max",E.config.maxDate.getFullYear().toString()),o.disabled=!!E.config.minDate&&E.config.minDate.getFullYear()===E.config.maxDate.getFullYear());var a=f("div","flatpickr-current-month");return a.appendChild(e),a.appendChild(r),t.appendChild(a),n.appendChild(t),{container:n,yearElement:o,monthElement:e}}function J(){l(E.monthNav),E.monthNav.appendChild(E.prevMonthNav),E.config.showMonths&&(E.yearElements=[],E.monthElements=[]);for(var e=E.config.showMonths;e--;){var n=G();E.yearElements.push(n.yearElement),E.monthElements.push(n.monthElement),E.monthNav.appendChild(n.container)}E.monthNav.appendChild(E.nextMonthNav)}function q(){E.weekdayContainer?l(E.weekdayContainer):E.weekdayContainer=f("div","flatpickr-weekdays");for(var e=E.config.showMonths;e--;){var n=f("div","flatpickr-weekdaycontainer");E.weekdayContainer.appendChild(n)}return W(),E.weekdayContainer}function W(){if(E.weekdayContainer){var e=E.l10n.firstDayOfWeek,t=n(E.l10n.weekdays.shorthand);e>0&&e\n "+t.join("")+"\n \n "}}function z(e,n){void 0===n&&(n=!0);var t=n?e:e-E.currentMonth;t<0&&!0===E._hidePrevMonthArrow||t>0&&!0===E._hideNextMonthArrow||(E.currentMonth+=t,(E.currentMonth<0||E.currentMonth>11)&&(E.currentYear+=E.currentMonth>11?1:-1,E.currentMonth=(E.currentMonth+12)%12,ve("onYearChange"),Y()),V(),ve("onMonthChange"),ge())}function Q(e){return!(!E.config.appendTo||!E.config.appendTo.contains(e))||E.calendarContainer.contains(e)}function Z(e){if(E.isOpen&&!E.config.inline){var n=p(e),t=Q(n),r=n===E.input||n===E.altInput||E.element.contains(n)||e.path&&e.path.indexOf&&(~e.path.indexOf(E.input)||~e.path.indexOf(E.altInput)),o="blur"===e.type?r&&e.relatedTarget&&!Q(e.relatedTarget):!r&&!t&&!Q(e.relatedTarget),a=!E.config.ignoredFocusElements.some((function(e){return e.contains(n)}));o&&a&&(void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement&&""!==E.input.value&&void 0!==E.input.value&&x(),E.close(),E.config&&"range"===E.config.mode&&1===E.selectedDates.length&&(E.clear(!1),E.redraw()))}}function X(e){if(!(!e||E.config.minDate&&eE.config.maxDate.getFullYear())){var n=e,t=E.currentYear!==n;E.currentYear=n||E.currentYear,E.config.maxDate&&E.currentYear===E.config.maxDate.getFullYear()?E.currentMonth=Math.min(E.config.maxDate.getMonth(),E.currentMonth):E.config.minDate&&E.currentYear===E.config.minDate.getFullYear()&&(E.currentMonth=Math.max(E.config.minDate.getMonth(),E.currentMonth)),t&&(E.redraw(),ve("onYearChange"),Y())}}function $(e,n){var t;void 0===n&&(n=!0);var r=E.parseDate(e,void 0,n);if(E.config.minDate&&r&&A(r,E.config.minDate,void 0!==n?n:!E.minDateHasTime)<0||E.config.maxDate&&r&&A(r,E.config.maxDate,void 0!==n?n:!E.maxDateHasTime)>0)return!1;if(!E.config.enable&&0===E.config.disable.length)return!0;if(void 0===r)return!1;for(var o=!!E.config.enable,a=null!==(t=E.config.enable)&&void 0!==t?t:E.config.disable,i=0,s=void 0;i=s.from.getTime()&&r.getTime()<=s.to.getTime())return o}return!o}function ee(e){return void 0!==E.daysContainer&&-1===e.className.indexOf("hidden")&&-1===e.className.indexOf("flatpickr-disabled")&&E.daysContainer.contains(e)}function ne(e){e.target!==E._input||!(E.selectedDates.length>0||E._input.value.length>0)||e.relatedTarget&&Q(e.relatedTarget)||E.setDate(E._input.value,!0,e.target===E.altInput?E.config.altFormat:E.config.dateFormat)}function te(e){var n=p(e),t=E.config.wrap?v.contains(n):n===E._input,r=E.config.allowInput,o=E.isOpen&&(!r||!t),a=E.config.inline&&t&&!r;if(13===e.keyCode&&t){if(r)return E.setDate(E._input.value,!0,n===E.altInput?E.config.altFormat:E.config.dateFormat),n.blur();E.open()}else if(Q(n)||o||a){var i=!!E.timeContainer&&E.timeContainer.contains(n);switch(e.keyCode){case 13:i?(e.preventDefault(),x(),fe()):le(e);break;case 27:e.preventDefault(),fe();break;case 8:case 46:t&&!E.config.allowInput&&(e.preventDefault(),E.clear());break;case 37:case 39:if(i||t)E.hourElement&&E.hourElement.focus();else if(e.preventDefault(),void 0!==E.daysContainer&&(!1===r||document.activeElement&&ee(document.activeElement))){var s=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),z(s),U(K(1),0)):U(void 0,s)}break;case 38:case 40:e.preventDefault();var c=40===e.keyCode?1:-1;E.daysContainer&&void 0!==n.$i||n===E.input||n===E.altInput?e.ctrlKey?(e.stopPropagation(),X(E.currentYear-c),U(K(1),0)):i||U(void 0,7*c):n===E.currentYearElement?X(E.currentYear-c):E.config.enableTime&&(!i&&E.hourElement&&E.hourElement.focus(),x(e),E._debouncedChange());break;case 9:if(i){var u=[E.hourElement,E.minuteElement,E.secondElement,E.amPM].concat(E.pluginElements).filter((function(e){return e})),f=u.indexOf(n);if(-1!==f){var l=u[f+(e.shiftKey?-1:1)];e.preventDefault(),(l||E._input).focus()}}else!E.config.noCalendar&&E.daysContainer&&E.daysContainer.contains(n)&&e.shiftKey&&(e.preventDefault(),E._input.focus())}}if(void 0!==E.amPM&&n===E.amPM)switch(e.key){case E.l10n.amPM[0].charAt(0):case E.l10n.amPM[0].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[0],N(),be();break;case E.l10n.amPM[1].charAt(0):case E.l10n.amPM[1].charAt(0).toLowerCase():E.amPM.textContent=E.l10n.amPM[1],N(),be()}(t||Q(n))&&ve("onKeyDown",e)}function re(e){if(1===E.selectedDates.length&&(!e||e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled"))){for(var n=e?e.dateObj.getTime():E.days.firstElementChild.dateObj.getTime(),t=E.parseDate(E.selectedDates[0],void 0,!0).getTime(),r=Math.min(n,E.selectedDates[0].getTime()),o=Math.max(n,E.selectedDates[0].getTime()),a=!1,i=0,s=0,c=r;cr&&ci)?i=c:c>t&&(!s||c0&&h0&&h>s;return p?(d.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach((function(e){d.classList.remove(e)})),"continue"):a&&!p?"continue":(["startRange","inRange","endRange","notAllowed"].forEach((function(e){d.classList.remove(e)})),void(void 0!==e&&(e.classList.add(n<=E.selectedDates[0].getTime()?"startRange":"endRange"),tn&&h===t&&d.classList.add("endRange"),h>=i&&(0===s||h<=s)&&(u=t,l=n,(c=h)>Math.min(u,l)&&c0||t.getMinutes()>0||t.getSeconds()>0),E.selectedDates&&(E.selectedDates=E.selectedDates.filter((function(e){return $(e)})),E.selectedDates.length||"min"!==e||I(t),be()),E.daysContainer&&(ue(),void 0!==t?E.currentYearElement[e]=t.getFullYear().toString():E.currentYearElement.removeAttribute(e),E.currentYearElement.disabled=!!r&&void 0!==t&&r.getFullYear()===t.getFullYear())}}function ie(){return E.config.wrap?v.querySelector("[data-input]"):v}function se(){"object"!=typeof E.config.locale&&void 0===S.l10ns[E.config.locale]&&E.config.errorHandler(new Error("flatpickr: invalid locale "+E.config.locale)),E.l10n=e(e({},S.l10ns.default),"object"==typeof E.config.locale?E.config.locale:"default"!==E.config.locale?S.l10ns[E.config.locale]:void 0),g.K="("+E.l10n.amPM[0]+"|"+E.l10n.amPM[1]+"|"+E.l10n.amPM[0].toLowerCase()+"|"+E.l10n.amPM[1].toLowerCase()+")",void 0===e(e({},m),JSON.parse(JSON.stringify(v.dataset||{}))).time_24hr&&void 0===S.defaultConfig.time_24hr&&(E.config.time_24hr=E.l10n.time_24hr),E.formatDate=b(E),E.parseDate=O({config:E.config,l10n:E.l10n})}function ce(e){if("function"!=typeof E.config.position){if(void 0!==E.calendarContainer){ve("onPreCalendarPosition");var n=e||E._positionElement,t=Array.prototype.reduce.call(E.calendarContainer.children,(function(e,n){return e+n.offsetHeight}),0),r=E.calendarContainer.offsetWidth,o=E.config.position.split(" "),a=o[0],i=o.length>1?o[1]:null,s=n.getBoundingClientRect(),c=window.innerHeight-s.bottom,f="above"===a||"below"!==a&&ct,l=window.pageYOffset+s.top+(f?-t-2:n.offsetHeight+2);if(u(E.calendarContainer,"arrowTop",!f),u(E.calendarContainer,"arrowBottom",f),!E.config.inline){var d=window.pageXOffset+s.left,h=!1,p=!1;"center"===i?(d-=(r-s.width)/2,h=!0):"right"===i&&(d-=r-s.width,p=!0),u(E.calendarContainer,"arrowLeft",!h&&!p),u(E.calendarContainer,"arrowCenter",h),u(E.calendarContainer,"arrowRight",p);var v=window.document.body.offsetWidth-(window.pageXOffset+s.right),y=d+r>window.document.body.offsetWidth,m=v+r>window.document.body.offsetWidth;if(u(E.calendarContainer,"rightMost",y),!E.config.static)if(E.calendarContainer.style.top=l+"px",y)if(m){var g=function(){for(var e=null,n=0;nE.currentMonth+E.config.showMonths-1)&&"range"!==E.config.mode;if(E.selectedDateElem=t,"single"===E.config.mode)E.selectedDates=[r];else if("multiple"===E.config.mode){var a=me(r);a?E.selectedDates.splice(parseInt(a),1):E.selectedDates.push(r)}else"range"===E.config.mode&&(2===E.selectedDates.length&&E.clear(!1,!1),E.latestSelectedDateObj=r,E.selectedDates.push(r),0!==A(r,E.selectedDates[0],!0)&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()})));if(N(),o){var i=E.currentYear!==r.getFullYear();E.currentYear=r.getFullYear(),E.currentMonth=r.getMonth(),i&&(ve("onYearChange"),Y()),ve("onMonthChange")}if(ge(),V(),be(),o||"range"===E.config.mode||1!==E.config.showMonths?void 0!==E.selectedDateElem&&void 0===E.hourElement&&E.selectedDateElem&&E.selectedDateElem.focus():j(t),void 0!==E.hourElement&&void 0!==E.hourElement&&E.hourElement.focus(),E.config.closeOnSelect){var s="single"===E.config.mode&&!E.config.enableTime,c="range"===E.config.mode&&2===E.selectedDates.length&&!E.config.enableTime;(s||c)&&fe()}k()}}E.parseDate=O({config:E.config,l10n:E.l10n}),E._handlers=[],E.pluginElements=[],E.loadedPlugins=[],E._bind=P,E._setHoursFromDate=I,E._positionCalendar=ce,E.changeMonth=z,E.changeYear=X,E.clear=function(e,n){if(void 0===e&&(e=!0),void 0===n&&(n=!0),E.input.value="",void 0!==E.altInput&&(E.altInput.value=""),void 0!==E.mobileInput&&(E.mobileInput.value=""),E.selectedDates=[],E.latestSelectedDateObj=void 0,!0===n&&(E.currentYear=E._initialDate.getFullYear(),E.currentMonth=E._initialDate.getMonth()),!0===E.config.enableTime){var t=D(E.config);C(t.hours,t.minutes,t.seconds)}E.redraw(),e&&ve("onChange")},E.close=function(){E.isOpen=!1,E.isMobile||(void 0!==E.calendarContainer&&E.calendarContainer.classList.remove("open"),void 0!==E._input&&E._input.classList.remove("active")),ve("onClose")},E._createElement=f,E.destroy=function(){void 0!==E.config&&ve("onDestroy");for(var e=E._handlers.length;e--;)E._handlers[e].remove();if(E._handlers=[],E.mobileInput)E.mobileInput.parentNode&&E.mobileInput.parentNode.removeChild(E.mobileInput),E.mobileInput=void 0;else if(E.calendarContainer&&E.calendarContainer.parentNode)if(E.config.static&&E.calendarContainer.parentNode){var n=E.calendarContainer.parentNode;if(n.lastChild&&n.removeChild(n.lastChild),n.parentNode){for(;n.firstChild;)n.parentNode.insertBefore(n.firstChild,n);n.parentNode.removeChild(n)}}else E.calendarContainer.parentNode.removeChild(E.calendarContainer);E.altInput&&(E.input.type="text",E.altInput.parentNode&&E.altInput.parentNode.removeChild(E.altInput),delete E.altInput),E.input&&(E.input.type=E.input._type,E.input.classList.remove("flatpickr-input"),E.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach((function(e){try{delete E[e]}catch(e){}}))},E.isEnabled=$,E.jumpToDate=M,E.open=function(e,n){if(void 0===n&&(n=E._positionElement),!0===E.isMobile){if(e){e.preventDefault();var t=p(e);t&&t.blur()}return void 0!==E.mobileInput&&(E.mobileInput.focus(),E.mobileInput.click()),void ve("onOpen")}if(!E._input.disabled&&!E.config.inline){var r=E.isOpen;E.isOpen=!0,r||(E.calendarContainer.classList.add("open"),E._input.classList.add("active"),ve("onOpen"),ce(n)),!0===E.config.enableTime&&!0===E.config.noCalendar&&(!1!==E.config.allowInput||void 0!==e&&E.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return E.hourElement.select()}),50))}},E.redraw=ue,E.set=function(e,n){if(null!==e&&"object"==typeof e)for(var r in Object.assign(E.config,e),e)void 0!==de[r]&&de[r].forEach((function(e){return e()}));else E.config[e]=n,void 0!==de[e]?de[e].forEach((function(e){return e()})):t.indexOf(e)>-1&&(E.config[e]=c(n));E.redraw(),be(!0)},E.setDate=function(e,n,t){if(void 0===n&&(n=!1),void 0===t&&(t=E.config.dateFormat),0!==e&&!e||e instanceof Array&&0===e.length)return E.clear(n);he(e,t),E.latestSelectedDateObj=E.selectedDates[E.selectedDates.length-1],E.redraw(),M(void 0,n),I(),0===E.selectedDates.length&&E.clear(!1),be(n),n&&ve("onChange")},E.toggle=function(e){if(!0===E.isOpen)return E.close();E.open(e)};var de={locale:[se,W],showMonths:[J,T,q],minDate:[M],maxDate:[M],clickOpens:[function(){!0===E.config.clickOpens?(P(E._input,"focus",E.open),P(E._input,"click",E.open)):(E._input.removeEventListener("focus",E.open),E._input.removeEventListener("click",E.open))}]};function he(e,n){var t=[];if(e instanceof Array)t=e.map((function(e){return E.parseDate(e,n)}));else if(e instanceof Date||"number"==typeof e)t=[E.parseDate(e,n)];else if("string"==typeof e)switch(E.config.mode){case"single":case"time":t=[E.parseDate(e,n)];break;case"multiple":t=e.split(E.config.conjunction).map((function(e){return E.parseDate(e,n)}));break;case"range":t=e.split(E.l10n.rangeSeparator).map((function(e){return E.parseDate(e,n)}))}else E.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));E.selectedDates=E.config.allowInvalidPreload?t:t.filter((function(e){return e instanceof Date&&$(e,!1)})),"range"===E.config.mode&&E.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()}))}function pe(e){return e.slice().map((function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?E.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:E.parseDate(e.from,void 0),to:E.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function ve(e,n){if(void 0!==E.config){var t=E.config[e];if(void 0!==t&&t.length>0)for(var r=0;t[r]&&r1||"static"===E.config.monthSelectorType?E.monthElements[n].textContent=y(t.getMonth(),E.config.shorthandCurrentMonth,E.l10n)+" ":E.monthsDropdownContainer.value=t.getMonth().toString(),e.value=t.getFullYear().toString()})),E._hidePrevMonthArrow=void 0!==E.config.minDate&&(E.currentYear===E.config.minDate.getFullYear()?E.currentMonth<=E.config.minDate.getMonth():E.currentYearE.config.maxDate.getMonth():E.currentYear>E.config.maxDate.getFullYear()))}function Ee(e){return E.selectedDates.map((function(n){return E.formatDate(n,e)})).filter((function(e,n,t){return"range"!==E.config.mode||E.config.enableTime||t.indexOf(e)===n})).join("range"!==E.config.mode?E.config.conjunction:E.l10n.rangeSeparator)}function be(e){void 0===e&&(e=!0),void 0!==E.mobileInput&&E.mobileFormatStr&&(E.mobileInput.value=void 0!==E.latestSelectedDateObj?E.formatDate(E.latestSelectedDateObj,E.mobileFormatStr):""),E.input.value=Ee(E.config.dateFormat),void 0!==E.altInput&&(E.altInput.value=Ee(E.config.altFormat)),!1!==e&&ve("onValueUpdate")}function Oe(e){var n=p(e),t=E.prevMonthNav.contains(n),r=E.nextMonthNav.contains(n);t||r?z(t?-1:1):E.yearElements.indexOf(n)>=0?n.select():n.classList.contains("arrowUp")?E.changeYear(E.currentYear+1):n.classList.contains("arrowDown")&&E.changeYear(E.currentYear-1)}return function(){E.element=E.input=v,E.isOpen=!1,function(){var n=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],o=e(e({},JSON.parse(JSON.stringify(v.dataset||{}))),m),a={};E.config.parseDate=o.parseDate,E.config.formatDate=o.formatDate,Object.defineProperty(E.config,"enable",{get:function(){return E.config._enable},set:function(e){E.config._enable=pe(e)}}),Object.defineProperty(E.config,"disable",{get:function(){return E.config._disable},set:function(e){E.config._disable=pe(e)}});var i="time"===o.mode;if(!o.dateFormat&&(o.enableTime||i)){var s=S.defaultConfig.dateFormat||r.dateFormat;a.dateFormat=o.noCalendar||i?"H:i"+(o.enableSeconds?":S":""):s+" H:i"+(o.enableSeconds?":S":"")}if(o.altInput&&(o.enableTime||i)&&!o.altFormat){var u=S.defaultConfig.altFormat||r.altFormat;a.altFormat=o.noCalendar||i?"h:i"+(o.enableSeconds?":S K":" K"):u+" h:i"+(o.enableSeconds?":S":"")+" K"}Object.defineProperty(E.config,"minDate",{get:function(){return E.config._minDate},set:ae("min")}),Object.defineProperty(E.config,"maxDate",{get:function(){return E.config._maxDate},set:ae("max")});var f=function(e){return function(n){E.config["min"===e?"_minTime":"_maxTime"]=E.parseDate(n,"H:i:S")}};Object.defineProperty(E.config,"minTime",{get:function(){return E.config._minTime},set:f("min")}),Object.defineProperty(E.config,"maxTime",{get:function(){return E.config._maxTime},set:f("max")}),"time"===o.mode&&(E.config.noCalendar=!0,E.config.enableTime=!0),Object.assign(E.config,a,o);for(var l=0;l-1?E.config[h]=c(d[h]).map(_).concat(E.config[h]):void 0===o[h]&&(E.config[h]=d[h])}o.altInputClass||(E.config.altInputClass=ie().className+" "+E.config.altInputClass),ve("onParseConfig")}(),se(),E.input=ie(),E.input?(E.input._type=E.input.type,E.input.type="text",E.input.classList.add("flatpickr-input"),E._input=E.input,E.config.altInput&&(E.altInput=f(E.input.nodeName,E.config.altInputClass),E._input=E.altInput,E.altInput.placeholder=E.input.placeholder,E.altInput.disabled=E.input.disabled,E.altInput.required=E.input.required,E.altInput.tabIndex=E.input.tabIndex,E.altInput.type="text",E.input.setAttribute("type","hidden"),!E.config.static&&E.input.parentNode&&E.input.parentNode.insertBefore(E.altInput,E.input.nextSibling)),E.config.allowInput||E._input.setAttribute("readonly","readonly"),E._positionElement=E.config.positionElement||E._input):E.config.errorHandler(new Error("Invalid input element specified")),function(){E.selectedDates=[],E.now=E.parseDate(E.config.now)||new Date;var e=E.config.defaultDate||("INPUT"!==E.input.nodeName&&"TEXTAREA"!==E.input.nodeName||!E.input.placeholder||E.input.value!==E.input.placeholder?E.input.value:null);e&&he(e,E.config.dateFormat),E._initialDate=E.selectedDates.length>0?E.selectedDates[0]:E.config.minDate&&E.config.minDate.getTime()>E.now.getTime()?E.config.minDate:E.config.maxDate&&E.config.maxDate.getTime()0&&(E.latestSelectedDateObj=E.selectedDates[0]),void 0!==E.config.minTime&&(E.config.minTime=E.parseDate(E.config.minTime,"H:i")),void 0!==E.config.maxTime&&(E.config.maxTime=E.parseDate(E.config.maxTime,"H:i")),E.minDateHasTime=!!E.config.minDate&&(E.config.minDate.getHours()>0||E.config.minDate.getMinutes()>0||E.config.minDate.getSeconds()>0),E.maxDateHasTime=!!E.config.maxDate&&(E.config.maxDate.getHours()>0||E.config.maxDate.getMinutes()>0||E.config.maxDate.getSeconds()>0)}(),E.utils={getDaysInMonth:function(e,n){return void 0===e&&(e=E.currentMonth),void 0===n&&(n=E.currentYear),1===e&&(n%4==0&&n%100!=0||n%400==0)?29:E.l10n.daysInMonth[e]}},E.isMobile||function(){var e=window.document.createDocumentFragment();if(E.calendarContainer=f("div","flatpickr-calendar"),E.calendarContainer.tabIndex=-1,!E.config.noCalendar){if(e.appendChild((E.monthNav=f("div","flatpickr-months"),E.yearElements=[],E.monthElements=[],E.prevMonthNav=f("span","flatpickr-prev-month"),E.prevMonthNav.innerHTML=E.config.prevArrow,E.nextMonthNav=f("span","flatpickr-next-month"),E.nextMonthNav.innerHTML=E.config.nextArrow,J(),Object.defineProperty(E,"_hidePrevMonthArrow",{get:function(){return E.__hidePrevMonthArrow},set:function(e){E.__hidePrevMonthArrow!==e&&(u(E.prevMonthNav,"flatpickr-disabled",e),E.__hidePrevMonthArrow=e)}}),Object.defineProperty(E,"_hideNextMonthArrow",{get:function(){return E.__hideNextMonthArrow},set:function(e){E.__hideNextMonthArrow!==e&&(u(E.nextMonthNav,"flatpickr-disabled",e),E.__hideNextMonthArrow=e)}}),E.currentYearElement=E.yearElements[0],ge(),E.monthNav)),E.innerContainer=f("div","flatpickr-innerContainer"),E.config.weekNumbers){var n=function(){E.calendarContainer.classList.add("hasWeeks");var e=f("div","flatpickr-weekwrapper");e.appendChild(f("span","flatpickr-weekday",E.l10n.weekAbbreviation));var n=f("div","flatpickr-weeks");return e.appendChild(n),{weekWrapper:e,weekNumbers:n}}(),t=n.weekWrapper,r=n.weekNumbers;E.innerContainer.appendChild(t),E.weekNumbers=r,E.weekWrapper=t}E.rContainer=f("div","flatpickr-rContainer"),E.rContainer.appendChild(q()),E.daysContainer||(E.daysContainer=f("div","flatpickr-days"),E.daysContainer.tabIndex=-1),V(),E.rContainer.appendChild(E.daysContainer),E.innerContainer.appendChild(E.rContainer),e.appendChild(E.innerContainer)}E.config.enableTime&&e.appendChild(function(){E.calendarContainer.classList.add("hasTime"),E.config.noCalendar&&E.calendarContainer.classList.add("noCalendar");var e=D(E.config);E.timeContainer=f("div","flatpickr-time"),E.timeContainer.tabIndex=-1;var n=f("span","flatpickr-time-separator",":"),t=h("flatpickr-hour",{"aria-label":E.l10n.hourAriaLabel});E.hourElement=t.getElementsByTagName("input")[0];var r=h("flatpickr-minute",{"aria-label":E.l10n.minuteAriaLabel});if(E.minuteElement=r.getElementsByTagName("input")[0],E.hourElement.tabIndex=E.minuteElement.tabIndex=-1,E.hourElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getHours():E.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),E.minuteElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getMinutes():e.minutes),E.hourElement.setAttribute("step",E.config.hourIncrement.toString()),E.minuteElement.setAttribute("step",E.config.minuteIncrement.toString()),E.hourElement.setAttribute("min",E.config.time_24hr?"0":"1"),E.hourElement.setAttribute("max",E.config.time_24hr?"23":"12"),E.hourElement.setAttribute("maxlength","2"),E.minuteElement.setAttribute("min","0"),E.minuteElement.setAttribute("max","59"),E.minuteElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(t),E.timeContainer.appendChild(n),E.timeContainer.appendChild(r),E.config.time_24hr&&E.timeContainer.classList.add("time24hr"),E.config.enableSeconds){E.timeContainer.classList.add("hasSeconds");var o=h("flatpickr-second");E.secondElement=o.getElementsByTagName("input")[0],E.secondElement.value=a(E.latestSelectedDateObj?E.latestSelectedDateObj.getSeconds():e.seconds),E.secondElement.setAttribute("step",E.minuteElement.getAttribute("step")),E.secondElement.setAttribute("min","0"),E.secondElement.setAttribute("max","59"),E.secondElement.setAttribute("maxlength","2"),E.timeContainer.appendChild(f("span","flatpickr-time-separator",":")),E.timeContainer.appendChild(o)}return E.config.time_24hr||(E.amPM=f("span","flatpickr-am-pm",E.l10n.amPM[i((E.latestSelectedDateObj?E.hourElement.value:E.config.defaultHour)>11)]),E.amPM.title=E.l10n.toggleTitle,E.amPM.tabIndex=-1,E.timeContainer.appendChild(E.amPM)),E.timeContainer}()),u(E.calendarContainer,"rangeMode","range"===E.config.mode),u(E.calendarContainer,"animate",!0===E.config.animate),u(E.calendarContainer,"multiMonth",E.config.showMonths>1),E.calendarContainer.appendChild(e);var o=void 0!==E.config.appendTo&&void 0!==E.config.appendTo.nodeType;if((E.config.inline||E.config.static)&&(E.calendarContainer.classList.add(E.config.inline?"inline":"static"),E.config.inline&&(!o&&E.element.parentNode?E.element.parentNode.insertBefore(E.calendarContainer,E._input.nextSibling):void 0!==E.config.appendTo&&E.config.appendTo.appendChild(E.calendarContainer)),E.config.static)){var s=f("div","flatpickr-wrapper");E.element.parentNode&&E.element.parentNode.insertBefore(s,E.element),s.appendChild(E.element),E.altInput&&s.appendChild(E.altInput),s.appendChild(E.calendarContainer)}E.config.static||E.config.inline||(void 0!==E.config.appendTo?E.config.appendTo:window.document.body).appendChild(E.calendarContainer)}(),function(){if(E.config.wrap&&["open","close","toggle","clear"].forEach((function(e){Array.prototype.forEach.call(E.element.querySelectorAll("[data-"+e+"]"),(function(n){return P(n,"click",E[e])}))})),E.isMobile)!function(){var e=E.config.enableTime?E.config.noCalendar?"time":"datetime-local":"date";E.mobileInput=f("input",E.input.className+" flatpickr-mobile"),E.mobileInput.tabIndex=1,E.mobileInput.type=e,E.mobileInput.disabled=E.input.disabled,E.mobileInput.required=E.input.required,E.mobileInput.placeholder=E.input.placeholder,E.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",E.selectedDates.length>0&&(E.mobileInput.defaultValue=E.mobileInput.value=E.formatDate(E.selectedDates[0],E.mobileFormatStr)),E.config.minDate&&(E.mobileInput.min=E.formatDate(E.config.minDate,"Y-m-d")),E.config.maxDate&&(E.mobileInput.max=E.formatDate(E.config.maxDate,"Y-m-d")),E.input.getAttribute("step")&&(E.mobileInput.step=String(E.input.getAttribute("step"))),E.input.type="hidden",void 0!==E.altInput&&(E.altInput.type="hidden");try{E.input.parentNode&&E.input.parentNode.insertBefore(E.mobileInput,E.input.nextSibling)}catch(e){}P(E.mobileInput,"change",(function(e){E.setDate(p(e).value,!1,E.mobileFormatStr),ve("onChange"),ve("onClose")}))}();else{var e=s(oe,50);if(E._debouncedChange=s(k,300),E.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&P(E.daysContainer,"mouseover",(function(e){"range"===E.config.mode&&re(p(e))})),P(window.document.body,"keydown",te),E.config.inline||E.config.static||P(window,"resize",e),void 0!==window.ontouchstart?P(window.document,"touchstart",Z):P(window.document,"mousedown",Z),P(window.document,"focus",Z,{capture:!0}),!0===E.config.clickOpens&&(P(E._input,"focus",E.open),P(E._input,"click",E.open)),void 0!==E.daysContainer&&(P(E.monthNav,"click",Oe),P(E.monthNav,["keyup","increment"],R),P(E.daysContainer,"click",le)),void 0!==E.timeContainer&&void 0!==E.minuteElement&&void 0!==E.hourElement){var n=function(e){return p(e).select()};P(E.timeContainer,["increment"],x),P(E.timeContainer,"blur",x,{capture:!0}),P(E.timeContainer,"click",F),P([E.hourElement,E.minuteElement],["focus","click"],n),void 0!==E.secondElement&&P(E.secondElement,"focus",(function(){return E.secondElement&&E.secondElement.select()})),void 0!==E.amPM&&P(E.amPM,"click",(function(e){x(e),k()}))}E.config.allowInput&&P(E._input,"blur",ne)}}(),(E.selectedDates.length||E.config.noCalendar)&&(E.config.enableTime&&I(E.config.noCalendar?E.latestSelectedDateObj:void 0),be(!1)),T();var n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!E.isMobile&&n&&ce(),ve("onReady")}(),E}function T(e,n){for(var t=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),r=[],o=0;o{const n=(e,n,t,r,o,a,i,s,c,u,f)=>{var l={setCustomize:()=>{}},d=function(e,n){if(!n||1===n)return e.store;var t=e.store.modules&&e.store.modules.team;return t?t.getTeam(n):void 0},h=function(n,t){n.emit("UPDATE",{teams:t.stores,roTeams:t.roStores,id:t.channel,loading:!t.ready&&!t.cacheready,readOnly:t.readOnly||!t.ready&&t.cacheready||t.offline,offline:t.offline,deleted:!t.stores.length,restricted:t.restricted,owned:n.Store.isOwned(t.owners),content:e.clone(t.proxy),hashes:t.hashes},n.clients)},p=function(e,n){var t=e.calendars[n];t&&t.reminders&&Object.keys(t.reminders).forEach((function(e){Array.isArray(t.reminders[e])&&t.reminders[e].forEach((function(e){clearTimeout(e)}))}))},v=function(e,n){var t=e.calendars[n];t&&(t.stores.length||(t.lm.stop(),p(e,n),delete e.calendars[n]))},y=function(e,n,t){n.stores.forEach((function(r){var o=d(e,r);if(o&&o.proxy&&o.rpc&&o.proxy.calendars){var a=o.proxy.calendars[n.channel];a&&(a.color!==t.color&&(a.color=t.color),a.title!==t.title&&(a.title=t.title))}}))},m=function(n,t,r,o){var a=+new Date,i=e.clone(r),s=i.id;if(Array.isArray(t[s])&&t[s].forEach((function(e){clearTimeout(e)})),t[s]=[],!r.deleted){var u=e.find(n,["store","proxy","hideReminders",s])||[],f=n.store.data.lastVisit;if(i.isAllDay&&(i.startDay&&(i.start=+c.parseDate(i.startDay)),i.endDay)){var l=c.parseDate(i.endDay);l.setHours(23),l.setMinutes(59),l.setSeconds(59),i.end=+l}var d=a-6048e5,h=o&&i.start>f&&i.end<=a&&i.end>d;if(i.end<=a&&!h)return delete t[s],void function(n,t){var r=e.find(n,["store","proxy","hideReminders"])||{};Object.keys(r).filter((function(e){return e===t})).forEach((function(e){delete r[e]}))}(n,s);var p=!1,v=function(t){p=!0,n.Store.onReadyEvt.reg((function(){!function(t){if(!e.find(n,["store","proxy","settings","general","calendar","hideNotif"])){var r=i.start<=a?i.start:+new Date;n.store.mailbox.showMessage("reminders",{msg:{ctime:r,type:"REMINDER",missed:Boolean(h),content:i},hash:"REMINDER|"+s+"-"+t},null,(function(){}))}}(t)}))},y=i.reminders||[];y.sort((function(e,n){return e-n})),y.some((function(e){var n=a+6e4*e;if(!u.some((function(n){return e>=n})))return i.start-n>=2147483647||(i.start<=n?(v(e),!0):void t[s].push(setTimeout((function(){v(e)}),i.start-n)))})),p||n.Store.onReadyEvt.reg((function(){n.store.mailbox.hideMessage("reminders",{hash:"REMINDER|"+s},null,(function(){}))}))}},g=function(n,t,r,o){var i=function(e){var n=new Date,t=new Date(n.getFullYear(),n.getMonth()-1,15),r=new Date(n.getFullYear(),n.getMonth()+1,15),o=a.getMonthId(t),i=a.getMonthId(n),s=a.getMonthId(r),c=a.getRecurring([o,i,s],[e]),u=[e];return Array.prototype.push.apply(u,c),a.applyUpdates(u)}(e.clone(r));i.forEach((function(e){m(n,t,e,o)}))},E=function(e,n,t){var r=e.calendars[n];t&&r&&r.reminders&&(1===r.stores.length&&0===r.stores[0]||g(e,r.reminders,t))},b=function(n,t,r){var o=n.calendars[t];if(o&&o.reminders&&!Object.keys(o.reminders).length&&(1!==o.stores.length||0!==o.stores[0])){var a=e.find(o,["proxy","content"]);a&&Object.keys(a).forEach((function(e){g(n,o.reminders,a[e],r)}))}},O=function(t,r,a){var c=e.once(e.mkAsync(a||function(){})),l=r.storeId,v=r.data,m=v.channel;if(m){var g=t.calendars[m],O=function(){h(t,g)};if(g){if(g.readOnly&&v.href){var A=n.parsePadUrl(v.href),w=n.getSecrets("calendar",A.hash,v.password),D=u.createEncryptor(w.keys);g.hashes.editHash=n.getEditHashFromKeys(w),g.lm.setReadOnly(!1,D),g.readOnly=!1}else if(0===l)return 1===g.stores.length&&0===g.stores[0]&&g.tempId.length&&r.cId&&g.tempId.push(r.cId),void c();return-1!==g.roStores.indexOf(l)&&v.href&&(g.roStores.splice(g.roStores.indexOf(l),1),-1!==g.stores.indexOf(0)&&g.stores.splice(g.stores.indexOf(0),1),O()),g.stores&&-1!==g.stores.indexOf(l)?void c():(-1!==g.stores.indexOf(0)&&(g.stores.splice(g.stores.indexOf(0),1),g.tempId=[]),g.stores.push(l),v.href||g.roStores.push(l),O(),void c())}g=t.calendars[m]={ready:!1,channel:m,readOnly:!v.href,tempId:[],stores:[l],roStores:v.href?[]:[l],reminders:{},hashes:{}},0===l&&g.tempId.push(r.cId);var _=n.parsePadUrl(v.href||v.roHref),T=n.getSecrets("calendar",_.hash,v.password),S=u.createEncryptor(T.keys);g.hashes.viewHash=n.getViewHashFromKeys(T),v.href&&(g.hashes.editHash=n.getEditHashFromKeys(T)),g.proxy={metadata:{color:v.color,title:v.title}},O();var x=function(){g.stores.forEach((function(e){var n=d(t,e);n&&n.rpc&&n.proxy.calendars&&(delete n.proxy.calendars[m],(n.unpin||t.unpinPads)([m],(function(e){e&&e.error&&console.error(e.error)})))})),g.lm&&g.lm.stop(),g.stores=[],h(t,g),p(t,m),delete t.calendars[m]};i((function(e){t.store.network&&!r.isNew&&t.Store.isNewChannel(null,m,e((function(n){if(!n||!n.error)return n&&"boolean"==typeof n.isNew&&n.isNew?(x(),c({error:"EDELETED"}),void e.abort()):void 0})))})).nThen((function(){var e;if(1!==l&&l){var n=t.store.modules.team&&t.store.modules.team.getTeamsData(),a=n&&n[l];e=a?a.edPublic:void 0}else e=t.store.proxy.edPublic;var i={data:{},network:t.store.network||t.store.networkPromise,channel:T.channel,crypto:S,owners:[e],ChainPad:f,validateKey:T.keys.validateKey||void 0,userName:"calendar",Cache:o,classic:!0,onRejected:t.Store&&t.Store.onRejected},u=s.create(i);g.lm=u;var d=g.proxy=u.proxy,h=!1,p=function(){h||(h=!0,setTimeout((function(){h=!1,O()})))};u.proxy.on("cacheready",(function(){d.metadata&&(g.cacheready=!0,p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif))})).on("ready",(function(e){var n=e.metadata;if(g.owners=n.owners||[],g.ready=!0,!d.metadata){if(!r.isNew)return void x();d.metadata={color:v.color,title:v.title}}p(),c&&c(null,u.proxy),b(t,m,r.lastVisitNotif)})).on("change",[],(function(){g.ready&&p()})).on("change",["content"],(function(e,n,r){2!==r.length||!n||e?2!==r.length||n||!e?(r.length>=3&&["start","reminders","isAllDay"].includes(r[2])||r.length>=6&&["start","reminders","isAllDay"].includes(r[5]))&&setTimeout((function(){E(t,m,d.content[r[1]])})):E(t,m,{id:r[1],start:0}):E(t,m,n)})).on("remove",["content"],(function(e,n){p(),(n.length>=3&&"reminders"===n[2]||n.length>=6&&"reminders"===n[5])&&setTimeout((function(){E(t,m,d.content[n[1]])}))})).on("change",["metadata"],(function(){var e=d.metadata;e&&e.title&&e.color&&y(t,g,e)})).on("disconnect",(function(){g.offline=!0,p()})).on("reconnect",(function(){g.offline=!1,p()})).on("error",(function(e){e&&e.error&&("EDELETED"!==e.error?("ERESTRICTED"===e.error&&(g.restricted=!0,p()),c(e)):x())}))}))}},A=function(e,n){if(n.href&&-1===n.href.indexOf("#"))if(e.secondaryKey)try{n.href=e.userObject.cryptor.decrypt(n.href)}catch(e){console.error(e),delete n.href}else delete n.href},w=function(n,t){var r=t.proxy.calendars,o=t.id||1;t.proxy.on("change",["calendars"],(function(r,a,i){i.length<2||(r&&!a&&function(){var e=i[1],t=n.calendars[e];if(t){var r=t.stores.indexOf(o);if(-1!==r){t.stores.splice(r,1);var a=t.roStores.indexOf(o);-1!==a&&t.roStores.splice(a,1),v(n,e),h(n,t)}}}(),!r&&a&&function(){var r=i[1],a=t.proxy.calendars[r];if(a){var s=e.clone(a);A(t,s),O(n,{storeId:o,data:s})}}())})),Object.keys(r||{}).forEach((function(a){var i=e.clone(r[a]);A(t,i),O(n,{storeId:o,lastVisitNotif:!0,data:i})}))},D=function(e,t,o,a){var i=d(e,t.teamId);if(i)if(i.rpc){var s,c,u,f=i.proxy.calendars=i.proxy.calendars||{},l=(s=n.createRandomHash("calendar"),c=n.getSecrets("calendar",s),u=n.getViewHashFromKeys(c),{href:n.hashToHref(s,"calendar"),roHref:n.hashToHref(u,"calendar"),channel:c.channel});l.color=t.color,l.title=t.title,O(e,{storeId:i.id||1,data:l,isNew:!0},(function(n){if(n)return console.error(n),void a({error:n.error});var t=e.calendars[l.channel];r.whenRealtimeSyncs(t.lm.realtime,(function(){f[l.channel]=l,(i.pin||e.pinPads)([l.channel],(function(e){e&&e.error&&console.error(e.error)})),e.Store.onSync(i.id,a)}))}))}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})};return l.init=function(t,o,a){var s={},c=t.store,u={loggedIn:c.loggedIn&&c.proxy.edPublic,store:c,Store:t.Store,pinPads:t.pinPads,unpinPads:t.unpinPads,updateMetadata:t.updateMetadata,emit:a,onReady:e.mkEvent(!0),calendars:{},clients:[]};return function(e,n){var t=e.store.proxy;t.calendars=t.calendars||{},setTimeout(n)}(u,o((function(e){e||function(e){w(e,e.store);var n=e.store.modules.team&&e.store.modules.team.getTeamsData();n&&Object.keys(n).forEach((function(n){var t=d(e,n);w(e,t)}))}(u)}))),u.store.proxy.on("change",["hideReminders"],(function(e,n,t){var r=t[1].split("|")[0];Object.keys(u.calendars).some((function(e){var n=u.calendars[e];if(n&&n.proxy&&n.proxy.content)return n.proxy.content[r]?(setTimeout((function(){E(u,e,n.proxy.content[r])})),!0):void 0}))})),s.closeTeam=function(e){Object.keys(u.calendars).forEach((function(n){var t=u.calendars[n],r=t.stores.indexOf(e);if(-1!==r){t.stores.splice(r,1);var o=t.roStores.indexOf(e);-1!==o&&t.roStores.splice(o,1),v(u,n),h(u,t)}}))},s.openTeam=function(e){var n=d(u,e);n&&w(u,n)},s.upgradeTeam=function(n){if(n){var t=d(u,n);t&&Object.keys(u.calendars).forEach((function(r){var o=u.calendars[r];if(-1!==o.stores.indexOf(n)){var a=t.proxy.calendars[r],i=e.clone(a);A(t,i),O(u,{storeId:n,data:i}),h(u,o)}}))}},s.removeClient=function(e){!function(e,n){var t=e.clients.indexOf(n);-1!==t&&e.clients.splice(t,1),Object.keys(e.calendars).forEach((function(t){var r=e.calendars[t];if(1===r.stores.length&&0===r.stores[0]&&r.tempId.length){var o=r.tempId.indexOf(n);-1!==o&&r.tempId.splice(o,1),r.tempId.length||(r.stores=[],v(e,t))}}))}(u,e)},s.execCommand=function(t,o,a){var s=o.cmd,c=o.data;if("SUBSCRIBE"!==s){if("OPEN"!==s)return"IMPORT"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=r.id,s=t.calendars[i];if(s)if(Array.isArray(s.stores)&&-1!==s.stores.indexOf(r.teamId)){var c=t.store,u=c.proxy.calendars=c.proxy.calendars||{},f=s.hashes.editHash,l=s.hashes.viewHash;u[i]={href:f&&n.hashToHref(f,"calendar"),roHref:l&&n.hashToHref(l,"calendar"),channel:i,color:e.find(s,["proxy","metadata","color"])||e.getRandomColor(),title:e.find(s,["proxy","metadata","title"])||"..."},t.Store.onSync(null,a),O(t,{storeId:1,data:{href:u[i].href,toHref:u[i].roHref,channel:i}})}else a({error:"EINVAL"});else a({error:"ENOENT"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"IMPORT_ICS"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.id,i=e.calendars[a];if(i&&i.proxy){var s=n.json;i.proxy.content=i.proxy.content||{},Object.keys(s).forEach((function(n){i.proxy.content[n]=s[n],E(e,a,s[n])})),r.whenRealtimeSyncs(i.lm.realtime,(function(){h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"ADD"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(t,r,o,a){var i=d(t,r.teamId);if(i)if(i.rpc){var s=i.proxy.calendars=i.proxy.calendars||{},c=n.parsePadUrl(r.href),u=n.getSecrets(c.type,c.hash,r.password);if(u.channel===r.channel){var f=n.getEditHashFromKeys(u),l=n.getViewHashFromKeys(u),h=f&&n.hashToHref(f,"calendar"),p={href:h,roHref:l&&n.hashToHref(l,"calendar"),color:r.color,title:r.title,channel:r.channel};!s[r.channel]||!s[r.channel].href&&p.href?(p.color=r.color,p.title=r.title,O(t,{storeId:i.id||1,data:e.clone(p)},(function(e){if(e)return console.error(e),void a({error:e.error});if(h&&i.id&&i.secondaryKey)try{p.href=i.userObject.cryptor.encrypt(h)}catch(e){console.error(e)}s[p.channel]=p,(i.pin||t.pinPads)([p.channel],(function(e){e&&e.error&&console.error(e.error)})),t.Store.onSync(i.id,a)}))):a()}else a({error:"EINVAL"})}else a({error:"EFORBIDDEN"});else a({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE"===s?u.loggedIn?c.initialCalendar?void u.Store.onReadyEvt.reg((function(){D(u,c,0,a)})):u.store.offline?void a({error:"OFFLINE"}):void D(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"UPDATE"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){var i=t.id,s=n.calendars[i];if(s){var c=e.find(s,["proxy","metadata"]);c?(c.title=t.title,c.color=t.color,r.whenRealtimeSyncs(s.lm.realtime,a),h(n,s),y(n,s,t)):a({error:"EINVAL"})}else a({error:"ENOENT"})}(u,c,0,a):"DELETE"===s?u.store.offline?void a({error:"OFFLINE"}):u.loggedIn?void function(e,n,t,r){var o=d(e,n.teamId);if(o)if(o.rpc){if(o.proxy.calendars){var a=n.id;if(o.proxy.calendars[a]){delete o.proxy.calendars[a],(o.unpin||e.unpinPads)([a],(function(e){e&&e.error&&console.error(e.error)}));var i=e.calendars[a],s=i.stores.indexOf(o.id||1);i.stores.splice(s,1),v(e,a),e.Store.onSync(o.id,(function(){h(e,i),r()}))}else r()}}else r({error:"EFORBIDDEN"});else r({error:"NO_STORE"})}(u,c,0,a):void a({error:"NOT_LOGGED_IN"}):"CREATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(e,n,t,o){var a=n.calendarId,i=e.calendars[a];if(i){var s=new Date(n.start),c=new Date(n.end);n.isAllDay?(n.startDay=s.getFullYear()+"-"+(s.getMonth()+1)+"-"+s.getDate(),n.endDay=c.getFullYear()+"-"+(c.getMonth()+1)+"-"+c.getDate()):(delete n.startDay,delete n.endDay),i.proxy.content=i.proxy.content||{},i.proxy.content[n.id]=n,r.whenRealtimeSyncs(i.lm.realtime,(function(){E(e,a,n),h(e,i),o()}))}else o({error:"ENOENT"})}(u,c,0,a):"UPDATE_EVENT"===s?u.store.offline?void a({error:"OFFLINE"}):void function(n,t,o,a){if(t&&t.ev){var s=t.ev.calendarId,c=n.calendars[s];if(c&&c.proxy&&c.proxy.content){var u=c.proxy.content[t.ev.id];if(u){t.rawData=t.rawData||{};var f,l=t.changes||{},d=t.type||{};if(l.calendarId){if(!(f=n.calendars[l.calendarId])||!f.proxy)return void a({error:"ENOENT"});f.proxy.content=f.proxy.content||{}}var p={one:{},from:{}};["one","from","all"].includes(d.which)&&(u.recUpdate=u.recUpdate||p,u.recUpdate.one||(u.recUpdate.one={}),u.recUpdate.from||(u.recUpdate.from={}));var v=u.recUpdate,y=["calendarId"],m=Object.keys(l).filter((function(e){return!y.includes(e)})),g=function(e){[v.from,v.one].forEach((function(n){Object.keys(n).forEach((function(t){Number(t){const r=[],o=null==jt?void 0:jt.httpUnsafeOrigin;ie.fetchApi(o,"config",!0,(e=>{var o,a;(null===(o=null==e?void 0:e.adminKeys)||void 0===o?void 0:o.includes(n))&&r.push("admin");(null===(a=null==e?void 0:e.moderatorKeys)||void 0===a?void 0:a.includes(n))&&r.push("moderator"),t(r)}))},Ut=(e,n,t)=>{e.Store.anonRpcMsg("",{msg:"IS_PREMIUM",data:n},(e=>{let n=Array.isArray(e)&&e[0];t(n?["premium"]:[])}))},Bt={admin:Kt,moderator:Kt,premium:Ut},Vt={init:(e,n,t)=>{const r={store:e.store,Store:e.Store,updateMetadata:e.updateMetadata};return{removeClient:()=>{},execCommand:(e,n,t)=>{console.log("Exex command",e,n);const o=n.cmd,a=n.data;"LIST_BADGES"!==o?"CHECK_BADGE"!==o?t():((e,n,t,r)=>{const{badge:o,ed:a,sig:i,nid:s}=n,c=ie.decodeBase64(a),u=ie.decodeBase64(i),f=Lt.sign.open(u,c);if(!f)return void r({verified:!1});if(ie.encodeUTF8(f)!==s)return void r({verified:!1});let l=Bt[o];l?l(e,a,(e=>{r({verified:e.includes(o),badge:o})})):r({verified:!1,error:"EINVAL"})})(r,a,0,t):((e,n,t,r)=>{var o,a;const i=[];null==jt||jt.httpUnsafeOrigin;const s=n.edPublic||(null===(a=null===(o=e.store)||void 0===o?void 0:o.proxy)||void 0===a?void 0:a.edPublic);Ht((e=>{Kt(0,s,e((e=>{Array.prototype.push.apply(i,e)})))})).nThen((n=>{Ut(e,s,n((e=>{Array.prototype.push.apply(i,e)})))})).nThen((()=>{r(i)}))})(r,a,0,t)}}},setCustomize:e=>{jt=null==e?void 0:e.ApiConfig}};var Yt,Gt=o(Object.freeze({__proto__:null,Badge:Vt}));function Jt(){return Yt||(Yt=1,function(e){(()=>{const n=(e={},n,t,r,o,a,i,s,c,u,f,l,d,h,p,v,y,m,g,E,b,O,A,w,D,_,T,S,x,N,I,C={},R,P,k,M,F,L)=>{const H=y.Account,j=m.Drive,K=x.Badge,U=globalThis;globalThis.nacl=globalThis.nacl||R.Nacl;const B=i.Saferphore;var V=i.mkEvent(!0),Y=i.mkEvent(!0),G=i.mkEvent(!0),J=i.mkEvent(!0);var q={drive:{hideDuplicate:!0},pad:{width:!0,spellcheck:!0},security:{unsafeLinks:!1},general:{allowUserFeedback:!0}};return{setCustomize:n=>{e=n.ApiConfig,C=n.AppConfig},create:function(y){var m=U.Cryptpad_Store={};let x=y.query||function(){},P=y.broadcast||function(){};var M=U.CryptPad_AsyncStore={modules:{}};m.onReadyEvt=V;var W=[],z=function(e,n,t){W.forEach((function(r){r!==t&&x(r,e,n)}))},Q=function(e){if(!e)return M;try{var n=M.modules.team.getTeam(e);return n||void console.error("Team not found",e)}catch(n){return console.error(n),void console.error("Team not found",e)}},Z=m.onSync=function(e,n){var t=Q(e);t?L((function(e){if(t.realtime&&u.whenRealtimeSyncs(t.realtime,e()),!t.id&&t.drive?.realtime&&u.whenRealtimeSyncs(t.drive.realtime,e()),t.sharedFolders&&"object"==typeof t.sharedFolders)for(var n in t.sharedFolders)t.sharedFolders[n].realtime&&u.whenRealtimeSyncs(t.sharedFolders[n].realtime,e())})).nThen((function(){n()})):n({error:"ENOTFOUND"})};m.get=function(e,n,t){var r=Q(n.teamId);r?r.proxy?t(i.find(r.proxy,n.key)):t({error:"ENODRIVE"}):t({error:"ENOTFOUND"})},m.set=function(e,n,t){var r=Q(n.teamId);if(r)if(r.proxy){var o=n.key.slice(),a=o.pop(),s=i.find(r.proxy,o);s&&"object"==typeof s?(void 0===n.value?delete s[a]:s[a]=n.value,n.teamId||(P([e],"UPDATE_METADATA"),Array.isArray(o)&&"profile"===o[0]&&M.messenger&&f.updateMyData(M)),Z(n.teamId,t)):t({error:"INVALID_PATH"})}else t({error:"ENODRIVE"});else t({error:"ENOTFOUND"})};const X=e=>{let n;if(e){const t=Q(e);n=t?.drive?.proxy}else n=M.drive?.proxy;return n};m.drive={get:(e,n,t)=>{let r=X(n.teamId);t(r||{error:"ENOTFOUND"})},set:(e,n,t)=>{let r=X(n.teamId);var o,a;r?(o=r,a=n.value,Object.keys(o).forEach((e=>{delete o[e]})),Object.keys(a).forEach((e=>{o[e]=i.clone(a[e])})),Z(n.teamId,t)):t({error:"ENOTFOUND"})}},m.getSharedFolder=function(e,n,r){var o,a=Q(n.teamId),s=n.id;if(a&&a.manager){if(a.manager.folders[s])return(o=i.clone(a.manager.folders[s].proxy)).offline=Boolean(a.manager.folders[s].offline),void r(o);var c=i.find(a.proxy,["drive",t.SHARED_FOLDERS])||{};c[s]?m.loadSharedFolder(n.teamId,s,c[s],(function(){r(a.manager.folders[s].proxy)})):r({})}else r({error:"ENOTFOUND"})},m.restoreSharedFolder=function(e,n,t){if(n.sfId&&n.drive){var r=Q(n.teamId);r.sharedFolders[n.sfId]&&(Object.keys(n.drive).forEach((function(e){r.sharedFolders[n.sfId].proxy[e]=n.drive[e]})),Object.keys(r.sharedFolders[n.sfId].proxy).forEach((function(e){n.drive[e]||delete r.sharedFolders[n.sfId].proxy[e]}))),Z(n.teamId,t)}else t({error:"EINVAL"})},m.hasSigningKeys=function(){if(M.proxy)return"string"==typeof M.proxy.edPrivate&&"string"==typeof M.proxy.edPublic},m.hasCurveKeys=function(){if(M.proxy)return"string"==typeof M.proxy.curvePrivate&&"string"==typeof M.proxy.curvePublic},m.isOwned=function(e){var n=M.proxy.edPublic;if(!n)return!1;if(!Array.isArray(e)||!e.length)return!1;if(-1!==e.indexOf(n))return!0;var t=M.proxy.teams;return!!t&&Object.keys(t).some((function(n){var r=i.find(t[n],["keys","drive","edPublic"]);return r&&-1!==e.indexOf(r)}))};var $=function(e){var n=e?M.manager.getChannelsList("expirable"):function(){var e=`${M.driveChannel}#drive`;if(!e)return null;var n=M.manager.getChannelsList("pin"),t=M.proxy.profile;if(t){var r=t.edit?a.hrefToHexChannelId("/profile/#"+t.edit,null):null;r&&n.push(r);var o=t.avatar?a.hrefToHexChannelId(t.avatar,null):null;o&&n.push(o)}if(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.friends){var i=f.getFriendChannelsList(M.proxy);n=n.concat(i)}if(M.proxy.mailboxes){var s=Object.keys(M.proxy.mailboxes).map((function(e){if("broadcast"!==e||M.isAdmin)return M.proxy.mailboxes[e].channel})).filter(Boolean);n=n.concat(s)}if(M.proxy.calendars){var c=Object.keys(M.proxy.calendars).map((function(e){return M.proxy.calendars[e].channel}));n=n.concat(c)}return n.push(e),M.data&&M.data.blockId&&n.push(`${M.data.blockId}#block`),n.sort(),n}();return i.deduplicateString(n).sort()};m.pinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){"function"!=typeof t&&(console.error("expected a callback"),t=function(){});var o=n.pads||n;r.rpc.pin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})},m.unpinPads=function(e,n,t){if(n){var r=Q(n&&n.teamId);if(r.rpc){var o=n.pads||n;r.rpc.unpin(o,(function(e){t(e?{error:e}:{})}))}else t({error:"RPC_NOT_READY"})}else t({error:"EINVAL"})};var ee=M.account={};m.getPinnedUsage=function(e,n,t){var r=Q(n&&n.teamId);r&&r.rpc?r.rpc.getFileListSize((function(e,n){r.id||"number"!=typeof n||(ee.usage=n),t({bytes:n})})):t({error:"RPC_NOT_READY"})},m.updatePinLimit=function(e,n,t){M.rpc?M.rpc.updatePinLimits((function(e,n,r,o){e?t({error:e}):(ee.limit=n,ee.plan=r,ee.note=o,t(ee))})):t({error:"RPC_NOT_READY"})},m.getPinLimit=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.getLimit((function(e,n,o,a){if(e)t({error:e});else{var i=r.id?{}:ee;i.limit=n,i.plan=o,i.note=a,t(i)}})):t({error:"RPC_NOT_READY"})},m.clearOwnedChannel=function(e,n,t){var r=Q(n&&n.teamId);r.rpc?r.rpc.clearOwnedChannel(n.channel,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})};var ne={};m.removeOwnedChannel=function(e,n,t){var r,o,a=n,i=!1;if(n&&"object"==typeof n&&(a=n.channel,i=n.force,r=n.teamId,o=n.reason),a!==M.driveChannel||i){var s=Q(r);s?s.rpc?(m.channels[a]&&(ne[a]=!0),s.rpc.removeOwnedChannel(a,(function(e){e&&delete ne[a],t({error:e})}),o)):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})}else t({error:"User drive removal blocked!"})};m.uploadComplete=function(e,n,t){var r=Q(n.teamId);r?r.rpc?n.owned?r.rpc.ownedUploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):r.rpc.uploadComplete(n.id,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadStatus=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadStatus(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadCancel=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.uploadCancel(n.size,(function(e,n){t(e?{error:e}:n)})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})},m.uploadChunk=function(e,n,t){var r=Q(n.teamId);r?r.rpc?r.rpc.send.unauthenticated("UPLOAD",n.chunk,(function(e,n){t({error:e,msg:n})})):t({error:"RPC_NOT_READY"}):t({error:"ENOTFOUND"})};m.anonRpcMsg=function(e,n,t){M.anon_rpc?M.anon_rpc.send(n.msg,n.data,(function(e,n){t(e?{error:e}:n)})):t({error:"ANON_RPC_NOT_READY"})},m.getFileSize=function(e,n,t){var r=i.once(i.mkAsync(t));if(M.anon_rpc){var o=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("GET_FILE_SIZE",o,(function(e,n){if(!e)return n&&n.length&&"number"==typeof n[0]?(0===n[0]&&p.clearChannel(o),void r({size:n[0]})):void r({error:"INVALID_RESPONSE"});r({error:e})}))}else r({error:"ANON_RPC_NOT_READY"})},m.isNewChannel=function(e,n,t){if(M.anon_rpc){var r=n.channel||a.hrefToHexChannelId(n.href,n.password);M.anon_rpc.send("IS_NEW_CHANNEL",r,(function(e,n){if(!e)return n&&n.length&&"object"==typeof n[0]?(n[0].isNew&&p.clearChannel(r),void t(n[0])):void t({error:"INVALID_RESPONSE"});t({error:e})}))}else t({error:"ANON_RPC_NOT_READY"})},m.getMultipleFileSize=function(e,n,t){M.anon_rpc?Array.isArray(n.files)?M.anon_rpc.send("GET_MULTIPLE_FILE_SIZE",n.files,(function(e,n){e?t({error:e}):n&&n.length&&"object"==typeof n[0]?t({size:n[0]}):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"}):t({error:"ANON_RPC_NOT_READY"})},m.getDeletedPads=function(e,n,t){if(M.anon_rpc){var r=n&&n.list||$(!0);Array.isArray(r)?M.anon_rpc.send("GET_DELETED_PADS",r,(function(e,n){e?t({error:e}):n&&n.length&&Array.isArray(n[0])?t(n[0]):t({error:"UNEXPECTED_RESPONSE"})})):t({error:"INVALID_FILE_LIST"})}else t({error:"ANON_RPC_NOT_READY"})};var te=function(e,n,t){M.anon_rpc?t():d.createAnonymous(M.network,(function(e,n){e?t({error:e}):(M.anon_rpc=n,t())}))},re=m.getAllStores=function(){if(!M.proxy||!M.manager)return[];var e=[M],n=M.modules.team;if(n){var t=n.getTeams().map((function(e){return n.getTeam(e)}));Array.prototype.push.apply(e,t)}return e};m.getUserColor=function(){var e=i.find(M,["proxy","settings","general","cursor","color"]);return e||(e=i.getRandomColor(!0),m.setAttribute(null,{attr:["general","cursor","color"],value:e},(function(){}))),e},m.getMetadata=function(e,n,t){var r=M.proxy||{},o=i.find(r,["settings","general","disableThumbnails"]),c=M.modules.team&&M.modules.team.getTeamsData(n)||{};r.uid||(M.noDriveUid=M.noDriveUid||a.createChannelId());var u={user:{name:r[s.displayNameKey]||M.noDriveName||"",uid:r.uid||M.noDriveUid,avatar:i.find(r,["profile","avatar"]),profile:i.find(r,["profile","view"]),color:m.getUserColor(),notifications:i.find(r,["mailboxes","notifications","channel"]),curvePublic:r.curvePublic,edPublic:r.edPublic,netfluxId:M?.network?.webChannels?.[0]?.myID,badge:i.find(r,["profile","badge"])},priv:{clientId:e,edPublic:r.edPublic,edPrivate:r.edPrivate,friends:r.friends||{},settings:r.settings||q,thumbnails:!1===o,isDriveOwned:Boolean(i.find(M,["driveMetadata","owners"])),driveChannel:M.driveChannel,pendingFriends:r.friends_pending||{},supportPrivateKey:i.find(r,["mailboxes","supportadmin","keys","curvePrivate"]),accountName:r.login_name||"",offline:M.proxy&&M.offline,teams:c,plan:M.ready?ee.plan||"":void 0,mutedChannels:r.mutedChannels}};return t(JSON.parse(JSON.stringify(u))),u},m.onMaintenanceUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{e&&P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"MAINTENANCE",data:e.maintenance}})}))},m.onSurveyUpdate=function(){let n=e.httpUnsafeOrigin;i.fetchApi(n,"broadcast",!0,(e=>{P([],"UNIVERSAL_EVENT",{type:"broadcast",data:{ev:"SURVEY",data:e.surveyURL}})}))};m.addPad=function(e,n,r){if(n.href||n.roHref){var o;if(!n.roHref){var i=a.parsePadUrl(n.href);"pad"===i.hashData.type&&(o=a.getSecrets(i.type,i.hash,n.password),n.roHref="/"+i.type+"/#"+a.getViewHashFromKeys(o))}var s,c,u,f,l=(s=n.href,c=n.roHref,u=n.title,f=+new Date,{href:s,roHref:c,atime:f,ctime:f,title:u||t.getDefaultName(a.parsePadUrl(s))});n.owners&&(l.owners=n.owners),n.expire&&(l.expire=n.expire),n.password&&(l.password=n.password),(n.channel||o)&&(l.channel=n.channel||o.channel),n.readme&&(l.readme=1),-1===n.teamId&&(n.teamId=void 0);var d=Q(n.teamId);d&&d.manager?d.manager.addPad(n.path,l,(function(o){o?r({error:o}):(re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,r))})):r({error:"ENOTFOUND"})}else r({error:"NO_HREF"})};var oe=function(e,n){var t=i.find(M,["proxy","edPublic"]),r=function(e){var n=[];return e?(M.proxy.todo&&n.push(a.hrefToHexChannelId("/todo/#"+M.proxy.todo,null)),M.proxy.profile&&M.proxy.profile.edit&&n.push(a.hrefToHexChannelId("/profile/#"+M.proxy.profile.edit,null)),M.proxy.mailboxes&&Object.keys(M.proxy.mailboxes||{}).forEach((function(e){if("supportadmin"!==e){var t=M.proxy.mailboxes[e];n.push(t.channel)}}))):n=M.manager.getChannelsList("owned"),n.filter((function(e){if("string"==typeof e)return-1!==[32,48].indexOf(e.length)}))}(e),o=B.create(10),s=function(n){e||M.manager.findChannel(n).forEach((function(e){var n=M.manager.findFile(e.id);M.manager.delete({paths:n})}))};r.forEach((function(e){var r=n();o.take((function(n){var o=!1;L((function(a){32===e.length&&m.anonRpcMsg(null,{msg:"GET_METADATA",data:e},a((function(i){if(i&&i.error)return n(),r(),void a.abort();var c=i[0];return Object.keys(c||{}).length?c&&Array.isArray(c.owners)&&-1!==c.owners.indexOf(t)?void(o=c.owners.some((function(e){return e!==t}))):(n(),r(),void a.abort()):(s(e),n(),r(),void a.abort())})))})).nThen((function(n){o?m.setPadMetadata(null,{channel:e,command:"RM_OWNERS",value:[t]},n()):M.rpc.removeOwnedChannel(e,n((function(n){n?console.error(n):s(e)})))})).nThen((function(){n(),r()}))}))}))};m.removeOwnedPads=function(e,n,t){M.proxy.edPublic?L((function(e){oe(!1,e)})).nThen(t):t({error:"NOT_LOGGED_IN"})},m.deleteAccount=function(e,t,r){var o=M.proxy.edPublic,a=t&&t.keys,c=t&&t.auth;m.anonRpcMsg(e,{msg:"GET_METADATA",data:M.driveChannel},(function(t){var u=t[0];if(u&&u.owners&&1===u.owners.length&&-1!==u.owners.indexOf(o))L((function(e){N.checkRights({auth:c,blockKeys:a},e((function(n){if(n)return e.abort(),console.error(n),void r({error:"INVALID_CODE"})})))})).nThen((function(n){globalThis.accountDeletion=e,M.proxy[s.tokenKey]="DELETED",Z(null,n())})).nThen((function(e){M.rpc.removePins(e((function(e){e&&console.error(e)})))})).nThen((function(n){M.ownDeletion=!0,m.removeOwnedChannel(e,{channel:M.driveChannel,force:!0},n())})).nThen((function(e){a&&N.removeLoginBlock({reason:"ARCHIVE_OWNED",auth:c,edPublic:o,blockKeys:a},e((function(e){e&&console.error(e)})))})).nThen((function(e){oe(!0,e)})).nThen((function(){P([e],"DRIVE_DELETED","ARCHIVE_OWNED"),x(e,"DELETE_ACCOUNT","DELETED",(function(){})),M.network.disconnect(),r({state:!0})}));else{var f={intent:"Please delete my account."};f.drive=M.driveChannel,f.edPublic=o;var l=i.decodeBase64(M.proxy.edPrivate),d=R.Nacl.sign.detached(i.decodeUTF8(n(f)),l);R.Nacl.sign.detached.verify(i.decodeUTF8(n(f)),d,i.decodeBase64(o))||console.error("signed message failed verification");var h=i.encodeBase64(d);r({proof:h,toSign:JSON.parse(n(f))})}}))},m.migrateAnonDrive=function(e,n,t){var r=n.anonHash;h.anonDriveIntoUser(M,r,t)},m.setDisplayName=function(e,n,t){if(!M.proxy)return M.noDriveName=n,P([e],"UPDATE_METADATA"),void t();M.modules.profile&&M.modules.profile.setName(n),M.proxy[s.displayNameKey]=n,P([e],"UPDATE_METADATA"),f.updateMyData(M),Z(null,t)},m.resetDrive=function(e,n,t){L((function(e){oe(e)})).nThen((function(){M.proxy.drive=M.userObject.getStructure(),z("DRIVE_CHANGE",{path:["drive","filesData"]},e),Z(null,t)}))},m.setPadAttribute=function(e,n,r){L((function(r){re().forEach((function(o){o.manager.setPadAttribute(n,r((function(){(o.id?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),Z(o.id,r())})))}))})).nThen(r)},m.getPadAttribute=function(e,n,t){var r={};L((function(e){re().forEach((function(t){t.manager.getPadAttribute(n,e((function(e,n){e||(n&&"object"==typeof n?(!r.value||r.atime{if(M.loggedIn&&M.proxy.edPublic){var n,r=M.modules.team,o=r&&r.getTeams()||[];-1!==e.indexOf(M.proxy.edPublic)?n=M:o.some((function(t){var o=i.find(M,["proxy","teams",t,"keys","drive","edPublic"]),a=i.find(M,["proxy","teams",t,"keys","drive","edPrivate"]);if(-1===e.indexOf(o))return!1;if(!a)return!1;var s=r.getTeam(t);return n=s,!0}));var a=function(){if(n){var e=n.rpc;e?e.send("COOKIE","",(function(e){t(e)})):t("ERESTRICTED")}else t("ERESTRICTED")};n&&n.onRpcReadyEvt?n.onRpcReadyEvt.reg((function(){a()})):a()}else t("ERESTRICTED")}))):t("ERESTRICTED")},m.joinPad=function(e,n){if(n.versionHash)!function(e,n){var t,r=a.createChannelId();L((function(r){m.getPadMetadata(null,{channel:n.channel},r((function(n){if(n&&n.rejected)return x(e,"PAD_ERROR",{type:"ERESTRICTED"}),void r.abort();t=n.validateKey})))})).nThen((function(){m.getHistoryRange(e,{cpCount:1,channel:n.channel,lastKnownHash:n.versionHash},(function(o){if(o&&o.error)x(e,"PAD_ERROR",o.error);else{var a=o.messages||[];a.length&&a[a.length-1].serverHash!==n.versionHash?x(e,"PAD_ERROR",{type:"HASH_NOT_FOUND"}):(x(e,"PAD_CONNECT",{myID:r,id:n.channel,members:[r]}),(o.messages||[]).forEach((function(n){x(e,"PAD_MESSAGE",{msg:n.msg,time:n.time,user:r.slice(0,16)})})),t&&M.messenger&&M.messenger.storeValidateKey(n.channel,t),x(e,"PAD_READY"))}}))}))}(e,n);else if(a.isValidChannel(n.channel)){var r=void 0===se[n.channel],o=se[n.channel]=se[n.channel]||{queue:[],data:{},clients:[],bcast:function(e,n,t){o.clients.forEach((function(r){r!==t&&x(r,e,n)}))},history:[],pushHistory:function(e,n){if(n){var t;for(o.history.push("cp|"+e),t=o.history.length-101;t>0&&!/^cp\|/.test(o.history[t]);t--);o.history=o.history.slice(Math.max(t,0))}else o.history.push(e)}};if(-1===o.clients.indexOf(e)&&o.clients.push(e),!r&&o.wc)return x(e,"PAD_CONNECT",{myID:o.wc.myID,id:o.wc.id,members:o.wc.members}),o.wc.members.forEach((function(n){x(e,"PAD_JOIN",n)})),o.history.forEach((function(n){x(e,"PAD_MESSAGE",{msg:k.removeCp(n),user:o.wc.myID,validateKey:o.data.validateKey})})),void x(e,"PAD_READY");var i=function(e){e&&"EDELETED"===e.type&&ne[n.channel]&&(delete ne[o],e.ownDeletion=!0),o.bcast("PAD_ERROR",e),e&&"EDELETED"===e.type&&p&&p.clearChannel&&p.clearChannel(n.channel),-1!==["EDELETED","EEXPIRED","ERESTRICTED"].indexOf(e.type)&&m.leavePad(null,n,(function(){}))},s={Cache:M.neverCache?void 0:p,priority:1,onCacheStart:function(){x(e,"PAD_CACHE")},onCacheReady:function(){x(e,"PAD_CACHE_READY")},onReady:function(t){var r=t.metadata||{};o.data=r,r&&r.validateKey&&M.messenger&&M.messenger.storeValidateKey(n.channel,r.validateKey),x(e,"PAD_READY",t.noCache)},onMessage:function(e,n,t,r,a){o.lastHash=a,o.pushHistory(e,r),o.bcast("PAD_MESSAGE",{user:n,msg:e,validateKey:t})},onJoin:function(e){o.bcast("PAD_JOIN",e)},onLeave:function(e){o.bcast("PAD_LEAVE",e)},onError:i,onChannelError:i,onRejected:m.onRejected,onConnectionChange:function(e){e.state||o.bcast("PAD_DISCONNECT")},onMetadataUpdate:function(e){o.data=e||{},re().forEach((function(r){r.manager.findChannel(n.channel,!0).forEach((function(n){n.data.owners=e.owners,n.data.atime=+new Date,e.expire&&(n.data.expire=+e.expire)})),(r.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})})),o.bcast("PAD_METADATA",e)},crypto:{encrypt:function(e){return e},decrypt:function(e){return e}},noChainPad:!0,channel:n.channel,metadata:n.metadata,network:M.network||M.networkPromise,websocketURL:I.getWebsocketURL(),onInit:function(){G.fire()},onConnect:function(n,t){o.sendMessage=function(e,r,a){t(e,(function(t){t?a({error:t}):(o.lastHash=e.slice(0,64),o.pushHistory(k.removeCp(e),/^cp\|/.test(e)),o.bcast("PAD_MESSAGE",{user:n.myID,msg:k.removeCp(e),validateKey:o.data.validateKey},r),a())}))},o.wc=n,o.queue.forEach((function(n){o.sendMessage(n.message,e)})),o.queue=[],o.bcast("PAD_CONNECT",{myID:n.myID,id:n.id,members:n.members})}};o.cpNf=k.start(s)}else x(e,"PAD_ERROR","INVALID_CHAN")},m.leavePad=function(e,n,t){var r=se[n.channel];r&&r.cpNf?(m.dropChannel(n.channel),t()):t({error:"EINVAL"})},m.sendPadMsg=function(e,n,t){var r=n.msg,o=se[n.channel];if(o)return o.wc?void o.sendMessage(r,e,t):(o.queue.push(r),void t())},m.corruptedCache=function(e,n){var t=se[n];t&&t.cpNf&&(p.clearChannel(n),t.cpNf.resetCache&&t.cpNf.resetCache())},m.changePadPasswordPin=function(e,n,t){var r=n.oldChannel,o=n.channel;L((function(e){re().forEach((function(n){n.manager.findChannel(o).length&&(n.rpc.unpin([r],e()),n.rpc.pin([o],e()))}))})).nThen(t)},m.contactPadOwner=function(e,n,t){var r=n.owners;if(!Array.isArray(r)||!r.length)return t({state:!1});n.send?L((function(e){r.forEach((function(t){!function(e,t,r,o){if(M.mailbox&&!n.anon)return M.mailbox.sendTo(e,t,r,o);A.sendToAnon(M.anon_rpc,e,t,r,o)}(n.query,{channel:n.channel,data:n.msgData},{channel:t.notifications,curvePublic:t.curvePublic},e())}))})).nThen((function(){t({state:!0})})):t({state:!0})},m.givePadAccess=function(e,n,t){var r,o,a=M.proxy.edPublic,i=n.channel,s=M.manager.findChannel(i);n.user&&n.user.notifications&&n.user.curvePublic?s.some((function(e){if(e.data&&Array.isArray(e.data.owners)&&-1!==e.data.owners.indexOf(a)&&e.data.href)return r=e.data.href,o=e.data.title,!0}))?(M.mailbox.sendTo("GIVE_PAD_ACCESS",{channel:i,href:r,title:o},{channel:n.user.notifications,curvePublic:n.user.curvePublic}),t()):t({error:"ENOTFOUND"}):t({error:"EINVAL"})},m.getLastHash=function(e,n,t){var r=se[n.channel];r?r.lastHash?t({hash:r.lastHash}):t({error:"EINVAL"}):t({error:"ENOCHAN"})};m.burnPad=function(e,n){var t=n.channel,r=R.b64AddSlashes(n.ownerKey||"");if(t&&r)try{var o=a.decodeBase64(r),i=R.Nacl.sign.keyPair.fromSecretKey(o);l.create(M.network,{edPublic:a.encodeBase64(i.publicKey),edPrivate:a.encodeBase64(i.secretKey)},(function(e,r){e?console.error(e):m.getPadMetadata(null,{channel:t},(function(e){r.removeOwnedChannel(t,(function(t){t?console.error(t):function(e,n){var t=e.channel,r=e.href,o=a.parsePadUrl(r),i=a.getSecrets(o.type,o.hash,e.password);if((!n||!n.error)&&n.mailbox){var s,c=R.createEncryptor(i.keys),u=[];try{"string"==typeof n.mailbox?u.push(c.decrypt(n.mailbox,!0,!0)):Object.keys(n.mailbox).forEach((function(e){u.push(c.decrypt(n.mailbox[e],!0,!0))}))}catch(e){console.error(e)}try{s=M.proxy.curvePublic}catch(e){return void console.error(e)}u.forEach((function(e){var n=JSON.parse(e);n.curvePublic!==s&&M.mailbox.sendTo("OWNED_PAD_REMOVED",{channel:t},{channel:n.notifications,curvePublic:n.curvePublic},(function(){}))}))}}(n,e)}))}))}))}catch(e){console.error(e)}else console.error("Can't delete BAR pad")},m.getPadMetadata=function(e,r,o){var s=i.once(i.mkAsync(o));if(!M.offline&&M.anon_rpc)if(r.channel){if(32===r.channel.length)return a.isValidChannel(r.channel)?void M.anon_rpc.send("GET_METADATA",r.channel,(function(e,o){if(e)s({error:e});else{var a=o&&o[0]||{};s(a),a.rejected||re().forEach((function(e){var o=e.manager.findChannel(r.channel,!0),i=!1;(o.forEach((function(e){n(e.data.owners)!==n(a.owners)&&(i=!0),e.data.owners=a.owners,e.data.atime=+new Date,a.expire&&(e.data.expire=+a.expire)})),i)&&(e.sendEvent||z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))}})):(c.send("METADATA_INVALID_CHAN"),void s({error:"EINVAL"}));s({error:"EINVAL"})}else s({error:"ENOTFOUND"});else s({error:"OFFLINE"})},m.setPadMetadata=function(e,n,t){if(n.channel)if(n.command){var r=Q(n.teamId);if(r){var o=n.channels;delete n.channels,r.rpc.setMetadata(n,(function(e,n){e?t({error:e}):Array.isArray(n)&&n.length?t(n[0]):t({})})),Array.isArray(o)&&o.forEach((function(t){var r=i.clone(n);r.channel=t,m.setPadMetadata(e,r,(function(){}))}))}else t({error:"ENOTFOUND"})}else t({error:"EINVAL"});else t({error:"ENOTFOUND"})},m.deleteMailboxMessage=function(e,n,t){M.anon_rpc?M.anon_rpc.send("DELETE_MAILBOX_MESSAGE",n,(function(e){t({error:e})})):t({error:"RPC_NOT_READY"})},m.getFullHistory=function(e,n,t){var r=M.network,o=r.historyKeeper,a=[],i=!1,s=function(e){if(!i){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o)return"FULL_HISTORY_END"===o[0]?(t(a),r.off("message",s),void(i=!0)):void("FULL_HISTORY"===o[0]&&(o[1]&&o[1].validateKey||o[1][3]===n.channel&&(e=o[1][4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),n.debug?a.push({serverHash:e.slice(0,64),msg:e,author:o[1][1],time:o[1][5]}):a.push(e))))}};r.on("message",s),r.sendto(o,JSON.stringify(["GET_FULL_HISTORY",n.channel,n.validateKey]))},m.getHistory=function(e,n,t,r){var o=i.once(i.mkAsync(t)),a=M.network,s=a.historyKeeper,c=Math.floor(1e6*Math.random()),u=[],f=!1,l=function(e,t){if(!f&&t===s){var i=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(i&&!(i.txid&&i.txid!==c||i.validateKey&&i.channel))if(i.error&&i.channel)i.channel===n.channel&&(a.off("message",l),f=!0,o({error:i.error}));else{if(1===i.state&&i.channel){if(i.channel!==n.channel)return;return o(u),a.off("message",l),void(f=!0)}Array.isArray(i)&&i[0]&&i[0]!==c||i[3]===n.channel&&(i[4]&&r?u.push({msg:e,hash:i[4].slice(0,64)}):(e=i[4])&&(e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),u.push(e)))}}};a.on("message",l);var d={txid:c,lastKnownHash:n.lastKnownHash},h=["GET_HISTORY",n.channel,d];a.sendto(s,JSON.stringify(h))},m.getHistoryRange=function(e,n,t){var r,o=M.network,a=o.historyKeeper,s=[],c=!0,u=!1,f=!1,l=i.uid();o.on("message",(function(e){if(!f){var o=function(e){try{return JSON.parse(e)}catch(e){return null}}(e);if(o[1]===l){if("HISTORY_RANGE_ERROR"!==o[0])return"HISTORY_RANGE_END"===o[0]?(t({messages:s,isFull:u,lastKnownHash:r}),void(f=!0)):void("HISTORY_RANGE"===o[0]&&(o[2]&&o[1].validateKey||o[2][3]===n.channel&&(e=o[2][4])&&(c&&(/^cp\|/.test(e)||n.toHash||(u=!0),r=e.slice(0,64),c=!1),e=e.replace(/cp\|(([A-Za-z0-9+\/=]+)\|)?/,""),s.push({serverHash:e.slice(0,64),msg:e,author:o[2][1],time:o[2][5]}))));t({error:o[2]})}else console.log("bad txid")}})),o.sendto(a,JSON.stringify(["GET_HISTORY_RANGE",n.channel,{from:n.lastKnownHash,to:n.toHash,cpCount:n.cpCount||2,txid:l}]))};var ce=function(e,n){e&&(e.deprecated||e.restricted||(n||e.on("change",["drive",t.SHARED_FOLDERS],(function(n,r,o){if(o.length>3&&"password"===o[3]){var i=o[2],s=e.drive[t.SHARED_FOLDERS][i],c=M.manager.user.userObject.getHref?M.manager.user.userObject.getHref(s):s.href,u=a.parsePadUrl(c),f=a.getSecrets(u.type,u.hash,n);return v.updatePassword(m,{oldChannel:f.channel,password:r,href:c},M.network,(function(){console.log("Shared folder password changed")})),!1}})),e.on("change",[],(function(e,r,o){if(n){if(o[0]===t.FILES_DATA&&"object"==typeof r&&r.channel&&!r.owners){var a=[r.channel];r.rtChannel&&a.push(r.rtChannel),r.lastVersion&&a.push(r.lastVersion),m.pinPads(null,a,(function(e){console.error(e)}))}if(o[0]===t.FILES_DATA&&"object"==typeof e&&e.channel&&!r){var i=[e.channel];M.manager.findChannel(e.channel).some((function(e){return e.fId!==n}))||(e.rtChannel&&i.push(e.rtChannel),e.lastVersion&&i.push(e.lastVersion),m.unpinPads(null,i,(function(e){console.error(e)})))}}e&&!r&&Array.isArray(o)&&(o[0]===t.FILES_DATA||"drive"===o[0]&&o[1]===t.FILES_DATA)&&setTimeout((function(){m.checkDeletedPad(e&&e.channel)})),z("DRIVE_CHANGE",{id:n,old:e,new:r,path:o})})),e.on("remove",[],(function(e,t){z("DRIVE_REMOVE",{id:n,old:e,path:t})}))))};m.loadSharedFolder=function(e,n,t,r,o){var i=Q(e);if(i){var s=a.parsePadUrl(t.href||t.roHref);s||s.hashData?v.load({isNew:o,network:M.network||M.networkPromise,store:i,Store:m,isNewChannel:m.isNewChannel},n,t,r):r({error:"EINVAL"})}else r({error:"ENOTFOUND"})};var ue=function(e,n,t,r){m.loadSharedFolder(null,e,n,t,r)};m.loadSharedFolderAnon=function(e,n,t){m.loadSharedFolder(null,n.id,n.data,(function(e){t({error:e?void 0:"EDELETED"})}))},m.addSharedFolder=function(e,n,r){V.reg((function(){var o=Q(n.teamId);o.manager.addSharedFolder(n,(function(a){a&&"object"==typeof a&&a.error?r(a):((n.teamId?o.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e),r(a))}))}))},m.updateSharedFolderPassword=function(e,n,t){v.updatePassword(m,n,M.network,t)},m.userObjectCommand=function(e,n,r){if(n&&n.cmd){var o=Q(n.teamId);if(o.offline)return(o.id?o.sendEvent:z)("NETWORK_DISCONNECT"),void r({error:"OFFLINE"});o.manager.command(n,(function(o){re().forEach((function(n){(n.id?n.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]},e)})),Z(n.teamId,(function(){r(o)}))}))}};var fe=m.dropChannel=function(e){console.error("Drop channel",e);try{M.messenger.leavePad(e)}catch(e){console.error(e)}try{M.modules.cursor.leavePad(e)}catch(e){console.error(e)}try{M.modules.integration.leavePad(e)}catch(e){console.error(e)}try{M.onlyoffice.leavePad(e)}catch(e){console.error(e)}try{if(function(e){if(M){if(M.driveChannel===e)return!0;if(v.isSharedFolderChannel(e))return!0;if(i.find(M,["proxy","teams"])){var n=i.find(M,["proxy","teams"])||{};return Object.keys(n).some((function(t){return n[t].channel===e}))}return i.find(M,["proxy","profile","href"])?a.hrefToHexChannelId(i.find(M,["proxy","profile","href"]))===e:void 0}}(e))return void delete m.channels[e]}catch(e){console.error(e)}try{p.leaveChannel(e)}catch(e){console.error(e)}m.channels[e]&&(m.channels[e].cpNf&&m.channels[e].cpNf.stop(),delete m.channels[e])};m._removeClient=function(e){var n=W.indexOf(e);-1!==n&&W.splice(n,1);try{M.onlyoffice?.removeClient(e)}catch(e){console.error(e)}try{M.mailbox?.removeClient(e)}catch(e){console.error(e)}Object.keys(M.modules).forEach((function(n){if(M.modules[n]&&M.modules[n].removeClient)try{M.modules[n].removeClient(e)}catch(e){console.error(e)}})),Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients.indexOf(e);-1!==t&&m.channels[n].clients.splice(t,1),0===m.channels[n].clients.length&&fe(n)}))};m.refreshDriveUI=function(){re().forEach((function(e){(e.id?e.sendEvent:z)("DRIVE_CHANGE",{path:["drive",t.FILES_DATA]})}))};var le=function(e,n){const t=i.mkAsync(n);var o=M.proxy,a=M.drive;if(M.manager)t();else{var s=M.manager=r.create(a.proxy,{onSync:function(e){Z(null,e)},edPublic:o.edPublic,pin:function(e,n){M.loggedIn?m.pinPads(null,e,n):n()},unpin:function(e,n){M.loggedIn?m.unpinPads(null,e,n):n()},loadSharedFolder:ue,settings:o.settings,removeOwnedChannel:function(e,n){m.removeOwnedChannel("",e,n)},store:M,Store:m},{outer:!0,edPublic:M.proxy.edPublic,loggedIn:M.loggedIn,log:function(e){z("DRIVE_LOG",e)},rt:a.realtime}),c=M.userObject=s.user.userObject;L((function(e){M.sharedFolders={},M.handleSharedFolder=function(e,n){n?(M.sharedFolders[e]=n,M.driveEvents&&ce(n.proxy,e)):delete M.sharedFolders[e]},c.migrate(e())})).nThen((function(n){var t=M.network||M.networkPromise;v.loadSharedFolders(m,t,M,a.proxy,c,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)}),!0)})).nThen((function(n){ie(D,"team",n,e)})).nThen((function(e){ie(S,"calendar",e)})).nThen((function(){t()}))}};const de=(e=function(){})=>{ie(g,"cursor",e),ie(b,"integration",e),ie(_,"messenger",e),ie(T,"history",e),ie(K,"badge",e),M.onlyoffice||(M.onlyoffice=O.init(M,(function(e,n,t){t.forEach((function(t){x(t,"OO_EVENT",{ev:e,data:n})}))}))),M&&(M.messenger=M.modules.messenger)};var he=function(e,n,t){M.ready=!0;var r=M.proxy,u=M.manager,f=M.userObject;L((function(n){r.settings||(r.settings=q),r.forms||(r.forms={}),r.friends_pending||(r.friends_pending={}),r.form_seed||(r.form_seed=a.createChannelId()),u||(le(e,n()),u=M.manager,f=M.userObject),te(0,0,n()),function(e,n,t){if(!M.loggedIn)return t();M.rpc?t(ee):l.create(M.network,M.proxy,(function(e,n){e?t({error:e}):(M.rpc=n,M.onRpcReadyEvt.fire(),m.getPinLimit(null,null,(function(e){e.error&&console.error(e.error),ee.limit=e.limit,ee.plan=e.plan,ee.note=e.note,t(e)})))}),p)}(0,0,n()),x(e,"LOADING_DRIVE",{type:"migrate",progress:0})})).nThen((function(n){void 0===r.version&&(r.version=11),o(r,n(),(function(n,t){x(e,"LOADING_DRIVE",{type:"migrate",progress:t})}),M)})).nThen((function(n){x(e,"LOADING_DRIVE",{type:"sf",progress:0}),f.fixFiles(),v.loadSharedFolders(m,M.network,M,M.drive.proxy,f,n,(n=>{var t={type:"sf",progress:100*n.progress/n.max};x(e,"LOADING_DRIVE",t)})),de(n),ie(w,"profile",n),ie(S,"calendar",n),ie(E,"support",n),L((e=>{M.modules.team&&M.modules.team.onReady(e)}))})).nThen((function(){var e,o=function(){P([],"REQUEST_LOGIN")};M.loggedIn&&(function(e){if(M.rpc){var n=$(!1),t=a.hashChannelList(n);M.rpc.getServerHash((function(n,r){n?e(n):e(null,r===t)}))}else e({error:"RPC_NOT_READY"})}((function(e,n){n||function(e){if(M.rpc){var n=$(!1);M.rpc.reset(n,(function(n){e(n||null)}))}else e({error:"RPC_NOT_READY"})}((function(e){if(e)return console.error(e);console.log("RESET DONE")}))})),"number"!=typeof r.loginToken&&(r[s.tokenKey]=M.data.localToken||Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),n[s.tokenKey]=r[s.tokenKey],M.data.localToken&&M.data.localToken!==r[s.tokenKey])?o():(n.feedback=i.find(r,["settings","general","allowUserFeedback"]),c.init(n.feedback),M.returned=n,"function"==typeof t&&t(n),M.offline=!1,z("NETWORK_RECONNECT"),P([],"UPDATE_METADATA"),P([],"STORE_READY",n),"string"==typeof r.uid&&32===r.uid.length||(console.log("generating a persistent identifier"),r.uid=a.createChannelId()),!M.loggedIn||m.hasSigningKeys()&&m.hasCurveKeys()?(r.on("change",[s.displayNameKey],(function(e,n){"string"==typeof n&&P([],"UPDATE_METADATA")})),r.on("change",["profile"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["friends"],(function(e,n,t){if(P([],"UPDATE_METADATA"),M.messenger&&void 0===e){var o=t.slice(-1)[0],a=r.friends&&r.friends[o];M.messenger.onFriendAdded(a)}})),r.on("remove",["friends"],(function(e,n){if(P([],"UPDATE_METADATA"),M.messenger){var t=n[1];t&&"channel"===n[2]&&M.messenger.onFriendRemoved(t,e)}})),r.on("change",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("remove",["friends_pending"],(function(){P([],"UPDATE_METADATA")})),r.on("change",["settings"],(function(){P([],"UPDATE_METADATA")})),r.on("change",[s.tokenKey],(function(){M.isDeleted||"DELETED"===r[s.tokenKey]||P([],"UPDATE_TOKEN",{token:r[s.tokenKey]})})),M.mailbox=A.init({Store:m,store:M,updateMetadata:function(){P([],"UPDATE_METADATA")},updateDrive:function(){z("DRIVE_CHANGE",{path:["drive","filesData"]})},pinPads:function(e,n){m.pinPads(null,e,n)}},e,(function(e,n,t,r){var o=i.once(r||function(){});t.forEach((function(t){x(t,"MAILBOX_EVENT",{ev:e,data:n},o)}))})),V.fire()):o())}))};const pe=(e,n,t,r)=>{if(M.accountModule)return M.accountModule;const o=H.init({userHash:n.userHash,anonHash:n.anonHash,cache:n.cache,form_seed:n.form_seed,store:M,broadcast:P,postMessage:x});M.accountModule=o;const{channel:a,onAccountReady:s,onAccountCacheReady:c,onDisconnect:u,onReconnect:f}=o;M.driveChannel=a,c((e=>{M.returned||=e,t(e)})),s((e=>{M.returned||=e,r(e)})),u((()=>{z("NETWORK_DISCONNECT")})),f((()=>{z("NETWORK_RECONNECT")}));return setInterval((function(){var e=[];Object.keys(m.channels).forEach((function(n){var t=m.channels[n].clients;Array.prototype.push.apply(e,t)})),(e=i.deduplicateString(e)).forEach((function(e){var n=0,t=function(){if(n>=2)return m._removeClient(e),x(e,"TIMEOUT"),void console.error("TIMEOUT",e);n++;var r=setTimeout(t,3e4);x(e,"PING",null,(function(e){e&&console.error(e),clearTimeout(r)}))};t()}))}),12e4),o},ve=(e,n,t,r)=>{const o=i.once((e=>{const n=j.init({account:e,store:M,broadcast:P,postMessage:x}),{onDriveReady:o,onDriveCacheReady:a,onDisconnect:i,onReconnect:s}=n;a((()=>{t(M.returned)})),o((()=>{r(M.returned)})),i((()=>{})),s((()=>{}))})),a=()=>{},s=pe(0,n,a,a);s.onAccountCacheReady((()=>{o(s)})),s.onAccountReady((()=>{o(s)}))};m.disableCache=function(e,n,t){n?p.disable():p.enable(),t()};var ye=!1;m.hasDrive=function(e,n,t){t({state:Boolean(M.proxy)})};const me=e=>{if(M?.network?.historyKeeper)return setTimeout(e);const n=n=>{M.network||=n;n.join("0000000000000000000000000000000000").then((function(t){let r;t.members.forEach((e=>{16===e.length&&(r=e)})),n.historyKeeper=r,t.leave(),e()}),(function(n){console.error(n),e({error:"GET_HK"})}))};if(M.network)return n(M.network);M.networkPromise?.then(n)};var ge=function(e,n,t){var r=function(){de();let e=()=>{te(0,0,(function(){c.send("NO_DRIVE",!0),n({})}))};if(t)return((e,n)=>{if(M.rpc)n(M.rpc);else{var t=R.Nacl.sign.keyPair(),r={edPublic:i.encodeBase64(t.publicKey),edPrivate:i.encodeBase64(t.secretKey)};l.create(M.network,r,(function(e,t){e?n({error:e}):(M.rpc=t,n(t))}))}})(0,e);e()};if(M.network)r();else{var o=I.getWebsocketURL();F.connect(o).then((function(e){M.network?(e.disconnect(),e=M.network):M.network=e,me((e=>{e?n(e):r()}))}),(function(e){console.error(e),n({error:"OFFLINE"})}))}};const Ee=(e,n,t)=>{le(e,(function(){t(n),Y.fire()}))},be=(e,n,t)=>{M.manager?Y.reg((function(){me((r=>{M.network||=r,he(e,n,(()=>{t(n)}))}))})):he(e,n,(()=>{t(n)}))};return m.init=function(e,n,t){var r=i.once((function(r){n.driveEvents&&function(e){Y.reg((()=>{-1===W.indexOf(e)&&W.push(e),M.driveEvents||(M.driveEvents=!0,ce(M.proxy),Object.keys(M.manager.folders).forEach((function(e){var n=M.manager.folders[e].proxy;ce(n,e)})))}))}(e),t(r)}));if(ye&&!M.returned&&n.cache)Y.reg((function(){r({state:"ALREADY_INIT",returned:M.cacheReturned})}));else{if(ye)return M.networkTimeout&&x(e,"LOADING_DRIVE",{type:"offline"}),void V.reg((function(){r({state:"ALREADY_INIT",returned:M.returned})}));n.disableCache&&p.disable(),n.noDrive&&!n.requires&&(n.requires="pad"),((e,n,t)=>{if(n.neverDrive||n.noDrive&&!n.userHash&&!n.anonHash)return n.neverDrive&&(M.neverCache=!0),void ge(0,(e=>{e?.error&&c.send("NO_DRIVE_ERROR",!0),t(e)}),!!n.neverDrive);const r=n.requires;ye=!0,M.data=n;let o=e=>{1===Object.keys(M.proxy).length&&c.send("FIRST_APP_USE",!0),e&&e.error&&(ye=!1)};if("pad"===r)return void ge(0,(function(r){if(r&&r.error)return;t(r);let a=i.once((()=>{ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))}));G.reg(a),J.reg(a)}));if("file"===r)return void ge(0,(function(r){r&&r.error||(t(r),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)})))}));if("team"===r){let r=!1;const a=a=>i=>{r||(r=!0,L((e=>{a||te(0,0,e())})).nThen((n=>{ie(D,"team",n,e)})).nThen((e=>{!a&&M.modules.team&&M.modules.team.onReady(e)})).nThen((()=>{t(i),ve(0,n,(n=>{Ee(e,n,o)}),(n=>{be(e,n,o)}))})))};return void pe(0,n,a(!0),a(!1))}if("drive"===r)return void ve(0,n,(n=>{t(n),Ee(e,n,o)}),(n=>{t(n),be(e,n,o)}));let a=e=>{o(e);const n=s.prefersDriveRedirectKey,r=i.find(M,["proxy","settings","general",n]);e[n]=r,t(e)};ve(0,n,(n=>{Ee(e,n,a)}),(n=>{be(e,n,a)}))})(e,n,i.once((e=>{"GET_HK"!==e.error?r(e):r({error:"ERROR"})})))}},V.reg((function(){var e=+new Date-7776e6;p.getKeys((function(n,t){if(n)console.error(n);else{var r=function(){if(t.length){var n=t.pop();p.getTime(n,(function(t,o){t?r():!o||o{const n=(e,n={})=>({create:function(t,r,o){var a,i=[],s=e.mkEvent(!0);t.reg((function(e){if(!a){var n=e.data;if("_READY"===n)return r("_READY"),a=!0,s.fire(),void i.forEach((function(e){t.fire(e)}));i.push(n)}}));var c={},u={},f={},l=[],d={},h={};h.query=function(e,n,t,o){var a,i=Math.random().toString(16).replace("0.","")+Math.random().toString(16).replace("0.",""),c=(o=o||{}).timeout||3e4;c>0&&(a=setTimeout((function(){delete u[i],t("TIMEOUT")}),c)),f[i]=function(e){clearTimeout(a),delete f[i],e&&(delete u[i],t("UNHANDLED"))},u[i]=function(e,n){delete u[i],t(void 0,e.content,n)},s.reg((function(){var t={txid:i,content:n,q:e,raw:o.raw};r(o.raw?t:JSON.stringify(t))}))};var p=h.event=function(e,n,t){t=t||{},s.reg((function(){var o={content:n,q:e,raw:t.raw};r(t.raw?o:JSON.stringify(o))}))};h.on=function(e,n,t){var o=function(e,t,o){n(e.content,(function(n){var t={txid:e.txid,content:n};r(o?t:JSON.stringify(t))}),t)};return(c[e]=c[e]||[]).push(o),t||p("EV_REGISTER_HANDLER",e),{stop:function(){var n=c[e].indexOf(o);-1!==n&&c[e].splice(n,1)}}},h.whenReg=function(e,n,t){var r=t;l.indexOf(e)>-1?n():r=!0,r&&(d[e]=d[e]||[]).push(n)},h.onReg=function(e,n){h.whenReg(e,n,!0)},h.on("EV_REGISTER_HANDLER",(function(e){d[e]&&(d[e].forEach((function(e){e()})),delete d[e]),l.push(e)}));var v=!1;h.onReady=function(e){v?e():"function"==typeof e&&h.on("EV_RPC_READY",(function(){v=!0,e()}))},h.ready=function(){h.whenReg("EV_RPC_READY",(function(){h.event("EV_RPC_READY")}))};var y=[""];n.httpUnsafeOrigin?(y.push(n.httpUnsafeOrigin),y.push(n.httpSafeOrigin)):globalThis.location&&y.push(globalThis.location.origin),t.reg((function(e){if(a&&e.data&&"_READY"!==e.data&&y.includes(e.origin)){var n;try{n="object"==typeof e.data?e.data:JSON.parse(e.data)}catch(e){return void console.warn(e)}void 0!==n.ack?f[n.txid]&&f[n.txid](!n.ack):"string"==typeof n.q?c[n.q]?(n.txid&&r(JSON.stringify({txid:n.txid,ack:!0})),c[n.q].forEach((function(t){t(n||JSON.parse(e.data),e,n&&n.raw),n=void 0}))):n.txid&&r(JSON.stringify({txid:n.txid,ack:!1})):void 0===n.q&&u[n.txid]&&u[n.txid](n,e)}})),r("_READY"),o(h)}});e.exports&&(e.exports=n(Z()))})()}(rr)),rr.exports}function ar(){return er||(er=1,function(e){e.exports&&(e.exports=((e,n,t)=>{const r={};let o,a,i={},s=()=>{};return r.init=n=>{a||(a=e.create({query:(e,n,t,r)=>{r=r||function(){},i[e].chan.query(n,t,(function(e,n){r(e?{error:e}:n)}))},broadcast:(e,n,t,r)=>{r=r||function(){},Object.keys(i).forEach((o=>{-1===e.indexOf(+o)&&i[o].chan.query(n,t,((e,n)=>{r(e?{error:e}:n)}))}))}}),s=n)},r.initClient=(e,r)=>{if(!a)return console.error("Not initialized"),void r("NOT_INIT");const{postMsg:c}=e,u=t.mkEvent(),f=Number(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)),l=()=>{a._removeClient(f)};n.create(u,c,(function(e){let n=i[f]={chan:e};console.debug("SharedW Channel created"),Object.keys(a.queries).forEach((function(t){"CONNECT"!==t&&"JOIN_PAD"!==t&&"SEND_PAD_MSG"!==t&&"STOPWORKER"!==t&&e.on(t,(function(e,r){try{a.queries[t](f,e,r)}catch(n){console.error("Error in webworker when executing query "+t),console.error(n),console.log(e)}"DISCONNECT"===t&&(l(),globalThis.accountDeletion&&globalThis.accountDeletion===n.id&&(a=void 0,o=void 0))}))})),e.on("STOPWORKER",(function(e,n){s(),a.queries.DISCONNECT(f,e,n)})),e.on("CONNECT",(function(e,n){console.debug("Connecting to store..."),a.queries.CONNECT(f,e,(function(e){if(e&&"ALREADY_INIT"===e.state)return console.debug("Store already exists!"),o=o||e.returned,void n(e);o=e,n(e)}))})),e.on("JOIN_PAD",(function(e,t){n.channelId=e.channel;try{a.queries.JOIN_PAD(f,e,t)}catch(n){console.error("Error in webworker when executing query JOIN_PAD"),console.error(n),console.log(e)}})),e.on("SEND_PAD_MSG",(function(e,t){var r={msg:e,channel:n.channelId};try{a.queries.SEND_PAD_MSG(f,r,t)}catch(e){console.error("Error in webworker when executing query SEND_PAD_MSG"),console.error(e),console.log(r)}})),r(u,l)}),!0)},r})(Xt(),or(),Z()))}(Qt)),Qt.exports}var ir,sr,cr=function(){if(tr)return nr;tr=1;const e=ar();return nr={start:n=>{let t=!1,r=()=>{globalThis.close()};globalThis.window=globalThis,addEventListener("connect",(o=>{console.debug("New SharedWorker client");const a=o.ports[0],i=e=>{a.postMessage(e)};let s,c=!1,u=()=>{};a.onmessage=function(o){if("INIT"===o.data?.type){if((o=>{t||(n(o),e.init(r),t=!0)})(o.data.cfg),c)return;c=!0,e.initClient({postMsg:i},(function(e,n){s=e,u=n,i("SW_READY")}))}else"CLOSE"===o.data?(console.debug("leave"),u()):s&&s.fire(o)}}))}}}();var ur,fr,lr=function(){if(sr)return ir;sr=1;const e=ar();return ir={start:n=>{let t,r=!1;const o=()=>{globalThis.close()},a=e=>{postMessage(e)};globalThis.window=globalThis,onmessage=function(i){if("INIT"===i.data?.type){let s=i.data.cfg;if(r)return;return n(s),e.init(o),r=!0,void e.initClient({postMsg:a},(function(e){t=e,a("WW_READY")}))}t&&t.fire(i)}}}}();var dr=function(){if(fr)return ur;fr=1;const e=ar(),n=Z();return ur={start:t=>{let r,o=!1,a=!1;const i=n.mkEvent(),s=()=>{a=!0},c=e=>{a||i.fire(e)};return{init:n=>{o||(t(n),e.init(s),o=!0,e.initClient({postMsg:c},(function(e){r=e,c("STORE_READY")})))},onMessage:e=>{i.reg((n=>{setTimeout((()=>{e(n)}))}))},query:e=>{r&&!a&&r.fire({data:e,origin:""})}}}}}(),hr=Bn(),pr=n({__proto__:null,default:r(hr)},[hr]),vr=Un(),yr=n({__proto__:null,default:r(vr)},[vr]),mr=nt(),gr=n({__proto__:null,default:r(mr)},[mr]),Er=ot(),br=n({__proto__:null,default:r(Er)},[Er]),Or=Ft(),Ar=n({__proto__:null,default:r(Or)},[Or]);let wr=e=>{[Te,nn,q,$e,B,pr,yn,un,ke,gr,br,Ar,zt,ge,yr,Vt].forEach((n=>{"function"==typeof n.setCustomize&&n.setCustomize(e)}))},Dr="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,_r="undefined"!=typeof SharedWorkerGlobalScope&&self instanceof SharedWorkerGlobalScope;e.store={},_r?cr.start(wr):Dr?lr.start(wr):("undefined"!=typeof module&&module.exports,e.store=dr.start(wr)),e.start=wr})); From b3fb72c485b3623c93d96e17cd9122ce94ba2856 Mon Sep 17 00:00:00 2001 From: Wolfgang Ginolas Date: Wed, 23 Apr 2025 14:23:02 +0200 Subject: [PATCH 09/14] Upgrade OnlyOffice to v8.3.0.83+2 --- install-onlyoffice.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-onlyoffice.sh b/install-onlyoffice.sh index 96c453dd5..68dc8190a 100755 --- a/install-onlyoffice.sh +++ b/install-onlyoffice.sh @@ -34,7 +34,7 @@ main() { install_old_version v5 88a356f0 install_old_version v6 abd8a309 install_version v7 v7.3.3.60+10 be3c926d534b0c77aa1ed83b170a38b9e56ebbbfd73a1a968f523d63c5ed69ecdb063fad08740812de82c1e79af7309faf67ffdd81b45451adce539192f3414c - install_version v8 v8.3.0.83+1 11b7e9765976978f51d8c021c65392637400ed8f5f2b6ad5559f096dba5042e365e3640bd5d6dd80327df34f656e259cb30ba6e4701c3cdd20fc668c9519eb55 + install_version v8 v8.3.0.83+2 bab44113804128c34eb47fdf264e5bcb75dd8580afcdad3bf1f5214fc1e5cc811e8e0ea8dafeb3cf235dc0f66831c397ff4196277be01eae86506c6858588cf6 install_x2t v7.3+1 ab0c05b0e4c81071acea83f0c6a8e75f5870c360ec4abc4af09105dd9b52264af9711ec0b7020e87095193ac9b6e20305e446f2321a541f743626a598e5318c1 rm -rf "$BUILDS_DIR" From 4f658c0418ddfec58c4ee7ffd68bcadff6e990f8 Mon Sep 17 00:00:00 2001 From: Wolfgang Ginolas Date: Thu, 24 Apr 2025 11:07:27 +0200 Subject: [PATCH 10/14] Serve compressed files when a .br version is available --- lib/http-worker.js | 3 ++- package-lock.json | 17 +++++++++++++++++ package.json | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/http-worker.js b/lib/http-worker.js index 91232d348..90b399f16 100644 --- a/lib/http-worker.js +++ b/lib/http-worker.js @@ -18,6 +18,7 @@ const bodyParser = require('body-parser'); const BlobStore = require("./storage/blob"); const BlockStore = require("./storage/block"); const plugins = require("./plugin-manager"); +const gzipStatic = require('connect-gzip-static'); const DEFAULT_QUERY_TIMEOUT = 5000; const PID = process.pid; @@ -337,7 +338,7 @@ Object.keys(plugins || {}).forEach(name => { // serve custom app content from the customize directory // useful for testing pages customized with opengraph data app.use(Express.static(Path.resolve('./customize/www'))); -app.use(Express.static(Path.resolve('./www'))); +app.use(gzipStatic(Path.resolve('./www'))); var mainPages = Env.mainPages || Default.mainPages(); var mainPagePattern = new RegExp('^\/(' + mainPages.join('|') + ').html$'); diff --git a/package-lock.json b/package-lock.json index 503ae5798..9042f01da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "ckeditor": "npm:ckeditor4@~4.22.1", "codemirror": "^5.19.0", "components-font-awesome": "^4.6.3", + "connect-gzip-static": "^4.2.1", "cookie-parser": "^1.4.7", "croppie": "^2.5.0", "dragula": "3.7.2", @@ -2063,6 +2064,22 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, + "node_modules/connect-gzip-static": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/connect-gzip-static/-/connect-gzip-static-4.2.1.tgz", + "integrity": "sha512-6qC1NYUEZU6mftg2gPspcoPjgBzADm+fB1fPXu3RxBVe59P/Q9HQGQEHnuDaGRDJUoJwl5NX2OgoaaZp7RdpfQ==", + "license": "MIT", + "dependencies": { + "debug": "~2||~3||~4", + "mime-types": "~2", + "parseurl": "~1", + "send": "~0 || ~1", + "serve-static": "~1 || ~2" + }, + "engines": { + "node": ">= 20.1.0" + } + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", diff --git a/package.json b/package.json index fbb9093be..0f40ea35d 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "ckeditor": "npm:ckeditor4@~4.22.1", "codemirror": "^5.19.0", "components-font-awesome": "^4.6.3", + "connect-gzip-static": "^4.2.1", "cookie-parser": "^1.4.7", "croppie": "^2.5.0", "dragula": "3.7.2", From d548cd591650676cc4294a11ffa87b5ba3b8d441 Mon Sep 17 00:00:00 2001 From: Wolfgang Ginolas Date: Thu, 24 Apr 2025 11:50:33 +0200 Subject: [PATCH 11/14] Upgrade OO to v8.3.0.83+3 --- install-onlyoffice.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-onlyoffice.sh b/install-onlyoffice.sh index 68dc8190a..c19cccb94 100755 --- a/install-onlyoffice.sh +++ b/install-onlyoffice.sh @@ -34,7 +34,7 @@ main() { install_old_version v5 88a356f0 install_old_version v6 abd8a309 install_version v7 v7.3.3.60+10 be3c926d534b0c77aa1ed83b170a38b9e56ebbbfd73a1a968f523d63c5ed69ecdb063fad08740812de82c1e79af7309faf67ffdd81b45451adce539192f3414c - install_version v8 v8.3.0.83+2 bab44113804128c34eb47fdf264e5bcb75dd8580afcdad3bf1f5214fc1e5cc811e8e0ea8dafeb3cf235dc0f66831c397ff4196277be01eae86506c6858588cf6 + install_version v8 v8.3.0.83+3 fbf77671ea8b960b6c65fdad025980894dfc9ed0b79d9540951f56c79871d0bde3361f29a35b9653764f7802ec74df01601b6c9961e0f3118988422667563470 install_x2t v7.3+1 ab0c05b0e4c81071acea83f0c6a8e75f5870c360ec4abc4af09105dd9b52264af9711ec0b7020e87095193ac9b6e20305e446f2321a541f743626a598e5318c1 rm -rf "$BUILDS_DIR" From 2ac36632c3bd0351aaa3dc1c5471011cda7de3cb Mon Sep 17 00:00:00 2001 From: Wolfgang Ginolas Date: Fri, 25 Apr 2025 15:00:43 +0200 Subject: [PATCH 12/14] Upgrade to OO 8.3.3.23 --- install-onlyoffice.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/install-onlyoffice.sh b/install-onlyoffice.sh index c19cccb94..c688bc430 100755 --- a/install-onlyoffice.sh +++ b/install-onlyoffice.sh @@ -34,7 +34,7 @@ main() { install_old_version v5 88a356f0 install_old_version v6 abd8a309 install_version v7 v7.3.3.60+10 be3c926d534b0c77aa1ed83b170a38b9e56ebbbfd73a1a968f523d63c5ed69ecdb063fad08740812de82c1e79af7309faf67ffdd81b45451adce539192f3414c - install_version v8 v8.3.0.83+3 fbf77671ea8b960b6c65fdad025980894dfc9ed0b79d9540951f56c79871d0bde3361f29a35b9653764f7802ec74df01601b6c9961e0f3118988422667563470 + install_version v8 v8.3.3.23+0 d3752926a68a487c5f855651a8966c04b320277a0dd2dfc3a4c1537b8d925cf59ec93a15f97664cbdb8867c32a94e105798b28751e0ef49521bc72c323b634a8 install_x2t v7.3+1 ab0c05b0e4c81071acea83f0c6a8e75f5870c360ec4abc4af09105dd9b52264af9711ec0b7020e87095193ac9b6e20305e446f2321a541f743626a598e5318c1 rm -rf "$BUILDS_DIR" @@ -157,15 +157,15 @@ EOF } ensure_oo_is_downloaded() { - ensure_command_available git + ensure_command_available git - if ! [ -d "$BUILDS_DIR" ]; then - echo "Downloading OnlyOffice..." - git clone --bare https://github.com/cryptpad/onlyoffice-builds.git "$BUILDS_DIR" - fi - if [ ${TRUST_REPOSITORY+x} ] || [ "${PROPS[trust_repository]:-no}" == yes ]; then - git config --global --add safe.directory /cryptpad/onlyoffice-conf/onlyoffice-builds.git - fi + if ! [ -d "$BUILDS_DIR" ]; then + echo "Downloading OnlyOffice..." + git clone --bare https://github.com/cryptpad/onlyoffice-builds.git "$BUILDS_DIR" + fi + if [ ${TRUST_REPOSITORY+x} ] || [ "${PROPS[trust_repository]:-no}" == yes ]; then + git config --global --add safe.directory /cryptpad/onlyoffice-conf/onlyoffice-builds.git + fi } install_old_version() { From 80ef7f61cb96f0385a2facd0e60f0a49775ce595 Mon Sep 17 00:00:00 2001 From: AAAMON Date: Tue, 6 May 2025 11:40:16 +0300 Subject: [PATCH 13/14] Modify OO install script so you can selectively install versions --- install-onlyoffice.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/install-onlyoffice.sh b/install-onlyoffice.sh index c688bc430..3bff02b31 100755 --- a/install-onlyoffice.sh +++ b/install-onlyoffice.sh @@ -37,6 +37,36 @@ main() { install_version v8 v8.3.3.23+0 d3752926a68a487c5f855651a8966c04b320277a0dd2dfc3a4c1537b8d925cf59ec93a15f97664cbdb8867c32a94e105798b28751e0ef49521bc72c323b634a8 install_x2t v7.3+1 ab0c05b0e4c81071acea83f0c6a8e75f5870c360ec4abc4af09105dd9b52264af9711ec0b7020e87095193ac9b6e20305e446f2321a541f743626a598e5318c1 + echo "Do you want to install all available OnlyOffice versions? (Y/N)" + read -r install_all + + declare -a selected_versions + + if [[ "$install_all" =~ ^[Yy] ]]; then + selected_versions=(v1 v2b v4 v5 v6 v7 v8 x2t) + else + echo "Select which versions to install (space-separated), options are:" + echo " v1 v2b v4 v5 v6 v7 v8 x2t" + read -ra selected_versions + fi + + for version in "${selected_versions[@]}"; do + case $version in + v1) set_prop oldest_needed_version v1; install_old_version v1 4f370beb ;; + v2b) install_old_version v2b d9da72fd ;; + v4) install_old_version v4 6ebc6938 ;; + v5) install_old_version v5 88a356f0 ;; + v6) install_old_version v6 abd8a309 ;; + v7) install_version v7 v7.3.3.60+10 be3c926d534b0c77aa1ed83b170a38b9e56ebbbfd73a1a968f523d63c5ed69ecdb063fad08740812de82c1e79af7309faf67ffdd81b45451adce539192f3414c ;; + v8) install_version v8 v8.3.0.83+3 fbf77671ea8b960b6c65fdad025980894dfc9ed0b79d9540951f56c79871d0bde3361f29a35b9653764f7802ec74df01601b6c9961e0f3118988422667563470 ;; + x2t) install_x2t v7.3+1 ab0c05b0e4c81071acea83f0c6a8e75f5870c360ec4abc4af09105dd9b52264af9711ec0b7020e87095193ac9b6e20305e446f2321a541f743626a598e5318c1 ;; + *) + echo "Unknown version: $version" + exit 1 + ;; + esac + done + rm -rf "$BUILDS_DIR" if [ "${RDFIND+x}" != "x" ]; then From 1266255f0c06ee1aacf983d41184a562494ccef7 Mon Sep 17 00:00:00 2001 From: AAAMON Date: Tue, 6 May 2025 12:10:09 +0300 Subject: [PATCH 14/14] Remove help and dictionaries from older oo versions & fix oo script expecting clean env --- install-onlyoffice.sh | 58 ++++++++++++++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/install-onlyoffice.sh b/install-onlyoffice.sh index 3bff02b31..bdadd6c6b 100755 --- a/install-onlyoffice.sh +++ b/install-onlyoffice.sh @@ -15,6 +15,10 @@ PROPS_FILE="$CONF_DIR"/onlyoffice.properties declare -A PROPS main() { + + # clean build env in case a previous build has failed + rm -rf "$BUILDS_DIR" + mkdir -p "$CONF_DIR" load_props @@ -28,14 +32,6 @@ main() { set_prop oldest_needed_version v1 mkdir -p "$OO_DIR" - install_old_version v1 4f370beb - install_old_version v2b d9da72fd - install_old_version v4 6ebc6938 - install_old_version v5 88a356f0 - install_old_version v6 abd8a309 - install_version v7 v7.3.3.60+10 be3c926d534b0c77aa1ed83b170a38b9e56ebbbfd73a1a968f523d63c5ed69ecdb063fad08740812de82c1e79af7309faf67ffdd81b45451adce539192f3414c - install_version v8 v8.3.3.23+0 d3752926a68a487c5f855651a8966c04b320277a0dd2dfc3a4c1537b8d925cf59ec93a15f97664cbdb8867c32a94e105798b28751e0ef49521bc72c323b634a8 - install_x2t v7.3+1 ab0c05b0e4c81071acea83f0c6a8e75f5870c360ec4abc4af09105dd9b52264af9711ec0b7020e87095193ac9b6e20305e446f2321a541f743626a598e5318c1 echo "Do you want to install all available OnlyOffice versions? (Y/N)" read -r install_all @@ -52,12 +48,46 @@ main() { for version in "${selected_versions[@]}"; do case $version in - v1) set_prop oldest_needed_version v1; install_old_version v1 4f370beb ;; - v2b) install_old_version v2b d9da72fd ;; - v4) install_old_version v4 6ebc6938 ;; - v5) install_old_version v5 88a356f0 ;; - v6) install_old_version v6 abd8a309 ;; - v7) install_version v7 v7.3.3.60+10 be3c926d534b0c77aa1ed83b170a38b9e56ebbbfd73a1a968f523d63c5ed69ecdb063fad08740812de82c1e79af7309faf67ffdd81b45451adce539192f3414c ;; + v1) + set_prop oldest_needed_version v1; install_old_version v1 4f370beb + # We delete 'help' from previous versions as they are useless and take up storage + rm -rf "$OO_DIR/v1/web-apps/apps/documenteditor/main/resources/help" + rm -rf "$OO_DIR/v1/web-apps/apps/presentationeditor/main/resources/help" + rm -rf "$OO_DIR/v1/web-apps/apps/spreadsheeteditor/main/resources/help" + ;; + v2b) + install_old_version v2b d9da72fd + rm -rf "$OO_DIR/v2b/web-apps/apps/documenteditor/main/resources/help" + rm -rf "$OO_DIR/v2b/web-apps/apps/presentationeditor/main/resources/help" + rm -rf "$OO_DIR/v2b/web-apps/apps/spreadsheeteditor/main/resources/help" + ;; + v4) + install_old_version v4 6ebc6938 + rm -rf "$OO_DIR/v4/web-apps/apps/documenteditor/main/resources/help" + rm -rf "$OO_DIR/v4/web-apps/apps/presentationeditor/main/resources/help" + rm -rf "$OO_DIR/v4/web-apps/apps/spreadsheeteditor/main/resources/help" + ;; + v5) + install_old_version v5 88a356f0 + rm -rf "$OO_DIR/v5/web-apps/apps/documenteditor/main/resources/help" + rm -rf "$OO_DIR/v5/web-apps/apps/presentationeditor/main/resources/help" + rm -rf "$OO_DIR/v5/web-apps/apps/spreadsheeteditor/main/resources/help" + ;; + v6) + install_old_version v6 abd8a309 + rm -rf "$OO_DIR/v6/web-apps/apps/documenteditor/main/resources/help" + rm -rf "$OO_DIR/v6/web-apps/apps/presentationeditor/main/resources/help" + rm -rf "$OO_DIR/v6/web-apps/apps/spreadsheeteditor/main/resources/help" + ;; + v7) + install_version v7 v7.3.3.60+10 be3c926d534b0c77aa1ed83b170a38b9e56ebbbfd73a1a968f523d63c5ed69ecdb063fad08740812de82c1e79af7309faf67ffdd81b45451adce539192f3414c + rm -rf "$OO_DIR/v7/web-apps/apps/documenteditor/main/resources/help" + rm -rf "$OO_DIR/v7/web-apps/apps/presentationeditor/main/resources/help" + rm -rf "$OO_DIR/v7/web-apps/apps/spreadsheeteditor/main/resources/help" + rm -rf "$OO_DIR/v7/web-apps/apps/common/main/resources/help/" + # From all the older versions only v7 has 'dictionaries', we remove it for the same reasons + rm -rf "$OO_DIR/v7/dictionaries/" + ;; v8) install_version v8 v8.3.0.83+3 fbf77671ea8b960b6c65fdad025980894dfc9ed0b79d9540951f56c79871d0bde3361f29a35b9653764f7802ec74df01601b6c9961e0f3118988422667563470 ;; x2t) install_x2t v7.3+1 ab0c05b0e4c81071acea83f0c6a8e75f5870c360ec4abc4af09105dd9b52264af9711ec0b7020e87095193ac9b6e20305e446f2321a541f743626a598e5318c1 ;; *)