@tiddlywiki/mws 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/metafile-esm.json +1 -1
- package/dist/mws.js +17 -16
- package/dist/mws.js.map +1 -1
- package/package.json +1 -1
- package/public/admin-vanilla/{main-64WYHWYI.js → main-Y4GDO4MD.js} +18 -12
- package/public/admin-vanilla/main-Y4GDO4MD.js.map +7 -0
- package/public/admin-vanilla.html +1 -1
- package/public/admin-vanilla.json +1 -1
- package/public/admin-vanilla/main-64WYHWYI.js.map +0 -7
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../node_modules/events/events.js", "../../node_modules/@serenity-kit/opaque/esm/index.js", "../../node_modules/@lit/reactive-element/src/decorators/custom-element.ts", "../../node_modules/@lit/reactive-element/src/css-tag.ts", "../../node_modules/@lit/reactive-element/src/reactive-element.ts", "../../node_modules/@lit/reactive-element/src/decorators/property.ts", "../../node_modules/@lit/reactive-element/src/decorators/state.ts", "../../packages/jsx-lit/src/addstyles.tsx", "../../packages/jsx-lit/src/breakpoint.ts", "../../packages/jsx-lit/src/JSXElement.tsx", "../../packages/jsx-runtime/jsx-render.ts", "../../packages/jsx-runtime/jsx-utils.ts", "../../packages/jsx-runtime/index.ts", "../../node_modules/tslib/tslib.es6.mjs", "../../node_modules/rxjs/src/internal/util/isFunction.ts", "../../node_modules/rxjs/src/internal/util/createErrorClass.ts", "../../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "../../node_modules/rxjs/src/internal/util/arrRemove.ts", "../../node_modules/rxjs/src/internal/Subscription.ts", "../../packages/jsx-lit/src/resizeObserver.ts", "../../packages/admin-vanilla/src/app.inline.css", "../../node_modules/@material-symbols/svg-400/outlined/warning.svg", "../../node_modules/@material-symbols/svg-400/outlined/close.svg", "../../node_modules/@material-symbols/svg-400/outlined/account_circle.svg", "../../packages/admin-vanilla/src/material-symbol.tsx", "../../packages/server/node_modules/zod/v4/index.js", "../../packages/server/node_modules/zod/v4/classic/external.js", "../../packages/server/node_modules/zod/v4/core/index.js", "../../packages/server/node_modules/zod/v4/core/core.js", "../../packages/server/node_modules/zod/v4/core/util.js", "../../packages/server/node_modules/zod/v4/core/errors.js", "../../packages/server/node_modules/zod/v4/core/parse.js", "../../packages/server/node_modules/zod/v4/core/regexes.js", "../../packages/server/node_modules/zod/v4/core/checks.js", "../../packages/server/node_modules/zod/v4/core/doc.js", "../../packages/server/node_modules/zod/v4/core/versions.js", "../../packages/server/node_modules/zod/v4/core/schemas.js", "../../packages/server/node_modules/zod/v4/locales/index.js", "../../packages/server/node_modules/zod/v4/locales/ar.js", "../../packages/server/node_modules/zod/v4/locales/az.js", "../../packages/server/node_modules/zod/v4/locales/be.js", "../../packages/server/node_modules/zod/v4/locales/bg.js", "../../packages/server/node_modules/zod/v4/locales/ca.js", "../../packages/server/node_modules/zod/v4/locales/cs.js", "../../packages/server/node_modules/zod/v4/locales/da.js", "../../packages/server/node_modules/zod/v4/locales/de.js", "../../packages/server/node_modules/zod/v4/locales/en.js", "../../packages/server/node_modules/zod/v4/locales/eo.js", "../../packages/server/node_modules/zod/v4/locales/es.js", "../../packages/server/node_modules/zod/v4/locales/fa.js", "../../packages/server/node_modules/zod/v4/locales/fi.js", "../../packages/server/node_modules/zod/v4/locales/fr.js", "../../packages/server/node_modules/zod/v4/locales/fr-CA.js", "../../packages/server/node_modules/zod/v4/locales/he.js", "../../packages/server/node_modules/zod/v4/locales/hu.js", "../../packages/server/node_modules/zod/v4/locales/hy.js", "../../packages/server/node_modules/zod/v4/locales/id.js", "../../packages/server/node_modules/zod/v4/locales/is.js", "../../packages/server/node_modules/zod/v4/locales/it.js", "../../packages/server/node_modules/zod/v4/locales/ja.js", "../../packages/server/node_modules/zod/v4/locales/ka.js", "../../packages/server/node_modules/zod/v4/locales/km.js", "../../packages/server/node_modules/zod/v4/locales/kh.js", "../../packages/server/node_modules/zod/v4/locales/ko.js", "../../packages/server/node_modules/zod/v4/locales/lt.js", "../../packages/server/node_modules/zod/v4/locales/mk.js", "../../packages/server/node_modules/zod/v4/locales/ms.js", "../../packages/server/node_modules/zod/v4/locales/nl.js", "../../packages/server/node_modules/zod/v4/locales/no.js", "../../packages/server/node_modules/zod/v4/locales/ota.js", "../../packages/server/node_modules/zod/v4/locales/ps.js", "../../packages/server/node_modules/zod/v4/locales/pl.js", "../../packages/server/node_modules/zod/v4/locales/pt.js", "../../packages/server/node_modules/zod/v4/locales/ru.js", "../../packages/server/node_modules/zod/v4/locales/sl.js", "../../packages/server/node_modules/zod/v4/locales/sv.js", "../../packages/server/node_modules/zod/v4/locales/ta.js", "../../packages/server/node_modules/zod/v4/locales/th.js", "../../packages/server/node_modules/zod/v4/locales/tr.js", "../../packages/server/node_modules/zod/v4/locales/uk.js", "../../packages/server/node_modules/zod/v4/locales/ua.js", "../../packages/server/node_modules/zod/v4/locales/ur.js", "../../packages/server/node_modules/zod/v4/locales/uz.js", "../../packages/server/node_modules/zod/v4/locales/vi.js", "../../packages/server/node_modules/zod/v4/locales/zh-CN.js", "../../packages/server/node_modules/zod/v4/locales/zh-TW.js", "../../packages/server/node_modules/zod/v4/locales/yo.js", "../../packages/server/node_modules/zod/v4/core/registries.js", "../../packages/server/node_modules/zod/v4/core/api.js", "../../packages/server/node_modules/zod/v4/core/to-json-schema.js", "../../packages/server/node_modules/zod/v4/core/json-schema-processors.js", "../../packages/server/node_modules/zod/v4/core/json-schema-generator.js", "../../packages/server/node_modules/zod/v4/core/json-schema.js", "../../packages/server/node_modules/zod/v4/classic/schemas.js", "../../packages/server/node_modules/zod/v4/classic/checks.js", "../../packages/server/node_modules/zod/v4/classic/iso.js", "../../packages/server/node_modules/zod/v4/classic/errors.js", "../../packages/server/node_modules/zod/v4/classic/parse.js", "../../packages/server/node_modules/zod/v4/classic/compat.js", "../../packages/server/node_modules/zod/v4/classic/from-json-schema.js", "../../packages/server/node_modules/zod/v4/classic/coerce.js", "../../packages/server/node_modules/zod/v4/classic/index.js", "../../packages/server/src/Z2.ts", "../../packages/admin-vanilla/src/definition/tabs.ts", "../../packages/admin-vanilla/src/definition/utils.ts", "../../packages/admin-vanilla/src/definition/renders.tsx", "../../packages/admin-vanilla/src/definition/store.ts", "../../packages/admin-vanilla/src/passwords.ts", "../../packages/admin-vanilla/src/app.tsx", "../../packages/admin-vanilla/src/requestUpdate.ts", "../../packages/admin-vanilla/src/FomController.tsx", "../../packages/admin-vanilla/src/app-login.tsx", "../../packages/admin-vanilla/src/app-profile.tsx", "../../packages/admin-vanilla/src/main.tsx"],
|
|
4
|
+
"sourcesContent": ["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n", "function _loadWasmModule (sync, filepath, src, imports) {\n function _instantiateOrCompile(source, imports, stream) {\n var compileFunc = WebAssembly.compile;\n\n {\n return compileFunc(source)\n }\n }\n\n \nvar buf = null;\nvar isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\nif (isNode) {\n \nbuf = Buffer.from(src, 'base64');\n\n} else {\n \nvar raw = globalThis.atob(src);\nvar rawLength = raw.length;\nbuf = new Uint8Array(new ArrayBuffer(rawLength));\nfor(var i = 0; i < rawLength; i++) {\n buf[i] = raw.charCodeAt(i);\n}\n\n}\n\n\n {\n return _instantiateOrCompile(buf)\n }\n}\n\nfunction wasmData(imports){return _loadWasmModule(0, null, 'AGFzbQEAAAABiwM2YAAAYAABf2AAAn9/YAABb2ABfwBgAX8Bf2ABfwF8YAF/AW9gAn9/AGACf38Bf2ACf38Ef39/f2ACf38Bb2ADf39/AGADf39/AX9gBH9/f38AYAR/f39/AX9gBX9/f39/AGAFf39/f38Bf2AGf39/f39/AGAGf39/f39/AX9gB39/f39/f38AYAd/f39/f39/AX9gCH9/f39/f39/AGAIf39/f39/f38Bf2AKf39/f39/f39/fwBgC39/f39/f39/f39/AGALf39/f39/f39/f38Bf2AJf39/f39/fn5+AGAEf39+fwBgBX9/fn9/AGAEf39+fgBgBX9/fX9/AGAFf398f38AYAN/f28AYAN/fn8Bf2AEf35/fwBgBX9+fn5+AGAEf31/fwBgBH98f38AYAR/fH9/AX9gAn9vAGACfn8Bf2ADfn9/AX9gAW8Bf2ABbwN/f39gAW8BfGABbwFvYAJvfwFvYANvf38Bb2ACb28AYAJvbwF/YAJvbwFvYANvb28AYANvb28BbwKtEy4OLi9vcGFxdWVfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV8xZGMzNjFiZDEwMDUzYmZlADMOLi9vcGFxdWVfYmcuanMaX193Ymdfc2V0XzNmMWQwYjk4NGVkMjcyZWQANA4uL29wYXF1ZV9iZy5qcx1fX3diZ19TdHJpbmdfOGYwZWIzOWE0YTRjMmY2NgAoDi4vb3BhcXVlX2JnLmpzHV9fd2JnX2NyeXB0b184NmYyNjMxZTkxYjUxNTExAC4OLi9vcGFxdWVfYmcuanMeX193YmdfcHJvY2Vzc18zOTc1ZmQ2YzcyZjUyMGFhAC4OLi9vcGFxdWVfYmcuanMfX193YmdfdmVyc2lvbnNfNGUzMTIyNmY1ZThkYzkwOQAuDi4vb3BhcXVlX2JnLmpzG19fd2JnX25vZGVfZTFmMjRmODlhNzMzNmMyZQAuDi4vb3BhcXVlX2JnLmpzHl9fd2JnX3JlcXVpcmVfYjc0ZjQ3ZmMyZDAyMmZkNgADDi4vb3BhcXVlX2JnLmpzH19fd2JnX21zQ3J5cHRvX2Q1NjJiYmU4M2UwZDRiOTEALg4uL29wYXF1ZV9iZy5qcyVfX3diZ19yYW5kb21GaWxsU3luY19mOGMxNTNiNzlmMjg1ODE3ADEOLi9vcGFxdWVfYmcuanMmX193YmdfZ2V0UmFuZG9tVmFsdWVzX2IzZjE1ZmNiZmFiYjBmOGIAMQ4uL29wYXF1ZV9iZy5qcxpfX3diZ19uZXdfMzYxMzA4YjIzNTZjZWNkMAADDi4vb3BhcXVlX2JnLmpzIl9fd2JnX25ld19ub19hcmdzXzFjN2M4NDJmMDhkMDBlYmIACw4uL29wYXF1ZV9iZy5qcxpfX3diZ19uZXdfZGQyYjY4MGM4YmY2YWUyOQAuDi4vb3BhcXVlX2JnLmpzHV9fd2JnX2xlbmd0aF8zMmVkOWEyNzlhY2QwNTRjACsOLi9vcGFxdWVfYmcuanMmX193YmdfbmV3X3dpdGhfbGVuZ3RoX2EyYzM5Y2JlODhmZDhmZjEABw4uL29wYXF1ZV9iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2JkY2RjYzU4NDJlNGQ3N2QAIQ4uL29wYXF1ZV9iZy5qcx9fX3diZ19zdWJhcnJheV9hOTZlMWZlZjE3ZWQyM2NiADAOLi9vcGFxdWVfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzliOTA3NTkzNWM3NDcwN2MAKw4uL29wYXF1ZV9iZy5qcy1fX3diZ19pbnN0YW5jZW9mX0FycmF5QnVmZmVyX2MzNjcxOTllMmZhMmFhMDQAKw4uL29wYXF1ZV9iZy5qcxpfX3diZ19nZXRfOWI5NGQ3M2U2MjIxZjc1YwAvDi4vb3BhcXVlX2JnLmpzHV9fd2JnX2xlbmd0aF8zNWE3YmFjZTQwZjM2ZWFjACsOLi9vcGFxdWVfYmcuanMkX193YmdfaXNTYWZlSW50ZWdlcl9iZmJjNzMzMmE5NzY4ZDJhACsOLi9vcGFxdWVfYmcuanMeX193YmdfZW50cmllc181OGM3OTM0Yzc0NWRhYWM3AC4OLi9vcGFxdWVfYmcuanMyX193Ymdfc3RhdGljX2FjY2Vzc29yX0dMT0JBTF9USElTX2U2MjhlODlhYjNiMWM5NWYAAQ4uL29wYXF1ZV9iZy5qcytfX3diZ19zdGF0aWNfYWNjZXNzb3JfU0VMRl9hNjIxZDNkZmJiNjBkMGNlAAEOLi9vcGFxdWVfYmcuanMtX193Ymdfc3RhdGljX2FjY2Vzc29yX0dMT0JBTF8xMjgzNzE2N2FkOTM1MTE2AAEOLi9vcGFxdWVfYmcuanMtX193Ymdfc3RhdGljX2FjY2Vzc29yX1dJTkRPV19mODcyN2YwY2Y4ODhlMGJkAAEOLi9vcGFxdWVfYmcuanMbX193YmdfY2FsbF8zODllZmUyODQzNWE5Mzg4ADMOLi9vcGFxdWVfYmcuanMbX193YmdfY2FsbF80NzA4ZTBjMTNiZGM4ZTk1ADUOLi9vcGFxdWVfYmcuanMsX193YmdfX193YmluZGdlbl9udW1iZXJfZ2V0XzhmZjQyNTU1MTZjY2FkM2UAKA4uL29wYXF1ZV9iZy5qcyRfX3diZ19fX3diaW5kZ2VuX2luXzQ3ZmE2ODYzYmU2ZjJmMjUAMg4uL29wYXF1ZV9iZy5qcydfX3diZ19fX3diaW5kZ2VuX3Rocm93X2JlMjg5ZDUwMzRlZDI3MWIACA4uL29wYXF1ZV9iZy5qcx1fX3diZ19OdW1iZXJfMDQ2MjRkZTdkMGU4MzMyZAAtDi4vb3BhcXVlX2JnLmpzHF9fd2JnX0Vycm9yXzhjNGU0M2ZlNzQ1NTlkNzMACw4uL29wYXF1ZV9iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX29iamVjdF81YWU4ZTU4ODBmMmMxZmJkACsOLi9vcGFxdWVfYmcuanMrX193YmdfX193YmluZGdlbl9pc19zdHJpbmdfY2Q0NDQ1MTZlZGM1YjE4MAArDi4vb3BhcXVlX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fc3RyaW5nX2dldF83MmZiNjk2MjAyYzU2NzI5ACgOLi9vcGFxdWVfYmcuanMtX193YmdfX193YmluZGdlbl9ib29sZWFuX2dldF9iYmJiMWMxOGFhMmY1ZTI1ACsOLi9vcGFxdWVfYmcuanMtX193YmdfX193YmluZGdlbl9pc19mdW5jdGlvbl8wMDk1YTczYjhiMTU2Zjc2ACsOLi9vcGFxdWVfYmcuanMuX193YmdfX193YmluZGdlbl9pc191bmRlZmluZWRfOWU0ZDkyNTM0YzQyZDc3OAArDi4vb3BhcXVlX2JnLmpzMF9fd2JnX19fd2JpbmRnZW5fanN2YWxfbG9vc2VfZXFfOWRkNzdkOGNkNjY3MTgxMQAyDi4vb3BhcXVlX2JnLmpzLl9fd2JnX19fd2Jp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D4NCCIaEhCANQgiIQoCAgPgPgyANQhiIQoCA/AeDhCANQiiIQoD+A4MgDUI4iISEhDcDACACQQhqIgJBgAFHDQALIAMgAykDECIONwOYASADIAMpAxgiDzcDkAEgAyADKQMAIg03A4gBIAMgAykDCCIQNwOAASADIAMpAzAiETcDuAEgAyADKQM4IhI3A7ABIAMpAyghEyADIAMpAyAiFDcDqAEgAyATNwOgASADKQNYIRUgAyADKQNQIhY3A9gBIAMgFTcD0AEgAykDSCEXIAMgAykDQCIYNwPIASADIBc3A8ABIAMpA3ghGSADIAMpA3AiGjcD+AEgAyAZNwPwASADKQNoIRsgAyADKQNgIhw3A+gBIAMgGzcD4AEgAyAXNwOoAiADIBY3A6ACIANBgAJqIANBgAFqIANBkAFqIANBoAJqIANB8AFqENQCIAMgFTcDqAIgAyAcNwOgAiADQZACaiADQZABaiADQaABaiADQaACaiADQYACahDUAiADKQOQAiEdIAMpA5gCIR4gAykDgAIhHyADKQOIAiEgIAMgGzcDqAIgAyAaNwOgAiADQYABaiADQaABaiADQbABaiADQaACaiADQZACahDUAiADIBk3A6gCIAMgIDcDoAIgA0GQAWogA0GwAWogA0HAAWogA0GgAmogA0GAAWoQ1AIgAykDkAEhISADKQOYASEiIAMpA4ABISMgAykDiAEhJCADIB83A6gCIAMgHjcDoAIgA0GgAWogA0HAAWogA0HQAWogA0GgAmogA0GQAWoQ1AIgAyAdNwOoAiADICQ3A6ACIANBsAFqIANB0AFqIANB4AFqIANBoAJqIANBoAFqENQCIAMpA7ABISUgAykDuAEhJiADKQOgASEnIAMpA6gBISggAyAjNwOoAiADICI3A6ACIANBwAFqIANB4AFqIANB8AFqIANBoAJqIANBsAFqENQCIAMgITcDqAIgAyAoNwOgAiADQdABaiADQfABaiADQYACaiADQaACaiADQcABahDUAiADKQPQASEpIAMpA9gBISogAykDwAEhKyADKQPIASEsIAMgJzcDqAIgAyAmNwOgAiADQeABaiADQYACaiADQZACaiADQaACaiADQdABahDUAiADICU3A6gCIAMgLDcDoAIgA0HwAWogA0GQAmogA0GAAWogA0GgAmogA0HgAWoQ1AIgAykD8AEhLSADKQP4ASEuIAMpA+ABIS8gAykD6AEhMCADICs3A6gCIAMgKjcDoAIgA0GAAmogA0GAAWogA0GQAWogA0GgAmogA0HwAWoQ1AIgAyApNwOoAiADIDA3A6ACIANBkAJqIANBkAFqIANBoAFqIANBoAJqIANBgAJqENQCIAMpA5ACITEgAykDmAIhMiADKQOAAiEzIAMpA4gCITQgAyAvNwOoAiADIC43A6ACIANBgAFqIANBoAFqIANBsAFqIANBoAJqIANBkAJqENQCIAMgLTcDqAIgAyA0NwOgAiADQZABaiADQbABaiADQcABaiADQaACaiADQYABahDUAiADKQOQASE1IAMpA5gBITYgAykDgAEhNyADKQOIASE4IAMgMzcDqAIgAyAyNwOgAiADQaABaiADQcABaiADQdABaiADQaACaiADQZABahDUAiADIDE3A6gCIAMgODcDoAIgA0GwAWogA0HQAWogA0HgAWogA0GgAmogA0GgAWoQ1AIgAykDsAEhOSADKQO4ASE6IAMpA6ABITsgAykDqAEhPCADIDc3A6gCIAMgNjcDoAIgA0HAAWogA0HgAWogA0HwAWogA0GgAmogA0GwAWoQ1AIgAyA1NwOoAiADIDw3A6ACIANB0AFqIANB8AFqIANBgAJqIANBoAJqIANBwAFqENQCIAMpA9ABIT0gAykD2AEhPiADKQPAASE/IAMpA8gBIUAgAyA7NwOoAiADIDo3A6ACIANB4AFqIANBgAJqIANBkAJqIANBoAJqIANB0AFqENQCIAMgOTcDqAIgAyBANwOgAiADQfABaiADQZACaiADQYABaiADQaACaiADQeABahDUAiADKQPwASFBIAMpA/gBIUIgAykD4AEhQyADKQPoASFEIAMgPzcDqAIgAyA+NwOgAiADQYACaiADQYABaiADQZABaiADQaACaiADQfABahDUAiADID03A6gCIAMgRDcDoAIgA0GQAmogA0GQAWogA0GgAWogA0GgAmogA0GAAmoQ1AIgAykDkAIhRSADKQOYAiFGIAMpA4ACIUcgAykDiAIhSCADIEM3A6gCIAMgQjcDoAIgA0GAAWogA0GgAWogA0GwAWogA0GgAmogA0GQAmoQ1AIgAyBBNwOoAiADIEg3A6ACIANBkAFqIANBsAFqIANBwAFqIANBoAJqIANBgAFqENQCIAMpA5ABIUkgAykDmAEhSiADKQOAASFLIAMpA4gBIUwgAyBHNwOoAiADIEY3A6ACIANBoAFqIANBwAFqIANB0AFqIANBoAJqIANBkAFqENQCIAMgRTcDqAIgAyBMNwOgAiADQbABaiADQdABaiADQeABaiADQaACaiADQaABahDUAiADKQOwASFNIAMpA7gBIU4gAykDoAEhTyADKQOoASFQIAMgSzcDqAIgAyBKNwOgAiADQcABaiADQeABaiADQfABaiADQaACaiADQbABahDUAiADIEk3A6gCIAMgUDcDoAIgA0HQAWogA0HwAWogA0GAAmogA0GgAmogA0HAAWoQ1AIgAykD0AEhUSADKQPYASFSIAMpA8ABIVMgAykDyAEhVCADIE83A6gCIAMgTjcDoAIgA0HgAWogA0GAAmogA0GQAmogA0GgAmogA0HQAWoQ1AIgAyBNNwOoAiADIFQ3A6ACIANB8AFqIANBkAJqIANBgAFqIANBoAJqIANB4AFqENQCIAMpA/ABIVUgAykD+AEhViADKQPgASFXIAMpA+gBIVggAyBTNwOoAiADIFI3A6ACIANBgAJqIANBgAFqIANBkAFqIANBoAJqIANB8AFqENQCIAMgUTcDqAIgAyBYNwOgAiADQZACaiADQZABaiADQaABaiADQaACaiADQYACahDUAiAKIAuFIAyDIAogC4OFIAxCJIkgDEIeiYUgDEIZiYV8IA0gBSAIQjKJIAhCLomFIAhCF4mFfCAGIAeFIAiDIAaFfHxCotyiuY3zi8XCAHwiWXwiDUIkiSANQh6JhSANQhmJhSANIAsgDIWDIAsgDIOFfCAGIBB8IFkgCXwiWSAHIAiFgyAHhXwgWUIyiSBZQi6JhSBZQheJhXxCzcu9n5KS0ZvxAHwiWnwiEEIkiSAQQh6JhSAQQhmJhSAQIA0gDIWDIA0gDIOFfCAHIA58IFogCnwiWiBZIAiFgyAIhXwgWkIyiSBaQi6JhSBaQheJhXxCr/a04v75vuC1f3wiW3wiDkIkiSAOQh6JhSAOQhmJhSAOIBAgDYWDIBAgDYOFfCAIIA98IFsgC3wiWyBaIFmFgyBZhXwgW0IyiSBbQi6JhSBbQheJhXxCvLenjNj09tppfCJcfCIPQiSJIA9CHomFIA9CGYmFIA8gDiAQhYMgDiAQg4V8IFkgFHwgXCAMfCIUIFsgWoWDIFqFfCAUQjKJIBRCLomFIBRCF4mFfEK46qKav8uwqzl8Ilx8IllCJIkgWUIeiYUgWUIZiYUgWSAPIA6FgyAPIA6DhXwgEyBafCBcIA18IlogFCBbhYMgW4V8IFpCMokgWkIuiYUgWkIXiYV8Qpmgl7CbvsT42QB8IhN8Ig1CJIkgDUIeiYUgDUIZiYUgDSBZIA+FgyBZIA+DhXwgESBbfCATIBB8IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8Qpuf5fjK1OCfkn98IhN8IhBCJIkgEEIeiYUgEEIZiYUgECANIFmFgyANIFmDhXwgEiAUfCATIA58IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8QpiCttPd2peOq398IhN8Ig5CJIkgDkIeiYUgDkIZiYUgDiAQIA2FgyAQIA2DhXwgGCBafCATIA98IlogFCBbhYMgW4V8IFpCMokgWkIuiYUgWkIXiYV8QsKEjJiK0+qDWHwiE3wiD0IkiSAPQh6JhSAPQhmJhSAPIA4gEIWDIA4gEIOFfCAXIFt8IBMgWXwiWyBaIBSFgyAUhXwgW0IyiSBbQi6JhSBbQheJhXxCvt/Bq5Tg1sESfCIXfCJZQiSJIFlCHomFIFlCGYmFIFkgDyAOhYMgDyAOg4V8IBYgFHwgFyANfCIUIFsgWoWDIFqFfCAUQjKJIBRCLomFIBRCF4mFfEKM5ZL35LfhmCR8Ihd8Ig1CJIkgDUIeiYUgDUIZiYUgDSBZIA+FgyBZIA+DhXwgFSBafCAXIBB8IlogFCBbhYMgW4V8IFpCMokgWkIuiYUgWkIXiYV8QuLp/q+9uJ+G1QB8IhV8IhBCJIkgEEIeiYUgEEIZiYUgECANIFmFgyANIFmDhXwgHCBbfCAVIA58IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8Qu+S7pPPrpff8gB8IhV8Ig5CJIkgDkIeiYUgDkIZiYUgDiAQIA2FgyAQIA2DhXwgGyAUfCAVIA98IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8QrGt2tjjv6zvgH98IhV8Ig9CJIkgD0IeiYUgD0IZiYUgDyAOIBCFgyAOIBCDhXwgGiBafCAVIFl8IlogFCBbhYMgW4V8IFpCMokgWkIuiYUgWkIXiYV8QrWknK7y1IHum398IhV8IllCJIkgWUIeiYUgWUIZiYUgWSAPIA6FgyAPIA6DhXwgGSBbfCAVIA18IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8QpTNpPvMrvzNQXwiFXwiDUIkiSANQh6JhSANQhmJhSANIFkgD4WDIFkgD4OFfCAgIBR8IBUgEHwiFCBbIFqFgyBahXwgFEIyiSAUQi6JhSAUQheJhXxC0pXF95m42s1kfCIVfCIQQiSJIBBCHomFIBBCGYmFIBAgDSBZhYMgDSBZg4V8IB8gWnwgFSAOfCJaIBQgW4WDIFuFfCBaQjKJIFpCLomFIFpCF4mFfELjy7zC4/CR3298IhV8Ig5CJIkgDkIeiYUgDkIZiYUgDiAQIA2FgyAQIA2DhXwgHiBbfCAVIA98IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8QrWrs9zouOfgD3wiFXwiD0IkiSAPQh6JhSAPQhmJhSAPIA4gEIWDIA4gEIOFfCAdIBR8IBUgWXwiFCBbIFqFgyBahXwgFEIyiSAUQi6JhSAUQheJhXxC5biyvce5qIYkfCIVfCJZQiSJIFlCHomFIFlCGYmFIFkgDyAOhYMgDyAOg4V8ICQgWnwgFSANfCJaIBQgW4WDIFuFfCBaQjKJIFpCLomFIFpCF4mFfEL1hKzJ9Y3L9C18IhV8Ig1CJIkgDUIeiYUgDUIZiYUgDSBZIA+FgyBZIA+DhXwgIyBbfCAVIBB8IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8QoPJm/WmlaG6ygB8IhV8IhBCJIkgEEIeiYUgEEIZiYUgECANIFmFgyANIFmDhXwgIiAUfCAVIA58IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8QtT3h+rLu6rY3AB8IhV8Ig5CJIkgDkIeiYUgDkIZiYUgDiAQIA2FgyAQIA2DhXwgISBafCAVIA98IlogFCBbhYMgW4V8IFpCMokgWkIuiYUgWkIXiYV8QrWnxZiom+L89gB8IhV8Ig9CJIkgD0IeiYUgD0IZiYUgDyAOIBCFgyAOIBCDhXwgKCBbfCAVIFl8IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8Qqu/m/OuqpSfmH98IhV8IllCJIkgWUIeiYUgWUIZiYUgWSAPIA6FgyAPIA6DhXwgJyAUfCAVIA18IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8QpDk0O3SzfGYqH98IhV8Ig1CJIkgDUIeiYUgDUIZiYUgDSBZIA+FgyBZIA+DhXwgJiBafCAVIBB8IlogFCBbhYMgW4V8IFpCMokgWkIuiYUgWkIXiYV8Qr/C7MeJ+cmBsH98IhV8IhBCJIkgEEIeiYUgEEIZiYUgECANIFmFgyANIFmDhXwgJSBbfCAVIA58IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8QuSdvPf7+N+sv398IhV8Ig5CJIkgDkIeiYUgDkIZiYUgDiAQIA2FgyAQIA2DhXwgLCAUfCAVIA98IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8QsKfou2z/oLwRnwiFXwiD0IkiSAPQh6JhSAPQhmJhSAPIA4gEIWDIA4gEIOFfCArIFp8IBUgWXwiWiAUIFuFgyBbhXwgWkIyiSBaQi6JhSBaQheJhXxCpc6qmPmo5NNVfCIVfCJZQiSJIFlCHomFIFlCGYmFIFkgDyAOhYMgDyAOg4V8ICogW3wgFSANfCJbIFogFIWDIBSFfCBbQjKJIFtCLomFIFtCF4mFfELvhI6AnuqY5QZ8IhV8Ig1CJIkgDUIeiYUgDUIZiYUgDSBZIA+FgyBZIA+DhXwgKSAUfCAVIBB8IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8QvDcudDwrMqUFHwiFXwiEEIkiSAQQh6JhSAQQhmJhSAQIA0gWYWDIA0gWYOFfCAwIFp8IBUgDnwiWiAUIFuFgyBbhXwgWkIyiSBaQi6JhSBaQheJhXxC/N/IttTQwtsnfCIVfCIOQiSJIA5CHomFIA5CGYmFIA4gECANhYMgECANg4V8IC8gW3wgFSAPfCJbIFogFIWDIBSFfCBbQjKJIFtCLomFIFtCF4mFfEKmkpvhhafIjS58IhV8Ig9CJIkgD0IeiYUgD0IZiYUgDyAOIBCFgyAOIBCDhXwgLiAUfCAVIFl8IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8Qu3VkNbFv5uWzQB8IhV8IllCJIkgWUIeiYUgWUIZiYUgWSAPIA6FgyAPIA6DhXwgLSBafCAVIA18IlogFCBbhYMgW4V8IFpCMokgWkIuiYUgWkIXiYV8Qt/n1uy5ooOc0wB8IhV8Ig1CJIkgDUIeiYUgDUIZiYUgDSBZIA+FgyBZIA+DhXwgNCBbfCAVIBB8IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8Qt7Hvd3I6pyF5QB8IhV8IhBCJIkgEEIeiYUgEEIZiYUgECANIFmFgyANIFmDhXwgMyAUfCAVIA58IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8Qqjl3uOz14K19gB8IhV8Ig5CJIkgDkIeiYUgDkIZiYUgDiAQIA2FgyAQIA2DhXwgMiBafCAVIA98IlogFCBbhYMgW4V8IFpCMokgWkIuiYUgWkIXiYV8Qubdtr/kpbLhgX98IhV8Ig9CJIkgD0IeiYUgD0IZiYUgDyAOIBCFgyAOIBCDhXwgMSBbfCAVIFl8IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8QrvqiKTRkIu5kn98IhV8IllCJIkgWUIeiYUgWUIZiYUgWSAPIA6FgyAPIA6DhXwgOCAUfCAVIA18IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8QuSGxOeUlPrfon98IhV8Ig1CJIkgDUIeiYUgDUIZiYUgDSBZIA+FgyBZIA+DhXwgNyBafCAVIBB8IlogFCBbhYMgW4V8IFpCMokgWkIuiYUgWkIXiYV8QoHgiOK7yZmNqH98IhV8IhBCJIkgEEIeiYUgEEIZiYUgECANIFmFgyANIFmDhXwgNiBbfCAVIA58IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8QpGv4oeN7uKlQnwiFXwiDkIkiSAOQh6JhSAOQhmJhSAOIBAgDYWDIBAgDYOFfCA1IBR8IBUgD3wiFCBbIFqFgyBahXwgFEIyiSAUQi6JhSAUQheJhXxCsPzSsrC0lLZHfCIVfCIPQiSJIA9CHomFIA9CGYmFIA8gDiAQhYMgDiAQg4V8IDwgWnwgFSBZfCJaIBQgW4WDIFuFfCBaQjKJIFpCLomFIFpCF4mFfEKYpL23nYO6yVF8IhV8IllCJIkgWUIeiYUgWUIZiYUgWSAPIA6FgyAPIA6DhXwgOyBbfCAVIA18IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8QpDSlqvFxMHMVnwiFXwiDUIkiSANQh6JhSANQhmJhSANIFkgD4WDIFkgD4OFfCA6IBR8IBUgEHwiFCBbIFqFgyBahXwgFEIyiSAUQi6JhSAUQheJhXxCqsDEu9WwjYd0fCIVfCIQQiSJIBBCHomFIBBCGYmFIBAgDSBZhYMgDSBZg4V8IDkgWnwgFSAOfCJaIBQgW4WDIFuFfCBaQjKJIFpCLomFIFpCF4mFfEK4o++Vg46otRB8IhV8Ig5CJIkgDkIeiYUgDkIZiYUgDiAQIA2FgyAQIA2DhXwgQCBbfCAVIA98IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8Qsihy8brorDSGXwiFXwiD0IkiSAPQh6JhSAPQhmJhSAPIA4gEIWDIA4gEIOFfCA/IBR8IBUgWXwiFCBbIFqFgyBahXwgFEIyiSAUQi6JhSAUQheJhXxC09aGioWB25sefCIVfCJZQiSJIFlCHomFIFlCGYmFIFkgDyAOhYMgDyAOg4V8ID4gWnwgFSANfCJaIBQgW4WDIFuFfCBaQjKJIFpCLomFIFpCF4mFfEKZ17v8zemdpCd8IhV8Ig1CJIkgDUIeiYUgDUIZiYUgDSBZIA+FgyBZIA+DhXwgPSBbfCAVIBB8IlsgWiAUhYMgFIV8IFtCMokgW0IuiYUgW0IXiYV8QqiR7Yzelq/YNHwiFXwiEEIkiSAQQh6JhSAQQhmJhSAQIA0gWYWDIA0gWYOFfCBEIBR8IBUgDnwiFCBbIFqFgyBahXwgFEIyiSAUQi6JhSAUQheJhXxC47SlrryWg445fCIVfCIOQiSJIA5CHomFIA5CGYmFIA4gECANhYMgECANg4V8IEMgWnwgFSAPfCJaIBQgW4WDIFuFfCBaQjKJIFpCLomFIFpCF4mFfELLlYaarsmq7M4AfCIVfCIPQiSJIA9CHomFIA9CGYmFIA8gDiAQhYMgDiAQg4V8IEIgW3wgFSBZfCJbIFogFIWDIBSFfCBbQjKJIFtCLomFIFtCF4mFfELzxo+798myztsAfCIVfCJZQiSJIFlCHomFIFlCGYmFIFkgDyAOhYMgDyAOg4V8IEEgFHwgFSANfCIUIFsgWoWDIFqFfCAUQjKJIBRCLomFIBRCF4mFfEKj8cq1vf6bl+gAfCIVfCINQiSJIA1CHomFIA1CGYmFIA0gWSAPhYMgWSAPg4V8IEggWnwgFSAQfCJaIBQgW4WDIFuFfCBaQjKJIFpCLomFIFpCF4mFfEL85b7v5d3gx/QAfCIVfCIQQiSJIBBCHomFIBBCGYmFIBAgDSBZhYMgDSBZg4V8IEcgW3wgFSAOfCJbIFogFIWDIBSFfCBbQjKJIFtCLomFIFtCF4mFfELg3tyY9O3Y0vgAfCIVfCIOQiSJIA5CHomFIA5CGYmFIA4gECANhYMgECANg4V8IEYgFHwgFSAPfCIUIFsgWoWDIFqFfCAUQjKJIBRCLomFIBRCF4mFfELy1sKPyoKe5IR/fCIVfCIPQiSJIA9CHomFIA9CGYmFIA8gDiAQhYMgDiAQg4V8IEUgWnwgFSBZfCJaIBQgW4WDIFuFfCBaQjKJIFpCLomFIFpCF4mFfELs85DTgcHA44x/fCIVfCJZQiSJIFlCHomFIFlCGYmFIFkgDyAOhYMgDyAOg4V8IEwgW3wgFSANfCJbIFogFIWDIBSFfCBbQjKJIFtCLomFIFtCF4mFfEKovIybov+/35B/fCIVfCINQiSJIA1CHomFIA1CGYmFIA0gWSAPhYMgWSAPg4V8IEsgFHwgFSAQfCIUIFsgWoWDIFqFfCAUQjKJIBRCLomFIBRCF4mFfELp+4r0vZ2bqKR/fCIVfCIQQiSJIBBCHomFIBBCGYmFIBAgDSBZhYMgDSBZg4V8IEogWnwgFSAOfCJaIBQgW4WDIFuFfCBaQjKJIFpCLomFIFpCF4mFfEKV8pmW+/7o/L5/fCIVfCIOQiSJIA5CHomFIA5CGYmFIA4gECANhYMgECANg4V8IEkgW3wgFSAPfCJbIFogFIWDIBSFfCBbQjKJIFtCLomFIFtCF4mFfEKrpsmbrp7euEZ8IhV8Ig9CJIkgD0IeiYUgD0IZiYUgDyAOIBCFgyAOIBCDhXwgUCAUfCAVIFl8IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8QpzDmdHu2c+TSnwiFXwiWUIkiSBZQh6JhSBZQhmJhSBZIA8gDoWDIA8gDoOFfCBPIFp8IBUgDXwiWiAUIFuFgyBbhXwgWkIyiSBaQi6JhSBaQheJhXxCh4SDjvKYrsNRfCIVfCINQiSJIA1CHomFIA1CGYmFIA0gWSAPhYMgWSAPg4V8IE4gW3wgFSAQfCJbIFogFIWDIBSFfCBbQjKJIFtCLomFIFtCF4mFfEKe1oPv7Lqf7Wp8IhV8IhBCJIkgEEIeiYUgEEIZiYUgECANIFmFgyANIFmDhXwgTSAUfCAVIA58IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8Qviiu/P+79O+dXwiFXwiDkIkiSAOQh6JhSAOQhmJhSAOIBAgDYWDIBAgDYOFfCBUIFp8IBUgD3wiWiAUIFuFgyBbhXwgWkIyiSBaQi6JhSBaQheJhXxCut/dkKf1mfgGfCIVfCIPQiSJIA9CHomFIA9CGYmFIA8gDiAQhYMgDiAQg4V8IFMgW3wgFSBZfCJbIFogFIWDIBSFfCBbQjKJIFtCLomFIFtCF4mFfEKmsaKW2rjfsQp8IhV8IllCJIkgWUIeiYUgWUIZiYUgWSAPIA6FgyAPIA6DhXwgUiAUfCAVIA18IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8Qq6b5PfLgOafEXwiFXwiDUIkiSANQh6JhSANQhmJhSANIFkgD4WDIFkgD4OFfCBRIFp8IBUgEHwiWiAUIFuFgyBbhXwgWkIyiSBaQi6JhSBaQheJhXxCm47xmNHmwrgbfCIVfCIQQiSJIBBCHomFIBBCGYmFIBAgDSBZhYMgDSBZg4V8IFggW3wgFSAOfCJbIFogFIWDIBSFfCBbQjKJIFtCLomFIFtCF4mFfEKE+5GY0v7d7Sh8IhV8Ig5CJIkgDkIeiYUgDkIZiYUgDiAQIA2FgyAQIA2DhXwgVyAUfCAVIA98IhQgWyBahYMgWoV8IBRCMokgFEIuiYUgFEIXiYV8QpPJnIa076rlMnwiFXwiD0IkiSAPQh6JhSAPQhmJhSAPIA4gEIWDIA4gEIOFfCBWIFp8IBUgWXwiWiAUIFuFgyBbhXwgWkIyiSBaQi6JhSBaQheJhXxCvP2mrqHBr888fCIVfCJZQiSJIFlCHomFIFlCGYmFIFkgDyAOhYMgDyAOg4V8IFUgW3wgFSANfCJbIFogFIWDIBSFfCBbQjKJIFtCLomFIFtCF4mFfELMmsDgyfjZjsMAfCIVfCINQiSJIA1CHomFIA1CGYmFIA0gWSAPhYMgWSAPg4V8IAMpA4gCIBR8IBUgEHwiFCBbIFqFgyBahXwgFEIyiSAUQi6JhSAUQheJhXxCtoX52eyX9eLMAHwiFXwiEEIkiSAQQh6JhSAQQhmJhSAQIA0gWYWDIA0gWYOFfCADKQOAAiBafCAVIA58Ig4gFCBbhYMgW4V8IA5CMokgDkIuiYUgDkIXiYV8Qqr8lePPs8q/2QB8IhV8IlpCJIkgWkIeiYUgWkIZiYUgWiAQIA2FgyAQIA2DhXwgAykDmAIgW3wgFSAPfCIPIA4gFIWDIBSFfCAPQjKJIA9CLomFIA9CF4mFfELs9dvWs/Xb5d8AfCIVfCJbIFogEIWDIFogEIOFIAx8IFtCJIkgW0IeiYUgW0IZiYV8IAMpA5ACIBR8IBUgWXwiWSAPIA6FgyAOhXwgWUIyiSBZQi6JhSBZQheJhXxCl7Cd0sSxhqLsAHwiFHwhDCBbIAt8IQsgDSAIfCAUfCEIIFogCnwhCiBZIAd8IQcgECAJfCEJIA8gBnwhBiAOIAV8IQUgAUGAAWoiASAERw0ACwsgACAFNwM4IAAgBjcDMCAAIAc3AyggACAINwMgIAAgCTcDGCAAIAo3AxAgACALNwMIIAAgDDcDACADQbACaiQAC+4tASl+IAAgACkDECIEIAEpACAiBXwgACkDMCIGfCIHIAEpACgiCHwgAiAHhULr+obav7X2wR+FQiCJIglCq/DT9K/uvLc8fCIKIAaFQiiJIgt8IgwgASkAYCICfCAAKQMYIg0gASkAMCIHfCAAKQM4Ig58Ig8gASkAOCIQfCADIA+FQvnC+JuRo7Pw2wCFQiCJIgNC8e30+KWn/aelf3wiDyAOhUIoiSIRfCISIAOFQjCJIhMgD3wiFCARhUIBiSIVfCIWIAEpAGgiA3wgFiAAKQMIIhcgASkAECIPfCAAKQMoIhh8IhkgASkAGCIRfCAZQp/Y+dnCkdqCm3+FQiCJIhlCu86qptjQ67O7f3wiGiAYhUIoiSIbfCIcIBmFQjCJIh2FQiCJIh4gACkDACIfIAEpAAAiFnwgACkDICIgfCIhIAEpAAgiGXwgACkDQCAhhULRhZrv+s+Uh9EAhUIgiSIhQoiS853/zPmE6gB8IiIgIIVCKIkiI3wiJCAhhUIwiSIlICJ8IiJ8IiYgFYVCKIkiJ3wiKCABKQBIIhV8IBwgASkAUCIhfCAMIAmFQjCJIgwgCnwiHCALhUIBiSIKfCILIAEpAFgiCXwgCyAlhUIgiSILIBR8IhQgCoVCKIkiCnwiJSALhUIwiSIpIBR8IhQgCoVCAYkiKnwiKyABKQB4Igp8ICsgEiABKQBwIgt8ICIgI4VCAYkiEnwiIiAKfCAiIAyFQiCJIgwgHSAafCIafCIdIBKFQiiJIhJ8IiIgDIVCMIkiI4VCIIkiKyAkIAEpAEAiDHwgGiAbhUIBiSIafCIbIBV8IBsgE4VCIIkiEyAcfCIbIBqFQiiJIhp8IhwgE4VCMIkiEyAbfCIbfCIkICqFQiiJIip8IiwgCXwgIiADfCAoIB6FQjCJIh4gJnwiIiAnhUIBiSImfCInIAd8ICcgE4VCIIkiEyAUfCIUICaFQiiJIiZ8IicgE4VCMIkiEyAUfCIUICaFQgGJIiZ8IiggEHwgKCAlIAV8IBsgGoVCAYkiGnwiGyAMfCAbIB6FQiCJIhsgIyAdfCIdfCIeIBqFQiiJIhp8IiMgG4VCMIkiG4VCIIkiJSAcIAt8IB0gEoVCAYkiEnwiHCAhfCAcICmFQiCJIhwgInwiHSAShUIoiSISfCIiIByFQjCJIhwgHXwiHXwiKCAmhUIoiSImfCIpIAh8ICMgFnwgLCArhUIwiSIjICR8IiQgKoVCAYkiKnwiKyAPfCArIByFQiCJIhwgFHwiFCAqhUIoiSIqfCIrIByFQjCJIhwgFHwiFCAqhUIBiSIqfCIsIA98ICwgJyAIfCAdIBKFQgGJIhJ8Ih0gEXwgHSAjhUIgiSIdIBsgHnwiG3wiHiAShUIoiSISfCIjIB2FQjCJIh2FQiCJIicgIiAZfCAbIBqFQgGJIhp8IhsgAnwgGyAThUIgiSITICR8IhsgGoVCKIkiGnwiIiAThUIwiSITIBt8Iht8IiQgKoVCKIkiKnwiLCAQfCAjIAp8ICkgJYVCMIkiIyAofCIlICaFQgGJIiZ8IiggA3wgKCAThUIgiSITIBR8IhQgJoVCKIkiJnwiKCAThUIwiSITIBR8IhQgJoVCAYkiJnwiKSAZfCApICsgAnwgGyAahUIBiSIafCIbIBZ8IBsgI4VCIIkiGyAdIB58Ih18Ih4gGoVCKIkiGnwiIyAbhUIwiSIbhUIgiSIpICIgCXwgHSAShUIBiSISfCIdIAx8IB0gHIVCIIkiHCAlfCIdIBKFQiiJIhJ8IiIgHIVCMIkiHCAdfCIdfCIlICaFQiiJIiZ8IisgA3wgIyARfCAsICeFQjCJIiMgJHwiJCAqhUIBiSInfCIqIAd8ICogHIVCIIkiHCAUfCIUICeFQiiJIid8IiogHIVCMIkiHCAUfCIUICeFQgGJIid8IiwgAnwgLCAoIBV8IB0gEoVCAYkiEnwiHSAFfCAdICOFQiCJIh0gGyAefCIbfCIeIBKFQiiJIhJ8IiMgHYVCMIkiHYVCIIkiKCAiICF8IBsgGoVCAYkiGnwiGyALfCAbIBOFQiCJIhMgJHwiGyAahUIoiSIafCIiIBOFQjCJIhMgG3wiG3wiJCAnhUIoiSInfCIsIAV8ICMgCXwgKyAphUIwiSIjICV8IiUgJoVCAYkiJnwiKSALfCApIBOFQiCJIhMgFHwiFCAmhUIoiSImfCIpIBOFQjCJIhMgFHwiFCAmhUIBiSImfCIrIBZ8ICsgKiARfCAbIBqFQgGJIhp8IhsgGXwgGyAjhUIgiSIbIB0gHnwiHXwiHiAahUIoiSIafCIjIBuFQjCJIhuFQiCJIiogIiAQfCAdIBKFQgGJIhJ8Ih0gFXwgHSAchUIgiSIcICV8Ih0gEoVCKIkiEnwiIiAchUIwiSIcIB18Ih18IiUgJoVCKIkiJnwiKyAPfCAjIAh8ICwgKIVCMIkiIyAkfCIkICeFQgGJIid8IiggIXwgKCAchUIgiSIcIBR8IhQgJ4VCKIkiJ3wiKCAchUIwiSIcIBR8IhQgJ4VCAYkiJ3wiLCAFfCAsICkgCnwgHSAShUIBiSISfCIdIAx8IB0gI4VCIIkiHSAbIB58Iht8Ih4gEoVCKIkiEnwiIyAdhUIwiSIdhUIgiSIpICIgD3wgGyAahUIBiSIafCIbIAd8IBsgE4VCIIkiEyAkfCIbIBqFQiiJIhp8IiIgE4VCMIkiEyAbfCIbfCIkICeFQiiJIid8IiwgB3wgIyAhfCArICqFQjCJIiMgJXwiJSAmhUIBiSImfCIqIAp8ICogE4VCIIkiEyAUfCIUICaFQiiJIiZ8IiogE4VCMIkiEyAUfCIUICaFQgGJIiZ8IisgDHwgKyAoIAh8IBsgGoVCAYkiGnwiGyAQfCAbICOFQiCJIhsgHSAefCIdfCIeIBqFQiiJIhp8IiMgG4VCMIkiG4VCIIkiKCAiIBV8IB0gEoVCAYkiEnwiHSAWfCAdIByFQiCJIhwgJXwiHSAShUIoiSISfCIiIByFQjCJIhwgHXwiHXwiJSAmhUIoiSImfCIrIBZ8ICMgCXwgLCAphUIwiSIjICR8IiQgJ4VCAYkiJ3wiKSACfCApIByFQiCJIhwgFHwiFCAnhUIoiSInfCIpIByFQjCJIhwgFHwiFCAnhUIBiSInfCIsIAl8ICwgKiARfCAdIBKFQgGJIhJ8Ih0gA3wgHSAjhUIgiSIdIBsgHnwiG3wiHiAShUIoiSISfCIjIB2FQjCJIh2FQiCJIiogIiALfCAbIBqFQgGJIhp8IhsgGXwgGyAThUIgiSITICR8IhsgGoVCKIkiGnwiIiAThUIwiSITIBt8Iht8IiQgJ4VCKIkiJ3wiLCAKfCAjIAx8ICsgKIVCMIkiIyAlfCIlICaFQgGJIiZ8IiggEXwgKCAThUIgiSITIBR8IhQgJoVCKIkiJnwiKCAThUIwiSITIBR8IhQgJoVCAYkiJnwiKyALfCArICkgB3wgGyAahUIBiSIafCIbICF8IBsgI4VCIIkiGyAdIB58Ih18Ih4gGoVCKIkiGnwiIyAbhUIwiSIbhUIgiSIpICIgD3wgHSAShUIBiSISfCIdIAJ8IB0gHIVCIIkiHCAlfCIdIBKFQiiJIhJ8IiIgHIVCMIkiHCAdfCIdfCIlICaFQiiJIiZ8IisgC3wgIyAQfCAsICqFQjCJIiMgJHwiJCAnhUIBiSInfCIqIAh8ICogHIVCIIkiHCAUfCIUICeFQiiJIid8IiogHIVCMIkiHCAUfCIUICeFQgGJIid8IiwgA3wgLCAoIBl8IB0gEoVCAYkiEnwiHSAVfCAdICOFQiCJIh0gGyAefCIbfCIeIBKFQiiJIhJ8IiMgHYVCMIkiHYVCIIkiKCAiIAV8IBsgGoVCAYkiGnwiGyADfCAbIBOFQiCJIhMgJHwiGyAahUIoiSIafCIiIBOFQjCJIhMgG3wiG3wiJCAnhUIoiSInfCIsIBV8ICMgBXwgKyAphUIwiSIjICV8IiUgJoVCAYkiJnwiKSAhfCApIBOFQiCJIhMgFHwiFCAmhUIoiSImfCIpIBOFQjCJIhMgFHwiFCAmhUIBiSImfCIrIA98ICsgKiAZfCAbIBqFQgGJIhp8IhsgCnwgGyAjhUIgiSIbIB0gHnwiHXwiHiAahUIoiSIafCIjIBuFQjCJIhuFQiCJIiogIiACfCAdIBKFQgGJIhJ8Ih0gCHwgHSAchUIgiSIcICV8Ih0gEoVCKIkiEnwiIiAchUIwiSIcIB18Ih18IiUgJoVCKIkiJnwiKyACfCAjIAd8ICwgKIVCMIkiIyAkfCIkICeFQgGJIid8IiggEXwgKCAchUIgiSIcIBR8IhQgJ4VCKIkiJ3wiKCAchUIwiSIcIBR8IhQgJ4VCAYkiJ3wiLCAZfCAsICkgDHwgHSAShUIBiSISfCIdIAl8IB0gI4VCIIkiHSAbIB58Iht8Ih4gEoVCKIkiEnwiIyAdhUIwiSIdhUIgiSIpICIgFnwgGyAahUIBiSIafCIbIBB8IBsgE4VCIIkiEyAkfCIbIBqFQiiJIhp8IiIgE4VCMIkiEyAbfCIbfCIkICeFQiiJIid8IiwgDHwgIyARfCArICqFQjCJIiMgJXwiJSAmhUIBiSImfCIqIBV8ICogE4VCIIkiEyAUfCIUICaFQiiJIiZ8IiogE4VCMIkiEyAUfCIUICaFQgGJIiZ8IisgB3wgKyAoIBB8IBsgGoVCAYkiGnwiGyALfCAbICOFQiCJIhsgHSAefCIdfCIeIBqFQiiJIhp8IiMgG4VCMIkiG4VCIIkiKCAiIAN8IB0gEoVCAYkiEnwiHSAJfCAdIByFQiCJIhwgJXwiHSAShUIoiSISfCIiIByFQjCJIhwgHXwiHXwiJSAmhUIoiSImfCIrIAl8ICMgCnwgLCAphUIwiSIjICR8IiQgJ4VCAYkiJ3wiKSAFfCApIByFQiCJIhwgFHwiFCAnhUIoiSInfCIpIByFQjCJIhwgFHwiFCAnhUIBiSInfCIsIBF8ICwgKiAPfCAdIBKFQgGJIhJ8Ih0gIXwgHSAjhUIgiSIdIBsgHnwiG3wiHiAShUIoiSISfCIjIB2FQjCJIh2FQiCJIiogIiAIfCAbIBqFQgGJIhp8IhsgFnwgGyAThUIgiSITICR8IhsgGoVCKIkiGnwiIiAThUIwiSITIBt8Iht8IiQgJ4VCKIkiJ3wiLCAZfCAjIBZ8ICsgKIVCMIkiIyAlfCIlICaFQgGJIiZ8IiggDHwgKCAThUIgiSITIBR8IhQgJoVCKIkiJnwiKCAThUIwiSITIBR8IhQgJoVCAYkiJnwiKyAFfCArICkgC3wgGyAahUIBiSIafCIbIBV8IBsgI4VCIIkiGyAdIB58Ih18Ih4gGoVCKIkiGnwiIyAbhUIwiSIbhUIgiSIpICIgB3wgHSAShUIBiSISfCIdIAp8IB0gHIVCIIkiHCAlfCIdIBKFQiiJIhJ8IiIgHIVCMIkiHCAdfCIdfCIlICaFQiiJIiZ8IisgEHwgIyADfCAsICqFQjCJIiMgJHwiJCAnhUIBiSInfCIqIBB8ICogHIVCIIkiHCAUfCIUICeFQiiJIid8IiogHIVCMIkiHCAUfCIUICeFQgGJIid8IiwgB3wgLCAoICF8IB0gEoVCAYkiEnwiHSAIfCAdICOFQiCJIh0gGyAefCIbfCIeIBKFQiiJIhJ8IiMgHYVCMIkiHYVCIIkiKCAiIAJ8IBsgGoVCAYkiGnwiGyAPfCAbIBOFQiCJIhMgJHwiGyAahUIoiSIafCIiIBOFQjCJIhMgG3wiG3wiJCAnhUIoiSInfCIsIBF8ICMgGXwgKyAphUIwiSIjICV8IiUgJoVCAYkiJnwiKSAIfCApIBOFQiCJIhMgFHwiFCAmhUIoiSImfCIpIBOFQjCJIhMgFHwiFCAmhUIBiSImfCIrIAJ8ICsgKiAMfCAbIBqFQgGJIhp8IhsgBXwgGyAjhUIgiSIbIB0gHnwiHXwiHiAahUIoiSIafCIjIBuFQjCJIhuFQiCJIiogIiAhfCAdIBKFQgGJIhJ8Ih0gD3wgHSAchUIgiSIcICV8Ih0gEoVCKIkiEnwiIiAchUIwiSIcIB18Ih18IiUgJoVCKIkiJnwiKyAFfCAjIBV8ICwgKIVCMIkiIyAkfCIkICeFQgGJIid8IiggC3wgKCAchUIgiSIcIBR8IhQgJ4VCKIkiJ3wiKCAchUIwiSIcIBR8IhQgJ4VCAYkiJ3wiLCAIfCAsICkgA3wgHSAShUIBiSISfCIdIBZ8IB0gI4VCIIkiHSAbIB58Iht8Ih4gEoVCKIkiEnwiIyAdhUIwiSIdhUIgiSIpICIgCnwgGyAahUIBiSIafCIbIAl8IBsgE4VCIIkiEyAkfCIbIBqFQiiJIhp8IiIgE4VCMIkiEyAbfCIbfCIkICeFQiiJIid8IiwgAnwgIyAHfCArICqFQjCJIiMgJXwiJSAmhUIBiSImfCIqIBB8ICogE4VCIIkiEyAUfCIUICaFQiiJIiZ8IiogE4VCMIkiEyAUfCIUICaFQgGJIiZ8IisgA3wgKyAoIA98IBsgGoVCAYkiGnwiGyARfCAbICOFQiCJIhsgHSAefCIdfCIeIBqFQiiJIhp8IiMgG4VCMIkiG4VCIIkiKCAiIBZ8IB0gEoVCAYkiEnwiHSAZfCAdIByFQiCJIhwgJXwiHSAShUIoiSISfCIiIByFQjCJIhwgHXwiHXwiJSAmhUIoiSImfCIrIBV8ICMgIXwgLCAphUIwiSIjICR8IiQgJ4VCAYkiJ3wiKSAJfCApIByFQiCJIhwgFHwiFCAnhUIoiSInfCIpIByFQjCJIhwgFHwiFCAnhUIBiSInfCIsIAp8ICwgKiALfCAdIBKFQgGJIhJ8Ih0gCnwgHSAjhUIgiSIKIBsgHnwiG3wiHSAShUIoiSISfCIeIAqFQjCJIgqFQiCJIiMgIiAMfCAbIBqFQgGJIhp8IhsgFXwgGyAThUIgiSIVICR8IhMgGoVCKIkiGnwiGyAVhUIwiSIVIBN8IhN8IiIgJ4VCKIkiJHwiJyAJfCAeIAN8ICsgKIVCMIkiAyAlfCIJICaFQgGJIh58IiUgB3wgJSAVhUIgiSIHIBR8IhUgHoVCKIkiFHwiHiAHhUIwiSIHIBV8IhUgFIVCAYkiFHwiJSAQfCAlICkgBXwgEyAahUIBiSIFfCIQIAx8IBAgA4VCIIkiECAKIB18IgN8IgogBYVCKIkiBXwiDCAQhUIwiSIQhUIgiSITIBsgC3wgAyAShUIBiSIDfCILICF8IAsgHIVCIIkiISAJfCIJIAOFQiiJIgN8IgsgIYVCMIkiISAJfCIJfCISIBSFQiiJIhR8IhogBIUgCyAZfCAQIAp8IhAgBYVCAYkiBXwiGSACfCAZIAeFQiCJIgIgJyAjhUIwiSIHICJ8Ihl8IgogBYVCKIkiBXwiCyAChUIwiSICIAp8IgqFNwMQIAAgDSARIB4gCHwgCSADhUIBiSIIfCIDfCADIAeFQiCJIgcgEHwiECAIhUIoiSIIfCIDhSAPIAwgFnwgGSAkhUIBiSIRfCIWfCAWICGFQiCJIg8gFXwiFiARhUIoiSIRfCIZIA+FQjCJIg8gFnwiFoU3AxggACAZIBeFIAMgB4VCMIkiByAQfCIQhTcDCCAAIAsgH4UgGiAThUIwiSIDIBJ8IhmFNwMAIAAgGCAKIAWFQgGJhSADhTcDKCAAIA4gGSAUhUIBiYUgAoU3AzggACAGIBYgEYVCAYmFIAeFNwMwIAAgICAQIAiFQgGJhSAPhTcDIAvPLwIdfwN+IwBBoAprIgQkAAJAIAEpAwAiIUIAUQ0AAkAgASkDCCIiQgBRDQACQCABKQMQIiNCAFENAAJAICMgIUJ/hVYNAAJAICEgIlQNAAJAIANBEE0NACABLAAaIQUgAS4BGCEBIAQgIT4CACAEQQFBAiAhQoCAgIAQVCIGGzYCoAEgBEEAICFCIIinIAYbNgIEAkBBmAFFIgYNACAEQQhqQQBBmAH8CwALIAQgIj4CpAEgBEEBQQIgIkKAgICAEFQiBxs2AsQCIARBACAiQiCIpyAHGzYCqAECQCAGDQAgBEGkAWpBCGpBAEGYAfwLAAsgBCAjPgLIAiAEQQFBAiAjQoCAgIAQVCIHGzYC6AMgBEEAICNCIIinIAcbNgLMAgJAIAYNACAEQcgCakEIakEAQZgB/AsACwJAQZwBRQ0AIARB8ANqQQBBnAH8CwALIARBATYC7AMgBEEBNgKMBSABrCAhICN8Qn98eX1CwprB6AR+QoChzaC0AnxCIIinIgbBIQgCQAJAIAFBAEgNACAEIAEQigEaIARBpAFqIAEQigEaIARByAJqIAEQigEaDAELIARB7ANqQQAgAWvBEIoBGgsCQAJAIAhBf0oNACAEQQAgCGtB//8DcSIBEEkaIARBpAFqIAEQSRogBEHIAmogARBJGgwBCyAEQewDaiAGQf//AXEQSRoLAkBBpAFFDQAgBEH8CGogBEGkAfwKAAALAkACQAJAAkACQCAEKALoAyIJIAQoApwKIgEgCSABSxsiCkEoSw0AAkAgCg0AQQAhCgwECyAKQQFxIQsgCkEBRw0BQQAhDEEAIQ0MAgtBACAKQShBhInBABDWAwALIApBPnEhDkEAIQwgBEH8CGohASAEQcgCaiEGQQAhDQNAIAEgBigCACIPIAEoAgBqIgcgDEEBcWoiEDYCACABQQRqIgwgBkEEaigCACIRIAwoAgBqIgwgByAPSSAQIAdJcmoiBzYCACAMIBFJIAcgDElyIQwgBkEIaiEGIAFBCGohASAOIA1BAmoiDUcNAAsLAkAgC0UNACAEQfwIaiANQQJ0IgFqIgYgBEHIAmogAWooAgAiByAGKAIAaiIBIAxqIgY2AgAgASAHSSAGIAFJciEMCyAMQQFxRQ0AIApBKEYNASAEQfwIaiAKQQJ0akEBNgIAIApBAWohCgsgBCAKNgKcCgJAIAogBCgCjAUiEiAKIBJLGyIBQSlPDQAgAUECdCEBAkACQANAIAFFDQEgAUF8aiIBIARB7ANqaigCACIGIAEgBEH8CGpqKAIAIgdGDQALIAYgB0sgBiAHSWshAQwBC0F/QQAgARshAQsCQAJAAkACQAJAAkACQCABIAVIDQAgBCgCoAEiDEEpTw0GAkACQCAMDQBBACEMDAELIAxBAnQiD0F8aiIBQQJ2QQFqIgZBA3EhDQJAAkAgAUEMTw0AIAQhAUIAISEMAQsgBkH8////B3EhBiAEIQFCACEhA0AgASABNQIAQgp+ICF8IiE+AgAgAUEEaiIHIAc1AgBCCn4gIUIgiHwiIT4CACABQQhqIgcgBzUCAEIKfiAhQiCIfCIhPgIAIAFBDGoiByAHNQIAQgp+ICFCIIh8IiM+AgAgI0IgiCEhIAFBEGohASAGQXxqIgYNAAsLAkAgDUUNACANQQJ0IQYDQCABIAE1AgBCCn4gIXwiIz4CACABQQRqIQEgI0IgiCEhIAZBfGoiBg0ACwsgI0KAgICAEFQNACAMQShGDQYgBCAPaiAhpzYCACAMQQFqIQwLIAQgDDYCoAEgBCgCxAIiDUEpTw0EQQAhE0EAIQECQCANRQ0AIA1BAnQiEEF8aiIBQQJ2QQFqIgZBA3EhDwJAAkAgAUEMTw0AIARBpAFqIQFCACEhDAELIAZB/P///wdxIQYgBEGkAWohAUIAISEDQCABIAE1AgBCCn4gIXwiIT4CACABQQRqIgcgBzUCAEIKfiAhQiCIfCIhPgIAIAFBCGoiByAHNQIAQgp+ICFCIIh8IiE+AgAgAUEMaiIHIAc1AgBCCn4gIUIgiHwiIz4CACAjQiCIISEgAUEQaiEBIAZBfGoiBg0ACwsCQCAPRQ0AIA9BAnQhBgNAIAEgATUCAEIKfiAhfCIjPgIAIAFBBGohASAjQiCIISEgBkF8aiIGDQALCwJAICNCgICAgBBaDQAgDSEBDAELIA1BKEYNBCAEQaQBaiAQaiAhpzYCACANQQFqIQELIAQgATYCxAICQCAJRQ0AIAlBAnQiD0F8aiIBQQJ2QQFqIgZBA3EhDQJAAkAgAUEMTw0AIARByAJqIQFCACEhDAELIAZB/P///wdxIQYgBEHIAmohAUIAISEDQCABIAE1AgBCCn4gIXwiIT4CACABQQRqIgcgBzUCAEIKfiAhQiCIfCIhPgIAIAFBCGoiByAHNQIAQgp+ICFCIIh8IiE+AgAgAUEMaiIHIAc1AgBCCn4gIUIgiHwiIz4CACAjQiCIISEgAUEQaiEBIAZBfGoiBg0ACwsCQCANRQ0AIA1BAnQhBgNAIAEgATUCAEIKfiAhfCIjPgIAIAFBBGohASAjQiCIISEgBkF8aiIGDQALCwJAICNCgICAgBBaDQAgBCAJIhM2AugDDAMLIAlBKEYNAyAEQcgCaiAPaiAhpzYCACAJQQFqIRMLIAQgEzYC6AMMAQsgCEEBaiEIIAQoAqABIQwgCSETCwJAQaQBRSIBDQAgBEGQBWogBEHsA2pBpAH8CgAACyAEQZAFakEBEIoBIRQCQCABDQAgBEG0BmogBEHsA2pBpAH8CgAACyAEQbQGakECEIoBIRUCQCABDQAgBEHYB2ogBEHsA2pBpAH8CgAACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIARB2AdqQQMQigEiFigCoAEiFyAMIBcgDEsbIgtBKEsNACAEQZAFakF8aiEJIARBtAZqQXxqIQogBEHYB2pBfGohDiAUKAKgASEYIBUoAqABIRlBACEaA0AgGiEbIAtBAnQhAQJAAkACQAJAA0AgAUUNASAOIAFqIQYgAUF8aiIBIARqKAIAIgcgBigCACIGRg0ACyAHIAZJDQEMAgsgAUUNAQtBACEcIAwhCwwBCwJAIAtFDQBBASEMIAtBAXEhHEEAIQ0CQCALQQFGDQAgC0E+cSEdQQAhDUEBIQwgBCEBIARB2AdqIQYDQCABIAEoAgAiDyAGKAIAQX9zaiIHIAxBAXFqIhA2AgAgAUEEaiIMIAwoAgAiESAGQQRqKAIAQX9zaiIMIAcgD0kgECAHSXJqIgc2AgAgDCARSSAHIAxJciEMIAZBCGohBiABQQhqIQEgHSANQQJqIg1HDQALCwJAIBxFDQAgBCANQQJ0IgFqIgYgBigCACIGIBYgAWooAgBBf3NqIgEgDGoiBzYCACABIAZJIAcgAUlyIQwLIAxBAXFFDQcLIAQgCzYCoAFBCCEcCyAZIAsgGSALSxsiHUEpTw0GIB1BAnQhAQJAAkACQANAIAFFDQEgCiABaiEGIAFBfGoiASAEaigCACIHIAYoAgAiBkYNAAsgByAGTw0BIAshHQwCCyABRQ0AIAshHQwBCwJAIB1FDQBBASEMIB1BAXEhHkEAIQ0CQCAdQQFGDQAgHUE+cSELQQAhDUEBIQwgBCEBIARBtAZqIQYDQCABIAEoAgAiDyAGKAIAQX9zaiIHIAxBAXFqIhA2AgAgAUEEaiIMIAwoAgAiESAGQQRqKAIAQX9zaiIMIAcgD0kgECAHSXJqIgc2AgAgDCARSSAHIAxJciEMIAZBCGohBiABQQhqIQEgCyANQQJqIg1HDQALCwJAIB5FDQAgBCANQQJ0IgFqIgYgBigCACIGIBUgAWooAgBBf3NqIgEgDGoiBzYCACABIAZJIAcgAUlyIQwLIAxBAXFFDQkLIAQgHTYCoAEgHEEEciEcCyAYIB0gGCAdSxsiC0EpTw0IIAtBAnQhAQJAAkACQANAIAFFDQEgCSABaiEGIAFBfGoiASAEaigCACIHIAYoAgAiBkYNAAsgByAGTw0BIB0hCwwCCyABRQ0AIB0hCwwBCwJAIAtFDQBBASEMIAtBAXEhHkEAIQ0CQCALQQFGDQAgC0E+cSEdQQAhDUEBIQwgBCEBIARBkAVqIQYDQCABIAEoAgAiDyAGKAIAQX9zaiIHIAxBAXFqIhA2AgAgAUEEaiIMIAwoAgAiESAGQQRqKAIAQX9zaiIMIAcgD0kgECAHSXJqIgc2AgAgDCARSSAHIAxJciEMIAZBCGohBiABQQhqIQEgHSANQQJqIg1HDQALCwJAIB5FDQAgBCANQQJ0IgFqIgYgBigCACIGIBQgAWooAgBBf3NqIgEgDGoiBzYCACABIAZJIAcgAUlyIQwLIAxBAXFFDQsLIAQgCzYCoAEgHEECaiEcCyASIAsgEiALSxsiHUEpTw0KIB1BAnQhAQJAAkACQANAIAFFDQEgAUF8aiIBIARqKAIAIgYgASAEQewDamooAgAiB0YNAAsgBiAHTw0BIAshHQwCCyABRQ0AIAshHQwBCwJAIB1FDQBBASEMIB1BAXEhHkEAIQ0CQCAdQQFGDQAgHUE+cSELQQAhDUEBIQwgBCEBIARB7ANqIQYDQCABIAEoAgAiDyAGKAIAQX9zaiIHIAxBAXFqIhA2AgAgAUEEaiIMIAwoAgAiESAGQQRqKAIAQX9zaiIMIAcgD0kgECAHSXJqIgc2AgAgDCARSSAHIAxJciEMIAZBCGohBiABQQhqIQEgCyANQQJqIg1HDQALCwJAIB5FDQAgBCANQQJ0IgFqIgYgBigCACIGIARB7ANqIAFqKAIAQX9zaiIBIAxqIgc2AgAgASAGSSAHIAFJciEMCyAMQQFxRQ0NCyAEIB02AqABIBxBAWohHAsgGyADRg0QIAIgG2ogHEEwajoAACAEKALEAiIeIB0gHiAdSxsiAUEpTw0MIBtBAWohGiABQQJ0IQECQAJAA0AgAUUNASABQXxqIgEgBGooAgAiBiABIARBpAFqaigCACIHRg0ACyAGIAdLIAYgB0lrIR8MAQtBf0EAIAEbIR8LAkBBpAFFDQAgBEH8CGogBEGkAfwKAAALIBMgBCgCnAoiASATIAFLGyIcQShLDQ0CQAJAIBwNAEEAIRwMAQsgHEEBcSEgQQAhDEEAIQ0CQCAcQQFGDQAgHEE+cSELQQAhDCAEQfwIaiEBIARByAJqIQZBACENA0AgASAGKAIAIg8gASgCAGoiByAMQQFxaiIQNgIAIAFBBGoiDCAGQQRqKAIAIhEgDCgCAGoiDCAHIA9JIBAgB0lyaiIHNgIAIAwgEUkgByAMSXIhDCAGQQhqIQYgAUEIaiEBIAsgDUECaiINRw0ACwsCQCAgRQ0AIARB/AhqIA1BAnQiAWoiBiAEQcgCaiABaigCACIHIAYoAgBqIgEgDGoiBjYCACABIAdJIAYgAUlyIQwLIAxBAXFFDQAgHEEoRg0PIARB/AhqIBxBAnRqQQE2AgAgHEEBaiEcCyAEIBw2ApwKIBwgEiAcIBJLGyIBQSlPDQ8gAUECdCEBAkACQANAIAFFDQEgAUF8aiIBIARB7ANqaigCACIGIAEgBEH8CGpqKAIAIgdGDQALIAYgB0sgBiAHSWshAQwBC0F/QQAgARshAQsgHyAFSA0CIAEgBUgNA0EAIQ1BACEMAkAgHUUNACAdQQJ0Ig9BfGoiAUECdkEBaiIGQQNxIQwCQAJAIAFBDE8NACAEIQFCACEhDAELIAZB/P///wdxIQYgBCEBQgAhIQNAIAEgATUCAEIKfiAhfCIhPgIAIAFBBGoiByAHNQIAQgp+ICFCIIh8IiE+AgAgAUEIaiIHIAc1AgBCCn4gIUIgiHwiIT4CACABQQxqIgcgBzUCAEIKfiAhQiCIfCIjPgIAICNCIIghISABQRBqIQEgBkF8aiIGDQALCwJAIAxFDQAgDEECdCEGA0AgASABNQIAQgp+ICF8IiM+AgAgAUEEaiEBICNCIIghISAGQXxqIgYNAAsLAkAgI0KAgICAEFoNACAdIQwMAQsgHUEoRg0SIAQgD2ogIac2AgAgHUEBaiEMCyAEIAw2AqABAkAgHkUNACAeQQJ0Ig9BfGoiAUECdkEBaiIGQQNxIQ0CQAJAIAFBDE8NACAEQaQBaiEBQgAhIQwBCyAGQfz///8HcSEGIARBpAFqIQFCACEhA0AgASABNQIAQgp+ICF8IiE+AgAgAUEEaiIHIAc1AgBCCn4gIUIgiHwiIT4CACABQQhqIgcgBzUCAEIKfiAhQiCIfCIhPgIAIAFBDGoiByAHNQIAQgp+ICFCIIh8IiM+AgAgI0IgiCEhIAFBEGohASAGQXxqIgYNAAsLAkAgDUUNACANQQJ0IQYDQCABIAE1AgBCCn4gIXwiIz4CACABQQRqIQEgI0IgiCEhIAZBfGoiBg0ACwsCQCAjQoCAgIAQWg0AIB4hDQwBCyAeQShGDRMgBEGkAWogD2ogIac2AgAgHkEBaiENCyAEIA02AsQCAkACQCATDQBBACETDAELIBNBAnQiD0F8aiIBQQJ2QQFqIgZBA3EhDQJAAkAgAUEMTw0AIARByAJqIQFCACEhDAELIAZB/P///wdxIQYgBEHIAmohAUIAISEDQCABIAE1AgBCCn4gIXwiIT4CACABQQRqIgcgBzUCAEIKfiAhQiCIfCIhPgIAIAFBCGoiByAHNQIAQgp+ICFCIIh8IiE+AgAgAUEMaiIHIAc1AgBCCn4gIUIgiHwiIz4CACAjQiCIISEgAUEQaiEBIAZBfGoiBg0ACwsCQCANRQ0AIA1BAnQhBgNAIAEgATUCAEIKfiAhfCIjPgIAIAFBBGohASAjQiCIISEgBkF8aiIGDQALCyAjQoCAgIAQVA0AIBNBKEYNFCAEQcgCaiAPaiAhpzYCACATQQFqIRMLIAQgEzYC6AMgFyAMIBcgDEsbIgtBKUkNAAsLQQAgC0EoQYSJwQAQ1gMACyABIAVODQEgBEEBEIoBGiASIAQoAqABIgEgEiABSxsiAUEpTw0RIAFBAnQhASAEQXxqIQwgBEHsA2pBfGohDQJAA0AgAUUNASANIAFqIQYgDCABaiEHIAFBfGohASAHKAIAIgcgBigCACIGRg0ACyAHIAZPDQEMAgsgAQ0BCyACIBpqIQ1BfyEGIBshAQJAA0AgAUF/Rg0BIAZBAWohBiACIAFqIQcgAUF/aiIMIQEgBy0AAEE5Rg0ACyACIAxqIgdBAWoiASABLQAAQQFqOgAAIAZFDQEgB0ECakEwIAb8CwAMAQsgAkExOgAAAkAgG0UNACACQQFqQTAgG/wLAAsgGiADTw0RIA1BMDoAACAIQQFqIQggG0ECaiEaCyAaIANLDREgACAIOwEIIAAgGjYCBCAAIAI2AgAgBEGgCmokAA8LQeeIwQBBGkGEicEAENAEAAtBACAdQShBhInBABDWAwALQeeIwQBBGkGEicEAENAEAAtBACALQShBhInBABDWAwALQeeIwQBBGkGEicEAENAEAAtBACAdQShBhInBABDWAwALQeeIwQBBGkGEicEAENAEAAtBACABQShBhInBABDWAwALQQAgHEEoQYSJwQAQ1gMAC0EoQShBhInBABC1AwALQQAgAUEoQYSJwQAQ1gMACyADIANBpJzBABC1AwALQShBKEGEicEAELUDAAtBKEEoQYSJwQAQtQMAC0EoQShBhInBABC1AwALQQAgAUEoQYSJwQAQ1gMACyAaIANBtJzBABC1AwALQQAgGiADQcScwQAQ1gMAC0EoQShBhInBABC1AwALQShBKEGEicEAELUDAAtBACANQShBhInBABDWAwALQShBKEGEicEAELUDAAtBACAMQShBhInBABDWAwALQQAgAUEoQYSJwQAQ1gMAC0EoQShBhInBABC1AwALQdOJwQBBLUGUnMEAENAEAAtB3JjBAEE3QYScwQAQ0AQAC0GUmMEAQTZB9JvBABDQBAALQeiXwQBBHEHkm8EAENAEAAtBuJfBAEEdQdSbwQAQ0AQAC0GIlsEAQRxBxJvBABDQBAAL7ycCHH8DfiMAQcAGayIFJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEpAwAiIUIAUQ0AIAEpAwgiIkIAUQ0BIAEpAxAiI0IAUQ0CICMgIUJ/hVYNAyAhICJUDQQgAS4BGCEBIAUgIT4CDCAFQQFBAiAhQoCAgIAQVCIGGzYCrAEgBUEAICFCIIinIAYbNgIQAkBBmAFFDQAgBUEUakEAQZgB/AsACwJAQZwBRQ0AIAVBtAFqQQBBnAH8CwALIAVBATYCsAEgBUEBNgLQAiABrCAhQn98eX1CwprB6AR+QoChzaC0AnxCIIinIgbBIQcCQAJAIAFBAEgNACAFQQxqIAEQigEaDAELIAVBsAFqQQAgAWvBEIoBGgsCQAJAIAdBf0oNACAFQQxqQQAgB2tB//8DcRBJGgwBCyAFQbABaiAGQf//AXEQSRoLAkBBpAFFDQAgBUGcBWogBUGwAWpBpAH8CgAACyADIQgCQCADQQpJDQAgBUGcBWpBeGohCSADIQgDQCAFKAK8BiIBQSlPDQcCQCABRQ0AAkACQCABQQJ0IgFBfGoiCg0AIAVBnAVqIAFqIQFCACEhDAELIAkgAWohASAKQQJ2QQFqQf7///8HcSEGQgAhIQNAIAFBBGoiCyAhQiCGIAs1AgCEIiFCgJTr3AOAIiI+AgAgASAhICJCgJTr3AN+fUIghiABNQIAhCIhQoCU69wDgCIiPgIAICEgIkKAlOvcA359ISEgAUF4aiEBIAZBfmoiBg0ACyABQQhqIQEgIUIghiEhCyAKQQRxDQAgAUF8aiIBICEgATUCAIRCgJTr3AOAPgIACyAIQXdqIghBCUsNAAsLIAhBAnQoAtScQUEBdCIGRQ0GIAUoArwGIgFBKU8NBwJAAkAgAQ0AQQAhAQwBCyAGrSEhAkACQCABQQJ0IgFBfGoiCA0AIAVBnAVqIAFqIQFCACEiDAELIAEgBUGcBWpqQXhqIQEgCEECdkEBakH+////B3EhBkIAISIDQCABQQRqIgsgIkIghiALNQIAhCIiICGAIiM+AgAgASAiICMgIX59QiCGIAE1AgCEIiIgIYAiIz4CACAiICMgIX59ISIgAUF4aiEBIAZBfmoiBg0ACyABQQhqIQEgIkIghiEiCwJAIAhBBHENACABQXxqIgEgIiABNQIAhCAhgD4CAAsgBSgCvAYhAQsCQAJAAkACQCAFKAKsASIMIAEgDCABSxsiDUEoSw0AAkAgDQ0AQQAhDQwECyANQQFxIQ4gDUEBRw0BQQAhCEEAIQoMAgtBACANQShBhInBABDWAwALIA1BPnEhD0EAIQggBUGcBWohASAFQQxqIQZBACEKA0AgASAGKAIAIgkgASgCAGoiCyAIQQFxaiIQNgIAIAFBBGoiCCAGQQRqKAIAIhEgCCgCAGoiCCALIAlJIBAgC0lyaiILNgIAIAggEUkgCyAISXIhCCAGQQhqIQYgAUEIaiEBIA8gCkECaiIKRw0ACwsCQCAORQ0AIAVBnAVqIApBAnQiAWoiBiAFQQxqIAFqKAIAIgsgBigCAGoiASAIaiIGNgIAIAEgC0kgBiABSXIhCAsgCEEBcUUNACANQShGDQkgBUGcBWogDUECdGpBATYCACANQQFqIQ0LIAUgDTYCvAYgBSgC0AIiDiANIA4gDUsbIgFBKU8NCSABQQJ0IQECQAJAA0AgAUUNASABQXxqIgEgBUGcBWpqKAIAIgYgASAFQbABamooAgAiC0YNAAsgBiALTw0BDAwLIAENCwsgB0EBaiEHDAsLQYiWwQBBHEGkmsEAENAEAAtBuJfBAEEdQbSawQAQ0AQAC0Hol8EAQRxBxJrBABDQBAALQZSYwQBBNkHUmsEAENAEAAtB3JjBAEE3QeSawQAQ0AQAC0EAIAFBKEGEicEAENYDAAtBzIjBAEEbQYSJwQAQ0AQAC0EAIAFBKEGEicEAENYDAAtBKEEoQYSJwQAQtQMAC0EAIAFBKEGEicEAENYDAAsCQCAMDQBBACEMIAVBADYCrAEMAQsgDEECdCIKQXxqIgFBAnZBAWoiBkEDcSEIAkACQCABQQxPDQAgBUEMaiEBQgAhIQwBCyAGQfz///8HcSEGIAVBDGohAUIAISEDQCABIAE1AgBCCn4gIXwiIT4CACABQQRqIgsgCzUCAEIKfiAhQiCIfCIhPgIAIAFBCGoiCyALNQIAQgp+ICFCIIh8IiE+AgAgAUEMaiILIAs1AgBCCn4gIUIgiHwiIj4CACAiQiCIISEgAUEQaiEBIAZBfGoiBg0ACwsCQCAIRQ0AIAhBAnQhBgNAIAEgATUCAEIKfiAhfCIiPgIAIAFBBGohASAiQiCIISEgBkF8aiIGDQALCwJAICJCgICAgBBUDQAgDEEoRg0CIAVBDGogCmogIac2AgAgDEEBaiEMCyAFIAw2AqwBC0EAIRJBASEQIAfBIgEgBMEiBkgiEw0NIAcgBGvBIAMgASAGayADSRsiCEUNDQJAQaQBRSIBDQAgBUHUAmogBUGwAWpBpAH8CgAAC0EBIRQgBUHUAmpBARCKASEVAkAgAQ0AIAVB+ANqIAVBsAFqQaQB/AoAAAsgBUH4A2pBAhCKASEWAkAgAQ0AIAVBnAVqIAVBsAFqQaQB/AoAAAsgBUGwAWpBfGohDyAFQdQCakF8aiERIAVB+ANqQXxqIRAgBUGcBWpBfGohCSAFQZwFakEDEIoBIRcgFSgCoAEhGCAWKAKgASEZIBcoAqABIRpBACEbAkACQANAIAxBKU8NBCAMQQJ0IQtBACEBA0AgCyABRg0DIAVBDGogAWohBiABQQRqIQEgBigCAEUNAAsgGiAMIBogDEsbIhxBKU8NBSAcQQJ0IQECQAJAAkADQCABRQ0BIAkgAWohBiABQXxqIgEgBUEMamooAgAiCyAGKAIAIgZGDQALIAsgBk8NAUEAIR0MAgsgAUUNAEEAIR0MAQtBASEKIBxBAXEhHUEAIQwCQCAcQQFGDQAgHEE+cSEeQQAhDEEBIQogBUEMaiEBIAVBnAVqIQYDQCABIAEoAgAiDSAGKAIAQX9zaiILIApBAXFqIgQ2AgAgAUEEaiIKIAooAgAiHyAGQQRqKAIAQX9zaiIKIAsgDUkgBCALSXJqIgs2AgAgCiAfSSALIApJciEKIAZBCGohBiABQQhqIQEgHiAMQQJqIgxHDQALCwJAIB1FDQAgBUEMaiAMQQJ0IgFqIgYgBigCACIGIBcgAWooAgBBf3NqIgEgCmoiCzYCACABIAZJIAsgAUlyIQoLIApBAXFFDQcgBSAcNgKsAUEIIR0gHCEMCyAZIAwgGSAMSxsiHkEpTw0HIB5BAnQhAQJAAkACQANAIAFFDQEgECABaiEGIAFBfGoiASAFQQxqaigCACILIAYoAgAiBkYNAAsgCyAGTw0BIAwhHgwCCyABRQ0AIAwhHgwBCwJAIB5FDQBBASEKIB5BAXEhIEEAIQwCQCAeQQFGDQAgHkE+cSEcQQAhDEEBIQogBUEMaiEBIAVB+ANqIQYDQCABIAEoAgAiDSAGKAIAQX9zaiILIApBAXFqIgQ2AgAgAUEEaiIKIAooAgAiHyAGQQRqKAIAQX9zaiIKIAsgDUkgBCALSXJqIgs2AgAgCiAfSSALIApJciEKIAZBCGohBiABQQhqIQEgHCAMQQJqIgxHDQALCwJAICBFDQAgBUEMaiAMQQJ0IgFqIgYgBigCACIGIBYgAWooAgBBf3NqIgEgCmoiCzYCACABIAZJIAsgAUlyIQoLIApBAXFFDQoLIAUgHjYCrAEgHUEEciEdCyAYIB4gGCAeSxsiHEEpTw0JIBxBAnQhAQJAAkACQANAIAFFDQEgESABaiEGIAFBfGoiASAFQQxqaigCACILIAYoAgAiBkYNAAsgCyAGTw0BIB4hHAwCCyABRQ0AIB4hHAwBCwJAIBxFDQBBASEKIBxBAXEhIEEAIQwCQCAcQQFGDQAgHEE+cSEeQQAhDEEBIQogBUEMaiEBIAVB1AJqIQYDQCABIAEoAgAiDSAGKAIAQX9zaiILIApBAXFqIgQ2AgAgAUEEaiIKIAooAgAiHyAGQQRqKAIAQX9zaiIKIAsgDUkgBCALSXJqIgs2AgAgCiAfSSALIApJciEKIAZBCGohBiABQQhqIQEgHiAMQQJqIgxHDQALCwJAICBFDQAgBUEMaiAMQQJ0IgFqIgYgBigCACIGIBUgAWooAgBBf3NqIgEgCmoiCzYCACABIAZJIAsgAUlyIQoLIApBAXFFDQwLIAUgHDYCrAEgHUECaiEdCyAOIBwgDiAcSxsiDEEpTw0LIAxBAnQhAQJAAkACQANAIAFFDQEgDyABaiEGIAFBfGoiASAFQQxqaigCACILIAYoAgAiBkYNAAsgCyAGTw0BIBwhDAwCCyABRQ0AIBwhDAwBCwJAIAxFDQBBASEKIAxBAXEhIEEAIQ0CQCAMQQFGDQAgDEE+cSEcQQAhDUEBIQogBUEMaiEBIAVBsAFqIQYDQCABIAEoAgAiBCAGKAIAQX9zaiILIApBAXFqIh82AgAgAUEEaiIKIAooAgAiHiAGQQRqKAIAQX9zaiIKIAsgBEkgHyALSXJqIgs2AgAgCiAeSSALIApJciEKIAZBCGohBiABQQhqIQEgHCANQQJqIg1HDQALCwJAICBFDQAgBUEMaiANQQJ0IgFqIgYgBigCACIGIAVBsAFqIAFqKAIAQX9zaiIBIApqIgs2AgAgASAGSSALIAFJciEKCyAKQQFxRQ0OCyAFIAw2AqwBIB1BAWohHQsgGyADTw0BIAIgG2ogHUEwajoAACAMQSlPDQ0CQAJAIAwNAEEAIQwMAQsgDEECdCINQXxqIgFBAnZBAWoiBkEDcSEKAkACQCABQQxPDQAgBUEMaiEBQgAhIQwBCyAGQfz///8HcSEGIAVBDGohAUIAISEDQCABIAE1AgBCCn4gIXwiIT4CACABQQRqIgsgCzUCAEIKfiAhQiCIfCIhPgIAIAFBCGoiCyALNQIAQgp+ICFCIIh8IiE+AgAgAUEMaiILIAs1AgBCCn4gIUIgiHwiIj4CACAiQiCIISEgAUEQaiEBIAZBfGoiBg0ACwsCQCAKRQ0AIApBAnQhBgNAIAEgATUCAEIKfiAhfCIiPgIAIAFBBGohASAiQiCIISEgBkF8aiIGDQALCyAiQoCAgIAQVA0AIAxBKEYNDyAFQQxqIA1qICGnNgIAIAxBAWohDAsgBSAMNgKsASAbQQFqIRsgFCAUIAhJIgFqIRQgAQ0AC0EAIRAMEAsgGyADQaSbwQAQtQMACyAIIANLDQwCQCAIIBtGDQAgCCAbayIBRQ0AIAIgG2pBMCAB/AsACyAAIAc7AQggACAINgIEDA8LQShBKEGEicEAELUDAAtBACAMQShBhInBABDWAwALQQAgHEEoQYSJwQAQ1gMAC0HniMEAQRpBhInBABDQBAALQQAgHkEoQYSJwQAQ1gMAC0HniMEAQRpBhInBABDQBAALQQAgHEEoQYSJwQAQ1gMAC0HniMEAQRpBhInBABDQBAALQQAgDEEoQYSJwQAQ1gMAC0HniMEAQRpBhInBABDQBAALQQAgDEEoQYSJwQAQ1gMAC0EoQShBhInBABC1AwALIBsgCCADQbSbwQAQ1gMAC0EAIQgLAkACQAJAAkACQCAORQ0AIA5BAnQiCUF8aiIBQQJ2QQFqIgZBA3EhCgJAAkAgAUEMTw0AIAVBsAFqIQFCACEhDAELIAZB/P///wdxIQYgBUGwAWohAUIAISEDQCABIAE1AgBCBX4gIXwiIT4CACABQQRqIgsgCzUCAEIFfiAhQiCIfCIhPgIAIAFBCGoiCyALNQIAQgV+ICFCIIh8IiE+AgAgAUEMaiILIAs1AgBCBX4gIUIgiHwiIj4CACAiQiCIISEgAUEQaiEBIAZBfGoiBg0ACwsCQCAKRQ0AIApBAnQhBgNAIAEgATUCAEIFfiAhfCIiPgIAIAFBBGohASAiQiCIISEgBkF8aiIGDQALCwJAICJCgICAgBBaDQAgDiESDAELIA5BKEYNASAFQbABaiAJaiAhpzYCACAOQQFqIRILIAUgEjYC0AIgEiAMIBIgDEsbIgFBKU8NASABQQJ0IQEgBUEMakF8aiEKIAVBsAFqQXxqIQkCQAJAA0AgAUUNASAJIAFqIQYgCiABaiELIAFBfGohASALKAIAIgsgBigCACIGRg0ACyALIAZLIAsgBklrIQEMAQtBf0EAIAEbIQELAkACQAJAAkACQCABQf8BcQ4CAAEHC0EAIQEgEA0HIAhBf2oiASADTw0BIAIgAWotAABBAXFFDQYLIAggA0sNASACIAhqIQpBACEBIAIhBgNAIAggAUYNAyABQQFqIQEgBkF/aiIGIAhqIgstAABBOUYNAAsgCyALLQAAQQFqOgAAIAFBf2oiAUUNBSALQQFqQTAgAfwLAAwFCyABIANB9JrBABC1AwALQQAgCCADQZSbwQAQ1gMAC0ExIQECQCAQDQAgAkExOgAAQTAhASAIQX9qIgZFDQAgAkEBakEwIAb8CwALIAdBAWohByATDQIgCCADTw0CIAogAToAACAIQQFqIQgMAgtBKEEoQYSJwQAQtQMAC0EAIAFBKEGEicEAENYDAAsgCCADSw0CIAghAQsgACAHOwEIIAAgATYCBAsgACACNgIAIAVBwAZqJAAPC0EAIAggA0GEm8EAENYDAAvXJAIJfwF+IwBBEGsiASQAAkACQAJAAkACQAJAIABB9QFJDQACQCAAQcz/e00NAEEAIQAMBgsgAEELaiICQXhxIQNBACgC1LJBIgRFDQRBHyEFAkAgAEH0//8HSw0AIANBJiACQQh2ZyIAa3ZBAXEgAEEBdGtBPmohBQtBACADayECAkAgBUECdEG4r8EAaigCACIGDQBBACEHQQAhAAwCC0EAIQcgA0EAQRkgBUEBdmsgBUEfRht0IQhBACEAA0ACQCAGIgYoAgRBeHEiCSADSQ0AIAkgA2siCSACTw0AIAYhByAJIQIgCQ0AQQAhAiAGIQAgBiEHDAQLIAYoAhQiCSAAIAkgBiAIQR12QQRxaigCECIGRxsgACAJGyEAIAhBAXQhCCAGRQ0CDAALCwJAAkACQAJAAkACQEEAKALQskEiBkEQIABBC2pB+ANxIABBC0kbIgNBA3YiAnYiAEEDcUUNACAAQX9zQQFxIAJqIghBA3QiA0HIsMEAaiIAIANB0LDBAGooAgAiAigCCCIHRg0BIAcgADYCDCAAIAc2AggMAgsgA0EAKALYskFNDQgCQCAADQBBACgC1LJBIgBFDQkgAGhBAnRBuK/BAGooAgAiBigCBEF4cSADayECIAYhBwJAA0ACQCAHKAIQIgANACAHKAIUIgBFDQILIAAoAgRBeHEgA2siByACIAcgAkkiBxshAiAAIAYgBxshBiAAIQcMAAsLIAYoAhghBQJAAkACQCAGKAIMIgAgBkcNACAGQRRBECAGKAIUIgAbaigCACIHDQFBACEADAILIAYoAggiByAANgIMIAAgBzYCCAwBCyAGQRRqIAZBEGogABshCANAIAghCSAHIgBBFGogAEEQaiAAKAIUIgcbIQggAEEUQRAgBxtqKAIAIgcNAAsgCUEANgIACyAFRQ0FAkACQCAGIAYoAhxBAnRBuK/BAGoiBygCAEYNAAJAIAUoAhAgBkYNACAFIAA2AhQgAA0CDAgLIAUgADYCECAADQEMBwsgByAANgIAIABFDQULIAAgBTYCGAJAIAYoAhAiB0UNACAAIAc2AhAgByAANgIYCyAGKAIUIgdFDQUgACAHNgIUIAcgADYCGAwFCwJAAkAgACACdEECIAJ0IgBBACAAa3JxaCIJQQN0IgJByLDBAGoiByACQdCwwQBqKAIAIgAoAggiCEYNACAIIAc2AgwgByAINgIIDAELQQAgBkF+IAl3cTYC0LJBCyAAIANBA3I2AgQgACADaiIGIAIgA2siB0EBcjYCBCAAIAJqIAc2AgBBACgC2LJBIgJFDQJBACgC4LJBIQMCQAJAQQAoAtCyQSIIQQEgAkEDdnQiCXENAEEAIAggCXI2AtCyQSACQXhxQciwwQBqIgIhCAwBCyACQXhxIgJByLDBAGohCCACQdCwwQBqKAIAIQILIAggAzYCCCACIAM2AgwgAyAINgIMIAMgAjYCCAwCC0EAIAZBfiAId3E2AtCyQQsgAkEIaiEAIAIgA0EDcjYCBCACIANqIgMgAygCBEEBcjYCBAwHCyAAQQhqIQBBACAGNgLgskFBACAHNgLYskEMBgtBAEEAKALUskFBfiAGKAIcd3E2AtSyQQsCQAJAAkAgAkEQSQ0AIAYgA0EDcjYCBCAGIANqIgcgAkEBcjYCBCAHIAJqIAI2AgBBACgC2LJBIghFDQFBACgC4LJBIQACQAJAQQAoAtCyQSIJQQEgCEEDdnQiBXENAEEAIAkgBXI2AtCyQSAIQXhxQciwwQBqIgghCQwBCyAIQXhxIghByLDBAGohCSAIQdCwwQBqKAIAIQgLIAkgADYCCCAIIAA2AgwgACAJNgIMIAAgCDYCCAwBCyAGIAIgA2oiAEEDcjYCBCAGIABqIgAgACgCBEEBcjYCBAwBC0EAIAc2AuCyQUEAIAI2AtiyQQsgBkEIaiIARQ0DDAQLAkAgACAHcg0AQQAhB0ECIAV0IgBBACAAa3IgBHEiAEUNAyAAaEECdEG4r8EAaigCACEACyAARQ0BCwNAIAAoAgRBeHEiBiADayIIIAIgCCACSSIJGyEFIAYgA0khCCAAIAcgCRshCQJAIAAoAhAiBg0AIAAoAhQhBgsgAiAFIAgbIQIgByAJIAgbIQcgBiEAIAYNAAsLIAdFDQACQEEAKALYskEiACADSQ0AIAIgACADa08NAQsgBygCGCEFAkACQAJAIAcoAgwiACAHRw0AIAdBFEEQIAcoAhQiABtqKAIAIgYNAUEAIQAMAgsgBygCCCIGIAA2AgwgACAGNgIIDAELIAdBFGogB0EQaiAAGyEIA0AgCCEJIAYiAEEUaiAAQRBqIAAoAhQiBhshCCAAQRRBECAGG2ooAgAiBg0ACyAJQQA2AgALAkAgBUUNAAJAAkACQCAHIAcoAhxBAnRBuK/BAGoiBigCAEYNAAJAIAUoAhAgB0YNACAFIAA2AhQgAA0CDAQLIAUgADYCECAADQEMAwsgBiAANgIAIABFDQELIAAgBTYCGAJAIAcoAhAiBkUNACAAIAY2AhAgBiAANgIYCyAHKAIUIgZFDQEgACAGNgIUIAYgADYCGAwBC0EAQQAoAtSyQUF+IAcoAhx3cTYC1LJBCwJAAkAgAkEQSQ0AIAcgA0EDcjYCBCAHIANqIgAgAkEBcjYCBCAAIAJqIAI2AgACQCACQYACSQ0AIAAgAhDEAQwCCwJAAkBBACgC0LJBIgZBASACQQN2dCIIcQ0AQQAgBiAIcjYC0LJBIAJB+AFxQciwwQBqIgIhBgwBCyACQfgBcSICQciwwQBqIQYgAkHQsMEAaigCACECCyAGIAA2AgggAiAANgIMIAAgBjYCDCAAIAI2AggMAQsgByACIANqIgBBA3I2AgQgByAAaiIAIAAoAgRBAXI2AgQLIAdBCGoiAA0BCwJAAkACQAJAQQAoAtiyQSIAIANPDQACQEEAKALcskEiACADSw0AIAFBBGpB/LLBACADQa+ABGpBgIB8cRCVAwJAIAEoAgQiBg0AQQAhAAwGCyABKAIMIQVBAEEAKALoskEgASgCCCIJaiIANgLoskFBACAAQQAoAuyyQSICIAAgAksbNgLsskECQAJAAkACQAJAQQAoAuSyQSICRQ0AQbiwwQAhAANAIAYgACgCACIHIAAoAgQiCGpGDQIgACgCCCIADQAMAwsLAkACQEEAKAL0skEiAEUNACAGIABPDQELQQAgBjYC9LJBC0EAQf8fNgL4skFBACAFNgLEsEFBACAJNgK8sEFBACAGNgK4sEFBAEHIsMEANgLUsEFBAEHQsMEANgLcsEFBAEHIsMEANgLQsEFBAEHYsMEANgLksEFBAEHQsMEANgLYsEFBAEHgsMEANgLssEFBAEHYsMEANgLgsEFBAEHosMEANgL0sEFBAEHgsMEANgLosEFBAEHwsMEANgL8sEFBAEHosMEANgLwsEFBAEH4sMEANgKEsUFBAEHwsMEANgL4sEFBAEGAscEANgKMsUFBAEH4sMEANgKAsUFBAEGIscEANgKUsUFBAEGAscEANgKIsUFBAEGIscEANgKQsUFBAEGQscEANgKcsUFBAEGQscEANgKYsUFBAEGYscEANgKksUFBAEGYscEANgKgsUFBAEGgscEANgKssUFBAEGgscEANgKosUFBAEGoscEANgK0sUFBAEGoscEANgKwsUFBAEGwscEANgK8sUFBAEGwscEANgK4sUFBAEG4scEANgLEsUFBAEG4scEANgLAsUFBAEHAscEANgLMsUFBAEHAscEANgLIsUFBAEHIscEANgLUsUFBAEHQscEANgLcsUFBAEHIscEANgLQsUFBAEHYscEANgLksUFBAEHQscEANgLYsUFBAEHgscEANgLssUFBAEHYscEANgLgsUFBAEHoscEANgL0sUFBAEHgscEANgLosUFBAEHwscEANgL8sUFBAEHoscEANgLwsUFBAEH4scEANgKEskFBAEHwscEANgL4sUFBAEGAssEANgKMskFBAEH4scEANgKAskFBAEGIssEANgKUskFBAEGAssEANgKIskFBAEGQssEANgKcskFBAEGIssEANgKQskFBAEGYssEANgKkskFBAEGQssEANgKYskFBAEGgssEANgKsskFBAEGYssEANgKgskFBAEGossEANgK0skFBAEGgssEANgKoskFBAEGwssEANgK8skFBAEGossEANgKwskFBAEG4ssEANgLEskFBAEGwssEANgK4skFBAEHAssEANgLMskFBAEG4ssEANgLA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C0IdiHwiC6dB/////wFxNgKMBCACIAYgEEIUhnwgC0IdiHwiC6dB/////wFxNgKQBCACIAUgEUIUhnwgC0IdiHwiC6dB/////wFxNgKUBCACIAQgDEIUhnwgC0IdiHwiDEIdiD4CnAQgAiAMp0H/////AXE2ApgEIAAgAkH8A2pBqOPAABCSAiACQaAEaiQAC9wXAhB/E34jACIDIQQgA0GAEGtBQHEiBSQAAkBBgAhFIgMNACAFQYAIaiABQYAI/AoAAAsgBUGACGogAhCLAwJAIAMNACAFIAVBgAhqQYAI/AoAAAsCQCADDQAgBUGACGogBUGACPwKAAALQQAhAgNAIAVBgAhqIAJqIgMgA0E4aiIBKQMAIhMgA0EYaiIGKQMAIhR8IBRCAYZC/v///x+DIBNC/////w+DfnwiFCADQfgAaiIHKQMAhUIgiSIVIANB2ABqIggpAwAiFnwgFUL/////D4MgFkIBhkL+////H4N+fCIWIBOFQiiJIhMgFHwgE0L/////D4MgFEIBhkL+////H4N+fCIUIBWFQjCJIhUgA0EoaiIJKQMAIhcgA0EIaiIKKQMAIhh8IBhCAYZC/v///x+DIBdC/////w+DfnwiGCADQegAaiILKQMAhUIgiSIZIANByABqIgwpAwAiGnwgGUL/////D4MgGkIBhkL+////H4N+fCIaIBeFQiiJIhcgGHwgF0L/////D4MgGEIBhkL+////H4N+fCIYIBmFQjCJIhkgGnwgGUL/////D4MgGkIBhkL+////H4N+fCIaIBeFQgGJIhcgA0EgaiINKQMAIhsgAykDACIcfCAcQgGGQv7///8fgyAbQv////8Pg358IhwgA0HgAGoiDikDAIVCIIkiHSADQcAAaiIPKQMAIh58IB1C/////w+DIB5CAYZC/v///x+DfnwiHiAbhUIoiSIbIBx8IBtC/////w+DIBxCAYZC/v///x+DfnwiHHwgF0L/////D4MgHEIBhkL+////H4N+fCIfhUIgiSIgIANBMGoiECkDACIhIANBEGoiESkDACIifCAiQgGGQv7///8fgyAhQv////8Pg358IiIgA0HwAGoiEikDAIVCIIkiIyADQdAAaiIDKQMAIiR8ICNC/////w+DICRCAYZC/v///x+DfnwiJCAhhUIoiSIhICJ8ICFC/////w+DICJCAYZC/v///x+DfnwiIiAjhUIwiSIjICR8ICNC/////w+DICRCAYZC/v///x+DfnwiJHwgIEL/////D4MgJEIBhkL+////H4N+fCIlIBeFQiiJIhcgH3wgF0L/////D4MgH0IBhkL+////H4N+fCIfNwMAIAcgHyAghUIwiSIfNwMAIAMgHyAlfCAfQv////8PgyAlQgGGQv7///8fg358Ih83AwAgCSAfIBeFQgGJNwMAIA4gJCAhhUIBiSIXIBh8IBdC/////w+DIBhCAYZC/v///x+DfnwiGCAcIB2FQjCJIhyFQiCJIh0gFSAWfCAVQv////8PgyAWQgGGQv7///8fg358IhV8IB1CAYZC/v///x+DIBVC/////w+DfnwiFiAXhUIoiSIXIBh8IBdC/////w+DIBhCAYZC/v///x+DfnwiHyAdhUIwiSIYNwMAIAogHzcDACAIIBggFnwgGEL/////D4MgFkIBhkL+////H4N+fCIWNwMAIBAgFiAXhUIBiTcDACALIBUgE4VCAYkiEyAifCATQv////8PgyAiQgGGQv7///8fg358IhUgGYVCIIkiFiAcIB58IBxC/////w+DIB5CAYZC/v///x+DfnwiF3wgFkL/////D4MgF0IBhkL+////H4N+fCIYIBOFQiiJIhMgFXwgE0L/////D4MgFUIBhkL+////H4N+fCIZIBaFQjCJIhU3AwAgESAZNwMAIA8gFSAYfCAVQv////8PgyAYQgGGQv7///8fg358IhU3AwAgASAVIBOFQgGJNwMAIBIgFCAXIBuFQgGJIhN8IBRC/////w+DIBNCAYZC/v///x+DfnwiFCAjhUIgiSIVIBp8IBVC/////w+DIBpCAYZC/v///x+DfnwiFiAThUIoiSITIBR8IBNC/////w+DIBRCAYZC/v///x+DfnwiFyAVhUIwiSIUNwMAIAYgFzcDACAMIBQgFnwgFEL/////D4MgFkIBhkL+////H4N+fCIUNwMAIA0gFCAThUIBiTcDACACQYABaiICQYAIRw0AC0GAfyECA0AgBUGACGogAmoiA0GAAWoiASADQYgEaiIGKQMAIhMgA0GIAmoiBykDACIUfCAUQgGGQv7///8fgyATQv////8Pg358IhQgA0GICGoiCCkDAIVCIIkiFSADQYgGaiIJKQMAIhZ8IBVC/////w+DIBZCAYZC/v///x+DfnwiFiAThUIoiSITIBR8IBNC/////w+DIBRCAYZC/v///x+DfnwiFCAVhUIwiSIVIANBiANqIgopAwAiFyADQYgBaiILKQMAIhh8IBhCAYZC/v///x+DIBdC/////w+DfnwiGCADQYgHaiIMKQMAhUIgiSIZIANBiAVqIg0pAwAiGnwgGUL/////D4MgGkIBhkL+////H4N+fCIaIBeFQiiJIhcgGHwgF0L/////D4MgGEIBhkL+////H4N+fCIYIBmFQjCJIhkgGnwgGUL/////D4MgGkIBhkL+////H4N+fCIaIBeFQgGJIhcgA0GAA2oiDikDACIbIAEpAwAiHHwgHEIBhkL+////H4MgG0L/////D4N+fCIcIANBgAdqIgEpAwCFQiCJIh0gA0GABWoiDykDACIefCAdQv////8PgyAeQgGGQv7///8fg358Ih4gG4VCKIkiGyAcfCAbQv////8PgyAcQgGGQv7///8fg358Ihx8IBdC/////w+DIBxCAYZC/v///x+DfnwiH4VCIIkiICADQYAEaiIQKQMAIiEgA0GAAmoiESkDACIifCAiQgGGQv7///8fgyAhQv////8Pg358IiIgA0GACGoiEikDAIVCIIkiIyADQYAGaiIDKQMAIiR8ICNC/////w+DICRCAYZC/v///x+DfnwiJCAhhUIoiSIhICJ8ICFC/////w+DICJCAYZC/v///x+DfnwiIiAjhUIwiSIjICR8ICNC/////w+DICRCAYZC/v///x+DfnwiJHwgIEL/////D4MgJEIBhkL+////H4N+fCIlIBeFQiiJIhcgH3wgF0L/////D4MgH0IBhkL+////H4N+fCIfNwMAIAggHyAghUIwiSIfNwMAIAMgHyAlfCAfQv////8PgyAlQgGGQv7///8fg358Ih83AwAgCiAfIBeFQgGJNwMAIAEgJCAhhUIBiSIXIBh8IBdC/////w+DIBhCAYZC/v///x+DfnwiGCAcIB2FQjCJIhyFQiCJIh0gFSAWfCAVQv////8PgyAWQgGGQv7///8fg358IhV8IB1CAYZC/v///x+DIBVC/////w+DfnwiFiAXhUIoiSIXIBh8IBdC/////w+DIBhCAYZC/v///x+DfnwiHyAdhUIwiSIYNwMAIAsgHzcDACAJIBggFnwgGEL/////D4MgFkIBhkL+////H4N+fCIWNwMAIBAgFiAXhUIBiTcDACAMIBUgE4VCAYkiEyAifCATQv////8PgyAiQgGGQv7///8fg358IhUgGYVCIIkiFiAcIB58IBxC/////w+DIB5CAYZC/v///x+DfnwiF3wgFkL/////D4MgF0IBhkL+////H4N+fCIYIBOFQiiJIhMgFXwgE0L/////D4MgFUIBhkL+////H4N+fCIZIBaFQjCJIhU3AwAgESAZNwMAIA8gFSAYfCAVQv////8PgyAYQgGGQv7///8fg358IhU3AwAgBiAVIBOFQgGJNwMAIBIgFCAXIBuFQgGJIhN8IBRC/////w+DIBNCAYZC/v///x+DfnwiFCAjhUIgiSIVIBp8IBVC/////w+DIBpCAYZC/v///x+DfnwiFiAThUIoiSITIBR8IBNC/////w+DIBRCAYZC/v///x+DfnwiFyAVhUIwiSIUNwMAIAcgFzcDACANIBQgFnwgFEL/////D4MgFkIBhkL+////H4N+fCIUNwMAIA4gFCAThUIBiTcDACACQRBqIgINAAsgBUGACGogBRCLAwJAQYAIRQ0AIAAgBUGACGpBgAj8CgAACyAEJAALvRcCC38CfiMAQeAbayICJAAgAkGoFWpBCGogAUEIaigCADYCACACIAEpAgA3A6gVIAJB7AxqIAJBqBVqENgBIAJB8AxqIQMCQAJAAkACQAJAAkACQAJAAkAgAigC7AxBAUcNACACQYAHakEYaiADQRhqKAIANgIAIAJBgAdqQRBqIANBEGopAgA3AwAgAkGAB2pBCGogA0EIaikCADcDACACIAMpAgA3A4AHIAJBgAdqEMMBIQMgAEGAgICAeDYCACAAIAM2AgQgASgCJEGAgICAeEYNASABQSRqIgMQhwYgAxDMBQwBCwJAQaADRSIEDQAgAkGAB2ogA0GgA/wKAAALAkAgBA0AIAJBDGogAkGAB2pBoAP8CgAACyABQSRqIQNBgICAgHghBAJAAkAgASgCJCIFQYCAgIB4Rg0AIAJBuANqQQhqIANBCGooAgA2AgAgAiADKQIANwO4AyACQewMakGIr8AAQRIgAkG4A2oQ9AIgAi0A7AwiBEEHRw0BIAIpAvQMIQ0gAigC8AwhBAsgAiAENgKsAyACIA03ArADIAJBqBVqQQhqIAFBFGooAgA2AgAgAiABKQIMNwOoFSACQewMakHsrsAAQREgAkGoFWoQ9AICQCACLQDsDCIGQQdGDQAgAkHsA2pBGGogAkHsDGpBGGooAgA2AgAgAiACKQDtDDcDgAcgAiACQewMakEIaikAADcAhwcgAkHsA2pBCGogAikAhwc3AAAgAiACKQL8DDcC/AMgAiAGOgDsAyACIAIpA4AHNwDtAyACQewDahDDASEEIABBgICAgHg2AgAgACAENgIEDAYLIAJB4ANqQQhqIAJB+AxqKAIANgIAIAIgAikC8Aw3A+ADAkAgBEGAgICAeEcNAEECIQQMBAsgAkHsDGogDacgDUIgiKcQjQIgAkGAB2pBCGoiBiACQewMakEIaikCADcDACACQYAHakEQaiIHIAJB7AxqQRBqKAIANgIAIAIgAikC7Aw3A4AHIAItAMwOIgRBAkYNAiACKAKEDSEIIAIoAoANIQkCQEHEAUUNACACQewEaiACQYgNakHEAfwKAAALAkBB4wBFDQAgAkGJBGogAkHNDmpB4wD8CgAACyACQbAGakEIaiACQYAHakEIaikDADcDACACQbAGakEQaiACQYAHakEQaigCADYCACACIAIpA4AHIg03A6gVIAIgDTcDsAYMAwsgAkHEA2pBGGogAkHsDGpBGGooAgA2AgAgAiACLQDvDDoAxwMgAiACLwDtDDsAxQMgAiACKQL8DDcC1AMgAiACKQL0DDcCzAMgAiACKALwDDYCyAMgAiAEOgDEAyACQcQDahDDASEDIABBgICAgHg2AgAgACADNgIEIAIgAkHMAGo2AvAMIAIgAkEMajYC7AwgAkHsDGoQ7wMgAkHsAWoQ/gULIAFBDGohAwwECyACQagVakEIaiAGKQMAIg03AwAgAkGoFWpBEGogBygCACIENgIAIAJByAZqQQhqIA03AwAgAkHIBmpBEGogBDYCACACIAIpA4AHIg03A6gVIAIgDTcDyAYgAkEeNgLgBiACQYa2wAA2AtwGIAJByAZqEMMBIQQgAEGAgICAeDYCACAAIAQ2AgQMAQtBACEHQQAhCgJAIAEoAjAiC0GBgICAeEYNAEEAIAEoAjQgC0GAgICAeEYbIQdBACABKAJAIAEoAjxBgICAgHhGGyEKIAEoAkQhDCABKAI4IQYLIAIgDDYC9AYgAiAKNgLwBiACIAY2AuwGIAIgBzYC6AYgAkEANgL4BiACQbASakEQaiACQbAGakEQaigCADYCACACQbASakEIaiACQbAGakEIaikDADcDACACIAIpA7AGNwOwEiACIAg2AsgSIAIgCTYCxBICQEHEAUUNACACQcwSaiACQewEakHEAfwKAAALIAIgBDoAkBQgAkGRFGohBgJAQeMARQ0AIAYgAkGJBGpB4wD8CgAACyACIAIpAuQDNwLUGyACQagVaiACQdQbahCiASACQZAVakEIaiACQbQVaikCADcDACACQZAVakEQaiACQbwVaigCADYCACACIAIpAqwVNwOQFQJAIAIoAqgVRQ0AIAJB+BRqQQhqIAJBkBVqQQhqKQMAIg03AwAgAkH4FGpBEGogAkGQFWpBEGooAgAiBzYCACACQZAYakEIaiANNwMAIAJBkBhqQRBqIAc2AgAgAiACKQOQFSINNwP4FCACIA03A5AYIAJBHTYCqBggAkGktsAANgKkGCACQZAYahDDASEHIABBgICAgHg2AgAgACAHNgIEIARBAkYNASACIAJB8BJqNgKsFSACIAJBsBJqNgKoFSACQagVahDvAyACQQA6AJAUIAIgAkGxFGoiADYCrBUgAiAGNgKoFSACQagVahDvAyACIAJB8RRqNgKsFSACIAA2AqgVIAJBqBVqEO8DDAELIAIpAsAVIQ0CQEHEAkUNACACQcwYaiACQcgVakHEAvwKAAALIAJB+BRqQRBqIAJBkBVqQRBqKAIAIgQ2AgAgAkH4FGpBCGogAkGQFWpBCGopAwAiDjcDACACQbAYakEIaiAONwMAIAJBsBhqQRBqIAQ2AgAgAiACKQOQFSIONwP4FCACIA03AsQYIAIgDjcDsBggAkHsDGogAkHfG2ogAkEMaiACQbASaiACQbAYaiABKAIcIAEoAiAgAkHoBmoQ+gEgAkHwDGohBAJAIAIoAuwMQQFHDQAgAkHADGpBCGogBEEIaikCACINNwMAIAJBwAxqQRBqIARBEGooAgAiBjYCACACQZAbakEIaiANNwMAIAJBkBtqQRBqIAY2AgAgAiAEKQIAIg03A8AMIAJBwbbAADYCpBsgAkESNgKoGyACIA03A5AbIAJBkBtqEMMBIQQgAEGAgICAeDYCACAAIAQ2AgQMAQsgAkHYDGpBEGoiAyAE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A0cNACACQeAAahDDASEDIABBgICAgHg2AgAgACADNgIEIAFBEGoiABCHBiAAEMwFIAFBHGoiABCHBiAAEMwFDAELAkBBNEUNACACQQxqQSBqIAJBjAhqQSBqQTT8CgAACyACQQxqQQxqIAJB4ABqQQhqKQMANwIAIAJBDGpBFGogAkHgAGpBEGopAwA3AgAgAkEoaiACQeAAakEYaigCADYCACACIAM2AgwgAiACKQNgNwIQIAJBoA5qQQhqIgQgAUEkaigCADYCACACIAEpAhw3A6AOIAJBjAhqQYKywABBFCACQaAOahD0AiACLQCMCCIFQQdGDQEgAkGMAWpBGGogAkGMCGpBGGooAgA2AgAgAiACKQCNCDcDuAMgAiACQYwIakEIaikAADcAvwMgAkGMAWpBCGogAikAvwM3AAAgAiACKQKcCDcCnAEgAiAFOgCMASACIAIpA7gDNwCNASACQYwBahDDASEDIABBgICAgHg2AgAgACADNgIEIAFBEGoiABCHBiAAEMwFC0EoIQAMAQsgAkGAAWpBCGogAkGMCGpBDGooAgA2AgAgAiACKQKQCDcDgAEgBCABQTBqKAIANgIAIAIgASkCKDcDoA4gAkGMCGpB2LHAAEEXIAJBoA5qEPQCAkACQCACLQCMCCIEQQdGDQAgAkG0AWpBGGogAkGMCGpBGGooAgA2AgAgAiACKQCNCDcDuAMgAiACQYwIakEIaikAADcAvwMgAkG0AWpBCGogAikAvwM3AAAgAiACKQKcCDcCxAEgAiAEOgC0ASACIAIpA7gDNwC1ASACQbQBahDDASEDIABBgICAgHg2AgAgACADNgIEDAELIAJBqAFqQQhqIAJBmAhqIgQoAgAiBTYCACACIAIpApAINwOoASACQYwIaiACKAKsASAFELIBIAJBuANqQQhqIgUgBCkCADcDACACQbgDakEQaiIEIAJBoAhqKAIANgIAIAIgAikCkAg3A7gDAkACQCACKAKMCEEBRw0AIAJBoA5qQQhqIAUpAwAiDTcDACACQaAOakEQaiAEKAIAIgM2AgAgAkHQAWpBCGogDTcDACACQdABakEQaiADNgIAIAIgAikDuAMiDTcDoA4gAiANNwPQASACQSM2AugBIAJBtb3AADYC5AEgAkHQAWoQwwEhAyAAQYCAgIB4NgIAIAAgAzYCBAwBCyACKAKoCCEGIAIoAqQIIQcCQEGkAUUNACACQewBaiACQawIakGkAfwKAAALIAJBoA5qQRBqIAJBuANqQRBqKAIAIgQ2AgAgAkGQA2pBCGoiCCACQbgDakEIaikDADcDACACQZADakEQaiIJIAQ2AgAgAiACKQO4AzcDkANBACEFQQAhCgJAIAEoAjQiC0GBgICAeEYNAEEAIAEoAjggC0GAgICAeEYbIQVBACABKAJEIAEoAkBBgICAgHhGGyEKIAEoAkghDCABKAI8IQQLIAIgDDYCsAMgAiAKNgKsAyACIAQ2AqgDIAIgBTYCpAMgAkEAIAJBDGogA0ECRhs2ArQDIAJBsAxqQRBqIAkoAgA2AgAgAkGwDGpBCGogCCkDADcDACACIAIpA5ADNwOwDCACIAY2AsgMIAIgBzYCxAwCQEGkAUUNACACQcwMaiACQewBakGkAfwKAAALIAEoAhghAyABKAIUIQQgAkGgDmogAigChAEgAigCiAEQnwEgAkGIDmpBCGogAkGsDmopAgA3AwAgAkGIDmpBEGogAkG0DmooAgA2AgAgAiACKQKkDjcDiA4CQCACKAKgDkEBRw0AIAJB8A1qQQhqIAJBiA5qQQhqKQMAIg03AwAgAkHwDWpBEGogAkGIDmpBEGooAgAiAzYCACACQegQakEIaiANNwMAIAJB6BBqQRBqIAM2AgAgAiACKQOIDiINNwPwDSACIA03A+gQIAJB2L3AADYC/BAgAkEgNgKAESACQegQahDDASEDIABBgICAgHg2AgAgACADNgIEIAJBsAxqEPwDIAJBsAxqQSBqEIMDDAELIAIpArgOIQ0CQEGkAkUNACACQaQRaiACQcAOakGkAvwKAAALIAJB8A1qQRBqIAJBiA5qQRBqKAIAIgU2AgAgAkHwDWpBCGogAkGIDmpBCGopAwAiDjcDACACQYgRakEIaiAONwMAIAJBiBFqQRBqIAU2AgAgAiACKQOIDiIONwPwDSACIA03ApwRIAIgDjcDiBEgAkGMCGogAkGwDGogAkHPFWogBCADIAJBiBFqIAJBpANqEF4gAkH4B2pBCGoiAyACQYwIakEIaikCADcDACACQfgHakEQaiIEIAJBjAhqQRBqKAIANgIAIAIgAikCjAg3A/gHAkAgAi0AzAsiBUECRw0AIAJB4AdqQQhqIAMpAwAiDTcDACACQeAHakEQaiAEKAIAIgM2AgAgAkHIE2pBCGogDTcDACACQcgTakEQaiADNgIAIAIgAikD+AciDTcD4AcgAiANNwPIEyACQRo2AuATIAJB+L3AADYC3BMgAkHIE2oQwwEhAyAAQYCAgIB4NgIAIAAgAzYCBAwBCyACKQKgCCENAkBBpANFDQAgAkG4A2pBHGogAkGMCGpBHGpBpAP8CgAACwJAQeMARQ0AIAJBuANqQcEDaiACQYwIakHBA2pB4wD8CgAACyACQeAHakEQaiACQfgHakEQaigCACIDNgIAIAJB4AdqQQhqIAJB+AdqQQhqKQMAIg43AwAgAkG4A2pBCGogDjcDACACQbgDakEQaiADNgIAIAIgAikD+AciDjcD4AcgAiAFOgD4BiACIA03AswDIAIgDjcDuAMgAkHoE2ogAkGYBWoiBBDtAiACQagVakGFs8AAIAJB6BNqQcABEIACAkBBwABFDQAgAkGMCGogAkG4A2pBwAD8CgAACyABQRBqIQMgAkG0FWpBhbPAACACQYwIakHAABCAAiACQYwIaiACQbgDakHAAGoQ4QUgAkHAFWpBhbPAACACQYwIakEgEIACAkBBJEUNACAAIAJBqBVqQST8CgAACyABQTRqIQEgAiACQdgFajYCkAggAiAENgKMCCACQYwIahDvAyACQfgGahCvAyACQagBahCHBiACQagBahDMBSACQYABahCHBiACQYABahDMBSADEIcGIAMQzAUMAwsgAkGoAWoQhwYgAkGoAWoQzAULIAJBgAFqEIcGIAJBgAFqEMwFQRAhAAsgASAAaiIAEIcGIAAQzAUgAUE0aiEBCyABELEEIAJB0BVqJAAL4BICBX8CfiMAQYASayIDJAAgA0EgNgIcIAMgAUHgBGo2AhggA0EgNgIUIAMgAjYCECADQSA2AgwgAyABQcAEajYCCCADQoCAgIAwNwIAIAFB8ABqIQQgA0HgBmpB0ABqIQICQEGAAUUNACACIARBgAH8CgAACyADIAEtAPABOgCwCCABQSBqIQUCQEHQAEUNACADQeAGaiAFQdAA/AoAAAsgA0HgCmoQ4QQgA0HgBmogAiADQeAKahBzAkBBwABFDQAgA0HgCWogA0HgCmpBwAD8CgAACyADQbAEaiADIANB4AlqQcAAEFQCQAJAIAMtALAEDQACQEHAAUUiAg0AIANBwAFqIANBsARqQQFyQcAB/AoAAAsCQCACDQAgAyADQcABakHAAfwKAAALIANBsARqIANBwABqQcAAEFdBACECA0AgA0GwBGogAmoiBiAGLQAAQTZzOgAAIAJBAWoiAkGAAUcNAAsCQEHAAEUNACADQeAKakGAx8AAQcAA/AoAAAsgA0IANwOoCyADQgE3A6ALIANB4ApqIANBsARqQQEQxAVBACECA0AgA0GwBGogAmoiBiAGLQAAQeoAczoAACACQQFqIgJBgAFHDQALAkBBwABFIgcNACADQcABakGAx8AAQcAA/AoAAAsgA0IANwOIAiADQgE3A4ACIANBwAFqIANBsARqQQEQxAUgA0HgBmpB0ABqIQICQEHQAEUiBg0AIAIgA0HAAWpB0AD8CgAACwJAIAYNACADQeAGaiADQeAKakHQAPwKAAALIANB4AxqQaABahCZBQJAQaABRQ0AIANB4AxqIANB4AZqQaAB/AoAAAsCQEGwAkUNACADQcABaiADQeAMakGwAvwKAAALAkBBgAFFDQAgAiAEQYAB/AoAAAsgAyABLQDwAToAsAgCQCAGDQAgA0HgBmogBUHQAPwKAAALIANBsARqEOEEIANB4AZqIAIgA0GwBGoQcwJAIAcNACADQeAKaiADQbAEakHAAPwKAAALIANBwAFqQaABaiEGAkACQCADLQDgAyICQT9LDQAgBiACakHAACADQeAKakHAAEG8xsAAEIgEIAJBwAByIQIMAQsgBiACakGAASACayIHIANB4ApqIAdBnMbAABCIBCADIAMpA4ACQgF8Igg3A4ACIAMgAykDiAIgCFCtfDcDiAIgA0HAAWogBkEBEMQFIAYgAkFAaiICIANB4ApqIAdqIAJBrMbAABCIBAsgAyACOgDgAwJAQbACRQ0AIANB4AZqIANBwAFqQbAC/AoAAAsgA0HgCmoQ4QQgA0GwBGoQ4QQgA0HgBmogA0GACGoiAiADQbAEahBzIANBADoAgAkgAkHAACADQbAEakHAAEG8xsAAEIgEIANBwAA6AIAJIANBsAdqIAIgA0HgCmoQcwJAQcAARQ0AIANB8ANqIANB4ApqQcAA/AoAAAsCQAJAIAEtAPABIgJBP0sNACAEIAJqQcAAIANB8ANqQcAAQbzGwAAQiAQgAkHAAHIhAgwBCyAE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QesKaiACQe8Mai0AADoAACACIAIpAN8MNwDbCiACLwHcDCEDIAItAN4MIQQgAikC8AwhBgJAQYQBRQ0AIAJB9ApqIAJB+AxqQYQB/AoAAAsgAiAGNwLsCiACIAQ6ANoKIAIgAzsB2AogAkHEBmogAiACQdgKaiABKAIQIAEoAhQQ2QEgAkHIBmohAyACKALEBkEBRw0BIAJBkApqQQhqIANBCGopAgAiBjcDACACQZAKakEQaiADQRBqKAIAIgQ2AgAgAkH4C2pBCGogBjcDACACQfgLakEQaiAENgIAIAIgAykCACIGNwOQCiACQbG+wAA2AowMIAJBGTYCkAwgAiAGNwP4CyACQfgLahDDASEDIABBgICAgHg2AgAgACADNgIECyACQegJahCHBiACQegJahDMBQwBCyACQagKakEQaiIEIANBEGooAgA2AgAgAkGoCmpBCGoiBSADQQhqKQIANwMAIAIgAykCADcDqAogAikC3AYhBgJAQaQCRQ0AIAJBvANqIAJB5AZqQaQC/AoAAAsgAkGgA2pBCGogBSkDADcDACACQaADakEQaiAEKAIANgIAIAIgAikDqAoiBzcDkAogAiAGNwK0AyACIAc3A6ADAkBBoAFFDQAgAkHEBmogAkGgA2pBoAH8CgAACyACQdgMaiACQcQGahDkBSACQcQGaiACQaADakGgAWoQ4QUgAkGQDWogAkHcBmopAAA3AAAgAkGIDWogAkHEBmpBEGopAAA3AAAgAkGADWogAkHEBmpBCGopAAA3AAAgAiACKQDEBjcA+AwCQEHAAEUNACACQZgMaiACQdgMakHAAPwKAAALIABBhbPAACACQZgMakHAABCAAiACQaADahCDAyACQegJahCHBiACQegJahDMBSACIAJBwABqNgLIBiACIAI2AsQGIAJBxAZqEO8DIAJB4AFqEP4FIAFBDGohAQwBCyACIAJBwABqNgLIBiACIAI2AsQGIAJBxAZqEO8DIAJB4AFqEP4FIAFBDGohAQsgARCHBiABEMwFIAJBgA5qJAALwAoCBH8BfiMAQbAKayIEJAAgBBDhBCAEQcAAahDhBCAEQdMDakEAKADMxUA2AAAgBEHIA2ogAUEZaikAADcDACAEQcADaiABQRFqKQAANwMAIARBuANqIAFBCWopAAA3AwAgBEEAKADJxUA2AtAD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AUH/AHMiBkUNACADQQFqQQAgBvwLAAsgAUHwAHFB8ABGDQAgAkHwAmpBECACQfAEakEQQeDAwAAQiAQgAkGwAWogBEEBEMQFDAELIAJBsAFqIARBARDEBSACQZAKahDgBCACQYALakEQIAJB8ARqQRBB8MDAABCIBCACQbABaiACQZAKakEBEMQFCyACQQA6AIADIAJCwICAgIABNwL8BCACQQA2AvQEIAIgAkGwCGpBwABqNgLwBCACIAJBsAhqNgL4BCACQZAKaiACQfAEaiACQbABaiAFEO4CAkAgAigCrAoiASACKAKwCk8NAANAIAIgAUEBajYCrAogAkEIaiACQZAKaiABEKwEIAIoAggiBEUNASACKAIMIQUgAiACKAKkCiABQQN0aikDACIHQjiGIAdCgP4Dg0IohoQgB0KAgPwHg0IYhiAHQoCAgPgPg0IIhoSEIAdCCIhCgICA+A+DIAdCGIhCgID8B4OEIAdCKIhCgP4DgyAHQjiIhISENwPwBCAEIAUgAkHwBGpBCEHUwsAAEIgEIAIoAqwKIgEgAigCsApJDQALCyACQdAGakHAACACQbAIakHAAEGgwMAAEIgEAkBBwABFDQAgAEEBaiACQdAGakHAAPwKAAALIABBADoAAAsgAkGADGokAAv9BgIOfxp+IwBB0ABrIgMkACADIAEoAgwiBK0iESACKAIYIgWtIhJ+IAEoAgQiBq0iEyACKAIgIgetIhR+fCABKAIUIgitIhUgAigCECIJrSIWfnwgASgCHCIKrSIXIAIoAggiC60iGH58IAE1AgAiGSACKAIkIgytfnwgAjUCACIaIAEoAiQiDa0iG358IAE1AggiHCACKAIcIg6tIh1+fCABNQIQIh4gAigCFCIPrSIffnwgATUCGCIgIAIoAgwiEK0iIX58IAE1AiAiIiACKAIEIgKtIiN+fDcDSCADIBEgFn4gEyASfnwgFSAYfnwgGyAHQRNsrSIkfnwgGSAdfnwgGiAXfnwgHCAffnwgHiAhfnwgICAjfnwgIiAMQRNsrSIlfnw3AzggAyARIBh+IBMgFn58IBcgJH58IBsgBUETbK0iJn58IBkgH358IBogFX58IBwgIX58IB4gI358ICAgJX58ICIgDkETbK0iJ358NwMoIAMgBEEBdK0iKCAffiAGQQF0rSIpIB1+fCAIQQF0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BEEBakEAIAb8CwALIAJB8ABxQfAARg0AIANBsARqQRAgA0HQBWpBEEGAyMAAEIgEIANB8AJqIAFBARDEBQwBCyADQfACaiABQQEQxAUgA0HwBWoQ4AQgA0HgBmpBECADQdAFakEQQZDIwAAQiAQgA0HwAmogA0HwBWpBARDEBQsgA0EAOgDABCADQsCAgICAATcC3AUgA0EANgLUBSADIANBkAVqQcAAajYC0AUgAyADQZAFajYC2AUgA0HwBWogA0HQBWogA0HwAmogBRDuAgJAIAMoAowGIgIgAygCkAZPDQADQCADIAJBAWo2AowGIANBCGogA0HwBWogAhCsBCADKAIIIgFFDQEgAygCDCEFIAMgAygChAYgAkEDdGopAwAiB0I4hiAHQoD+A4NCKIaEIAdCgID8B4NCGIYgB0KAgID4D4NCCIaEhCAHQgiIQoCAgPgPgyAHQhiIQoCA/AeDhCAHQiiIQoD+A4MgB0I4iISEhDcD0AUgASAFIANB0AVqQQhBwMjAABCIBCADKAKMBiICIAMoApAGSQ0ACwsgA0HQBGpBwAAgA0GQBWpBwABBwMfAABCIBAJAQcAARQ0AIANB8AVqIANB0ARqQcAA/AoAAAsgA0EQakHAACADQfAFakHAAEGgyMAAEIgEDAELIANBEGogAiABIAJBsMjAABCIBAsCQEGAAUUNACAAIANBEGpBgAH8CgAACyADQfAGaiQAC4YIAgR/An4jAEHgEWsiAyQAIANB6ApqIAFBmAFqKQMANwMAIANB4ApqIAFBkAFqKQMANwMAIAMgAUGIAWopAwA3A9gKIAMgASkDgAE3A9AKAkBBgAFFDQAgA0GQEGpB0ABqIAFB8AFqQYAB/AoAAAsgAS0A8AIhBAJAQdAARQ0AIANBkBBqIAFBoAFqQdAA/AoAAAsCQEGgAUUiBQ0AIANB0AxqIAFBgANqQaAB/AoAAAsCQCAFDQAgA0HwDWogAUGgBGpBoAH8CgAACyADQagPaiABQdgFaikDADcDACADQaAPaiABQdAFaikDADcDACADQZgPaiABQcgFaikDADcDACADQbgPaiABQegFaikDADcDACADQcAPaiABQfAFaikDADcDACADQcgPaiABQfgFaikDADcDACADIAEpA8AFNwOQDyADIAEpA+AFNwOwDwJAQdABRQ0AIANB8ApqIANBkBBqQdAB/AoAAAsgAyAEOgDADCADQYwDaiADQdAKaiACEDsgAUGAAWohBUEBIQQgA0GQA2ohAgJAAkAgAygCjANBAUcNACADQQhqQRBqIAJBEGooAgAiBjYCACADQQhqQQhqIAJBCGopAgAiBzcDACADIAIpAgAiCDcDCCAAQRRqIAY2AgAgAEEMaiAHNwIAIAAgCDcCBAwBCwJAQYADRQ0AIANBCGogAkGAA/wKAAALAkBBgAFFIgINACADQdAKaiADQQhqQYACakGAAfwKAAALAkBBgAJFDQAgA0GQBmogA0EIakGAAvwKAAALAkBBoAFFDQAgA0GQBmpBgANqIAFBoAZqQaAB/AoAAAsgA0HICmogAUHYB2opAgA3AgAgA0HACmogAUHQB2opAgA3AgAgA0G4CmogAUHIB2opAgA3AgAgAyABKQLABzcCsAogA0GMA2pB2ABqIAFB2ABqKQAANwAAIANBjANqQdAAaiABQdAAaikAADcAACADQYwDakHIAGogAUHIAGopAAA3AAAgAyABKQBANwDMAwJAQcAARQ0AIANBjANqIAFBwAD8CgAACyADQYwDakH4AGogAUH4AGopAAA3AAAgA0GMA2pB8ABqIAFB8ABqKQAANwAAIANBjANqQegAaiABQegAaikAADcAACADIAEpAGA3AOwDAkAgAg0AIANBkAZqQYACaiADQYwDakGAAfwKAAALAkBBwARFDQAgA0HQCmpBgAFqIANBkAZqQcAE/AoAAAsCQEHABUUNACAAQQRqIANB0ApqQcAF/AoAAAtBACEECyABQYAGahD+BSABQaAGahCDAyADIAFB4AdqNgLUCiADIAFBwAdqNgLQCiADQdAKahDvAyAFENwCIAAgBDYCACADQeARaiQAC4oHAQ9/IwBBEGsiAyQAQQEhBAJAIAIoAgAiBUEiIAIoAgQiBigCECIHEQkADQACQAJAIAENAEEAIQhBACECDAELQQAhCUEAIAFrIQpBACEIIAEhCyAAIQwCQANAIAwgC2ohDUEAIQICQANAIAwgAmoiDi0AACIPQYF/akH/AXFBoQFJDQEgD0EiRg0BIA9B3ABGDQEgCyACQQFqIgJHDQALIAggC2ohCAwCCyAOQQFqIQwgCCACaiELAkACQAJAAkAgDiwAACIPQX9MDQAgD0H/AXEhDwwBCyAM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DCAKIAQgCK0gEIYgD3wgBq0gEIYgERCtAQwBCyABIANBiJfBABC1AwALIAVBEGokAAuXBwIDfwJ+IwBBsAxrIgMkACADQagBaiABIAIQzwICQAJAAkAgAy0AqAFBAUcNACAAIAMtAKkBOgAGIABBgAw7AQQgAEEBNgIADAELIANBrgpqIQQCQEGgAUUiBQ0AIAQgA0GsAWpBoAH8CgAACwJAIAUNACADQQhqIARBoAH8CgAACyACQR9NDQEgAyACQWBqNgIEIAMgAUEgajYCAAJAQaABRQ0AIANB6AVqIANBCGpBoAH8CgAACyADQawKaiADQcTRwABBDRCBAgJAIAMtAKwKQQFHDQAgA0GbB2ogA0GsCmpBFGooAgAiAjYAACADQZMHaiADQawKakEMaikCACIGNwAAIAMgAykCsAoiBzcAiwcgAEEUaiACNgAAIABBDGogBjcAACAAIAc3AAQgAEEBNgIAIANB6AVqEIMDDAELIANBoAdqIANBxQpqKQAANwMAIANBmAdqIANBvQpqKQAANwMAIANBkAdqIANBtQpqKQAANwMAIAMgAykArQo3A4gHIANBrApqIAMQcAJAIAMtAKwKQQFHDQAgA0G7B2ogA0GsCmpBFGooAgAiAjYAACADQbMHaiADQawKakEMaikCACIGNwAAIAMgAykCsAoiBzcAqwcgAEEUaiACNgAAIABBDGogBjcAACAAIAc3AAQgAEEBNgIAIANB6AVqEIMDDAELAkBBgAFFDQAgA0GoB2ogA0GsCmpBAXJBgAH8CgAACyADQawKaiADEH8gA0GwCmohAgJAIAMoAqwKQQFHDQAgA0GoCGpBEGogAkEQaigCACIBNgIAIANBqAhqQQhqIAJBCGopAgAiBjcDACADIAIpAgAiBzcDqAggAEEUaiABNgIAIABBDGogBjcCACAAIAc3AgQgAEEBNgIAIANB6AVqEIMDDAELAkBBgAJFIgENACADQagIaiACQYAC/AoAAAsCQCABDQAgA0GoAWogA0GoCGpBgAL8CgAACwJAQaABRQ0AIANBqARqIANB6AVqQaAB/AoAAAsgA0HgBWogA0GgB2opAwA3AgAgA0HYBWogA0GYB2opAwA3AgAgA0HQBWogA0GQB2opAwA3AgAgAyADKQOIBzcCyAUCQEGAAUUNACADQagBakGAAmogA0Go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ACkDQCIaIAFBB3YiAa18Ihs3A0AgACAAKQNIIBsgGlStfDcDSCAAIBcgARDEBQsgAyAYIBkgGEHgx8AAEIgECyAAIBg6AKACIBYhAQwACwv0BQIIfwF+AkACQCABDQAgBUEBaiEGIAAoAgghB0EtIQgMAQtBK0GAgMQAIAAoAggiB0GAgIABcSIBGyEIIAFBFXYgBWohBgsCQAJAIAdBgICABHENAEEAIQIMAQsCQAJAIANBEEkNACACIAMQViEBDAELAkAgAw0AQQAhAQwBCyADQQNxIQkCQAJAIANBBE8NAEEAIQpBACEBDAELIANBDHEhC0EAIQpBACEBA0AgASACIApqIgwsAABBv39KaiAMQQFqLAAAQb9/SmogDEECaiwAAEG/f0pqIAxBA2osAABBv39KaiEBIAsgCkEEaiIKRw0ACwsgCUUNACACIApqIQwDQCABIAwsAABBv39KaiEBIAxBAWohDCAJQX9qIgkNAAsLIAEgBmohBgsCQAJAIAYgAC8BDCILTw0AAkACQAJAIAdBgICACHENACALIAZrIQ1BACEBQQAhCwJAAkACQCAHQR12QQNxDgQCAAEAAgsgDSELDAELIA1B/v8DcUEBdiELCyAHQf///wBxIQYgACgCBCEJIAAoAgAhCgNAIAFB//8DcSALQf//A3FPDQJBASEMIAFBAWohASAKIAYgCSgCEBEJAEUNAAwFCwsgACAAKQIIIg6nQYCAgP95cUGwgICAAnI2AghBASEMIAAoAgAiCiAAKAIEIgkgCCACIAMQ5wMNA0EAIQEgCyAGa0H//wNxIQIDQCABQf//A3EgAk8NAkEBIQwgAUEBaiEBIApBMCAJKAIQEQkARQ0ADAQLC0EBIQwgCiAJIAggAiADEOcDDQIgCiAEIAUgCSgCDBENAA0CQQAhASANIAtrQf//A3EhAANAIAFB//8DcSICIABJIQwgAiAATw0DIAFBAWohASAKIAYgCSgCEBEJAEUNAAwDCwtBASEMIAogBCAFIAkoAgwRDQANASAAIA43AghBAA8LQQEhDCAAKAIAIgEgACgCBCIKIAggAiADEOcDDQAgASAEIAUgCigCDBENACEMCyAMC54GAgV/BX4jAEGAAWsiBCQAIAG9IglC/////////weDIgpCgICAgICAgAiEIAlCAYZC/v///////w+DIAlC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AygCrAlBAUcNACADQcgGakEQaiAEQRBqKAIAIgI2AgAgA0HIBmpBCGogBEEIaikCACIFNwMAIAMgBCkCACIGNwPIBiAAQRRqIAI2AgAgAEEMaiAFNwIAIAAgBjcCBCAAQQE2AgAgA0HIA2oQ/AMMAQsCQEHgAkUiAg0AIANByAZqIARB4AL8CgAACwJAIAINACADQegDaiADQcgGakHgAvwKAAALIANBrAlqIAMQfgJAIAMtAKwJQQFHDQAgA0GjDGogA0GsCWpBFGooAgAiBDYAACADQZsMaiADQawJakEMaikCACIFNwAAIAMgAykCsAkiBjcAkwwgAEEUaiAENgAAIABBDGogBTcAACAAIAY3AAQgAEEBNgIAIANBqAVqEIMDIAMgA0GIBGo2ArAJIAMgA0HoA2o2AqwJIANBrAlqEO8DIANByANqEPwDDAELAkBBwABFIgQNACADQZAMaiADQawJakEBckHAAPwKAAALAkAgBA0AIANBCGogA0GQDGpBwAD8CgAACyADQeAAaiADQeADaikAADcCACADQdgAaiADQdgDaikAADcCACADQdAAaiADQdADaikAADcCACADIAMpAMgDNwJIAkBB4AJFDQAgA0HoAGogA0HIBmpB4AL8CgAACwJAQcADRQ0AIABBBGogA0EIakHAA/wKAAALIABBADYCAAsgA0HQDGokAAuPBQEHfwJAAkAgACgCCCIDQYCAgMABcUUNAAJAAkAgA0GAgICAAXENAAJAIAJBEEkNACABIAIQViEEDAILAkAgAg0AQQAhBEEAIQIMAgsgAkEDcSEFAkACQCACQQRPDQBBACEGQQAhBAwBCyACQQxxIQdBACEGQQAhBANAIAQgASAGaiIILAAAQb9/SmogCEEBaiwAAEG/f0pqIAhBAmosAABBv39KaiAIQQNqLAAAQb9/SmohBCAHIAZBBGoiBkcNAAsLIAVFDQEgASAGaiEIA0AgBCAILAAAQb9/SmohBCAIQQFqIQggBUF/aiIFDQAMAgsLAkACQAJAIAAvAQ4iBw0AQQAhAgwBCyABIAJqIQVBACECIAEhCCAHIQYDQCAIIgQgBUYNAgJAAkAgBCwAACIIQX9MDQAgBEEBaiEIDAELAkAgCEFgTw0AIARBAmohCAwBCwJAIAhBcE8NACAEQQNqIQgMAQsgBEEEaiEICyAI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AAsCQEEoRSIFDQAgAyADQZgCakEo/AoAAAsCQCAFDQAgA0GYAmogBEEo/AoAAAsgA0GYAmogARDBAQJAIAUNACADQShqIANBmAJqQSj8CgAACyADQdAAaiADIAIQUSADQfgAaiADQShqIAJBKGoQUSADQaABaiABQfgAaiACQfgAahBRIANByAFqIAFB0ABqIAJB0ABqEFECQCAFDQAgA0HwAWogA0HIAWpBKPwKAAALQQAhBQNAIANB8AFqIAVqIgYgBigCACADQcgBaiAFaigCAGo2AgAgBUEEaiIFQShHDQALAkBBKEUiBQ0AIANBmAJqIANB0ABqQSj8CgAACyADQZgCaiADQfgAahDBAQJAIAUNACAAIANBmAJqQSj8CgAACwJAIAUNACADQZgCaiADQdAAakEo/AoAAAtBACEFA0AgA0GYAmogBWoiBiAGKAIAIANB+ABqIAVqKAIAajYCACAFQQRqIgVBKEcNAAsCQEEoRSIFDQAgAEEoaiADQZgCakEo/AoAAAsCQCAFDQAgA0GYAmogA0HwAWpBKPwKAAALQQAhBQNAIANBmAJqIAVqIgYgBigCACADQaABaiAFaigCAGo2AgAgBUEEaiIFQShHDQALAkBBKEUiBQ0AIABB0ABqIANBmAJqQSj8CgAACyADQfABaiADQaABahDBAQJAIAUNACAAQfgAaiADQfABakEo/AoAAAsgA0HAAmokAAuCBQIEfwN+IwBB0AFrIgIkACACQQhqIAEQgQECQAJAIAItAAhBAUcNACACQfMAaiACQQhqQQxqKQIAIgY3AAAgAkH7AGogAkEIakEUaigCACIBNgAAIAIgAikCDCIHNwBrIABBFGogATYAACAAQQxqIAY3AAAgACAHNwAEIABBAToAAAwBCyACQegAakEIaiIDIAJBCGpBCWopAAAiBjcDACACQegAakEQaiIEIAJBCGpBEWopAAAiBzcDACACQegAakEYaiIFIAJBCGpBGWopAAAiCDcDACACQcgAakEIaiAGNwMAIAJByABqQRBqIAc3AwAgAkHIAGpBGGogCDcDACACIAIpAAkiBjcDaCACIAY3A0ggAkGoAWogAUGLwMAAQQwQgQICQCACLQCoAUEBRw0AIAJBmwFqIAJBqAFqQRRqKAIAIgE2AAAgAkGTAWogAkGoAWpBDGopAgAiBjcAACACIAIpAqwBIgc3AIsBIABBFGogATYAACAAQQxqIAY3AAAgACAHNwAEIABBAToAACACQcgAahD+BQwBCyACQYgBakEYaiACQagBakEZaikAACIGNwMAIAJBiAFqQRBqIAJBqAFqQRFqKQAAIgc3AwAgAkGIAWpBCGogAkGoAWpBCWopAAAiCDcDACACQTBqIAg3AwAgAkE4aiAHNwMAIAJBwABqIAY3AwAgAkEIakEIaiADKQMANwMAIAJBCGpBEGogBCkDADcDACACQQhqQRhqIAUpAwA3AwAgAiACKQCpASIGNwOIASACIAY3AyggAiACKQNoNwMIAkBBwABFDQAgAEEBaiACQQhqQcAA/AoAAAsgAEEAOgAACyACQdABaiQAC50FAgN/An4jAEHgBGsiAiQAIAIgAUH9xcAAQQwQgQICQAJAIAItAABBAUcNACACQZMCaiACQRRqKAIAIgE2AAAgAkGLAmogAkEMaikCACIFNwAAIAIgAikCBCIGNwCDAiAAQRRqIAE2AAAgAEEMaiAFNwAAIAAgBjcABCAAQQE2AgAMAQsgAkGYAmogAkEZaikAADcDACACQYACakEQaiACQRFqKQAANwMAIAJBgAJqQQhqIAJBCWopAAA3AwAgAiACKQABNwOAAiACIAEQhAEgAkEEaiEDAkAgAigCAEEBRw0AIAJBoAJqQQhqIANBCGopAgAiBTcDACACQaACakEQaiADQRBqKAIAIgE2AgAgAiADKQIAIgY3A6ACIABBFGogATYCACAAQQxqIAU3AgAgACAGNwIEIABBATYCAAwBCwJAQaABRSIEDQAgAkHAA2ogA0GgAfwKAAALAkAgBA0AIAJBoAJqIAJBwANqQaAB/AoAAAsgAiABQfrFwABBAxCsAgJAIAItAABBAUcNACACQdMDaiACQRRqKAIAIgE2AAAgAkHLA2ogAkEMaikCACIFNwAAIAIgAikCBCIGNwDDAyAAQRRqIAE2AAAgAEEMaiAFNwAAIAAgBjcABCAAQQE2AgAMAQsCQEHAAEUiAQ0AIAJBwANqIAJBAXJBwAD8CgAACwJAIAENACACIAJBwANqQcAA/AoAAAsgAkHYAGogAkGYAmopAwA3AgAgAkHQAGogAkGQAmopAwA3AgAgAkHIAGogAkGIAmopAwA3AgAgAiACKQOAAjcCQAJAQaABRQ0AIAJB4ABqIAJBoAJqQaAB/AoAAAsCQEGAAkUNACAAQQRqIAJBgAL8CgAACyAAQQA2AgALIAJB4ARqJAALlAUBAn8jAEHAEGsiAyQAIANBCGogARCiAiADQYgKaiACELYCAkBBKEUiAQ0AIANBwAtqQQBBKPwLAAsCQCABDQAgA0HAC2pBKGpBkOXAAEEo/AoAAAsCQCABDQAgA0GQDGpBkOXAAEEo/AoAAAsCQCABDQAgA0HAC2pB+ABqQQBBKPwLAAsgA0GgD2ogA0EIaiADLQDHChC2ASADQeAMaiADQcALaiADQaAPahB9QT4hBANAIANBoA9qIANB4AxqEIgDAkBB+ABFIgINACADQcgKaiADQaAPakH4APwKAAALIANBoA9qIANByApqELABAkBBoAFFIgENACADQeAMaiADQaAPakGgAfwKAAALIANBoA9qIANB4AxqEIgDAkAgAg0AIANByApqIANBoA9qQfgA/AoAAAsgA0GgD2ogA0HICmoQsAECQCABDQAgA0HgDGogA0GgD2pBoAH8CgAACyADQaAPaiADQeAMahCIAwJAIAINACADQcgKaiADQaAPakH4APwKAAALIANBoA9qIANByApqELABAkAgAQ0AIANB4AxqIANBoA9qQaAB/AoAAAsgA0GgD2ogA0HgDGoQiAMCQCACDQAgA0HICmogA0GgD2pB+AD8CgAACyADQaAPaiADQcgKahCwAQJAIAENACADQeAMaiADQaAPakGgAfwKAAALIANBoA9qIANB4AxqEL4CAkAgAQ0AIANBwAtqIANBoA9qQaAB/AoAAAsgA0GgD2ogA0EIaiADQYgKaiAEai0AABC2ASADQYAOaiADQcALaiADQaAPahB9AkAgAQ0AIANB4AxqIANBgA5qQaAB/AoAAAsgBEF/aiIEQX9HDQALIAAgA0HgDGoQvgIgA0HAEGokAAuABQIHfwJ+IwBBoAFrIgIkACACQfwAaiABQaPXwABBChCBAgJAAkAgAi0AfEEBRw0AIAJB6wBqIAJB/ABqQRRqKAIAIgE2AAAgAkHjAGogAkH8AGpBDGopAgAiCTcAACACIAIpAoABIgo3AFsgAEEUaiABNgAAIABBDGogCTcAACAAIAo3AAQgAEEBOgAADAELIAJB8ABqIAJBlQFqKQAANwMAIAJB6ABqIAJBjQFq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QYEMOwAADAILIAZBgAFqQRdqIgogCUEXaikAADcAACAGQYABakEQaiILIAlBEGopAAA3AwAgBkGAAWpBCGogCUEIaikAACINNwMAIAYgCSkAACIONwOAASAGLQAsIQwgBSAONwAAIAVBCGogDTcAACAFQRBqIAspAwA3AAAgBUEXaiAKKQAANwAAIAYgDDoAK0F/IAdB/wFxQQFqIgcgByAHQf8BcUciChshByAGQStqEOMFQf8BcQ0ACyAAIAw6AAEgACAGKQOAATcAAiAAQQA6AAAgAEEKaiAGQYgBaikDADcAACAAQRJqIAZBkAFqKQMANwAAIABBGWogBkGXAWopAAA3AAALIAZBoAFqJAALyAQCCX8CfiMAQfAAayIEJAAgBEHIAGogASgCACABKAIEIAIQ0QECQAJAIAQtAEgiBUECRw0AIARBwwBqIARByABqQRRqKAIAIgE2AAAgBEE7aiAEQcgAakEMaikCACINNwAAIAQgBCkCTCIONwAzIABBFGogATYAACAAQQxqIA03AAAgACAONwAEIABBAjoAAAwBCyAEQTBqQQ9qIgIgBEHIAGpBEGoiBikAADcAACAEQTBqQQhqIgcgBEHIAGpBCWoiCCkAADcDACAEQQhqQQhqIgkgBEHIAGpBIGoiCikCADcDACAEQRhqQQhqIgsgBykDADcDACAEQRhqQQ9qIgwgAikAADcAACAEIAQpAmA3AwggBCAEKQBJNwMYIARByABqIAEoAgggASgCDCADENEBAkAgBC0ASCIBQQJHDQAgBEHDAGogBEHIAGpBFGooAgAiATYAACAEQTtqIARByABqQQxqKQIAIg03AAAgBCAEKQJMIg43ADMgAEEUaiABNgAAIABBDGogDTcAACAAIA43AAQgAEECOgAADAELIAAgBCkCYDcCQCACIAYpAAA3AAAgByAIKQAANwMAIABByABqIAopAgA3AgAgBCAEKQBJIg03AzAgAEE4aiACKQAANwAAIABBMWogBykDADcAACAAIA03ACkgAEEQaiAMKQAANwAAIABBCWogCykDADcAACAAIAQpAxg3AAEgACABOgAoIAAgBToAACAAIAQpAwg3AhggAEEgaiAJKQMANwIACyAEQfAAaiQAC8QEAQJ/IwBBsAJrIgMkACADQRhqQgA3AwAgA0EQakIANwMAIANBCGpCADcDACADQgA3AwAgA0GYAWpBAC8A4cVAOwEAIANB8ABqQRhqIAJBGGopAAA3AwAgA0HwAGpBEGogAkEQaikAADcDACADQfAAakEIaiACQQhqKQAANwMAIANBACkA2cVANwOQASADIAIpAAA3A3ACQEEqRQ0AIANBIGogA0HwAGpBKvwKAAALIANBKjYCdCADIANBIGo2AnACQAJAIAEgA0HwAGpBASADQSAQggFFDQAgAEEBNgIAIABBgAI7AQQMAQsgA0EgakEYaiADQRhqKQMANwMAIANBIGpBEGogA0EQaikDADcDACADQSBqQQhqIANBCGopAwA3AwAgAyADKQMANwMgIANB8ABqIANBIGoQuwIgAy0AciECIAMtAHEhAQJAIAMtAHBBAUcNACAAIAI6AAYgACABOgAFIABBADoABCAAQQE2AgAMAQsgA0HQAGpBGGoiBCADQYkBaikAADcAACADQeIAaiADQYMBaikAADcAACADQdoAaiADQfsAaikAADcAACADIAMpAHM3AFIgAyACOgBRIAMgAToAUCADQfAAaiADQdAAahCHAyADQagCaiAEKQAANwIAIANBoAJqIANB0ABqQRBqKQAANwIAIANBmAJqIANB0ABqQQhqKQAANwIAIAMgAykAUDcCkAICQEHAAUUNACAAQQRqIANB8ABqQcAB/AoAAAsgAEEANgIACyADQbACaiQAC7QEAQN/IwBBwANrIgMkACADQaACaiACEHUgA0H4AWogA0GgAmoQ5QEgA0EIaiADQfgBaiACEFEgA0GgAmogA0EIahB1IANB+AFqIANBoAJqEOUBIANBMGogA0H4AWogAhBRIANBgAFqIAEgA0EIahBRIANB0AFqIAEgA0EwahBRIANBoAJqIANB0AFqEJ0BAkBBKEUiBA0AIANB+AFqIANBoAJqQSj8CgAACyADQaACaiADQfgBakECEO8CIANBqAFqIANB0AFqIANBoAJqEFEgA0HYAGogA0GAAWogA0GoAWoQUSADQaACaiADQdgAahB1IANB+AFqIANBoAJqEOUBIANB0AFqIAIgA0H4AWoQUSADQdABaiABEP4CIQUCQCAEDQAgA0HwAmogAUEo/AoAAAsgA0HwAmoQmQIgA0HQAWogA0HwAmoQ/gIhAgJAIAQNACADQZgDaiABQSj8CgAACyADQZgD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hgIhAQJAQTpFIgUNACAGQYMBaiAGQYcCakE6/AoAAAsCQCAFDQAgBkHIAGogBkGDAWpBOvwKAAALIAYgAToARyAGIAI7AEUgBkGAAmpBACAGEL4BIAZBgAJqIAZBAmpBwAAQ9wEgBkGAAmogBkHCAGpBwAAQ9wECQEGwAkUNACAGQbAEaiAGQYACakGwAvwKAAALIABBEGogBkGwBGoQ1QEgAEEANgIACyAEEIMDIAMQ/AMgBkHgBmokAAvsAwEBfyMAQaABayIDJAAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgA0IANwMAIANBmAFqQQAvAOHFQDsBACADQfAAakEYaiACQRhqKQAANwMAIANB8ABqQRBqIAJBEGopAAA3AwAgA0HwAGpBCGogAkEIaikAADcDACADQQApANnFQDcDkAEgAyACKQAANwNwAkBBKkUNACADQSBqIANB8ABqQSr8CgAACyADQSo2AnQgAyADQSBqNgJwAkACQCABIANB8ABqQQEgA0EgEIIBRQ0AIABBATYCACAAQYACOwEEDAELIANBIGpBGGogA0EYaikDADcDACADQSBqQRBqIANBEGopAwA3AwAgA0EgakEIaiADQQhqKQMANwMAIAMgAykDADcDICADQfAAaiADQSBqELsCIAMtAHIhAiADLQBxIQECQCADLQBwQQFHDQAgACACOgAGIAAgAToABSAAQQA6AAQgAEEBNgIADAELIANB0ABqQRhqIANBiQFqKQAANwAAIANB4gBqIANBgwFqKQAANwAAIANB2gBqIANB+wBqKQAANwAAIAMgAykAczcAUiADIAI6AFEgAyABOgBQIABBBGogA0HQAGoQhwMgAEEANgIAIANB0ABqEP4FCyADQaABaiQAC8kDAQF/IwBBoAZrIgIkACACQdAFaiABEHUgAiACQdAFahDlASACQdAFaiACEHUgAkGoBWogAkHQBWoQ5QEgAkHQBWogAkGoBWoQdSACQShqIAJB0AVqEOUBIAJB0ABqIAEgAkEoahBRIAJB+ABqIAIgAkHQAGoQUSACQdAFaiACQfgAahB1IAJBoAFqIAJB0AVqEOUBIAJByAFqIAJB0ABqIAJBoAFqEFEgAkHwAWogAkHIAWpBBRDvAiACQZgCaiACQfABaiACQcgBahBRIAJBwAJqIAJBmAJqQQoQ7wIgAkHoAmogAkHAAmogAkGYAmoQUSACQZADaiACQegCakEUEO8CIAJBuANqIAJBkANqIAJB6AJqEFEgAkHgA2ogAkG4A2pBChDvAiACQYgEaiACQeADaiACQZgCahBRIAJBsARqIAJBiARqQTIQ7wIgAkHYBGogAkGwBGogAkGIBGoQUSACQYAFaiACQdgEakHkABDvAiACQagFaiACQYAFaiACQdgEahBRIAJB0AVqIAJBqAVqQTIQ7wIgACACQdAFaiACQYgEahBRAkBBKEUNACAAQShqIAJB+ABqQSj8CgAACyACQaAGaiQAC+kDAQR/IwBB4AVrIgIkACACIAEQ1AEgAkGgA2pBGGoiA0IANwMAIAJBoANqQRBqIgRCADcDACACQaADakEIaiIFQgA3AwAgAkIANwOgAyABIAJBoANqQSAQpQMgAkHAAWpBGGoiASADKQMANwMAIAJBwAFqQRBqIgMgBCkDADcDACACQcABakEIaiIEIAUpAwA3AwAgAiACKQOgAzcDwAECQEGgAUUNACACQeABakEgaiACQaAB/AoAAAsgAkHgAWpBGGogASkDADcDACACQeABakEQaiADKQMANwMAIAJB4AFqQQhqIAQpAwA3AwAgAiACKQPAATcD4AEgAkGgBWpBGGogAkG4AWopAgA3AwAgAkGgBWpBEGogAkGwAWopAgA3AwAgAkGgBWpBCGogAkGoAWopAgA3AwAgAiACKQKgATcDoAUgAkHIBWogBCkDADcDACACQdAFaiADKQMANwMAIAJB2AVqIAEpAwA3AwAgAiACKQPAATcDwAUCQEHAAEUNACACQaADaiACQaAFakHAAPwKAAALAkBBwAFFDQAgAkGgA2pBwABqIAJB4AFqQcAB/AoAAAsCQEGAAkUNACAAQQRqIAJBoANqQYAC/AoAAAsgAEEANgIAIAJBoAFqEP4FIAJB4AVqJAAL5gMCA38CfiMAQfAIayIDJAAgA0GoAWogASACEM8CAkACQAJAIAMtAKgBQQFHDQAgACADLQCpAToABiAAQYAMOwEEIABBATYCAAwBCyADQc4HaiEEAkBBoAFFIgUNACAEIANBrAFqQaAB/AoAAAsCQCAFDQAgA0EIaiAEQaAB/AoAAAsgAkEfTQ0BIAMgAkFgajYCBCADIAFBIGo2AgACQEGgAUUNACADQegDaiADQQhqQaAB/AoAAAsgA0HMB2ogAxCEASADQdAHaiECAkAgAygCzAdBAUcNACADQYgFakEIaiACQQhqKQIAIgY3AwAgA0GIBWpBEGogAkEQaigCACIBNgIAIAMgAikCACIHNwOIBSAAQRRqIAE2AgAgAEEMaiAGNwIAIAAgBzcCBCAAQQE2AgAgA0HoA2oQgwMMAQsCQEGgAUUiAQ0AIANBqAZqIAJBoAH8CgAACwJAIAENACADQYgFaiADQagGakGgAfwKAAALAkAgAQ0AIANBqAFqQaABaiADQYgFakGgAfwKAAALAkAgAQ0AIANBqAFqIANBCGpBoAH8CgAACwJAQcACRQ0AIABBBGogA0GoAWpBwAL8CgAACyAAQQA2AgALIANB8AhqJAAPC0EgIAIgAkHc0cAAENYDAAvkAwEDfyMAQcAGayICJAACQEGgAUUNACACQYAEaiABQYADakGgAfwKAAALIAIgAkGABGoQ5AUgAkEoaiABQagEaikAADcAACACQTBqIAFBsARqKQAANwAAIAJBOGogAUG4BGopAAA3AAAgAiABKQCgBDcAIAJAQcAARSIDDQAgAkHAAWogAkHAAPwKAAALIAJBwABqIAFBwAJqIAFBgAJqEOECIAJBuAFqIAFB+AJqKQAANwAAIAJBsAFqIAFB8AJqKQAANwAAIAJBqAFqIAFB6AJqKQAANwAAIAIgASkA4AI3AKABAkBBgAFFIgQNACACQcABakHAAGogAkHAAGpBgAH8CgAACyACQZgEaiABQdgAaikAADcDACACQZAEaiABQdAAaikAADcDACACQYgEaiABQcgAaikAADcDACACIAEpAEA3A4AEIAJBoARqIAFB4ABqEOEFAkAgAw0AIAJBgANqIAJBgARqQcAA/AoAAAsCQCADDQAgAkGAA2pBwABqIAFBwAD8CgAACwJAQcABRQ0AIAJBgARqIAJBwAFqQcAB/AoAAAsCQCAEDQAgAkGABGpBwAFqIAJBgANqQYAB/AoAAAsCQEHAAkUNACAAIAJBgARqQcAC/AoAAAsgAkHABmokAAvIAwIBfwJ+IwBBsAFrIgIkACACQewAaiABQcDFwABBBRCBAgJAAkAgAi0AbEEBRw0AIAJBG2ogAkHsAGpBFGooAgAiATYAACACQRNqIAJB7ABqQQxqKQIAIgM3AAAgAiACKQJwIgQ3AAsgAEEUaiABNgAAIABBDGogAzcAACAAIAQ3AAQgAEEBOgAADAELIAJBIGogAkGFAWopAAA3AwAgAkEYaiACQf0AaikAADcDACACQRBqIAJB9QBqKQAANwMAIAIgAikAbTcDCCACQewAaiABQcXFwABBBBCsAgJAIAItAGxBAUcNACACQT9qIAJB7ABqQRRqKAIAIgE2AAAgAkE3aiACQewAakEMaikCACIDNwAAIAIgAikCcCIENwAvIABBFGogATYAACAAQQxqIAM3AAAgACAENwAEIABBAToAAAwBCwJAQcAARSIBDQAgAkEsaiACQewAakEBckHAAPwKAAALAkAgAQ0AIABBImogAkEsakHAAPwKAAALIABBgAI7AQAgAEEaaiACQSBqKQMANwAAIABBEmogAkEYaikDADcAACAAQQpqIAJBEGopAwA3AAAgACACKQMINwACCyACQbABaiQAC9gDAgV/An4jAEGwCGsiAiQAIAJBqAFqIAEoAgAiAyABKAIEIgQQzwICQAJAAkAgAi0AqAFBAUcNACAAIAItAKkBOgAGIABBgAw7AQQgAEEBNgIADAELIAJB7gZqIQUCQEGgAUUiBg0AIAUgAkGsAWpBoAH8CgAACwJAIAYNACACQQhqIAVBoAH8CgAACyAEQR9NDQEgASAEQWBqNgIEIAEgA0EgajYCAAJAQaABRQ0AIAJBiARqIAJBCGpBoAH8CgAACyACQewGaiABEJoBIAJB8AZqIQECQCACKALsBkEBRw0AIAJBqAVqQRBqIAFBEGooAgAiBDYCACACQagFakEIaiABQQhqKQIAIgc3AwAgAiABKQIAIgg3A6gFIABBFGogBDYCACAAQQxqIAc3AgAgACAINwIEIABBATYCACACQYgEahCDAwwBCwJAQcABRSIEDQAgAkGoBWogAUHAAfwKAAALAkAgBA0AIAJBqAFqIAJBqAVqQcAB/AoAAAsCQEGgAUUNACACQagBakHAAWogAkEIakGgAfwKAAALAkBB4AJFDQAgAEEEaiACQagBakHgAvwKAAALIABBADYCAAsgAkGwCGokAA8LQSAgBCAEQaTRwAAQ1gMAC9EDAgJ/An4jAEHQAWsiBCQAIARBzABqIAMoAhAgAygCFBDGAgJAAkAgBC0ATCIFQQVGDQAgBCAEKQBNNwOQASAEIARB1ABqKQAANwCXASAEKAJcIQMgAEEMaiAEKQCXATcAACAAIAQpA5ABNwAFIAAgAzYCFCAAIAU6AAQgAEEBOgAAIAQgAjYCTCAEIAJBwABqNgJQIARBzABqEO8DDAELIARBCGogBEHYAGooAgA2AgAgBCAEKQJQNwMAAkBBwABFDQAgBEGQAWogAkHAAPwKAAALIARBzABqIAEgBEGQAWogAyAEEPEBAkAgBC0ATEEBRw0AIARBH2ogBEHMAGpBFGooAgAiAzYAACAEQRdqIARBzABqQQxqKQIAIgY3AAAgBCAEKQJQIgc3AA8gAEEUaiADNgAAIABBDGogBjcAACAAIAc3AAQgAEEBOgAADAELAkBBwABFIgMNACAEQQxqIARBzABqQQFyQcAA/AoAAAsCQCADDQAgAEEBaiAEQQxqQcAA/AoAAAsgAEEAOgAACyAEIAE2AkwgBCABQcAAaiIANgJQIARBzABqEO8DIAQgAUGAAWo2AlAgBCAANgJMIARBzABqEO8DIARB0AFqJAALlQMBB38gACABKAIgIgI6AB0gACABKAIAIgM6AAAgACACQRB2OgAfIAAgAkEIdjoAHiAAIAEoAhwiBEEVdjoAHCAAIARBDXY6ABsgACAEQQV2OgAaIAAgASgCGCICQRJ2OgAYIAAgAkEKdjoAFyAAIAJBAnY6ABYgACABKAIUIgVBD3Y6ABQgACAFQQd2OgATIAAgASgCECIGQRR2OgARIAAgBkEMdjoAECAAIAZBBHY6AA8gACABKAIMIgdBEXY6AA0gACAHQQl2OgAMIAAgB0EBdjoACyAAIAEoAggiCEEOdjoACSAAIAhBBnY6AAggACABKAIEIgFBE3Y6AAYgACABQQt2OgAFIAAgAUEDdjoABCAAIANBEHY6AAIgACADQQh2OgABIAAgBEEDdCACQRp2cjoAGSAAIAJBBnQgBUEXdnI6ABUgACAFQQF0IAZBHHZyOgASIAAgBkEEdCAHQRl2cjoADiAAIAdBB3QgCEEWdnI6AAogACAIQQJ0IAFBG3ZyOgAHIAAgAUEFdCADQRh2cjoAAwucAwEGfyMAQRBrIgMkAAJAAkACQAJAAkACQCACQQFxDQAgAS0AACIERQ0CQQAhBSABIQZBACEHA0AgBkEBaiEGAkACQCAEwEF/Sg0AAkAgBEH/AXFBgAFGDQAgBiAEQQNxQRh3IghBBXRBgICAgARxIAhBgICACHFBB3QgCEGAgICAAnFyckEddmogBEEBdkECcWogBEECdkECcWohBiAHRSAFciEFDAILIAcgBi8AACIEaiEHIAYgBGpBAmohBgwBCyAGIARB/wFxIgRqIQYgByAEaiEHCyAGLQAAIgQNAAtBACEEIAUgB0EQSXENAUEAIQggB0EBdCIEQQBODQEMBQsgAkEBdiEECyAEDQELQQEhBkEAIQQMAQsQgQZBASEIIARBARDCBSIGRQ0BCyADQQA2AgggAyAGNgIEIAMgBDYCAAJAIANB7P3AACABIAIQiQFFDQBBlP7AAEHWACADQQ9qQYT+wABB7P7AABCjAwALIAAgAykCADcCACAAQQhqIANBCGooAgA2AgAgA0EQaiQADwsgCCAEEMsEAAu5AwECfyMAQbAGayIHJAAgBxDgBCAHQYAFaiABIAIQxgECQAJAIAcoAoAFQQFxRQ0AIABBAToAACAAQYACOwEEDAELIAdB0wNqQQ1qIQECQEGgAUUiAg0AIAEgB0GQBWpBoAH8CgAACyAHQaYCakENaiEIAkAgAg0AIAggAUGgAfwKAAALAkAgAg0AIAdBgAFqIAhBoAH8CgAACyAHQRU2AowFIAdBmL/AADYCiAUgByAENgKEBSAHIAM2AoAFAkAgB0GAAWogB0GABWpBAiAHQYABEIIBRQ0AIABBAToAACAAQYACOwEEDAELIAdB0wNqIAUQ4QUgB0GABWogBkEBaiAGQSFqEOECIAdB8wNqIQUgB0HTA2ohAkEAIQYgB0GABWohA0EAIQECQANAAkACQCACRQ0AIAIgBUYNACACQQFqIQQMAQsgBkHgAEYNAiAGQQFqIQZBACEEIAMhAgsgByABaiIDIAMtAAAgAi0AAHM6AAAgB0GABWogBmohAyAEIQIgAUEBaiIEIQEgBEGAAUcNAAsLIAdBgAE2AoQFIAcgBzYCgAUgACAHQYAFahBwCyAHQbAGaiQAC8cDAQN/IwBBsAFrIgIkACACIAE2AgggAiACQa8BajYCSCACIAJBrwFqNgJEIAIgAkGvAWo2AkAgAiACQQhqNgI8IAJBDGogAkE8ahDMAgJAAkACQCACKAIMIgNBgYCAgHhHDQBBASEBIAIoAhAhBAwBC0EAIQFBACEEIANBgICAgHhGDQACQEEwRQ0AIAJBPGogAkEMakEw/AoAAAsgAkEANgKMASACIAJBDGogAkGMAWoQxQEgAigCBCEEIAIoAgBBAXENASACQTxqEIcGIAJBPGoQzAUgAkHIAGoiAxCHBiADEMwFIAJB1ABqIgMQhwYgAxDMBSACQeAAaiIDEIcGIAMQzAULIAAgATYCCCAAIARBACABGzYCBCAAQQAgBCABGzYCACACQbABaiQADwsgAiAENgJsIAJBCjYCgAEgAkGBq8AANgJ8IAJBowM2AoQBIAJBKTYCiAEgAkETNgKoASACQRM2AqABIAJBAzYCmAEgAkEUNgKQASACIAJBiAFqNgKkASACIAJBhAFqNgKcASACIAJB/ABqNgKUASACIAJB7ABqNgKMASACQfAAaiACQYwBahDbAiACQfAAakHwuMAAEPoDAAvxAgEFf0EAIQICQCABQc3/eyAAQRAgAEEQSxsiAGtPDQAgAEEQIAFBC2pBeHEgAUELSRsiA2pBDGoQMiIBRQ0AIAFBeGohAgJAAkAgAEF/aiIEIAFxDQAgAiEADAELIAFBfGoiBSgCACIGQXhxIAQgAWpBACAAa3FBeGoiAUEAIAAgASACa0EQSxtqIgAgAmsiAWshBAJAIAZBA3FFDQAgACAEIAAoAgRBAXFyQQJyNgIEIAAgBGoiBCAEKAIEQQFyNgIEIAUgASAFKAIAQQFxckECcjYCACACIAFqIgQgBCgCBEEBcjYCBCACIAEQlwEMAQsgAigCACECIAAgBDYCBCAAIAIgAWo2AgALAkAgACgCBCIBQQNxRQ0AIAFBeHEiAiADQRBqTQ0AIAAgAyABQQFxckECcjYCBCAAIANqIgEgAiADayIDQQNyNgIEIAAgAmoiAiACKAIEQQFyNgIEIAEgAxCXAQsgAEEIaiECCyACC64DAQN/IwBBkAFrIgIkACACIAE2AhQgAiACQY8BajYCeCACIAJBjwFqNgJ0IAIgAkGPAWo2AnAgAiACQRRqNgJsIAJBGGogAkHsAGoQ0gICQAJAAkAgAigCGEGAgICAeEcNAEEBIQEgAigCHCEDDAELIAJBMGpBEGogAkEYakEQaikCADcDACACQTBqQQhqIAJBGGpBCGopAgA3AwAgAiACKQIYNwMwQQAhASACQQA2AmwgAkEIaiACQRhqIAJB7ABqEIcCIAIoAgwhAyACKAIIQQFxDQEgAkEwahCHBiACQTBqEMwFIAJBPGoiBBCHBiAEEMwFCyAAIAE2AgggACADQQAgARs2AgQgAEEAIAMgARs2AgAgAkGQAWokAA8LIAIgAzYCTCACQQo2AmAgAkGBq8AANgJcIAJB+wI2AmQgAkEpNgJoIAJBEzYCiAEgAkETNgKAASACQQM2AnggAkEUNgJwIAIgAkHoAGo2AoQBIAIgAkHkAGo2AnwgAiACQdwAajYCdCACIAJBzABqNgJsIAJB0ABqIAJB7ABqENsCIAJB0ABqQdC4wAAQ+gMAC64DAQN/IwBBkAFrIgIkACACIAE2AhQgAiACQY8BajYCeCACIAJBjwFqNgJ0IAIgAkGPAWo2AnAgAiACQRRqNgJsIAJBGGogAkHsAGoQ0QICQAJAAkAgAigCGEGAgICAeEcNAEEBIQEgAigCHCEDDAELIAJBMGpBEGogAkEYakEQaikCADcDACACQTBqQQhqIAJBGGpBCGopAgA3AwAgAiACKQIYNwMwQQAhASACQQA2AmwgAkEIaiACQRhqIAJB7ABqEIkCIAIoAgwhAyACKAIIQQFxDQEgAkEwahCHBiACQTBqEMwFIAJBPGoiBBCHBiAEEMwFCyAAIAE2AgggACADQQAgARs2AgQgAEEAIAMgARs2AgAgAkGQAWokAA8LIAIgAzYCTCACQQo2AmAgAkGBq8AANgJcIAJB3gM2AmQgAkEpNgJoIAJBEzYCiAEgAkETNgKAASACQQM2AnggAkEUNgJwIAIgAkHoAGo2AoQBIAIgAkHkAGo2AnwgAiACQdwAajYCdCACIAJBzABqNgJsIAJB0ABqIAJB7ABqENsCIAJB0ABqQZC5wAAQ+gMAC64DAQN/IwBBkAFrIgIkACACIAE2AhQgAiACQY8BajYCeCACIAJBjwFqNgJ0IAIgAkGPAWo2AnAgAiACQRRqNgJsIAJBGGogAkHsAGoQygICQAJAAkAgAigCGEGAgICAeEcNAEEBIQEgAigCHCEDDAELIAJBMGpBEGogAkEYakEQaikCADcDACACQTBqQQhqIAJBGGpBCGopAgA3AwAgAiACKQIYNwMwQQAhASACQQA2AmwgAkEIaiACQRhqIAJB7ABqEIgCIAIoAgwhAyACKAIIQQFxDQEgAkEwahCHBiACQTBqEMwFIAJBPGoiBBCHBiAEEMwFCyAAIAE2AgggACADQQAgARs2AgQgAEEAIAMgARs2AgAgAkGQAWokAA8LIAIgAzYCTCACQQo2AmAgAkGBq8AANgJcIAJBkAI2AmQgAkEpNgJoIAJBEzYCiAEgAkETNgKAASACQQM2AnggAkEUNgJwIAIgAkHoAGo2AoQBIAIgAkHkAGo2AnwgAiACQdwAajYCdCACIAJBzABqNgJsIAJB0ABqIAJB7ABqENsCIAJB0ABqQeC4wAAQ+gMAC6sDAQF/IwBB0AdrIgQkACAEQbAHaiABENIDIARBiANqIAIgAyAEQbAHahCLAkEBIQECQAJAIAQtAIgDQQFHDQAgACAELQCJAzoABiAAQYAMOwEEDAELIARB6AVqQQJqIQMCQEHAAUUiAQ0AIAMgBEGIA2pBBGpBwAH8CgAACyAEQcQBakECaiECAkAgAQ0AIAIgA0HAAfwKAAALIARBAmpBAmohAwJAIAENACADIAJBwAH8CgAACwJAIAENACAEQcQBaiADQcAB/AoAAAsgBEHEAWpBIGohAwJAQaABRSICDQAgBEGIA2pBwAFqIANBoAH8CgAACyAEQegFakEYaiAEQcQBakEYaikCADcDACAEQegFakEQaiAEQcQBakEQaikCADcDACAEQegFakEIaiAEQcQBakEIaikCADcDACAEIAQpAsQBNwPoBQJAIAINACAEQegFakEgaiADQaAB/AoAAAsCQCABDQAgBEGIA2ogBEHoBWpBwAH8CgAACwJAQeACRQ0AIABBBGogBEGIA2pB4AL8CgAAC0EAIQELIAAgATYCACAEQdAHaiQAC4EDAQR/AkACQAJAAkACQAJAAkAgByAIWA0AIAcgCH0gCFgNAwJAIAcgBn0gBlgNACAHIAZCAYZ9IAhCAYZaDQMLIAYgCFgNBiAHIAYgCH0iCH0gCFYNBiADIAJNDQFBACADIAJB6JXBABDWAwALIABBADYCAA8LIAEgA2ohCUEAIQogASELAkACQANAIAMgCkYNASAKQQFqIQogC0F/aiILIANqIgwtAABBOUYNAAsgDCAMLQAAQQFqOgAAIApBf2oiCkUNASAMQQFqQTAgCvwLAAwBCwJAAkAgAw0AQTEhCgwBCyABQTE6AABBMCEKIANBf2oiC0UNACABQQFqQTAgC/wLAAsgBEEBasEiBCAFwUwNACADIAJPDQAgCSAKOgAAIANBAWohAwsgAyACSw0CDAMLIAMgAk0NAkEAIAMgAkH4lcEAENYDAAsgAEEANgIADwtBACADIAJB2JXBABDWAwALIAAgBDsBCCAAIAM2AgQgACABNgIADwsgAEEANgIAC64DAQN/IwBBoARrIgQkACAEQYADaiACEJYCIAQtAIIDIQIgBC0AgQMhBQJAAkAgBC0AgANBAUcNACAAIAI6AAYgACAFOgAFIABBADoABCAAQQE2AgAMAQsgBEEYaiAEQZkDaiIGKQAANwAAIARBEmogBEGTA2opAAA3AAAgBEEKaiAEQYsDaikAADcAACAEIAQpAIMDNwACIAQgAjoAASAEIAU6AAAgBEGAA2ogBEEgEMIBIAQtAIEDIQICQCAELQCAA0EBRw0AIAAgAjoABiAAQYAMOwEEIABBATYCAAwBCyAEQSBqQRhqIAYpAAA3AAAgBEExaiAEQYADakESaikAADcAACAEQSlqIARBgANqQQpqKQAANwAAIAQgBCkAggM3ACEgBCACOgAgAkBBoAFFIgINACAEQYADaiADQaAB/AoAAAsgBEHAAGogBEGAA2ogBEEgahD+AwJAIAINACAEQcAAakGgAWogAUHAAGpBoAH8CgAACwJAQcACRQ0AIABBBGogBEHAAGpBwAL8CgAACyAAQQA2AgAgBEEgahD8AwsgAxCDAyAEQaAEaiQAC68DAQh/IwBBwARrIgEkAAJAAkAgAC0AyAEiAiAALQDJASIDTw0AQQAhBCAAQQA2AsQBIAAgAkEBajoAyAEgARDhBCABQeACaiAAQcQAaiAAQYQBaiIFIAUgAEHEAWoQ0wMCQCABKAL0AiIGIAEoAvACIgdGDQAgBiAHayEGIAEoAugCIAdqIQggASgC4AIgB2ohBwNAIARBwABGDQMgASAEaiAHIARqLQAAIAggBGotAABzOgAAIAYgBEEBaiIERw0ACwsgAUGQAWoQ4AQgAUEAOgCQAgJAQcAARSIEDQAgAUHAAGpB0NvAAEHAAPwKAAALIAFCADcDiAEgAUIANwOAASABQcAAaiABQcAAEPkBIAEgAC0AyAE6AOACIAFBwABqIAFB4AJqQQEQ+QEgACABQcAAahCkAyABIAAQ5AI6AOACIAFBwABqIAFB4AJqQQEQ+QECQEHgAUUNACABQeACaiABQcAAakHgAfwKAAALIAFBoAJqIAFB4AJqEGIgBA0AIAUgAUGgAmpBwAD8CgAACyABQcAEaiQAIAIgA0kPC0HAAEHAAEGQ28AAELUDAAuJAwEDfyMAQcACayICJAAgAkHIAWogARB1IAIgAkHIAWoQ5QEgAkHIAWogAUEoaiIDEHUgAkEoaiACQcgBahDlASACQdAAaiABQdAAahDAAwJAQShFDQAgAkGgAWogAUEo/AoAAAtBACEBA0AgAkGgAWogAWoiBCAEKAIAIAMgAWooAgBqNgIAIAFBBGoiAUEoRw0ACyACQcgBaiACQaABahB1IAJB+ABqIAJByAFqEOUBAkBBKEUNACACQZgCaiACQShqQSj8CgAAC0EAIQEDQCACQZgCaiABaiIEIAQoAgAgAiABaigCAGo2AgAgAUEEaiIBQShHDQALIAJBKGogAhDBASACQfgAaiACQZgCahDBAQJAQShFIgENACAAIAJB+ABqQSj8CgAACyACQdAAaiACQShqEMEBAkAgAQ0AIABB+ABqIAJB0ABqQSj8CgAACwJAIAENACAAQShqIAJBmAJqQSj8CgAACwJAIAENACAAQdAAaiACQShqQSj8CgAACyACQcACaiQAC6QDAQN/IwBBoAFrIgIkACACIAE2AhAgAiACQZ8BajYCRCACIAJBnwFqNgJAIAIgAkGfAWo2AjwgAiACQRBqNgI4IAJBFGogAkE4ahDLAgJAAkACQCACKAIUQYCAgIB4Rw0AQQEhASACKAIYIQMMAQsCQEEkRQ0AIAJBOGogAkEUakEk/AoAAAtBACEBIAJBADYCfCACQQhqIAJBFGogAkH8AGoQ5wEgAigCDCEDIAIoAghBAXENASACQThqEIcGIAJBOGoQzAUgAkHEAGoiBBCHBiAEEMwFIAJB0ABqIgQQhwYgBBDMBQsgACABNgIIIAAgA0EAIAEbNgIEIABBACADIAEbNgIAIAJBoAFqJAAPCyACIAM2AlwgAkEKNgJwIAJBgavAADYCbCACQYoENgJ0IAJBKTYCeCACQRM2ApgBIAJBEzYCkAEgAkEDNgKIASACQRQ2AoABIAIgAkH4AGo2ApQBIAIgAkH0AGo2AowBIAIgAkHsAGo2AoQBIAIgAkHcAGo2AnwgAkHgAGogAkH8AGoQ2wIgAkHgAGpBoLnAABD6AwALmAMBAn8jAEGQA2siAyQAQQMhBAJAAkACQCACQSBJDQAgA0HQAWogAUEgEMIBIAMtANEBIQQgAy0A0AFBAUcNAQsgACAEOgAGIABBgAw7AQQgAEEBNgIADAELIANBJmogA0HpAWopAAA3AAAgA0EfaiADQeIBaikAADcAACADQRdqIANB2gFqKQAANwAAIAMgAykA0gE3AA8gAyAEOgAOIANB0AFqIAFBIGogAkFgahDPAgJAIAMtANABQQFHDQAgACADLQDRAToABiAAQYAMOwEEIABBATYCACADQQ5qEPwDDAELIANBMGohBAJAQaABRSICDQAgBCADQdABakEEakGgAfwKAAALAkAgAg0AIANB8AFqIARBoAH8CgAACyADQdABakEIaiADQQ5qQQhqKQAANwMAIANB0AFqQRBqIANBDmpBEGopAAA3AwAgA0HQAWpBGGogA0EOakEYaikAADcDACADIAMpAA43A9ABAkBBwAFFDQAgAEEEaiADQdABakHAAfwKAAALIABBADYCAAsgA0GQA2okAAuJAwEEfyAAKAIMIQICQAJAAkACQCABQYACSQ0AIAAoAhghAwJAAkACQCACIABHDQAgAEEUQRAgACgCFCICG2ooAgAiAQ0BQQAhAgwCCyAAKAIIIgEgAjYCDCACIAE2AggMAQsgAEEUaiAAQRBqIAIbIQQDQCAEIQUgASICQRRqIAJBEGogAigCFCIBGyEEIAJBFEEQIAEbaigCACIBDQALIAVBADYCAAsgA0UNAgJAAkAgACAAKAIcQQJ0QbivwQBqIgEoAgBGDQAgAygCECAARg0BIAMgAjYCFCACDQMMBAsgASACNgIAIAJFDQQMAgsgAyACNgIQIAINAQwCCwJAIAIgACgCCCIERg0AIAQgAjYCDCACIAQ2AggPC0EAQQAoAtCyQUF+IAFBA3Z3cTYC0LJBDwsgAiADNgIYAkAgACgCECIBRQ0AIAIgATYCECABIAI2AhgLIAAoAhQiAUUNACACIAE2AhQgASACNgIYDwsPC0EAQQAoAtSyQUF+IAAoAhx3cTYC1LJBC44DAQV/IwBBIGsiAiQAAkACQAJAQQAgACgCABEFACIARQ0AIABBBEEAIAAoAgBBAkYiAxtqIgQoAgAhBSADDQIgASgCBCEAAkACQCAFQQFxRQ0AIAANAQwDCyABKAIAIQUDQCAARQ0D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GGoiASkAACIFNwMAIANBEGogA0HIAGpBEGoiAikAACIGNwMAIANBCGogA0HIAGpBCGoiBCkAACIHNwMAIAMgAykASCIINwMAIAEgBTcDACACIAY3AwAgBCAHNwMAIAMgCDcDSCADQcgAakHA4sAAEOoEDQAgACADKQMANwABIABBGWogA0EYaikDADcAACAAQRFqIANBEGopAwA3AAAgAEEJaiADQQhqKQMANwAAQQAhAQwBCyAAQQM6AAFBASEBCyAAIAE6AAAgA0HwAGokAAvdAgECfyMAQcAAayIBJAACQAJAAkACQCAALQAAIgJBfGpBACACQQRLGw4DAAECAAsgASAAKQIUNwI4IAFBEGpBEGogAEEQaigCADYCACABQRBqQQhqIABBCGopAgA3AwAgASAAKQIANwMQIAFBHTYCNCABQQM2AiwgASABQRBqNgIwIAEgAUE4ajYCKCABQQRqQf2IwAAgAUEoahClAQwCCyABIAApAgw3AjggASAAKQIENwMoIAFBHjYCHCABQQM2AhQgASABQShqNgIYIAEgAUE4ajYCECABQQRqQbqJwAAgAUEQahClAQwBCyABIAApAgQ3AiggASAALwEMOwA4IAFBHzYCHCABQQM2AhQgASABQThqNgIYIAEgAUEoajYCECABQQRqQZ+JwAAgAUEQahClAQsgASgCCCABKAIMEOwFIQAgAUEEahCHBiABQQRqEMwFIAFBwABqJAAgAAvIAgEEf0EAIQICQCABQYACSQ0AQR8hAiABQf///wdLDQAgAUEmIAFBCHZnIgJrdkEBcSACQQF0a0E+aiECCyAAQgA3AhAgACACNgIcIAJBAnRBuK/BAGohAwJAQQAoAtSyQUEBIAJ0IgRxDQAgAyAANgIAIAAgAzYCGCAAIAA2AgwgACAANgIIQQBBACgC1LJBIARyNgLUskEPCwJAAkACQCADKAIAIgQoAgRBeHEgAUcNACAEIQIMAQsgAUEAQRkgAkEBdmsgAkEfRht0IQMDQCAEIANBHXZBBHFqIgUoAhAiAkUNAiADQQF0IQMgAiEEIAIoAgRBeHEgAUcNAAsLIAIoAggiAyAANgIMIAIgADYCCCAAQQA2AhggACACNgIMIAAgAzYCCA8LIAVBEGogADYCACAAIAQ2AhggACAANgIMIAAgADYCCAvUAgECfyMAQcAA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XCABIQIgBEF/aiIEDQAMAgsLIAMoAlwhBQtBACECAkAgBUHAAEcNACADQQhqIANBFGoQ2wMgAy0ACA0AQQEhAkHAAEUNACAAQQFqIANBHGpBwAD8CgAACyAAIAI6AAAgA0GAAWokAAvNAgIDfwJ+IwBBoAJrIgIkACACQeAAaiABEIEBQQEhAQJAAkAgAi0AYEEBRw0AIAJBK2ogAkHgAGpBDGopAgAiBTcAACACQTNqIAJB4ABqQRRqKAIAIgM2AAAgAiACKQJkIgY3ACMgAEEUaiADNgAAIABBDGogBTcAACAAIAY3AAQMAQsgAkEgakEIaiACQekAaikAACIFNwMAIAJBGGoiASACQfkAaikAADcDACACQRBqIgMgAkHxAGopAAA3AwAgAkEIaiIEIAU3AwAgAiACKQBhIgU3AyAgAiAFNwMAIAJB4ABqIAIQhwMgAkGYAmogASkDADcCACACQZACaiADKQMANwIAIAJBiAJqIAQpAwA3AgAgAiACKQMANwKAAgJAQcABRQ0AIABBBGogAkHgAGpBwAH8CgAAC0EAIQELIAAgATYCACACQaACaiQAC8cCAQJ/IwBBIGsiBCQAAkACQCABRQ0AIARBDGogAhDlAiAELwANIQMCQCAELQAMIgVBBUYNACAAIAQpAA83AAcgAEEXaiAEQR9qLQAAOgAAIABBD2ogBEEXaikAADcAACAAIAM7AAUgACAFOgAEIABBAjoAAAwCCyAAIAM7ASQgACACNgIIIAAgATYCBCAAQQE6AAAMAQsgBEEMakEgEOUCIAQvAA0hAQJAIAQtAAwiAkEFRg0AIAAgBCkADzcAByAAQRdqIARBH2otAAA6AAAgAEEPaiAEQRdqKQAANwAAIAAgATsABSAAIAI6AAQgAEECOgAADAELIABBADoAACAAIAE7ASQgACADKQAANwABIABBCWogA0EIaikAADcAACAAQRFqIANBEGopAAA3AAAgAEEZaiADQRhqKQAANwAACyAEQSBqJAALrwIBAX8jAEHQAGsiAiQAIAIgATUAADcDACACIAExAAVCDoYgATEABEIGhoQgATEABkIWhoQ3AwggAiABMQAIQg2GIAExAAdCBYaEIAExAAlCFYaENwMQIAIgATEAC0ILhiABMQAKQgOGhCABMQAMQhOGhDcDGCACIAExAA5CCoYgATEA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BUEMaiEHAkACQCAERQ0AIAEoAgAiCEUNACAFIAM2AgwgCCAEbCEGIAEoAgQhCSAFQQhqIQcMAQsLIAcgBjYCAAJAAkAgBSgCDCIGRQ0AIAUoAgghCAJAAkAgAg0AAkAgCEUNACAJIAggBhCXBQsgASADNgIEDAELIAQgAmwhBwJAAkACQCAEDQAgCEUNASAJIAggBhCXBQwBCyAJIAggBiAHEIIFIQQMAQsgBiEECyAERQ0CIAEgBDYCBAsgASACNgIAC0GBgICAeCEGCyAAIAc2AgQgACAGNgIAIAVBEGokAAvwAQEDfyMAQcAAayIDJAAgAyACNgIYIAMgATYCFCADIANBP2o2AjQgAyADQT9qNgIwIAMgA0EYajYCLCADIANBFGo2AiggA0EcaiADQShqEMgDAkACQCADKAIcQYCAgIB4Rw0AQQEhAkEAIQEgAygCICEEQQAhBQwBCyADQShqQQhqIANBHGpBCGooAgA2AgAgAyADKQIcNwMoIANBCGogA0EoahCUAyADIAMoAgggAygCDBCMBSADKAIEIQUgAygCACEBQQAhBEEAIQILIAAgAjYCDCAAIAQ2AgggACAFNgIEIAAgATYCACADQcAAaiQAC/IBAQJ/IwBBMGsiAyQAIANBKGogAkHQucAAQRZBAhCFBSADKAIsIQICQAJAIAMoAigiBEUNACADIAI2AiQgAyAENgIgIANBGGogA0EgakHcrsAAQRAgARCYAwJAAkAgAygCGEEBcUUNACADKAIcIQIMAQsgA0EQaiADQSBqQeyuwABBESABQQxqEJgDAkAgAygCEEEBcUUNACADKAIUIQIMAQsgA0EIaiADKAIgIAMoAiQQhgUgAygCDCECIAMoAgghAQwCCyADKAIkIgFBhAFJDQAgARCNAwtBASEBCyAAIAE2AgAgACACNgIEIANBMGokAAvyAQECfyMAQTBrIgMkACADQShqIAJB5rnAAEEWQQIQhQUgAygCLCECAkACQCADKAIoIgRFDQAgAyACNgIkIAMgBDYCICADQRhqIANBIGpBs6/AAEEQIAEQmAMCQAJAIAMoAhhBAXFFDQAgAygCHCECDAELIANBEGogA0EgakHDr8AAQQ0gAUEMahCYAwJAIAMoAhBBAXFFDQAgAygCFCECDAELIANBCGogAygCICADKAIkEIYFIAMoAgwh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AgAiBDcAACADIAMpApABIgU3AA8gAEEUaiABNgAAIABBDGogBDcAACAAIAU3AAQMAQsCQEGAAUUiAg0AIANBDGogA0GMAWpBAXJBgAH8CgAACwJAIAINACAAQQFqIANBDGpBgAH8CgAAC0EAIQILIAAgAjoAACADQZACaiQAC+ABAgF/An4jAEGQAWsiAyQAIAMgAjYCCCADIAE2AgQgA0HMAGogA0EEahCXAkEBIQICQAJAIAMtAExBAUcNACADQR9qIANBzABqQRRqKAIAIgE2AAAgA0EXaiADQcwAakEMaikCACIENwAAIAMgAykCUCIFNwAPIABBFGogATYAACAAQQxqIAQ3AAAgACAFNwAEDAELAkBBwABFIgINACADQQxqIANBzABqQQFyQcAA/AoAAAsCQCACDQAgAEEBaiADQQxqQcAA/AoAAAtBACECCyAAIAI6AAAgA0GQAWokAAvSAQEEfyMAQTBrIQNBACEEAkBBJEUNACADQQhqQQBBJPwLAAtBACEFA0AgA0EIaiAEaiABIARqKAIAIAVBH3VqIAIgBGooAgBrIgVB/////wFxNgIAIARBBGoiBEEkRw0ACyAFQR91IQZBACEEQQAhBQNAIANBCGogBGoiAigCACEBIAMgBjYCLCACIAEgBUEddmogBEGo48AAaigCACADKAIscWoiBUH/////AXE2AgAgBEEEaiIEQSRHDQALAkBBJEUNACAAIANBCGpBJPwKAAALC+0BAQJ/IwBBIGsiAiQAIAJBCGogAUGE8cAAQQUQjQQCQAJAIAAoAgAiAUEASA0AIAIgATYCECACQQhqQZzxwABBCCACQRBqQYzxwAAQ0wEaDAELIAIgARDcAwJAIAIoAgAiAEUNACACKAIEIQMgAiAANgIUIAIgAzYCGCACIAE2AhwgAkEIakHQ8cAAQQ0gAkEcakHA8cAAENMBGiACQQhqQbTxwABBCyACQRRqQaTxwAAQ0wEaDAELIAIgATYCFCACQQhqQd3xwABBDCACQRRqQcDxwAAQ0wEaCyACQQhqEJIDIQEgAkEgaiQAIAEL1gEBBH8jAEEwayICJAAgAUEoaiEDAkBBKEUNACACQQhqIANBKPwKAAALQQAhBANAIAJBCGogBGoiBSAFKAIAIAEgBGooAgBqNgIAIARBBGoiBEEoRw0ACwJAQShFIgQNACAAIAJBCGpBKPwKAAALAkAgBA0AIAJBCGogA0Eo/AoAAAsgAkEIaiABEMEBAkAgBA0AIABBKGogAkEIakEo/AoAAAsCQCAEDQAgAEHQAGogAUHQAGpBKPwKAAALIABB+ABqIAFB+ABqQejkwAAQUSACQTBqJAAL2AEBAX8jAEHQA2siAiQAIAJBGGpCADcDACACQRBqQgA3AwAgAkEIakIANwMAIAJCADcDACACQSAgAUEgQYjmwAAQigQgAkEgaiACENIBIAJBkAFqIAJBIGoQUyACQcgAakEYakIANwMAIAJByABqQRBqQgA3AwAgAkHIAGpBCGpCADcDACACQgA3A0ggAkHIAGpBICABQSBqQSBBmObAABCKBCACQegAaiACQcgAahDSASACQbACaiACQegAahBTIAAgAkGQAWogAkGwAmoQ7QMgAkHQA2okAAvdAQECfyMAQeAAayICJAAgAkE4akEAKACAwEA2AgAgAkEwakEAKQD4v0A3AwAgAkEAKQDwv0A3AyggAkEHaiABQSAgAkEoakEUQQAQ6QRBASEBIAItAAghAwJAAkAgAi0AB0EBRw0AIAAgAzoAAiAAQQY6AAEMAQsgAkHYAGogAkEgaikAADcAACACQdEAaiACQRlqKQAANwAAIAJByQBqIAJBEWopAAA3AAAgAiACKQAJNwBBIAIgAzoAQCAAQQFqIAJBwABqENgDQQAhAQsgACABOgAAIAJB4ABqJAAL1gECAn8CfiMAQZABayICJAAgAkHMAGogAUH6xcAAQQMQrAJBASEBAkACQCACLQBMQQFHDQAgAkEfaiACQcwAakEUaigCACIDNgAAIAJBF2ogAkHMAGpBDGopAgAiBDcAACACIAIpAlAiBTcADyAAQRRqIAM2AAAgAEEMaiAENwAAIAAgBTcABAwBCwJAQcAARSIBDQAgAkEMaiACQcwAakEBckHAAPwKAAALAkAgAQ0AIABBAWogAkEMakHAAPwKAAALQQAhAQsgACABOgAAIAJBkAFqJAAL2gEBAn8jAEGwBWsiASQAIAFBDGogAUGvBWoQjgMgAUGsA2pBwABqIAFB7AFqIgIQ1wMCQEHAAEUNACABQawDaiABQQxqQcAA/AoAAAsCQEHgAEUNACABQawEaiABQawDakHgAPwKAAALIAFBrARqQeAAaiABQYwCahDh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AWokAAuiAQEFfyMAIgchCCAHQcAIa0FAcSIHJAACQEGACEUNACAHQcAAakEAQYAI/AsACwJAIAAoAhAiCUECdCIKDQBB/OvAABCqBQALIAdBNGogB0HAAGogACgCCCILIAlBA3QiCSALIAlLGyIJIAkgCnBrEOMCIAAgASACIAMgBCAFIAYgB0E0ahC3AiEAIAdBNGpBwABBgAgQ9gIgCCQAIABB/wFxC7EBAQF/IwBBIGsiAiQAIAIgATYCBAJAAkAgAkEEahCGBA0AIAJBCGogASACIAJBwLnAAEECEHsCQCACKAIIQYGAgIB4Rw0AIAAgAigCDDYCBCAAQYKAgIB4NgIADAILIAAgAikCCDcCACAAQRBqIAJBCGpBEGopAgA3AgAgAEEIaiACQQhqQQhqKQIANwIADAELIABBgYCAgHg2AgAgAUGEAUkNACABEI0DCyACQSBqJAALpAEBA38jAEEwayICJAAgAkEPaiABQSBB+NbAAEEhQQAQiwEgAEECaiEBQQEhAyACLQAQIQQCQAJAIAItAA9BAUcNACABIAQ6AABBBiEEDAELIAEgAikAETcAACABQRdqIAJBKGopAAA3AAAgAUEQaiACQSFqKQAANwAAIAFBCGogAkEZaikAADcAAEEAIQMLIAAgAzoAACAAIAQ6AAEgAkEwaiQAC6YBAQF/IwBBwABrIgQkACAAIAFCfyACEC8gBEEYaiAAQRhqKQMANwMAIARBEGogAEEQaikDADcDACAEQQhqIABBCGopAwA3AwAgBEEoaiAAQShqKQMANwMAIARBMGogAEEwaikDADcDACAEQThqIABBOGopAwA3AwAgBCAAKQMANwMAIAQgACkDIDcDICADQcAAIARBwABBkO7AABCKBCAEQcAAaiQAC6gBAQJ/IwBBIGsiAiQAIAIgATYCACACQQRqIAIQ/wICQAJAIAIoAgRBgICAgHhGDQAgAkEQakEIaiACQQRqQQhqKAIAIgM2AgAgAiACKQIENwMQIAAgAigCFCADENoCIAJBEGoQhwYgAkEQahDMBQwBCyACIAJBH2pBiIPAABCTASEDIABBAToAACAAIAM2AgQLAkAgAUGEAUkNACABEI0DCyACQSBqJAALnAEBBH8jAEGAAWsiAiQAIAAgASABQfgAaiIDEFEgAkEIaiABQShqIgQgAUHQAGoi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AAtvAQR/IwBBEGsiAiQAIAJBBGogASgCABDyBRCEBiIDQQBBAUEBEKkCIAIoAgghBAJAIAIoAgRBAUcNACAEIAIoAgwQywQACyABIAIoAgwiBRDvBCAAIAM2AgggACAFNgIEIAAgBDYCACACQRBqJAALeQECfyAALQAEIgEhAgJAIAAtAAVFDQBBASECAkAgAUEBcQ0AAkAgACgCACICLQAKQYABcQ0AIAIoAgBB9YfBAEECIAIoAgQoAgwRDQAhAgwBCyACKAIAQfSHwQBBASACKAIEKAIMEQ0AIQILIAAgAjoABAsgAkEBcQttAQJ/IwBBEGsiAiQAAkACQCABKAIAIAEoAggiA00NACACQQhqIAEgA0EEQQQQhQIgAigCCCIDQYGAgIB4Rw0BIAEoAgghAwsgACADNgIEIAAgASgCBDYCACACQRBqJAAPCyADIAIoAgwQywQAC20BAn8jAEEQayICJAACQAJAIAEoAgAgASgCCCIDTQ0AIAJBCGogASADQQFBARCFAiACKAIIIgNBgYCAgHhHDQEgASgCCCEDCyAAIAM2AgQgACABKAIENgIAIAJBEGokAA8LIAMgAigCDBDLBAALYAECfwJAAkAgAkEQdiACQf//A3FBAEdqIgJAACIDQX9HDQBBACECQQAhBAwBCyACQRB0IgRBcGogBCADQRB0IgJBACAEa0YbIQQLIABBADYCCCAAIAQ2AgQgACACNgIAC2cBAX8jAEEQayIDJAAgA0EIaiABEL0CAkACQCADLQAIQQFHDQAgAygCDCEBIABBBDoAACAAIAE2AgQgAkGEAUkNASACEI0DDAELIAMtAAkhASAAIAI2AgQgACABOgAACyADQRBqJAALZAECfyMAQRBrIgEkACAAQcAAaiICEPwDIAEgAjYCDCABIABBIGo2AgggAUEIahDvAyAAEP4FIABBoAJqEIMDIAEgAEGAAWo2AgwgASAAQeAAajYCCCABQQhqEO8DIAFBEGokAAtmAQJ/IwBBEGsiBSQAIAVBCGogASgCACAEKAIEIAQoAggQ3QRBASEGIAUoAgwhBAJAIAUoAghBAXENACABQQRqIAIgAxD0AyAEEJgFQQAhBgsgACAENgIEIAAgBjYCACAFQRBqJAALZwEBfyMAQRBrIgQkACABKAIAIAIoAgAgAygCABCvBCECIARBCGoQ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CywBAX8jAEEQayICJAAgAkESrUIghiAArYQ3AwhBjYzAACACQQhqIAEQ3gMACzIBAX8jAEEQayIAJAAgAEEDrUIghkGw0MAArYQ3AwhB3IvAACAAQQhqQbjQwAAQ3gMACy0BAX8jAEEQayIBJAAgASAANgIIIAEgAEEgajYCDCABQQhqEO8DIAFBEGokAAszAQF/IwBBoAFrIgMkAAJAQaABRQ0AIAMgAUGgAfwKAAALIAAgAyACEIABIANBoAFqJAALMwEBfyMAQaABayIDJAACQEGgAUUNACADIAFBoAH8CgAACyAAIAMgAhCAASADQaABaiQACywAAkAgAUUNACABQQJ0IQEDQCAAKAIAEI0DIABBBGohACABQXxqIgENAAsLCy0BAX8jAEEQayIBJAAgAUHiAK1CIIYgAUEPaq2ENwMAQfiKwAAgASAAEN4DAAs5AQF/QQEhAQJAIAAtAAQNACAAKAIAIgEoAgBB+IfBAEEBIAEoAgQoAgwRDQAhAQsgACABOgAEIAELLQEBfyMAQRBrIgEkACABQfoArUIghiABQQ9qrYQ3AwBBjYzAACABIAAQ3gMACzEBAX8jAEEQayICJAAgAiAAIAEQhgIgAigCACACKAIEIAIoAgggAigCDCACQRBqJAALMwEBfwJAAkAgARCeBQ0AQQAhAgwBC0EBIQIgARCCBhDKBSEBCyAAIAE2AgQgACACNgIACzEAIAAgASgCACACIAMgASgCBCgCDBENADoACCAAIAE2AgQgACADRToACSAAQQA2AgALKgEBfyMAQRBrIgEkACABQYEBNgIMIAAgAUEMahDxBCEAIAFBEGokACAACycBAX8jAEEwayICJAAgAkEMaiABEHYgACACQQxqEKQBIAJBMGokAAspAAJAIAEgA0cNAAJAIAFFDQAgACACIAH8CgAACw8LIAEgAyAEEK0FAAstAgF/AX4jAEEQayIBJAAgACkCACECIAEgADYCDCABIAI3AgQgAUEEahDuBQALKQACQCABIANHDQACQCABRQ0AIAAgAiAB/AoAAAsPCyABIAMgBBCtBQALKgEBfwJAIAAoAgAiAUECRg0AIAFFDQAgACgCBCIAQYQBSQ0AIAAQjQMLCzIBAX8gASgCAEH3h8EAQQEgASgCBCgCDBENACECIABBADoABSAAIAI6AAQgACABNgIA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KAIIIAEQ2AULEQAgACgCACAAKAIEIAEQpAULEQAgASAAKAIAIAAoAgQQ5QQLEQAgASAAKAIAIAAoAgQQ5QQLEwAgAEGE/MAANgIEIAAgATYCAAsQACAAKAIAIAAoAgQgARBZCxEAIAAoAgAgACgCBCABENgFCxAAIAEgACgCACAAKAIEEHoLEQEBfxDmASIBIAAlASYBIAELDAAgACABIAIQogMPCw4AIAAoAgAgASACEL4ECw8AIAAQ4AQgAEEAOgCAAQsNACAAKAIAEPMFQQBHCw0AIAAoAgAQ9AVBAEcLDwAgACgCACABEM0EEIQGCxUAQeCuwQBB4K7BABDwAigCABCWBQsNACAAKAIAEPgFQQBHCw0AIAAoAgAQ+QVBAEcLDQAgACgCABD7BUEARwsNACAAKAIAEPwFQQBHCxAAIABBmPnAACABIAIQiQELEAAgAEHU+sAAIAEgAhCJAQsOACAAIAIgASgCDBEJAAsLACAAIAEQgAYaAAsQACAAQaj7wAAgASACEIkBCxAAIABB7P3AACABIAIQiQELEgBB/P7AAEEjQZD/wAAQ3gMACw8AIAAoAgApAwAgARDeAQsPAEGwrcEAQTMgABDeAwALEAAgAEHUh8EAIAEgAhCJAQsPAEGtoMEAQSsgABDQBAALDAAgASAAIAIQtgMACwwAIAAlASABJQEQCgsMACAAIAEgAiUBEBALDAAgACUBIAElARAfCwwAIAAlASABJQEQKQsOACABQeyDwABBGBDlBAsOACABQZCEwABBHRDlBAsOACABQa2EwABBHRDlBAsOACABQcqEwABBHhDlBAsOACABQeiEwABBHhDlBAsOACABQZewwABBJBDlBAsOACABQbuwwABBJRDlBAsOACABQZaywABBLRDlBAsOACABQcOywABBMhDlBAsOACABQeCwwABBEhDlBAsOACABQbSuwABBIBDlBAsOACABQZDLwABBEBDlBAsMACAAEIcGIAAQzAULDgAgAUHgzMAAQQUQ5QQLDAAgABCHBiAAEMwFCwwAIAAQhwYgABDMBQsKACAAIAEQuQQPCwoAIAAgARDCAw8LCgAgACABIAIQLgsNACAAIAFB4OLAABBDCw4AIAFB7OzAAEEREOUECwwAIAAgARDbBBCEBgsNACAAKAIAENgEEIQGCw0AIAAoAgAQ9QUQhAYL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IsADIjsgwAATSW50ZXJuYWwgZXJyb3IgYXQgIsADIjsgwAAbYmFzZTY0IGRlY29kaW5nIGZhaWxlZCBhdCAiwAMiOyDAABBhc3NlcnRpb24gYGxlZnQgwBcgcmlnaHRgIGZhaWxlZAogIGxlZnQ6IMAJCiByaWdodDogwAAQYXNzZXJ0aW9uIGBsZWZ0IMAQIHJpZ2h0YCBmYWlsZWQ6IMAJCiAgbGVmdDogwAkKIHJpZ2h0OiDAAA9Vbmtub3duIEVycm9yOiDAAApPUyBFcnJvcjogwAAHRXJyb3I6IMAASGNhbm5vdCBhY2Nlc3MgYSBUaHJlYWQgTG9jYWwgU3RvcmFnZSB2YWx1ZSBkdXJpbmcgb3IgYWZ0ZXIgZGVzdHJ1Y3Rpb246IMAAFkludmFsaWQgaW5wdXQgbGVuZ3RoOiDAACppbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiDAAMACOiDAABF1bmtub3duIHZhcmlhbnQgYMAYYCwgdGhlcmUgYXJlIG5vIHZhcmlhbnRzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9nZW5lcmFsX3B1cnBvc2UvZGVjb2RlX3N1ZmZpeC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL3N0cmF0ZWd5L2dyaXN1LnJzAGxpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9kaXlfZmxvYXQucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcmFuZF9jb3JlLTAuNi40L3NyYy9vcy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hcmdvbjItMC41LjMvc3JjL3BhcmFtcy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9vcGFxdWUta2UtNC4wLjEvc3JjL21lc3NhZ2VzLnJzAC9ydXN0Yy8yNTRiNTk2MDdkNDQxN2U5ZGZmYmMzMDcxMzhhZTVjODYyODBmZTRjL2xpYnJhcnkvc3RkL3NyYy9zeXMvdGhyZWFkX2xvY2FsL25vX3RocmVhZHMucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvb3BhcXVlLWtlLTQuMC4xL3NyYy9rZXlwYWlyLnJzAC9ydXN0Yy8yNTRiNTk2MDdkNDQxN2U5ZGZmYmMzMDcxMzhhZTVjODYyODBmZTRjL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jdXJ2ZTI1NTE5LWRhbGVrLTQuMS4zL3NyYy9yaXN0cmV0dG8ucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9kcmFnb24ucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vYmlnbnVtLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L251bS5ycwAvcnVzdGMvMjU0YjU5NjA3ZDQ0MTdlOWRmZmJjMzA3MTM4YWU1Yzg2MjgwZmU0Yy9saWJyYXJ5L3N0ZC9zcmMvdGhyZWFkL2xvY2FsLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2FyZ29uMi0wLjUuMy9zcmMvYmxvY2sucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2hhMi0wLjEwLjkvc3JjL2NvcmVfYXBpLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2VsbGlwdGljLWN1cnZlLTAuMTMuOC9zcmMvaGFzaDJjdXJ2ZS9oYXNoMmZpZWxkL2V4cGFuZF9tc2cucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYXJnb24yLTAuNS4zL3NyYy9ibGFrZTJiX2xvbmcucnMAL3J1c3RjLzI1NGI1OTYwN2Q0NDE3ZTlkZmZiYzMwNzEzOGFlNWM4NjI4MGZlNGMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ZvcHJmLTAuNS4wL3NyYy9vcHJmLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3dhc20tYmluZGdlbi0wLjIuMTA4L3NyYy9leHRlcm5yZWYucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvb3BhcXVlLWtlLTQuMC4xL3NyYy9vcGFxdWUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9kaWdlc3QtMC4xMC43L3NyYy9jb3JlX2FwaS9ydF92YXJpYWJsZS5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9kaWdlc3QtMC4xMC43L3NyYy9jb3JlX2FwaS9jdF92YXJpYWJsZS5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9iYXNlNjQtMC4yMi4xL3NyYy9lbmNvZGUucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYmFzZTY0LTAuMjIuMS9zcmMvZW5naW5lL2dlbmVyYWxfcHVycG9zZS9kZWNvZGUucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNi4xL3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9vcGFxdWUta2UtNC4wLjEvc3JjL3NlcmlhbGl6YXRpb24vbW9kLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9nZW5lcmFsX3B1cnBvc2UvbW9kLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9tb2QucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9tb2QucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvZWxsaXB0aWMtY3VydmUtMC4xMy44L3NyYy9oYXNoMmN1cnZlL2hhc2gyZmllbGQvZXhwYW5kX21zZy94bWQucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTEvc3JjL2RsbWFsbG9jLnJzAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9nZW5lcmljLWFycmF5LTAuMTQuNy9zcmMvbGliLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2JsYWtlMi0wLjEwLjYvc3JjL2xpYi5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9qcy1zeXMtMC4zLjg1L3NyYy9saWIucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtd2FzbS1iaW5kZ2VuLTAuNi41L3NyYy9saWIucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaGtkZi0wLjEyLjQvc3JjL2xpYi5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9ibG9jay1idWZmZXItMC4xMC40L3NyYy9saWIucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYXJnb24yLTAuNS4zL3NyYy9saWIucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvb25jZV9jZWxsLTEuMjEuMy9zcmMvbGliLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2htYWMtMC4xMi4xL3NyYy9saWIucnMAFW1lbW9yeSBhbGxvY2F0aW9uIG9mIMANIGJ5dGVzIGZhaWxlZAAQZmxvYXRpbmcgcG9pbnQgYMABYAABYMAGYCBvciBgwAFgAAtjaGFyYWN0ZXIgYMABYAAJaW50ZWdlciBgwAFgAAlib29sZWFuIGDAAWAAD21pc3NpbmcgZmllbGQgYMABYAARZHVwbGljYXRlIGZpZWxkIGDAAWAAAWDAAWAAFEludmFsaWQgbGFzdCBzeW1ib2wgwAksIG9mZnNldCDAAS4AD0ludmFsaWQgc3ltYm9sIMAJLCBvZmZzZXQgwAEuABkoQ29udmVydGluZyB0eXBlIGZhaWxlZCkgwAIgKMABOsABOsABKQAISnNWYWx1ZSjAASkAJmNvcHlfZnJvbV9zbGljZTogc291cmNlIHNsaWNlIGxlbmd0aCAowCspIGRvZXMgbm90IG1hdGNoIGRlc3RpbmF0aW9uIHNsaWNlIGxlbmd0aCAowAEpAGl0ZXJhdGlvbnNtZW1vcnlwYXJhbGxlbGlzbQEXEAAKAAAACxcQAAYAAAARFxAACwAAAGVudW0gS2V5U3RyZXRjaGluZ0Z1bmN0aW9uQ29uZmlncGFzc3dvcmRjbGllbnRMb2dpblN0YXRlc3RhcnRMb2dpblJlcXVlc3RzZXJ2ZXJTZXR1cHJlZ2lzdHJhdGlvblJlY29yZHVzZXJJZGVudGlmaWVyaWRlbnRpZmllcnNzZXJ2ZXJMb2dpblN0YXRlbG9naW5SZXNwb25zZWtleVN0cmV0Y2hpbmdmaW5pc2hMb2dpblJlcXVlc3RzZXNzaW9uS2V5ZXhwb3J0S2V5c2VydmVyU3RhdGljUHVibGljS2V5c3RydWN0IFN0YXJ0Q2xpZW50UmVnaXN0cmF0aW9uUGFyYW1zc3RydWN0IEZpbmlzaENsaWVudFJlZ2lzdHJhdGlvblBhcmFtc3ZhcmlhbnQgaWRlbnRpZmllcnJmYy1yZWNvbW1lbmRlZHJmYy1kcmFmdC1yZWNvbW1lbmRlZG1lbW9yeS1jb25zdHJhaW5lZGFyZ29uMmlkLWN1c3RvbQByGBAADwAAAIEYEAAVAAAAlhgQABIAAACoGBAADwAAAGNsaWVudFJlZ2lzdHJhdGlvblN0YXRlcmVnaXN0cmF0aW9uUmVxdWVzdHJlZ2lzdHJhdGlvblJlc3BvbnNlc3RydWN0IENyZWF0ZVNlcnZlclJlZ2lzdHJhdGlvblJlc3BvbnNlUGFyYW1zc3RydWN0IHZhcmlhbnQgS2V5U3RyZXRjaGluZ0Z1bmN0aW9uQ29uZmlnOjpDdXN0b20AAAAAAAAAAAAAAAAAAAAAAAACQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktX////////////////////////////////////////////////////////////z7//zQ1Njc4OTo7PD3/////////AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBn/////P/8aGxwdHh8gISIjJCUmJygpKissLS4vMDEyM/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9JbnZhbGlkIGtleVN0cmV0Y2hpbmcgKGFyZ29uMmlkKSBjb21iaW5hdGlvbnN0YXJ0IGNsaWVudCBsb2dpbmRlc2VyaWFsaXplIHJlZ2lzdHJhdGlvblJlY29yZGRlc2VyaWFsaXplIHN0YXJ0TG9naW5SZXF1ZXN0c3RhcnQgc2VydmVyIGxvZ2luZGVzZXJpYWxpemUgc2VydmVyU2V0dXBkZXNlcmlhbGl6ZSBjbGllbnRMb2dpblN0YXRlZGVzZXJpYWxpemUgbG9naW5SZXNwb25zZWRlc2VyaWFsaXplIHNlcnZlckxvZ2luU3RhdGVkZXNlcmlhbGl6ZSBmaW5pc2hMb2dpblJlcXVlc3RmaW5pc2ggc2VydmVyIGxvZ2luQ3JlYXRlU2VydmVyUmVnaXN0cmF0aW9uUmVzcG9uc2VSZXN1bHRDcmVhdGVTZXJ2ZXJSZWdpc3RyYXRpb25SZXNwb25zZVBhcmFtc30XEAALAAAAmhcQAA4AAADvGBAAEwAAAIEVEAAKAAAAewEAACkAAACBFRAACgAAABABAAApAAAAgRUQAAoAAACjAQAAKQAAAIEVEAAKAAAAUwEAACkAAACBFRAACgAAAN4BAAApAAAAgRUQAAoAAAAKAgAAKQAAAIEVEAAKAAAA5AAAACkAAAAEAhAABgAAAAoCEAAGAAAAU3RhcnRDbGllbnRMb2dpblJlc3VsdFN0YXJ0U2VydmVyTG9naW5SZXN1bHRTdGFydENsaWVudExvZ2luUGFyYW1zAABUFxAACAAAAFN0YXJ0U2VydmVyTG9naW5QYXJhbXMAAH0XEAALAAAAiBcQABIAAABsFxAAEQAAAJoXEAAOAAAAqBcQAAsAAABGaW5pc2hDbGllbnRMb2dpblJlc3VsdEZpbmlzaFNlcnZlckxvZ2luUmVzdWx0RmluaXNoQ2xpZW50TG9naW5QYXJhbXMAAABcFxAAEAAAAMMXEAANAAAAVBcQAAgAAACoFxAACwAAANAXEAANAAAARmluaXNoU2VydmVyTG9naW5QYXJhbXMAsxcQABAAAADdFxAAEgAAAKgXEAALAAAAU3RhcnRDbGllbnRSZWdpc3RyYXRpb25SZXN1bHRTdGFydENsaWVudFJlZ2lzdHJhdGlvblBhcmFtc0ZpbmlzaENsaWVudFJlZ2lzdHJhdGlvblJlc3VsdEZpbmlzaENsaWVudFJlZ2lzdHJhdGlvblBhcmFtcwAAVBcQAAgAAAACGRAAFAAAANgYEAAXAAAAqBcQAAsAAADQFxAADQAAAHN0YXJ0IGNsaWVudCByZWdpc3RyYXRpb25kZXNlcmlhbGl6ZSBjbGllbnRSZWdpc3RyYXRpb25TdGF0ZWRlc2VyaWFsaXplIHJlZ2lzdHJhdGlvblJlc3BvbnNlZmluaXNoIGNsaWVudCByZWdpc3RyYXRpb25kZXNlcmlhbGl6ZSByZWdpc3RyYXRpb25SZXF1ZXN0c3RhcnQgc2VydmVyIHJlZ2lzdHJhdGlvbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAACAAAAAQAAAENyZWRlbnRpYWxSZXNwb25zZVBhZE1hc2tpbmdLZXkAHA0QAF8AAACUAgAAKgAAAG1hc2tlZCBub25jZW1hc2tlZCBoYXNobWFza2VkIHB1YmxpYyBrZXlPUEFRVUUtRGVyaXZlS2V5UGFpck9wcmZLZXljbGllbnQgbm9uY2VPUFJGIHNlZWQODhAAawAAAHwAAAAkAAAAGhQQAGAAAACkAAAAIAAAABoUEABgAAAArgAAABoAAAAaFBAAYAAAAJ0AAAAlAAAAGhQQAGAAAAA4AQAAHgAAABoUEABgAAAANQEAABgAAABTbGljZSBtdXN0IGJlIHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgYXJyYXkAAEMSEABhAAAAXAIA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b25TZWNSYW5kb21Db3B5Qnl0ZXM6IGlPUyBTZWN1cml0eSBmcmFtZXdvcmsgZmFpbHVyZVJ0bEdlblJhbmRvbTogV2luZG93cyBzeXN0ZW0gZnVuY3Rpb24gZmFpbHVyZVJEUkFORDogZmFpbGVkIG11bHRpcGxlIHRpbWVzOiBDUFUgaXNzdWUgbGlrZWx5UkRSQU5EOiBpbnN0cnVjdGlvbiBub3Qgc3VwcG9ydGVkV2ViIENyeXB0byBBUEkgaXMgdW5hdmFpbGFibGVDYWxsaW5nIFdlYiBBUEkgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyBmYWlsZWRyYW5kU2VjdXJlOiBWeFdvcmtzIFJORyBtb2R1bGUgaXMgbm90IGluaXRpYWxpemVkTm9kZS5qcyBjcnlwdG8gQ29tbW9uSlMgbW9kdWxlIGlzIHVuYXZhaWxhYmxlQ2FsbGluZyBOb2RlLmpzIEFQSSBjcnlwdG8ucmFuZG9tRmlsbFN5bmMgZmFpbGVkTm9kZS5qcyBFUyBtb2R1bGVzIGFyZSBub3QgZGlyZWN0bHkgc3VwcG9ydGVkLCBzZWUgaHR0cHM6Ly9kb2NzLnJzL2dldHJhbmRvbSNub2RlanMtZXMtbW9kdWxlLXN1cHBvcnQAAAAnAAAAJgAAABQAAAAyAAAALQAAAC8AAAAhAAAAHQAAAC0AAAAAAAAAAAAAADEAAAAtAAAAMAAAAGUAAAD0OBAAGzkQAEE5EABVORAAhzkQALQ5EADjORAABDoQACE6EAAAAAAAAAAAAE46EAB/OhAArDoQANw6EAAwVxAAPFcQAEhXEABUVxAAABMQAFoAAAAUGgAAAQAAAHJldHVybiB0aGlzTGF6eSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAA1RQQAF0AAAAIAwAAGQAAAHJlZW50cmFudCBpbml0AADVFBAAXQAAAHoCAAANAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGFmdGVyIGJlaW5nIGRyb3BwZWQAALQMEABnAAAAfwAAABEAAAC0DBAAZwAAAIwAAAARAAAAVAAAAAwAAAAEAAAAVQAAAFYAAAAaAAAAdTMyZXhwbGljaXQgcGFuaWMAAADTEBAAYgAAACQJAAASAAAAb25l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R2xvYmFsOjpjcnlwdG86Ol9fd2JnX2NyeXB0b184NmYyNjMxZTkxYjUxNTExOjpoNGQ1ZmU5MmY1ODY2YjBmOARSZ2V0cmFuZG9tOjppbXA6Okdsb2JhbDo6cHJvY2Vzczo6X193YmdfcHJvY2Vzc18zOTc1ZmQ2YzcyZjUyMGFhOjpoZjEzYjAzYjZlMGVlZWRlMQVVZ2V0cmFuZG9tOjppbXA6OlByb2Nlc3M6OnZlcnNpb25zOjpfX3diZ192ZXJzaW9uc180ZTMxMjI2ZjVlOGRjOTA5OjpoY2E3Mzk3ZmUxNGY3NGUyNAZOZ2V0cmFuZG9tOjppbXA6OlZlcnNpb25zOjpub2RlOjpfX3diZ19ub2RlX2UxZjI0Zjg5YTczMzZjMmU6OmgxNzBmYmYxMzk2YzRmZjc5B1VnZXRyYW5kb206OmltcDo6TW9kdWxlOjpyZXF1aXJlX2ZuOjpfX3diZ19yZXF1aXJlX2I3NGY0N2ZjMmQwMjJmZDY6OmhiMGI3MTk4NTE2MTIyMmY5CFVnZXRyYW5kb206OmltcDo6R2xvYmFsOjptc19jcnlwdG86Ol9fd2JnX21zQ3J5cHRvX2Q1NjJiYmU4M2UwZDRiOTE6OmhiMzZkMzUwOGYyODRjNDE4CWZnZXRyYW5kb206OmltcDo6Tm9kZUNyeXB0bzo6cmFuZG9tX2ZpbGxfc3luYzo6X193YmdfcmFuZG9tRmlsbFN5bmNfZjhjMTUzYjc5ZjI4NTgxNzo6aDBkYTcyMWZlNTFhNjY5ZGQKZ2dldHJhbmRvbTo6aW1wOjpXZWJDcnlwdG86OmdldF9yYW5kb21fdmFsdWVzOjpfX3diZ19nZXRSYW5kb21WYWx1ZXNfYjNmMTVmY2JmYWJiMGY4Yjo6aDljNzhhOTc4Mjc4YmQ3MzELQmpzX3N5czo6T2JqZWN0OjpuZXc6Ol9fd2JnX25ld18zNjEzMDhiMjM1NmNlY2QwOjpoMGI5ZTBjYjM4MGU3OTYzMQxUanNfc3lzOjpGdW5jdGlvbjo6bmV3X25vX2FyZ3M6Ol9fd2JnX25ld19ub19hcmdzXzFjN2M4NDJmMDhkMDBlYmI6OmhkNWM1YzczNjBmMDFjNjE1DUZqc19zeXM6OlVpbnQ4QXJyYXk6Om5ldzo6X193YmdfbmV3X2RkMmI2ODBjOGJmNmFlMjk6OmhkNDA1MGQ5ZmNiYTQ5N2Q0Dkxqc19zeXM6OlVpbnQ4QXJyYXk6Omxlbmd0aDo6X193YmdfbGVuZ3RoXzMyZWQ5YTI3OWFjZDA1NGM6Omg1MDQ2MWMyYzRiNDllYWQxD15qc19zeXM6OlVpbnQ4QXJyYXk6Om5ld193aXRoX2xlbmd0aDo6X193YmdfbmV3X3dpdGhfbGVuZ3RoX2EyYzM5Y2JlODhmZDhmZjE6Omg4YzFmYzJkNzVjNzlkNmVlEF1qc19zeXM6OlVpbnQ4QXJyYXk6OmNvcHlfdG9fc2xpY2U6Ol9fd2JnX3Byb3RvdHlwZXNldGNhbGxfYmRjZGNjNTg0MmU0ZDc3ZDo6aDhmNWQyNmIxZTg5MmNjNDkRUGpzX3N5czo6VWludDhBcnJheTo6c3ViYXJyYXk6Ol9fd2JnX3N1YmFycmF5X2E5NmUxZmVmMTdlZDIzY2I6Omg2ZGM3NDMzZjYzZDcyNzE3EpABanNfc3lzOjpfOjo8aW1wbCB3YXNtX2JpbmRnZW46OmNhc3Q6OkpzQ2FzdCBmb3IganNfc3lzOjpVaW50OEFycmF5Pjo6aW5zdGFuY2VvZjo6X193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzliOTA3NTkzNWM3NDcwN2M6OmgyZTdiNDJiNjZhOTI3OWVhE5IBanNfc3lzOjpfOjo8aW1wbCB3YXNtX2JpbmRnZW46OmNhc3Q6OkpzQ2FzdCBmb3IganNfc3lzOjpBcnJheUJ1ZmZlcj46Omluc3RhbmNlb2Y6Ol9fd2JnX2luc3RhbmNlb2ZfQXJyYXlCdWZmZXJfYzM2NzE5OWUyZmEyYWEwNDo6aDIzYmRkMmMzNDU2MWY3ZmYUQWpzX3N5czo6QXJyYXk6OmdldDo6X193YmdfZ2V0XzliOTRkNzNlNjIyMWY3NWM6OmgwMzI0MDQ0YTEyNDAzZDEzFUdqc19zeXM6OkFycmF5OjpsZW5ndGg6Ol9fd2JnX2xlbmd0aF8zNWE3YmFjZTQwZjM2ZWFjOjpoMDk2N2ViMGJmZGE5MmZlMBZYanNfc3lzOjpOdW1iZXI6OmlzX3NhZmVfaW50ZWdlcjo6X193YmdfaXNTYWZlSW50ZWdlcl9iZmJjNzMzMmE5NzY4ZDJhOjpoNTU4N2E5ZWVkZTY3ZTk1OBdKanNfc3lzOjpPYmplY3Q6OmVudHJpZXM6Ol9fd2JnX2VudHJpZXNfNThjNzkzNGM3NDVkYWFjNzo6aGNmMTg2MjhlZjVjYjM5ZDQYe2pzX3N5czo6Z2xvYmFsOjpnZXRfZ2xvYmFsX29iamVjdDo6R0xPQkFMX1RISVM6OmluaXQ6Ol9fd2JnX3N0YXRpY19hY2Nlc3Nvcl9HTE9CQUxfVEhJU19lNjI4ZTg5YWIzYjFjOTVmOjpoYzZmN2ZlNmU4NWY4Y2NhYhltanNfc3lzOjpnbG9iYWw6OmdldF9nbG9iYWxfb2JqZWN0OjpTRUxGOjppbml0OjpfX3diZ19zdGF0aWNfYWNjZXNzb3JfU0VMRl9hNjIxZDNkZmJiNjBkMGNlOjpoZTE4NTA1ZjA1MDFlODIwORpxanNfc3lzOjpnbG9iYWw6OmdldF9nbG9iYWxfb2JqZWN0OjpHTE9CQUw6OmluaXQ6Ol9fd2JnX3N0YXRpY19hY2Nlc3Nvcl9HTE9CQUxfMTI4MzcxNjdhZDkzNTExNjo6aDkxZDEyZWRkM2M2ZjVjYjUbcWpzX3N5czo6Z2xvYmFsOjpnZXRfZ2xvYmFsX29iamVjdDo6V0lORE9XOjppbml0OjpfX3diZ19zdGF0aWNfYWNjZXNzb3JfV0lORE9XX2Y4NzI3ZjBjZjg4OGUwYmQ6Omg0YzU2ZjRiYjEzY2VhOTZmHEdqc19zeXM6OkZ1bmN0aW9uOjpjYWxsMDo6X193YmdfY2FsbF8zODllZmUyODQzNWE5Mzg4OjpoMjM2M2QyYTliYTZjOTYxYR1HanNfc3lzOjpGdW5jdGlvbjo6Y2FsbDE6Ol9fd2JnX2NhbGxfNDcwOGUwYzEzYmRjOGU5NTo6aDBhMWMwZmRmMGU5MmEyM2YeZHdhc21fYmluZGdlbjo6X193YmluZGdlbl9udW1iZXJfZ2V0OjpfX3diZ19fX3diaW5kZ2VuX251bWJlcl9nZXRfOGZmNDI1NTUxNmNjYWQzZTo6aDRhODgyNjY1OTZmMDRjZTcfVHdhc21fYmluZGdlbjo6X193YmluZGdlbl9pbjo6X193YmdfX193YmluZGdlbl9pbl80N2ZhNjg2M2JlNmYyZjI1OjpoZDBiMDczMGQ0OTA4MjM5MSBad2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX3Rocm93OjpfX3diZ19fX3diaW5kZ2VuX3Rocm93X2JlMjg5ZDUwMzRlZDI3MWI6OmhmZmUzNjM3MWE0MWRiYmE5IVR3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5fYXNfbnVtYmVyOjpfX3diZ19OdW1iZXJfMDQ2MjRkZTdkMGU4MzMyZDo6aDk1NjgwNjI3Mzc2Mjc4ZWEiU3dhc21fYmluZGdlbjo6X193YmluZGdlbl9lcnJvcl9uZXc6Ol9fd2JnX0Vycm9yXzhjNGU0M2ZlNzQ1NTlkNzM6OmhhNDRkNWEwYmNkNmJmMjg3I2J3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5faXNfb2JqZWN0OjpfX3diZ19fX3diaW5kZ2VuX2lzX29iamVjdF81YWU4ZTU4ODBmMmMxZmJkOjpoMjg2ZWMyZGFlOTU5ZjNjNCRid2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX2lzX3N0cmluZzo6X193YmdfX193YmluZGdlbl9pc19zdHJpbmdfY2Q0NDQ1MTZlZGM1YjE4MDo6aDU2ZWU4NzhmOTQwYjE0YmIlZHdhc21fYmluZGdlbjo6X193YmluZGdlbl9zdHJpbmdfZ2V0OjpfX3diZ19fX3diaW5kZ2VuX3N0cmluZ19nZXRfNzJmYjY5NjIwMmM1NjcyOTo6aDlhNmNjYmNlYWU3NWI2NDkmZndhc21fYmluZGdlbjo6X193YmluZGdlbl9ib29sZWFuX2dldDo6X193YmdfX193YmluZGdlbl9ib29sZWFuX2dldF9iYmJiMWMxOGFhMmY1ZTI1OjpoNzBkYjEyMTUyNDcyYTI4ZCdmd2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX2lzX2Z1bmN0aW9uOjpfX3diZ19fX3diaW5kZ2VuX2lzX2Z1bmN0aW9uXzAwOTVhNzNiOGIxNTZmNzY6OmhjZjc0MGJhNmYwYTZhMDIyKGh3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5faXNfdW5kZWZpbmVkOjpfX3diZ19fX3diaW5kZ2VuX2lzX3VuZGVmaW5lZF85ZTRkOTI1MzRjNDJkNzc4OjpoN2MyODI1M2E2Y2RjYjRmYSlsd2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX2pzdmFsX2xvb3NlX2VxOjpfX3diZ19fX3diaW5kZ2VuX2pzdmFsX2xvb3NlX2VxXzlkZDc3ZDhjZDY2NzE4MTE6OmhkMjAxY2RjOWQwNzkxYWUzKmh3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5fZGVidWdfc3RyaW5nOjpfX3diZ19fX3diaW5kZ2VuX2RlYnVnX3N0cmluZ18wYmM4NDgyYzZlMzUwOGFlOjpoZjdhMjM5YmFkYWNlYmUxNCwuUmVmKFNsaWNlKFU4KSkgLT4gTmFtZWRFeHRlcm5yZWYoIlVpbnQ4QXJyYXkiKS0YUmVmKFN0cmluZykgLT4gRXh0ZXJucmVmLi9zaGEyOjpzaGE1MTI6OnNvZnQ6OmNvbXByZXNzOjpoMGM3NTc0N2EyZjY1MzZiNS8zYmxha2UyOjpCbGFrZTJiVmFyQ29yZTo6Y29tcHJlc3M6OmgwMGRkZGJjZGQ5NGJmODIwMEhjb3JlOjpudW06OmZsdDJkZWM6OnN0cmF0ZWd5OjpkcmFnb246OmZvcm1hdF9zaG9ydGVzdDo6aDcxMzhkN2I5MTRmYTdkYzkxRWNvcmU6Om51bTo6Zmx0MmRlYzo6c3RyYXRlZ3k6OmRyYWdvbjo6Zm9ybWF0X2V4YWN0OjpoZmQyNzQ2MDhlNWU2NWIwZTI6ZGxtYWxsb2M6OmRsbWFsbG9jOjpEbG1hbGxvYzxBPjo6bWFsbG9jOjpoYmJiZTc2MmIwOTU5NzA2MzN0Y3VydmUyNTUxOV9kYWxlazo6c2NhbGFyOjo8aW1wbCBjdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OnUzMjo6c2NhbGFyOjpTY2FsYXIyOT46OmludmVydDo6aDcxMjg5MTE3YThkNzFhYzM0K2FyZ29uMjo6QXJnb24yOjpjb21wcmVzczo6aDA5Njc5MWRjOWY2Zjk3OTQ1LW9wYXF1ZTo6c3RhcnRfc2VydmVyX2xvZ2luOjpoNDc5N2FlMmE3ZGVlYTQwYzZvPGJhc2U2NDo6ZW5naW5lOjpnZW5lcmFsX3B1cnBvc2U6OkdlbmVyYWxQdXJwb3NlIGFzIGJhc2U2NDo6ZW5naW5lOjpFbmdpbmU+OjppbnRlcm5hbF9kZWNvZGU6Omg5MGVkOWYzOTQ3M2NkZGM3Nz1vcGFxdWVfa2U6Om9wYXF1ZTo6Q2xpZW50TG9naW48Q1M+OjpmaW5pc2g6Omg2NGMxOTYxMTJhMTk2MzQxOFBvcGFxdWVfa2U6Om9wYXF1ZTo6U2VydmVyTG9naW48Q1M+OjpidWlsZGVyX3dpdGhfa2V5X21hdGVyaWFsOjpoNWQ3YWFjYTM0MTBmNTQwYTl7PG9wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjp0cmlwbGVkaDo6VHJpcGxlRGg8RyxIPiBhcyBvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6S2V5RXhjaGFuZ2U+OjpnZW5lcmF0ZV9rZTM6Omg0NGMxMGFjYmI1YzkyNzQ0OjVvcGFxdWU6OmZpbmlzaF9jbGllbnRfcmVnaXN0cmF0aW9uOjpoY2Y0ODExNjU1N2NhZDA1Zjt4PG9wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjp0cmlwbGVkaDo6VHJpcGxlRGg8RyxIPiBhcyBvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6S2V5RXhjaGFuZ2U+OjpidWlsZF9rZTI6Omg0OGRiZmQ5M2FiNmUyMWFlPG08c2VyZGVfd2FzbV9iaW5kZ2VuOjpkZTo6RGVzZXJpYWxpemVyIGFzIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZXI+OjpkZXNlcmlhbGl6ZV9zdHJ1Y3Q6OmhjYjM4YjBmZDc0ZDZjYjg0PS5vcGFxdWU6OmZpbmlzaF9jbGllbnRfbG9naW46OmgyNmY4ODAxZDZhZTUzMWYwPm88YmFzZTY0OjplbmdpbmU6OmdlbmVyYWxfcHVycG9zZTo6R2VuZXJhbFB1cnBvc2UgYXMgYmFzZTY0OjplbmdpbmU6OkVuZ2luZT46OmludGVybmFsX2VuY29kZTo6aGMxYzMxN2IwYWE3NzZlMWI/bTxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpEZXNlcmlhbGl6ZXIgYXMgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplcj46OmRlc2VyaWFsaXplX3N0cnVjdDo6aDZjNmRkYTY1YjQ0MTdkOGFAbTxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpEZXNlcmlhbGl6ZXIgYXMgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplcj46OmRlc2VyaWFsaXplX3N0cnVjdDo6aGUxOGNjZjdkMzgyZDk3NDhBLm9wYXF1ZTo6ZmluaXNoX3NlcnZlcl9sb2dpbjo6aDIzY2QzZjA3ZmYwZTNjNDZCS2NvcmU6Om51bTo6Zmx0MmRlYzo6c3RyYXRlZ3k6OmdyaXN1Ojpmb3JtYXRfc2hvcnRlc3Rfb3B0OjpoN2Q4NGJlMmQ1NWEwMTc0MUNbY3VydmUyNTUxOV9kYWxlazo6YmFja2VuZDo6c2VyaWFsOjp1MzI6OnNjYWxhcjo6U2NhbGFyMjk6Om1vbnRnb21lcnlfbXVsOjpoNjVmZjQ1ZTQxNGRhNDMwNkRAaGFzaGJyb3duOjpyYXc6OlJhd1RhYmxlPFQsQT46OnJlc2VydmVfcmVoYXNoOjpoMDE5ODA5OWVhMGIzMmZmNEUuYXJnb24yOjpBcmdvbjI6OmZpbGxfYmxvY2tzOjpoNzZiNTRkZTNmYWY1Nzg5MEY7Y3VydmUyNTUxOV9kYWxlazo6c2NhbGFyOjpTY2FsYXI6OnJlZHVjZTo6aGJkNGY4ZmRiNDU3OWYxOThHbTxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpEZXNlcmlhbGl6ZXIgYXMgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplcj46OmRlc2VyaWFsaXplX3N0cnVjdDo6aDY0YWNjNDk1ZGYxNTQwZWJIbTxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpEZXNlcmlhbGl6ZXIgYXMgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplcj46OmRlc2VyaWFsaXplX3N0cnVjdDo6aGJjN2Y5MWNmMGIyZGUwNTlJQmNvcmU6Om51bTo6Zmx0MmRlYzo6c3RyYXRlZ3k6OmRyYWdvbjo6bXVsX3BvdzEwOjpoMTEyY2U4NjE3YTk0N2VlNUpeY3VydmUyNTUxOV9kYWxlazo6YmFja2VuZDo6c2VyaWFsOjp1MzI6OnNjYWxhcjo6U2NhbGFyMjk6Om1vbnRnb21lcnlfc3F1YXJlOjpoOTRjMmNmYTI2ZGRjN2Y0MUs1YXJnb24yOjpibGFrZTJiX2xvbmc6OmJsYWtlMmJfbG9uZzo6aDc3OWRjNjM1MmM2ZTZiMTBMPm9wYXF1ZTo6Y3JlYXRlX3NlcnZlcl9yZWdpc3RyYXRpb25fcmVzcG9uc2U6Omg4ZjIzYjc2ZTNkNWNjNmM5TT5vcGFxdWVfa2U6OmVudmVsb3BlOjpFbnZlbG9wZTxDUz46Om9wZW5fcmF3OjpoNmEyM2RkZDhjZDAyNThhYU5PY3VydmUyNTUxOV9kYWxlazo6cmlzdHJldHRvOjpDb21wcmVzc2VkUmlzdHJldHRvOjpkZWNvbXByZXNzOjpoNDYwMzdjNGQ0NzU4NjY2Y086b3BhcXVlX2tlOjplbnZlbG9wZTo6RW52ZWxvcGU8Q1M+OjpzZWFsOjpoZmMyZDk0NTFkNDNkYzcyOVA5Y29yZTo6b3BzOjpmdW5jdGlvbjo6Rm5PbmNlOjpjYWxsX29uY2U6OmhlMDFiMjdkOTMzYjJlMjM5UXM8JmN1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6dTMyOjpmaWVsZDo6RmllbGRFbGVtZW50MjYyNSBhcyBjb3JlOjpvcHM6OmFyaXRoOjpNdWw+OjptdWw6OmgxOWM2Y2M4NGNiNzQxZjdhUlVlbGxpcHRpY19jdXJ2ZTo6aGFzaDJjdXJ2ZTo6aGFzaDJmaWVsZDo6ZXhwYW5kX21zZzo6RG9tYWluPEw+Ojp4bWQ6OmgwZjY0MTE1NzY3MzM3ODZjU1pjdXJ2ZTI1NTE5X2RhbGVrOjpyaXN0cmV0dG86OlJpc3RyZXR0b1BvaW50OjplbGxpZ2F0b3JfcmlzdHJldHRvX2ZsYXZvcjo6aDVhNTUyMzFiYWZkNzBkZjJUP29wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjpzaGFyZWQ6OmRlcml2ZV9rZXlzOjpoNTZmYWY3ZTVmMTIyMDI3MlU6b3BhcXVlX2tlOjplbnZlbG9wZTo6RW52ZWxvcGU8Q1M+OjpvcGVuOjpoZDA0NGQ5M2M5ZTBmOGUyNlYzY29yZTo6c3RyOjpjb3VudDo6ZG9fY291bnRfY2hhcnM6OmgzNTJlZmNmMjY2NjExYTIzVyRobWFjOjpnZXRfZGVyX2tleTo6aGU1N2E5OWVmZGIzMTE3OWNYPG9wYXF1ZV9rZTo6b3BhcXVlOjpTZXJ2ZXJMb2dpbjxDUz46OmJ1aWxkOjpoOGIzYzM0NjhmYWVjMTZjZFkxPHN0ciBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoOTllNjQ5NWU4YTU0ZGY5NFoxY29yZTo6c3RyOjpzbGljZV9lcnJvcl9mYWlsX3J0OjpoZTMzZjA0YmI1MzI3N2NjNFtCY29yZTo6Zm10OjpmbG9hdDo6ZmxvYXRfdG9fZGVjaW1hbF9jb21tb25fZXhhY3Q6OmhiMzg4MTFkMWMyNWRlYmNkXChfX3J1c3RjW2QxMzE0OTFiMTcxMDdiMDddOjpfX3JkbF9yZWFsbG9jXUhjdXJ2ZTI1NTE5X2RhbGVrOjpyaXN0cmV0dG86OlJpc3RyZXR0b1BvaW50Ojpjb21wcmVzczo6aGQ4ZDU5YjdmZGRhNDg0MGVeRG9wYXF1ZV9rZTo6b3BhcXVlOjpDbGllbnRSZWdpc3RyYXRpb248Q1M+OjpmaW5pc2g6Omg5MGU3MDhjNWRkMjZkZTQ0Xz5vcGFxdWVfa2U6OmVudmVsb3BlOjpFbnZlbG9wZTxDUz46OnNlYWxfcmF3OjpoYjllNDgzMjdlMTNiMjM1MWBIY29yZTo6bnVtOjpmbHQyZGVjOjpzdHJhdGVneTo6Z3Jpc3U6OmZvcm1hdF9leGFjdF9vcHQ6OmhmZDY0NGUyNjg1MjM3NTZiYUtvcGFxdWVfa2U6Om1lc3NhZ2VzOjpDcmVkZW50aWFsUmVzcG9uc2U8Q1M+OjpkZXNlcmlhbGl6ZTo6aDkwZjY5YmJkMmZlMjVlOGRiNmRpZ2VzdDo6Rml4ZWRPdXRwdXQ6OmZpbmFsaXplX2ZpeGVkOjpoZTJjMzhhMzljNGU5ZWI1ZGM6Y29yZTo6bnVtOjpiaWdudW06OkJpZzMyeDQwOjptdWxfZGlnaXRzOjpoM2M0YmViMjNmZjdhMWIxZmQ5Y29yZTo6dW5pY29kZTo6cHJpbnRhYmxlOjppc19wcmludGFibGU6OmhlZjk5ZDUyZWI5NzIwYWQ1ZTVvcGFxdWVfa2U6Om9wYXF1ZTo6dW5tYXNrX3Jlc3BvbnNlOjpoNTUyNGQxZTQwZmQzYjgyN2ZQYmFzZTY0OjplbmdpbmU6OmdlbmVyYWxfcHVycG9zZTo6ZGVjb2RlX3N1ZmZpeDo6ZGVjb2RlX3N1ZmZpeDo6aDdiZGMwNjA1YTAxZWVjMmRnbTxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpEZXNlcmlhbGl6ZXIgYXMgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplcj46OmRlc2VyaWFsaXplX3N0cnVjdDo6aDNkMzkwNzg3ZmFiNzcwYTVoXGN1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6dTMyOjpmaWVsZDo6RmllbGRFbGVtZW50MjYyNTo6YXNfYnl0ZXM6OmgxZGM1OWFkNmJmNjgxM2U2aTxvcGFxdWVfa2U6Om9wYXF1ZTo6Q2xpZW50TG9naW48Q1M+OjpzdGFydDo6aDI4NTkyYWYxZGRlZjM1MTZqSG9wYXF1ZV9rZTo6b3BhcXVlOjpTZXJ2ZXJTZXR1cDxDUyxTSyxPUz46OmRlc2VyaWFsaXplOjpoMGExYzk2MWViNzQ4MTc3YmtKPFQgYXMgb3BhcXVlX2tlOjpzZXJpYWxpemF0aW9uOjpVcGRhdGVFeHQ+Ojp1cGRhdGVfaXRlcjo6aDk0YmVmNDBhNjJlNzNkODNsNWNvcmU6OmZtdDo6Rm9ybWF0dGVyOjpwYWRfaW50ZWdyYWw6OmhiNGNiNmE0OTE0MmZiZWYybUVjb3JlOjpmbXQ6OmZsb2F0OjpmbG9hdF90b19kZWNpbWFsX2NvbW1vbl9zaG9ydGVzdDo6aGUxZTk4N2MxNTUyN2Q4MWZuUXN0ZDo6c3lzOjp0aHJlYWRfbG9jYWw6Om5vX3RocmVhZHM6OkxhenlTdG9yYWdlPFQ+Ojppbml0aWFsaXplOjpoNzNjNGVhMDUxNzNkNjQ3Nm84ZGxtYWxsb2M6OmRsbWFsbG9jOjpEbG1hbGxvYzxBPjo6ZnJlZTo6aGExOTRjZGY2NTUwN2E3YzJwSm9wYXF1ZV9rZTo6b3BhcXVlOjpNYXNrZWRSZXNwb25zZTxDUz46OmRlc2VyaWFsaXplX3Rha2U6OmhlMzc0YmJiYzBlYWJjYmEycTFjb3JlOjpzdHI6OmNvbnZlcnRzOjpmcm9tX3V0Zjg6OmhjNmJhN2FkMTEyN2I2OTRkcpABPGRpZ2VzdDo6Y29yZV9hcGk6OmN0X3ZhcmlhYmxlOjpDdFZhcmlhYmxlQ29yZVdyYXBwZXI8VCxPdXRTaXplLE8+IGFzIGRpZ2VzdDo6Y29yZV9hcGk6OkZpeGVkT3V0cHV0Q29yZT46OmZpbmFsaXplX2ZpeGVkX2NvcmU6OmhiMzliYmRkYmYyNGNjM2Jic5MBPGRpZ2VzdDo6Y29yZV9hcGk6OmN0X3ZhcmlhYmxlOjpDdFZhcmlhYmxlQ29yZVdyYXBwZXI8VCxPdXRTaXplLE8+IGFzIGRpZ2VzdDo6Y29yZV9hcGk6OkZpeGVkT3V0cHV0Q29yZT46OmZpbmFsaXplX2ZpeGVkX2NvcmU6OmhiMzliYmRkYmYyNGNjM2JiWzFddJMBPGRpZ2VzdDo6Y29yZV9hcGk6OmN0X3ZhcmlhYmxlOjpDdFZhcmlhYmxlQ29yZVdyYXBwZXI8VCxPdXRTaXplLE8+IGFzIGRpZ2VzdDo6Y29yZV9hcGk6OkZpeGVkT3V0cHV0Q29yZT46OmZpbmFsaXplX2ZpeGVkX2NvcmU6OmhiMzliYmRkYmYyNGNjM2JiWzJddWBjdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OnUzMjo6ZmllbGQ6OkZpZWxkRWxlbWVudDI2MjU6OnNxdWFyZV9pbm5lcjo6aDAyYzdmOWE1OTY4NTU1YWZ2XGN1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6dTMyOjpzY2FsYXI6OlNjYWxhcjI5Ojpmcm9tX2J5dGVzX3dpZGU6OmhkMmQyMGFkNjIyZjU2YzY1d7IBPGVsbGlwdGljX2N1cnZlOjpoYXNoMmN1cnZlOjpoYXNoMmZpZWxkOjpleHBhbmRfbXNnOjp4bWQ6OkV4cGFuZE1zZ1htZDxIYXNoVD4gYXMgZWxsaXB0aWNfY3VydmU6Omhhc2gyY3VydmU6Omhhc2gyZmllbGQ6OmV4cGFuZF9tc2c6OkV4cGFuZE1zZz46OmV4cGFuZF9tZXNzYWdlOjpoYTFiMDhmOWIyZjJkMGMwMHhFY29yZTo6Y2hhcjo6bWV0aG9kczo6PGltcGwgY2hhcj46OmVzY2FwZV9kZWJ1Z19leHQ6OmhhYjI4OGQyOWM2MDE1ZThjeUJvcGFxdWVfa2U6Om9wYXF1ZTo6Q2xpZW50TG9naW48Q1M+OjpkZXNlcmlhbGl6ZTo6aDAxN2Y3MmJiMTNmNDY3NGN6LGNvcmU6OmZtdDo6Rm9ybWF0dGVyOjpwYWQ6OmgwN2UxYTAyMzQ3MDMyZGJje208c2VyZGVfd2FzbV9iaW5kZ2VuOjpkZTo6RGVzZXJpYWxpemVyIGFzIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZXI+OjpkZXNlcmlhbGl6ZV9zdHJ1Y3Q6Omg0MTBiODBlMTMwYTJlZDk4fD5jb3JlOjpmbXQ6OkZvcm1hdHRlcjo6d3JpdGVfZm9ybWF0dGVkX3BhcnRzOjpoODkzMDE1YjkzMGNjNzljZH3aAWN1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6Y3VydmVfbW9kZWxzOjo8aW1wbCBjb3JlOjpvcHM6OmFyaXRoOjpBZGQ8JmN1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6Y3VydmVfbW9kZWxzOjpQcm9qZWN0aXZlTmllbHNQb2ludD4gZm9yICZjdXJ2ZTI1NTE5X2RhbGVrOjplZHdhcmRzOjpFZHdhcmRzUG9pbnQ+OjphZGQ6OmhjNmU0OWFlZWY5ZTQyYmVjfns8b3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6OnNoYXJlZDo6S2UxU3RhdGU8Rz4gYXMgb3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6OkRlc2VyaWFsaXplPjo6ZGVzZXJpYWxpemVfdGFrZTo6aDlmMWY3ZDllMWZhY2YwNmF/gQE8b3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6OnRyaXBsZWRoOjpLZTJNZXNzYWdlPEcsSD4gYXMgb3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6OkRlc2VyaWFsaXplPjo6ZGVzZXJpYWxpemVfdGFrZTo6aDQ1NmNkZWU0YzdiOGRkMmKAAT9jdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjp2YXJpYWJsZV9iYXNlX211bDo6aDJhZmQ2YzMwZDM3ZWZhNDKBAY0BPG9wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjpncm91cDo6cmlzdHJldHRvMjU1OjpSaXN0cmV0dG8yNTUgYXMgb3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6Omdyb3VwOjpHcm91cD46OmRlc2VyaWFsaXplX3Rha2Vfc2s6OmhhMDFmNzY3MjJlMGRkNTAyggE1aGtkZjo6SGtkZjxILEk+OjpleHBhbmRfbXVsdGlfaW5mbzo6aGY4NWU4ZjEyZDliYTdjYjeDATxjb3JlOjpmbXQ6OkZvcm1hdHRlcjo6cGFkX2Zvcm1hdHRlZF9wYXJ0czo6aDEwZjFjYjlhZTVjYTU2MTiEAY0BPG9wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjpncm91cDo6cmlzdHJldHRvMjU1OjpSaXN0cmV0dG8yNTUgYXMgb3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6Omdyb3VwOjpHcm91cD46OmRlc2VyaWFsaXplX3Rha2VfcGs6OmhlYTVlMTVhYThiN2FiM2Q3hQF6PG9wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjp0cmlwbGVkaDo6VHJpcGxlRGg8RyxIPiBhcyBvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6S2V5RXhjaGFuZ2U+OjprZTJfYnVpbGRlcjo6aDU5NmZjYjU3YjhlZDZlMmGGAUtvcGFxdWVfa2U6Om1lc3NhZ2VzOjpSZWdpc3RyYXRpb25VcGxvYWQ8Q1M+OjpkZXNlcmlhbGl6ZTo6aGQ3YzI4YTkzYzc2Yjk0ODKHAVM8Y29yZTo6Zm10OjpidWlsZGVyczo6UGFkQWRhcHRlciBhcyBjb3JlOjpmbXQ6OldyaXRlPjo6d3JpdGVfc3RyOjpoNGEwN2I5OTczNjFjMzBhOIgBL2FyZ29uMjo6QXJnb24yOjppbml0aWFsX2hhc2g6OmhhZjEyYWNlZTZlZTEyOGFiiQEjY29yZTo6Zm10Ojp3cml0ZTo6aDI2ZmVhOTQ1NmU0MzIwNTeKAThjb3JlOjpudW06OmJpZ251bTo6QmlnMzJ4NDA6Om11bF9wb3cyOjpoNjljM2Q5MGMzZWNiY2I0ZosBNXZvcHJmOjpjb21tb246OmRlcml2ZV9rZXlfaW50ZXJuYWw6OmgxNmIxMzVkZDBhOGM1NzQyjAFWb3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6OlNlcmlhbGl6ZWRJZGVudGlmaWVyczxHPjo6ZnJvbV9pZGVudGlmaWVyczo6aDhiNzAzYTIxYjdhM2Y4MDiNAT1vcGFxdWVfa2U6OmVudmVsb3BlOjpyZWNvdmVyX2tleXNfaW50ZXJuYWw6OmhkNWRjZWQwYTY0MjQxYzg3jgGAAWN1cnZlMjU1MTlfZGFsZWs6OmZpZWxkOjo8aW1wbCBjdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OnUzMjo6ZmllbGQ6OkZpZWxkRWxlbWVudDI2MjU+OjpzcXJ0X3JhdGlvX2k6OmgyOWY3OTc0YWEzMjEyN2FkjwE+Y29yZTo6Zm10OjpudW06OmltcDo6PGltcGwgdTY0Pjo6X2ZtdF9pbm5lcjo6aGY3ZTAyZGQ3MTk3MjZjZmaQAT5vcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6c2hhcmVkOjp0cmFuc2NyaXB0OjpoZWM5YmM2OTBlYjJlZjNlM5EBPmNvcmU6OmZtdDo6bnVtOjppbXA6OjxpbXBsIHUzMj46Ol9mbXRfaW5uZXI6Omg3ODVmN2Y1NzZlNjA4MDA1kgE0b3BhcXVlOjpzdGFydF9jbGllbnRfcmVnaXN0cmF0aW9uOjpoYWM5ZTMzNjQzYmNlM2E2OZMBRnNlcmRlX3dhc21fYmluZGdlbjo6ZGU6OkRlc2VyaWFsaXplcjo6aW52YWxpZF90eXBlXzo6aDQ3OTZiZDAzYzQ5NjA5ZTSUAS1vcGFxdWU6OnN0YXJ0X2NsaWVudF9sb2dpbjo6aGVlYjBiYjM4NWJkZWZkYTmVAU9vcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6c2hhcmVkOjpoa2RmX2V4cGFuZF9sYWJlbF9leHRyYWN0ZWQ6Omg2ODBhODMwYWY3ZjRjYWIylgFKPHNlcmRlX2NvcmU6OmRlOjpVbmV4cGVjdGVkIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aDdkY2VjMDdlODZiZTYzZTSXAUFkbG1hbGxvYzo6ZGxtYWxsb2M6OkRsbWFsbG9jPEE+OjpkaXNwb3NlX2NodW5rOjpoZGM4ODVkNjg2NTAxMmZiZZgBbTxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpEZXNlcmlhbGl6ZXIgYXMgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplcj46OmRlc2VyaWFsaXplX3N0cnVjdDo6aGE0OGQ4ZTlmMGI0MzU5ZTWZAW08c2VyZGVfd2FzbV9iaW5kZ2VuOjpkZTo6RGVzZXJpYWxpemVyIGFzIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZXI+OjpkZXNlcmlhbGl6ZV9zdHJ1Y3Q6OmhhNzA3Yzg1M2U1YzVhYzBimgF9PG9wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjpzaGFyZWQ6OktlMU1lc3NhZ2U8Rz4gYXMgb3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6OkRlc2VyaWFsaXplPjo6ZGVzZXJpYWxpemVfdGFrZTo6aDEyNDI4Y2EyYTMzMDg1NmGbAT5vcGFxdWVfa2U6Om9wYXF1ZTo6Z2V0X3Bhc3N3b3JkX2Rlcml2ZWRfa2V5OjpoZjhhMThkM2I4MWMzMDNlNZwBRW9wYXF1ZV9rZTo6ZW52ZWxvcGU6OmJ1aWxkX2lubmVyX2VudmVsb3BlX2ludGVybmFsOjpoMzRhMWM5NmVmOTdkOTE0NZ0BfGN1cnZlMjU1MTlfZGFsZWs6OmZpZWxkOjo8aW1wbCBjdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OnUzMjo6ZmllbGQ6OkZpZWxkRWxlbWVudDI2MjU+Ojpwb3cyMjUwMTo6aGFiOWVjMDNlMjNjMjYwNWOeAUBvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6c2hhcmVkOjpnZW5lcmF0ZV9rZTE6OmhlZDc5NWU0NjczOWYxZTljnwFNb3BhcXVlX2tlOjptZXNzYWdlczo6UmVnaXN0cmF0aW9uUmVzcG9uc2U8Q1M+OjpkZXNlcmlhbGl6ZTo6aDZlMjM4N2ExZmE3ZTZkMzmgAUlvcGFxdWVfa2U6Om1lc3NhZ2VzOjpDcmVkZW50aWFsUmVzcG9uc2U8Q1M+OjpzZXJpYWxpemU6Omg5Zjg2MTY0NmIxNTYyMjIzoQFGb3BhcXVlX2tlOjplbnZlbG9wZTo6RW52ZWxvcGU8Q1M+OjpkZXNlcmlhbGl6ZV90YWtlOjpoNDYyY2UyMTk3MmM2ZDhkY6IBT29wYXF1ZV9rZTo6bWVzc2FnZXM6OkNyZWRlbnRpYWxSZXF1ZXN0PENTPjo6ZGVzZXJpYWxpemVfdGFrZTo6aGE0NWNmOWMyM2U0YWNiZTGjAT1vcGFxdWVfa2U6Om9wYXF1ZTo6U2VydmVyTG9naW48Q1M+OjpmaW5pc2g6OmhlZWRmM2I5OTBlOGVjMzFipAFyY3VydmUyNTUxOV9kYWxlazo6c2NhbGFyOjo8aW1wbCBjdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OnUzMjo6c2NhbGFyOjpTY2FsYXIyOT46OnBhY2s6Omg5OWZmNGM5MzcxNTA3MTcypQEzYWxsb2M6OmZtdDo6Zm9ybWF0Ojpmb3JtYXRfaW5uZXI6OmhlNmFiOTZmMWFlMWU0MGE3pgEzb3BhcXVlX2tlOjpvcGFxdWU6Om1hc2tfcmVzcG9uc2U6OmhiMjA5YTU5MWY5OGJlOTA1pwERZmluaXNoQ2xpZW50TG9naW6oATxkbG1hbGxvYzo6ZGxtYWxsb2M6OkRsbWFsbG9jPEE+OjptZW1hbGlnbjo6aDYzZTkyMTI1MmFjZDRlNGapARBzdGFydENsaWVudExvZ2luqgEXc3RhcnRDbGllbnRSZWdpc3RyYXRpb26rARBzdGFydFNlcnZlckxvZ2lurAFDb3BhcXVlX2tlOjpvcGFxdWU6OkNsaWVudFJlZ2lzdHJhdGlvbjxDUz46OnN0YXJ0OjpoMzY1ZjZlY2RlNGFjMDE3NK0BWGNvcmU6Om51bTo6Zmx0MmRlYzo6c3RyYXRlZ3k6OmdyaXN1Ojpmb3JtYXRfZXhhY3Rfb3B0Ojpwb3NzaWJseV9yb3VuZDo6aDYwM2ZmZWM4OGVhODRmZjGuAVVvcGFxdWVfa2U6Om9wYXF1ZTo6U2VydmVyUmVnaXN0cmF0aW9uPENTPjo6c3RhcnRfd2l0aF9rZXlfbWF0ZXJpYWw6Omg5N2QwODg2ODAxNGNhOWQ3rwFkZWxsaXB0aWNfY3VydmU6Omhhc2gyY3VydmU6Omhhc2gyZmllbGQ6OmV4cGFuZF9tc2c6OnhtZDo6RXhwYW5kZXJYbWQ8SGFzaFQ+OjpuZXh0OjpoMzE3ZTZiMmEzYmUwOWQyZbABW2N1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6Y3VydmVfbW9kZWxzOjpQcm9qZWN0aXZlUG9pbnQ6OmRvdWJsZTo6aDg4YzA1OTVlYjkyZThkMmaxARhmaW5pc2hDbGllbnRSZWdpc3RyYXRpb26yAUlvcGFxdWVfa2U6Om9wYXF1ZTo6Q2xpZW50UmVnaXN0cmF0aW9uPENTPjo6ZGVzZXJpYWxpemU6OmhjMTlmZTk0ODI0N2M4MDAyswFAZGxtYWxsb2M6OmRsbWFsbG9jOjpEbG1hbGxvYzxBPjo6dW5saW5rX2NodW5rOjpoZjcxY2FkZDYxMWFjMzc0ObQBOHN0ZDo6dGhyZWFkOjpsb2NhbDo6TG9jYWxLZXk8VD46OndpdGg6OmgxYWYzODgxMDk0ODZhZWQytQE6Ymxha2UyOjpCbGFrZTJiVmFyQ29yZTo6bmV3X3dpdGhfcGFyYW1zOjpoN2NhNWFjODZiOGY1MzcxYbYBQ2N1cnZlMjU1MTlfZGFsZWs6OndpbmRvdzo6TG9va3VwVGFibGU8VD46OnNlbGVjdDo6aGMyMTA5NjUyYjkwYzM3ZTm3ASBjcmVhdGVTZXJ2ZXJSZWdpc3RyYXRpb25SZXNwb25zZbgBEWZpbmlzaFNlcnZlckxvZ2luuQE4Y29yZTo6bnVtOjpmbHQyZGVjOjpkaWdpdHNfdG9fZGVjX3N0cjo6aGU1Y2E3Njk1ZGE2ZGE0ZjS6AX08b3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6OnRyaXBsZWRoOjpLZTJTdGF0ZTxIPiBhcyBvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6RGVzZXJpYWxpemU+OjpkZXNlcmlhbGl6ZV90YWtlOjpoNzYwMTA3NzIwMTBjM2FkM7sBV2N1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6dTMyOjpzY2FsYXI6OlNjYWxhcjI5Ojpmcm9tX2J5dGVzOjpoOWE0NTI0MjVlNzM3YjU5MbwBN2FyZ29uMjo6cGFyYW1zOjpQYXJhbXNCdWlsZGVyOjpidWlsZDo6aDA4YzQxYWJhZDE5YWNiZWK9AUxjb3JlOjp1bmljb2RlOjp1bmljb2RlX2RhdGE6OmdyYXBoZW1lX2V4dGVuZDo6bG9va3VwX3Nsb3c6OmhiMzZjNjBhMzA1NTA5OGVlvgEuaGtkZjo6SGtkZkV4dHJhY3Q8SCxJPjo6bmV3OjpoYmQ2MGU0YmUwY2E4MjEyZr8BK2FyZ29uMjo6QXJnb24yOjpmaW5hbGl6ZTo6aDZhNDIyMmM4ZmZiNDdmYWPAAT5vcGFxdWVfa2U6Om9wYXF1ZTo6U2VydmVyTG9naW48Q1M+OjpidWlsZGVyOjpoMTg4MDRhODE4Y2VmN2UyM8EBwQE8Y3VydmUyNTUxOV9kYWxlazo6YmFja2VuZDo6c2VyaWFsOjp1MzI6OmZpZWxkOjpGaWVsZEVsZW1lbnQyNjI1IGFzIGNvcmU6Om9wczo6YXJpdGg6OlN1YkFzc2lnbjwmY3VydmUyNTUxOV9kYWxlazo6YmFja2VuZDo6c2VyaWFsOjp1MzI6OmZpZWxkOjpGaWVsZEVsZW1lbnQyNjI1Pj46OnN1Yl9hc3NpZ246OmgxMTBiNDU5YWQ5ZmUyMmRiwgFlPHZvcHJmOjpncm91cDo6cmlzdHJldHRvOjpSaXN0cmV0dG8yNTUgYXMgdm9wcmY6Omdyb3VwOjpHcm91cD46OmRlc2VyaWFsaXplX3NjYWxhcjo6aGZhYjc0NWJiOTI0ZWFiMWLDAWRvcGFxdWU6OjxpbXBsIGNvcmU6OmNvbnZlcnQ6OkZyb208b3BhcXVlOjpFcnJvcj4gZm9yIHdhc21fYmluZGdlbjo6SnNFcnJvcj46OmZyb206Omg1MTIzMzI0ZTNhZDg0YmE3xAFGZGxtYWxsb2M6OmRsbWFsbG9jOjpEbG1hbGxvYzxBPjo6aW5zZXJ0X2xhcmdlX2NodW5rOjpoZWM4ZjRmM2M5OGJlMzdlOcUBbm9wYXF1ZTo6Xzo6PGltcGwgc2VyZGVfY29yZTo6c2VyOjpTZXJpYWxpemUgZm9yIG9wYXF1ZTo6RmluaXNoQ2xpZW50TG9naW5SZXN1bHQ+OjpzZXJpYWxpemU6OmhkY2FhY2Q1NDg2Njk1N2VixgEsaGtkZjo6SGtkZjxILEk+Ojpmcm9tX3Byazo6aDcxNDE0MzJiMzM1OTcxNmPHAWU8c2VyZGVfd2FzbV9iaW5kZ2VuOjpkZTo6T2JqZWN0QWNjZXNzIGFzIHNlcmRlX2NvcmU6OmRlOjpNYXBBY2Nlc3M+OjpuZXh0X2tleV9zZWVkOjpoMWY2YjYwNGE4ZGJjZmRiOcgBZTxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpPYmplY3RBY2Nlc3MgYXMgc2VyZGVfY29yZTo6ZGU6Ok1hcEFjY2Vzcz46Om5leHRfa2V5X3NlZWQ6Omg3YmZiZmExNjkwZGViOTU0yQFlPHNlcmRlX3dhc21fYmluZGdlbjo6ZGU6Ok9iamVjdEFjY2VzcyBhcyBzZXJkZV9jb3JlOjpkZTo6TWFwQWNjZXNzPjo6bmV4dF9rZXlfc2VlZDo6aDg5OTU2ZWJlMDAyMzcxMTfKAWU8c2VyZGVfd2FzbV9iaW5kZ2VuOjpkZTo6T2JqZWN0QWNjZXNzIGFzIHNlcmRlX2NvcmU6OmRlOjpNYXBBY2Nlc3M+OjpuZXh0X2tleV9zZWVkOjpoZDkxZjZhZjE5YmMxMGExOMsBZTxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpPYmplY3RBY2Nlc3MgYXMgc2VyZGVfY29yZTo6ZGU6Ok1hcEFjY2Vzcz46Om5leHRfa2V5X3NlZWQ6OmhkYmRlODExOWQ3MGExMzZkzAFlPHNlcmRlX3dhc21fYmluZGdlbjo6ZGU6Ok9iamVjdEFjY2VzcyBhcyBzZXJkZV9jb3JlOjpkZTo6TWFwQWNjZXNzPjo6bmV4dF9rZXlfc2VlZDo6aGRlNzU4MmE5ZDlhNDc4OTHNAWU8c2VyZGVfd2FzbV9iaW5kZ2VuOjpkZTo6T2JqZWN0QWNjZXNzIGFzIHNlcmRlX2NvcmU6OmRlOjpNYXBBY2Nlc3M+OjpuZXh0X2tleV9zZWVkOjpoZjBkNzYzYmI5MTgxNTQxOM4BX2hhc2hicm93bjo6cnVzdGNfZW50cnk6OjxpbXBsIGhhc2hicm93bjo6bWFwOjpIYXNoTWFwPEssVixTLEE+Pjo6cnVzdGNfZW50cnk6OmgzZGU2MGFjMjE3NzFkYzFmzwFEZ2VuZXJpY19hcnJheTo6R2VuZXJpY0FycmF5PFQsTj46OmZyb21fZXhhY3RfaXRlcjo6aGQwNjVkZWY0OTA4MDI2MTfQAYMBPG9wYXF1ZV9rZTo6a2V5cGFpcjo6UHJpdmF0ZUtleTxHPiBhcyBvcGFxdWVfa2U6OmtleXBhaXI6OlByaXZhdGVLZXlTZXJpYWxpemF0aW9uPEc+Pjo6ZGVzZXJpYWxpemVfdGFrZV9rZXlfcGFpcjo6aGNjNjhkMGEzNTVjZGYwMWTRAVRvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6U2VyaWFsaXplZElkZW50aWZpZXI8Rz46OmZyb21faWRlbnRpZmllcjo6aDgxNGUzZjhhODhhMDA5MDnSAV5jdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OnUzMjo6ZmllbGQ6OkZpZWxkRWxlbWVudDI2MjU6OmZyb21fYnl0ZXM6OmgxYWU1OWNmYWE5ZDJmZDlm0wE6Y29yZTo6Zm10OjpidWlsZGVyczo6RGVidWdTdHJ1Y3Q6OmZpZWxkOjpoMmExZTgwMDhiMDhmMmJjM9QBQG9wYXF1ZV9rZTo6a2V5cGFpcjo6S2V5UGFpcjxHPjo6ZGVyaXZlX3JhbmRvbTo6aDkyNGVmOGI5NGU4NjVmNTbVATNoa2RmOjpIa2RmRXh0cmFjdDxILEk+OjpmaW5hbGl6ZTo6aDhmY2NhMjM5M2YzNjdlZWXWATRqc19zeXM6Omdsb2JhbDo6Z2V0X2dsb2JhbF9vYmplY3Q6OmhiMzY1YWVkODUzN2NlNzIw1wE2Y29yZTo6c2xpY2U6Om1lbWNocjo6bWVtY2hyX2FsaWduZWQ6Omg5MDRhYTMxNzZmNTk2NmZj2AEub3BhcXVlOjpkZWNvZGVfc2VydmVyX3NldHVwOjpoMDQ1ZDY0ZmRhOWFmMTE2Y9kBQ29wYXF1ZV9rZTo6b3BhcXVlOjpTZXJ2ZXJSZWdpc3RyYXRpb248Q1M+OjpzdGFydDo6aGEyNTk3MWJmMTE2ZGU0NmbaAUpjb3JlOjpmbXQ6Om51bTo6PGltcGwgY29yZTo6Zm10OjpEZWJ1ZyBmb3IgdTMyPjo6Zm10OjpoZmY1ZDFlZDdhODhiYTYwOVsxXdsBZTxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpPYmplY3RBY2Nlc3MgYXMgc2VyZGVfY29yZTo6ZGU6Ok1hcEFjY2Vzcz46Om5leHRfa2V5X3NlZWQ6OmgyM2U4ZWM2ZjdmM2MwZGEx3AFNPGFsbG9jOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlOjpmbXQ6OldyaXRlPjo6d3JpdGVfY2hhcjo6aGRjZGE1YTZhYTM2MjNkNWVbMV3dAU08YWxsb2M6OnN0cmluZzo6U3RyaW5nIGFzIGNvcmU6OmZtdDo6V3JpdGU+Ojp3cml0ZV9jaGFyOjpoZGNkYTVhNmFhMzYyM2Q1ZVsyXd4BR2NvcmU6OmZtdDo6bnVtOjo8aW1wbCBjb3JlOjpmbXQ6OkRlYnVnIGZvciB1NjQ+OjpmbXQ6Omg5YTA3OWY0NWQ4YWI0ODFh3wFNPGFsbG9jOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlOjpmbXQ6OldyaXRlPjo6d3JpdGVfY2hhcjo6aGRjZGE1YTZhYTM2MjNkNWVbM13gAT5hbGxvYzo6cmF3X3ZlYzo6UmF3VmVjSW5uZXI8QT46OmZpbmlzaF9ncm93OjpoMDFmYmExMThkOTg5YjA3Y+EBTjxvcGFxdWVfa2U6OmVycm9yczo6SW50ZXJuYWxFcnJvciBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoY2U1MmY0MmU0YTc4OGNlMOIBPmFsbG9jOjpyYXdfdmVjOjpSYXdWZWNJbm5lcjxBPjo6ZmluaXNoX2dyb3c6Omg2YjkxYzAyYzdiZTZmM2M24wFFPHNlcmRlX2NvcmU6OmRlOjpPbmVPZiBhcyBjb3JlOjpmbXQ6OkRpc3BsYXk+OjpmbXQ6OmhlZjM1ZDQ5N2E2OGFiYzQ35AFAb3BhcXVlX2tlOjpvcGFxdWU6OkNsaWVudExvZ2luPENTPjo6c2VyaWFsaXplOjpoOWRkNWZmMThmOWE3NTEwZuUBWmN1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6dTMyOjpmaWVsZDo6RmllbGRFbGVtZW50MjYyNTo6cmVkdWNlOjpoYzI3NTc3ZTc0NDNmMmJhY+YBF19fZXh0ZXJucmVmX3RhYmxlX2FsbG9j5wF1b3BhcXVlOjpfOjo8aW1wbCBzZXJkZV9jb3JlOjpzZXI6OlNlcmlhbGl6ZSBmb3Igb3BhcXVlOjpGaW5pc2hDbGllbnRSZWdpc3RyYXRpb25SZXN1bHQ+OjpzZXJpYWxpemU6OmhiOTJiYjA2YzdjOTQyMjQ06AFAaGFzaGJyb3duOjpyYXc6OlJhd1RhYmxlPFQsQT46Omluc2VydF9ub19ncm93OjpoNzU3N2I0YmU0MGYyNWQ4MekBeDxvcGFxdWVfa2U6OmtleXBhaXI6Ok9wcmZTZWVkPEg+IGFzIG9wYXF1ZV9rZTo6a2V5cGFpcjo6T3ByZlNlZWRTZXJpYWxpemF0aW9uPEgsRT4+OjpkZXNlcmlhbGl6ZV90YWtlOjpoMDJkN2IyMjAxMmU5MTk2Y+oBNDxjaGFyIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aGI5N2Y3OWI3ZTQ2YjQ4MTLrAWs8c2VyZGVfd2FzbV9iaW5kZ2VuOjpkZTo6RGVzZXJpYWxpemVyIGFzIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZXI+OjpkZXNlcmlhbGl6ZV9lbnVtOjpoODJlNTYyOTFjMTIzZDlmNuwBiwE8Y3VydmUyNTUxOV9kYWxlazo6YmFja2VuZDo6c2VyaWFsOjp1MzI6OmZpZWxkOjpGaWVsZEVsZW1lbnQyNjI1IGFzIHN1YnRsZTo6Q29uZGl0aW9uYWxseVNlbGVjdGFibGU+Ojpjb25kaXRpb25hbF9hc3NpZ246OmgyMGE4MWRkMmI2OGRkYmI17QFCY29yZTo6Zm10OjpGb3JtYXR0ZXI6OmRlYnVnX3R1cGxlX2ZpZWxkMV9maW5pc2g6OmhiNzM0NmUwNzU0NGJhNWVl7gEwb3BhcXVlOjpnZXRfc2VydmVyX3B1YmxpY19rZXk6Omg3OWY5MzVhYzNiNzU5ODM37wFKPGFsbG9jOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlOjpmbXQ6OldyaXRlPjo6d3JpdGVfY2hhcjo6aGRjZGE1YTZhYTM2MjNkNWXwATdjb3JlOjpwYW5pY2tpbmc6OmFzc2VydF9mYWlsZWRfaW5uZXI6Omg1MTAyNWU1ZGY3MGNhNjg18QF4PG9wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjp0cmlwbGVkaDo6VHJpcGxlRGg8RyxIPiBhcyBvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6S2V5RXhjaGFuZ2U+OjpmaW5pc2hfa2U6OmgxY2NkOTk3ODZiNDU5ZmJl8gFDaGFzaGJyb3duOjpyYXc6OlJhd1RhYmxlSW5uZXI6Om5ld191bmluaXRpYWxpemVkOjpoY2U5ZjhlNTI2MzZhMDcxNPMBSzxiYXNlNjQ6OmRlY29kZTo6RGVjb2RlRXJyb3IgYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10OjpoZWI2ODE4M2EzYjUyMGIzYfQBYzx2b3ByZjo6Z3JvdXA6OnJpc3RyZXR0bzo6UmlzdHJldHRvMjU1IGFzIHZvcHJmOjpncm91cDo6R3JvdXA+OjpkZXNlcmlhbGl6ZV9lbGVtOjpoMjJmMWQ3NmEzMDAzMmZkMfUBWDxkaWdlc3Q6OmNvcmVfYXBpOjp3cmFwcGVyOjpDb3JlV3JhcHBlcjxUPiBhcyBkaWdlc3Q6OlVwZGF0ZT46OnVwZGF0ZTo6aDBhNjEyYTJhYWM5OThmYTL2AVs8ZGlnZXN0Ojpjb3JlX2FwaTo6d3JhcHBlcjo6Q29yZVdyYXBwZXI8VD4gYXMgZGlnZXN0OjpVcGRhdGU+Ojp1cGRhdGU6OmgwYTYxMmEyYWFjOTk4ZmEyWzFd9wFYPGRpZ2VzdDo6Y29yZV9hcGk6OndyYXBwZXI6OkNvcmVXcmFwcGVyPFQ+IGFzIGRpZ2VzdDo6VXBkYXRlPjo6dXBkYXRlOjpoNGYyY2Y5NTEwOTA1NGM0NfgBWDxkaWdlc3Q6OmNvcmVfYXBpOjp3cmFwcGVyOjpDb3JlV3JhcHBlcjxUPiBhcyBkaWdlc3Q6OlVwZGF0ZT46OnVwZGF0ZTo6aDMxZTFhODRhNmQxYmJiMzL5AVs8ZGlnZXN0Ojpjb3JlX2FwaTo6d3JhcHBlcjo6Q29yZVdyYXBwZXI8VD4gYXMgZGlnZXN0OjpVcGRhdGU+Ojp1cGRhdGU6OmgzMWUxYTg0YTZkMWJiYjMyWzFd+gE8b3BhcXVlX2tlOjpvcGFxdWU6OlNlcnZlckxvZ2luPENTPjo6c3RhcnQ6Omg3ZTNhMGRkNDQxY2Q0YTVm+wE3Y29yZTo6Zm10OjpidWlsZGVyczo6RGVidWdTZXQ6OmVudHJ5OjpoYjRiNGMyZDExYjZmYjYzM/wBWDxkaWdlc3Q6OmNvcmVfYXBpOjp3cmFwcGVyOjpDb3JlV3JhcHBlcjxUPiBhcyBkaWdlc3Q6OlVwZGF0ZT46OnVwZGF0ZTo6aDVjNmVmNTVmMjQyYTE0MGb9AVs8ZGlnZXN0Ojpjb3JlX2FwaTo6d3JhcHBlcjo6Q29yZVdyYXBwZXI8VD4gYXMgZGlnZXN0OjpVcGRhdGU+Ojp1cGRhdGU6Omg1YzZlZjU1ZjI0MmExNDBmWzFd/gFmPGRpZ2VzdDo6Y29yZV9hcGk6OnJ0X3ZhcmlhYmxlOjpSdFZhcmlhYmxlQ29yZVdyYXBwZXI8VD4gYXMgZGlnZXN0OjpVcGRhdGU+Ojp1cGRhdGU6OmgwODE3ZDE3YmY5MmQzMmNm/wGpATxvcGFxdWU6Ol86OjxpbXBsIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZSBmb3Igb3BhcXVlOjpLZXlTdHJldGNoaW5nRnVuY3Rpb25Db25maWc+OjpkZXNlcmlhbGl6ZTo6X19WaXNpdG9yIGFzIHNlcmRlX2NvcmU6OmRlOjpWaXNpdG9yPjo6dmlzaXRfZW51bTo6aDhhMWE1ZWE2NjI4ZjQwNDSAAjhiYXNlNjQ6OmVuZ2luZTo6RW5naW5lOjplbmNvZGU6OmlubmVyOjpoYWNhM2EzOWIxOTg2NmZjOIECSzxbdThdIGFzIG9wYXF1ZV9rZTo6c2VyaWFsaXphdGlvbjo6U2xpY2VFeHQ+Ojp0YWtlX2FycmF5OjpoZTJmNzFiNzExYjllNzIyOIICbjxzdGQ6OnBhbmlja2luZzo6cGFuaWNfaGFuZGxlcjo6Rm9ybWF0U3RyaW5nUGF5bG9hZCBhcyBjb3JlOjpwYW5pYzo6UGFuaWNQYXlsb2FkPjo6dGFrZV9ib3g6OmhjOTA3OTY0YTg3MjkyMjA1gwI5Y29yZTo6Zm10OjpidWlsZGVyczo6RGVidWdUdXBsZTo6ZmllbGQ6OmgxOWViNWRjYTgyNDQyZDhjhAI4dm9wcmY6Om9wcmY6Ok9wcmZDbGllbnQ8Q1M+OjpmaW5hbGl6ZTo6aDk2ZmEzODJhZjJjNmFkZjGFAkNhbGxvYzo6cmF3X3ZlYzo6UmF3VmVjSW5uZXI8QT46OnNocmlua191bmNoZWNrZWQ6Omg4ZGFjZWI4YzI3MmYxNWJkhgISZ2V0U2VydmVyUHVibGljS2V5hwJtb3BhcXVlOjpfOjo8aW1wbCBzZXJkZV9jb3JlOjpzZXI6OlNlcmlhbGl6ZSBmb3Igb3BhcXVlOjpTdGFydENsaWVudExvZ2luUmVzdWx0Pjo6c2VyaWFsaXplOjpoM2I2YjY3NGRjNjdkYzA2N4gCbW9wYXF1ZTo6Xzo6PGltcGwgc2VyZGVfY29yZTo6c2VyOjpTZXJpYWxpemUgZm9yIG9wYXF1ZTo6U3RhcnRTZXJ2ZXJMb2dpblJlc3VsdD46OnNlcmlhbGl6ZTo6aDhjMDRkYzAyMjlhM2MzZTGJAnRvcGFxdWU6Ol86OjxpbXBsIHNlcmRlX2NvcmU6OnNlcjo6U2VyaWFsaXplIGZvciBvcGFxdWU6OlN0YXJ0Q2xpZW50UmVnaXN0cmF0aW9uUmVzdWx0Pjo6c2VyaWFsaXplOjpoNWIwNWFlYTFjNDU1MGVlZooCSTxUIGFzIG9wYXF1ZV9rZTo6c2VyaWFsaXphdGlvbjo6VXBkYXRlRXh0Pjo6Y2hhaW5faXRlcjo6aDI5MzIzMTZmYTFjYzQxNmaLAlN2b3ByZjo6b3ByZjo6T3ByZkNsaWVudDxDUz46OmRldGVybWluaXN0aWNfYmxpbmRfdW5jaGVja2VkX2lubmVyOjpoOTliY2Q2OWE3M2U2Yzg1N4wCSTxUIGFzIG9wYXF1ZV9rZTo6c2VyaWFsaXphdGlvbjo6VXBkYXRlRXh0Pjo6Y2hhaW5faXRlcjo6aDRkMjQ5ZmZhMDQyN2I3OWONAklvcGFxdWVfa2U6Om9wYXF1ZTo6U2VydmVyUmVnaXN0cmF0aW9uPENTPjo6ZGVzZXJpYWxpemU6OmgyZDg3NWVhZDkxMzcwZTY2jgJHb3BhcXVlX2tlOjpvcGFxdWU6OkNsaWVudFJlZ2lzdHJhdGlvbjxDUz46OnNlcmlhbGl6ZTo6aDdiMjJjY2IxMjZlM2E2MmWPAjdvcGFxdWVfa2U6Om9wYXF1ZTo6b3ByZl9rZXlfbWF0ZXJpYWw6OmhkYjc2MTQwMTRiNDdiZDU5kAJCb3BhcXVlX2tlOjpvcGFxdWU6OlNlcnZlckxvZ2luPENTPjo6ZGVzZXJpYWxpemU6Omg3YjA5MzE3NDE2YTg0M2VlkQJPb3BhcXVlX2tlOjptZXNzYWdlczo6Q3JlZGVudGlhbEZpbmFsaXphdGlvbjxDUz46OmRlc2VyaWFsaXplOjpoMmY3ZDQ3NmM3ZmY0MjIyOZICUGN1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6dTMyOjpzY2FsYXI6OlNjYWxhcjI5OjpzdWI6Omg3ZWIxZGE4YjIzOGQ4MjBmkwJFPGdldHJhbmRvbTo6ZXJyb3I6OkVycm9yIGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6OmhlYmVkYTk3ZTlkN2UyMTBilAJPY3VydmUyNTUxOV9kYWxlazo6ZWR3YXJkczo6RWR3YXJkc1BvaW50Ojphc19wcm9qZWN0aXZlX25pZWxzOjpoZmU2N2QyNWFmZmIwNjA1Y5UCUmN1cnZlMjU1MTlfZGFsZWs6OnJpc3RyZXR0bzo6UmlzdHJldHRvUG9pbnQ6OmZyb21fdW5pZm9ybV9ieXRlczo6aGY0M2Y3NjkzNmM1MTg1N2OWAkBvcGFxdWVfa2U6Om9wYXF1ZTo6b3ByZl9rZXlfZnJvbV9rZXlfbWF0ZXJpYWw6Omg3NjhiM2JmNTQyNWJmMmQ2lwJ/PG9wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjp0cmlwbGVkaDo6S2UzTWVzc2FnZTxIPiBhcyBvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6RGVzZXJpYWxpemU+OjpkZXNlcmlhbGl6ZV90YWtlOjpoMWZjY2UzODhkYTgyOWQ4NJgCLm9wYXF1ZTo6Y3JlYXRlX3NlcnZlcl9zZXR1cDo6aDI3ZDExMmI0YWQ3NjIxODWZAlpjdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OnUzMjo6ZmllbGQ6OkZpZWxkRWxlbWVudDI2MjU6Om5lZ2F0ZTo6aDcxMDAzYTRjM2E2NWVhMTKaAjhiYXNlNjQ6OmVuZ2luZTo6RW5naW5lOjpkZWNvZGU6OmlubmVyOjpoN2Q0YjNjNTYyZDRjYTkxOJsCUXN0ZDo6c3lzOjp0aHJlYWRfbG9jYWw6Om5vX3RocmVhZHM6OkxhenlTdG9yYWdlPFQ+Ojppbml0aWFsaXplOjpoOGMwMTI1YjBiZDBhOWJiNpwCYDx2b3ByZjo6Z3JvdXA6OnJpc3RyZXR0bzo6UmlzdHJldHRvMjU1IGFzIHZvcHJmOjpncm91cDo6R3JvdXA+OjpoYXNoX3RvX2N1cnZlOjpoYmY0ZTdmY2U4MmQ0Y2VjMJ0CYTx2b3ByZjo6Z3JvdXA6OnJpc3RyZXR0bzo6UmlzdHJldHRvMjU1IGFzIHZvcHJmOjpncm91cDo6R3JvdXA+OjpoYXNoX3RvX3NjYWxhcjo6aDI0OTliYzM5NjFiNzQwMjWeAihhbGxvYzo6dmVjOjpmcm9tX2VsZW06OmgzOWFiZDMyYzlmZmFiMWMxnwIyc3RkOjpwYW5pY2tpbmc6OnBhbmljX3dpdGhfaG9vazo6aGRkNjEwZjZjMTgwMjZiY2KgAlxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplX2Zyb21fanNfbnVtYmVyX3Vuc2lnbmVkOjpoYzE4NmY3NjIxNGIzMjAxNKECOHN0ZDo6dGhyZWFkOjpsb2NhbDo6TG9jYWxLZXk8VD46OndpdGg6OmgxNDM1MDE3NWMyOGZlOGZhogLIATxjdXJ2ZTI1NTE5X2RhbGVrOjp3aW5kb3c6Okxvb2t1cFRhYmxlPGN1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6Y3VydmVfbW9kZWxzOjpQcm9qZWN0aXZlTmllbHNQb2ludD4gYXMgY29yZTo6Y29udmVydDo6RnJvbTwmY3VydmUyNTUxOV9kYWxlazo6ZWR3YXJkczo6RWR3YXJkc1BvaW50Pj46OmZyb206OmgyOTYyZjk1OTE4ZmM5OTVlowJBYWxsb2M6OnJhd192ZWM6OlJhd1ZlY0lubmVyPEE+Ojpncm93X2Ftb3J0aXplZDo6aDYzZGE0Yjk0OWM5YWI3MDakAkFhbGxvYzo6cmF3X3ZlYzo6UmF3VmVjSW5uZXI8QT46Omdyb3dfYW1vcnRpemVkOjpoZTA5MjlmMDMyYmIxMzdlZaUCPmFsbG9jOjpyYXdfdmVjOjpSYXdWZWNJbm5lcjxBPjo6ZmluaXNoX2dyb3c6OmhlM2IzNGRhMTU1MTA3YTNipgJDY29yZTo6Zm10OjpGb3JtYXR0ZXI6OmRlYnVnX3N0cnVjdF9maWVsZDJfZmluaXNoOjpoMDgxYjgzNDg4ODAxOWUwZqcCOHNlcmRlX3dhc21fYmluZGdlbjo6ZXJyb3I6OkVycm9yOjpuZXc6Omg2YWZhOTljZWU1MzQwZWI3qAJCYWxsb2M6OnJhd192ZWM6OlJhd1ZlY0lubmVyPEE+Ojp0cnlfYWxsb2NhdGVfaW46OmhiZTBmNDdmMWFkNTgwYWYwqQJCYWxsb2M6OnJhd192ZWM6OlJhd1ZlY0lubmVyPEE+Ojp0cnlfYWxsb2NhdGVfaW46OmgzOGFhMGZmNzNjN2NlNDhkqgI/aGFzaGJyb3duOjpyYXc6OlJhd1RhYmxlSW5uZXI6OmRyb3BfZWxlbWVudHM6OmhmZDIwMWRjYzRhMTc1MGZmqwJOYmFzZTY0OjplbmdpbmU6OmdlbmVyYWxfcHVycG9zZTo6ZGVjb2RlOjpjb21wbGV0ZV9xdWFkc19sZW46OmhhZjMwOTIwMzllZGRmMDc2rAJLPFt1OF0gYXMgb3BhcXVlX2tlOjpzZXJpYWxpemF0aW9uOjpTbGljZUV4dD46OnRha2VfYXJyYXk6Omg1Mzk2MzczYzViNDA0MTMwrQJJPFQgYXMgb3BhcXVlX2tlOjpzZXJpYWxpemF0aW9uOjpVcGRhdGVFeHQ+OjpjaGFpbl9pdGVyOjpoNjJkMmJlN2EzYWE3N2Q0Nq4CbG9wYXF1ZV9rZTo6ZXJyb3JzOjpfOjo8aW1wbCBjb3JlOjpmbXQ6OkRpc3BsYXkgZm9yIG9wYXF1ZV9rZTo6ZXJyb3JzOjpJbnRlcm5hbEVycm9yPjo6Zm10OjpoMzU3MTVkMWExNjVmNmVlNa8CfW9wYXF1ZTo6Xzo6PGltcGwgc2VyZGVfY29yZTo6c2VyOjpTZXJpYWxpemUgZm9yIG9wYXF1ZTo6Q3JlYXRlU2VydmVyUmVnaXN0cmF0aW9uUmVzcG9uc2VSZXN1bHQ+OjpzZXJpYWxpemU6OmgzMWEwYzAxNWRjMDcxYzFksAJub3BhcXVlOjpfOjo8aW1wbCBzZXJkZV9jb3JlOjpzZXI6OlNlcmlhbGl6ZSBmb3Igb3BhcXVlOjpGaW5pc2hTZXJ2ZXJMb2dpblJlc3VsdD46OnNlcmlhbGl6ZTo6aGQ5ZDBmMDNhMmNlNDEwYjOxAkhvcGFxdWVfa2U6Om1lc3NhZ2VzOjpDcmVkZW50aWFsUmVxdWVzdDxDUz46OnNlcmlhbGl6ZTo6aDcxOTNiMzg3ZWE4ZDViYjmyAjRhbGxvYzo6dmVjOjpWZWM8VCxBPjo6ZXh0ZW5kX3dpdGg6Omg3NmU1YTZkOGE4NzY5NTc2swJXb3BhcXVlX2tlOjpvcGFxdWU6OlNlcnZlclNldHVwPENTLFNLLE9TPjo6bmV3X3dpdGhfa2V5X3BhaXJfYW5kX3NlZWQ6OmgzMmJhMGViMjFlY2ZmYzZmtAJHPGdldHJhbmRvbTo6ZXJyb3I6OkVycm9yIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aGUzOWExOTU4YTI2YmIzNTG1AkVvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6c2hhcmVkOjpoa2RmX2V4cGFuZF9sYWJlbDo6aDlmNTIxYjA1OWFlMWNiNTW2AkBjdXJ2ZTI1NTE5X2RhbGVrOjpzY2FsYXI6OlNjYWxhcjo6YXNfcmFkaXhfMTY6OmhlNDFkYjU2YWVjNTQ2NjQytwJBYXJnb24yOjpBcmdvbjI6Omhhc2hfcGFzc3dvcmRfaW50b193aXRoX21lbW9yeTo6aDE2ZmJmNWVhYTI5MmVlOGa4Ai92b3ByZjo6Y29tbW9uOjpoYXNoX3RvX2dyb3VwOjpoYTQ1ZWYyYmMzMzRmOTJiNLkCNWFyZ29uMjo6QXJnb24yOjpoYXNoX3Bhc3N3b3JkX2ludG86OmgzMjAzYmRkNTZlNTYyNGUzugJtPHNlcmRlX3dhc21fYmluZGdlbjo6ZGU6OkRlc2VyaWFsaXplciBhcyBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemVyPjo6ZGVzZXJpYWxpemVfb3B0aW9uOjpoOWY0YzJmNzVkZTI2YWRlYbsChwE8b3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6Omdyb3VwOjpyaXN0cmV0dG8yNTU6OlJpc3RyZXR0bzI1NSBhcyBvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6Z3JvdXA6Okdyb3VwPjo6ZGVyaXZlX3NjYWxhcjo6aDlkZTg3MWI2ZjY1YjBmNzi8Aj1ibGFrZTI6OkJsYWtlMmJWYXJDb3JlOjpmaW5hbGl6ZV93aXRoX2ZsYWc6OmhiYzUxN2EyZTMyNjYzMjRlvQJtPHNlcmRlX3dhc21fYmluZGdlbjo6ZGU6OkRlc2VyaWFsaXplciBhcyBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemVyPjo6ZGVzZXJpYWxpemVfc3RyaW5nOjpoZDEwNDIyODFiNzVlNjMzN74CX2N1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6Y3VydmVfbW9kZWxzOjpDb21wbGV0ZWRQb2ludDo6YXNfZXh0ZW5kZWQ6OmgyNTJkZjVjNjhlNmJmOTgxvwJRYWxsb2M6OnJhd192ZWM6OlJhd1ZlY0lubmVyPEE+OjpyZXNlcnZlOjpkb19yZXNlcnZlX2FuZF9oYW5kbGU6OmhhYzllOGQ4ZTBjZmMzY2FiwAJBc2VyZGVfd2FzbV9iaW5kZ2VuOjpkZTo6RGVzZXJpYWxpemVyOjphc19ieXRlczo6aGU3Y2Q0NDEyMzE3NzA0YWHBAkJvbmNlX2NlbGw6OnVuc3luYzo6T25jZUNlbGw8VD46OmdldF9vcl90cnlfaW5pdDo6aDVjNDJmY2I0MGExYmNjYjbCAnk8ZGlnZXN0Ojpjb3JlX2FwaTo6cnRfdmFyaWFibGU6OlJ0VmFyaWFibGVDb3JlV3JhcHBlcjxUPiBhcyBkaWdlc3Q6OlZhcmlhYmxlT3V0cHV0Pjo6ZmluYWxpemVfdmFyaWFibGU6OmhiOWI5NzQ2MzQ4ZGE4ZGU0wwJDPHdhc21fYmluZGdlbjo6SnNWYWx1ZSBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoMGU1OGY4NjQ3NjcyNWI0NMQCTWNvcmU6OmZtdDo6bnVtOjppbXA6OjxpbXBsIGNvcmU6OmZtdDo6RGlzcGxheSBmb3IgdTg+OjpmbXQ6OmhiZmZiODk2NDRjMDRmNjQxxQKGATw8c2VyZGVfY29yZTo6ZGU6OldpdGhEZWNpbWFsUG9pbnQgYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10OjpMb29rRm9yRGVjaW1hbFBvaW50IGFzIGNvcmU6OmZtdDo6V3JpdGU+Ojp3cml0ZV9zdHI6Omg2MTE5NTBjZWU3OGRjOTdjxgJDb3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6OlNlcmlhbGl6ZWRDb250ZXh0Ojpmcm9tOjpoYWI2ODEyM2YyYTE4ZTA4M8cCe2N1cnZlMjU1MTlfZGFsZWs6OmZpZWxkOjo8aW1wbCBjdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OnUzMjo6ZmllbGQ6OkZpZWxkRWxlbWVudDI2MjU+Ojppc196ZXJvOjpoYjYyOTY5MzY1ZjA5N2RhNsgCUDxzZXJkZV9jb3JlOjpkZTo6V2l0aERlY2ltYWxQb2ludCBhcyBjb3JlOjpmbXQ6OkRpc3BsYXk+OjpmbXQ6Omg1YzUxMmViZTI2YmJkZGE4yQIrb3BhcXVlOjpidWlsZF9hcmdvbjJfa3NmOjpoMWRhMzIzZmQxMmVmMTU4NcoCOXdhc21fYmluZGdlbjo6X19ydDo6bWF5YmVfY2F0Y2hfdW53aW5kOjpoMjliNzg2ZGE4MTRiOGU3N8sCOXdhc21fYmluZGdlbjo6X19ydDo6bWF5YmVfY2F0Y2hfdW53aW5kOjpoY2U2ODkyODRjOTAzOTRhYswCOXdhc21fYmluZGdlbjo6X19ydDo6bWF5YmVfY2F0Y2hfdW53aW5kOjpoZGFhYzRlODExYzgwNDkwMM0COXdhc21fYmluZGdlbjo6X19ydDo6bWF5YmVfY2F0Y2hfdW53aW5kOjpoZGFkYWZmZjFmN2E1MWZmN84COXdhc21fYmluZGdlbjo6X19ydDo6bWF5YmVfY2F0Y2hfdW53aW5kOjpoZmUwOTc2YTRhMzAyMzJmZM8CXnZvcHJmOjpzZXJpYWxpemF0aW9uOjo8aW1wbCB2b3ByZjo6Y29tbW9uOjpCbGluZGVkRWxlbWVudDxDUz4+OjpkZXNlcmlhbGl6ZTo6aDRjMWNhNmJiNDkyYWZlYWTQAmxzdWJ0bGU6OjxpbXBsIGNvcmU6OmNvbnZlcnQ6OkZyb208c3VidGxlOjpDdE9wdGlvbjxUPj4gZm9yIGNvcmU6Om9wdGlvbjo6T3B0aW9uPFQ+Pjo6ZnJvbTo6aDk5ODczZDc5M2MzMDVjY2HRAjl3YXNtX2JpbmRnZW46Ol9fcnQ6Om1heWJlX2NhdGNoX3Vud2luZDo6aDFhMTAzY2U3YmMwMWYxY2TSAjl3YXNtX2JpbmRnZW46Ol9fcnQ6Om1heWJlX2NhdGNoX3Vud2luZDo6aGNkZGJjMDc3ZTg2NjkzNWTTAj92b3ByZjo6Y29tbW9uOjpkZXRlcm1pbmlzdGljX2JsaW5kX3VuY2hlY2tlZDo6aGNlZmMxNWYzOGFkYzM0M2HUAjlzaGEyOjpzaGE1MTI6OnNvZnQ6OnNoYTUxMl9zY2hlZHVsZV94Mjo6aDMyM2EwYWEzMDMxYzVkZWLVAmk8c3RkOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OkZvcm1hdFN0cmluZ1BheWxvYWQgYXMgY29yZTo6cGFuaWM6OlBhbmljUGF5bG9hZD46OmdldDo6aDkxYTc3ZGQwOWI4ZDgyMzDWAjI8Y2hhciBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoNGY1OTM2MGY4NjMxODY0OdcCOmNvcmU6OmZtdDo6YnVpbGRlcnM6OkRlYnVnVHVwbGU6OmZpbmlzaDo6aGQ4MzdmYWQ5NWIwNGQ1MDPYAlFhbGxvYzo6cmF3X3ZlYzo6UmF3VmVjSW5uZXI8QT46OnJlc2VydmU6OmRvX3Jlc2VydmVfYW5kX2hhbmRsZTo6aDY5NDQxZTUzZWIxYmNjMGHZAm08c2VyZGVfd2FzbV9iaW5kZ2VuOjpkZTo6RGVzZXJpYWxpemVyIGFzIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZXI+OjpkZXNlcmlhbGl6ZV9vcHRpb246OmhmMTRhNjdiY2NhODdjYjQz2gKtATxvcGFxdWU6Ol86OjxpbXBsIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZSBmb3Igb3BhcXVlOjpLZXlTdHJldGNoaW5nRnVuY3Rpb25Db25maWc+OjpkZXNlcmlhbGl6ZTo6X19GaWVsZFZpc2l0b3IgYXMgc2VyZGVfY29yZTo6ZGU6OlZpc2l0b3I+Ojp2aXNpdF9zdHI6OmgyZmE0NzFjMjJlNWI0Yzlm2wIlYWxsb2M6OmZtdDo6Zm9ybWF0OjpoMzBhYzU3MDA2NjM0ZTQxNNwCZjxvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6dHJpcGxlZGg6OktlMkJ1aWxkZXI8RyxIPiBhcyBjb3JlOjpvcHM6OmRyb3A6OkRyb3A+Ojpkcm9wOjpoM2M2MmQ5MzUwOTU1NDNmON0CsAE8b3BhcXVlOjpfOjo8aW1wbCBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemUgZm9yIG9wYXF1ZTo6RmluaXNoQ2xpZW50UmVnaXN0cmF0aW9uUGFyYW1zPjo6ZGVzZXJpYWxpemU6Ol9fRmllbGRWaXNpdG9yIGFzIHNlcmRlX2NvcmU6OmRlOjpWaXNpdG9yPjo6dmlzaXRfc3RyOjpoNjM1NzNlM2ZiYWViMmM0ON4CLXZvcHJmOjpjb21tb246OkRzdDxMPjo6bmV3OjpoZDgyMmYxYTM5OGI5ZTAxON8CzgE8b3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6Omdyb3VwOjpyaXN0cmV0dG8yNTU6Ok5vblplcm9TY2FsYXIgYXMgb3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6OnNoYXJlZDo6RGlmZmllSGVsbG1hbjxvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6Z3JvdXA6OnJpc3RyZXR0bzI1NTo6UmlzdHJldHRvMjU1Pj46OmRpZmZpZV9oZWxsbWFuOjpoMWI0NjlmOGNhMjY3NThmZeACbTxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpEZXNlcmlhbGl6ZXIgYXMgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplcj46OmRlc2VyaWFsaXplX3N0cmluZzo6aDZlMTFhNGRiNzU5MWM3NTfhAnI8Z2VuZXJpY19hcnJheTo6R2VuZXJpY0FycmF5PHU4LEw+IGFzIG9wYXF1ZV9rZTo6c2VyaWFsaXphdGlvbjo6R2VuZXJpY0FycmF5RXh0PE8+Pjo6Y29uY2F0X2V4dDo6aDU0M2JiOTI2OWVkODNmZWXiAoMBPG9wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjpncm91cDo6cmlzdHJldHRvMjU1OjpSaXN0cmV0dG8yNTUgYXMgb3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6Omdyb3VwOjpHcm91cD46OnJhbmRvbV9zazo6aDgzZGQ0NzJiYmZjYzJhNDHjAk08VCBhcyBhbGxvYzo6dmVjOjpzcGVjX2Zyb21fZWxlbTo6U3BlY0Zyb21FbGVtPjo6ZnJvbV9lbGVtOjpoMjBhMjc0MDBkZDY3MDVmN+QCVWVsbGlwdGljX2N1cnZlOjpoYXNoMmN1cnZlOjpoYXNoMmZpZWxkOjpleHBhbmRfbXNnOjpEb21haW48TD46Omxlbjo6aDdkZTkwZjgyYmI5Y2Y5NGTlAjJvcGFxdWVfa2U6OnNlcmlhbGl6YXRpb246Omkyb3NwOjpoYzk2ZTBlMmFhYjU0MTEwM+YCPWFsbG9jOjpyYXdfdmVjOjpSYXdWZWNJbm5lcjxBPjo6Z3Jvd19leGFjdDo6aDUxMzY0ZmRmYmY4ZGFjNzHnAj5hbGxvYzo6cmF3X3ZlYzo6UmF3VmVjSW5uZXI8QT46OmZpbmlzaF9ncm93OjpoNGFkNmU4NDQzYTYyMjgyZugCSWNvcmU6OmZtdDo6bnVtOjo8aW1wbCBjb3JlOjpmbXQ6Okxvd2VySGV4IGZvciB1OD46OmZtdDo6aDk1MDMxYTgyOTRhNzI2ZDPpAkljb3JlOjpmbXQ6Om51bTo6PGltcGwgY29yZTo6Zm10OjpVcHBlckhleCBmb3IgdTg+OjpmbXQ6OmhlOTFjZjdhZGJjY2I5NmJi6gJtPHNlcmRlX3dhc21fYmluZGdlbjo6ZGU6OkRlc2VyaWFsaXplciBhcyBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemVyPjo6ZGVzZXJpYWxpemVfb3B0aW9uOjpoNzg0YTFmZmE5YTNmNDU5OesCOXNlcmRlX2NvcmU6OmRlOjpFcnJvcjo6dW5rbm93bl92YXJpYW50OjpoMDkwMjM3YzUxZjA2NWFiZuwCRW9wYXF1ZV9rZTo6bWVzc2FnZXM6OlJlZ2lzdHJhdGlvblVwbG9hZDxDUz46OmR1bW15OjpoNmUxYzM3MjAwODhlNzY0M+0CSW9wYXF1ZV9rZTo6bWVzc2FnZXM6OlJlZ2lzdHJhdGlvblVwbG9hZDxDUz46OnNlcmlhbGl6ZTo6aGYwNWI2ODY5NjNiYTVmMjbuAmg8Y29yZTo6aXRlcjo6YWRhcHRlcnM6OnppcDo6WmlwPEEsQj4gYXMgY29yZTo6aXRlcjo6YWRhcHRlcnM6OnppcDo6WmlwSW1wbDxBLEI+Pjo6bmV3OjpoZTM5YzQ4OTY4ZjQzOTk0Oe8CWWN1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6dTMyOjpmaWVsZDo6RmllbGRFbGVtZW50MjYyNTo6cG93Mms6OmhiNDI2M2JhZmZiNjQ0MTk38AJCb25jZV9jZWxsOjp1bnN5bmM6Ok9uY2VDZWxsPFQ+OjpnZXRfb3JfdHJ5X2luaXQ6OmhlMmY3NTE4NDQyMDUwY2Jj8QIIX19tdWx0aTPyAqgBPG9wYXF1ZTo6Xzo6PGltcGwgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplIGZvciBvcGFxdWU6OlN0YXJ0U2VydmVyTG9naW5QYXJhbXM+OjpkZXNlcmlhbGl6ZTo6X19GaWVsZFZpc2l0b3IgYXMgc2VyZGVfY29yZTo6ZGU6OlZpc2l0b3I+Ojp2aXNpdF9zdHI6OmgyZDg0MDE5N2QxNzA4ZjVm8wKpATxvcGFxdWU6Ol86OjxpbXBsIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZSBmb3Igb3BhcXVlOjpGaW5pc2hDbGllbnRMb2dpblBhcmFtcz46OmRlc2VyaWFsaXplOjpfX0ZpZWxkVmlzaXRvciBhcyBzZXJkZV9jb3JlOjpkZTo6VmlzaXRvcj46OnZpc2l0X3N0cjo6aDU1M2RmY2Y2ZmE3ZTZmNDD0AihvcGFxdWU6OmJhc2U2NF9kZWNvZGU6OmhiODQwZTcyNDE3YzE1N2Jj9QJQY3VydmUyNTUxOV9kYWxlazo6YmFja2VuZDo6c2VyaWFsOjp1MzI6OnNjYWxhcjo6U2NhbGFyMjk6OmFkZDo6aDZjMzZiOGIzYzNjY2I0YmH2Aj1hbGxvYzo6cmF3X3ZlYzo6UmF3VmVjSW5uZXI8QT46OmRlYWxsb2NhdGU6OmhlZTgyN2RkNWEzMzA2NTc29wJKY29yZTo6Zm10OjpudW06OjxpbXBsIGNvcmU6OmZtdDo6TG93ZXJIZXggZm9yIGkzMj46OmZtdDo6aGYyOTEzMTE4ODAzZTNmOTj4Akpjb3JlOjpmbXQ6Om51bTo6PGltcGwgY29yZTo6Zm10OjpMb3dlckhleCBmb3IgdTMyPjo6Zm10OjpoN2E3NjBlNmViYzhlNDEyZPkCSmNvcmU6OmZtdDo6bnVtOjo8aW1wbCBjb3JlOjpmbXQ6OlVwcGVySGV4IGZvciBpMzI+OjpmbXQ6OmgzNGJiYTBhZjdkZTM4MzZk+gJKY29yZTo6Zm10OjpudW06OjxpbXBsIGNvcmU6OmZtdDo6VXBwZXJIZXggZm9yIHUzMj46OmZtdDo6aDA4MTMxOWM3MzE2ODMwMTD7AoQBY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPGNvcmU6Om9wdGlvbjo6T3B0aW9uPG9wYXF1ZV9rZTo6b3BhcXVlOjpTZXJ2ZXJSZWdpc3RyYXRpb248b3BhcXVlOjpEZWZhdWx0Q2lwaGVyU3VpdGU+Pj46Omg3ZjE2MThhNDJmNWUwODBi/AIuYmFzZTY0OjplbmNvZGU6OmVuY29kZWRfbGVuOjpoYTc0Y2QzNTk0NTRiNGNhMv0CrAE8ZWxsaXB0aWNfY3VydmU6Omhhc2gyY3VydmU6Omhhc2gyZmllbGQ6OmV4cGFuZF9tc2c6OnhtZDo6RXhwYW5kZXJYbWQ8SGFzaFQ+IGFzIGVsbGlwdGljX2N1cnZlOjpoYXNoMmN1cnZlOjpoYXNoMmZpZWxkOjpleHBhbmRfbXNnOjpFeHBhbmRlcj46OmZpbGxfYnl0ZXM6Omg3MDQ5YWRiZjkwMmQ2ZDkw/gKUAWN1cnZlMjU1MTlfZGFsZWs6OmZpZWxkOjo8aW1wbCBzdWJ0bGU6OkNvbnN0YW50VGltZUVxIGZvciBjdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OnUzMjo6ZmllbGQ6OkZpZWxkRWxlbWVudDI2MjU+OjpjdF9lcTo6aGMwODY5MWI1NmUzM2NkMzn/AjZ3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5fc3RyaW5nX2dldDo6aDJmMzAwMmI1MGRkODFjYzCAA2s8ZGlnZXN0Ojpjb3JlX2FwaTo6cnRfdmFyaWFibGU6OlJ0VmFyaWFibGVDb3JlV3JhcHBlcjxUPiBhcyBkaWdlc3Q6OlZhcmlhYmxlT3V0cHV0Pjo6bmV3OjpoYzI1MzYxOGYwOTAxNTM1YYEDPXN0ZDo6cGFuaWNraW5nOjpwYW5pY19oYW5kbGVyOjp7e2Nsb3N1cmV9fTo6aGEyNzZmMGZkODZiNmQ4NTOCA0ljdXJ2ZTI1NTE5X2RhbGVrOjpzY2FsYXI6OlNjYWxhcjo6ZnJvbV9jYW5vbmljYWxfYnl0ZXM6OmhlZjhhODgwZjhmZDhlM2MygwNdPGN1cnZlMjU1MTlfZGFsZWs6OnJpc3RyZXR0bzo6UmlzdHJldHRvUG9pbnQgYXMgemVyb2l6ZTo6WmVyb2l6ZT46Onplcm9pemU6Omg2YjU4YWUxMWI2YTVlMWEyhAM8PFQgYXMgYWxsb2M6OnN0cmluZzo6VG9TdHJpbmc+Ojp0b19zdHJpbmc6OmgzMGQ3MjU4MmYxY2M4Yjk0hQNrPHNlcmRlX3dhc21fYmluZGdlbjo6ZGU6OkRlc2VyaWFsaXplciBhcyBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemVyPjo6ZGVzZXJpYWxpemVfdW5pdDo6aGY0YTI2NjE3NWM5NjhiZmKGA1A8c2VyZGVfd2FzbV9iaW5kZ2VuOjplcnJvcjo6RXJyb3IgYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10OjpoYjI2MTFlY2U4OGZmMWY3N4cDhAE8b3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6Omdyb3VwOjpyaXN0cmV0dG8yNTU6OlJpc3RyZXR0bzI1NSBhcyBvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6Z3JvdXA6Okdyb3VwPjo6cHVibGljX2tleTo6aGQyOGQ3ZDkyMGNiY2JiZjeIA2FjdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OmN1cnZlX21vZGVsczo6Q29tcGxldGVkUG9pbnQ6OmFzX3Byb2plY3RpdmU6Omg5N2NhMDA0YzZlMDUxNGZliQNhPGN1cnZlMjU1MTlfZGFsZWs6OnJpc3RyZXR0bzo6UmlzdHJldHRvUG9pbnQgYXMgc3VidGxlOjpDb25zdGFudFRpbWVFcT46OmN0X2VxOjpoMGQwNjNkMDNiMTU4ZGE4NooDYzxjdXJ2ZTI1NTE5X2RhbGVrOjpyaXN0cmV0dG86OlJpc3RyZXR0b1BvaW50IGFzIGNvcmU6OmRlZmF1bHQ6OkRlZmF1bHQ+OjpkZWZhdWx0OjpoYTdlNTQyYmE5NTdmNWVjMosDbzxhcmdvbjI6OmJsb2NrOjpCbG9jayBhcyBjb3JlOjpvcHM6OmJpdDo6Qml0WG9yQXNzaWduPCZhcmdvbjI6OmJsb2NrOjpCbG9jaz4+OjpiaXR4b3JfYXNzaWduOjpoNDhjMTE2YzE5M2MxOWM0MYwDb29wYXF1ZV9rZTo6ZXJyb3JzOjpfOjo8aW1wbCBjb3JlOjpmbXQ6OkRpc3BsYXkgZm9yIG9wYXF1ZV9rZTo6ZXJyb3JzOjpQcm90b2NvbEVycm9yPFQ+Pjo6Zm10OjpoN2ZiNjQzNmM2YjNjYmU1MI0DGV9fZXh0ZXJucmVmX3RhYmxlX2RlYWxsb2OOAzpvcGFxdWVfa2U6Om9wYXF1ZTo6U2VydmVyU2V0dXA8Q1M+OjpuZXc6Omg4ZTc5M2JmN2Q0N2QwMDM4jwM6YWxsb2M6OnZlYzo6VmVjPFQsQT46OnRyeV9yZXNlcnZlX2V4YWN0OjpoYTljMjY2ODliYzRiZTE0YZADQzxvcGFxdWU6OkN1c3RvbUtzZiBhcyBvcGFxdWVfa2U6OmtzZjo6S3NmPjo6aGFzaDo6aDdiNzE0MmYwZDY2YzExMjKRAy1qc19zeXM6OlVpbnQ4QXJyYXk6OnRvX3ZlYzo6aGZjNmNiYjgwNjRkNGZkODGSAztjb3JlOjpmbXQ6OmJ1aWxkZXJzOjpEZWJ1Z1N0cnVjdDo6ZmluaXNoOjpoODhlNTViZmRkYzRlNGRlMpMDOWFsbG9jOjp2ZWM6OlZlYzxULEE+OjppbnRvX2JveGVkX3NsaWNlOjpoMzZhZTI5ZGQ4ZWZiN2UyNZQDOWFsbG9jOjp2ZWM6OlZlYzxULEE+OjppbnRvX2JveGVkX3NsaWNlOjpoYzlkZmM3MTRmN2ExMWI1N5UDSDxkbG1hbGxvYzo6c3lzOjpTeXN0ZW0gYXMgZGxtYWxsb2M6OkFsbG9jYXRvcj46OmFsbG9jOjpoZmU3Zjc5NmJlYWI0OWIyOZYDYzxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpFbnVtQWNjZXNzIGFzIHNlcmRlX2NvcmU6OmRlOjpFbnVtQWNjZXNzPjo6dmFyaWFudF9zZWVkOjpoZjM5NGFiYWY4YWQ4N2JhMpcDZ2NvcmU6OnB0cjo6ZHJvcF9pbl9wbGFjZTxvcGFxdWVfa2U6Om9wYXF1ZTo6Q2xpZW50TG9naW48b3BhcXVlOjpEZWZhdWx0Q2lwaGVyU3VpdGU+Pjo6aDkzZDhiMTAwZTA1MWM0NTGYA3M8c2VyZGVfd2FzbV9iaW5kZ2VuOjpzZXI6Ok9iamVjdFNlcmlhbGl6ZXIgYXMgc2VyZGVfY29yZTo6c2VyOjpTZXJpYWxpemVTdHJ1Y3Q+OjpzZXJpYWxpemVfZmllbGQ6Omg2MmFiNzgyYmY2YTUwODI0mQMqanNfc3lzOjpGdW5jdGlvbjo6Y2FsbDE6Omg4ZmRmYmQ3YjI2NDc5MGJimgMxPFtUXSBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoODUwMjg3MjBhOTVkOWJhNJsDqQE8b3BhcXVlOjpfOjo8aW1wbCBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemUgZm9yIG9wYXF1ZTo6RmluaXNoU2VydmVyTG9naW5QYXJhbXM+OjpkZXNlcmlhbGl6ZTo6X19GaWVsZFZpc2l0b3IgYXMgc2VyZGVfY29yZTo6ZGU6OlZpc2l0b3I+Ojp2aXNpdF9zdHI6Omg2YTAxMjA3MmRmZmUwNjQxnAO4ATxvcGFxdWU6Ol86OjxpbXBsIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZSBmb3Igb3BhcXVlOjpDcmVhdGVTZXJ2ZXJSZWdpc3RyYXRpb25SZXNwb25zZVBhcmFtcz46OmRlc2VyaWFsaXplOjpfX0ZpZWxkVmlzaXRvciBhcyBzZXJkZV9jb3JlOjpkZTo6VmlzaXRvcj46OnZpc2l0X3N0cjo6aDU4YTYzODQ0ODY1OTU3NmKdAzJvcGFxdWVfa2U6OnNlcmlhbGl6YXRpb246Omkyb3NwOjpoYjUwODI0N2ZjODQyZTA2Y54DSTxUIGFzIG9wYXF1ZV9rZTo6c2VyaWFsaXphdGlvbjo6VXBkYXRlRXh0Pjo6Y2hhaW5faXRlcjo6aDMwMGEyNTRhNzkwNGJhNDKfAz13YXNtX2JpbmRnZW46OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6Omg2ZmMxMzRlMWY3ZTAzNmQ5oAM2YmFzZTY0OjplbmNvZGU6OmVuY29kZV93aXRoX3BhZGRpbmc6Omg1ZDkxZDNhNzMwNDFjOTQyoQMqanNfc3lzOjpGdW5jdGlvbjo6Y2FsbDA6OmhjZGY5Mzg0OWNjNDRkMWFiogMoX19ydXN0Y1tkMTMxNDkxYjE3MTA3YjA3XTo6X19yZGxfZGVhbGxvY6MDLmNvcmU6OnJlc3VsdDo6dW53cmFwX2ZhaWxlZDo6aGQzZGE0MWM2N2M0NTg2YTikA11lbGxpcHRpY19jdXJ2ZTo6aGFzaDJjdXJ2ZTo6aGFzaDJmaWVsZDo6ZXhwYW5kX21zZzo6RG9tYWluPEw+Ojp1cGRhdGVfaGFzaDo6aGQxMzA4ZTU0MTNkYjZiNGGlA0s8cmFuZF9jb3JlOjpvczo6T3NSbmcgYXMgcmFuZF9jb3JlOjpSbmdDb3JlPjo6ZmlsbF9ieXRlczo6aDdlYTQzYWRjMDlkMmI1NmSmA05jb3JlOjpmbXQ6Om51bTo6aW1wOjo8aW1wbCBjb3JlOjpmbXQ6OkRpc3BsYXkgZm9yIGkzMj46OmZtdDo6aDEyNmQ1ZmRmOTJiZTUyOTWnAzdhcmdvbjI6OkFyZ29uMjo6dXBkYXRlX2FkZHJlc3NfYmxvY2s6Omg3YWRmMjUyYzJjOGJhOWExqAMuanNfc3lzOjpVaW50OEFycmF5Ojpjb3B5X3RvOjpoOTYyYmVjMThkNjk3YTNhMakD4QE8PG9wYXF1ZTo6Xzo6PGltcGwgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplIGZvciBvcGFxdWU6OktleVN0cmV0Y2hpbmdGdW5jdGlvbkNvbmZpZz46OmRlc2VyaWFsaXplOjpfX1Zpc2l0b3IgYXMgc2VyZGVfY29yZTo6ZGU6OlZpc2l0b3I+Ojp2aXNpdF9lbnVtOjpfX0ZpZWxkVmlzaXRvciBhcyBzZXJkZV9jb3JlOjpkZTo6VmlzaXRvcj46OnZpc2l0X3N0cjo6aDQzM2FjMzg4NGJhNWQ2MDOqAzhzZXJkZV9jb3JlOjpkZTo6RXJyb3I6OmludmFsaWRfbGVuZ3RoOjpoYWJkYzllYjI4YmNhODkwN6sDbHN1YnRsZTo6PGltcGwgY29yZTo6Y29udmVydDo6RnJvbTxzdWJ0bGU6OkN0T3B0aW9uPFQ+PiBmb3IgY29yZTo6b3B0aW9uOjpPcHRpb248VD4+Ojpmcm9tOjpoNjlhODUzNTAwNWYxMTAyY6wDTmNvcmU6OmZtdDo6bnVtOjppbXA6OjxpbXBsIGNvcmU6OmZtdDo6RGlzcGxheSBmb3IgaTY0Pjo6Zm10OjpoM2EzZjIzZDIxNWIzNjQwMq0DEWNyZWF0ZVNlcnZlclNldHVwrgNPY3VydmUyNTUxOV9kYWxlazo6cmlzdHJldHRvOjpDb21wcmVzc2VkUmlzdHJldHRvOjpmcm9tX3NsaWNlOjpoYzM0OTY0MzRlMDNjMDJkMK8DVTxvcGFxdWVfa2U6OmVudmVsb3BlOjpFbnZlbG9wZTxDUz4gYXMgY29yZTo6b3BzOjpkcm9wOjpEcm9wPjo6ZHJvcDo6aDEwNzM3ZGJmZGYxODBjMjiwAzdzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpjb252ZXJ0X3BhaXI6OmgyY2M2YTgxN2RjZDAxZDNisQMwPCZUIGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6Omg2NDI5NTUzZmJmMmMxNzVlsgM3c3RkOjphbGxvYzo6ZGVmYXVsdF9hbGxvY19lcnJvcl9ob29rOjpoMDQ2MzliNjA5YjI1MDdmZbMDfDxhbGxvYzo6dmVjOjpWZWM8VCxBPiBhcyBhbGxvYzo6dmVjOjpzcGVjX2V4dGVuZDo6U3BlY0V4dGVuZDwmVCxjb3JlOjpzbGljZTo6aXRlcjo6SXRlcjxUPj4+OjpzcGVjX2V4dGVuZDo6aGQyMWNiNjc1NzZkNzc1OTa0A3w8YWxsb2M6OnZlYzo6VmVjPFQsQT4gYXMgYWxsb2M6OnZlYzo6c3BlY19leHRlbmQ6OlNwZWNFeHRlbmQ8JlQsY29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXI8VD4+Pjo6c3BlY19leHRlbmQ6Omg1MjBhMzdiNDlhODRlNDI1tQM2Y29yZTo6cGFuaWNraW5nOjpwYW5pY19ib3VuZHNfY2hlY2s6Omg0OTkxZjkzNGViODdkMDkztgNaY29yZTo6c2xpY2U6OmNvcHlfZnJvbV9zbGljZV9pbXBsOjpsZW5fbWlzbWF0Y2hfZmFpbDo6ZG9fcGFuaWM6OnJ1bnRpbWU6OmgxODdkNzIxMDZhM2VkOWFmtwNKY29yZTo6c2xpY2U6OmluZGV4OjpzbGljZV9pbmRleF9mYWlsOjpkb19wYW5pYzo6cnVudGltZTo6aDlhZGZlYjVjZDRhMDJhMTO4A0pjb3JlOjpzbGljZTo6aW5kZXg6OnNsaWNlX2luZGV4X2ZhaWw6OmRvX3BhbmljOjpydW50aW1lOjpoYjEzZDBlZGQ4OWQ2NmJiMLkDSmNvcmU6OnNsaWNlOjppbmRleDo6c2xpY2VfaW5kZXhfZmFpbDo6ZG9fcGFuaWM6OnJ1bnRpbWU6Omg0YWRlNzk2Y2U1ZjM1NGY2ugNqPHNlcmRlX3dhc21fYmluZGdlbjo6ZGU6OkRlc2VyaWFsaXplciBhcyBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemVyPjo6ZGVzZXJpYWxpemVfdTMyOjpoNDNlMzFlYTcwYzE2NzljZLsDQmhhc2hicm93bjo6cmF3OjpSYXdUYWJsZUlubmVyOjpkcm9wX2lubmVyX3RhYmxlOjpoZGFjZmFjNDUwMDliMjQzMrwDLmJhc2U2NDo6ZW5jb2RlOjphZGRfcGFkZGluZzo6aGJlMmM0MzQ5OWEyMTFlMzG9A0w8YWxsb2M6OnN0cmluZzo6U3RyaW5nIGFzIGNvcmU6OmZtdDo6V3JpdGU+Ojp3cml0ZV9zdHI6OmhhMTEwNTM2YmEzZmQ4ZWNhWzJdvgMGbWVtY21wvwNWPGN1cnZlMjU1MTlfZGFsZWs6OnNjYWxhcjo6U2NhbGFyIGFzIHN1YnRsZTo6Q29uc3RhbnRUaW1lRXE+OjpjdF9lcTo6aGJjZjEwZmUwY2QzY2I4NzDAA1tjdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OnUzMjo6ZmllbGQ6OkZpZWxkRWxlbWVudDI2MjU6OnNxdWFyZTI6Omg5M2M5YzVkZTFlMTczNzE2wQNPPHJhbmRfY29yZTo6b3M6Ok9zUm5nIGFzIHJhbmRfY29yZTo6Um5nQ29yZT46OnRyeV9maWxsX2J5dGVzOjpoN2EyN2NkZDg2NDc4OTZkNsIDLV9fcnVzdGNbZDEzMTQ5MWIxNzEwN2IwN106Ol9fcmRsX2FsbG9jX3plcm9lZMMDTDxhbGxvYzo6c3RyaW5nOjpTdHJpbmcgYXMgY29yZTo6Zm10OjpXcml0ZT46OndyaXRlX3N0cjo6aGExMTA1MzZiYTNmZDhlY2FbM13EA1Q8Y29yZTo6Zm10OjpidWlsZGVyczo6UGFkQWRhcHRlciBhcyBjb3JlOjpmbXQ6OldyaXRlPjo6d3JpdGVfY2hhcjo6aDAwYTQ5MmI2YjIxZmExNTTFA6MBPG9wYXF1ZTo6Xzo6PGltcGwgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplIGZvciBvcGFxdWU6OkN1c3RvbUlkZW50aWZpZXJzPjo6ZGVzZXJpYWxpemU6Ol9fRmllbGRWaXNpdG9yIGFzIHNlcmRlX2NvcmU6OmRlOjpWaXNpdG9yPjo6dmlzaXRfc3RyOjpoMWE4ZmM2NmRjY2Q3MzBjOcYDKW9wYXF1ZTo6Z2V0X2N1c3RvbV9rc2Y6Omg5YTgyZTk3MzUwMzI5OWZhxwNLb3BhcXVlX2tlOjpvcGFxdWU6OlNlcnZlclNldHVwPENTLFNLPjo6bmV3X3dpdGhfa2V5X3BhaXI6OmgzNjA1MDFiZjQ1MTBhYmU2yAM5d2FzbV9iaW5kZ2VuOjpfX3J0OjptYXliZV9jYXRjaF91bndpbmQ6OmhkNmMzZDJhZmNlMGY3ZjljyQMwPCZUIGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6OmhlNmZmYTdjZThhODBhNWYxygM4c3RkOjpwYW5pY2tpbmc6OnBhbmljX2NvdW50OjppbmNyZWFzZTo6aDhkNjc3YTRiYzMyOTJkMznLA05jb3JlOjpmbXQ6Om51bTo6aW1wOjo8aW1wbCBjb3JlOjpmbXQ6OkRpc3BsYXkgZm9yIHUzMj46OmZtdDo6aGFiZTMwNTk3MjMzMjZmOTjMA05jb3JlOjpmbXQ6Om51bTo6aW1wOjo8aW1wbCBjb3JlOjpmbXQ6OkRpc3BsYXkgZm9yIHU2ND46OmZtdDo6aDZkZTcwOWMxODBjNTg0YjHNA0o8YWxsb2M6OnN0cmluZzo6RnJvbVV0ZjhFcnJvciBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoZTcwNDk3ZmYxN2M2NmM2N84DUWFsbG9jOjpyYXdfdmVjOjpSYXdWZWNJbm5lcjxBPjo6cmVzZXJ2ZTo6ZG9fcmVzZXJ2ZV9hbmRfaGFuZGxlOjpoMzdmNTU5MDY3MTYyZDZmMc8DNndhc21fYmluZGdlbjo6X193YmluZGdlbl9udW1iZXJfZ2V0OjpoYzRhNmIwMzU2MjMzZGQxMNADUWFsbG9jOjpyYXdfdmVjOjpSYXdWZWNJbm5lcjxBPjo6cmVzZXJ2ZTo6ZG9fcmVzZXJ2ZV9hbmRfaGFuZGxlOjpoYjJmODA2MjI3Y2YxMmMwZNEDS2NvcmU6OmZtdDo6ZmxvYXQ6OjxpbXBsIGNvcmU6OmZtdDo6RGlzcGxheSBmb3IgZjY0Pjo6Zm10OjpoZTc0MDEyNjFkOGY3ZjMwZtIDYDx2b3ByZjo6Z3JvdXA6OnJpc3RyZXR0bzo6UmlzdHJldHRvMjU1IGFzIHZvcHJmOjpncm91cDo6R3JvdXA+OjpyYW5kb21fc2NhbGFyOjpoZjVmZTRiYWRiYTNkMjk4MNMDaDxjb3JlOjppdGVyOjphZGFwdGVyczo6emlwOjpaaXA8QSxCPiBhcyBjb3JlOjppdGVyOjphZGFwdGVyczo6emlwOjpaaXBJbXBsPEEsQj4+OjpuZXc6Omg2OTQ5NTg3YWYwNGRmOWU01AOIAXdhc21fYmluZGdlbjo6Y29udmVydDo6c2xpY2VzOjo8aW1wbCB3YXNtX2JpbmRnZW46OmNvbnZlcnQ6OnRyYWl0czo6RnJvbVdhc21BYmkgZm9yIGFsbG9jOjpib3hlZDo6Qm94PFtUXT4+Ojpmcm9tX2FiaTo6aGRiNTM4ZjVmMDUzMzI5OTXVA2s8c3RkOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OlN0YXRpY1N0clBheWxvYWQgYXMgY29yZTo6cGFuaWM6OlBhbmljUGF5bG9hZD46OnRha2VfYm94OjpoNzFjNTY1ZWEyNmE2NjhlOdYDN2NvcmU6OnNsaWNlOjppbmRleDo6c2xpY2VfaW5kZXhfZmFpbDo6aGY0MDc5N2QyMGMyZWVkY2TXA4YBPG9wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjpncm91cDo6cmlzdHJldHRvMjU1OjpSaXN0cmV0dG8yNTUgYXMgb3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6Omdyb3VwOjpHcm91cD46OnNlcmlhbGl6ZV9zazo6aDJmMGIwZmVlZDllNTZhN2XYA2M8dm9wcmY6Omdyb3VwOjpyaXN0cmV0dG86OlJpc3RyZXR0bzI1NSBhcyB2b3ByZjo6Z3JvdXA6Okdyb3VwPjo6c2VyaWFsaXplX3NjYWxhcjo6aDc4NmI3NDFiYzcxNDhlYjjZA5EBPGN1cnZlMjU1MTlfZGFsZWs6OmJhY2tlbmQ6OnNlcmlhbDo6Y3VydmVfbW9kZWxzOjpQcm9qZWN0aXZlTmllbHNQb2ludCBhcyBzdWJ0bGU6OkNvbmRpdGlvbmFsbHlTZWxlY3RhYmxlPjo6Y29uZGl0aW9uYWxfYXNzaWduOjpoYzVkOTRjYjcwMjI2NGI3MNoDZzxzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpPYmplY3RBY2Nlc3MgYXMgc2VyZGVfY29yZTo6ZGU6Ok1hcEFjY2Vzcz46Om5leHRfdmFsdWVfc2VlZDo6aDEwNGMxN2JjOTU1NzQxNGTbA2w8Y29yZTo6aXRlcjo6YWRhcHRlcnM6OmNsb25lZDo6Q2xvbmVkPEk+IGFzIGNvcmU6Oml0ZXI6OnRyYWl0czo6aXRlcmF0b3I6Okl0ZXJhdG9yPjo6bmV4dDo6aGEzN2M3OTg4Mzk4ZTM1ZTjcAzJnZXRyYW5kb206OmVycm9yOjppbnRlcm5hbF9kZXNjOjpoYzAwZThmNDRlYmE1ZjcwYt0DN3dhc21fYmluZGdlbjo6SnNUaHJlYWRMb2NhbDxUPjo6d2l0aDo6aDc4OGQ1NzQyMjY0ZThiNmXeAy1jb3JlOjpwYW5pY2tpbmc6OnBhbmljX2ZtdDo6aGE5Mjc2ZDRkOWY3NGM2NGXfAy5jb3JlOjpvcHRpb246OmV4cGVjdF9mYWlsZWQ6Omg1YzMwODJjY2VhMmRlOTli4AM7Y3VydmUyNTUxOV9kYWxlazo6c2NhbGFyOjpTY2FsYXI6OmludmVydDo6aGE5ZTZiYmFiODU3M2Q5OGXhA0c8cmFuZF9jb3JlOjplcnJvcjo6RXJyb3IgYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10OjpoNTcwZDJiNjJlYjRkNDg5MeIDMDwmVCBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoNWJlNWIyOWIzMTk2YzBjOeMDb2NvcmU6OnB0cjo6ZHJvcF9pbl9wbGFjZTxvcGFxdWVfa2U6Om1lc3NhZ2VzOjpDcmVkZW50aWFsUmVxdWVzdDxvcGFxdWU6OkRlZmF1bHRDaXBoZXJTdWl0ZT4+OjpoNzQ1MzJkNmQ0OGUxYTk3MuQDN3dhc21fYmluZGdlbjo6Y2FzdDo6SnNDYXN0OjpkeW5faW50bzo6aGUyMmYyOTc0YjA3NjgzZWLlAxFfX3diaW5kZ2VuX21hbGxvY+YDYjxzdGQ6OnBhbmlja2luZzo6cGFuaWNfaGFuZGxlcjo6Rm9ybWF0U3RyaW5nUGF5bG9hZCBhcyBjb3JlOjpmbXQ6OkRpc3BsYXk+OjpmbXQ6Omg3YjYzOGYxMGU1YmVkMmZh5wNDY29yZTo6Zm10OjpGb3JtYXR0ZXI6OnBhZF9pbnRlZ3JhbDo6d3JpdGVfcHJlZml4OjpoY2NkYzcyZTMxNmJhMDQwN+gDMWNvcmU6OnBhbmlja2luZzo6YXNzZXJ0X2ZhaWxlZDo6aGFlZDMwNTIyNGVlZDdiM2LpAzFjb3JlOjpwYW5pY2tpbmc6OmFzc2VydF9mYWlsZWQ6Omg4MjYxNDY4ODRjMjhlYWY46gNgc2VyZGVfY29yZTo6ZGU6OmltcGxzOjo8aW1wbCBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemUgZm9yICgpPjo6ZGVzZXJpYWxpemU6OmhiZGMxOGJmM2I5Zjg0ZjVk6wNDb3BhcXVlX2tlOjprZXlfZXhjaGFuZ2U6OlNlcmlhbGl6ZWRDb250ZXh0OjppdGVyOjpoNTUxYjA3MTA2Mjc0ZjIwM+wDZTxnZW5lcmljX2FycmF5OjpHZW5lcmljQXJyYXk8VCxOPiBhcyBnZW5lcmljX2FycmF5OjpzZXF1ZW5jZTo6Q29uY2F0PFQsTT4+Ojpjb25jYXQ6OmhiODM3NzFhMGEzOWI5YThl7QNbPCZjdXJ2ZTI1NTE5X2RhbGVrOjplZHdhcmRzOjpFZHdhcmRzUG9pbnQgYXMgY29yZTo6b3BzOjphcml0aDo6QWRkPjo6YWRkOjpoZDMwYjcxNjc3MTlhZmZhY+4DSWNvcmU6OmZtdDo6bnVtOjo8aW1wbCBjb3JlOjpmbXQ6OkRlYnVnIGZvciB1c2l6ZT46OmZtdDo6aGYwZjY3MzgzNjcyZjgwNjbvA088Y29yZTo6c2xpY2U6Oml0ZXI6Okl0ZXJNdXQ8Wj4gYXMgemVyb2l6ZTo6WmVyb2l6ZT46Onplcm9pemU6OmgxNzkyNTU3YjEyNGQ0M2Jj8ANHY29yZTo6Zm10OjpudW06OjxpbXBsIGNvcmU6OmZtdDo6RGVidWcgZm9yIGkzMj46OmZtdDo6aDhjYTkwNTU5NzI3OTM3ZmPxA0djb3JlOjpmbXQ6Om51bTo6PGltcGwgY29yZTo6Zm10OjpEZWJ1ZyBmb3IgdTMyPjo6Zm10OjpoZmY1ZDFlZDdhODhiYTYwOfIDSjxjb3JlOjpvcHM6OnJhbmdlOjpSYW5nZTxJZHg+IGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6Omg5ZDcyYjI2MzRhMjdiZmI48wNRY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPHNlcmRlX3dhc21fYmluZGdlbjo6ZGU6Ok9iamVjdEFjY2Vzcz46Omg2MTBhMmViMWMwZTZiOTE39AM3c2VyZGVfd2FzbV9iaW5kZ2VuOjpzdGF0aWNfc3RyX3RvX2pzOjpoM2RmYTM0YmEwMDIyY2I5MvUDTzxjb3JlOjpudW06OmVycm9yOjpUcnlGcm9tSW50RXJyb3IgYXMgY29yZTo6Zm10OjpEZWJ1Zz46OmZtdDo6aDIwMmUxZWJlMjY3OWNhNTX2A0w8Y29yZTo6YXJyYXk6OlRyeUZyb21TbGljZUVycm9yIGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6OmhiYmQ4NjJhMmQ3OGUyMmJi9wMyZ2V0cmFuZG9tOjppbXA6OmdldHJhbmRvbV9pbm5lcjo6aGRhYmY5Nzc2YTliNjcxY2X4AxJfX3diaW5kZ2VuX3JlYWxsb2P5A008c3RkOjp0aHJlYWQ6OmxvY2FsOjpBY2Nlc3NFcnJvciBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoMDdhYTc5ZDdiNGY5NGE1OPoDMWNvcmU6OnBhbmlja2luZzo6cGFuaWNfZGlzcGxheTo6aDQ2MDE2NDNhMDkxOTIxZmb7Azdjb3JlOjpwYW5pY2tpbmc6OnVucmVhY2hhYmxlX2Rpc3BsYXk6Omg0NTJmNzY1ODljMDBlYjQz/ANSPGN1cnZlMjU1MTlfZGFsZWs6OnNjYWxhcjo6U2NhbGFyIGFzIHplcm9pemU6Olplcm9pemU+Ojp6ZXJvaXplOjpoZjAwMzZlM2MxY2U2MWYwZP0DgAE8Y3VydmUyNTUxOV9kYWxlazo6cmlzdHJldHRvOjpSaXN0cmV0dG9Qb2ludCBhcyBjb3JlOjpvcHM6OmFyaXRoOjpNdWw8Y3VydmUyNTUxOV9kYWxlazo6c2NhbGFyOjpTY2FsYXI+Pjo6bXVsOjpoMTZlZjA5MmNkMTRlNzBiMP4DgQE8Y3VydmUyNTUxOV9kYWxlazo6cmlzdHJldHRvOjpSaXN0cmV0dG9Qb2ludCBhcyBjb3JlOjpvcHM6OmFyaXRoOjpNdWw8JmN1cnZlMjU1MTlfZGFsZWs6OnNjYWxhcjo6U2NhbGFyPj46Om11bDo6aDUwZDgxNzkxZGE4YzNjYTj/AxZfX2V4dGVybnJlZl9kcm9wX3NsaWNlgAQ5c3RkOjp0aHJlYWQ6OmxvY2FsOjpwYW5pY19hY2Nlc3NfZXJyb3I6OmgzZDQwZDlhODk4Yzk4YmFlgQQ5Y29yZTo6Zm10OjpidWlsZGVyczo6RGVidWdMaXN0OjpmaW5pc2g6OmhmOWRkYzg1NmExNjVmMTRjggRIY29yZTo6Y2VsbDo6cGFuaWNfYWxyZWFkeV9ib3Jyb3dlZDo6ZG9fcGFuaWM6OnJ1bnRpbWU6OmhkNjRjYzIzNTllMmE2M2NhgwQiZ2V0U2VydmVyUHVibGljS2V5IG11bHRpdmFsdWUgc2hpbYQESnNlcmRlX3dhc21fYmluZGdlbjo6ZGU6OkRlc2VyaWFsaXplcjo6YXNfb2JqZWN0X2VudHJpZXM6OmgwNGI0NDE4NWY4NjUxY2MzhQQ0Y29yZTo6Zm10OjpGb3JtYXR0ZXI6OmRlYnVnX3R1cGxlOjpoZTRjOWNjYWQxNmE2ZjgxYoYEQ3NlcmRlX3dhc21fYmluZGdlbjo6ZGU6OkRlc2VyaWFsaXplcjo6aXNfbnVsbGlzaDo6aDAxOTY3ZjZhMDMzZDc0NmSHBE5jdXJ2ZTI1NTE5X2RhbGVrOjpzY2FsYXI6OlNjYWxhcjo6ZnJvbV9ieXRlc19tb2Rfb3JkZXJfd2lkZTo6aDdlNWNmNmUwZGQyNGFlMTWIBDRjb3JlOjpzbGljZTo6Y29weV9mcm9tX3NsaWNlX2ltcGw6OmhhZGFjMjc1NDRkOGVlMjlhiQQsX19ydXN0Y1tkMTMxNDkxYjE3MTA3YjA3XTo6cnVzdF9iZWdpbl91bndpbmSKBDRjb3JlOjpzbGljZTo6Y29weV9mcm9tX3NsaWNlX2ltcGw6OmhjZDU2ZjViYjdiMmU1ZWUziwRqY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPGNvcmU6OnJlc3VsdDo6UmVzdWx0PCgpLGNvcmU6Om9wdGlvbjo6T3B0aW9uPGpzX3N5czo6T2JqZWN0Pj4+OjpoYzZkODEwNWQxMjFmMDhjN4wEM2NvcmU6OmZtdDo6Rm9ybWF0dGVyOjpkZWJ1Z19saXN0OjpoODgxMTRmMTdlMmYwYzNlMY0ENWNvcmU6OmZtdDo6Rm9ybWF0dGVyOjpkZWJ1Z19zdHJ1Y3Q6OmhhMWY0OGEyMTM2NGFlZmY3jgQwZmluaXNoU2VydmVyTG9naW4gZXh0ZXJucmVmIHNoaW0gbXVsdGl2YWx1ZSBzaGltjwQwZmluaXNoQ2xpZW50TG9naW4gZXh0ZXJucmVmIHNoaW0gbXVsdGl2YWx1ZSBzaGltkAQ2c3RhcnRDbGllbnRSZWdpc3RyYXRpb24gZXh0ZXJucmVmIHNoaW0gbXVsdGl2YWx1ZSBzaGltkQQvc3RhcnRDbGllbnRMb2dpbiBleHRlcm5yZWYgc2hpbSBtdWx0aXZhbHVlIHNoaW2SBDdmaW5pc2hDbGllbnRSZWdpc3RyYXRpb24gZXh0ZXJucmVmIHNoaW0gbXVsdGl2YWx1ZSBzaGltkwQvc3RhcnRTZXJ2ZXJMb2dpbiBleHRlcm5yZWYgc2hpbSBtdWx0aXZhbHVlIHNoaW2UBD9jcmVhdGVTZXJ2ZXJSZWdpc3RyYXRpb25SZXNwb25zZSBleHRlcm5yZWYgc2hpbSBtdWx0aXZhbHVlIHNoaW2VBEhzZXJkZV93YXNtX2JpbmRnZW46OmRlOjpEZXNlcmlhbGl6ZXI6OmFzX3NhZmVfaW50ZWdlcjo6aGFhNTc2MWY4M2NkMWQyNDeWBH08YmFzZTY0OjplbmdpbmU6OmdlbmVyYWxfcHVycG9zZTo6R2VuZXJhbFB1cnBvc2UgYXMgYmFzZTY0OjplbmdpbmU6OkVuZ2luZT46OmludGVybmFsX2RlY29kZWRfbGVuX2VzdGltYXRlOjpoY2Y4OWIwZTM5MGE1OGFmMpcERjxhcmdvbjI6OkFyZ29uMiBhcyBjb3JlOjpkZWZhdWx0OjpEZWZhdWx0Pjo6ZGVmYXVsdDo6aDg5ZTdhZGNkNTk3NTIyNjWYBD13YXNtX2JpbmRnZW46OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6OmhkZDJmMDZlMWFhN2JhMDc2mQQ6d2FzbV9iaW5kZ2VuOjpfX3J0Ojp0YWtlX2xhc3RfZXhjZXB0aW9uOjpoNzc1MzcyZThkNjI5NjE3OJoEPHNlcmRlX3dhc21fYmluZGdlbjo6ZGU6Ok9iamVjdEFjY2Vzczo6bmV3OjpoMTQ3MzJmOTFiNGJiMmM1Y5sEMGFsbG9jOjp2ZWM6OlZlYzxULEE+OjpyZXNlcnZlOjpoNDE2NDdkOTEyZjU0NGY0Y5wEUDwmbXV0IEkgYXMgY29yZTo6aXRlcjo6dHJhaXRzOjppdGVyYXRvcjo6SXRlcmF0b3I+OjpzaXplX2hpbnQ6OmhjZDM3ZjExNjZiNTA5MDAwnQQ9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoMDZiNWFiNjUyNGMzNzk0NJ4EPXdhc21fYmluZGdlbjo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6aDEwM2FkYmM4OTYzMzYzYzCfBD13YXNtX2JpbmRnZW46OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6OmgxNTk4ZjJlN2ZlMzlmZjVloAQ9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoMTYyMGNjZDQ0NzM5NTNhYqEEPXdhc21fYmluZGdlbjo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6aDRjYmU0ODdiNjc4MmFhMTCiBD13YXNtX2JpbmRnZW46OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6Omg2MDczMmM0ZTkxNjA5ZjMwowQ9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoODEwNWM5N2IxMTM3MzY5N6QEPXdhc21fYmluZGdlbjo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6aGI1ODRmYzcyYTQwOTczMzKlBCdzdGQ6OmFsbG9jOjpydXN0X29vbTo6aDlmN2U1MDM1MDMxN2IyY2amBCl2b3ByZjo6Y29tbW9uOjppMm9zcF8yOjpoMzQ2ZjViYTFmN2FjYTdjY6cEPXdhc21fYmluZGdlbjo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6aDE4ZDkxNjdiY2ExYzJjYmSoBCFjcmVhdGVTZXJ2ZXJTZXR1cCBtdWx0aXZhbHVlIHNoaW2pBD13YXNtX2JpbmRnZW46OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6OmhlNDQ3OTQ0MzhkZDdjNzdhqgRfY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPHN0ZDo6cGFuaWNraW5nOjpwYW5pY19oYW5kbGVyOjpGb3JtYXRTdHJpbmdQYXlsb2FkPjo6aDU0ODg2MGE1NTk1YjI2NGSrBDloYXNoYnJvd246OnJhdzo6RmFsbGliaWxpdHk6OmFsbG9jX2Vycjo6aGMxYTEzNzM5MzJlYWZlYTmsBH08Y29yZTo6c2xpY2U6Oml0ZXI6OkNodW5rc0V4YWN0TXV0PFQ+IGFzIGNvcmU6Oml0ZXI6OnRyYWl0czo6aXRlcmF0b3I6Okl0ZXJhdG9yPjo6X19pdGVyYXRvcl9nZXRfdW5jaGVja2VkOjpoMjYzMjBhMjcxNjViYzcwOa0EVGNvcmU6OnB0cjo6ZHJvcF9pbl9wbGFjZTxjb3JlOjpyZXN1bHQ6OlJlc3VsdDwoKSxqc19zeXM6Ok9iamVjdD4+OjpoOGNhOGRjYmRlOTNkZjE5Ma4ENDxib29sIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aGVmZDkyYTNmZGZiMTViYjKvBFZqc19zeXM6OkZ1bmN0aW9uOjpjYWxsMTo6X193YmdfY2FsbF80NzA4ZTBjMTNiZGM4ZTk1OjpoMGExYzBmZGYwZTkyYTIzZiBleHRlcm5yZWYgc2hpbbAEXGNvcmU6OnB0cjo6ZHJvcF9pbl9wbGFjZTxjb3JlOjpvcHRpb246Ok9wdGlvbjxvcGFxdWU6OkN1c3RvbUlkZW50aWZpZXJzPj46Omg0NWYxMjJlN2UzN2VmYWYzsQRfY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPGNvcmU6Om9wdGlvbjo6T3B0aW9uPG9wYXF1ZTo6Q3VzdG9tSWRlbnRpZmllcnM+Pjo6aDQ1ZjEyMmU3ZTM3ZWZhZjNbMV2yBE9jb3JlOjppdGVyOjphZGFwdGVyczo6emlwOjpUcnVzdGVkUmFuZG9tQWNjZXNzTm9Db2VyY2U6OnNpemU6Omg3OTQ2NDQxOTUyZTAzOWNlswSHATw8c2VyZGVfY29yZTo6ZGU6OldpdGhEZWNpbWFsUG9pbnQgYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10OjpMb29rRm9yRGVjaW1hbFBvaW50IGFzIGNvcmU6OmZtdDo6V3JpdGU+Ojp3cml0ZV9jaGFyOjpoYjMxODRjODYzMjFhZWIzMbQENHN0ZDo6YWxsb2M6OnJ1c3Rfb29tOjp7e2Nsb3N1cmV9fTo6aGYwOWVhNWZlZTNiNjVmZGG1BEFoYXNoYnJvd246OnJhdzo6RmFsbGliaWxpdHk6OmNhcGFjaXR5X292ZXJmbG93OjpoNzhiNTNmMmMyNmJlOGFjZrYEOWNvcmU6Om9wczo6ZnVuY3Rpb246OkZuT25jZTo6Y2FsbF9vbmNlOjpoNTc5ZWU4Mzc1MjkyNmIxZLcEOWNvcmU6Om9wczo6ZnVuY3Rpb246OkZuT25jZTo6Y2FsbF9vbmNlOjpoNDYzNDNhOTVmNDI4OGM0ZbgEN3dhc21fYmluZGdlbjo6X193YmluZGdlbl9ib29sZWFuX2dldDo6aDgzNjZhMGRjNDJkNmZiM2O5BCZfX3J1c3RjW2QxMzE0OTFiMTcxMDdiMDddOjpfX3JkbF9hbGxvY7oEVmNvcmU6OnB0cjo6ZHJvcF9pbl9wbGFjZTxjb3JlOjpvcHRpb246Ok9wdGlvbjxhbGxvYzo6dmVjOjpWZWM8dTg+Pj46OmhhM2NlYzg3NWEzMjE5MjMyuwRCY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPGFsbG9jOjpzdHJpbmc6OlN0cmluZz46OmgyMTM5OTYwNTYzZWU3YzM4vARCY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPGFsbG9jOjpzdHJpbmc6OlN0cmluZz46OmgyNmM0MTUxNGE2ZmQyMjY0vQR6c2VyZGVfd2FzbV9iaW5kZ2VuOjpPYmplY3RFeHQ6OmdldF93aXRoX3JlZl9rZXk6Ol9fd2JnX2dldF93aXRoX3JlZl9rZXlfMWRjMzYxYmQxMDA1M2JmZTo6aDRhYjJmN2RhNGI3OWFjMzMgZXh0ZXJucmVmIHNoaW2+BGBzZXJkZV93YXNtX2JpbmRnZW46Ok9iamVjdEV4dDo6c2V0OjpfX3diZ19zZXRfM2YxZDBiOTg0ZWQyNzJlZDo6aDVmMjRkMzliY2NiNzhmOTkgZXh0ZXJucmVmIHNoaW2/BF9qc19zeXM6OlVpbnQ4QXJyYXk6OnN1YmFycmF5OjpfX3diZ19zdWJhcnJheV9hOTZlMWZlZjE3ZWQyM2NiOjpoNmRjNzQzM2Y2M2Q3MjcxNyBleHRlcm5yZWYgc2hpbcAEVmpzX3N5czo6RnVuY3Rpb246OmNhbGwwOjpfX3diZ19jYWxsXzM4OWVmZTI4NDM1YTkzODg6OmgyMzYzZDJhOWJhNmM5NjFhIGV4dGVybnJlZiBzaGltwQRYY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPGNvcmU6Om9wdGlvbjo6T3B0aW9uPGFsbG9jOjpzdHJpbmc6OlN0cmluZz4+OjpoOTkwNTMzM2NhOTFhMjJmNcIEW2NvcmU6OnB0cjo6ZHJvcF9pbl9wbGFjZTxjb3JlOjpvcHRpb246Ok9wdGlvbjxhbGxvYzo6c3RyaW5nOjpTdHJpbmc+Pjo6aDk5MDUzMzNjYTkxYTIyZjVbMV3DBEE8dm9wcmY6OmVycm9yOjpFcnJvciBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoYzg0NDllYzVhZDMyYzdiMcQELmNvcmU6OmVycm9yOjpFcnJvcjo6dHlwZV9pZDo6aDk5NGNhOTRjY2Q1ZmI4OTnFBEdqc19zeXM6Omdsb2JhbDo6Z2V0X2dsb2JhbF9vYmplY3Q6OkdMT0JBTF9USElTOjppbml0OjpoNjFjZmY1ZDFjNDA4MGJjOcYEQGpzX3N5czo6Z2xvYmFsOjpnZXRfZ2xvYmFsX29iamVjdDo6U0VMRjo6aW5pdDo6aGE4NzQ1ZjI4NTBlMjRiM2HHBEJqc19zeXM6Omdsb2JhbDo6Z2V0X2dsb2JhbF9vYmplY3Q6OkdMT0JBTDo6aW5pdDo6aDdlMmRlMDhjMjQzZDRlMTTIBEJqc19zeXM6Omdsb2JhbDo6Z2V0X2dsb2JhbF9vYmplY3Q6OldJTkRPVzo6aW5pdDo6aDkzOWVmNzNmNDA5YWFiNjDJBDE8VCBhcyBjb3JlOjphbnk6OkFueT46OnR5cGVfaWQ6Omg2NGNmODI5Y2NmYjcwZTc5ygQxPFQgYXMgY29yZTo6YW55OjpBbnk+Ojp0eXBlX2lkOjpoZmU0YWE2ZDUxM2NiYzQwYcsEL2FsbG9jOjpyYXdfdmVjOjpoYW5kbGVfZXJyb3I6OmgwYjFlYzcwYWRmNzU2MDUwzARDY29yZTo6YWxsb2M6OmxheW91dDo6TGF5b3V0Ojppc19zaXplX2FsaWduX3ZhbGlkOjpoYTg4YTBiMzhlNjI2MGEzM80EUGpzX3N5czo6QXJyYXk6OmdldDo6X193YmdfZ2V0XzliOTRkNzNlNjIyMWY3NWM6OmgwMzI0MDQ0YTEyNDAzZDEzIGV4dGVybnJlZiBzaGltzgQxYWxsb2M6OnZlYzo6VmVjPFQsQT46OnRydW5jYXRlOjpoZTc0NzZmMTRiNDc0NWE3ZM8EYDxhbGxvYzo6dmVjOjpWZWM8VCxBPiBhcyBjb3JlOjpjb252ZXJ0OjpGcm9tPGFsbG9jOjpib3hlZDo6Qm94PFtUXSxBPj4+Ojpmcm9tOjpoNTQxMjQ5M2IxOWJkNmY0ZNAEKWNvcmU6OnBhbmlja2luZzo6cGFuaWM6Omg0MjllYTE0Y2E0MmMyMGRh0QREPGNvcmU6OmZtdDo6QXJndW1lbnRzIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aGY4ZTdkZWUzNTczNjljYzPSBF9nZXRyYW5kb206OmltcDo6R2xvYmFsOjpjcnlwdG86Ol9fd2JnX2NyeXB0b184NmYyNjMxZTkxYjUxNTExOjpoNGQ1ZmU5MmY1ODY2YjBmOCBleHRlcm5yZWYgc2hpbdMEYWdldHJhbmRvbTo6aW1wOjpHbG9iYWw6OnByb2Nlc3M6Ol9fd2JnX3Byb2Nlc3NfMzk3NWZkNmM3MmY1MjBhYTo6aGYxM2IwM2I2ZTBlZWVkZTEgZXh0ZXJucmVmIHNoaW3UBGRnZXRyYW5kb206OmltcDo6UHJvY2Vzczo6dmVyc2lvbnM6Ol9fd2JnX3ZlcnNpb25zXzRlMzEyMjZmNWU4ZGM5MDk6OmhjYTczOTdmZTE0Zjc0ZTI0IGV4dGVybnJlZiBzaGlt1QRdZ2V0cmFuZG9tOjppbXA6OlZlcnNpb25zOjpub2RlOjpfX3diZ19ub2RlX2UxZjI0Zjg5YTczMzZjMmU6OmgxNzBmYmYxMzk2YzRmZjc5IGV4dGVybnJlZiBzaGlt1gRkZ2V0cmFuZG9tOjppbXA6Okdsb2JhbDo6bXNfY3J5cHRvOjpfX3diZ19tc0NyeXB0b19kNTYyYmJlODNlMGQ0YjkxOjpoYjM2ZDM1MDhmMjg0YzQxOCBleHRlcm5yZWYgc2hpbdcEY2pzX3N5czo6RnVuY3Rpb246Om5ld19ub19hcmdzOjpfX3diZ19uZXdfbm9fYXJnc18xYzdjODQyZjA4ZDAwZWJiOjpoZDVjNWM3MzYwZjAxYzYxNSBleHRlcm5yZWYgc2hpbdgEVWpzX3N5czo6VWludDhBcnJheTo6bmV3OjpfX3diZ19uZXdfZGQyYjY4MGM4YmY2YWUyOTo6aGQ0MDUwZDlmY2JhNDk3ZDQgZXh0ZXJucmVmIHNoaW3ZBFlqc19zeXM6Ok9iamVjdDo6ZW50cmllczo6X193YmdfZW50cmllc181OGM3OTM0Yzc0NWRhYWM3OjpoY2YxODYyOGVmNWNiMzlkNCBleHRlcm5yZWYgc2hpbdoEYndhc21fYmluZGdlbjo6X193YmluZGdlbl9lcnJvcl9uZXc6Ol9fd2JnX0Vycm9yXzhjNGU0M2ZlNzQ1NTlkNzM6OmhhNDRkNWEwYmNkNmJmMjg3IGV4dGVybnJlZiBzaGlt2wQ9UmVmKFNsaWNlKFU4KSkgLT4gTmFtZWRFeHRlcm5yZWYoIlVpbnQ4QXJyYXkiKSBleHRlcm5yZWYgc2hpbdwEJ1JlZihTdHJpbmcpIC0+IEV4dGVybnJlZiBleHRlcm5yZWYgc2hpbd0EZzwmc2VyZGVfd2FzbV9iaW5kZ2VuOjpzZXI6OlNlcmlhbGl6ZXIgYXMgc2VyZGVfY29yZTo6c2VyOjpTZXJpYWxpemVyPjo6c2VyaWFsaXplX3N0cjo6aDU1MTk3MWI5OGY0ZjE0NjHeBEk8dm9wcmY6OmVycm9yOjpJbnRlcm5hbEVycm9yIGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6Omg5YTFkZmVjNTFiMmU3NWI33wQkc3VidGxlOjpibGFja19ib3g6OmhjYjI1MzI5YTU3ZDI4Yzk54ARuPGdlbmVyaWNfYXJyYXk6OkdlbmVyaWNBcnJheTxULE4+IGFzIGdlbmVyaWNfYXJyYXk6OnNlcXVlbmNlOjpHZW5lcmljU2VxdWVuY2U8VD4+OjpnZW5lcmF0ZTo6aDdmYmUwOTQ3MjZjN2MyNWbhBG48Z2VuZXJpY19hcnJheTo6R2VuZXJpY0FycmF5PFQsTj4gYXMgZ2VuZXJpY19hcnJheTo6c2VxdWVuY2U6OkdlbmVyaWNTZXF1ZW5jZTxUPj46OmdlbmVyYXRlOjpoODdhNDRjOGYzMGJhZjRjNeIEJHN1YnRsZTo6YmxhY2tfYm94OjpoNjUwMWFjYzlmNWYyOWJiOOMEFF9fd2JpbmRnZW5fZXhuX3N0b3Jl5AQPX193YmluZGdlbl9mcmVl5QQyY29yZTo6Zm10OjpGb3JtYXR0ZXI6OndyaXRlX3N0cjo6aDYyNzI1MWY4NmQ0MGRhOTPmBG1qc19zeXM6OlVpbnQ4QXJyYXk6Om5ld193aXRoX2xlbmd0aDo6X193YmdfbmV3X3dpdGhfbGVuZ3RoX2EyYzM5Y2JlODhmZDhmZjE6Omg4YzFmYzJkNzVjNzlkNmVlIGV4dGVybnJlZiBzaGlt5wRJPGFsbG9jOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlOjpmbXQ6OldyaXRlPjo6d3JpdGVfc3RyOjpoYTExMDUzNmJhM2ZkOGVjYegEZTxnZW5lcmljX2FycmF5OjpHZW5lcmljQXJyYXk8VCxOPiBhcyBnZW5lcmljX2FycmF5OjpzZXF1ZW5jZTo6Q29uY2F0PFQsTT4+Ojpjb25jYXQ6OmhkNWFkN2IzNTBhYWZlNTc26QQsdm9wcmY6OmNvbW1vbjo6ZGVyaXZlX2tleTo6aDgyZWE5MzllZmMyMjNlMjDqBFE8Y3VydmUyNTUxOV9kYWxlazo6c2NhbGFyOjpTY2FsYXIgYXMgY29yZTo6Y21wOjpQYXJ0aWFsRXE+OjplcTo6aGRhZjBjNTkwNDQzODliZWbrBFw8Y3VydmUyNTUxOV9kYWxlazo6cmlzdHJldHRvOjpSaXN0cmV0dG9Qb2ludCBhcyBjb3JlOjpjbXA6OlBhcnRpYWxFcT46OmVxOjpoODA2OGZmNTYyODAyNGUwN+wET2NvcmU6Oml0ZXI6OmFkYXB0ZXJzOjp6aXA6OlRydXN0ZWRSYW5kb21BY2Nlc3NOb0NvZXJjZTo6c2l6ZTo6aDhmMjNiZjBjMTg4NDQwN2HtBE9jb3JlOjppdGVyOjphZGFwdGVyczo6emlwOjpUcnVzdGVkUmFuZG9tQWNjZXNzTm9Db2VyY2U6OnNpemU6OmgwMTRmNjlhNDcxYzgxYTI37gRGPGFsbG9jOjpib3hlZDo6Qm94PFQsQT4gYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10OjpoMGUwODMyNGExMGRiNmQ4Zu8ENmpzX3N5czo6VWludDhBcnJheTo6cmF3X2NvcHlfdG9fcHRyOjpoZGZjOTRkOWU2OTZkNGE5YfAELndhc21fYmluZGdlbjo6X193YmluZGdlbl9pbjo6aGM5Yjc4ZDgwMzYwNDU0NTPxBDp3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5fanN2YWxfbG9vc2VfZXE6Omg3ZWQyYWQxMGI2NDExNDI28gRMPGFsbG9jOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlOjpmbXQ6OldyaXRlPjo6d3JpdGVfc3RyOjpoYTExMDUzNmJhM2ZkOGVjYVsxXfMELmNvcmU6OnN0cjo6c2xpY2VfZXJyb3JfZmFpbDo6aDgzODQ0OWQ1NGY4MWJhOWH0BDA8JlQgYXMgY29yZTo6Zm10OjpEZWJ1Zz46OmZtdDo6aDk5YWViMzQzZDhmZTM5ZTH1BEk8Y29yZTo6Zm10OjpGb3JtYXR0ZXIgYXMgY29yZTo6Zm10OjpXcml0ZT46OndyaXRlX2NoYXI6Omg0Y2NiMjFkNTM1ZmZlMjE19gRkZ2V0cmFuZG9tOjppbXA6Ok1vZHVsZTo6cmVxdWlyZV9mbjo6X193YmdfcmVxdWlyZV9iNzRmNDdmYzJkMDIyZmQ2OjpoYjBiNzE5ODUxNjEyMjJmOSBleHRlcm5yZWYgc2hpbfcEdWdldHJhbmRvbTo6aW1wOjpOb2RlQ3J5cHRvOjpyYW5kb21fZmlsbF9zeW5jOjpfX3diZ19yYW5kb21GaWxsU3luY19mOGMxNTNiNzlmMjg1ODE3OjpoMGRhNzIxZmU1MWE2NjlkZCBleHRlcm5yZWYgc2hpbfgEUWpzX3N5czo6T2JqZWN0OjpuZXc6Ol9fd2JnX25ld18zNjEzMDhiMjM1NmNlY2QwOjpoMGI5ZTBjYjM4MGU3OTYzMSBleHRlcm5yZWYgc2hpbfkEL2NyZWF0ZVNlcnZlclJlZ2lzdHJhdGlvblJlc3BvbnNlIGV4dGVybnJlZiBzaGlt+gQgZmluaXNoQ2xpZW50TG9naW4gZXh0ZXJucmVmIHNoaW37BCdmaW5pc2hDbGllbnRSZWdpc3RyYXRpb24gZXh0ZXJucmVmIHNoaW38BCBmaW5pc2hTZXJ2ZXJMb2dpbiBleHRlcm5yZWYgc2hpbf0EH3N0YXJ0Q2xpZW50TG9naW4gZXh0ZXJucmVmIHNoaW3+BCZzdGFydENsaWVudFJlZ2lzdHJhdGlvbiBleHRlcm5yZWYgc2hpbf8EH3N0YXJ0U2VydmVyTG9naW4gZXh0ZXJucmVmIHNoaW2ABUU8YWxsb2M6OnN0cmluZzo6U3RyaW5nIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aDdiNGIwMGQ5MDFiMWRiNmGBBUI8YWxsb2M6OnZlYzo6VmVjPFQsQT4gYXMgY29yZTo6Zm10OjpEZWJ1Zz46OmZtdDo6aGNmZjhhYzY4YTRmN2Q2OGaCBSlfX3J1c3RjW2QxMzE0OTFiMTcxMDdiMDddOjpfX3J1c3RfcmVhbGxvY4MFcHNlcmRlX2NvcmU6OmRlOjp2YWx1ZTo6PGltcGwgc2VyZGVfY29yZTo6ZGU6OkludG9EZXNlcmlhbGl6ZXI8RT4gZm9yICZzdHI+OjppbnRvX2Rlc2VyaWFsaXplcjo6aDUzYzkxN2YxODBhZGRmNWaEBUJzZXJkZV93YXNtX2JpbmRnZW46Ok9iamVjdEV4dDo6Z2V0X3dpdGhfcmVmX2tleTo6aDM3MmE4ZTc3MDY5YTJmZjOFBWo8JnNlcmRlX3dhc21fYmluZGdlbjo6c2VyOjpTZXJpYWxpemVyIGFzIHNlcmRlX2NvcmU6OnNlcjo6U2VyaWFsaXplcj46OnNlcmlhbGl6ZV9zdHJ1Y3Q6Omg2ZjlmYWNiZjEyMmUwM2QwhgVnPHNlcmRlX3dhc21fYmluZGdlbjo6c2VyOjpPYmplY3RTZXJpYWxpemVyIGFzIHNlcmRlX2NvcmU6OnNlcjo6U2VyaWFsaXplU3RydWN0Pjo6ZW5kOjpoYWUyNjcxNThiNjA1NmVkZYcFMmNvcmU6OmVycm9yOjpFcnJvcjo6ZGVzY3JpcHRpb246OmhiOWQ4NjFlMzJlZDlhMTU1iAUvanNfc3lzOjpVaW50OEFycmF5OjpzdWJhcnJheTo6aDM1OTY4M2Q2NDc4YTBjNDaJBTJqc19zeXM6Ok51bWJlcjo6aXNfc2FmZV9pbnRlZ2VyOjpoZWZmZmY3ZDgzNTAzNjZhMooFXjx3YXNtX2JpbmRnZW46OmNvbnZlcnQ6OnRyYWl0czo6V2FzbVJldDxUPiBhcyBjb3JlOjpjb252ZXJ0OjpGcm9tPFQ+Pjo6ZnJvbTo6aGVkMmQzMjZlMzg0NGIwMGWLBYgBd2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpzbGljZXM6OjxpbXBsIHdhc21fYmluZGdlbjo6Y29udmVydDo6dHJhaXRzOjpJbnRvV2FzbUFiaSBmb3IgYWxsb2M6OmJveGVkOjpCb3g8W1RdPj46OmludG9fYWJpOjpoMjczYWM2ZmNjOWU1NjUwOYwFiAF3YXNtX2JpbmRnZW46OmNvbnZlcnQ6OnNsaWNlczo6PGltcGwgd2FzbV9iaW5kZ2VuOjpjb252ZXJ0Ojp0cmFpdHM6OkludG9XYXNtQWJpIGZvciBhbGxvYzo6Ym94ZWQ6OkJveDxbVF0+Pjo6aW50b19hYmk6OmgzYThiYzRhOTE2OGUxZWY2jQVCd2FzbV9iaW5kZ2VuOjpjb252ZXJ0Ojp0cmFpdHM6Oldhc21SZXQ8VD46OmpvaW46Omg4MThmNDMxYjJjODk3ZjVljgVIPGFsbG9jOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlOjpmbXQ6OkRpc3BsYXk+OjpmbXQ6Omg3YjRiMDBkOTAxYjFkYjZhWzFdjwUyPCZUIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aGU0OGJmOTA0NzkxZmIzNGKQBTo8JnN0ciBhcyBzZXJkZV9jb3JlOjpkZTo6RXhwZWN0ZWQ+OjpmbXQ6OmgxYWZjMTAyYTA2OWY2ZTE0kQVfPHN0ZDo6cGFuaWNraW5nOjpwYW5pY19oYW5kbGVyOjpTdGF0aWNTdHJQYXlsb2FkIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aGMzYjQ4NTI4YjViNzkzODGSBWY8c3RkOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OlN0YXRpY1N0clBheWxvYWQgYXMgY29yZTo6cGFuaWM6OlBhbmljUGF5bG9hZD46OmdldDo6aGU1M2FkNDQzMTk2NjkwZjmTBTA8JlQgYXMgY29yZTo6Zm10OjpEZWJ1Zz46OmZtdDo6aDE4ZGFlODAyYWUxYTA4MTWUBTI8JlQgYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10OjpoNzZjOTljMjdlOWIyNTUzNpUFMjwmVCBhcyBjb3JlOjpmbXQ6OkRpc3BsYXk+OjpmbXQ6Omg4ODZjNGI4YzkxN2U1MmQzlgUbX193YmluZGdlbl9vYmplY3RfY2xvbmVfcmVmlwUpX19ydXN0Y1tkMTMxNDkxYjE3MTA3YjA3XTo6X19ydXN0X2RlYWxsb2OYBTVzZXJkZV93YXNtX2JpbmRnZW46Ok9iamVjdEV4dDo6c2V0OjpoM2E0NDJmMTVhY2ExODVlY5kFYTxibG9ja19idWZmZXI6OkJsb2NrQnVmZmVyPEJsb2NrU2l6ZSxLaW5kPiBhcyBjb3JlOjpkZWZhdWx0OjpEZWZhdWx0Pjo6ZGVmYXVsdDo6aGM2ZGU4MmIzYmE2YzZhNGKaBWJqc19zeXM6Ol86OjxpbXBsIHdhc21fYmluZGdlbjo6Y2FzdDo6SnNDYXN0IGZvciBqc19zeXM6OlVpbnQ4QXJyYXk+OjppbnN0YW5jZW9mOjpoZTgzZWU5ZjE5MzQ2NDBmMZsFY2pzX3N5czo6Xzo6PGltcGwgd2FzbV9iaW5kZ2VuOjpjYXN0OjpKc0Nhc3QgZm9yIGpzX3N5czo6QXJyYXlCdWZmZXI+OjppbnN0YW5jZW9mOjpoNWQzNmM2MjE4MWQxNzQ1MJwFJWpzX3N5czo6QXJyYXk6OmdldDo6aDgyOWUzNmZkNDA3MGY3MzedBSFqc19zeXM6Omdsb2JhbDo6aGY1YjI2NTM3YmNjZGNjYmGeBTV3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5faXNfb2JqZWN0OjpoNDIzNWQxOWZiODU0MGVjYp8FNXdhc21fYmluZGdlbjo6X193YmluZGdlbl9pc19zdHJpbmc6OmhmZWNlNTQ0MzQ5NjBkNzI0oAU3d2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX2lzX2Z1bmN0aW9uOjpoZjc5YTBmZTgxYWY4YzRjNqEFOHdhc21fYmluZGdlbjo6X193YmluZGdlbl9pc191bmRlZmluZWQ6OmhlOGI4YTdmNDFmYmM5ZDE1ogUuY29yZTo6Zm10OjpXcml0ZTo6d3JpdGVfZm10OjpoZjZhYmIxYjgyZWM2MmY5OaMFLmNvcmU6OmZtdDo6V3JpdGU6OndyaXRlX2ZtdDo6aDAzMjUxNzFlYzA1YTBmZTakBUw8ZHluIHNlcmRlX2NvcmU6OmRlOjpFeHBlY3RlZCBhcyBjb3JlOjpmbXQ6OkRpc3BsYXk+OjpmbXQ6OmgyYTBmNGZmMGU1MGQ1MzM5pQUlX19ydXN0Y1tkMTMxNDkxYjE3MTA3YjA3XTo6cnVzdF9wYW5pY6YFLmNvcmU6OmZtdDo6V3JpdGU6OndyaXRlX2ZtdDo6aDc3YWVmMDc2OTMyMWE2ZmOnBS5jb3JlOjpmbXQ6OldyaXRlOjp3cml0ZV9mbXQ6Omg4YTY1OWY0NTJmMmM3YjUxqAU0YWxsb2M6OnJhd192ZWM6OmNhcGFjaXR5X292ZXJmbG93OjpoNTBjNWUwODc3ZmZlNmIyMakFMDwmVCBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoNmM3MDhhNjYzOWZjODM0OKoFSGNvcmU6OnBhbmlja2luZzo6cGFuaWNfY29uc3Q6OnBhbmljX2NvbnN0X2Rpdl9ieV96ZXJvOjpoY2RmYWU3YTI1MTlhOWNjYasFLmNvcmU6OmZtdDo6V3JpdGU6OndyaXRlX2ZtdDo6aGIwYWViMzE3NzFjZTUzMTisBS5jb3JlOjpvcHRpb246OnVud3JhcF9mYWlsZWQ6OmgwMmMzMjgzMGFhMjJjNmM4rQVHY29yZTo6c2xpY2U6OmNvcHlfZnJvbV9zbGljZV9pbXBsOjpsZW5fbWlzbWF0Y2hfZmFpbDo6aDYwZTVkMjM1MjQ5ODIzNTSuBXZnZXRyYW5kb206OmltcDo6V2ViQ3J5cHRvOjpnZXRfcmFuZG9tX3ZhbHVlczo6X193YmdfZ2V0UmFuZG9tVmFsdWVzX2IzZjE1ZmNiZmFiYjBmOGI6Omg5Yzc4YTk3ODI3OGJkNzMxIGV4dGVybnJlZiBzaGltrwVsanNfc3lzOjpVaW50OEFycmF5Ojpjb3B5X3RvX3NsaWNlOjpfX3diZ19wcm90b3R5cGVzZXRjYWxsX2JkY2RjYzU4NDJlNGQ3N2Q6Omg4ZjVkMjZiMWU4OTJjYzQ5IGV4dGVybnJlZiBzaGltsAVjd2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX2luOjpfX3diZ19fX3diaW5kZ2VuX2luXzQ3ZmE2ODYzYmU2ZjJmMjU6OmhkMGIwNzMwZDQ5MDgyMzkxIGV4dGVybnJlZiBzaGltsQV7d2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX2pzdmFsX2xvb3NlX2VxOjpfX3diZ19fX3diaW5kZ2VuX2pzdmFsX2xvb3NlX2VxXzlkZDc3ZDhjZDY2NzE4MTE6OmhkMjAxY2RjOWQwNzkxYWUzIGV4dGVybnJlZiBzaGltsgWeATxvcGFxdWU6Ol86OjxpbXBsIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZSBmb3Igb3BhcXVlOjpDdXN0b21JZGVudGlmaWVycz46OmRlc2VyaWFsaXplOjpfX1Zpc2l0b3IgYXMgc2VyZGVfY29yZTo6ZGU6OlZpc2l0b3I+OjpleHBlY3Rpbmc6OmhkZmY0OWNlMjBkM2UwMmIzswWjATxvcGFxdWU6Ol86OjxpbXBsIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZSBmb3Igb3BhcXVlOjpTdGFydENsaWVudExvZ2luUGFyYW1zPjo6ZGVzZXJpYWxpemU6Ol9fVmlzaXRvciBhcyBzZXJkZV9jb3JlOjpkZTo6VmlzaXRvcj46OmV4cGVjdGluZzo6aDVmMWI3NTE0M2I4YTU5YmS0BaMBPG9wYXF1ZTo6Xzo6PGltcGwgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplIGZvciBvcGFxdWU6OlN0YXJ0U2VydmVyTG9naW5QYXJhbXM+OjpkZXNlcmlhbGl6ZTo6X19WaXNpdG9yIGFzIHNlcmRlX2NvcmU6OmRlOjpWaXNpdG9yPjo6ZXhwZWN0aW5nOjpoY2U2MWU0NjVlZjRkYjhlYrUFpAE8b3BhcXVlOjpfOjo8aW1wbCBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemUgZm9yIG9wYXF1ZTo6RmluaXNoQ2xpZW50TG9naW5QYXJhbXM+OjpkZXNlcmlhbGl6ZTo6X19WaXNpdG9yIGFzIHNlcmRlX2NvcmU6OmRlOjpWaXNpdG9yPjo6ZXhwZWN0aW5nOjpoMzc2MWI1YWM4YWYwMTljZbYFpAE8b3BhcXVlOjpfOjo8aW1wbCBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemUgZm9yIG9wYXF1ZTo6RmluaXNoU2VydmVyTG9naW5QYXJhbXM+OjpkZXNlcmlhbGl6ZTo6X19WaXNpdG9yIGFzIHNlcmRlX2NvcmU6OmRlOjpWaXNpdG9yPjo6ZXhwZWN0aW5nOjpoYjExMDNjZmE2NWQzOTNhMLcFqgE8b3BhcXVlOjpfOjo8aW1wbCBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemUgZm9yIG9wYXF1ZTo6U3RhcnRDbGllbnRSZWdpc3RyYXRpb25QYXJhbXM+OjpkZXNlcmlhbGl6ZTo6X19WaXNpdG9yIGFzIHNlcmRlX2NvcmU6OmRlOjpWaXNpdG9yPjo6ZXhwZWN0aW5nOjpoNzMyZGJhZTcxNzcyM2Y4ZbgFqwE8b3BhcXVlOjpfOjo8aW1wbCBzZXJkZV9jb3JlOjpkZTo6RGVzZXJpYWxpemUgZm9yIG9wYXF1ZTo6RmluaXNoQ2xpZW50UmVnaXN0cmF0aW9uUGFyYW1zPjo6ZGVzZXJpYWxpemU6Ol9fVmlzaXRvciBhcyBzZXJkZV9jb3JlOjpkZTo6VmlzaXRvcj46OmV4cGVjdGluZzo6aDMxOTkxNTg3ZjVjNzRkZja5BbMBPG9wYXF1ZTo6Xzo6PGltcGwgc2VyZGVfY29yZTo6ZGU6OkRlc2VyaWFsaXplIGZvciBvcGFxdWU6OkNyZWF0ZVNlcnZlclJlZ2lzdHJhdGlvblJlc3BvbnNlUGFyYW1zPjo6ZGVzZXJpYWxpemU6Ol9fVmlzaXRvciBhcyBzZXJkZV9jb3JlOjpkZTo6VmlzaXRvcj46OmV4cGVjdGluZzo6aGEyM2U5MzQyZTc0Zjc5ODW6BdwBPDxvcGFxdWU6Ol86OjxpbXBsIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZSBmb3Igb3BhcXVlOjpLZXlTdHJldGNoaW5nRnVuY3Rpb25Db25maWc+OjpkZXNlcmlhbGl6ZTo6X19WaXNpdG9yIGFzIHNlcmRlX2NvcmU6OmRlOjpWaXNpdG9yPjo6dmlzaXRfZW51bTo6X19WaXNpdG9yIGFzIHNlcmRlX2NvcmU6OmRlOjpWaXNpdG9yPjo6ZXhwZWN0aW5nOjpoNDFiMWY3NWUxZTkwY2M5NLsFNzxUIGFzIHNlcmRlX2NvcmU6OmRlOjpFeHBlY3RlZD46OmZtdDo6aDBkMjIxYTgyMTMwYTk5N2O8BTc8VCBhcyBzZXJkZV9jb3JlOjpkZTo6RXhwZWN0ZWQ+OjpmbXQ6Omg5MjM5OGE4ZmFkMmFjYWJhvQVMPGhrZGY6OmVycm9yczo6SW52YWxpZFBya0xlbmd0aCBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoNWI4MWZhYjAyOTcwZDRlZL4FQmNvcmU6OnB0cjo6ZHJvcF9pbl9wbGFjZTxhbGxvYzo6c3RyaW5nOjpTdHJpbmc+OjpoZDJiMWE0MDQxMzdkNmVhOb8FPjxjb3JlOjpmbXQ6OkVycm9yIGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6OmgwNDBlMmQyZjBiYWExYjFlwAVAY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPGFsbG9jOjp2ZWM6OlZlYzx1OD4+OjpoYzU2Yjc0YjI0YTdkNDI0ZMEFSWNvcmU6OnB0cjo6ZHJvcF9pbl9wbGFjZTxhbGxvYzo6c3RyaW5nOjpGcm9tVXRmOEVycm9yPjo6aDI1ZGIxZmUyMjUxOGE2ZjHCBSdfX3J1c3RjW2QxMzE0OTFiMTcxMDdiMDddOjpfX3J1c3RfYWxsb2PDBS5fX3J1c3RjW2QxMzE0OTFiMTcxMDdiMDddOjpfX3J1c3RfYWxsb2NfemVyb2VkxAUsc2hhMjo6c2hhNTEyOjpjb21wcmVzczUxMjo6aGY2MTQ3MjJhNGViZGUwYmbFBVpjdXJ2ZTI1NTE5X2RhbGVrOjpiYWNrZW5kOjpzZXJpYWw6OnUzMjo6c2NhbGFyOjpTY2FsYXIyOTo6YXNfbW9udGdvbWVyeTo6aDVmMzQxZmM5ODZjMWE4MDbGBUc8ZGlnZXN0OjpJbnZhbGlkQnVmZmVyU2l6ZSBhcyBjb3JlOjpmbXQ6OkRlYnVnPjo6Zm10OjpoNWMxMGQ5MmMyYTQyOTY0NscFM2pzX3N5czo6VWludDhBcnJheTo6dmlld19tdXRfcmF3OjpoOTVhZWQ3MWMxMGY0MzFjYcgFKmpzX3N5czo6VWludDhBcnJheTo6bmV3OjpoNGZhZTEzMGQzYmE2MzYzZMkFKGpzX3N5czo6QXJyYXk6Omxlbmd0aDo6aDUxMjg4MTQ3Y2EyY2Q4YzPKBSpqc19zeXM6Ok9iamVjdDo6ZW50cmllczo6aDcwMDIyMTVmYTlhYWYyYzXLBSp3YXNtX2JpbmRnZW46OnRocm93X3N0cjo6aDViYjBiYTBhYjM1Nzg5YmbMBU88YWxsb2M6OnJhd192ZWM6OlJhd1ZlYzxULEE+IGFzIGNvcmU6Om9wczo6ZHJvcDo6RHJvcD46OmRyb3A6OmgxNWNiMDQ2ZTg5ODBkZDg4zQVCY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPGFsbG9jOjpzdHJpbmc6OlN0cmluZz46Omg1ODViNGFjMDExOTdhOTlkzgWbATxzZXJkZV9jb3JlOjpkZTo6aW1wbHM6OjxpbXBsIHNlcmRlX2NvcmU6OmRlOjpEZXNlcmlhbGl6ZSBmb3IgdTMyPjo6ZGVzZXJpYWxpemU6OlByaW1pdGl2ZVZpc2l0b3IgYXMgc2VyZGVfY29yZTo6ZGU6OlZpc2l0b3I+OjpleHBlY3Rpbmc6OmhmMGI4NDRhMWIyNjI4NTE0zwUyPCZUIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aDgzM2U0MmI5ZTViYjIxM2XQBV08c2VyZGVfY29yZTo6ZGU6OmltcGxzOjpVbml0VmlzaXRvciBhcyBzZXJkZV9jb3JlOjpkZTo6VmlzaXRvcj46OmV4cGVjdGluZzo6aDgzODI5NjA2NzNjMzRhOTDRBV88c2VyZGVfY29yZTo6ZGU6OmltcGxzOjpTdHJpbmdWaXNpdG9yIGFzIHNlcmRlX2NvcmU6OmRlOjpWaXNpdG9yPjo6ZXhwZWN0aW5nOjpoYjE0YmRlYmUyMGMwNWU0N9IFNV9fcnVzdGNbZDEzMTQ5MWIxNzEwN2IwN106Ol9fcnVzdF9hbGxvY19lcnJvcl9oYW5kbGVy0wVpPHN0ZDo6cGFuaWNraW5nOjpwYW5pY19oYW5kbGVyOjpTdGF0aWNTdHJQYXlsb2FkIGFzIGNvcmU6OnBhbmljOjpQYW5pY1BheWxvYWQ+Ojphc19zdHI6OmhjMDI4ZjhlZmEyMDVhY2Iy1AUwPCZUIGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6OmgzZjA4OTQwZDlkYTEyOWU01QUzYWxsb2M6OmFsbG9jOjpoYW5kbGVfYWxsb2NfZXJyb3I6OmgyOTgxY2Q3NTg4Y2YxNzYy1gVBPGNvcmU6OmZtdDo6RXJyb3IgYXMgY29yZTo6Zm10OjpEZWJ1Zz46OmZtdDo6aDA0MGUyZDJmMGJhYTFiMWVbMV3XBTA8JlQgYXMgY29yZTo6Zm10OjpEZWJ1Zz46OmZtdDo6aDFhNWY0YWZjYzMwNTMzMzPYBTM8c3RyIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aGNiYTE1NzA2N2E0YzE0M2bZBUo8Y29yZTo6Y2VsbDo6Qm9ycm93TXV0RXJyb3IgYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10OjpoOGNiMzc0ZWJhYzYzMzY1YtoFiQE8c2VyZGVfd2FzbV9iaW5kZ2VuOjplcnJvcjo6RXJyb3IgYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10Ojp0b19zdHJpbmc6Ol9fd2JnX1N0cmluZ184ZjBlYjM5YTRhNGMyZjY2OjpoYjViZDY1M2ExMTIxNGU5YyBleHRlcm5yZWYgc2hpbdsFc3dhc21fYmluZGdlbjo6X193YmluZGdlbl9udW1iZXJfZ2V0OjpfX3diZ19fX3diaW5kZ2VuX251bWJlcl9nZXRfOGZmNDI1NTUxNmNjYWQzZTo6aDRhODgyNjY1OTZmMDRjZTcgZXh0ZXJucmVmIHNoaW3cBXN3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5fc3RyaW5nX2dldDo6X193YmdfX193YmluZGdlbl9zdHJpbmdfZ2V0XzcyZmI2OTYyMDJjNTY3Mjk6Omg5YTZjY2JjZWFlNzViNjQ5IGV4dGVybnJlZiBzaGlt3QV3d2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX2RlYnVnX3N0cmluZzo6X193YmdfX193YmluZGdlbl9kZWJ1Z19zdHJpbmdfMGJjODQ4MmM2ZTM1MDhhZTo6aGY3YTIzOWJhZGFjZWJlMTQgZXh0ZXJucmVmIHNoaW3eBTc8VCBhcyBzZXJkZV9jb3JlOjpkZTo6RXhwZWN0ZWQ+OjpmbXQ6OmgzYTA4NDBjODE0MjhlMjkz3wU3PFQgYXMgc2VyZGVfY29yZTo6ZGU6OkV4cGVjdGVkPjo6Zm10OjpoM2M0YjgwMWUzMjQ0ZjZkZOAFVjxzZXJkZV93YXNtX2JpbmRnZW46OmVycm9yOjpFcnJvciBhcyBzZXJkZV9jb3JlOjpkZTo6RXJyb3I+OjpjdXN0b206Omg4N2ZiYmYwMGRhN2JjMmZl4QWGATxvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6Z3JvdXA6OnJpc3RyZXR0bzI1NTo6UmlzdHJldHRvMjU1IGFzIG9wYXF1ZV9rZTo6a2V5X2V4Y2hhbmdlOjpncm91cDo6R3JvdXA+OjpzZXJpYWxpemVfcGs6OmhjODFkMDQ4MWU3NTQ0NmQ34gVgPHZvcHJmOjpncm91cDo6cmlzdHJldHRvOjpSaXN0cmV0dG8yNTUgYXMgdm9wcmY6Omdyb3VwOjpHcm91cD46OmludmVydF9zY2FsYXI6OmgzYjZhMWVlMjIzZGUyNTFm4wVhPHZvcHJmOjpncm91cDo6cmlzdHJldHRvOjpSaXN0cmV0dG8yNTUgYXMgdm9wcmY6Omdyb3VwOjpHcm91cD46OmlzX3plcm9fc2NhbGFyOjpoOTEwNDE0OTFmNzBiODM2ZOQFYTx2b3ByZjo6Z3JvdXA6OnJpc3RyZXR0bzo6UmlzdHJldHRvMjU1IGFzIHZvcHJmOjpncm91cDo6R3JvdXA+OjpzZXJpYWxpemVfZWxlbTo6aDlmYzY3NTE5MmY5MDM3OGblBS1jb3JlOjplcnJvcjo6RXJyb3I6OnNvdXJjZTo6aGFhZDE3YWVmN2E2ZDIzNzLmBSxjb3JlOjplcnJvcjo6RXJyb3I6OmNhdXNlOjpoMTAyNmIyNTY3NDRhZTkzYucFTTxqc19zeXM6OkpzU3RyaW5nIGFzIGNvcmU6OnN0cjo6dHJhaXRzOjpGcm9tU3RyPjo6ZnJvbV9zdHI6OmgzY2VkMTQ0NjEwY2I3NmNh6AU2anNfc3lzOjpVaW50OEFycmF5OjpuZXdfd2l0aF9sZW5ndGg6OmhmMjFhMzM5YTk1YjQ1Mzgx6QUvd2FzbV9iaW5kZ2VuOjpfX3J0Ojp3YmdfY2FzdDo6aDMyNTdjMTMzMjE2MzA2NTfqBTF3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5fdGhyb3c6Omg1NWEzOTA0OGUwOWM5ZTNj6wU1d2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX2FzX251bWJlcjo6aGYwYmU1NzIwMmE0YWNiZDHsBTV3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5fZXJyb3JfbmV3OjpoNzg0MGU5MTViMDExYTdiN+0FNzxUIGFzIHNlcmRlX2NvcmU6OmRlOjpFeHBlY3RlZD46OmZtdDo6aGMxZTgwYzE4YmY2OGVhMznuBUJzdGQ6OnN5czo6YmFja3RyYWNlOjpfX3J1c3RfZW5kX3Nob3J0X2JhY2t0cmFjZTo6aGU4OTNiYjkyYjE2ZDA4MjnvBUJzdGQ6OnN5czo6YmFja3RyYWNlOjpfX3J1c3RfZW5kX3Nob3J0X2JhY2t0cmFjZTo6aDUyZmEzYWZiYWZiNzRkOTXwBTRjb3JlOjpwYW5pYzo6UGFuaWNQYXlsb2FkOjphc19zdHI6OmgxYWY4MDRhMzdjNmE2NmJh8QU1Y29yZTo6Y2VsbDo6cGFuaWNfYWxyZWFkeV9ib3Jyb3dlZDo6aDE1ZGI5MmEzYjA3NmMzY2LyBVtqc19zeXM6OlVpbnQ4QXJyYXk6Omxlbmd0aDo6X193YmdfbGVuZ3RoXzMyZWQ5YTI3OWFjZDA1NGM6Omg1MDQ2MWMyYzRiNDllYWQxIGV4dGVybnJlZiBzaGlt8wWfAWpzX3N5czo6Xzo6PGltcGwgd2FzbV9iaW5kZ2VuOjpjYXN0OjpKc0Nhc3QgZm9yIGpzX3N5czo6VWludDhBcnJheT46Omluc3RhbmNlb2Y6Ol9fd2JnX2luc3RhbmNlb2ZfVWludDhBcnJheV85YjkwNzU5MzVjNzQ3MDdjOjpoMmU3YjQyYjY2YTkyNzllYSBleHRlcm5yZWYgc2hpbfQFoQFqc19zeXM6Ol86OjxpbXBsIHdhc21fYmluZGdlbjo6Y2FzdDo6SnNDYXN0IGZvciBqc19zeXM6OkFycmF5QnVmZmVyPjo6aW5zdGFuY2VvZjo6X193YmdfaW5zdGFuY2VvZl9BcnJheUJ1ZmZlcl9jMzY3MTk5ZTJmYTJhYTA0OjpoMjNiZGQyYzM0NTYxZjdmZiBleHRlcm5yZWYgc2hpbfUFVmpzX3N5czo6QXJyYXk6Omxlbmd0aDo6X193YmdfbGVuZ3RoXzM1YTdiYWNlNDBmMzZlYWM6OmgwOTY3ZWIwYmZkYTkyZmUwIGV4dGVybnJlZiBzaGlt9gVnanNfc3lzOjpOdW1iZXI6OmlzX3NhZmVfaW50ZWdlcjo6X193YmdfaXNTYWZlSW50ZWdlcl9iZmJjNzMzMmE5NzY4ZDJhOjpoNTU4N2E5ZWVkZTY3ZTk1OCBleHRlcm5yZWYgc2hpbfcFY3dhc21fYmluZGdlbjo6X193YmluZGdlbl9hc19udW1iZXI6Ol9fd2JnX051bWJlcl8wNDYyNGRlN2QwZTgzMzJkOjpoOTU2ODA2MjczNzYyNzhlYSBleHRlcm5yZWYgc2hpbfgFcXdhc21fYmluZGdlbjo6X193YmluZGdlbl9pc19vYmplY3Q6Ol9fd2JnX19fd2JpbmRnZW5faXNfb2JqZWN0XzVhZThlNTg4MGYyYzFmYmQ6OmgyODZlYzJkYWU5NTlmM2M0IGV4dGVybnJlZiBzaGlt+QVxd2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX2lzX3N0cmluZzo6X193YmdfX193YmluZGdlbl9pc19zdHJpbmdfY2Q0NDQ1MTZlZGM1YjE4MDo6aDU2ZWU4NzhmOTQwYjE0YmIgZXh0ZXJucmVmIHNoaW36BXV3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5fYm9vbGVhbl9nZXQ6Ol9fd2JnX19fd2JpbmRnZW5fYm9vbGVhbl9nZXRfYmJiYjFjMThhYTJmNWUyNTo6aDcwZGIxMjE1MjQ3MmEyOGQgZXh0ZXJucmVmIHNoaW37BXV3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5faXNfZnVuY3Rpb246Ol9fd2JnX19fd2JpbmRnZW5faXNfZnVuY3Rpb25fMDA5NWE3M2I4YjE1NmY3Njo6aGNmNzQwYmE2ZjBhNmEwMjIgZXh0ZXJucmVmIHNoaW38BXd3YXNtX2JpbmRnZW46Ol9fd2JpbmRnZW5faXNfdW5kZWZpbmVkOjpfX3diZ19fX3diaW5kZ2VuX2lzX3VuZGVmaW5lZF85ZTRkOTI1MzRjNDJkNzc4OjpoN2MyODI1M2E2Y2RjYjRmYSBleHRlcm5yZWYgc2hpbf0FRV9fcnVzdGNbZDEzMTQ5MWIxNzEwN2IwN106Ol9fcnVzdF9hbGxvY19lcnJvcl9oYW5kbGVyX3Nob3VsZF9wYW5pY192Mv4FbzxvcGFxdWVfa2U6OmtleV9leGNoYW5nZTo6Z3JvdXA6OnJpc3RyZXR0bzI1NTo6Tm9uWmVyb1NjYWxhciBhcyBjb3JlOjpvcHM6OmRyb3A6OkRyb3A+Ojpkcm9wOjpoMzFhYzgzNGYwYjdiMjNmNf8FRjxqc19zeXM6Ok9iamVjdCBhcyBjb3JlOjpkZWZhdWx0OjpEZWZhdWx0Pjo6ZGVmYXVsdDo6aGQ4ZjYzODBmZWIzOGZjNWGABi1fX3J1c3RjW2QxMzE0OTFiMTcxMDdiMDddOjpfX3J1c3Rfc3RhcnRfcGFuaWOBBj5fX3J1c3RjW2QxMzE0OTFiMTcxMDdiMDddOjpfX3J1c3Rfbm9fYWxsb2Nfc2hpbV9pc191bnN0YWJsZV92MoIGPHdhc21fYmluZGdlbjo6Y2FzdDo6SnNDYXN0Ojp1bmNoZWNrZWRfcmVmOjpoMTg2NDJmY2Q4OGFkOWU1Y4MGPXdhc21fYmluZGdlbjo6Y2FzdDo6SnNDYXN0Ojp1bmNoZWNrZWRfaW50bzo6aDBkODc1NTkxZDg4NzBjNTGEBkJ3YXNtX2JpbmRnZW46OmNvbnZlcnQ6OnRyYWl0czo6V2FzbVJldDxUPjo6am9pbjo6aDNhZDdlOTNhM2I4NmZmMTKFBidfX3J1c3RjW2QxMzE0OTFiMTcxMDdiMDddOjpfX3J1c3RfYWJvcnSGBi5jb3JlOjplcnJvcjo6RXJyb3I6OnByb3ZpZGU6OmhlMGMzZjY5MGMwZjI2YTVjhwZIPGFsbG9jOjp2ZWM6OlZlYzxULEE+IGFzIGNvcmU6Om9wczo6ZHJvcDo6RHJvcD46OmRyb3A6OmgzOTZkNjYzNGUzYzdjNTU5BRgBARVfX3diaW5kZ2VuX2V4dGVybnJlZnMHEgEAD19fc3RhY2tfcG9pbnRlcgkRAgAHLnJvZGF0YQEFLmRhdGEAcAlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkDBXJ1c3RjHTEuOTMuMCAoMjU0YjU5NjA3IDIwMjYtMDEtMTkpBndhbHJ1cwYwLjI0LjUMd2FzbS1iaW5kZ2VuBzAuMi4xMDgAlAEPdGFyZ2V0X2ZlYXR1cmVzCCsLYnVsay1tZW1vcnkrD2J1bGstbWVtb3J5LW9wdCsWY2FsbC1pbmRpcmVjdC1vdmVybG9uZysKbXVsdGl2YWx1ZSsPbXV0YWJsZS1nbG9iYWxzKxNub250cmFwcGluZy1mcHRvaW50Kw9yZWZlcmVuY2UtdHlwZXMrCHNpZ24tZXh0')}\n\n/* @ts-self-types=\"./opaque.d.ts\" */\n\n/**\n * @param {CreateServerRegistrationResponseParams} params\n * @returns {CreateServerRegistrationResponseResult}\n */\nfunction createServerRegistrationResponse(params) {\n const ret = wasm.createServerRegistrationResponse(params);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @returns {string}\n */\nfunction createServerSetup() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.createServerSetup();\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n}\n\n/**\n * @param {FinishClientLoginParams} params\n * @returns {FinishClientLoginResult | undefined}\n */\nfunction finishClientLogin(params) {\n const ret = wasm.finishClientLogin(params);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {FinishClientRegistrationParams} params\n * @returns {FinishClientRegistrationResult}\n */\nfunction finishClientRegistration(params) {\n const ret = wasm.finishClientRegistration(params);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {FinishServerLoginParams} params\n * @returns {FinishServerLoginResult}\n */\nfunction finishServerLogin(params) {\n const ret = wasm.finishServerLogin(params);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {string} data\n * @returns {string}\n */\nfunction getServerPublicKey(data) {\n let deferred3_0;\n let deferred3_1;\n try {\n const ptr0 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.getServerPublicKey(ptr0, len0);\n var ptr2 = ret[0];\n var len2 = ret[1];\n if (ret[3]) {\n ptr2 = 0; len2 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * @param {StartClientLoginParams} params\n * @returns {StartClientLoginResult}\n */\nfunction startClientLogin(params) {\n const ret = wasm.startClientLogin(params);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {StartClientRegistrationParams} params\n * @returns {StartClientRegistrationResult}\n */\nfunction startClientRegistration(params) {\n const ret = wasm.startClientRegistration(params);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {StartServerLoginParams} params\n * @returns {StartServerLoginResult}\n */\nfunction startServerLogin(params) {\n const ret = wasm.startServerLogin(params);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_8c4e43fe74559d73: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg_Number_04624de7d0e8332d: function(arg0) {\n const ret = Number(arg0);\n return ret;\n },\n __wbg_String_8f0eb39a4a4c2f66: function(arg0, arg1) {\n const ret = String(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_boolean_get_bbbb1c18aa2f5e25: function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_0bc8482c6e3508ae: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_47fa6863be6f2f25: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_function_0095a73b8b156f76: function(arg0) {\n const ret = typeof(arg0) === 'function';\n return ret;\n },\n __wbg___wbindgen_is_object_5ae8e5880f2c1fbd: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_string_cd444516edc5b180: function(arg0) {\n const ret = typeof(arg0) === 'string';\n return ret;\n },\n __wbg___wbindgen_is_undefined_9e4d92534c42d778: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_9dd77d8cd6671811: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_8ff4255516ccad3e: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_72fb696202c56729: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_be289d5034ed271b: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_call_389efe28435a9388: function() { return handleError(function (arg0, arg1) {\n const ret = arg0.call(arg1);\n return ret;\n }, arguments); },\n __wbg_call_4708e0c13bdc8e95: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.call(arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_crypto_86f2631e91b51511: function(arg0) {\n const ret = arg0.crypto;\n return ret;\n },\n __wbg_entries_58c7934c745daac7: function(arg0) {\n const ret = Object.entries(arg0);\n return ret;\n },\n __wbg_getRandomValues_b3f15fcbfabb0f8b: function() { return handleError(function (arg0, arg1) {\n arg0.getRandomValues(arg1);\n }, arguments); },\n __wbg_get_9b94d73e6221f75c: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_1dc361bd10053bfe: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_c367199e2fa2aa04: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_9b9075935c74707c: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_isSafeInteger_bfbc7332a9768d2a: function(arg0) {\n const ret = Number.isSafeInteger(arg0);\n return ret;\n },\n __wbg_length_32ed9a279acd054c: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_35a7bace40f36eac: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_msCrypto_d562bbe83e0d4b91: function(arg0) {\n const ret = arg0.msCrypto;\n return ret;\n },\n __wbg_new_361308b2356cecd0: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_dd2b680c8bf6ae29: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_no_args_1c7c842f08d00ebb: function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg_new_with_length_a2c39cbe88fd8ff1: function(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return ret;\n },\n __wbg_node_e1f24f89a7336c2e: function(arg0) {\n const ret = arg0.node;\n return ret;\n },\n __wbg_process_3975fd6c72f520aa: function(arg0) {\n const ret = arg0.process;\n return ret;\n },\n __wbg_prototypesetcall_bdcdcc5842e4d77d: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_randomFillSync_f8c153b79f285817: function() { return handleError(function (arg0, arg1) {\n arg0.randomFillSync(arg1);\n }, arguments); },\n __wbg_require_b74f47fc2d022fd6: function() { return handleError(function () {\n const ret = module.require;\n return ret;\n }, arguments); },\n __wbg_set_3f1d0b984ed272ed: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_static_accessor_GLOBAL_12837167ad935116: function() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n },\n __wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f: function() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n },\n __wbg_static_accessor_SELF_a621d3dfbb60d0ce: function() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n },\n __wbg_static_accessor_WINDOW_f8727f0cf888e0bd: function() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n },\n __wbg_subarray_a96e1fef17ed23cb: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_versions_4e31226f5e8dc909: function(arg0) {\n const ret = arg0.versions;\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref(\"Uint8Array\")`.\n const ret = getArrayU8FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./opaque_bg.js\": import0,\n };\n}\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path);\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead');\n }\n }\n\n\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance);\n}\n\nvar client = /*#__PURE__*/Object.freeze({\n __proto__: null,\n finishLogin: finishClientLogin,\n finishRegistration: finishClientRegistration,\n startLogin: startClientLogin,\n startRegistration: startClientRegistration\n});\n\nvar server = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createRegistrationResponse: createServerRegistrationResponse,\n createSetup: createServerSetup,\n finishLogin: finishServerLogin,\n getPublicKey: getServerPublicKey,\n startLogin: startServerLogin\n});\n\nconst ready = __wbg_init({ module_or_path: wasmData() }).then(() => {\n});\n\nexport { client, ready, server };\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport type {Constructor} from './base.js';\n\n/**\n * Allow for custom element classes with private constructors\n */\ntype CustomElementClass = Omit<typeof HTMLElement, 'new'>;\n\nexport type CustomElementDecorator = {\n // legacy\n (cls: CustomElementClass): void;\n\n // standard\n (\n target: CustomElementClass,\n context: ClassDecoratorContext<Constructor<HTMLElement>>\n ): void;\n};\n\n/**\n * Class decorator factory that defines the decorated class as a custom element.\n *\n * ```js\n * @customElement('my-element')\n * class MyElement extends LitElement {\n * render() {\n * return html``;\n * }\n * }\n * ```\n * @category Decorator\n * @param tagName The tag name of the custom element to define.\n */\nexport const customElement =\n (tagName: string): CustomElementDecorator =>\n (\n classOrTarget: CustomElementClass | Constructor<HTMLElement>,\n context?: ClassDecoratorContext<Constructor<HTMLElement>>\n ) => {\n if (context !== undefined) {\n context.addInitializer(() => {\n customElements.define(\n tagName,\n classOrTarget as CustomElementConstructor\n );\n });\n } else {\n customElements.define(tagName, classOrTarget as CustomElementConstructor);\n }\n };\n", "/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nconst NODE_MODE = false;\n\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\n/**\n * Whether the current browser supports `adoptedStyleSheets`.\n */\nexport const supportsAdoptingStyleSheets: boolean =\n global.ShadowRoot &&\n (global.ShadyCSS === undefined || global.ShadyCSS.nativeShadow) &&\n 'adoptedStyleSheets' in Document.prototype &&\n 'replace' in CSSStyleSheet.prototype;\n\n/**\n * A CSSResult or native CSSStyleSheet.\n *\n * In browsers that support constructible CSS style sheets, CSSStyleSheet\n * object can be used for styling along side CSSResult from the `css`\n * template tag.\n */\nexport type CSSResultOrNative = CSSResult | CSSStyleSheet;\n\nexport type CSSResultArray = Array<CSSResultOrNative | CSSResultArray>;\n\n/**\n * A single CSSResult, CSSStyleSheet, or an array or nested arrays of those.\n */\nexport type CSSResultGroup = CSSResultOrNative | CSSResultArray;\n\nconst constructionToken = Symbol();\n\nconst cssTagCache = new WeakMap<TemplateStringsArray, CSSStyleSheet>();\n\n/**\n * A container for a string of CSS text, that may be used to create a CSSStyleSheet.\n *\n * CSSResult is the return value of `css`-tagged template literals and\n * `unsafeCSS()`. In order to ensure that CSSResults are only created via the\n * `css` tag and `unsafeCSS()`, CSSResult cannot be constructed directly.\n */\nexport class CSSResult {\n // This property needs to remain unminified.\n ['_$cssResult$'] = true;\n readonly cssText: string;\n private _styleSheet?: CSSStyleSheet;\n private _strings: TemplateStringsArray | undefined;\n\n private constructor(\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ) {\n if (safeToken !== constructionToken) {\n throw new Error(\n 'CSSResult is not constructable. Use `unsafeCSS` or `css` instead.'\n );\n }\n this.cssText = cssText;\n this._strings = strings;\n }\n\n // This is a getter so that it's lazy. In practice, this means stylesheets\n // are not created until the first element instance is made.\n get styleSheet(): CSSStyleSheet | undefined {\n // If `supportsAdoptingStyleSheets` is true then we assume CSSStyleSheet is\n // constructable.\n let styleSheet = this._styleSheet;\n const strings = this._strings;\n if (supportsAdoptingStyleSheets && styleSheet === undefined) {\n const cacheable = strings !== undefined && strings.length === 1;\n if (cacheable) {\n styleSheet = cssTagCache.get(strings);\n }\n if (styleSheet === undefined) {\n (this._styleSheet = styleSheet = new CSSStyleSheet()).replaceSync(\n this.cssText\n );\n if (cacheable) {\n cssTagCache.set(strings, styleSheet);\n }\n }\n }\n return styleSheet;\n }\n\n toString(): string {\n return this.cssText;\n }\n}\n\ntype ConstructableCSSResult = CSSResult & {\n new (\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ): CSSResult;\n};\n\nconst textFromCSSResult = (value: CSSResultGroup | number) => {\n // This property needs to remain unminified.\n if ((value as CSSResult)['_$cssResult$'] === true) {\n return (value as CSSResult).cssText;\n } else if (typeof value === 'number') {\n return value;\n } else {\n throw new Error(\n `Value passed to 'css' function must be a 'css' function result: ` +\n `${value}. Use 'unsafeCSS' to pass non-literal values, but take care ` +\n `to ensure page security.`\n );\n }\n};\n\n/**\n * Wrap a value for interpolation in a {@linkcode css} tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value: unknown) =>\n new (CSSResult as ConstructableCSSResult)(\n typeof value === 'string' ? value : String(value),\n undefined,\n constructionToken\n );\n\n/**\n * A template literal tag which can be used with LitElement's\n * {@linkcode LitElement.styles} property to set element styles.\n *\n * For security reasons, only literal string values and number may be used in\n * embedded expressions. To incorporate non-literal values {@linkcode unsafeCSS}\n * may be used inside an expression.\n */\nexport const css = (\n strings: TemplateStringsArray,\n ...values: (CSSResultGroup | number)[]\n): CSSResult => {\n const cssText =\n strings.length === 1\n ? strings[0]\n : values.reduce(\n (acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1],\n strings[0]\n );\n return new (CSSResult as ConstructableCSSResult)(\n cssText,\n strings,\n constructionToken\n );\n};\n\n/**\n * Applies the given styles to a `shadowRoot`. When Shadow DOM is\n * available but `adoptedStyleSheets` is not, styles are appended to the\n * `shadowRoot` to [mimic the native feature](https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/adoptedStyleSheets).\n * Note, when shimming is used, any styles that are subsequently placed into\n * the shadowRoot should be placed *before* any shimmed adopted styles. This\n * will match spec behavior that gives adopted sheets precedence over styles in\n * shadowRoot.\n */\nexport const adoptStyles = (\n renderRoot: ShadowRoot,\n styles: Array<CSSResultOrNative>\n) => {\n if (supportsAdoptingStyleSheets) {\n (renderRoot as ShadowRoot).adoptedStyleSheets = styles.map((s) =>\n s instanceof CSSStyleSheet ? s : s.styleSheet!\n );\n } else {\n for (const s of styles) {\n const style = document.createElement('style');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const nonce = (global as any)['litNonce'];\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce);\n }\n style.textContent = (s as CSSResult).cssText;\n renderRoot.appendChild(style);\n }\n }\n};\n\nconst cssResultFromStyleSheet = (sheet: CSSStyleSheet) => {\n let cssText = '';\n for (const rule of sheet.cssRules) {\n cssText += rule.cssText;\n }\n return unsafeCSS(cssText);\n};\n\nexport const getCompatibleStyle =\n supportsAdoptingStyleSheets ||\n (NODE_MODE && global.CSSStyleSheet === undefined)\n ? (s: CSSResultOrNative) => s\n : (s: CSSResultOrNative) =>\n s instanceof CSSStyleSheet ? cssResultFromStyleSheet(s) : s;\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Use this module if you want to create your own base class extending\n * {@link ReactiveElement}.\n * @packageDocumentation\n */\n\nimport {\n getCompatibleStyle,\n adoptStyles,\n CSSResultGroup,\n CSSResultOrNative,\n} from './css-tag.js';\nimport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\n// In the Node build, this import will be injected by Rollup:\n// import {HTMLElement, customElements} from '@lit-labs/ssr-dom-shim';\n\nexport * from './css-tag.js';\nexport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\n/**\n * Removes the `readonly` modifier from properties in the union K.\n *\n * This is a safer way to cast a value to a type with a mutable version of a\n * readonly field, than casting to an interface with the field re-declared\n * because it preserves the type of all the fields and warns on typos.\n */\ntype Mutable<T, K extends keyof T> = Omit<T, K> & {\n -readonly [P in keyof Pick<T, K>]: P extends K ? T[P] : never;\n};\n\n// TODO (justinfagnani): Add `hasOwn` here when we ship ES2022\nconst {\n is,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\n\nconst NODE_MODE = false;\n\n// Lets a minifier replace globalThis references with a minified name\nconst global = globalThis;\n\nif (NODE_MODE) {\n global.customElements ??= customElements;\n}\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nconst trustedTypes = (global as unknown as {trustedTypes?: {emptyScript: ''}})\n .trustedTypes;\n\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n ? (trustedTypes.emptyScript as unknown as '')\n : '';\n\nconst polyfillSupport = DEV_MODE\n ? global.reactiveElementPolyfillSupportDevMode\n : global.reactiveElementPolyfillSupport;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n global.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (\n !global.litIssuedWarnings!.has(warning) &&\n !global.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n global.litIssuedWarnings!.add(warning);\n }\n };\n\n queueMicrotask(() => {\n issueWarning(\n 'dev-mode',\n `Lit is in dev mode. Not recommended for production!`\n );\n\n // Issue polyfill support warning.\n if (global.ShadyDOM?.inUse && polyfillSupport === undefined) {\n issueWarning(\n 'polyfill-support-missing',\n `Shadow DOM is being polyfilled via \\`ShadyDOM\\` but ` +\n `the \\`polyfill-support\\` module has not been loaded.`\n );\n }\n });\n}\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace ReactiveUnstable {\n /**\n * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n * we will emit 'lit-debug' events to window, with live details about the update and render\n * lifecycle. These can be useful for writing debug tooling and visualizations.\n *\n * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n * making certain operations that are normally very cheap (like a no-op render) much slower,\n * because we must copy data and dispatch events.\n */\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace DebugLog {\n export type Entry = Update;\n export interface Update {\n kind: 'update';\n }\n }\n}\n\ninterface DebugLoggingWindow {\n // Even in dev mode, we generally don't want to emit these events, as that's\n // another level of cost, so only emit them when DEV_MODE is true _and_ when\n // window.emitLitDebugEvents is true.\n emitLitDebugLogEvents?: boolean;\n}\n\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event: ReactiveUnstable.DebugLog.Entry) => {\n const shouldEmit = (global as unknown as DebugLoggingWindow)\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(\n new CustomEvent<ReactiveUnstable.DebugLog.Entry>('lit-debug', {\n detail: event,\n })\n );\n }\n : undefined;\n\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty = <P extends PropertyKey>(\n prop: P,\n _obj: unknown\n): P => prop;\n\n/**\n * Converts property values to and from attribute values.\n */\nexport interface ComplexAttributeConverter<Type = unknown, TypeHint = unknown> {\n /**\n * Called to convert an attribute value to a property\n * value.\n */\n fromAttribute?(value: string | null, type?: TypeHint): Type;\n\n /**\n * Called to convert a property value to an attribute\n * value.\n *\n * It returns unknown instead of string, to be compatible with\n * https://github.com/WICG/trusted-types (and similar efforts).\n */\n toAttribute?(value: Type, type?: TypeHint): unknown;\n}\n\ntype AttributeConverter<Type = unknown, TypeHint = unknown> =\n | ComplexAttributeConverter<Type>\n | ((value: string | null, type?: TypeHint) => Type);\n\n/**\n * Defines options for a property accessor.\n */\nexport interface PropertyDeclaration<Type = unknown, TypeHint = unknown> {\n /**\n * When set to `true`, indicates the property is internal private state. The\n * property should not be set by users. When using TypeScript, this property\n * should be marked as `private` or `protected`, and it is also a common\n * practice to use a leading `_` in the name. The property is not added to\n * `observedAttributes`.\n */\n readonly state?: boolean;\n\n /**\n * Indicates how and whether the property becomes an observed attribute.\n * If the value is `false`, the property is not added to `observedAttributes`.\n * If true or absent, the lowercased property name is observed (e.g. `fooBar`\n * becomes `foobar`). If a string, the string value is observed (e.g\n * `attribute: 'foo-bar'`).\n */\n readonly attribute?: boolean | string;\n\n /**\n * Indicates the type of the property. This is used only as a hint for the\n * `converter` to determine how to convert the attribute\n * to/from a property.\n */\n readonly type?: TypeHint;\n\n /**\n * Indicates how to convert the attribute to/from a property. If this value\n * is a function, it is used to convert the attribute value a the property\n * value. If it's an object, it can have keys for `fromAttribute` and\n * `toAttribute`. If no `toAttribute` function is provided and\n * `reflect` is set to `true`, the property value is set directly to the\n * attribute. A default `converter` is used if none is provided; it supports\n * `Boolean`, `String`, `Number`, `Object`, and `Array`. Note,\n * when a property changes and the converter is used to update the attribute,\n * the property is never updated again as a result of the attribute changing,\n * and vice versa.\n */\n readonly converter?: AttributeConverter<Type, TypeHint>;\n\n /**\n * Indicates if the property should reflect to an attribute.\n * If `true`, when the property is set, the attribute is set using the\n * attribute name determined according to the rules for the `attribute`\n * property option and the value of the property converted using the rules\n * from the `converter` property option.\n */\n readonly reflect?: boolean;\n\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n\n /**\n * Indicates whether an accessor will be created for this property. By\n * default, an accessor will be generated for this property that requests an\n * update when set. If this flag is `true`, no accessor will be created, and\n * it will be the user's responsibility to call\n * `this.requestUpdate(propertyName, oldValue)` to request an update when\n * the property changes.\n */\n readonly noAccessor?: boolean;\n\n /**\n * Whether this property is wrapping accessors. This is set by `@property`\n * to control the initial value change and reflection logic.\n *\n * @internal\n */\n wrapped?: boolean;\n\n /**\n * When `true`, uses the initial value of the property as the default value,\n * which changes how attributes are handled:\n * - The initial value does *not* reflect, even if the `reflect` option is `true`.\n * Subsequent changes to the property will reflect, even if they are equal to the\n * default value.\n * - When the attribute is removed, the property is set to the default value\n * - The initial value will not trigger an old value in the `changedProperties` map\n * argument to update lifecycle methods.\n *\n * When set, properties must be initialized, either with a field initializer, or an\n * assignment in the constructor. Not initializing the property may lead to\n * improper handling of subsequent property assignments.\n *\n * While this behavior is opt-in, most properties that reflect to attributes should\n * use `useDefault: true` so that their initial values do not reflect.\n */\n useDefault?: boolean;\n}\n\n/**\n * Map of properties to PropertyDeclaration options. For each property an\n * accessor is made, and the property is processed according to the\n * PropertyDeclaration options.\n */\nexport interface PropertyDeclarations {\n readonly [key: string]: PropertyDeclaration;\n}\n\ntype PropertyDeclarationMap = Map<PropertyKey, PropertyDeclaration>;\n\ntype AttributeMap = Map<string, PropertyKey>;\n\n/**\n * A Map of property keys to values.\n *\n * Takes an optional type parameter T, which when specified as a non-any,\n * non-unknown type, will make the Map more strongly-typed, associating the map\n * keys with their corresponding value type on T.\n *\n * Use `PropertyValues<this>` when overriding ReactiveElement.update() and\n * other lifecycle methods in order to get stronger type-checking on keys\n * and values.\n */\n// This type is conditional so that if the parameter T is not specified, or\n// is `any`, the type will include `Map<PropertyKey, unknown>`. Since T is not\n// given in the uses of PropertyValues in this file, all uses here fallback to\n// meaning `Map<PropertyKey, unknown>`, but if a developer uses\n// `PropertyValues<this>` (or any other value for T) they will get a\n// strongly-typed Map type.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type PropertyValues<T = any> = T extends object\n ? PropertyValueMap<T>\n : Map<PropertyKey, unknown>;\n\n/**\n * Do not use, instead prefer {@linkcode PropertyValues}.\n */\n// This type must be exported such that JavaScript generated by the Google\n// Closure Compiler can import a type reference.\nexport interface PropertyValueMap<T> extends Map<PropertyKey, unknown> {\n get<K extends keyof T>(k: K): T[K] | undefined;\n set<K extends keyof T>(key: K, value: T[K]): this;\n has<K extends keyof T>(k: K): boolean;\n delete<K extends keyof T>(k: K): boolean;\n}\n\nexport const defaultConverter: ComplexAttributeConverter = {\n toAttribute(value: unknown, type?: unknown): unknown {\n switch (type) {\n case Boolean:\n value = value ? emptyStringForBooleanAttribute : null;\n break;\n case Object:\n case Array:\n // if the value is `null` or `undefined` pass this through\n // to allow removing/no change behavior.\n value = value == null ? value : JSON.stringify(value);\n break;\n }\n return value;\n },\n\n fromAttribute(value: string | null, type?: unknown) {\n let fromValue: unknown = value;\n switch (type) {\n case Boolean:\n fromValue = value !== null;\n break;\n case Number:\n fromValue = value === null ? null : Number(value);\n break;\n case Object:\n case Array:\n // Do *not* generate exception when invalid JSON is set as elements\n // don't normally complain on being mis-configured.\n // TODO(sorvell): Do generate exception in *dev mode*.\n try {\n // Assert to adhere to Bazel's \"must type assert JSON parse\" rule.\n fromValue = JSON.parse(value!) as unknown;\n } catch (e) {\n fromValue = null;\n }\n break;\n }\n return fromValue;\n },\n};\n\nexport interface HasChanged {\n (value: unknown, old: unknown): boolean;\n}\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual: HasChanged = (value: unknown, old: unknown): boolean =>\n !is(value, old);\n\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n useDefault: false,\n hasChanged: notEqual,\n};\n\n/**\n * A string representing one of the supported dev mode warning categories.\n */\nexport type WarningKind =\n | 'change-in-update'\n | 'migration'\n | 'async-perform-update';\n\nexport type Initializer = (element: ReactiveElement) => void;\n\n// Temporary, until google3 is on TypeScript 5.2\ndeclare global {\n interface SymbolConstructor {\n readonly metadata: unique symbol;\n }\n}\n\n// Ensure metadata is enabled. TypeScript does not polyfill\n// Symbol.metadata, so we must ensure that it exists.\n(Symbol as {metadata: symbol}).metadata ??= Symbol('metadata');\n\ndeclare global {\n // This is public global API, do not change!\n // eslint-disable-next-line no-var\n var litPropertyMetadata: WeakMap<\n object,\n Map<PropertyKey, PropertyDeclaration>\n >;\n}\n\n// Map from a class's metadata object to property options\n// Note that we must use nullish-coalescing assignment so that we only use one\n// map even if we load multiple version of this module.\nglobal.litPropertyMetadata ??= new WeakMap<\n object,\n Map<PropertyKey, PropertyDeclaration>\n>();\n\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclasses to render updates as desired.\n * @noInheritDoc\n */\nexport abstract class ReactiveElement\n // In the Node build, this `extends` clause will be substituted with\n // `(globalThis.HTMLElement ?? HTMLElement)`.\n //\n // This way, we will first prefer any global `HTMLElement` polyfill that the\n // user has assigned, and then fall back to the `HTMLElement` shim which has\n // been imported (see note at the top of this file about how this import is\n // generated by Rollup). Note that the `HTMLElement` variable has been\n // shadowed by this import, so it no longer refers to the global.\n extends HTMLElement\n implements ReactiveControllerHost\n{\n // Note: these are patched in only in DEV_MODE.\n /**\n * Read or set all the enabled warning categories for this class.\n *\n * This property is only used in development builds.\n *\n * @nocollapse\n * @category dev-mode\n */\n static enabledWarnings?: WarningKind[];\n\n /**\n * Enable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Enable for all ReactiveElement subclasses\n * ReactiveElement.enableWarning?.('migration');\n *\n * // Enable for only MyElement and subclasses\n * MyElement.enableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static enableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Disable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Disable for all ReactiveElement subclasses\n * ReactiveElement.disableWarning?.('migration');\n *\n * // Disable for only MyElement and subclasses\n * MyElement.disableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static disableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Adds an initializer function to the class that is called during instance\n * construction.\n *\n * This is useful for code that runs against a `ReactiveElement`\n * subclass, such as a decorator, that needs to do work for each\n * instance, such as setting up a `ReactiveController`.\n *\n * ```ts\n * const myDecorator = (target: typeof ReactiveElement, key: string) => {\n * target.addInitializer((instance: ReactiveElement) => {\n * // This is run during construction of the element\n * new MyController(instance);\n * });\n * }\n * ```\n *\n * Decorating a field will then cause each instance to run an initializer\n * that adds a controller:\n *\n * ```ts\n * class MyElement extends LitElement {\n * @myDecorator foo;\n * }\n * ```\n *\n * Initializers are stored per-constructor. Adding an initializer to a\n * subclass does not add it to a superclass. Since initializers are run in\n * constructors, initializers will run in order of the class hierarchy,\n * starting with superclasses and progressing to the instance's class.\n *\n * @nocollapse\n */\n static addInitializer(initializer: Initializer) {\n this.__prepare();\n (this._initializers ??= []).push(initializer);\n }\n\n static _initializers?: Initializer[];\n\n /*\n * Due to closure compiler ES6 compilation bugs, @nocollapse is required on\n * all static methods and properties with initializers. Reference:\n * - https://github.com/google/closure-compiler/issues/1776\n */\n\n /**\n * Maps attribute names to properties; for example `foobar` attribute to\n * `fooBar` property. Created lazily on user subclasses when finalizing the\n * class.\n * @nocollapse\n */\n private static __attributeToPropertyMap: AttributeMap;\n\n /**\n * Marks class as having been finalized, which includes creating properties\n * from `static properties`, but does *not* include all properties created\n * from decorators.\n * @nocollapse\n */\n protected static finalized: true | undefined;\n\n /**\n * Memoized list of all element properties, including any superclass\n * properties. Created lazily on user subclasses when finalizing the class.\n *\n * @nocollapse\n * @category properties\n */\n static elementProperties: PropertyDeclarationMap;\n\n /**\n * User-supplied object that maps property names to `PropertyDeclaration`\n * objects containing options for configuring reactive properties. When\n * a reactive property is set the element will update and render.\n *\n * By default properties are public fields, and as such, they should be\n * considered as primarily settable by element users, either via attribute or\n * the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the `state: true` option. Properties\n * marked as `state` do not reflect from the corresponding attribute\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating\n * public properties should typically not be done for non-primitive (object or\n * array) properties. In other cases when an element needs to manage state, a\n * private property set with the `state: true` option should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n * @nocollapse\n * @category properties\n */\n static properties: PropertyDeclarations;\n\n /**\n * Memoized list of all element styles.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category styles\n */\n static elementStyles: Array<CSSResultOrNative> = [];\n\n /**\n * Array of styles to apply to the element. The styles should be defined\n * using the {@linkcode css} tag function, via constructible stylesheets, or\n * imported from native CSS module scripts.\n *\n * Note on Content Security Policy:\n *\n * Element styles are implemented with `<style>` tags when the browser doesn't\n * support adopted StyleSheets. To use such `<style>` tags with the style-src\n * CSP directive, the style-src value must either include 'unsafe-inline' or\n * `nonce-<base64-value>` with `<base64-value>` replaced be a server-generated\n * nonce.\n *\n * To provide a nonce to use on generated `<style>` elements, set\n * `window.litNonce` to a server-generated nonce in your page's HTML, before\n * loading application code:\n *\n * ```html\n * <script>\n * // Generated and unique per request:\n * window.litNonce = 'a1b2c3d4';\n * </script>\n * ```\n * @nocollapse\n * @category styles\n */\n static styles?: CSSResultGroup;\n\n /**\n * Returns a list of attributes corresponding to the registered properties.\n * @nocollapse\n * @category attributes\n */\n static get observedAttributes() {\n // Ensure we've created all properties\n this.finalize();\n // this.__attributeToPropertyMap is only undefined after finalize() in\n // ReactiveElement itself. ReactiveElement.observedAttributes is only\n // accessed with ReactiveElement as the receiver when a subclass or mixin\n // calls super.observedAttributes\n return (\n this.__attributeToPropertyMap && [...this.__attributeToPropertyMap.keys()]\n );\n }\n\n private __instanceProperties?: PropertyValues = undefined;\n\n /**\n * Creates a property accessor on the element prototype if one does not exist\n * and stores a {@linkcode PropertyDeclaration} for the property with the\n * given options. The property setter calls the property's `hasChanged`\n * property option or uses a strict identity check to determine whether or not\n * to request an update.\n *\n * This method may be overridden to customize properties; however,\n * when doing so, it's important to call `super.createProperty` to ensure\n * the property is setup correctly. This method calls\n * `getPropertyDescriptor` internally to get a descriptor to install.\n * To customize what properties do when they are get or set, override\n * `getPropertyDescriptor`. To customize the options for a property,\n * implement `createProperty` like this:\n *\n * ```ts\n * static createProperty(name, options) {\n * options = Object.assign(options, {myOption: true});\n * super.createProperty(name, options);\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n static createProperty(\n name: PropertyKey,\n options: PropertyDeclaration = defaultPropertyDeclaration\n ) {\n // If this is a state property, force the attribute to false.\n if (options.state) {\n (options as Mutable<PropertyDeclaration, 'attribute'>).attribute = false;\n }\n this.__prepare();\n // Whether this property is wrapping accessors.\n // Helps control the initial value change and reflection logic.\n if (this.prototype.hasOwnProperty(name)) {\n options = Object.create(options);\n options.wrapped = true;\n }\n this.elementProperties.set(name, options);\n if (!options.noAccessor) {\n const key = DEV_MODE\n ? // Use Symbol.for in dev mode to make it easier to maintain state\n // when doing HMR.\n Symbol.for(`${String(name)} (@property() cache)`)\n : Symbol();\n const descriptor = this.getPropertyDescriptor(name, key, options);\n if (descriptor !== undefined) {\n defineProperty(this.prototype, name, descriptor);\n }\n }\n }\n\n /**\n * Returns a property descriptor to be defined on the given named property.\n * If no descriptor is returned, the property will not become an accessor.\n * For example,\n *\n * ```ts\n * class MyElement extends LitElement {\n * static getPropertyDescriptor(name, key, options) {\n * const defaultDescriptor =\n * super.getPropertyDescriptor(name, key, options);\n * const setter = defaultDescriptor.set;\n * return {\n * get: defaultDescriptor.get,\n * set(value) {\n * setter.call(this, value);\n * // custom action.\n * },\n * configurable: true,\n * enumerable: true\n * }\n * }\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n protected static getPropertyDescriptor(\n name: PropertyKey,\n key: string | symbol,\n options: PropertyDeclaration\n ): PropertyDescriptor | undefined {\n const {get, set} = getOwnPropertyDescriptor(this.prototype, name) ?? {\n get(this: ReactiveElement) {\n return this[key as keyof typeof this];\n },\n set(this: ReactiveElement, v: unknown) {\n (this as unknown as Record<string | symbol, unknown>)[key] = v;\n },\n };\n if (DEV_MODE && get == null) {\n if ('value' in (getOwnPropertyDescriptor(this.prototype, name) ?? {})) {\n throw new Error(\n `Field ${JSON.stringify(String(name))} on ` +\n `${this.name} was declared as a reactive property ` +\n `but it's actually declared as a value on the prototype. ` +\n `Usually this is due to using @property or @state on a method.`\n );\n }\n issueWarning(\n 'reactive-property-without-getter',\n `Field ${JSON.stringify(String(name))} on ` +\n `${this.name} was declared as a reactive property ` +\n `but it does not have a getter. This will be an error in a ` +\n `future version of Lit.`\n );\n }\n return {\n get,\n set(this: ReactiveElement, value: unknown) {\n const oldValue = get?.call(this);\n set?.call(this, value);\n this.requestUpdate(name, oldValue, options);\n },\n configurable: true,\n enumerable: true,\n };\n }\n\n /**\n * Returns the property options associated with the given property.\n * These options are defined with a `PropertyDeclaration` via the `properties`\n * object or the `@property` decorator and are registered in\n * `createProperty(...)`.\n *\n * Note, this method should be considered \"final\" and not overridden. To\n * customize the options for a given property, override\n * {@linkcode createProperty}.\n *\n * @nocollapse\n * @final\n * @category properties\n */\n static getPropertyOptions(name: PropertyKey) {\n return this.elementProperties.get(name) ?? defaultPropertyDeclaration;\n }\n\n // Temporary, until google3 is on TypeScript 5.2\n declare static [Symbol.metadata]: object & Record<PropertyKey, unknown>;\n\n /**\n * Initializes static own properties of the class used in bookkeeping\n * for element properties, initializers, etc.\n *\n * Can be called multiple times by code that needs to ensure these\n * properties exist before using them.\n *\n * This method ensures the superclass is finalized so that inherited\n * property metadata can be copied down.\n * @nocollapse\n */\n private static __prepare() {\n if (\n this.hasOwnProperty(JSCompiler_renameProperty('elementProperties', this))\n ) {\n // Already prepared\n return;\n }\n // Finalize any superclasses\n const superCtor = getPrototypeOf(this) as typeof ReactiveElement;\n superCtor.finalize();\n\n // Create own set of initializers for this class if any exist on the\n // superclass and copy them down. Note, for a small perf boost, avoid\n // creating initializers unless needed.\n if (superCtor._initializers !== undefined) {\n this._initializers = [...superCtor._initializers];\n }\n // Initialize elementProperties from the superclass\n this.elementProperties = new Map(superCtor.elementProperties);\n }\n\n /**\n * Finishes setting up the class so that it's ready to be registered\n * as a custom element and instantiated.\n *\n * This method is called by the ReactiveElement.observedAttributes getter.\n * If you override the observedAttributes getter, you must either call\n * super.observedAttributes to trigger finalization, or call finalize()\n * yourself.\n *\n * @nocollapse\n */\n protected static finalize() {\n if (this.hasOwnProperty(JSCompiler_renameProperty('finalized', this))) {\n return;\n }\n this.finalized = true;\n this.__prepare();\n\n // Create properties from the static properties block:\n if (this.hasOwnProperty(JSCompiler_renameProperty('properties', this))) {\n const props = this.properties;\n const propKeys = [\n ...getOwnPropertyNames(props),\n ...getOwnPropertySymbols(props),\n ] as Array<keyof typeof props>;\n for (const p of propKeys) {\n this.createProperty(p, props[p]);\n }\n }\n\n // Create properties from standard decorator metadata:\n const metadata = this[Symbol.metadata];\n if (metadata !== null) {\n const properties = litPropertyMetadata.get(metadata);\n if (properties !== undefined) {\n for (const [p, options] of properties) {\n this.elementProperties.set(p, options);\n }\n }\n }\n\n // Create the attribute-to-property map\n this.__attributeToPropertyMap = new Map();\n for (const [p, options] of this.elementProperties) {\n const attr = this.__attributeNameForProperty(p, options);\n if (attr !== undefined) {\n this.__attributeToPropertyMap.set(attr, p);\n }\n }\n\n this.elementStyles = this.finalizeStyles(this.styles);\n\n if (DEV_MODE) {\n if (this.hasOwnProperty('createProperty')) {\n issueWarning(\n 'no-override-create-property',\n 'Overriding ReactiveElement.createProperty() is deprecated. ' +\n 'The override will not be called with standard decorators'\n );\n }\n if (this.hasOwnProperty('getPropertyDescriptor')) {\n issueWarning(\n 'no-override-get-property-descriptor',\n 'Overriding ReactiveElement.getPropertyDescriptor() is deprecated. ' +\n 'The override will not be called with standard decorators'\n );\n }\n }\n }\n\n /**\n * Options used when calling `attachShadow`. Set this property to customize\n * the options for the shadowRoot; for example, to create a closed\n * shadowRoot: `{mode: 'closed'}`.\n *\n * Note, these options are used in `createRenderRoot`. If this method\n * is customized, options should be respected if possible.\n * @nocollapse\n * @category rendering\n */\n static shadowRootOptions: ShadowRootInit = {mode: 'open'};\n\n /**\n * Takes the styles the user supplied via the `static styles` property and\n * returns the array of styles to apply to the element.\n * Override this method to integrate into a style management system.\n *\n * Styles are deduplicated preserving the _last_ instance in the list. This\n * is a performance optimization to avoid duplicated styles that can occur\n * especially when composing via subclassing. The last item is kept to try\n * to preserve the cascade order with the assumption that it's most important\n * that last added styles override previous styles.\n *\n * @nocollapse\n * @category styles\n */\n protected static finalizeStyles(\n styles?: CSSResultGroup\n ): Array<CSSResultOrNative> {\n const elementStyles = [];\n if (Array.isArray(styles)) {\n // Dedupe the flattened array in reverse order to preserve the last items.\n // Casting to Array<unknown> works around TS error that\n // appears to come from trying to flatten a type CSSResultArray.\n const set = new Set((styles as Array<unknown>).flat(Infinity).reverse());\n // Then preserve original order by adding the set items in reverse order.\n for (const s of set) {\n elementStyles.unshift(getCompatibleStyle(s as CSSResultOrNative));\n }\n } else if (styles !== undefined) {\n elementStyles.push(getCompatibleStyle(styles));\n }\n return elementStyles;\n }\n\n /**\n * Node or ShadowRoot into which element DOM should be rendered. Defaults\n * to an open shadowRoot.\n * @category rendering\n */\n readonly renderRoot!: HTMLElement | DocumentFragment;\n\n /**\n * Returns the property name for the given attribute `name`.\n * @nocollapse\n */\n private static __attributeNameForProperty(\n name: PropertyKey,\n options: PropertyDeclaration\n ) {\n const attribute = options.attribute;\n return attribute === false\n ? undefined\n : typeof attribute === 'string'\n ? attribute\n : typeof name === 'string'\n ? name.toLowerCase()\n : undefined;\n }\n\n // Initialize to an unresolved Promise so we can make sure the element has\n // connected before first update.\n private __updatePromise!: Promise<boolean>;\n\n /**\n * True if there is a pending update as a result of calling `requestUpdate()`.\n * Should only be read.\n * @category updates\n */\n isUpdatePending = false;\n\n /**\n * Is set to `true` after the first update. The element code cannot assume\n * that `renderRoot` exists before the element `hasUpdated`.\n * @category updates\n */\n hasUpdated = false;\n\n /**\n * Map with keys for any properties that have changed since the last\n * update cycle with previous values.\n *\n * @internal\n */\n _$changedProperties!: PropertyValues;\n\n /**\n * Records property default values when the\n * `useDefault` option is used.\n */\n private __defaultValues?: Map<PropertyKey, unknown>;\n\n /**\n * Properties that should be reflected when updated.\n */\n private __reflectingProperties?: Set<PropertyKey>;\n\n /**\n * Name of currently reflecting property\n */\n private __reflectingProperty: PropertyKey | null = null;\n\n /**\n * Set of controllers.\n */\n private __controllers?: Set<ReactiveController>;\n\n constructor() {\n super();\n this.__initialize();\n }\n\n /**\n * Internal only override point for customizing work done when elements\n * are constructed.\n */\n private __initialize() {\n this.__updatePromise = new Promise<boolean>(\n (res) => (this.enableUpdating = res)\n );\n this._$changedProperties = new Map();\n // This enqueues a microtask that must run before the first update, so it\n // must be called before requestUpdate()\n this.__saveInstanceProperties();\n // ensures first update will be caught by an early access of\n // `updateComplete`\n this.requestUpdate();\n (this.constructor as typeof ReactiveElement)._initializers?.forEach((i) =>\n i(this)\n );\n }\n\n /**\n * Registers a `ReactiveController` to participate in the element's reactive\n * update cycle. The element automatically calls into any registered\n * controllers during its lifecycle callbacks.\n *\n * If the element is connected when `addController()` is called, the\n * controller's `hostConnected()` callback will be immediately called.\n * @category controllers\n */\n addController(controller: ReactiveController) {\n (this.__controllers ??= new Set()).add(controller);\n // If a controller is added after the element has been connected,\n // call hostConnected. Note, re-using existence of `renderRoot` here\n // (which is set in connectedCallback) to avoid the need to track a\n // first connected state.\n if (this.renderRoot !== undefined && this.isConnected) {\n controller.hostConnected?.();\n }\n }\n\n /**\n * Removes a `ReactiveController` from the element.\n * @category controllers\n */\n removeController(controller: ReactiveController) {\n this.__controllers?.delete(controller);\n }\n\n /**\n * Fixes any properties set on the instance before upgrade time.\n * Otherwise these would shadow the accessor and break these properties.\n * The properties are stored in a Map which is played back after the\n * constructor runs.\n */\n private __saveInstanceProperties() {\n const instanceProperties = new Map<PropertyKey, unknown>();\n const elementProperties = (this.constructor as typeof ReactiveElement)\n .elementProperties;\n for (const p of elementProperties.keys() as IterableIterator<keyof this>) {\n if (this.hasOwnProperty(p)) {\n instanceProperties.set(p, this[p]);\n delete this[p];\n }\n }\n if (instanceProperties.size > 0) {\n this.__instanceProperties = instanceProperties;\n }\n }\n\n /**\n * Returns the node into which the element should render and by default\n * creates and returns an open shadowRoot. Implement to customize where the\n * element's DOM is rendered. For example, to render into the element's\n * childNodes, return `this`.\n *\n * @return Returns a node into which to render.\n * @category rendering\n */\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n const renderRoot =\n this.shadowRoot ??\n this.attachShadow(\n (this.constructor as typeof ReactiveElement).shadowRootOptions\n );\n adoptStyles(\n renderRoot,\n (this.constructor as typeof ReactiveElement).elementStyles\n );\n return renderRoot;\n }\n\n /**\n * On first connection, creates the element's renderRoot, sets up\n * element styling, and enables updating.\n * @category lifecycle\n */\n connectedCallback() {\n // Create renderRoot before controllers `hostConnected`\n (this as Mutable<typeof this, 'renderRoot'>).renderRoot ??=\n this.createRenderRoot();\n this.enableUpdating(true);\n this.__controllers?.forEach((c) => c.hostConnected?.());\n }\n\n /**\n * Note, this method should be considered final and not overridden. It is\n * overridden on the element instance with a function that triggers the first\n * update.\n * @category updates\n */\n protected enableUpdating(_requestedUpdate: boolean) {}\n\n /**\n * Allows for `super.disconnectedCallback()` in extensions while\n * reserving the possibility of making non-breaking feature additions\n * when disconnecting at some point in the future.\n * @category lifecycle\n */\n disconnectedCallback() {\n this.__controllers?.forEach((c) => c.hostDisconnected?.());\n }\n\n /**\n * Synchronizes property values when attributes change.\n *\n * Specifically, when an attribute is set, the corresponding property is set.\n * You should rarely need to implement this callback. If this method is\n * overridden, `super.attributeChangedCallback(name, _old, value)` must be\n * called.\n *\n * See [responding to attribute changes](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements#responding_to_attribute_changes)\n * on MDN for more information about the `attributeChangedCallback`.\n * @category attributes\n */\n attributeChangedCallback(\n name: string,\n _old: string | null,\n value: string | null\n ) {\n this._$attributeToProperty(name, value);\n }\n\n private __propertyToAttribute(name: PropertyKey, value: unknown) {\n const elemProperties: PropertyDeclarationMap = (\n this.constructor as typeof ReactiveElement\n ).elementProperties;\n const options = elemProperties.get(name)!;\n const attr = (\n this.constructor as typeof ReactiveElement\n ).__attributeNameForProperty(name, options);\n if (attr !== undefined && options.reflect === true) {\n const converter =\n (options.converter as ComplexAttributeConverter)?.toAttribute !==\n undefined\n ? (options.converter as ComplexAttributeConverter)\n : defaultConverter;\n const attrValue = converter.toAttribute!(value, options.type);\n if (\n DEV_MODE &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'migration'\n ) &&\n attrValue === undefined\n ) {\n issueWarning(\n 'undefined-attribute-value',\n `The attribute value for the ${name as string} property is ` +\n `undefined on element ${this.localName}. The attribute will be ` +\n `removed, but in the previous version of \\`ReactiveElement\\`, ` +\n `the attribute would not have changed.`\n );\n }\n // Track if the property is being reflected to avoid\n // setting the property again via `attributeChangedCallback`. Note:\n // 1. this takes advantage of the fact that the callback is synchronous.\n // 2. will behave incorrectly if multiple attributes are in the reaction\n // stack at time of calling. However, since we process attributes\n // in `update` this should not be possible (or an extreme corner case\n // that we'd like to discover).\n // mark state reflecting\n this.__reflectingProperty = name;\n if (attrValue == null) {\n this.removeAttribute(attr);\n } else {\n this.setAttribute(attr, attrValue as string);\n }\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n\n /** @internal */\n _$attributeToProperty(name: string, value: string | null) {\n const ctor = this.constructor as typeof ReactiveElement;\n // Note, hint this as an `AttributeMap` so closure clearly understands\n // the type; it has issues with tracking types through statics\n const propName = (ctor.__attributeToPropertyMap as AttributeMap).get(name);\n // Use tracking info to avoid reflecting a property value to an attribute\n // if it was just set because the attribute changed.\n if (propName !== undefined && this.__reflectingProperty !== propName) {\n const options = ctor.getPropertyOptions(propName);\n const converter =\n typeof options.converter === 'function'\n ? {fromAttribute: options.converter}\n : options.converter?.fromAttribute !== undefined\n ? options.converter\n : defaultConverter;\n // mark state reflecting\n this.__reflectingProperty = propName;\n const convertedValue = converter.fromAttribute!(value, options.type);\n this[propName as keyof this] =\n convertedValue ??\n this.__defaultValues?.get(propName) ??\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (convertedValue as any);\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n\n /**\n * Requests an update which is processed asynchronously. This should be called\n * when an element should update based on some state not triggered by setting\n * a reactive property. In this case, pass no arguments. It should also be\n * called when manually implementing a property setter. In this case, pass the\n * property `name` and `oldValue` to ensure that any configured property\n * options are honored.\n *\n * @param name name of requesting property\n * @param oldValue old value of requesting property\n * @param options property options to use instead of the previously\n * configured options\n * @param useNewValue if true, the newValue argument is used instead of\n * reading the property value. This is important to use if the reactive\n * property is a standard private accessor, as opposed to a plain\n * property, since private members can't be dynamically read by name.\n * @param newValue the new value of the property. This is only used if\n * `useNewValue` is true.\n * @category updates\n */\n requestUpdate(\n name?: PropertyKey,\n oldValue?: unknown,\n options?: PropertyDeclaration,\n useNewValue = false,\n newValue?: unknown\n ): void {\n // If we have a property key, perform property update steps.\n if (name !== undefined) {\n if (DEV_MODE && (name as unknown) instanceof Event) {\n issueWarning(\n ``,\n `The requestUpdate() method was called with an Event as the property name. This is probably a mistake caused by binding this.requestUpdate as an event listener. Instead bind a function that will call it with no arguments: () => this.requestUpdate()`\n );\n }\n const ctor = this.constructor as typeof ReactiveElement;\n if (useNewValue === false) {\n newValue = this[name as keyof this];\n }\n options ??= ctor.getPropertyOptions(name);\n const changed =\n (options.hasChanged ?? notEqual)(newValue, oldValue) ||\n // When there is no change, check a corner case that can occur when\n // 1. there's a initial value which was not reflected\n // 2. the property is subsequently set to this value.\n // For example, `prop: {useDefault: true, reflect: true}`\n // and el.prop = 'foo'. This should be considered a change if the\n // attribute is not set because we will now reflect the property to the attribute.\n (options.useDefault &&\n options.reflect &&\n newValue === this.__defaultValues?.get(name) &&\n !this.hasAttribute(ctor.__attributeNameForProperty(name, options)!));\n if (changed) {\n this._$changeProperty(name, oldValue, options);\n } else {\n // Abort the request if the property should not be considered changed.\n return;\n }\n }\n if (this.isUpdatePending === false) {\n this.__updatePromise = this.__enqueueUpdate();\n }\n }\n\n /**\n * @internal\n */\n _$changeProperty(\n name: PropertyKey,\n oldValue: unknown,\n {useDefault, reflect, wrapped}: PropertyDeclaration,\n initializeValue?: unknown\n ) {\n // Record default value when useDefault is used. This allows us to\n // restore this value when the attribute is removed.\n if (useDefault && !(this.__defaultValues ??= new Map()).has(name)) {\n this.__defaultValues.set(\n name,\n initializeValue ?? oldValue ?? this[name as keyof this]\n );\n // if this is not wrapping an accessor, it must be an initial setting\n // and in this case we do not want to record the change or reflect.\n if (wrapped !== true || initializeValue !== undefined) {\n return;\n }\n }\n // TODO (justinfagnani): Create a benchmark of Map.has() + Map.set(\n // vs just Map.set()\n if (!this._$changedProperties.has(name)) {\n // On the initial change, the old value should be `undefined`, except\n // with `useDefault`\n if (!this.hasUpdated && !useDefault) {\n oldValue = undefined;\n }\n this._$changedProperties.set(name, oldValue);\n }\n // Add to reflecting properties set.\n // Note, it's important that every change has a chance to add the\n // property to `__reflectingProperties`. This ensures setting\n // attribute + property reflects correctly.\n if (reflect === true && this.__reflectingProperty !== name) {\n (this.__reflectingProperties ??= new Set<PropertyKey>()).add(name);\n }\n }\n\n /**\n * Sets up the element to asynchronously update.\n */\n private async __enqueueUpdate() {\n this.isUpdatePending = true;\n try {\n // Ensure any previous update has resolved before updating.\n // This `await` also ensures that property changes are batched.\n await this.__updatePromise;\n } catch (e) {\n // Refire any previous errors async so they do not disrupt the update\n // cycle. Errors are refired so developers have a chance to observe\n // them, and this can be done by implementing\n // `window.onunhandledrejection`.\n Promise.reject(e);\n }\n const result = this.scheduleUpdate();\n // If `scheduleUpdate` returns a Promise, we await it. This is done to\n // enable coordinating updates with a scheduler. Note, the result is\n // checked to avoid delaying an additional microtask unless we need to.\n if (result != null) {\n await result;\n }\n return !this.isUpdatePending;\n }\n\n /**\n * Schedules an element update. You can override this method to change the\n * timing of updates by returning a Promise. The update will await the\n * returned Promise, and you should resolve the Promise to allow the update\n * to proceed. If this method is overridden, `super.scheduleUpdate()`\n * must be called.\n *\n * For instance, to schedule updates to occur just before the next frame:\n *\n * ```ts\n * override protected async scheduleUpdate(): Promise<unknown> {\n * await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n * super.scheduleUpdate();\n * }\n * ```\n * @category updates\n */\n protected scheduleUpdate(): void | Promise<unknown> {\n const result = this.performUpdate();\n if (\n DEV_MODE &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'async-perform-update'\n ) &&\n typeof (result as unknown as Promise<unknown> | undefined)?.then ===\n 'function'\n ) {\n issueWarning(\n 'async-perform-update',\n `Element ${this.localName} returned a Promise from performUpdate(). ` +\n `This behavior is deprecated and will be removed in a future ` +\n `version of ReactiveElement.`\n );\n }\n return result;\n }\n\n /**\n * Performs an element update. Note, if an exception is thrown during the\n * update, `firstUpdated` and `updated` will not be called.\n *\n * Call `performUpdate()` to immediately process a pending update. This should\n * generally not be needed, but it can be done in rare cases when you need to\n * update synchronously.\n *\n * @category updates\n */\n protected performUpdate(): void {\n // Abort any update if one is not pending when this is called.\n // This can happen if `performUpdate` is called early to \"flush\"\n // the update.\n if (!this.isUpdatePending) {\n return;\n }\n debugLogEvent?.({kind: 'update'});\n if (!this.hasUpdated) {\n // Create renderRoot before first update. This occurs in `connectedCallback`\n // but is done here to support out of tree calls to `enableUpdating`/`performUpdate`.\n (this as Mutable<typeof this, 'renderRoot'>).renderRoot ??=\n this.createRenderRoot();\n if (DEV_MODE) {\n // Produce warning if any reactive properties on the prototype are\n // shadowed by class fields. Instance fields set before upgrade are\n // deleted by this point, so any own property is caused by class field\n // initialization in the constructor.\n const ctor = this.constructor as typeof ReactiveElement;\n const shadowedProperties = [...ctor.elementProperties.keys()].filter(\n (p) => this.hasOwnProperty(p) && p in getPrototypeOf(this)\n );\n if (shadowedProperties.length) {\n throw new Error(\n `The following properties on element ${this.localName} will not ` +\n `trigger updates as expected because they are set using class ` +\n `fields: ${shadowedProperties.join(', ')}. ` +\n `Native class fields and some compiled output will overwrite ` +\n `accessors used for detecting changes. See ` +\n `https://lit.dev/msg/class-field-shadowing ` +\n `for more information.`\n );\n }\n }\n // Mixin instance properties once, if they exist.\n if (this.__instanceProperties) {\n // TODO (justinfagnani): should we use the stored value? Could a new value\n // have been set since we stored the own property value?\n for (const [p, value] of this.__instanceProperties) {\n this[p as keyof this] = value as this[keyof this];\n }\n this.__instanceProperties = undefined;\n }\n // Trigger initial value reflection and populate the initial\n // `changedProperties` map, but only for the case of properties created\n // via `createProperty` on accessors, which will not have already\n // populated the `changedProperties` map since they are not set.\n // We can't know if these accessors had initializers, so we just set\n // them anyway - a difference from experimental decorators on fields and\n // standard decorators on auto-accessors.\n // For context see:\n // https://github.com/lit/lit/pull/4183#issuecomment-1711959635\n const elementProperties = (this.constructor as typeof ReactiveElement)\n .elementProperties;\n if (elementProperties.size > 0) {\n for (const [p, options] of elementProperties) {\n const {wrapped} = options;\n const value = this[p as keyof this];\n if (\n wrapped === true &&\n !this._$changedProperties.has(p) &&\n value !== undefined\n ) {\n this._$changeProperty(p, undefined, options, value);\n }\n }\n }\n }\n let shouldUpdate = false;\n const changedProperties = this._$changedProperties;\n try {\n shouldUpdate = this.shouldUpdate(changedProperties);\n if (shouldUpdate) {\n this.willUpdate(changedProperties);\n this.__controllers?.forEach((c) => c.hostUpdate?.());\n this.update(changedProperties);\n } else {\n this.__markUpdated();\n }\n } catch (e) {\n // Prevent `firstUpdated` and `updated` from running when there's an\n // update exception.\n shouldUpdate = false;\n // Ensure element can accept additional updates after an exception.\n this.__markUpdated();\n throw e;\n }\n // The update is no longer considered pending and further updates are now allowed.\n if (shouldUpdate) {\n this._$didUpdate(changedProperties);\n }\n }\n\n /**\n * Invoked before `update()` to compute values needed during the update.\n *\n * Implement `willUpdate` to compute property values that depend on other\n * properties and are used in the rest of the update process.\n *\n * ```ts\n * willUpdate(changedProperties) {\n * // only need to check changed properties for an expensive computation.\n * if (changedProperties.has('firstName') || changedProperties.has('lastName')) {\n * this.sha = computeSHA(`${this.firstName} ${this.lastName}`);\n * }\n * }\n *\n * render() {\n * return html`SHA: ${this.sha}`;\n * }\n * ```\n *\n * @category updates\n */\n protected willUpdate(_changedProperties: PropertyValues): void {}\n\n // Note, this is an override point for polyfill-support.\n // @internal\n _$didUpdate(changedProperties: PropertyValues) {\n this.__controllers?.forEach((c) => c.hostUpdated?.());\n if (!this.hasUpdated) {\n this.hasUpdated = true;\n this.firstUpdated(changedProperties);\n }\n this.updated(changedProperties);\n if (\n DEV_MODE &&\n this.isUpdatePending &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'change-in-update'\n )\n ) {\n issueWarning(\n 'change-in-update',\n `Element ${this.localName} scheduled an update ` +\n `(generally because a property was set) ` +\n `after an update completed, causing a new update to be scheduled. ` +\n `This is inefficient and should be avoided unless the next update ` +\n `can only be scheduled as a side effect of the previous update.`\n );\n }\n }\n\n private __markUpdated() {\n this._$changedProperties = new Map();\n this.isUpdatePending = false;\n }\n\n /**\n * Returns a Promise that resolves when the element has completed updating.\n * The Promise value is a boolean that is `true` if the element completed the\n * update without triggering another update. The Promise result is `false` if\n * a property was set inside `updated()`. If the Promise is rejected, an\n * exception was thrown during the update.\n *\n * To await additional asynchronous work, override the `getUpdateComplete`\n * method. For example, it is sometimes useful to await a rendered element\n * before fulfilling this Promise. To do this, first await\n * `super.getUpdateComplete()`, then any subsequent state.\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n get updateComplete(): Promise<boolean> {\n return this.getUpdateComplete();\n }\n\n /**\n * Override point for the `updateComplete` promise.\n *\n * It is not safe to override the `updateComplete` getter directly due to a\n * limitation in TypeScript which means it is not possible to call a\n * superclass getter (e.g. `super.updateComplete.then(...)`) when the target\n * language is ES5 (https://github.com/microsoft/TypeScript/issues/338).\n * This method should be overridden instead. For example:\n *\n * ```ts\n * class MyElement extends LitElement {\n * override async getUpdateComplete() {\n * const result = await super.getUpdateComplete();\n * await this._myChild.updateComplete;\n * return result;\n * }\n * }\n * ```\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n protected getUpdateComplete(): Promise<boolean> {\n return this.__updatePromise;\n }\n\n /**\n * Controls whether or not `update()` should be called when the element requests\n * an update. By default, this method always returns `true`, but this can be\n * customized to control when to update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected shouldUpdate(_changedProperties: PropertyValues): boolean {\n return true;\n }\n\n /**\n * Updates the element. This method reflects property values to attributes.\n * It can be overridden to render and keep updated element DOM.\n * Setting properties inside this method will *not* trigger\n * another update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected update(_changedProperties: PropertyValues) {\n // The forEach() expression will only run when __reflectingProperties is\n // defined, and it returns undefined, setting __reflectingProperties to\n // undefined\n this.__reflectingProperties &&= this.__reflectingProperties.forEach((p) =>\n this.__propertyToAttribute(p, this[p as keyof this])\n ) as undefined;\n this.__markUpdated();\n }\n\n /**\n * Invoked whenever the element is updated. Implement to perform\n * post-updating tasks via DOM APIs, for example, focusing an element.\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected updated(_changedProperties: PropertyValues) {}\n\n /**\n * Invoked when the element is first updated. Implement to perform one time\n * work on the element after update.\n *\n * ```ts\n * firstUpdated() {\n * this.renderRoot.getElementById('my-text-area').focus();\n * }\n * ```\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected firstUpdated(_changedProperties: PropertyValues) {}\n}\n// Assigned here to work around a jscompiler bug with static fields\n// when compiling to ES5.\n// https://github.com/google/closure-compiler/issues/3177\n(ReactiveElement as unknown as Record<string, unknown>)[\n JSCompiler_renameProperty('elementProperties', ReactiveElement)\n] = new Map();\n(ReactiveElement as unknown as Record<string, unknown>)[\n JSCompiler_renameProperty('finalized', ReactiveElement)\n] = new Map();\n\n// Apply polyfills if available\npolyfillSupport?.({ReactiveElement});\n\n// Dev mode warnings...\nif (DEV_MODE) {\n // Default warning set.\n ReactiveElement.enabledWarnings = [\n 'change-in-update',\n 'async-perform-update',\n ];\n const ensureOwnWarnings = function (ctor: typeof ReactiveElement) {\n if (\n !ctor.hasOwnProperty(JSCompiler_renameProperty('enabledWarnings', ctor))\n ) {\n ctor.enabledWarnings = ctor.enabledWarnings!.slice();\n }\n };\n ReactiveElement.enableWarning = function (\n this: typeof ReactiveElement,\n warning: WarningKind\n ) {\n ensureOwnWarnings(this);\n if (!this.enabledWarnings!.includes(warning)) {\n this.enabledWarnings!.push(warning);\n }\n };\n ReactiveElement.disableWarning = function (\n this: typeof ReactiveElement,\n warning: WarningKind\n ) {\n ensureOwnWarnings(this);\n const i = this.enabledWarnings!.indexOf(warning);\n if (i >= 0) {\n this.enabledWarnings!.splice(i, 1);\n }\n };\n}\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for ReactiveElement usage.\n(global.reactiveElementVersions ??= []).push('2.1.2');\nif (DEV_MODE && global.reactiveElementVersions.length > 1) {\n queueMicrotask(() => {\n issueWarning!(\n 'multiple-versions',\n `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`\n );\n });\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport {\n type PropertyDeclaration,\n type ReactiveElement,\n defaultConverter,\n notEqual,\n} from '../reactive-element.js';\nimport type {Interface} from './base.js';\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n globalThis.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (\n !globalThis.litIssuedWarnings!.has(warning) &&\n !globalThis.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n globalThis.litIssuedWarnings!.add(warning);\n }\n };\n}\n\n// Overloads for property decorator so that TypeScript can infer the correct\n// return type when a decorator is used as an accessor decorator or a setter\n// decorator.\nexport type PropertyDecorator = {\n // accessor decorator signature\n <C extends Interface<ReactiveElement>, V>(\n target: ClassAccessorDecoratorTarget<C, V>,\n context: ClassAccessorDecoratorContext<C, V>\n ): ClassAccessorDecoratorResult<C, V>;\n\n // setter decorator signature\n <C extends Interface<ReactiveElement>, V>(\n target: (value: V) => void,\n context: ClassSetterDecoratorContext<C, V>\n ): (this: C, value: V) => void;\n\n // legacy decorator signature\n (\n protoOrDescriptor: Object,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): any;\n};\n\nconst legacyProperty = (\n options: PropertyDeclaration | undefined,\n proto: Object,\n name: PropertyKey\n) => {\n const hasOwnProperty = proto.hasOwnProperty(name);\n (proto.constructor as typeof ReactiveElement).createProperty(name, options);\n // For accessors (which have a descriptor on the prototype) we need to\n // return a descriptor, otherwise TypeScript overwrites the descriptor we\n // define in createProperty() with the original descriptor. We don't do this\n // for fields, which don't have a descriptor, because this could overwrite\n // descriptor defined by other decorators.\n return hasOwnProperty\n ? Object.getOwnPropertyDescriptor(proto, name)\n : undefined;\n};\n\n// This is duplicated from a similar variable in reactive-element.ts, but\n// actually makes sense to have this default defined with the decorator, so\n// that different decorators could have different defaults.\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n hasChanged: notEqual,\n};\n\n// Temporary type, until google3 is on TypeScript 5.2\ntype StandardPropertyContext<C, V> = (\n | ClassAccessorDecoratorContext<C, V>\n | ClassSetterDecoratorContext<C, V>\n) & {metadata: object};\n\n/**\n * Wraps a class accessor or setter so that `requestUpdate()` is called with the\n * property name and old value when the accessor is set.\n */\nexport const standardProperty = <C extends Interface<ReactiveElement>, V>(\n options: PropertyDeclaration = defaultPropertyDeclaration,\n target: ClassAccessorDecoratorTarget<C, V> | ((value: V) => void),\n context: StandardPropertyContext<C, V>\n): ClassAccessorDecoratorResult<C, V> | ((this: C, value: V) => void) => {\n const {kind, metadata} = context;\n\n if (DEV_MODE && metadata == null) {\n issueWarning(\n 'missing-class-metadata',\n `The class ${target} is missing decorator metadata. This ` +\n `could mean that you're using a compiler that supports decorators ` +\n `but doesn't support decorator metadata, such as TypeScript 5.1. ` +\n `Please update your compiler.`\n );\n }\n\n // Store the property options\n let properties = globalThis.litPropertyMetadata.get(metadata);\n if (properties === undefined) {\n globalThis.litPropertyMetadata.set(metadata, (properties = new Map()));\n }\n if (kind === 'setter') {\n options = Object.create(options);\n options.wrapped = true;\n }\n properties.set(context.name, options);\n\n if (kind === 'accessor') {\n // Standard decorators cannot dynamically modify the class, so we can't\n // replace a field with accessors. The user must use the new `accessor`\n // keyword instead.\n const {name} = context;\n return {\n set(this: ReactiveElement, v: V) {\n const oldValue = (\n target as ClassAccessorDecoratorTarget<C, V>\n ).get.call(this as unknown as C);\n (target as ClassAccessorDecoratorTarget<C, V>).set.call(\n this as unknown as C,\n v\n );\n this.requestUpdate(name, oldValue, options, true, v);\n },\n init(this: ReactiveElement, v: V): V {\n if (v !== undefined) {\n this._$changeProperty(name, undefined, options, v);\n }\n return v;\n },\n } as unknown as ClassAccessorDecoratorResult<C, V>;\n } else if (kind === 'setter') {\n const {name} = context;\n return function (this: ReactiveElement, value: V) {\n const oldValue = this[name as keyof ReactiveElement];\n (target as (value: V) => void).call(this, value);\n this.requestUpdate(name, oldValue, options, true, value);\n } as unknown as (this: C, value: V) => void;\n }\n throw new Error(`Unsupported decorator location: ${kind}`);\n};\n\n/**\n * A class field or accessor decorator which creates a reactive property that\n * reflects a corresponding attribute value. When a decorated property is set\n * the element will update and render. A {@linkcode PropertyDeclaration} may\n * optionally be supplied to configure property features.\n *\n * This decorator should only be used for public fields. As public fields,\n * properties should be considered as primarily settable by element users,\n * either via attribute or the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the {@linkcode state} decorator.\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating public\n * properties should typically not be done for non-primitive (object or array)\n * properties. In other cases when an element needs to manage state, a private\n * property decorated via the {@linkcode state} decorator should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n *\n * ```ts\n * class MyElement {\n * @property({ type: Boolean })\n * clicked = false;\n * }\n * ```\n * @category Decorator\n * @ExportDecoratedItems\n */\nexport function property(options?: PropertyDeclaration): PropertyDecorator {\n return <C extends Interface<ReactiveElement>, V>(\n protoOrTarget:\n | object\n | ClassAccessorDecoratorTarget<C, V>\n | ((value: V) => void),\n nameOrContext:\n | PropertyKey\n | ClassAccessorDecoratorContext<C, V>\n | ClassSetterDecoratorContext<C, V>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): any => {\n return (\n typeof nameOrContext === 'object'\n ? standardProperty<C, V>(\n options,\n protoOrTarget as\n | ClassAccessorDecoratorTarget<C, V>\n | ((value: V) => void),\n nameOrContext as StandardPropertyContext<C, V>\n )\n : legacyProperty(\n options,\n protoOrTarget as Object,\n nameOrContext as PropertyKey\n )\n ) as PropertyDecorator;\n };\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport {property} from './property.js';\n\nexport interface StateDeclaration<Type = unknown> {\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n}\n\n/**\n * @deprecated use StateDeclaration\n */\nexport type InternalPropertyDeclaration<Type = unknown> =\n StateDeclaration<Type>;\n\n/**\n * Declares a private or protected reactive property that still triggers\n * updates to the element when it changes. It does not reflect from the\n * corresponding attribute.\n *\n * Properties declared this way must not be used from HTML or HTML templating\n * systems, they're solely for properties internal to the element. These\n * properties may be renamed by optimization tools like closure compiler.\n * @category Decorator\n */\nexport function state(options?: StateDeclaration) {\n return property({\n ...options,\n // Add both `state` and `attribute` because we found a third party\n // controller that is keying off of PropertyOptions.state to determine\n // whether a field is a private internal property or not.\n state: true,\n attribute: false,\n });\n}\n", "import { CSSResultGroup } from 'lit';\nimport { JSXElement } from './JSXElement';\ntype target = (abstract new (...args: any[]) => JSXElement) & {\n styles?: CSSResultGroup;\n}\nexport const addstyles = (styles: string) => (\n target: target,\n context: ClassDecoratorContext<target>\n) => {\n addstylesinner(styles, target);\n};\nexport const addstylesinner = (styles: string, target: any) => {\n const css = new CSSStyleSheet();\n css.replaceSync(styles);\n if (Array.isArray(target.styles)) {\n target.styles.push(css);\n } else if (target.styles) {\n target.styles = [target.styles, css];\n } else {\n target.styles = [css];\n }\n}", "/**\n * Breakpoint-related JavaScript functions\n * These functions are directly exported to the mdui global object for application use. \n * When used internally by the framework, import from the @mdui/shared package to avoid circular dependencies\n */\n\n\nconst computedStyle = window.getComputedStyle(document.documentElement);\n// Breakpoint corresponding width values\nconst getBreakpointValue = (breakpoint: string) => {\n const width = computedStyle\n .getPropertyValue(`--mdui-breakpoint-${breakpoint}`)\n .toLowerCase();\n return parseFloat(width);\n};\nconst breakpointValues: { [key in Breakpoint]: number } = {\n xs: getBreakpointValue('xs'),\n sm: getBreakpointValue('sm'),\n md: getBreakpointValue('md'),\n lg: getBreakpointValue('lg'),\n xl: getBreakpointValue('xl'),\n xxl: getBreakpointValue('xxl'),\n};\nexport type Breakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\n/**\n * Get a breakpoint object that can be used to determine the relationship between specified width, \n * element width, or current window width and various breakpoint values\n *\n * * When no parameters are passed, gets the breakpoint object corresponding to the `window` width\n * * If a number is passed, gets the breakpoint object corresponding to that width value\n * * If a CSS selector is passed, gets the breakpoint object corresponding to the width of the selected element\n * * If an HTML element is passed, gets the breakpoint object corresponding to that element's width\n * * If a JQ object is passed, gets the breakpoint object corresponding to the width of the element in that JQ object\n *\n * The returned object contains the following methods:\n *\n * * `up(breakpoint)`: Determines if the current width is greater than the specified breakpoint value\n * * `down(breakpoint)`: Determines if the current width is less than the specified breakpoint value\n * * `only(breakpoint)`: Determines if the current width is within the specified breakpoint range\n * * `not(breakpoint)`: Determines if the current width is not within the specified breakpoint range\n * * `between(startBreakpoint, endBreakpoint)`: Determines if the current width is between the specified breakpoint values\n */\nexport const breakpoint = (containerWidth: number) => {\n\n // Get the next larger breakpoint than the specified breakpoint\n const getNextBreakpoint = (breakpoint: Breakpoint) => {\n switch (breakpoint) {\n case 'xs':\n return 'sm';\n case 'sm':\n return 'md';\n case 'md':\n return 'lg';\n case 'lg':\n return 'xl';\n case 'xl':\n return 'xxl';\n }\n throw new Error('The xxl breakpoint has no larger breakpoint');\n };\n return {\n /**\n * Whether the current width is greater than the specified breakpoint value\n * @param breakpoint\n */\n up(breakpoint: Breakpoint) {\n return containerWidth >= breakpointValues[breakpoint];\n },\n /**\n * Whether the current width is less than the specified breakpoint value\n * @param breakpoint\n */\n down(breakpoint: Breakpoint) {\n return containerWidth < breakpointValues[breakpoint];\n },\n /**\n * Whether the current width is within the specified breakpoint range\n * @param breakpoint\n */\n only(breakpoint: Breakpoint) {\n if (breakpoint === 'xxl') {\n return this.up(breakpoint);\n }\n else {\n return this.up(breakpoint) && this.down(getNextBreakpoint(breakpoint));\n }\n },\n /**\n * Whether the current width is not within the specified breakpoint range\n * @param breakpoint\n */\n not(breakpoint: Breakpoint) {\n return !this.only(breakpoint);\n },\n /**\n * Whether the current width is between the specified breakpoint values\n * @param startBreakpoint\n * @param endBreakpoint\n * @returns\n */\n between(startBreakpoint: Breakpoint, endBreakpoint: Breakpoint) {\n return this.up(startBreakpoint) && this.down(endBreakpoint);\n },\n };\n};\n", "import EventEmitter from 'events';\nimport { CSSResult, PropertyValues, ReactiveElement } from '@lit/reactive-element';\nimport { is, render } from '@tiddlywiki/jsx-runtime';\nimport { Subscription } from 'rxjs';\nimport { observeResize, unobserveResize } from './resizeObserver';\nimport type { Dispatch, SetStateAction } from 'react';\n\nReactiveElement.enableWarning?.('async-perform-update');\n\ninterface EventMapTarget {\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\nexport interface JSXElement {\n addEventListener<K extends keyof MyCustomEvents>(type: K, listener: (this: JSXElement, ev: MyCustomEvents[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MyCustomEvents>(type: K, listener: (this: JSXElement, ev: MyCustomEvents[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/** Can be added to the @state or @props options of */\nexport function hasChangedJSXProps(n: any, o: any) {\n if (!n || !o) return true;\n for (const key in o) {\n if (!(key in n)) return true;\n }\n for (const key in n) {\n if (!(key in o)) return true;\n if (!hasChangedJSXProps.ignoreList.includes(key) && !Object.is(n[key], o[key])) return true;\n }\n return false;\n}\nhasChangedJSXProps.ignoreList = [\"ref\", \"key\", \"children\", \"style\", \"class\", \"className\", \"id\"];\nconst DO_NOT_RENDER = new class JSXElement_DO_NOT_RENDER { name = \"JSXElement_DO_NOT_RENDER\" };\nexport class JSXElement extends ReactiveElement {\n static DO_NOT_RENDER = DO_NOT_RENDER;\n\n useLightDOM = false;\n\n get \"webjsx-donotdescend\"() { return this.useLightDOM; }\n\n protected events = new EventEmitter<{\n \"willUpdate\": [PropertyValues];\n \"updated\": [PropertyValues];\n \"firstUpdated\": [PropertyValues];\n }>();\n private useArray = new Map<number, any>();\n private useArrayIndex: number = 0;\n private useArrayFunc = new Map<number, Function>();\n private useArraySubs = new Subscription();\n protected resetHooks(): void {\n if (this.useArrayIndex !== 0) {\n throw new Error(\"resetHooks may only be called at the start of the render method.\");\n }\n this.useArray.clear();\n this.useArrayIndex = 0;\n this.useArrayFunc.clear();\n this.useArraySubs.unsubscribe();\n this.useArraySubs = new Subscription();\n }\n private protectHook<T extends {}>(fn: Function, init: () => T): T {\n this.useArrayIndex++;\n let curfunc: Function | undefined;\n if (!this.useArrayFunc.has(this.useArrayIndex)) {\n this.useArrayFunc.set(this.useArrayIndex, fn);\n } else if ((curfunc = this.useArrayFunc.get(this.useArrayIndex)) !== fn) {\n throw new Error(`Expected ${curfunc!.name} to be called, but found ${fn.name}`);\n }\n\n const state = this.useArray.get(this.useArrayIndex);\n if (state) return state;\n\n const inited = init();\n this.useArray.set(this.useArrayIndex, inited);\n return inited;\n\n }\n\n\n protected useWillUpdate(cb: (this: this, changedProperties: PropertyValues) => void, deps?: any[]): void {\n return this.useEventListener(this.events, \"willUpdate\", cb.bind(this));\n }\n protected useUpdated(cb: (this: this, changedProperties: PropertyValues) => void, deps?: any[]): void {\n return this.useEventListener(this.events, \"updated\", cb.bind(this));\n }\n protected useFirstUpdated(cb: (this: this, changedProperties: PropertyValues) => void) {\n return this.useEventListener(this.events, \"firstUpdated\", cb.bind(this));\n }\n\n\n protected useEventListener<T extends EventMapTarget>(\n target: T\n ): T[\"addEventListener\"];\n protected useEventListener<T extends Record<string, any[]>, K extends keyof T>(\n target: EventEmitter<T>, type: K, listener: (...ev: T[K]) => any\n ): void;\n protected useEventListener(...args: any[]): any {\n const target = args[0] as (EventMapTarget | EventEmitter<any>);\n const inner = (type: string, listener: (...args: any[]) => void) => {\n const state = this.protectHook<{\n target?: EventMapTarget | EventEmitter,\n type?: string,\n listener?: (...args: any[]) => void,\n teardown?: () => void\n inited: boolean\n }>(this.useEventListener, () => ({ inited: false } as any));\n\n\n if (state.inited\n && Object.is(state.target, target)\n && Object.is(state.type, type)\n && Object.is(state.listener, listener)\n ) {\n return;\n }\n if (state.inited) {\n state.teardown!();\n this.useArraySubs.remove(state.teardown!);\n state.inited = false;\n\n state.target = undefined;\n state.type = undefined;\n state.listener = undefined;\n state.teardown = undefined;\n\n }\n // hook order can't change, so this allows targets to be removed.\n if (!target) return;\n\n state.inited = true;\n state.target = target;\n state.type = type;\n state.listener = listener;\n state.teardown = () => {\n if (\"removeEventListener\" in state.target!)\n state.target!.removeEventListener(state.type!, state.listener!);\n else\n state.target?.off(state.type!, state.listener!);\n }\n\n if (\"addEventListener\" in target!)\n target.addEventListener(type, listener);\n else\n target.on(type, listener);\n\n\n this.useArraySubs.add(state.teardown);\n }\n if (args.length === 1) {\n return inner;\n } else {\n return inner(args[1], args[2]);\n }\n }\n protected useObserveResize(element: HTMLElement, caller: { requestUpdate(): void } = this) {\n\n const state = this.protectHook<{\n teardown: () => void\n element?: HTMLElement\n }>(this.useObserveResize, () => ({} as any));\n\n if (state.element) {\n if (Object.is(state.element, element)) return;\n this.useArraySubs.remove(state.teardown);\n state.teardown();\n }\n observeResize(element, caller);\n state.element = element;\n state.teardown = () => { unobserveResize(element, caller); }\n this.useArraySubs.add(state.teardown);\n\n\n }\n\n protected useState<T>(initialValue: T | (() => T)): [T, (value: T | ((prev: T) => T)) => void] {\n\n const state = this.protectHook<{\n value: T,\n setValue: Dispatch<SetStateAction<T>>\n }>(this.useState, () => ({\n value: typeof initialValue === 'function' ? (initialValue as () => T)() : initialValue,\n setValue: (newValue: T | ((prev: T) => T)) => {\n const nextValue = typeof newValue === 'function' ? (newValue as (prev: T) => T)(state.value) : newValue;\n if (!Object.is(state.value, nextValue)) {\n state.value = nextValue;\n this.requestUpdate();\n }\n }\n }));\n\n return [state.value, state.setValue] as const;\n }\n\n protected useEffect(fn: () => (Subscription | (() => void) | void | false), deps?: any[]) {\n const state = this.protectHook<{\n callback?: Subscription | (() => void) | void | false,\n deps?: any[]\n }>(this.useEffect, () => ({}));\n\n if (checkDeps(state.deps, deps)) {\n if (state.callback) {\n this.useArraySubs.remove(state.callback);\n if (state.callback instanceof Subscription)\n state.callback.unsubscribe();\n else\n state.callback();\n }\n state.callback = fn() ?? undefined;\n state.deps = deps;\n if (state.callback)\n this.useArraySubs.add(state.callback);\n }\n }\n\n protected useMemo<T>(fn: () => T, deps: any[] = []): T {\n\n const state = this.protectHook<{\n value: T,\n deps?: any[]\n }>(this.useMemo, () => ({\n value: fn(),\n deps: deps\n }));\n\n if (checkDeps(state.deps, deps)) {\n state.value = fn();\n state.deps = deps;\n }\n\n return state.value;\n }\n\n protected useAsyncMemo<T>(\n fn: () => Promise<T>,\n deps: any[] = [],\n ): { value?: T; loading: boolean; error?: any } {\n\n const state = this.protectHook<{\n value?: T,\n loading: boolean,\n error?: any,\n deps?: any[]\n }>(this.useAsyncMemo, () => ({\n value: undefined,\n loading: false,\n error: undefined,\n deps: undefined\n }));\n\n if (checkDeps(state.deps, deps) && !state.loading) {\n state.loading = true;\n state.deps = deps;\n fn().then((result) => {\n state.value = result;\n state.loading = false;\n this.requestUpdate();\n }).catch((err) => {\n state.error = err;\n state.loading = false;\n this.requestUpdate();\n });\n }\n\n return { value: state.value, loading: state.loading, error: state.error };\n }\n /** Clear the use hook state when the key changes, but NOT the rendered children. */\n protected useKey(key: JSX.KeyPrimitive): boolean {\n if (this.useArrayIndex)\n throw new Error(\"useKey must be called first\");\n\n const state = this.protectHook<{\n key: JSX.KeyPrimitive\n }>(this.useState, () => ({ key }));\n\n if (!Object.is(state.key, key)) {\n this.useArrayIndex = 0;\n this.resetHooks();\n this.protectHook<{\n key: JSX.KeyPrimitive\n }>(this.useState, () => ({ key }));\n return true;\n } else {\n return false;\n }\n\n }\n\n\n\n\n protected updated(_changedProperties: PropertyValues): void {\n super.updated(_changedProperties);\n this.events.emit(\"updated\", _changedProperties);\n }\n\n protected willUpdate(_changedProperties: PropertyValues): void {\n super.willUpdate(_changedProperties);\n this.events.emit(\"willUpdate\", _changedProperties);\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n super.firstUpdated(_changedProperties);\n this.events.emit(\"firstUpdated\", _changedProperties);\n }\n\n subs = new Subscription();\n\n\n\n connectedCallback(): void {\n super.connectedCallback();\n this.requestUpdate();\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.subs.unsubscribe();\n this.subs = new Subscription();\n this.useArrayIndex = 0;\n this.resetHooks();\n }\n\n protected update(changedProperties: any) {\n this.useArrayIndex = 0;\n const tree = this.render();\n\n if (this.useArrayIndex !== this.useArray.size) {\n throw new Error(`Expected use hooks to be called ${this.useArray.size} times, but found ${this.useArrayIndex} calls.`);\n }\n\n super.update(changedProperties);\n\n if (tree !== JSXElement.DO_NOT_RENDER) {\n render(\n this.useLightDOM ? this : this.shadowRoot!,\n tree as Exclude<typeof tree, typeof JSXElement.DO_NOT_RENDER>\n );\n }\n }\n protected render(): JSX.Node | typeof JSXElement.DO_NOT_RENDER {\n return <slot></slot>;\n }\n static lightStyles = new Map<string, HTMLStyleElement & { lightStyleSubs: number }>();\n createRenderRoot() {\n if (!this.useLightDOM)\n return super.createRenderRoot();\n\n const styles = (this.constructor as typeof JSXElement).elementStyles;\n\n const setstyle = (cssText: string) => {\n if (!JSXElement.lightStyles.has(cssText)) {\n const style = document.createElement('style');\n style.textContent = cssText;\n const nonce = (window as any).styleNonce;\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce);\n }\n document.head.appendChild(style);\n (style as any).lightStyleSubs = 0;\n JSXElement.lightStyles.set(cssText, (style as any));\n }\n\n const el = JSXElement.lightStyles.get(cssText)!;\n el.lightStyleSubs++;\n this.subs.add(() => {\n el.lightStyleSubs--;\n if (el.lightStyleSubs <= 0) {\n document.head.removeChild(el);\n JSXElement.lightStyles.delete(cssText);\n }\n });\n\n }\n for (const s of styles) {\n if (is<CSSResult>(s, (s as any)['_$cssResult$'] === true)) {\n setstyle(s.cssText);\n } else {\n let cssText = '';\n for (const rule of s.cssRules) {\n cssText += rule.cssText;\n }\n setstyle(cssText);\n }\n }\n return this;\n }\n}\n\nfunction checkDeps(oldDeps: any[] | undefined, newDeps: any[] | undefined): boolean {\n if (!oldDeps || !newDeps) return true;\n if (oldDeps.length !== newDeps.length) return true;\n for (let i = 0; i < oldDeps.length; i++) {\n if (!Object.is(oldDeps[i], newDeps[i])) return true;\n }\n return false;\n}\n\n\n", "import { MaybeArray } from \"./jsx-utils\";\n\nexport const JSXElementSymbol: unique symbol = Symbol(\"__is_jsx_element__\");\n\nconst HTML_NAMESPACE = \"http://www.w3.org/1999/xhtml\";\nconst MATH_NAMESPACE = \"http://www.w3.org/1998/Math/MathML\";\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\n\nconst OldPropsSymbol: unique symbol = Symbol(\"__old_props__\");\nconst KeyChildren: unique symbol = Symbol(\"__key_children__\");\nconst OwnKeySymbol: unique symbol = Symbol(\"__own_key__\");\nconst DOMElementSymbol: unique symbol = Symbol(\"__dom_element__\");\n\nconst observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n const callbacks = observerCallbacks.get(mutation.target as Element);\n if (callbacks) for (const cb of callbacks) cb();\n }\n});\n\nconst observerCallbacks = new WeakMap<Element, (() => void)[]>();\n\nexport function render(root: Element | DocumentFragment, child: MaybeArray<JSX.Node>) {\n updateChildren(root, [child].flat(Infinity) as JSX.Node[]);\n}\n/*\nKNOWN OR PREDICTED ISSUES:\n- Event listeners are not properly removed if the element is moved.\n- Attributes set to non-string values (objects, arrays) are stringified.\n*/\nexport function updateElement(\n jsx: JSX.Element,\n el: (Element & {\n [OldPropsSymbol]?: Record<string, unknown>;\n [OwnKeySymbol]?: JSX.KeyPrimitive;\n [KeyChildren]?: Map<string, Element>;\n [DOMElementSymbol]?: boolean;\n \"webjsx-donotdescend\"?: boolean;\n }) | null,\n parentNamespaceURI: string | null\n): Element {\n if (!el || !isNodeTypeValidUpdate(el, jsx, el.namespaceURI)) {\n const namespaceURI = jsx.props.xmlns\n ? (jsx.props.xmlns as string)\n : jsx.type === \"svg\"\n ? SVG_NAMESPACE\n : parentNamespaceURI ?? null;\n\n if (el?.[OldPropsSymbol]?.[\"webjsx-debugger\"]) debugger;\n if (jsx.props[\"webjsx-debugger\"]) debugger;\n // if (el?.tagName === \"SLOT\") debugger;\n el = (typeof jsx.type === \"function\" ?\n new (jsx.type as CustomElementConstructor)() :\n namespaceURI !== null\n ? document.createElementNS(namespaceURI, jsx.type.toLowerCase())\n : document.createElement(jsx.type.toLowerCase())) as typeof el & {};\n }\n observerCallbacks.delete(el);\n if (jsx.props) {\n if (typeof jsx.type === \"function\") {\n (el as any).props = jsx.props;\n updateAttributes(jsx.props, el, (key) => [\n \"className\", \"class\", \"style\", \"slot\", \"id\"\n ].includes(key) || key.startsWith(\"webjsx-\"));\n } else {\n updateAttributes(jsx.props, el);\n }\n }\n\n if (jsx.key !== undefined) {\n el[OwnKeySymbol] = jsx.key;\n }\n\n if (jsx.props.ref) {\n const ref = jsx.props.ref;\n if (typeof ref === \"function\") {\n ref(el);\n } else if (typeof ref === \"object\" && ref !== null) {\n (ref as { current: Element | null; }).current = el;\n }\n }\n if (!jsx.props[\"webjsx-donotdescend\"] && !el[\"webjsx-donotdescend\"])\n updateChildren(el, jsx.props.children);\n\n return el;\n}\nfunction updateAttributes(\n props: Record<string, unknown>,\n el: Element & { [OldPropsSymbol]?: Record<string, unknown>; },\n filter: ((key: string, value: unknown) => boolean) | null = null\n) {\n const oldProps = (el as any)[OldPropsSymbol] || {};\n el[OldPropsSymbol] = props;\n for (let [key, value] of Object.entries(props)) {\n if ([\"children\", \"key\", \"ref\", \"xmlns\", \"webjsx-debugger\"].includes(key)) continue;\n if (key === \"className\") key = \"class\";\n if (filter && !filter(key, value)) continue;\n if (key.startsWith(\"webjsx-attr-\")) key = key.slice(\"webjsx-attr-\".length);\n else if (key.startsWith(\"webjsx-watch-\")) {\n key = key.slice(\"webjsx-watch-\".length);\n const descriptor = value;\n value = descriptor\n && typeof descriptor === \"object\"\n && \"get\" in descriptor\n && typeof descriptor.get === \"function\"\n ? descriptor.get?.()\n : undefined;\n observer.observe(el, { attributes: true });\n if (!observerCallbacks.has(el)) observerCallbacks.set(el, []);\n observerCallbacks.get(el)!.push(() => {\n if (descriptor\n && typeof descriptor === \"object\"\n && \"set\" in descriptor\n && typeof descriptor.set === \"function\") descriptor.set?.(el.getAttribute(key));\n });\n }\n if (key === \"style\" && typeof value === \"object\" && value !== null && el instanceof HTMLElement) {\n el.style.cssText = \"\";\n for (const [styleKey, styleValue] of Object.entries(value as Record<string, string>)) {\n if (Object.prototype.hasOwnProperty.call(el.style, styleKey)) {\n el.style[styleKey as any] = styleValue;\n } else {\n el.style.setProperty(styleKey, styleValue);\n }\n }\n } else if ([undefined, null, false].includes(value as any)) {\n el.removeAttribute(key);\n } else if ([\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n el.setAttribute(key, value === true ? \"\" : String(value));\n } else if (key.startsWith(\"on\") && typeof value === \"function\") {\n if (oldProps[key] === value) continue;\n const eventName = key.slice(2).toLowerCase();\n el.removeEventListener(eventName, oldProps[key] as EventListener);\n el.addEventListener(eventName, value as EventListener);\n } else if (key.startsWith(\"webjsx-on-\") && typeof value === \"function\") {\n if (oldProps[key] === value) continue;\n const eventName = key.slice(\"webjsx-on-\".length).toLowerCase();\n el.removeEventListener(eventName, oldProps[key] as EventListener);\n el.addEventListener(eventName, value as EventListener);\n } else {\n console.warn(`Unsupported prop type for key \"${key}\": `, value);\n }\n }\n for (let [key, value] of Object.entries(oldProps)) {\n if (!(key in props)) {\n if (key.startsWith(\"on\")) {\n const eventName = key.slice(2).toLowerCase();\n el.removeEventListener(eventName, oldProps[key] as EventListener);\n } else if (key.startsWith(\"webjsx-on-\")) {\n const eventName = key.slice(\"webjsx-on-\".length).toLowerCase();\n el.removeEventListener(eventName, oldProps[key] as EventListener);\n } else {\n el.removeAttribute(key);\n }\n }\n }\n}\nfunction updateChildren(\n el: (DocumentFragment | Element) & {\n [OldPropsSymbol]?: Record<string, unknown>;\n [OwnKeySymbol]?: JSX.KeyPrimitive;\n [KeyChildren]?: Map<JSX.KeyPrimitive, Element>;\n [DOMElementSymbol]?: boolean;\n namespaceURI?: string | null;\n },\n children?: JSX.Node[]\n) {\n\n if (children?.length) {\n\n const curKeyMap: Map<JSX.KeyPrimitive, Element> = el[KeyChildren] ?? new Map();\n const newKeyMap = el[KeyChildren] = new Map<JSX.KeyPrimitive, Element>();\n // const ordered = new Array<{ curChildNode: ChildNode | null; newChildNode: ChildNode; }>(children.length);\n const newChildNodes = new Array<ChildNode | string>(children.length);\n for (let i = 0; i < children.length; i++) {\n const newChildDef = children[i];\n const curChildNode: (ChildNode & {\n [OwnKeySymbol]?: JSX.KeyPrimitive;\n [DOMElementSymbol]?: boolean;\n }) | null = (el?.childNodes[i]) ?? null;\n let newChildNode: ChildNode | string | undefined;\n if (isJSXDOMElement(newChildDef)) {\n newChildNode = newChildDef;\n (newChildNode as any)[DOMElementSymbol] = true;\n if ((newChildNode as any)[OwnKeySymbol]\n && curKeyMap.get((newChildNode as any)[OwnKeySymbol])?.parentElement === el)\n console.warn(\"jsx child node had a key and may have conflicting lookups\");\n } else if (isJSXElement(newChildDef)) {\n if (newChildDef.key === curChildNode?.[OwnKeySymbol]) {\n // this branch matches when the new and old elements are at the same index\n // if the key of both is null or undefined, that match is correct\n newChildNode = updateElement(\n newChildDef,\n isValidCurChildNode(curChildNode) ? curChildNode : null,\n el.namespaceURI ?? null\n );\n } else if (hasKey(newChildDef) && curKeyMap.has(newChildDef.key)) {\n // this branch matches when the new element has a key and there \n // is an old element with the same key, even if they are at different indices\n const keyChildNode = curKeyMap.get(newChildDef.key);\n const isChild = keyChildNode && keyChildNode.parentNode === el;\n const isDOM = keyChildNode && DOMElementSymbol in keyChildNode && keyChildNode[DOMElementSymbol] === true;\n newChildNode = updateElement(\n newChildDef,\n (isChild && !isDOM) ? (keyChildNode as Element) : null,\n el.namespaceURI ?? null\n );\n } else {\n // the keys don't match, so not valid to update.\n newChildNode = updateElement(\n newChildDef,\n null,// isValidCurChildNode(curChildNode) ? curChildNode : null,\n el.namespaceURI ?? null\n );\n }\n if (hasKey(newChildDef)) {\n //TODO: add warning with ancestor info, etc.\n if (newKeyMap.has(newChildDef.key))\n console.warn(\"Duplicate key detected:\", newChildDef.key, newChildDef);\n\n else\n newKeyMap.set(newChildDef.key, newChildNode as Element);\n }\n } else if (newChildDef === null || newChildDef === undefined || newChildDef === false) {\n newChildNode = \"\";\n } else {\n\n // 2026-07-22: Removed the trailing space that somehow crept in\n newChildNode = String(newChildDef);\n }\n newChildNodes[i] = newChildNode;\n }\n replaceChildren(el, newChildNodes);\n } else {\n replaceChildren(el, []);\n }\n}\nfunction isValidCurChildNode(e: (ChildNode & {\n [OwnKeySymbol]?: JSX.KeyPrimitive;\n [DOMElementSymbol]?: boolean;\n}) | null): e is Element & typeof e {\n return !!e && e.nodeType === e.ELEMENT_NODE && !e[DOMElementSymbol];\n}\nfunction hasKey(newChildDef: JSX.Element) {\n return typeof newChildDef.key === \"string\" || typeof newChildDef.key === \"number\";\n}\nfunction replaceChildren(el: ParentNode, newChildNodes: (ChildNode | string)[]) {\n const removed = new Set<ChildNode>();\n for (let i = 0, j = 0; i < newChildNodes.length; i++) {\n const newChildNode = typeof newChildNodes[i] === \"string\"\n ? document.createTextNode(newChildNodes[i] as string)\n : (newChildNodes[i] as ChildNode);\n removed.delete(newChildNode);\n if (!newChildNode) continue;\n const curChildNode = el.childNodes[j];\n if (newChildNode === curChildNode\n || newChildNode && curChildNode\n && newChildNode.nodeType === newChildNode.TEXT_NODE\n && curChildNode.nodeType === curChildNode.TEXT_NODE\n && newChildNode.textContent === curChildNode.textContent) { j++; continue; }\n if (curChildNode) {\n const oldChildNode = el.replaceChild(newChildNode, curChildNode);\n if (oldChildNode !== newChildNode) removed.add(oldChildNode);\n } else {\n el.appendChild(newChildNode);\n }\n j++;\n }\n while (el.childNodes.length > newChildNodes.length) {\n observerCallbacks.delete(el.lastChild as Element);\n el.removeChild(el.lastChild!);\n }\n removed.forEach((node) => {\n if (node.parentElement === el)\n throw new Error(\"Node to be removed is still a child of the parent.\");\n observerCallbacks.delete(node as Element);\n });\n}\nfunction isNodeTypeValidUpdate(node: Element | null, def: JSX.Element, namespace: string | null) {\n if (node === null) return false;\n return (\n typeof def.type === \"string\"\n && node.nodeName === def.type\n && node.namespaceURI === namespace\n || typeof def.type === \"function\"\n && node instanceof def.type\n );\n}\n\n\nfunction isJSXElement(newChildDef: JSX.Node): newChildDef is JSX.Element {\n if (!newChildDef) return false;\n return typeof newChildDef === \"object\" && \"$$type\" in newChildDef && newChildDef.$$type === JSXElementSymbol;\n}\nfunction isJSXDOMElement(newChildDef: JSX.Node): newChildDef is Element {\n if (!newChildDef) return false;\n return typeof newChildDef === \"object\" && newChildDef instanceof Element;\n}\nfunction isDOMText(e: Node | null): e is Text {\n return !!e && e.nodeType === e.TEXT_NODE;\n}\nfunction flattenArrayRecursive<T>(_arr: MaybeArray<T>[]): T[] {\n let arr = _arr as any[], len = 0;\n while (arr.length !== len) {\n len = arr.length;\n arr = arr.flat(10);\n }\n return arr;\n}\n", "\nexport class PromiseSubject<T> implements Promise<T> {\n #p: Promise<T>;\n #r!: (value: T | PromiseLike<T>) => void;\n #c!: (reason?: any) => void;\n constructor() {\n let r, c;\n this.#p = new Promise((resolve, reject) => {\n r = resolve;\n c = reject;\n });\n this.#r = r!;\n this.#c = c!;\n }\n resolve(value: T | PromiseLike<T>) {\n this.#r(value);\n }\n reject(reason?: any) {\n this.#c(reason);\n }\n\n then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2> {\n return this.#p.then(onfulfilled, onrejected);\n }\n catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined): Promise<T | TResult> {\n return this.#p.catch(onrejected);\n }\n finally(onfinally?: (() => void) | null | undefined): Promise<T> {\n return this.#p.finally(onfinally);\n }\n\n [Symbol.toStringTag] = \"PromiseSubject\";\n\n}\n\nexport interface HybridRef<T> {\n (value: T): void;\n current: T | undefined;\n value: T | undefined;\n readonly callbacks: ((value: T) => void)[];\n readonly next: PromiseSubject<T>;\n readonly current_: PromiseSubject<T>;\n}\n\nexport const createHybridRef = <T>(init?: T): HybridRef<T> => {\n\n return new Proxy<HybridRef<T>>((() => {\n function target(value: T) {\n target.current = value;\n target.callbacks.forEach(cb => { try { cb(value) } catch (e) { console.error(e); } });\n target.next.resolve(value);\n (target as MutableForced<typeof target>).next = new PromiseSubject();\n if (value != null) {\n (target as MutableForced<typeof target>).current_ = new PromiseSubject();\n target.current_.resolve(value);\n }\n }\n target.current = init;\n target.next = new PromiseSubject<T>();\n target.current_ = new PromiseSubject<T>();\n target.callbacks = [] as ((value: T) => void)[];\n Object.seal(target);\n return target as any;\n })(), {\n apply(target, _thisArg, [value]) {\n target(value);\n },\n get(target, prop, _receiver) {\n if (prop === \"current\" || prop === \"value\") {\n return target.current;\n }\n if (prop === \"next\") {\n return target.next;\n }\n if (prop === \"current_\") {\n return target.current_;\n }\n if (prop === \"callbacks\") {\n return target.callbacks;\n }\n return undefined;\n },\n set(target, prop, value, _receiver) {\n if (prop === \"current\" || prop === \"value\") {\n target(value);\n return true;\n }\n return false;\n },\n });\n};\n\nexport function is<T>(a: any, b: boolean): a is T { return b; }\nexport function truthy<T>(value: T | null | undefined | \"\" | 0 | false | void): value is T {\n return value !== null && value !== undefined;\n}\n\nexport type MaybeArray<T> = T | T[];\nexport type MaybeArrayDeep<T> = T | MaybeArrayDeep<T>[];\n\nexport type MutableForced<T> = T extends null | boolean | string | number | undefined ? T : MutableForcedObject<T>;\nexport type MutableForcedObject<T> = { -readonly [K in keyof T]: MutableForced<T[K]>; };", "import type * as htmljsx from 'html-jsx';\nimport { JSXElementSymbol } from \"./jsx-render\";\nimport { MaybeArray, MaybeArrayDeep, is } from \"./jsx-utils\";\nexport { render, updateElement } from \"./jsx-render\";\nexport * from \"./jsx-utils\";\n\nexport const Fragment = () => {\n throw new Error(\"Fragment is a placeholder and should not be called directly.\");\n};\n\ntype DOMElement = Element;\n\n//@ts-expect-error - MyCustomElements must not be declared inside the JSX namespace.\ntype ERROR_CustomElements_MUST_NEVER_EXIST = JSX.MyCustomElements;\n//@ts-expect-error - MyCustomElement (singular) is a typo.\ntype ERROR_CustomElement_MUST_NEVER_EXIST = MyCustomElement;\n\ndeclare global {\n export interface MyCustomElements { }\n export interface MyCustomEvents extends HTMLElementEventMap { }\n\n /**\n * The JSX namespace defines the types for JSX elements, attributes, and event handlers.\n * \n * ```\n * declare global {\n * interface MyCustomElements {\n * 'mws-app': JSX.SimpleAttrs<{\n * test: string;\n * }, App>;\n * }\n * }\n * ```\n */\n export namespace JSX {\n export type KeyPrimitive = symbol | string | number | null | undefined;\n /** DOM elements passed directly as children will be inserted, not cloned. */\n export type Node = JSX.Element | JSX.Primitive | DOMElement;\n export type Primitive = string | number | boolean | null | undefined;\n export type Ref<T extends Element = Element> = (e: T) => void;\n\n export interface Element {\n $$type: typeof JSXElementSymbol;\n type: string | Function;\n props: { children?: JSX.Node[]; } & Record<string, unknown>;\n key?: KeyPrimitive;\n }\n\n\n\n\n export interface EventHandler<T extends DOMElement, E extends Event> extends htmljsx.EventHandler<T, E> { }\n /** \n * Restricts what element types are allowed. \n * \n * Lowercase first letter gets converted to a string by JSX.\n * \n * Uppercase first letter is expected to be a reference.\n * \n * We use HTMLElement here only, because elsewhere the types also include the string resolved types.\n */\n export type ElementType = string | { new(): HTMLElement };\n export interface ElementClass extends DOMElement { }\n export interface ElementAttributesProperty { props: IntrinsicAttributes; }\n export interface ElementChildrenAttribute { children: {}; }\n\n export type IntrinsicWatchAttributes = {\n [K in `webjsx-watch-${string}`]?: { get?(): string | null; set?(value: string | null): void; }\n }\n export interface IntrinsicAttributes {\n key?: KeyPrimitive;\n children?: MaybeArrayDeep<JSX.Node>;\n style?: string | CSSStyleDeclaration | Record<string, string>;\n className?: string;\n class?: string;\n slot?: string;\n id?: string;\n /** Tells JSX not to reconcile the non-shadow children of this element which it would normally reconcile. */\n \"webjsx-donotdescend\"?: boolean;\n }\n\n export interface BaseAttrs<E extends DOMElement> extends\n IntrinsicWatchAttributes,\n IntrinsicAttributes,\n Internal.JSXEventsMap<MyCustomEvents, \"on\", E>,\n Omit<htmljsx.HTMLAttributes<E>, Internal.IgnoredProperties>,\n Internal.WebjsxAttrString {\n ref?: (e: E) => void;\n \"contenteditable\"?: \"true\" | \"false\" | boolean;\n }\n\n /** Used alongside `MyCustomElements` */\n export type SimpleAttrs<T, E extends DOMElement> =\n & Internal.AddWatched<{\n [P in keyof T as P extends Internal.IgnoredProperties ? never : P]?: Extract<T[P], Primitive>\n }>\n & BaseAttrs<E>;\n\n /** \n * For lowercase (tag names), BOTH simple and custom, C is `(props: P) => JSX.Element`. \n * For uppercase (references), C is the constructor type, \n * whether that's a class or a function. \n * \n * It's useful for accessing static members.\n */\n export type LibraryManagedAttributes<C, P> = P;\n // C extends { new(): infer E extends HTMLElement }\n // ? P & IntrinsicAttributes & { ref?: (e: E) => void; }\n // : P;\n /** \n * lowercase tags and function types do not use this. \n * For class types this is the instance type. \n */\n export interface IntrinsicClassAttributes<T extends DOMElement>\n extends Internal.JSXEventsMap<MyCustomEvents, \"webjsx-on-\", T> {\n ref?: (e: T) => void;\n }\n\n // export interface HTMLAttributes<E extends HTMLElement> extends htmljsx.HTMLAttributes<E> { }\n // export interface DOMAttributes<E extends HTMLElement> extends htmljsx.DOMAttributes<E> { }\n // export interface SVGAttributes<E extends HTMLElement> extends htmljsx.SVGAttributes<E> { }\n\n\n\n // properties specific to Reference \n // export interface IntrinsicClassAttributes<T extends ElementClass>\n // extends IntrinsicAttributes<T>,\n // ToAttr<htmljsx.HTMLAttributes<T>> { }\n\n /** \n * This interface is expected to conform to the following format.\n * \n * ```ts\n * { [tagName: string]: { \n * [attrName: `on${string}`]?: EventHandler\n * [attrName: string]?: string | number | boolean | null | undefined \n * }}\n * ```\n * \n * `webjsx-watch-${keyof T}` and `webjsx-attr-${string}` are added automatically\n * \n * types set for `\"style\"`, `\"class\"`, `\"className\"`, `\"children\"`, `\"key\"`, `\"xmlns\"`, `\"slot\"`, and `\"id\"` are ignored\n * \n * type set for `\"ref\"` will be used for `Ref<T>`\n * \n * all attributes are always optional\n * \n */\n\n export interface IntrinsicElements extends MyCustomElements { }\n export interface IntrinsicElements extends Internal.ElementsModified<htmljsx.IntrinsicElements> { }\n export interface IntrinsicElements extends Internal.IconElements { }\n\n\n namespace Internal {\n\n\n\n\n type IgnoredProperties = \"slot\" | \"id\" | \"style\" | \"class\" | \"className\" | \"children\" | \"key\" | \"ref\" | \"xmlns\" | \"contenteditable\" | `on${string}`;\n\n\n\n /**\n * T extends { [tagName: string]: { [attributeName: string]: string; }}\n */\n type ElementsModified<T> = {\n [K in keyof T]:\n T[K] extends htmljsx.DOMAttributes<infer E extends DOMElement> ? SimpleAttrs<T[K], E> :\n T[K] extends { ref?: (e: infer E extends DOMElement) => any } ? SimpleAttrs<T[K], E> :\n K extends keyof HTMLElementTagNameMap ? SimpleAttrs<T[K], HTMLElementTagNameMap[K]> :\n SimpleAttrs<T[K], DOMElement>;\n }\n\n\n\n\n type WebjsxAttrString = { [K in `webjsx-attr-${string}`]?: string };\n\n type AddWatched<T> = T\n & {\n [K in `webjsx-watch-${string & keyof T}`]?:\n K extends `webjsx-watch-${infer U extends string & keyof T}`\n ? { get?(): T[U]; set?(value: T[U]): void; }\n : never;\n }\n\n type ToAttr<T> = {\n [P in `webjsx-attr-${string & keyof T} ` as P extends `webjsx-attr-on${string} ` ? never : P]?:\n Primitive;\n } & {\n [P in `webjsx-attr-${string & keyof T} ` as P extends `webjsx-attr-on${string} ` ? P : never]?:\n T[P extends `webjsx-attr-${infer U extends string & keyof T} ` ? U : never];\n }\n\n type IconElements = {\n [K in keyof HTMLElementTagNameMap as K extends `mdui-icon-${string}` ? K : never]:\n htmljsx.HTMLAttributes<HTMLElementTagNameMap[K]>\n };\n\n type JSXEventsMap<EV extends object, PREFIX extends string, T extends DOMElement> = {\n [K in string & keyof EV as `${PREFIX}${K}`]?:\n EventHandler<T, Extract<EV[K], Event>>;\n }\n\n\n\n }\n\n }\n}\n\n\n\n/**\n * JSX transform factory function.\n * @param type Element type or component\n * @param props Element properties\n * @param key Optional key for element identification\n * @returns Virtual element\n */\nexport function jsx(\n type: string | Function,\n props: Record<string, unknown> | null,\n key: JSX.KeyPrimitive\n): MaybeArray<JSX.Node> {\n\n props ??= {};\n\n if (!Array.isArray(props.children))\n props.children = [props.children];\n else\n props.children = props.children.flat(Infinity);\n // fix types\n if (!is<{ children: any[] }>(props, true)) throw new Error();\n\n if (type === Fragment) return props.children;\n\n if (typeof type === \"string\") type = type.toUpperCase();\n\n return { $$type: JSXElementSymbol, type, props, key };\n\n}\n\n/**\n * JSX transform factory for elements with multiple children.\n * Functionally identical to jsx() in this implementation.\n */\nexport function jsxs(\n type: string | Function,\n props: Record<string, unknown> | null,\n key: JSX.KeyPrimitive\n) {\n return jsx(type, props, key);\n}\n\n/**\n * Development mode JSX transform factory.\n * Currently identical to jsx() in this implementation.\n */\nexport function jsxDEV(\n type: string | Function,\n props: Record<string, unknown> | null,\n key: JSX.KeyPrimitive\n) {\n return jsx(type, props, key);\n}\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass<T>(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove<T>(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n */\nexport class Subscription implements SubscriptionLike {\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude<TeardownLogic, void>[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude<TeardownLogic, void>): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "\nconst listeners = new WeakMap<Element, Set<{ requestUpdate(): void }>>();\nconst debounces = new WeakMap<Element, any>();\nconst resizeObserver = new ResizeObserver((entries) => {\n entries.forEach(entry => {\n if (debounces.has(entry.target)) clearTimeout(debounces.get(entry.target));\n debounces.set(entry.target, setTimeout(() => {\n debounces.delete(entry.target);\n const listenArr = listeners.get(entry.target) || [];\n listenArr.forEach(e => e.requestUpdate());\n }, 100));\n });\n});\n\nexport const observeResize = (target: Element, listener: { requestUpdate(): void }) => {\n const listenSet = listeners.get(target) ?? listeners.set(target, new Set()).get(target)!;\n listenSet.add(listener);\n resizeObserver.observe(target);\n}\nexport const unobserveResize = (target: Element, listener: { requestUpdate(): void }) => {\n const listenSet = listeners.get(target);\n if (!listenSet) return;\n listenSet.delete(listener);\n if (listenSet.size === 0) {\n resizeObserver.unobserve(target);\n listeners.delete(target);\n }\n}", "@media (prefers-color-scheme: light) {\n\thtml {\n\t\tcolor-scheme: light;\n\t\t--color-text-base: #1f2933;\n\t\t--color-text-strong: #18212b;\n\t\t--color-text-muted: #536171;\n\t\t--color-text-soft: #5d6978;\n\t\t--color-text-subtle: #687585;\n\t\t--color-text-faint: #6c7887;\n\t\t--color-text-fainter: #7a8794;\n\t\t--color-text-on-accent: #18212b;\n\t\t--color-text-heading: #5d4716;\n\t\t--color-accent-eyebrow: #916c17;\n\t\t--color-accent-label: #7b6330;\n\t\t--color-accent-heading: #846523;\n\t\t--color-accent-meta: #8b6d2d;\n\t\t--color-accent-button-text: #5d4716;\n\t\t--color-accent-pill-text: #654f20;\n\t\t--color-accent-row-action-text: #6f5621;\n\t\t--color-accent-select-arrow: #6d5a2a;\n\t\t--color-accent-track: #c5872b;\n\t\t--color-accent-track-soft: #d4a53d;\n\t\t--color-accent-track-mid: #e4bf6b;\n\t\t--color-accent-fill: hsl(39.23deg 75.79% 74.61%);\n\t\t--color-danger: #9f3a2a;\n\t\t--color-white: #fff;\n\t\t--color-white-solid: #ffffff;\n\t\t--color-surface-page-top: #f7f4ed;\n\t\t--color-surface-page-mid: #f2efe7;\n\t\t--color-surface-page-bottom: #ece8dd;\n\t\t--color-surface-panel: rgba(255, 252, 246, 0.88);\n\t\t--color-surface-panel-strong: rgba(255, 252, 246, 0.92);\n\t\t--color-surface-tab: hsla(40, 100%, 98%, 0.78);\n\t\t--color-surface-stat: rgba(255, 255, 255, 0.82);\n\t\t--color-surface-modal: #fffdf7;\n\t\t--color-surface-modal-header-top: #fcf7ed;\n\t\t--color-surface-modal-header-bottom: #f6f0e4;\n\t\t--color-surface-sidebar: #f8f3e8;\n\t\t--color-surface-card: #fff;\n\t\t--color-surface-field: #f7f3ea;\n\t\t--color-surface-summary-note: rgba(255, 249, 238, 0.96);\n\t\t--color-surface-ghost-button: #efe6d5;\n\t\t--color-surface-row-action: #efe8d9;\n\t\t--color-surface-pill: #f2ead8;\n\t\t--color-surface-input: #fffdf9;\n\t\t--color-surface-input-focus: #ffffff;\n\t\t--color-surface-disabled: #e2e5e9;\n\t\t--color-surface-resolver-stat: rgba(255, 255, 255, 0.72);\n\t\t--color-surface-list-header: #f4efe4;\n\t\t--color-surface-list-even: rgba(244, 239, 228, 0.45);\n\t\t--color-surface-list-hover: rgba(230, 216, 183, 0.34);\n\t\t--color-overlay-modal: rgba(24, 33, 43, 0.52);\n\t\t--color-decor-top-left: rgba(244, 201, 93, 0.18);\n\t\t--color-decor-top-right: rgba(46, 134, 171, 0.16);\n\t\t--color-border-soft: rgba(31, 41, 51, 0.08);\n\t\t--color-border-input: rgba(31, 41, 51, 0.16);\n\t\t--color-border-disabled: rgba(31, 41, 51, 0.12);\n\t\t--color-border-accent-soft: rgba(145, 108, 23, 0.18);\n\t\t--color-border-accent-focus: rgba(145, 108, 23, 0.65);\n\t\t--color-border-danger: rgba(159, 58, 42, 0.72);\n\t\t--color-shadow-card: rgba(67, 54, 28, 0.08);\n\t\t--color-shadow-card-soft: rgba(67, 54, 28, 0.06);\n\t\t--color-shadow-button: rgba(67, 54, 28, 0.12);\n\t\t--color-shadow-thumb: rgba(24, 33, 43, 0.18);\n\t\t--color-fill-loading-bar: rgba(145, 108, 23, 0.14);\n\t\t--color-fill-track: rgba(123, 99, 48, 0.25);\n\t\t--color-ring-accent: rgba(145, 108, 23, 0.12);\n\t\t--color-ring-danger: rgba(159, 58, 42, 0.12);\n\t\tcolor: var(--color-text-base);\n\t}\n}\n\n@media (prefers-color-scheme: dark) {\n\thtml {\n\t\tcolor-scheme: dark;\n\t\t--color-text-base: #d8e1ea;\n\t\t--color-text-strong: #f3f6f8;\n\t\t--color-text-muted: #b4c0cb;\n\t\t--color-text-soft: #9ca9b7;\n\t\t--color-text-subtle: #8f9ca9;\n\t\t--color-text-faint: #81909e;\n\t\t--color-text-fainter: #738292;\n\t\t--color-text-on-accent: #e7bf63;\n\t\t--color-text-heading: #f3e6c5;\n\t\t--color-accent-eyebrow: #e7bf63;\n\t\t--color-accent-label: #d6ba7a;\n\t\t--color-accent-heading: #e3c983;\n\t\t--color-accent-meta: #cdb06b;\n\t\t--color-accent-button-text: #f3e6c5;\n\t\t--color-accent-pill-text: #f4ead2;\n\t\t--color-accent-row-action-text: #f1e4c7;\n\t\t--color-accent-select-arrow: #c9b27a;\n\t\t--color-accent-track: #d0a24a;\n\t\t--color-accent-track-soft: #9e7731;\n\t\t--color-accent-track-mid: #bc8d3f;\n\t\t--color-accent-fill: hsl(210deg 40% 24%);\n\t\t--color-danger: #f08b7d;\n\t\t--color-white: #fff;\n\t\t--color-white-solid: #ffffff;\n\t\t--color-surface-page-top: #11161c;\n\t\t--color-surface-page-mid: #151c24;\n\t\t--color-surface-page-bottom: #1b232c;\n\t\t--color-surface-panel: rgba(22, 29, 36, 0.88);\n\t\t--color-surface-panel-strong: rgba(22, 29, 36, 0.94);\n\t\t--color-surface-tab: hsl(210deg 20% 15%);\n\t\t--color-surface-stat: rgba(36, 45, 54, 0.88);\n\t\t--color-surface-modal: #182028;\n\t\t--color-surface-modal-header-top: #202a34;\n\t\t--color-surface-modal-header-bottom: #1a222b;\n\t\t--color-surface-sidebar: #212b35;\n\t\t--color-surface-card: #202932;\n\t\t--color-surface-field: #26313b;\n\t\t--color-surface-summary-note: rgba(37, 47, 58, 0.96);\n\t\t--color-surface-ghost-button: hsl(208, 20%, 25%);\n\t\t--color-surface-row-action: #394754;\n\t\t--color-surface-pill: #3f3424;\n\t\t--color-surface-input: #121920;\n\t\t--color-surface-input-focus: #0f151b;\n\t\t--color-surface-disabled: #2e3842;\n\t\t--color-surface-resolver-stat: rgba(30, 38, 47, 0.9);\n\t\t--color-surface-list-header: #2a3440;\n\t\t--color-surface-list-even: rgba(36, 45, 54, 0.58);\n\t\t--color-surface-list-hover: rgba(67, 83, 97, 0.58);\n\t\t--color-overlay-modal: rgba(4, 8, 12, 0.72);\n\t\t--color-decor-top-left: rgba(208, 162, 74, 0.18);\n\t\t--color-decor-top-right: rgba(81, 154, 190, 0.18);\n\t\t--color-border-soft: rgba(216, 225, 234, 0.1);\n\t\t--color-border-input: rgba(216, 225, 234, 0.18);\n\t\t--color-border-disabled: rgba(216, 225, 234, 0.1);\n\t\t--color-border-accent-soft: rgba(208, 162, 74, 0.24);\n\t\t--color-border-accent-focus: rgba(231, 191, 99, 0.72);\n\t\t--color-border-danger: rgba(240, 139, 125, 0.8);\n\t\t--color-shadow-card: rgba(0, 0, 0, 0.32);\n\t\t--color-shadow-card-soft: rgba(0, 0, 0, 0.24);\n\t\t--color-shadow-button: rgba(0, 0, 0, 0.28);\n\t\t--color-shadow-thumb: rgba(0, 0, 0, 0.34);\n\t\t--color-fill-loading-bar: rgba(208, 162, 74, 0.16);\n\t\t--color-fill-track: rgba(231, 191, 99, 0.28);\n\t\t--color-ring-accent: rgba(231, 191, 99, 0.16);\n\t\t--color-ring-danger: rgba(240, 139, 125, 0.18);\n\t\tcolor: var(--color-text-base);\n\t}\n}\n\n* {\n\tbox-sizing: border-box;\n}\n\nmaterial-symbol svg {\n\tfill: currentColor;\n}\n\nbutton,\ninput,\nselect,\ntextarea {\n\tfont: inherit;\n}\n\n.admin-shell {\n\tmin-height: 100vh;\n\tpadding: 32px;\n\tbackground:\n\t\tradial-gradient(circle at top left, var(--color-decor-top-left) 0, transparent 30vw),\n\t\tradial-gradient(circle at top right, var(--color-decor-top-right) 0, transparent 26vw),\n\t\tlinear-gradient(180deg, var(--color-surface-page-top) 0vh, var(--color-surface-page-mid) 48vh, var(--color-surface-page-bottom) 100%);\n}\n\n.hero-panel,\n.list-panel,\n.modal-card,\n.field-card,\n.field-index,\n.tab-button {\n\tborder: 1px solid var(--color-border-soft);\n\tbox-shadow: 0 18px 40px var(--color-shadow-card);\n}\n\n.hero-panel {\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 1.8fr) minmax(280px, 1fr);\n\tgap: 24px;\n\tpadding: 28px;\n\tborder-radius: 28px;\n\tbackground-color: var(--color-surface-panel);\n\tbackground-image: url(\"./fish2.svg\");\n\tbackground-position: center;\n\tbackground-repeat: no-repeat;\n\tbackground-size: contain;\n\tbackdrop-filter: blur(12px);\n\tbackground-blend-mode: overlay;\n\tbackground-position: center calc(50% + 12px);\n}\n\n.hero-panel-content {\n\tdisplay: grid;\n\talign-content: start;\n}\n\n.eyebrow {\n\tmargin: 0 0 8px;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.18em;\n\tfont-size: 0.72rem;\n\tcolor: var(--color-accent-eyebrow);\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n\tcolor: var(--color-text-heading);\n}\n\n.hero-panel h1,\n.section-header h2,\n.modal-header h3,\n.field-card h4,\n.field-index h4 {\n\tmargin: 0;\n\tfont-family: Georgia, \"Times New Roman\", serif;\n\tfont-weight: 600;\n\tletter-spacing: -0.03em;\n}\n\n.hero-panel h1 {\n\tfont-size: clamp(2.4rem, 4vw, 4rem);\n\tline-height: 0.98;\n\tmax-width: 10ch;\n}\n\n.hero-copy,\n.section-copy,\n.modal-header p,\n.list-toolbar p,\n.field-architecture p,\n.field-card-header p,\n.hero-account-name,\n.list-cell,\n.field-index li,\n.field-value pre {\n\tmargin: 0;\n\tcolor: var(--color-text-muted);\n}\n\n.hero-copy {\n\tmargin-top: 16px;\n\tmax-width: 62ch;\n\tline-height: 1.6;\n\tfont-size: 1rem;\n}\n\n.hero-account-shell {\n\tjustify-self: end;\n\talign-self: start;\n\tposition: relative;\n}\n\n.hero-account-menu {\n\tposition: relative;\n}\n\n.hero-account-trigger {\n\tlist-style: none;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 10px;\n\tpadding: 10px 12px 10px 14px;\n\tborder-radius: 999px;\n\tborder: 1px solid var(--color-border-soft);\n\tbackground: var(--color-surface-stat);\n\tcursor: pointer;\n\tuser-select: none;\n}\n\n.hero-account-trigger::-webkit-details-marker {\n\tdisplay: none;\n}\n\n.hero-account-name {\n\tfont-weight: 600;\n\tcolor: var(--color-text-strong);\n}\n\n.hero-account-icon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 28px;\n\theight: 28px;\n\tborder-radius: 999px;\n\tbackground: var(--color-surface-ghost-button);\n\tcolor: var(--color-accent-heading);\n\toverflow: hidden;\n}\n\n.hero-account-icon img {\n\tdisplay: block;\n\twidth: 100%;\n\theight: 100%;\n\tobject-fit: cover;\n}\n\n.hero-account-icon material-symbol {\n\tdisplay: inline-flex;\n\twidth: 20px;\n\theight: 20px;\n}\n\n.hero-account-icon material-symbol svg {\n\twidth: 20px;\n\theight: 20px;\n\tfill: currentColor;\n}\n\n.hero-account-dropdown {\n\tposition: absolute;\n\tright: 0;\n\ttop: calc(100% + 8px);\n\tmin-width: 180px;\n\tdisplay: grid;\n\tgap: 4px;\n\tpadding: 8px;\n\tborder-radius: 14px;\n\tborder: 1px solid var(--color-border-soft);\n\tbackground: var(--color-surface-card);\n\tbox-shadow: 0 18px 40px var(--color-shadow-card);\n\tz-index: 10;\n}\n\n.hero-account-action {\n\tborder: 0;\n\tborder-radius: 10px;\n\tpadding: 10px 12px;\n\ttext-align: left;\n\tbackground: transparent;\n\tcolor: var(--color-text-strong);\n\tcursor: pointer;\n}\n\n.hero-account-action:hover,\n.hero-account-action:focus-visible {\n\tbackground: var(--color-surface-field);\n}\n\n.tab-strip {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 12px;\n\tmargin-top: 24px;\n\tpadding-bottom: 4px;\n}\n\n.tab-button {\n\tmin-width: 160px;\n\tpadding: 16px 18px;\n\tborder-radius: 18px;\n\tbackground: var(--color-surface-tab);\n\tcursor: pointer;\n\ttext-align: left;\n}\n\n.tab-button span,\n.tab-button small {\n\tdisplay: block;\n}\n\n.tab-button span {\n\tcolor: var(--color-text-strong);\n\tfont-weight: 700;\n}\n\n.tab-button small {\n\tmargin-top: 6px;\n\tcolor: var(--color-text-faint);\n}\n\n.tab-button.is-active {\n\tbackground: var(--color-accent-fill);\n}\n\n.tab-button.is-active span,\n.tab-button.is-active small {\n\tcolor: var(--color-text-on-accent);\n}\n\n.section-header {\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 320px) minmax(0, 1fr) max-content;\n\tgap: 20px;\n\talign-items: end;\n\tmargin-top: 26px;\n\tmargin-bottom: 16px;\n}\n\n.section-copy {\n\tline-height: 1.65;\n}\n\n.list-panel {\n\tborder-radius: 26px;\n\tbackground: var(--color-surface-panel-strong);\n\toverflow: hidden;\n}\n\n.list-toolbar {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tgap: 16px;\n\talign-items: center;\n\tpadding: 20px 22px;\n\tborder-bottom: 1px solid var(--color-border-soft);\n}\n\n.list-toolbar strong {\n\tdisplay: block;\n\tmargin-bottom: 4px;\n\tcolor: var(--color-text-strong);\n}\n\n.toolbar-actions {\n\tdisplay: grid;\n\tgrid-auto-flow: column;\n\tgrid-auto-columns: max-content;\n\tgap: 10px;\n\tjustify-content: end;\n}\n\n.ghost-button,\n.close-button {\n\tborder: 0;\n\tcursor: pointer;\n}\n\n.ghost-button {\n\tpadding: 10px 14px;\n\tborder-radius: 999px;\n\tbackground: var(--color-surface-ghost-button);\n\tcolor: var(--color-accent-button-text);\n\twhite-space: nowrap;\n}\n\n.list-grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(9, minmax(120px, 1fr));\n}\n\n.list-grid-header {\n\tbackground: var(--color-surface-list-header);\n}\n\n.list-head {\n\tfont-size: 0.76rem;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.12em;\n\tcolor: var(--color-accent-heading);\n}\n\n.list-cell {\n\tpadding: 14px 16px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.list-cell-link {\n\tcolor: inherit;\n\ttext-decoration: underline;\n\ttext-underline-offset: 0.18em;\n\tdisplay:block;\n\t\n\ttext-overflow: ellipsis;\n}\n\n.list-body {\n\tdisplay: grid;\n}\n\n.list-row {\n\tpadding: 0;\n\tborder: 0;\n\tbackground: transparent;\n\ttext-align: left;\n\tcursor: pointer;\n}\n\n.list-row:nth-child(even) {\n\tbackground: var(--color-surface-list-even);\n}\n\n.list-row:hover {\n\tbackground: var(--color-surface-list-hover);\n}\n\nbody:has(.modal-shell[open]) {\n\toverflow: hidden\n}\n\n.modal-shell {\n\tposition: fixed;\n\tinset: 0;\n\tz-index: 1000;\n\tjustify-items: center;\n\talign-items: start;\n\tpadding: 28px;\n\tbackground: var(--color-overlay-modal);\n\tbackdrop-filter: blur(10px);\n\toverflow: clip;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.modal-card {\n\twidth: 100%;\n\tmax-height: calc(100vh - 56px);\n\tdisplay: flex;\n\tflex-direction: column;\n\tborder-radius: 28px;\n\toverflow: hidden;\n\tbackground: var(--color-surface-modal);\n}\n\n.login-card-header {\n\tdisplay: grid;\n\tgap: 10px;\n\tpadding: 28px 30px 20px;\n\tborder-bottom: 1px solid var(--color-border-soft);\n\tbackground: linear-gradient(180deg, var(--color-surface-modal-header-top) 0%, var(--color-surface-modal-header-bottom) 100%);\n}\n\n.login-card-title h3 {\n\tmargin: 0;\n\tfont-size: 2rem;\n}\n\n.login-card-copy {\n\tmargin: 10px 0 0;\n\tcolor: var(--color-text-muted);\n\tline-height: 1.55;\n}\n\n.login-card-meta {\n\tmargin: 8px 0 0;\n\tfont-size: 0.88rem;\n\tcolor: var(--color-text-soft);\n}\n\n.login-card-body {\n\tdisplay: grid;\n\tgap: 20px;\n\tpadding: 24px 30px 30px;\n}\n\n.login-fields {\n\tdisplay: grid;\n\tgap: 16px;\n}\n\n.login-field {\n\tdisplay: grid;\n\tgap: 8px;\n}\n\n.login-field-label {\n\tdisplay: block;\n\tfont-size: 0.92rem;\n\tfont-weight: 600;\n\tcolor: var(--color-text-strong);\n}\n\n.login-field-helper,\n.login-field .field-helper {\n\tmargin: 0;\n\tfont-size: 0.9rem;\n\tline-height: 1.5;\n\tcolor: var(--color-text-soft);\n}\n\n.login-field .field-input,\n.login-field .field-textarea,\n.login-field .field-select {\n\tbackground: var(--color-surface-input);\n\tborder-color: var(--color-border-input);\n}\n\n.login-options {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 16px;\n\tflex-wrap: wrap;\n\tpadding-top: 2px;\n}\n\n.login-checkbox {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 10px;\n\tcolor: var(--color-text-muted);\n\tfont-size: 0.95rem;\n\tcursor: pointer;\n}\n\n.login-checkbox-input {\n\twidth: 1rem;\n\theight: 1rem;\n\tmargin: 0;\n\taccent-color: var(--color-accent-track);\n\tcursor: pointer;\n}\n\n.login-link-button {\n\tpadding: 0;\n\tborder: 0;\n\tbackground: transparent;\n\tcolor: var(--color-accent-heading);\n\tfont-size: 0.95rem;\n\tfont-weight: 600;\n\tcursor: pointer;\n\ttext-decoration: underline;\n\ttext-underline-offset: 0.18em;\n}\n\n.login-link-button:hover,\n.login-link-button:focus-visible {\n\tcolor: var(--color-text-strong);\n}\n\n.login-link-button:disabled {\n\tcursor: not-allowed;\n\topacity: 0.6;\n}\n\n.login-feedback {\n\tpadding: 14px 16px;\n\tborder-radius: 16px;\n\tbackground: var(--color-surface-field);\n\tborder: 1px solid var(--color-border-soft);\n}\n\n.login-feedback p {\n\tmargin: 0;\n\tcolor: var(--color-text-muted);\n\tline-height: 1.55;\n}\n\n.login-actions {\n\tdisplay: grid;\n\tpadding-top: 4px;\n}\n\n.login-action-row {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, minmax(0, 1fr));\n\tgap: 12px;\n}\n\n.login-submit {\n\twidth: 100%;\n}\n\n.primary-button:disabled,\n.ghost-button:disabled {\n\tcursor: not-allowed;\n\tfilter: none;\n\tbox-shadow: none;\n\topacity: 0.55;\n}\n\n.primary-button:disabled {\n\tbackground: var(--color-surface-disabled);\n\tcolor: var(--color-text-soft);\n}\n\n.ghost-button:disabled {\n\tbackground: var(--color-surface-disabled);\n\tcolor: var(--color-text-soft);\n}\n\n.modal-header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 20px;\n\tpadding: 24px 26px;\n\tflex: 0 0 116px;\n\tmin-height: 116px;\n\tborder-bottom: 1px solid var(--color-border-soft);\n\tbackground: linear-gradient(180deg, var(--color-surface-modal-header-top) 0%, var(--color-surface-modal-header-bottom) 100%);\n}\n\nfooter.modal-header {\n\tborder-top: 1px solid var(--color-border-soft);\n\tborder-bottom: 0;\n}\n\n.modal-header h3 {\n\tmargin-bottom: 8px;\n\tfont-size: 2rem;\n}\n\n.modal-title {\n\tflex: 1;\n}\n\n.close-button {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 44px;\n\theight: 44px;\n\tborder-radius: 50%;\n\tbackground: var(--color-surface-ghost-button);\n\tcolor: var(--color-accent-button-text);\n\tpadding: 0;\n}\n\n.close-button material-symbol {\n\tdisplay: inline-flex;\n\twidth: 20px;\n\theight: 20px;\n}\n\n.close-button material-symbol svg {\n\twidth: 20px;\n\theight: 20px;\n}\n\n.error-close-button {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 36px;\n\theight: 36px;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: 50%;\n\tbackground: transparent;\n\tcolor: var(--color-accent-button-text);\n\tcursor: pointer;\n\tflex: 0 0 auto;\n}\n\n.error-close-button:hover,\n.error-close-button:focus-visible {\n\tbackground: var(--color-surface-ghost-button);\n}\n\n.error-close-button material-symbol {\n\tdisplay: inline-flex;\n\twidth: 18px;\n\theight: 18px;\n}\n\n.error-close-button material-symbol svg {\n\twidth: 18px;\n\theight: 18px;\n}\n\n.modal-layout {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 22px;\n\tpadding: 24px;\n\tflex: 1 1 auto;\n\tmin-height: 0;\n\toverflow: auto;\n}\n\n.modal-loading-shell {\n\tdisplay: grid;\n\tgap: 18px;\n\tpadding: 32px 26px 36px;\n\tflex: 1 1 auto;\n\tmin-height: 0;\n\toverflow: auto;\n\talign-content: start;\n}\n\n.modal-loading-bar {\n\tposition: relative;\n\theight: 12px;\n\tborder-radius: 999px;\n\toverflow: hidden;\n\tbackground: var(--color-fill-loading-bar);\n\tborder: 1px solid var(--color-border-accent-soft);\n}\n\n.modal-loading-bar span {\n\tdisplay: block;\n\twidth: 38%;\n\theight: 100%;\n\tborder-radius: inherit;\n\tbackground: linear-gradient(90deg, var(--color-accent-track-soft) 0%, var(--color-accent-track-mid) 48%, var(--color-accent-track) 100%);\n\ttransform: translate3d(-120%, 0, 0);\n\tanimation: modal-loading-slide 1.2s ease-in-out infinite;\n\twill-change: transform;\n}\n\n.modal-loading-copy {\n\tmargin: 0;\n\tcolor: var(--color-text-soft);\n\tline-height: 1.6;\n}\n\n@keyframes modal-loading-slide {\n\t0% {\n\t\ttransform: translate3d(-120%, 0, 0);\n\t}\n\n\t100% {\n\t\ttransform: translate3d(280%, 0, 0);\n\t}\n}\n\n.modal-sidebar {\n\tflex: 0 0 260px;\n\twidth: 260px;\n\tmax-width: 100%;\n\tposition: sticky;\n\ttop: 0;\n\talign-self: start;\n\tdisplay: grid;\n\tgap: 0;\n\tpadding: 20px;\n\tborder-radius: 20px;\n\tbackground: var(--color-surface-sidebar);\n\toverflow: hidden;\n}\n\n.sidebar-section {\n\tpadding: 0;\n}\n\n.modal-sidebar > * + * {\n\tmargin-top: 16px;\n\tpadding-top: 16px;\n\tborder-top: 1px solid var(--color-border-soft);\n}\n\n.sidebar-section > h4 {\n\tline-height: 1.2;\n}\n\n.sidebar-section > .sidebar-section-body {\n\tmargin-top: 10px;\n}\n\n.sidebar-section > .sidebar-section-body > .field-value {\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: 0;\n\tbackground: transparent;\n}\n\n.sidebar-section > .sidebar-section-body > .field-value pre {\n\tmargin: 0;\n\twhite-space: pre-wrap;\n}\n\n.sidebar-section > .sidebar-section-body > .field-value ul,\n.sidebar-section > .sidebar-section-body > .value-list,\n.sidebar-section > .sidebar-section-body > .timeline-list,\n.sidebar-section > .sidebar-section-body > .value-ordered-list {\n\tmargin: 0;\n\tpadding-left: 18px;\n}\n\n.sidebar-section > .sidebar-section-body > .summary-listing {\n\tmargin-top: 0;\n}\n\n.sidebar-section > .sidebar-section-body > .dependency-list {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n}\n\n.sidebar-section > .sidebar-section-body > .dependency-list li {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 10px;\n}\n\n.sidebar-section > .sidebar-section-body > .dependency-list li.is-missing {\n\tdisplay: flex;\n\tflex-direction: row;\n\tcolor: var(--color-danger);\n\tfont-weight: 600;\n}\n\n.missing-marker {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 2px;\n\tborder-radius: 999px;\n\tbackground: transparent;\n\tflex-shrink: 0;\n}\n\n.field-index .missing-marker {\n\tcolor: inherit;\n}\n\n.missing-marker material-symbol {\n\tdisplay: inline-flex;\n\twidth: 18px;\n\theight: 18px;\n\tflex-shrink: 0;\n}\n\n.missing-marker material-symbol svg {\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: block;\n\tfill: currentColor;\n}\n\n.field-index ul {\n\tmargin: 14px 0 0;\n\tpadding-left: 18px;\n\tlist-style: disc;\n\tdisplay: grid;\n\tgap: 8px;\n}\n\n.summary-card {\n\tpadding: 20px;\n\tborder-radius: 20px;\n\tbackground: var(--color-surface-sidebar);\n\tborder: 1px solid var(--color-border-soft);\n\tbox-shadow: 0 14px 30px var(--color-shadow-card-soft);\n}\n\n.summary-card-note {\n\tbackground: var(--color-surface-summary-note);\n}\n\n.summary-listing {\n\tmargin: 16px 0 0;\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 1fr);\n\tgap: 10px;\n}\n\n.summary-listing dt {\n\tfont-size: 0.76rem;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.1em;\n\tcolor: var(--color-accent-meta);\n}\n\n.summary-listing dd {\n\tmargin: 4px 0 0;\n\tcolor: var(--color-text-strong);\n\tline-height: 1.45;\n\tpadding-bottom: 10px;\n\tborder-bottom: 1px solid var(--color-border-soft);\n}\n\n.summary-listing dd:last-child {\n\tpadding-bottom: 0;\n\tborder-bottom: 0;\n}\n\n.prefix-bag-sidebar {\n\tmargin: 16px 0 0;\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 1fr);\n\tgap: 10px;\n}\n\n.prefix-bag-sidebar-term {\n\tfont-size: 0.76rem;\n\tletter-spacing: 0.1em;\n\tcolor: var(--color-accent-meta);\n\ttext-transform: none;\n\tmargin: 0;\n}\n\n.prefix-bag-sidebar-prefix {\n\tfont-size: 0.88rem;\n}\n\n.prefix-bag-sidebar-value {\n\tmargin: 4px 0 0 10px;\n\tcolor: var(--color-text-strong);\n\tline-height: 1.45;\n\tpadding-bottom: 10px;\n\tborder-bottom: 1px solid var(--color-border-soft);\n}\n\n.prefix-bag-sidebar-value:last-child {\n\tpadding-bottom: 0;\n\tborder-bottom: 0;\n}\n\n.prefix-bag-sidebar-pill {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tmargin-left: -8px;\n\tpadding: 4px 8px;\n\tborder-radius: 999px;\n\tbackground: var(--color-surface-pill);\n\tcolor: var(--color-accent-pill-text);\n\tfont-weight: 600;\n\tfont-size: 0.84rem;\n\tline-height: 1.2;\n\tvertical-align: middle;\n}\n\n.summary-card ul {\n\tmargin-bottom: 0;\n\tpadding-left: 18px;\n\tlist-style: none;\n\tcolor: var(--color-text-muted);\n}\n\n.field-index-copy {\n\tmargin-top: 10px;\n\tline-height: 1.55;\n\tcolor: var(--color-text-subtle);\n}\n\n.modal-main {\n\tflex: 1 1 0;\n\tmin-width: 0;\n\tgap: 22px;\n}\n\n.modal-section {\n\tdisplay: grid;\n\tgap: 14px;\n}\n\n.modal-section-header {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr;\n\tgap: 20px;\n\talign-items: start;\n}\n\n.modal-section-header h4 {\n\tfont-size: 1.4rem;\n\tmargin: 2px 0 0;\n}\n\n.modal-section-header p {\n\tmargin: 0;\n\tcolor: var(--color-text-soft);\n\tline-height: 1.6;\n}\n\n.section-field-grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, minmax(0, 1fr));\n\tgap: 18px;\n\talign-items: start;\n}\n\n.field-index li {\n\tpadding-bottom: 12px;\n\tborder-bottom: 1px solid var(--color-border-soft);\n}\n\n.field-index span,\n.field-index small {\n\tdisplay: block;\n}\n\n.field-index span {\n\tcolor: var(--color-text-strong);\n\tfont-weight: 600;\n}\n\n.field-index small {\n\tmargin-top: 4px;\n\tcolor: var(--color-text-fainter);\n}\n\n.field-stack {\n\tdisplay: grid;\n\tgap: 18px;\n}\n\n.field-card {\n\tpadding: 22px;\n\tborder-radius: 22px;\n\tbackground: var(--color-surface-card);\n}\n\n.field-card.is-full {\n\tgrid-column: 1 / -1;\n}\n\n.field-card:only-child {\n\tgrid-column: 1 / -1;\n}\n\n.composite-fields {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, minmax(0, 1fr));\n\tgap: 26px;\n\tmargin-top: 26px;\n}\n\n.composite-fields.is-stack {\n\tgrid-template-columns: 1fr;\n}\n\n.composite-fields.is-stack .field-block + .field-block {\n\tpadding-left: 0;\n\tpadding-top: 16px;\n\tborder-left: 0;\n\tborder-top: 1px solid var(--color-border-soft);\n}\n\n.single-field {\n\tmargin-top: 22px;\n}\n\n.field-block {\n\tdisplay: grid;\n\tgap: 18px;\n\talign-content: start;\n}\n\n.field-block + .field-block {\n\tpadding-left: 18px;\n\tborder-left: 1px solid var(--color-border-soft);\n}\n\n.field-block-header {\n\tdisplay: grid;\n\tgap: 4px;\n}\n\n.field-block-header h5 {\n\tmargin: 0;\n\tfont-size: 1rem;\n\tcolor: var(--color-text-strong);\n}\n\n.field-block-header p {\n\tmargin: 0;\n\tfont-size: 0.92rem;\n\tline-height: 1.5;\n\tcolor: var(--color-text-subtle);\n}\n\n.field-card-header {\n\tdisplay: grid;\n\tgap: 8px;\n}\n\n.field-card-header-row {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tgap: 14px;\n\talign-items: start;\n}\n\n.field-card-header h4,\n.summary-card h4,\n.sidebar-section h4 {\n\tmargin-bottom: 0;\n}\n\n.header-switch {\n\tdisplay: inline-grid;\n\tgrid-auto-flow: column;\n\talign-items: center;\n\tgap: 10px;\n\tcursor: pointer;\n}\n\n.header-switch-copy {\n\tfont-size: 0.76rem;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.1em;\n\tcolor: var(--color-accent-label);\n\twhite-space: nowrap;\n}\n\n.header-switch-input {\n\tposition: absolute;\n\topacity: 0;\n\tpointer-events: none;\n}\n\n.header-switch-track {\n\tposition: relative;\n\tdisplay: inline-block;\n\twidth: 44px;\n\theight: 26px;\n\tborder-radius: 999px;\n\tbackground: var(--color-fill-track);\n\ttransition: background-color 160ms ease;\n}\n\n.header-switch-track.is-checked {\n\tbackground: var(--color-accent-track);\n}\n\n.header-switch-thumb {\n\tposition: absolute;\n\ttop: 3px;\n\tleft: 3px;\n\twidth: 20px;\n\theight: 20px;\n\tborder-radius: 50%;\n\tbackground: var(--color-surface-modal);\n\tbox-shadow: 0 2px 8px var(--color-shadow-thumb);\n\ttransition: transform 160ms ease;\n}\n\n.header-switch-track.is-checked .header-switch-thumb {\n\ttransform: translateX(18px);\n}\n\n.toggle-field-row {\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 1fr) max-content;\n\tgap: 16px;\n\talign-items: center;\n}\n\n.toggle-field-copy strong {\n\tdisplay: block;\n\tmargin: 0;\n\tfont-size: 0.92rem;\n\tcolor: var(--color-text-strong);\n}\n\n.toggle-field-copy p {\n\tmargin: 6px 0 0;\n\tcolor: var(--color-text-subtle);\n\tline-height: 1.55;\n}\n\n.field-card-header h4 {\n\tmargin-bottom: 6px;\n\tfont-size: 1.25rem;\n}\n\n.field-value {\n\tpadding: 14px 16px;\n\tborder-radius: 16px;\n\tbackground: var(--color-surface-field);\n\tborder: 1px solid var(--color-border-soft);\n}\n\n.field-editor {\n\tdisplay: grid;\n\tgap: 10px;\n}\n\n.field-label {\n\tfont-size: 0.82rem;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.1em;\n\tcolor: var(--color-accent-label);\n}\n\n.field-helper {\n\tmargin: 0;\n\tcolor: var(--color-text-subtle);\n\tline-height: 1.55;\n}\n\n.field-card-footer-note {\n\tmargin-top: 18px;\n\tpadding-top: 18px;\n\tborder-top: 1px solid var(--color-border-soft);\n}\n\n.field-card-footer-note p {\n\tmargin: 0;\n\tcolor: var(--color-text-subtle);\n\tline-height: 1.55;\n}\n\n.tool-panel {\n\tdisplay: grid;\n\tgap: 14px;\n\tpadding: 16px;\n\tborder-radius: 16px;\n\tbackground: var(--color-surface-field);\n\tborder: 1px solid var(--color-border-soft);\n}\n\n.tool-panel-actions {\n\tdisplay: grid;\n\tgrid-template-columns: max-content minmax(0, 1fr);\n\talign-items: center;\n\tgap: 12px;\n}\n\n.tool-status {\n\tcolor: var(--color-text-soft);\n\tfont-size: 0.92rem;\n}\n\n.resolver-tool {\n\tgap: 16px;\n}\n\n.resolver-grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, minmax(0, 1fr));\n\tgap: 12px;\n}\n\n.resolver-stat {\n\tpadding: 14px;\n\tborder-radius: 14px;\n\tbackground: var(--color-surface-resolver-stat);\n\tborder: 1px solid var(--color-border-soft);\n}\n\n.resolver-stat span,\n.resolver-order span {\n\tdisplay: block;\n\tfont-size: 0.76rem;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.08em;\n\tcolor: var(--color-accent-meta);\n\tmargin-bottom: 6px;\n}\n\n.resolver-stat strong {\n\tcolor: var(--color-text-strong);\n\tfont-size: 1rem;\n}\n\n.resolver-order {\n\tdisplay: grid;\n\tgap: 8px;\n}\n\n.field-input,\n.field-select,\n.field-textarea {\n\twidth: 100%;\n\tborder: 1px solid var(--color-border-input);\n\tborder-radius: 14px;\n\tpadding: 12px 14px;\n\tbackground: var(--color-surface-input);\n\tcolor: var(--color-text-strong);\n\toutline: none;\n\ttransition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease;\n}\n\n.field-input.is-invalid {\n\tborder-color: var(--color-border-danger);\n\tbox-shadow: 0 0 0 4px var(--color-ring-danger);\n}\n\n.field-input:focus,\n.field-select:focus,\n.field-textarea:focus {\n\tborder-color: var(--color-border-accent-focus);\n\tbox-shadow: 0 0 0 4px var(--color-ring-accent);\n\tbackground: var(--color-surface-input-focus);\n}\n\n.field-input:disabled,\n.field-select:disabled,\n.field-textarea:disabled {\n\tbackground: var(--color-surface-disabled);\n\tcolor: var(--color-text-soft);\n\tborder-color: var(--color-border-disabled);\n\tcursor: not-allowed;\n\topacity: 1;\n}\n\n.field-textarea {\n\tresize: vertical;\n\tmin-height: 120px;\n\tline-height: 1.5;\n}\n\n.field-textarea.is-code,\n.field-value pre {\n\tfont-family: \"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace;\n}\n\n.field-select {\n\tappearance: none;\n\tbackground-image:\n\t\tlinear-gradient(45deg, transparent 50%, var(--color-accent-select-arrow) 50%),\n\t\tlinear-gradient(135deg, var(--color-accent-select-arrow) 50%, transparent 50%);\n\tbackground-position:\n\t\tcalc(100% - 20px) calc(50% - 2px),\n\t\tcalc(100% - 14px) calc(50% - 2px);\n\tbackground-size: 6px 6px, 6px 6px;\n\tbackground-repeat: no-repeat;\n\tpadding-right: 34px;\n}\n\n.row-editor-stack {\n\tdisplay: grid;\n\tgap: 12px;\n}\n\n.prefix-input-shell {\n\tposition: relative;\n}\n\n.prefix-input-shell .field-input {\n\tpadding-right: 42px;\n}\n\n.prefix-input-alert {\n\tposition: absolute;\n\ttop: 50%;\n\tright: 12px;\n\ttransform: translateY(-50%);\n\tcolor: var(--color-danger);\n}\n\n.row-editor-row {\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 1fr) auto;\n\tgap: 10px;\n\talign-items: center;\n}\n\n.row-editor-row-wide {\n\tgrid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;\n}\n\n.row-editor-row-permission {\n\tgrid-template-columns: minmax(0, 1fr) 124px auto;\n}\n\n.row-editor-row-permission .field-select {\n\tmax-width: 124px;\n\tjustify-self: start;\n}\n\n.row-action-button {\n\tborder: 0;\n\tborder-radius: 12px;\n\tpadding: 11px 12px;\n\tbackground: var(--color-surface-row-action);\n\tcolor: var(--color-accent-row-action-text);\n\tcursor: pointer;\n\twhite-space: nowrap;\n}\n\n.ghost-button:hover,\n.primary-button:hover,\n.close-button:hover,\n.row-action-button:hover {\n\tfilter: brightness(0.98);\n}\n\n.ghost-button:disabled:hover,\n.primary-button:disabled:hover,\n.ghost-button:disabled:focus-visible,\n.primary-button:disabled:focus-visible {\n\tfilter: none;\n}\n\n.field-value pre {\n\twhite-space: pre-wrap;\n\tword-break: break-word;\n\tfont-size: 0.92rem;\n\tline-height: 1.55;\n}\n\n.value-list,\n.timeline-list,\n.value-ordered-list {\n\tmargin: 0;\n\tpadding: 14px 16px 14px 32px;\n\tcolor: var(--color-text-muted);\n\tdisplay: grid;\n\tgap: 10px;\n\tline-height: 1.55;\n\t/* border: 1px solid var(--color-border-soft); */\n\t/* border-radius: 16px; */\n\t/* background: var(--color-surface-field); */\n}\n\n.timeline-list li,\n.value-list li,\n.value-ordered-list li {\n\tpadding-bottom: 10px;\n\tborder-bottom: 1px solid var(--color-border-soft);\n\n}\n\n.timeline-list li:last-child,\n.value-list li:last-child,\n.value-ordered-list li:last-child {\n\tpadding-bottom: 0;\n\tborder-bottom: 0;\n}\n\ntable.value-table {\n\twidth: 100%;\n}\n\ntable.value-table td {\n\tpadding: 10px;\n\tborder-bottom: 1px solid var(--color-border-soft);\n\n}\n\n.meta-list {\n\tmargin: 0;\n\tdisplay: grid;\n\tgrid-template-columns: minmax(120px, 180px) minmax(0, 1fr);\n\tgap: 10px 14px;\n\tcolor: var(--color-text-muted);\n\tpadding: 14px 16px;\n\tborder-radius: 16px;\n\tbackground: var(--color-surface-field);\n\tborder: 1px solid var(--color-border-soft);\n}\n\n.meta-list dt {\n\tcolor: var(--color-accent-meta);\n\tfont-size: 0.78rem;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.08em;\n}\n\n.meta-list dd {\n\tmargin: 0;\n\tpadding-bottom: 10px;\n\tborder-bottom: 1px solid var(--color-border-soft);\n}\n\n.pill-value {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tpadding: 10px 14px;\n\tborder-radius: 999px;\n\tbackground: var(--color-surface-pill);\n\tcolor: var(--color-accent-pill-text);\n\tfont-weight: 600;\n}\n\n.pill-value-small {\n\tpadding: 4px 8px;\n\tfont-size: 0.84rem;\n\tline-height: 1.2;\n\tvertical-align: middle;\n}\n\n.field-callout {\n\tpadding: 14px 16px;\n\tborder-radius: 16px;\n\tbackground: var(--color-surface-field);\n\tborder: 1px solid var(--color-border-soft);\n\tdisplay: grid;\n\tgrid-template-columns: minmax(0, 1fr) max-content;\n\n}\n\n.field-callout p {\n\tmargin: 0;\n\tcolor: var(--color-text-muted);\n\tline-height: 1.6;\n}\n\n.field-architecture {\n\tpadding-top: 14px;\n\tborder-top: 1px solid var(--color-border-soft);\n}\n\n.field-architecture strong {\n\tdisplay: block;\n\tmargin-bottom: 6px;\n\tcolor: var(--color-text-strong);\n}\n\n.field-architecture p {\n\tfont-size: 0.94rem;\n\tline-height: 1.6;\n}\n\n.modal-actions {\n\tdisplay: grid;\n\tgrid-auto-flow: column;\n\tgrid-auto-columns: max-content;\n\tjustify-content: end;\n\tgap: 12px;\n\tpadding-top: 2px;\n}\n\n.field-card.is-full .single-field,\n.field-card.is-full .composite-fields {\n\tmax-width: none;\n}\n\n.field-card.is-full .row-editor-stack {\n\tmax-width: 100%;\n}\n\n.field-card.is-full .row-editor-row-wide {\n\tgrid-template-columns: minmax(180px, 0.95fr) minmax(220px, 1.25fr) auto;\n}\n\n.field-card.is-full .row-editor-row-permission {\n\tgrid-template-columns: minmax(220px, 1fr) 124px auto;\n}\n\n.field-card.is-full .tool-panel-actions {\n\tgrid-template-columns: max-content minmax(220px, 1fr);\n}\n\n.primary-button {\n\tborder: 0;\n\tborder-radius: 999px;\n\tpadding: 11px 16px;\n\tbackground: var(--color-accent-fill);\n\tcolor: var(--color-text-on-accent);\n\tcursor: pointer;\n\tfont-weight: 700;\n\tbox-shadow: 0 18px 40px var(--color-shadow-button);\n}\n\n@media (max-width: 1080px) {\n\n\t.hero-panel,\n\t.section-header,\n\t.modal-section-header,\n\t.section-field-grid {\n\t\tgrid-template-columns: 1fr;\n\t}\n\n\t.modal-layout {\n\t\tflex-direction: column;\n\t\talign-items: stretch;\n\t}\n\n\t.modal-sidebar {\n\t\tflex: 0 0 auto;\n\t\twidth: 100%;\n\t\tposition: relative;\n\t}\n\n\t.composite-fields {\n\t\tgrid-template-columns: 1fr;\n\t}\n\n\t.field-block + .field-block {\n\t\tpadding-left: 0;\n\t\tpadding-top: 12px;\n\t\tborder-left: 0;\n\t\tborder-top: 1px solid var(--color-border-soft);\n\t}\n\n\t.field-index {\n\t\tposition: relative;\n\t}\n\n\t.meta-list,\n\t.resolver-grid,\n\t.tool-panel-actions {\n\t\tgrid-template-columns: 1fr;\n\t}\n\n\t.toolbar-actions,\n\t.modal-actions {\n\t\tgrid-auto-flow: row;\n\t\tgrid-auto-columns: 1fr;\n\t\tjustify-content: stretch;\n\t}\n}\n\n@media (max-width: 900px) {\n\t.admin-shell {\n\t\tpadding: 18px;\n\t}\n\n\t.list-panel {\n\t\toverflow: auto;\n\t}\n\n\t.list-grid {\n\t\tmin-width: 1080px;\n\t}\n\n\t.modal-shell {\n\t\tpadding: 14px;\n\t}\n}\n\n@media (max-width: 640px) {\n\t.login-options {\n\t\talign-items: flex-start;\n\t\tflex-direction: column;\n\t}\n\n\t.login-action-row {\n\t\tgrid-template-columns: 1fr;\n\t}\n\n\t.list-toolbar,\n\t.modal-header,\n\t.field-card-header-row,\n\t.modal-actions {\n\t\tflex-direction: column;\n\t\talign-items: start;\n\t}\n}", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"48\" height=\"48\" viewBox=\"0 -960 960 960\"><path d=\"m40-120 440-760 440 760H40Zm104-60h672L480-760 144-180Zm361.5-65.68q8.5-8.67 8.5-21.5 0-12.82-8.68-21.32-8.67-8.5-21.5-8.5-12.82 0-21.32 8.68-8.5 8.67-8.5 21.5 0 12.82 8.68 21.32 8.67 8.5 21.5 8.5 12.82 0 21.32-8.68ZM454-348h60v-224h-60v224Zm26-122Z\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"48\" height=\"48\" viewBox=\"0 -960 960 960\"><path d=\"m249-207-42-42 231-231-231-231 42-42 231 231 231-231 42 42-231 231 231 231-42 42-231-231-231 231Z\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"48\" height=\"48\" viewBox=\"0 -960 960 960\"><path d=\"M222-255q63-44 125-67.5T480-346q71 0 133.5 23.5T739-255q44-54 62.5-109T820-480q0-145-97.5-242.5T480-820q-145 0-242.5 97.5T140-480q0 61 19 116t63 109Zm160.5-234.5Q343-529 343-587t39.5-97.5Q422-724 480-724t97.5 39.5Q617-645 617-587t-39.5 97.5Q538-450 480-450t-97.5-39.5ZM480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-155.5t86-127Q252-817 325-848.5T480-880q83 0 155.5 31.5t127 86q54.5 54.5 86 127T880-480q0 82-31.5 155t-86 127.5q-54.5 54.5-127 86T480-80Zm107.5-76Q640-172 691-212q-51-36-104-55t-107-19q-54 0-107 19t-104 55q51 40 103.5 56T480-140q55 0 107.5-16Zm-52-375.5Q557-553 557-587t-21.5-55.5Q514-664 480-664t-55.5 21.5Q403-621 403-587t21.5 55.5Q446-510 480-510t55.5-21.5ZM480-587Zm0 374Z\"/></svg>", "import { customElement, JSXElement, addstyles, state } from \"@tiddlywiki/jsx-lit\";\n\n// import icon1 from \"@material-symbols/svg-400/{style}/{icon}.svg\" // (Unfilled)\n// import icon2 from \"@material-symbols/svg-400/{style}/{icon}-fill.svg\" // (Filled)\n// <MaterialSymbol icon={icon} />\n@customElement(\"material-symbol\")\nexport class MaterialSymbol extends JSXElement {\n useLightDOM: boolean = true;\n\n @state() accessor props!: {\n icon: string;\n }\n\n protected render() {\n this.innerHTML = this.props.icon;\n return JSXElement.DO_NOT_RENDER;\n }\n}\n", "import z4 from \"./classic/index.js\";\nexport * from \"./classic/index.js\";\nexport default z4;\n", "export * as core from \"../core/index.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./errors.js\";\nexport * from \"./parse.js\";\nexport * from \"./compat.js\";\n// zod-specified\nimport { config } from \"../core/index.js\";\nimport en from \"../locales/en.js\";\nconfig(en());\nexport { globalRegistry, registry, config, $output, $input, $brand, clone, regexes, treeifyError, prettifyError, formatError, flattenError, TimePrecision, util, NEVER, } from \"../core/index.js\";\nexport { toJSONSchema } from \"../core/json-schema-processors.js\";\nexport { fromJSONSchema } from \"./from-json-schema.js\";\nexport * as locales from \"../locales/index.js\";\n// iso\n// must be exported from top-level\n// https://github.com/colinhacks/zod/issues/4491\nexport { ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration } from \"./iso.js\";\nexport * as iso from \"./iso.js\";\nexport * as coerce from \"./coerce.js\";\n", "export * from \"./core.js\";\nexport * from \"./parse.js\";\nexport * from \"./errors.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./versions.js\";\nexport * as util from \"./util.js\";\nexport * as regexes from \"./regexes.js\";\nexport * as locales from \"../locales/index.js\";\nexport * from \"./registries.js\";\nexport * from \"./doc.js\";\nexport * from \"./api.js\";\nexport * from \"./to-json-schema.js\";\nexport { toJSONSchema } from \"./json-schema-processors.js\";\nexport { JSONSchemaGenerator } from \"./json-schema-generator.js\";\nexport * as JSONSchema from \"./json-schema.js\";\n", "/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n if (!inst._zod) {\n Object.defineProperty(inst, \"_zod\", {\n value: {\n def,\n constr: _,\n traits: new Set(),\n },\n enumerable: false,\n });\n }\n if (inst._zod.traits.has(name)) {\n return;\n }\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n const proto = _.prototype;\n const keys = Object.keys(proto);\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n if (!(k in inst)) {\n inst[k] = proto[k].bind(inst);\n }\n }\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport class $ZodEncodeError extends Error {\n constructor(name) {\n super(`Encountered unidirectional transform during encode: ${name}`);\n this.name = \"ZodEncodeError\";\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n", "// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error(\"Unexpected value in exhaustive check\");\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepString = step.toString();\n let stepDecCount = (stepString.split(\".\")[1] || \"\").length;\n if (stepDecCount === 0 && /\\d?e-\\d?/.test(stepString)) {\n const match = stepString.match(/\\d?e-(\\d?)/);\n if (match?.[1]) {\n stepDecCount = Number.parseInt(match[1]);\n }\n }\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nconst EVALUATING = Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n let value = undefined;\n Object.defineProperty(object, key, {\n get() {\n if (value === EVALUATING) {\n // Circular reference detected, return undefined to break the cycle\n return undefined;\n }\n if (value === undefined) {\n value = EVALUATING;\n value = getter();\n }\n return value;\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function objectClone(obj) {\n return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function mergeDefs(...defs) {\n const mergedDescriptors = {};\n for (const def of defs) {\n const descriptors = Object.getOwnPropertyDescriptors(def);\n Object.assign(mergedDescriptors, descriptors);\n }\n return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport function slugify(input) {\n return input\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, \"\")\n .replace(/[\\s_-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n // @ts-ignore\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n if (typeof ctor !== \"function\")\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function shallowClone(o) {\n if (isPlainObject(o))\n return { ...o };\n if (Array.isArray(o))\n return [...o];\n return o;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n // @ts-ignore\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".pick() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = {};\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n newShape[key] = currDef.shape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function omit(schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".omit() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = { ...schema._zod.def.shape };\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const checks = schema._zod.def.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n // Only throw if new shape overlaps with existing shape\n // Use getOwnPropertyDescriptor to check key existence without accessing values\n const existingShape = schema._zod.def.shape;\n for (const key in shape) {\n if (Object.getOwnPropertyDescriptor(existingShape, key) !== undefined) {\n throw new Error(\"Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.\");\n }\n }\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n });\n return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n });\n return clone(schema, def);\n}\nexport function merge(a, b) {\n const def = mergeDefs(a._zod.def, {\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n get catchall() {\n return b._zod.def.catchall;\n },\n checks: [], // delete existing checks\n });\n return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".partial() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n });\n return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true) {\n return true;\n }\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n // @ts-ignore\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function parsedType(data) {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"nan\" : \"number\";\n }\n case \"object\": {\n if (data === null) {\n return \"null\";\n }\n if (Array.isArray(data)) {\n return \"array\";\n }\n const obj = data;\n if (obj && Object.getPrototypeOf(obj) !== Object.prototype && \"constructor\" in obj && obj.constructor) {\n return obj.constructor.name;\n }\n }\n }\n return t;\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n let binaryString = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binaryString += String.fromCharCode(bytes[i]);\n }\n return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n const cleanHex = hex.replace(/^0x/, \"\");\n if (cleanHex.length % 2 !== 0) {\n throw new Error(\"Invalid hex string length\");\n }\n const bytes = new Uint8Array(cleanHex.length / 2);\n for (let i = 0; i < cleanHex.length; i += 2) {\n bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n }\n return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n", "import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, mapper = (issue) => issue.message) {\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, mapper = (issue) => issue.message) {\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * \u2716 Expected number, received string at \"username\n * favoriteNumbers[0]\n * \u2716 Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n const segs = [];\n const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`\u2716 ${issue.message}`);\n if (issue.path?.length)\n lines.push(` \u2192 at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n", "import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\nexport const _encode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parse(_Err)(schema, value, ctx);\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => (schema, value, _ctx) => {\n return _parse(_Err)(schema, value, _ctx);\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parseAsync(_Err)(schema, value, ctx);\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _parseAsync(_Err)(schema, value, _ctx);\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n", "import * as util from \"./util.js\";\nexport const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;\n return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\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,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = unicodeEmail;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;\nexport const mac = (delimiter) => {\n const escapedDelim = util.escapeRegex(delimiter ?? \":\");\n return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`);\n};\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{1,253}\\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\\.?$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\n// E.164: leading digit must be 1-9; total digits (excluding '+') between 7-15\nexport const e164 = /^\\+[1-9]\\d{6,14}$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const time = timeSource({ precision: args.precision });\n const opts = [\"Z\"];\n if (args.local)\n opts.push(\"\");\n // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n if (args.offset)\n opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^-?\\d+n?$/;\nexport const integer = /^-?\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?$/;\nexport const boolean = /^(?:true|false)$/i;\nconst _null = /^null$/i;\nexport { _null as null };\nconst _undefined = /^undefined$/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n", "// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n continue: false,\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n inclusive: true,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n inclusive: true,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n", "export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n", "export const version = {\n major: 4,\n minor: 3,\n patch: 6,\n};\n", "import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync, safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n const handleCanaryResult = (canary, payload, ctx) => {\n // abort if the canary is aborted\n if (util.aborted(canary)) {\n canary.aborted = true;\n return canary;\n }\n // run checks first, then\n const checkResult = runChecks(payload, checks, ctx);\n if (checkResult instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n }\n return inst._zod.parse(checkResult, ctx);\n };\n inst._zod.run = (payload, ctx) => {\n if (ctx.skipChecks) {\n return inst._zod.parse(payload, ctx);\n }\n if (ctx.direction === \"backward\") {\n // run canary\n // initial pass (no checks)\n const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n if (canary instanceof Promise) {\n return canary.then((canary) => {\n return handleCanaryResult(canary, payload, ctx);\n });\n }\n return handleCanaryResult(canary, payload, ctx);\n }\n // forward\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n // Lazy initialize ~standard to avoid creating objects for every schema\n util.defineLazy(inst, \"~standard\", () => ({\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n }));\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n // Trim whitespace from input\n const trimmed = payload.value.trim();\n // @ts-ignore\n const url = new URL(trimmed);\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: def.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // Set the output value based on normalize flag\n if (def.normalize) {\n // Use normalized URL\n payload.value = url.href;\n }\n else {\n // Preserve the original input (trimmed)\n payload.value = trimmed;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `ipv4`;\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `ipv6`;\n inst._zod.check = (payload) => {\n try {\n // @ts-ignore\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodMAC = /*@__PURE__*/ core.$constructor(\"$ZodMAC\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.mac(def.delimiter));\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `mac`;\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const parts = payload.value.split(\"/\");\n try {\n if (parts.length !== 2)\n throw new Error();\n const [address, prefix] = parts;\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n // @ts-ignore\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n // @ts-ignore\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.contentEncoding = \"base64\";\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.contentEncoding = \"base64url\";\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n // @ts-ignore\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumberFormat\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checks\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigIntFormat\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handlePropertyResult(result, final, key, input, isOptionalOut) {\n if (result.issues.length) {\n // For optional-out schemas, ignore errors on absent keys\n if (isOptionalOut && !(key in input)) {\n return;\n }\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n if (result.value === undefined) {\n if (key in input) {\n final.value[key] = undefined;\n }\n }\n else {\n final.value[key] = result.value;\n }\n}\nfunction normalizeDef(def) {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!def.shape?.[k]?._zod?.traits?.has(\"$ZodType\")) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n ...def,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst) {\n const unrecognized = [];\n // iterate over input keys\n const keySet = def.keySet;\n const _catchall = def.catchall._zod;\n const t = _catchall.def.type;\n const isOptionalOut = _catchall.optout === \"optional\";\n for (const key in input) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalOut)));\n }\n else {\n handlePropertyResult(r, payload, key, input, isOptionalOut);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n // const sh = def.shape;\n const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n if (!desc?.get) {\n const sh = def.shape;\n Object.defineProperty(def, \"shape\", {\n get: () => {\n const newSh = { ...sh };\n Object.defineProperty(def, \"shape\", {\n value: newSh,\n });\n return newSh;\n },\n });\n }\n const _normalized = util.cached(() => normalizeDef(def));\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const isObject = util.isObject;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = {};\n const proms = [];\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n const isOptionalOut = el._zod.optout === \"optional\";\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalOut)));\n }\n else {\n handlePropertyResult(r, payload, key, input, isOptionalOut);\n }\n }\n if (!catchall) {\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);\n };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodObject.init(inst, def);\n const superParse = inst._zod.parse;\n const _normalized = util.cached(() => normalizeDef(def));\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {};`);\n for (const key of normalized.keys) {\n const id = ids[key];\n const k = util.esc(key);\n const schema = shape[key];\n const isOptionalOut = schema?._zod?.optout === \"optional\";\n doc.write(`const ${id} = ${parseStr(key)};`);\n if (isOptionalOut) {\n // For optional-out schemas, ignore errors on absent keys\n doc.write(`\n if (${id}.issues.length) {\n if (${k} in input) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n }\n \n if (${id}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${id}.value;\n }\n \n `);\n }\n else {\n doc.write(`\n if (${id}.issues.length) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n \n if (${id}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${id}.value;\n }\n \n `);\n }\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n if (!catchall)\n return payload;\n return handleCatchall([], input, payload, ctx, value, inst);\n }\n return superParse(payload, ctx);\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n const nonaborted = results.filter((r) => !util.aborted(r));\n if (nonaborted.length === 1) {\n final.value = nonaborted[0].value;\n return nonaborted[0];\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n const single = def.options.length === 1;\n const first = def.options[0]._zod.run;\n inst._zod.parse = (payload, ctx) => {\n if (single) {\n return first(payload, ctx);\n }\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nfunction handleExclusiveUnionResults(results, final, inst, ctx) {\n const successes = results.filter((r) => r.issues.length === 0);\n if (successes.length === 1) {\n final.value = successes[0].value;\n return final;\n }\n if (successes.length === 0) {\n // No matches - same as regular union\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n }\n else {\n // Multiple matches - exclusive union failure\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: [],\n inclusive: false,\n });\n }\n return final;\n}\nexport const $ZodXor = /*@__PURE__*/ core.$constructor(\"$ZodXor\", (inst, def) => {\n $ZodUnion.init(inst, def);\n def.inclusive = false;\n const single = def.options.length === 1;\n const first = def.options[0]._zod.run;\n inst._zod.parse = (payload, ctx) => {\n if (single) {\n return first(payload, ctx);\n }\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n results.push(result);\n }\n }\n if (!async)\n return handleExclusiveUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleExclusiveUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n def.inclusive = false;\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues?.[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n discriminator: def.discriminator,\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n // Track which side(s) report each key as unrecognized\n const unrecKeys = new Map();\n let unrecIssue;\n for (const iss of left.issues) {\n if (iss.code === \"unrecognized_keys\") {\n unrecIssue ?? (unrecIssue = iss);\n for (const k of iss.keys) {\n if (!unrecKeys.has(k))\n unrecKeys.set(k, {});\n unrecKeys.get(k).l = true;\n }\n }\n else {\n result.issues.push(iss);\n }\n }\n for (const iss of right.issues) {\n if (iss.code === \"unrecognized_keys\") {\n for (const k of iss.keys) {\n if (!unrecKeys.has(k))\n unrecKeys.set(k, {});\n unrecKeys.get(k).r = true;\n }\n }\n else {\n result.issues.push(iss);\n }\n }\n // Report only keys unrecognized by BOTH sides\n const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k);\n if (bothKeys.length && unrecIssue) {\n result.issues.push({ ...unrecIssue, keys: bothKeys });\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n const reversedIndex = [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n const optStart = reversedIndex === -1 ? 0 : items.length - reversedIndex;\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n ...(tooBig\n ? { code: \"too_big\", maximum: items.length, inclusive: true }\n : { code: \"too_small\", minimum: items.length }),\n input,\n inst,\n origin: \"array\",\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n const values = def.keyType._zod.values;\n if (values) {\n payload.value = {};\n const recordKeys = new Set();\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n recordKeys.add(typeof key === \"number\" ? key.toString() : key);\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!recordKeys.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n let keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n // Numeric string fallback: if key is a numeric string and failed, retry with Number(key)\n // This handles z.number(), z.literal([1, 2, 3]), and unions containing numeric literals\n const checkNumericKey = typeof key === \"string\" && regexes.number.test(key) && keyResult.issues.length;\n if (checkNumericKey) {\n const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx);\n if (retryResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (retryResult.issues.length === 0) {\n keyResult = retryResult;\n }\n }\n if (keyResult.issues.length) {\n if (def.mode === \"loose\") {\n // Pass through unchanged\n payload.value[key] = input[key];\n }\n else {\n // Default \"strict\" behavior: error on invalid key\n payload.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n }\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n code: \"invalid_key\",\n origin: \"map\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n const valuesSet = new Set(values);\n inst._zod.values = valuesSet;\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (valuesSet.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n if (def.values.length === 0) {\n throw new Error(\"Cannot create literal schema with no valid values\");\n }\n const values = new Set(def.values);\n inst._zod.values = values;\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n // @ts-ignore\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n const _out = def.transform(payload.value, payload);\n if (ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nfunction handleOptionalResult(result, input) {\n if (result.issues.length && input === undefined) {\n return { issues: [], value: undefined };\n }\n return result;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise)\n return result.then((r) => handleOptionalResult(r, payload.value));\n return handleOptionalResult(result, payload.value);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodExactOptional = /*@__PURE__*/ core.$constructor(\"$ZodExactOptional\", (inst, def) => {\n // Call parent init - inherits optin/optout = \"optional\"\n $ZodOptional.init(inst, def);\n // Override values/pattern to NOT add undefined\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"pattern\", () => def.innerType._zod.pattern);\n // Override parse to just delegate (no undefined handling)\n inst._zod.parse = (payload, ctx) => {\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n // Forward direction (decode): allow null to pass through\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply defaults for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault returns the default value immediately in forward direction.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n // Forward direction: continue with default handling\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply prefault for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(\"ZodSuccess\");\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply catch logic\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handlePipeResult(right, def.in, ctx));\n }\n return handlePipeResult(right, def.in, ctx);\n }\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def.out, ctx));\n }\n return handlePipeResult(left, def.out, ctx);\n };\n});\nfunction handlePipeResult(left, next, ctx) {\n if (left.issues.length) {\n // prevent further checks\n left.aborted = true;\n return left;\n }\n return next._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handleCodecAResult(left, def, ctx));\n }\n return handleCodecAResult(left, def, ctx);\n }\n else {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handleCodecAResult(right, def, ctx));\n }\n return handleCodecAResult(right, def, ctx);\n }\n };\n});\nfunction handleCodecAResult(result, def, ctx) {\n if (result.issues.length) {\n // prevent further checks\n result.aborted = true;\n return result;\n }\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const transformed = def.transform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n }\n return handleCodecTxResult(result, transformed, def.out, ctx);\n }\n else {\n const transformed = def.reverseTransform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n }\n return handleCodecTxResult(result, transformed, def.in, ctx);\n }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n // Check if transform added any issues\n if (left.issues.length) {\n left.aborted = true;\n return left;\n }\n return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType?._zod?.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType?._zod?.optout);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (typeof part === \"object\" && part !== null) {\n // is Zod schema\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"string\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: def.format ?? \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._def = def;\n inst._zod.def = def;\n inst.implement = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n return function (...args) {\n const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n const result = Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return parse(inst._def.output, result);\n }\n return result;\n };\n };\n inst.implementAsync = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implementAsync() must be called with a function\");\n }\n return async function (...args) {\n const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n const result = await Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return await parseAsync(inst._def.output, result);\n }\n return result;\n };\n };\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"function\") {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"function\",\n input: payload.value,\n inst,\n });\n return payload;\n }\n // Check if output is a promise type to determine if we should use async implementation\n const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n if (hasPromiseOutput) {\n payload.value = inst.implementAsync(payload.value);\n }\n else {\n payload.value = inst.implement(payload.value);\n }\n return payload;\n };\n inst.input = (...args) => {\n const F = inst.constructor;\n if (Array.isArray(args[0])) {\n return new F({\n type: \"function\",\n input: new $ZodTuple({\n type: \"tuple\",\n items: args[0],\n rest: args[1],\n }),\n output: inst._def.output,\n });\n }\n return new F({\n type: \"function\",\n input: args[0],\n output: inst._def.output,\n });\n };\n inst.output = (output) => {\n const F = inst.constructor;\n return new F({\n type: \"function\",\n input: inst._def.input,\n output,\n });\n };\n return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n // let _innerType!: any;\n // util.defineLazy(def, \"getter\", () => {\n // if (!_innerType) {\n // _innerType = def.getter();\n // }\n // return () => _innerType;\n // });\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType?._zod?.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType?._zod?.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType?._zod?.optin ?? undefined);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType?._zod?.optout ?? undefined);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n", "export { default as ar } from \"./ar.js\";\nexport { default as az } from \"./az.js\";\nexport { default as be } from \"./be.js\";\nexport { default as bg } from \"./bg.js\";\nexport { default as ca } from \"./ca.js\";\nexport { default as cs } from \"./cs.js\";\nexport { default as da } from \"./da.js\";\nexport { default as de } from \"./de.js\";\nexport { default as en } from \"./en.js\";\nexport { default as eo } from \"./eo.js\";\nexport { default as es } from \"./es.js\";\nexport { default as fa } from \"./fa.js\";\nexport { default as fi } from \"./fi.js\";\nexport { default as fr } from \"./fr.js\";\nexport { default as frCA } from \"./fr-CA.js\";\nexport { default as he } from \"./he.js\";\nexport { default as hu } from \"./hu.js\";\nexport { default as hy } from \"./hy.js\";\nexport { default as id } from \"./id.js\";\nexport { default as is } from \"./is.js\";\nexport { default as it } from \"./it.js\";\nexport { default as ja } from \"./ja.js\";\nexport { default as ka } from \"./ka.js\";\nexport { default as kh } from \"./kh.js\";\nexport { default as km } from \"./km.js\";\nexport { default as ko } from \"./ko.js\";\nexport { default as lt } from \"./lt.js\";\nexport { default as mk } from \"./mk.js\";\nexport { default as ms } from \"./ms.js\";\nexport { default as nl } from \"./nl.js\";\nexport { default as no } from \"./no.js\";\nexport { default as ota } from \"./ota.js\";\nexport { default as ps } from \"./ps.js\";\nexport { default as pl } from \"./pl.js\";\nexport { default as pt } from \"./pt.js\";\nexport { default as ru } from \"./ru.js\";\nexport { default as sl } from \"./sl.js\";\nexport { default as sv } from \"./sv.js\";\nexport { default as ta } from \"./ta.js\";\nexport { default as th } from \"./th.js\";\nexport { default as tr } from \"./tr.js\";\nexport { default as ua } from \"./ua.js\";\nexport { default as uk } from \"./uk.js\";\nexport { default as ur } from \"./ur.js\";\nexport { default as uz } from \"./uz.js\";\nexport { default as vi } from \"./vi.js\";\nexport { default as zhCN } from \"./zh-CN.js\";\nexport { default as zhTW } from \"./zh-TW.js\";\nexport { default as yo } from \"./yo.js\";\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u062D\u0631\u0641\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n file: { unit: \"\u0628\u0627\u064A\u062A\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n array: { unit: \"\u0639\u0646\u0635\u0631\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n set: { unit: \"\u0639\u0646\u0635\u0631\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0645\u062F\u062E\u0644\",\n email: \"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A\",\n url: \"\u0631\u0627\u0628\u0637\",\n emoji: \"\u0625\u064A\u0645\u0648\u062C\u064A\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n date: \"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n time: \"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n duration: \"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n ipv4: \"\u0639\u0646\u0648\u0627\u0646 IPv4\",\n ipv6: \"\u0639\u0646\u0648\u0627\u0646 IPv6\",\n cidrv4: \"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4\",\n cidrv6: \"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6\",\n base64: \"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded\",\n base64url: \"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded\",\n json_string: \"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON\",\n e164: \"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u0645\u062F\u062E\u0644\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 instanceof ${issue.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${received}`;\n }\n return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return ` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${issue.origin ?? \"\u0627\u0644\u0642\u064A\u0645\u0629\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0635\u0631\"}`;\n return `\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${issue.origin ?? \"\u0627\u0644\u0642\u064A\u0645\u0629\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 \"${issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`;\n }\n case \"not_multiple_of\":\n return `\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u0645\u0639\u0631\u0641${issue.keys.length > 1 ? \"\u0627\u062A\" : \"\"} \u063A\u0631\u064A\u0628${issue.keys.length > 1 ? \"\u0629\" : \"\"}: ${util.joinValues(issue.keys, \"\u060C \")}`;\n case \"invalid_key\":\n return `\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue.origin}`;\n case \"invalid_union\":\n return \"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\";\n case \"invalid_element\":\n return `\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue.origin}`;\n default:\n return \"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"simvol\", verb: \"olmal\u0131d\u0131r\" },\n file: { unit: \"bayt\", verb: \"olmal\u0131d\u0131r\" },\n array: { unit: \"element\", verb: \"olmal\u0131d\u0131r\" },\n set: { unit: \"element\", verb: \"olmal\u0131d\u0131r\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Yanl\u0131\u015F d\u0259y\u0259r: g\u00F6zl\u0259nil\u0259n instanceof ${issue.expected}, daxil olan ${received}`;\n }\n return `Yanl\u0131\u015F d\u0259y\u0259r: g\u00F6zl\u0259nil\u0259n ${expected}, daxil olan ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Yanl\u0131\u015F d\u0259y\u0259r: g\u00F6zl\u0259nil\u0259n ${util.stringifyPrimitive(issue.values[0])}`;\n return `Yanl\u0131\u015F se\u00E7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u00C7ox b\u00F6y\u00FCk: g\u00F6zl\u0259nil\u0259n ${issue.origin ?? \"d\u0259y\u0259r\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n return `\u00C7ox b\u00F6y\u00FCk: g\u00F6zl\u0259nil\u0259n ${issue.origin ?? \"d\u0259y\u0259r\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u00C7ox ki\u00E7ik: g\u00F6zl\u0259nil\u0259n ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `\u00C7ox ki\u00E7ik: g\u00F6zl\u0259nil\u0259n ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Yanl\u0131\u015F m\u0259tn: \"${_issue.prefix}\" il\u0259 ba\u015Flamal\u0131d\u0131r`;\n if (_issue.format === \"ends_with\")\n return `Yanl\u0131\u015F m\u0259tn: \"${_issue.suffix}\" il\u0259 bitm\u0259lidir`;\n if (_issue.format === \"includes\")\n return `Yanl\u0131\u015F m\u0259tn: \"${_issue.includes}\" daxil olmal\u0131d\u0131r`;\n if (_issue.format === \"regex\")\n return `Yanl\u0131\u015F m\u0259tn: ${_issue.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`;\n return `Yanl\u0131\u015F ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Yanl\u0131\u015F \u0259d\u0259d: ${issue.divisor} il\u0259 b\u00F6l\u00FCn\u0259 bil\u0259n olmal\u0131d\u0131r`;\n case \"unrecognized_keys\":\n return `Tan\u0131nmayan a\u00E7ar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} daxilind\u0259 yanl\u0131\u015F a\u00E7ar`;\n case \"invalid_union\":\n return \"Yanl\u0131\u015F d\u0259y\u0259r\";\n case \"invalid_element\":\n return `${issue.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;\n default:\n return `Yanl\u0131\u015F d\u0259y\u0259r`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nfunction getBelarusianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"\u0441\u0456\u043C\u0432\u0430\u043B\",\n few: \"\u0441\u0456\u043C\u0432\u0430\u043B\u044B\",\n many: \"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E\",\n },\n verb: \"\u043C\u0435\u0446\u044C\",\n },\n array: {\n unit: {\n one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B\",\n many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E\",\n },\n verb: \"\u043C\u0435\u0446\u044C\",\n },\n set: {\n unit: {\n one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B\",\n many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E\",\n },\n verb: \"\u043C\u0435\u0446\u044C\",\n },\n file: {\n unit: {\n one: \"\u0431\u0430\u0439\u0442\",\n few: \"\u0431\u0430\u0439\u0442\u044B\",\n many: \"\u0431\u0430\u0439\u0442\u0430\u045E\",\n },\n verb: \"\u043C\u0435\u0446\u044C\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0443\u0432\u043E\u0434\",\n email: \"email \u0430\u0434\u0440\u0430\u0441\",\n url: \"URL\",\n emoji: \"\u044D\u043C\u043E\u0434\u0437\u0456\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441\",\n date: \"ISO \u0434\u0430\u0442\u0430\",\n time: \"ISO \u0447\u0430\u0441\",\n duration: \"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C\",\n ipv4: \"IPv4 \u0430\u0434\u0440\u0430\u0441\",\n ipv6: \"IPv6 \u0430\u0434\u0440\u0430\u0441\",\n cidrv4: \"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D\",\n cidrv6: \"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D\",\n base64: \"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64\",\n base64url: \"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url\",\n json_string: \"JSON \u0440\u0430\u0434\u043E\u043A\",\n e164: \"\u043D\u0443\u043C\u0430\u0440 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u0443\u0432\u043E\u0434\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u043B\u0456\u043A\",\n array: \"\u043C\u0430\u0441\u0456\u045E\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F instanceof ${issue.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${received}`;\n }\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435\"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435\"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`;\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${issue.keys.length > 1 ? \"\u043A\u043B\u044E\u0447\u044B\" : \"\u043A\u043B\u044E\u0447\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${issue.origin}`;\n case \"invalid_union\":\n return \"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434\";\n case \"invalid_element\":\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${issue.origin}`;\n default:\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u0441\u0438\u043C\u0432\u043E\u043B\u0430\", verb: \"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\" },\n file: { unit: \"\u0431\u0430\u0439\u0442\u0430\", verb: \"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\" },\n array: { unit: \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430\", verb: \"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\" },\n set: { unit: \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430\", verb: \"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0432\u0445\u043E\u0434\",\n email: \"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441\",\n url: \"URL\",\n emoji: \"\u0435\u043C\u043E\u0434\u0436\u0438\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u0432\u0440\u0435\u043C\u0435\",\n date: \"ISO \u0434\u0430\u0442\u0430\",\n time: \"ISO \u0432\u0440\u0435\u043C\u0435\",\n duration: \"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442\",\n ipv4: \"IPv4 \u0430\u0434\u0440\u0435\u0441\",\n ipv6: \"IPv6 \u0430\u0434\u0440\u0435\u0441\",\n cidrv4: \"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\",\n cidrv6: \"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\",\n base64: \"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437\",\n base64url: \"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437\",\n json_string: \"JSON \u043D\u0438\u0437\",\n e164: \"E.164 \u043D\u043E\u043C\u0435\u0440\",\n jwt: \"JWT\",\n template_literal: \"\u0432\u0445\u043E\u0434\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u0447\u0438\u0441\u043B\u043E\",\n array: \"\u043C\u0430\u0441\u0438\u0432\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D instanceof ${issue.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${received}`;\n }\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue.origin ?? \"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430\"}`;\n return `\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue.origin ?? \"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${_issue.pattern}`;\n let invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D\";\n if (_issue.format === \"emoji\")\n invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E\";\n if (_issue.format === \"datetime\")\n invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E\";\n if (_issue.format === \"date\")\n invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430\";\n if (_issue.format === \"time\")\n invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E\";\n if (_issue.format === \"duration\")\n invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430\";\n return `${invalid_adj} ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${issue.keys.length > 1 ? \"\u0438\" : \"\"} \u043A\u043B\u044E\u0447${issue.keys.length > 1 ? \"\u043E\u0432\u0435\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${issue.origin}`;\n case \"invalid_union\":\n return \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434\";\n case \"invalid_element\":\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${issue.origin}`;\n default:\n return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"car\u00E0cters\", verb: \"contenir\" },\n file: { unit: \"bytes\", verb: \"contenir\" },\n array: { unit: \"elements\", verb: \"contenir\" },\n set: { unit: \"elements\", verb: \"contenir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"entrada\",\n email: \"adre\u00E7a electr\u00F2nica\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"durada ISO\",\n ipv4: \"adre\u00E7a IPv4\",\n ipv6: \"adre\u00E7a IPv6\",\n cidrv4: \"rang IPv4\",\n cidrv6: \"rang IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"cadena codificada en base64url\",\n json_string: \"cadena JSON\",\n e164: \"n\u00FAmero E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Tipus inv\u00E0lid: s'esperava instanceof ${issue.expected}, s'ha rebut ${received}`;\n }\n return `Tipus inv\u00E0lid: s'esperava ${expected}, s'ha rebut ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Valor inv\u00E0lid: s'esperava ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opci\u00F3 inv\u00E0lida: s'esperava una de ${util.joinValues(issue.values, \" o \")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"com a m\u00E0xim\" : \"menys de\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} contingu\u00E9s ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} fos ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"com a m\u00EDnim\" : \"m\u00E9s de\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Massa petit: s'esperava que ${issue.origin} contingu\u00E9s ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Massa petit: s'esperava que ${issue.origin} fos ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Format inv\u00E0lid: ha de comen\u00E7ar amb \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Format inv\u00E0lid: ha d'acabar amb \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Format inv\u00E0lid: ha d'incloure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Format inv\u00E0lid: ha de coincidir amb el patr\u00F3 ${_issue.pattern}`;\n return `Format inv\u00E0lid per a ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `N\u00FAmero inv\u00E0lid: ha de ser m\u00FAltiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clau${issue.keys.length > 1 ? \"s\" : \"\"} no reconeguda${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clau inv\u00E0lida a ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inv\u00E0lida\"; // Could also be \"Tipus d'uni\u00F3 inv\u00E0lid\" but \"Entrada inv\u00E0lida\" is more general\n case \"invalid_element\":\n return `Element inv\u00E0lid a ${issue.origin}`;\n default:\n return `Entrada inv\u00E0lida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znak\u016F\", verb: \"m\u00EDt\" },\n file: { unit: \"bajt\u016F\", verb: \"m\u00EDt\" },\n array: { unit: \"prvk\u016F\", verb: \"m\u00EDt\" },\n set: { unit: \"prvk\u016F\", verb: \"m\u00EDt\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"regul\u00E1rn\u00ED v\u00FDraz\",\n email: \"e-mailov\u00E1 adresa\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"datum a \u010Das ve form\u00E1tu ISO\",\n date: \"datum ve form\u00E1tu ISO\",\n time: \"\u010Das ve form\u00E1tu ISO\",\n duration: \"doba trv\u00E1n\u00ED ISO\",\n ipv4: \"IPv4 adresa\",\n ipv6: \"IPv6 adresa\",\n cidrv4: \"rozsah IPv4\",\n cidrv6: \"rozsah IPv6\",\n base64: \"\u0159et\u011Bzec zak\u00F3dovan\u00FD ve form\u00E1tu base64\",\n base64url: \"\u0159et\u011Bzec zak\u00F3dovan\u00FD ve form\u00E1tu base64url\",\n json_string: \"\u0159et\u011Bzec ve form\u00E1tu JSON\",\n e164: \"\u010D\u00EDslo E.164\",\n jwt: \"JWT\",\n template_literal: \"vstup\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u010D\u00EDslo\",\n string: \"\u0159et\u011Bzec\",\n function: \"funkce\",\n array: \"pole\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Neplatn\u00FD vstup: o\u010Dek\u00E1v\u00E1no instanceof ${issue.expected}, obdr\u017Eeno ${received}`;\n }\n return `Neplatn\u00FD vstup: o\u010Dek\u00E1v\u00E1no ${expected}, obdr\u017Eeno ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neplatn\u00FD vstup: o\u010Dek\u00E1v\u00E1no ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neplatn\u00E1 mo\u017Enost: o\u010Dek\u00E1v\u00E1na jedna z hodnot ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je p\u0159\u00EDli\u0161 velk\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED m\u00EDt ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"prvk\u016F\"}`;\n }\n return `Hodnota je p\u0159\u00EDli\u0161 velk\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED b\u00FDt ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je p\u0159\u00EDli\u0161 mal\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED m\u00EDt ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"prvk\u016F\"}`;\n }\n return `Hodnota je p\u0159\u00EDli\u0161 mal\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED b\u00FDt ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED za\u010D\u00EDnat na \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED kon\u010Dit na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED obsahovat \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED odpov\u00EDdat vzoru ${_issue.pattern}`;\n return `Neplatn\u00FD form\u00E1t ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neplatn\u00E9 \u010D\u00EDslo: mus\u00ED b\u00FDt n\u00E1sobkem ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nezn\u00E1m\u00E9 kl\u00ED\u010De: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neplatn\u00FD kl\u00ED\u010D v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neplatn\u00FD vstup\";\n case \"invalid_element\":\n return `Neplatn\u00E1 hodnota v ${issue.origin}`;\n default:\n return `Neplatn\u00FD vstup`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"havde\" },\n file: { unit: \"bytes\", verb: \"havde\" },\n array: { unit: \"elementer\", verb: \"indeholdt\" },\n set: { unit: \"elementer\", verb: \"indeholdt\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"e-mailadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkesl\u00E6t\",\n date: \"ISO-dato\",\n time: \"ISO-klokkesl\u00E6t\",\n duration: \"ISO-varighed\",\n ipv4: \"IPv4-omr\u00E5de\",\n ipv6: \"IPv6-omr\u00E5de\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodet streng\",\n base64url: \"base64url-kodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n string: \"streng\",\n number: \"tal\",\n boolean: \"boolean\",\n array: \"liste\",\n object: \"objekt\",\n set: \"s\u00E6t\",\n file: \"fil\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ugyldigt input: forventede instanceof ${issue.expected}, fik ${received}`;\n }\n return `Ugyldigt input: forventede ${expected}, fik ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig v\u00E6rdi: forventede ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldigt valg: forventede en af f\u00F8lgende ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing)\n return `For stor: forventede ${origin ?? \"value\"} ${sizing.verb} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor: forventede ${origin ?? \"value\"} havde ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing) {\n return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lille: forventede ${origin} havde ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: skal starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: skal ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: skal indeholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: skal matche m\u00F8nsteret ${_issue.pattern}`;\n return `Ugyldig ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldigt tal: skal v\u00E6re deleligt med ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukendte n\u00F8gler\" : \"Ukendt n\u00F8gle\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig n\u00F8gle i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldigt input: matcher ingen af de tilladte typer\";\n case \"invalid_element\":\n return `Ugyldig v\u00E6rdi i ${issue.origin}`;\n default:\n return `Ugyldigt input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"Zeichen\", verb: \"zu haben\" },\n file: { unit: \"Bytes\", verb: \"zu haben\" },\n array: { unit: \"Elemente\", verb: \"zu haben\" },\n set: { unit: \"Elemente\", verb: \"zu haben\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"Eingabe\",\n email: \"E-Mail-Adresse\",\n url: \"URL\",\n emoji: \"Emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-Datum und -Uhrzeit\",\n date: \"ISO-Datum\",\n time: \"ISO-Uhrzeit\",\n duration: \"ISO-Dauer\",\n ipv4: \"IPv4-Adresse\",\n ipv6: \"IPv6-Adresse\",\n cidrv4: \"IPv4-Bereich\",\n cidrv6: \"IPv6-Bereich\",\n base64: \"Base64-codierter String\",\n base64url: \"Base64-URL-codierter String\",\n json_string: \"JSON-String\",\n e164: \"E.164-Nummer\",\n jwt: \"JWT\",\n template_literal: \"Eingabe\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"Zahl\",\n array: \"Array\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ung\u00FCltige Eingabe: erwartet instanceof ${issue.expected}, erhalten ${received}`;\n }\n return `Ung\u00FCltige Eingabe: erwartet ${expected}, erhalten ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ung\u00FCltige Eingabe: erwartet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ung\u00FCltige Option: erwartet eine von ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Zu gro\u00DF: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"Elemente\"} hat`;\n return `Zu gro\u00DF: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ist`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} hat`;\n }\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ist`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ung\u00FCltiger String: muss mit \"${_issue.prefix}\" beginnen`;\n if (_issue.format === \"ends_with\")\n return `Ung\u00FCltiger String: muss mit \"${_issue.suffix}\" enden`;\n if (_issue.format === \"includes\")\n return `Ung\u00FCltiger String: muss \"${_issue.includes}\" enthalten`;\n if (_issue.format === \"regex\")\n return `Ung\u00FCltiger String: muss dem Muster ${_issue.pattern} entsprechen`;\n return `Ung\u00FCltig: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ung\u00FCltige Zahl: muss ein Vielfaches von ${issue.divisor} sein`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Unbekannte Schl\u00FCssel\" : \"Unbekannter Schl\u00FCssel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ung\u00FCltiger Schl\u00FCssel in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ung\u00FCltige Eingabe\";\n case \"invalid_element\":\n return `Ung\u00FCltiger Wert in ${issue.origin}`;\n default:\n return `Ung\u00FCltige Eingabe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"characters\", verb: \"to have\" },\n file: { unit: \"bytes\", verb: \"to have\" },\n array: { unit: \"items\", verb: \"to have\" },\n set: { unit: \"items\", verb: \"to have\" },\n map: { unit: \"entries\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n mac: \"MAC address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n // type names: missing keys = do not translate (use raw value via ?? fallback)\n const TypeDictionary = {\n // Compatibility: \"nan\" -> \"NaN\" for display\n nan: \"NaN\",\n // All other type names omitted - they fall back to raw values via ?? operator\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n return `Invalid input: expected ${expected}, received ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Invalid string: must start with \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Invalid string: must end with \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Invalid string: must include \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Invalid string: must match pattern ${_issue.pattern}`;\n return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Invalid number: must be a multiple of ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Invalid key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Invalid input\";\n case \"invalid_element\":\n return `Invalid value in ${issue.origin}`;\n default:\n return `Invalid input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karaktrojn\", verb: \"havi\" },\n file: { unit: \"bajtojn\", verb: \"havi\" },\n array: { unit: \"elementojn\", verb: \"havi\" },\n set: { unit: \"elementojn\", verb: \"havi\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"enigo\",\n email: \"retadreso\",\n url: \"URL\",\n emoji: \"emo\u011Dio\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datotempo\",\n date: \"ISO-dato\",\n time: \"ISO-tempo\",\n duration: \"ISO-da\u016Dro\",\n ipv4: \"IPv4-adreso\",\n ipv6: \"IPv6-adreso\",\n cidrv4: \"IPv4-rango\",\n cidrv6: \"IPv6-rango\",\n base64: \"64-ume kodita karaktraro\",\n base64url: \"URL-64-ume kodita karaktraro\",\n json_string: \"JSON-karaktraro\",\n e164: \"E.164-nombro\",\n jwt: \"JWT\",\n template_literal: \"enigo\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"nombro\",\n array: \"tabelo\",\n null: \"senvalora\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Nevalida enigo: atendi\u011Dis instanceof ${issue.expected}, ricevi\u011Dis ${received}`;\n }\n return `Nevalida enigo: atendi\u011Dis ${expected}, ricevi\u011Dis ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nevalida enigo: atendi\u011Dis ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nevalida opcio: atendi\u011Dis unu el ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Tro granda: atendi\u011Dis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementojn\"}`;\n return `Tro granda: atendi\u011Dis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Tro malgranda: atendi\u011Dis ke ${issue.origin} havu ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Tro malgranda: atendi\u011Dis ke ${issue.origin} estu ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nevalida karaktraro: devas komenci\u011Di per \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nevalida karaktraro: devas fini\u011Di per \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nevalida karaktraro: devas inkluzivi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`;\n return `Nevalida ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nevalida nombro: devas esti oblo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nekonata${issue.keys.length > 1 ? \"j\" : \"\"} \u015Dlosilo${issue.keys.length > 1 ? \"j\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nevalida \u015Dlosilo en ${issue.origin}`;\n case \"invalid_union\":\n return \"Nevalida enigo\";\n case \"invalid_element\":\n return `Nevalida valoro en ${issue.origin}`;\n default:\n return `Nevalida enigo`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"tener\" },\n file: { unit: \"bytes\", verb: \"tener\" },\n array: { unit: \"elementos\", verb: \"tener\" },\n set: { unit: \"elementos\", verb: \"tener\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"entrada\",\n email: \"direcci\u00F3n de correo electr\u00F3nico\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"fecha y hora ISO\",\n date: \"fecha ISO\",\n time: \"hora ISO\",\n duration: \"duraci\u00F3n ISO\",\n ipv4: \"direcci\u00F3n IPv4\",\n ipv6: \"direcci\u00F3n IPv6\",\n cidrv4: \"rango IPv4\",\n cidrv6: \"rango IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"URL codificada en base64\",\n json_string: \"cadena JSON\",\n e164: \"n\u00FAmero E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n string: \"texto\",\n number: \"n\u00FAmero\",\n boolean: \"booleano\",\n array: \"arreglo\",\n object: \"objeto\",\n set: \"conjunto\",\n file: \"archivo\",\n date: \"fecha\",\n bigint: \"n\u00FAmero grande\",\n symbol: \"s\u00EDmbolo\",\n undefined: \"indefinido\",\n null: \"nulo\",\n function: \"funci\u00F3n\",\n map: \"mapa\",\n record: \"registro\",\n tuple: \"tupla\",\n enum: \"enumeraci\u00F3n\",\n union: \"uni\u00F3n\",\n literal: \"literal\",\n promise: \"promesa\",\n void: \"vac\u00EDo\",\n never: \"nunca\",\n unknown: \"desconocido\",\n any: \"cualquiera\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Entrada inv\u00E1lida: se esperaba instanceof ${issue.expected}, recibido ${received}`;\n }\n return `Entrada inv\u00E1lida: se esperaba ${expected}, recibido ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inv\u00E1lida: se esperaba ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opci\u00F3n inv\u00E1lida: se esperaba una de ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing)\n return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} fuera ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing) {\n return `Demasiado peque\u00F1o: se esperaba que ${origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Demasiado peque\u00F1o: se esperaba que ${origin} fuera ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Cadena inv\u00E1lida: debe comenzar con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Cadena inv\u00E1lida: debe terminar en \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Cadena inv\u00E1lida: debe incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Cadena inv\u00E1lida: debe coincidir con el patr\u00F3n ${_issue.pattern}`;\n return `Inv\u00E1lido ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `N\u00FAmero inv\u00E1lido: debe ser m\u00FAltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Llave${issue.keys.length > 1 ? \"s\" : \"\"} desconocida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Llave inv\u00E1lida en ${TypeDictionary[issue.origin] ?? issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inv\u00E1lida\";\n case \"invalid_element\":\n return `Valor inv\u00E1lido en ${TypeDictionary[issue.origin] ?? issue.origin}`;\n default:\n return `Entrada inv\u00E1lida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n file: { unit: \"\u0628\u0627\u06CC\u062A\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n array: { unit: \"\u0622\u06CC\u062A\u0645\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n set: { unit: \"\u0622\u06CC\u062A\u0645\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0648\u0631\u0648\u062F\u06CC\",\n email: \"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644\",\n url: \"URL\",\n emoji: \"\u0627\u06CC\u0645\u0648\u062C\u06CC\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648\",\n date: \"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648\",\n time: \"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648\",\n duration: \"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648\",\n ipv4: \"IPv4 \u0622\u062F\u0631\u0633\",\n ipv6: \"IPv6 \u0622\u062F\u0631\u0633\",\n cidrv4: \"IPv4 \u062F\u0627\u0645\u0646\u0647\",\n cidrv6: \"IPv6 \u062F\u0627\u0645\u0646\u0647\",\n base64: \"base64-encoded \u0631\u0634\u062A\u0647\",\n base64url: \"base64url-encoded \u0631\u0634\u062A\u0647\",\n json_string: \"JSON \u0631\u0634\u062A\u0647\",\n e164: \"E.164 \u0639\u062F\u062F\",\n jwt: \"JWT\",\n template_literal: \"\u0648\u0631\u0648\u062F\u06CC\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u0639\u062F\u062F\",\n array: \"\u0622\u0631\u0627\u06CC\u0647\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A instanceof ${issue.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${received} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;\n }\n return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${received} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${util.stringifyPrimitive(issue.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`;\n }\n return `\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${util.joinValues(issue.values, \"|\")} \u0645\u06CC\u200C\u0628\u0648\u062F`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${issue.origin ?? \"\u0645\u0642\u062F\u0627\u0631\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0635\u0631\"} \u0628\u0627\u0634\u062F`;\n }\n return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${issue.origin ?? \"\u0645\u0642\u062F\u0627\u0631\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} \u0628\u0627\u0634\u062F`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} ${sizing.unit} \u0628\u0627\u0634\u062F`;\n }\n return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} \u0628\u0627\u0634\u062F`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \"${_issue.prefix}\" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`;\n }\n if (_issue.format === \"ends_with\") {\n return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \"${_issue.suffix}\" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`;\n }\n if (_issue.format === \"includes\") {\n return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 \"${_issue.includes}\" \u0628\u0627\u0634\u062F`;\n }\n if (_issue.format === \"regex\") {\n return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${_issue.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`;\n }\n return `${FormatDictionary[_issue.format] ?? issue.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`;\n }\n case \"not_multiple_of\":\n return `\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${issue.divisor} \u0628\u0627\u0634\u062F`;\n case \"unrecognized_keys\":\n return `\u06A9\u0644\u06CC\u062F${issue.keys.length > 1 ? \"\u0647\u0627\u06CC\" : \"\"} \u0646\u0627\u0634\u0646\u0627\u0633: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${issue.origin}`;\n case \"invalid_union\":\n return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`;\n case \"invalid_element\":\n return `\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${issue.origin}`;\n default:\n return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"merkki\u00E4\", subject: \"merkkijonon\" },\n file: { unit: \"tavua\", subject: \"tiedoston\" },\n array: { unit: \"alkiota\", subject: \"listan\" },\n set: { unit: \"alkiota\", subject: \"joukon\" },\n number: { unit: \"\", subject: \"luvun\" },\n bigint: { unit: \"\", subject: \"suuren kokonaisluvun\" },\n int: { unit: \"\", subject: \"kokonaisluvun\" },\n date: { unit: \"\", subject: \"p\u00E4iv\u00E4m\u00E4\u00E4r\u00E4n\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"s\u00E4\u00E4nn\u00F6llinen lauseke\",\n email: \"s\u00E4hk\u00F6postiosoite\",\n url: \"URL-osoite\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-aikaleima\",\n date: \"ISO-p\u00E4iv\u00E4m\u00E4\u00E4r\u00E4\",\n time: \"ISO-aika\",\n duration: \"ISO-kesto\",\n ipv4: \"IPv4-osoite\",\n ipv6: \"IPv6-osoite\",\n cidrv4: \"IPv4-alue\",\n cidrv6: \"IPv6-alue\",\n base64: \"base64-koodattu merkkijono\",\n base64url: \"base64url-koodattu merkkijono\",\n json_string: \"JSON-merkkijono\",\n e164: \"E.164-luku\",\n jwt: \"JWT\",\n template_literal: \"templaattimerkkijono\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Virheellinen tyyppi: odotettiin instanceof ${issue.expected}, oli ${received}`;\n }\n return `Virheellinen tyyppi: odotettiin ${expected}, oli ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Virheellinen sy\u00F6te: t\u00E4ytyy olla ${util.stringifyPrimitive(issue.values[0])}`;\n return `Virheellinen valinta: t\u00E4ytyy olla yksi seuraavista: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian suuri: ${sizing.subject} t\u00E4ytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian suuri: arvon t\u00E4ytyy olla ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian pieni: ${sizing.subject} t\u00E4ytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian pieni: arvon t\u00E4ytyy olla ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Virheellinen sy\u00F6te: t\u00E4ytyy alkaa \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Virheellinen sy\u00F6te: t\u00E4ytyy loppua \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Virheellinen sy\u00F6te: t\u00E4ytyy sis\u00E4lt\u00E4\u00E4 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\") {\n return `Virheellinen sy\u00F6te: t\u00E4ytyy vastata s\u00E4\u00E4nn\u00F6llist\u00E4 lauseketta ${_issue.pattern}`;\n }\n return `Virheellinen ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Virheellinen luku: t\u00E4ytyy olla luvun ${issue.divisor} monikerta`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Tuntemattomat avaimet\" : \"Tuntematon avain\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Virheellinen avain tietueessa\";\n case \"invalid_union\":\n return \"Virheellinen unioni\";\n case \"invalid_element\":\n return \"Virheellinen arvo joukossa\";\n default:\n return `Virheellinen sy\u00F6te`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caract\u00E8res\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n set: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"entr\u00E9e\",\n email: \"adresse e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date et heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"dur\u00E9e ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"cha\u00EEne encod\u00E9e en base64\",\n base64url: \"cha\u00EEne encod\u00E9e en base64url\",\n json_string: \"cha\u00EEne JSON\",\n e164: \"num\u00E9ro E.164\",\n jwt: \"JWT\",\n template_literal: \"entr\u00E9e\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"nombre\",\n array: \"tableau\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Entr\u00E9e invalide : instanceof ${issue.expected} attendu, ${received} re\u00E7u`;\n }\n return `Entr\u00E9e invalide : ${expected} attendu, ${received} re\u00E7u`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entr\u00E9e invalide : ${util.stringifyPrimitive(issue.values[0])} attendu`;\n return `Option invalide : une valeur parmi ${util.joinValues(issue.values, \"|\")} attendue`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u00E9l\u00E9ment(s)\"}`;\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit \u00EAtre ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : ${issue.origin} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : ${issue.origin} doit \u00EAtre ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Cha\u00EEne invalide : doit commencer par \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Cha\u00EEne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Cha\u00EEne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Cha\u00EEne invalide : doit correspondre au mod\u00E8le ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit \u00EAtre un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Cl\u00E9${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Cl\u00E9 invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entr\u00E9e invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entr\u00E9e invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caract\u00E8res\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n set: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"entr\u00E9e\",\n email: \"adresse courriel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date-heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"dur\u00E9e ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"cha\u00EEne encod\u00E9e en base64\",\n base64url: \"cha\u00EEne encod\u00E9e en base64url\",\n json_string: \"cha\u00EEne JSON\",\n e164: \"num\u00E9ro E.164\",\n jwt: \"JWT\",\n template_literal: \"entr\u00E9e\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Entr\u00E9e invalide : attendu instanceof ${issue.expected}, re\u00E7u ${received}`;\n }\n return `Entr\u00E9e invalide : attendu ${expected}, re\u00E7u ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entr\u00E9e invalide : attendu ${util.stringifyPrimitive(issue.values[0])}`;\n return `Option invalide : attendu l'une des valeurs suivantes ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"\u2264\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} soit ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"\u2265\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Cha\u00EEne invalide : doit commencer par \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Cha\u00EEne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Cha\u00EEne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Cha\u00EEne invalide : doit correspondre au motif ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit \u00EAtre un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Cl\u00E9${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Cl\u00E9 invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entr\u00E9e invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entr\u00E9e invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n // Hebrew labels + grammatical gender\n const TypeNames = {\n string: { label: \"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA\", gender: \"f\" },\n number: { label: \"\u05DE\u05E1\u05E4\u05E8\", gender: \"m\" },\n boolean: { label: \"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9\", gender: \"m\" },\n bigint: { label: \"BigInt\", gender: \"m\" },\n date: { label: \"\u05EA\u05D0\u05E8\u05D9\u05DA\", gender: \"m\" },\n array: { label: \"\u05DE\u05E2\u05E8\u05DA\", gender: \"m\" },\n object: { label: \"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8\", gender: \"m\" },\n null: { label: \"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)\", gender: \"m\" },\n undefined: { label: \"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)\", gender: \"m\" },\n symbol: { label: \"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)\", gender: \"m\" },\n function: { label: \"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4\", gender: \"f\" },\n map: { label: \"\u05DE\u05E4\u05D4 (Map)\", gender: \"f\" },\n set: { label: \"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)\", gender: \"f\" },\n file: { label: \"\u05E7\u05D5\u05D1\u05E5\", gender: \"m\" },\n promise: { label: \"Promise\", gender: \"m\" },\n NaN: { label: \"NaN\", gender: \"m\" },\n unknown: { label: \"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2\", gender: \"m\" },\n value: { label: \"\u05E2\u05E8\u05DA\", gender: \"m\" },\n };\n // Sizing units for size-related messages + localized origin labels\n const Sizable = {\n string: { unit: \"\u05EA\u05D5\u05D5\u05D9\u05DD\", shortLabel: \"\u05E7\u05E6\u05E8\", longLabel: \"\u05D0\u05E8\u05D5\u05DA\" },\n file: { unit: \"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD\", shortLabel: \"\u05E7\u05D8\u05DF\", longLabel: \"\u05D2\u05D3\u05D5\u05DC\" },\n array: { unit: \"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD\", shortLabel: \"\u05E7\u05D8\u05DF\", longLabel: \"\u05D2\u05D3\u05D5\u05DC\" },\n set: { unit: \"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD\", shortLabel: \"\u05E7\u05D8\u05DF\", longLabel: \"\u05D2\u05D3\u05D5\u05DC\" },\n number: { unit: \"\", shortLabel: \"\u05E7\u05D8\u05DF\", longLabel: \"\u05D2\u05D3\u05D5\u05DC\" }, // no unit\n };\n // Helpers \u2014 labels, articles, and verbs\n const typeEntry = (t) => (t ? TypeNames[t] : undefined);\n const typeLabel = (t) => {\n const e = typeEntry(t);\n if (e)\n return e.label;\n // fallback: show raw string if unknown\n return t ?? TypeNames.unknown.label;\n };\n const withDefinite = (t) => `\u05D4${typeLabel(t)}`;\n const verbFor = (t) => {\n const e = typeEntry(t);\n const gender = e?.gender ?? \"m\";\n return gender === \"f\" ? \"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA\" : \"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA\";\n };\n const getSizing = (origin) => {\n if (!origin)\n return null;\n return Sizable[origin] ?? null;\n };\n const FormatDictionary = {\n regex: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n email: { label: \"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC\", gender: \"f\" },\n url: { label: \"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA\", gender: \"f\" },\n emoji: { label: \"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9\", gender: \"m\" },\n uuid: { label: \"UUID\", gender: \"m\" },\n nanoid: { label: \"nanoid\", gender: \"m\" },\n guid: { label: \"GUID\", gender: \"m\" },\n cuid: { label: \"cuid\", gender: \"m\" },\n cuid2: { label: \"cuid2\", gender: \"m\" },\n ulid: { label: \"ULID\", gender: \"m\" },\n xid: { label: \"XID\", gender: \"m\" },\n ksuid: { label: \"KSUID\", gender: \"m\" },\n datetime: { label: \"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO\", gender: \"m\" },\n date: { label: \"\u05EA\u05D0\u05E8\u05D9\u05DA ISO\", gender: \"m\" },\n time: { label: \"\u05D6\u05DE\u05DF ISO\", gender: \"m\" },\n duration: { label: \"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO\", gender: \"m\" },\n ipv4: { label: \"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4\", gender: \"f\" },\n ipv6: { label: \"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6\", gender: \"f\" },\n cidrv4: { label: \"\u05D8\u05D5\u05D5\u05D7 IPv4\", gender: \"m\" },\n cidrv6: { label: \"\u05D8\u05D5\u05D5\u05D7 IPv6\", gender: \"m\" },\n base64: { label: \"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64\", gender: \"f\" },\n base64url: { label: \"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA\", gender: \"f\" },\n json_string: { label: \"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON\", gender: \"f\" },\n e164: { label: \"\u05DE\u05E1\u05E4\u05E8 E.164\", gender: \"m\" },\n jwt: { label: \"JWT\", gender: \"m\" },\n ends_with: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n includes: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n lowercase: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n starts_with: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n uppercase: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n // Expected type: show without definite article for clearer Hebrew\n const expectedKey = issue.expected;\n const expected = TypeDictionary[expectedKey ?? \"\"] ?? typeLabel(expectedKey);\n // Received: show localized label if known, otherwise constructor/raw\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? TypeNames[receivedType]?.label ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA instanceof ${issue.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${received}`;\n }\n return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${received}`;\n }\n case \"invalid_value\": {\n if (issue.values.length === 1) {\n return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${util.stringifyPrimitive(issue.values[0])}`;\n }\n // Join values with proper Hebrew formatting\n const stringified = issue.values.map((v) => util.stringifyPrimitive(v));\n if (issue.values.length === 2) {\n return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${stringified[0]} \u05D0\u05D5 ${stringified[1]}`;\n }\n // For 3+ values: \"a\", \"b\" \u05D0\u05D5 \"c\"\n const lastValue = stringified[stringified.length - 1];\n const restValues = stringified.slice(0, -1).join(\", \");\n return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${restValues} \u05D0\u05D5 ${lastValue}`;\n }\n case \"too_big\": {\n const sizing = getSizing(issue.origin);\n const subject = withDefinite(issue.origin ?? \"value\");\n if (issue.origin === \"string\") {\n // Special handling for strings - more natural Hebrew\n return `${sizing?.longLabel ?? \"\u05D0\u05E8\u05D5\u05DA\"} \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${issue.maximum.toString()} ${sizing?.unit ?? \"\"} ${issue.inclusive ? \"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA\" : \"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8\"}`.trim();\n }\n if (issue.origin === \"number\") {\n // Natural Hebrew for numbers\n const comparison = issue.inclusive ? `\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${issue.maximum}` : `\u05E7\u05D8\u05DF \u05DE-${issue.maximum}`;\n return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${comparison}`;\n }\n if (issue.origin === \"array\" || issue.origin === \"set\") {\n // Natural Hebrew for arrays and sets\n const verb = issue.origin === \"set\" ? \"\u05E6\u05E8\u05D9\u05DB\u05D4\" : \"\u05E6\u05E8\u05D9\u05DA\";\n const comparison = issue.inclusive\n ? `${issue.maximum} ${sizing?.unit ?? \"\"} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`\n : `\u05E4\u05D7\u05D5\u05EA \u05DE-${issue.maximum} ${sizing?.unit ?? \"\"}`;\n return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${comparison}`.trim();\n }\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const be = verbFor(issue.origin ?? \"value\");\n if (sizing?.unit) {\n return `${sizing.longLabel} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n }\n return `${sizing?.longLabel ?? \"\u05D2\u05D3\u05D5\u05DC\"} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const sizing = getSizing(issue.origin);\n const subject = withDefinite(issue.origin ?? \"value\");\n if (issue.origin === \"string\") {\n // Special handling for strings - more natural Hebrew\n return `${sizing?.shortLabel ?? \"\u05E7\u05E6\u05E8\"} \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${issue.minimum.toString()} ${sizing?.unit ?? \"\"} ${issue.inclusive ? \"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8\" : \"\u05DC\u05E4\u05D7\u05D5\u05EA\"}`.trim();\n }\n if (issue.origin === \"number\") {\n // Natural Hebrew for numbers\n const comparison = issue.inclusive ? `\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${issue.minimum}` : `\u05D2\u05D3\u05D5\u05DC \u05DE-${issue.minimum}`;\n return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${comparison}`;\n }\n if (issue.origin === \"array\" || issue.origin === \"set\") {\n // Natural Hebrew for arrays and sets\n const verb = issue.origin === \"set\" ? \"\u05E6\u05E8\u05D9\u05DB\u05D4\" : \"\u05E6\u05E8\u05D9\u05DA\";\n // Special case for singular (minimum === 1)\n if (issue.minimum === 1 && issue.inclusive) {\n const singularPhrase = issue.origin === \"set\" ? \"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3\" : \"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3\";\n return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${singularPhrase}`;\n }\n const comparison = issue.inclusive\n ? `${issue.minimum} ${sizing?.unit ?? \"\"} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`\n : `\u05D9\u05D5\u05EA\u05E8 \u05DE-${issue.minimum} ${sizing?.unit ?? \"\"}`;\n return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${comparison}`.trim();\n }\n const adj = issue.inclusive ? \">=\" : \">\";\n const be = verbFor(issue.origin ?? \"value\");\n if (sizing?.unit) {\n return `${sizing.shortLabel} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `${sizing?.shortLabel ?? \"\u05E7\u05D8\u05DF\"} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n // These apply to strings \u2014 use feminine grammar + \u05D4\u05F3 \u05D4\u05D9\u05D3\u05D9\u05E2\u05D4\n if (_issue.format === \"starts_with\")\n return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${_issue.pattern}`;\n // Handle gender agreement for formats\n const nounEntry = FormatDictionary[_issue.format];\n const noun = nounEntry?.label ?? _issue.format;\n const gender = nounEntry?.gender ?? \"m\";\n const adjective = gender === \"f\" ? \"\u05EA\u05E7\u05D9\u05E0\u05D4\" : \"\u05EA\u05E7\u05D9\u05DF\";\n return `${noun} \u05DC\u05D0 ${adjective}`;\n }\n case \"not_multiple_of\":\n return `\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u05DE\u05E4\u05EA\u05D7${issue.keys.length > 1 ? \"\u05D5\u05EA\" : \"\"} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${issue.keys.length > 1 ? \"\u05D9\u05DD\" : \"\u05D4\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\": {\n return `\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8`;\n }\n case \"invalid_union\":\n return \"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF\";\n case \"invalid_element\": {\n const place = withDefinite(issue.origin ?? \"array\");\n return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${place}`;\n }\n default:\n return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"legyen\" },\n file: { unit: \"byte\", verb: \"legyen\" },\n array: { unit: \"elem\", verb: \"legyen\" },\n set: { unit: \"elem\", verb: \"legyen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"bemenet\",\n email: \"email c\u00EDm\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO id\u0151b\u00E9lyeg\",\n date: \"ISO d\u00E1tum\",\n time: \"ISO id\u0151\",\n duration: \"ISO id\u0151intervallum\",\n ipv4: \"IPv4 c\u00EDm\",\n ipv6: \"IPv6 c\u00EDm\",\n cidrv4: \"IPv4 tartom\u00E1ny\",\n cidrv6: \"IPv6 tartom\u00E1ny\",\n base64: \"base64-k\u00F3dolt string\",\n base64url: \"base64url-k\u00F3dolt string\",\n json_string: \"JSON string\",\n e164: \"E.164 sz\u00E1m\",\n jwt: \"JWT\",\n template_literal: \"bemenet\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"sz\u00E1m\",\n array: \"t\u00F6mb\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u00C9rv\u00E9nytelen bemenet: a v\u00E1rt \u00E9rt\u00E9k instanceof ${issue.expected}, a kapott \u00E9rt\u00E9k ${received}`;\n }\n return `\u00C9rv\u00E9nytelen bemenet: a v\u00E1rt \u00E9rt\u00E9k ${expected}, a kapott \u00E9rt\u00E9k ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u00C9rv\u00E9nytelen bemenet: a v\u00E1rt \u00E9rt\u00E9k ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u00C9rv\u00E9nytelen opci\u00F3: valamelyik \u00E9rt\u00E9k v\u00E1rt ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `T\u00FAl nagy: ${issue.origin ?? \"\u00E9rt\u00E9k\"} m\u00E9rete t\u00FAl nagy ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elem\"}`;\n return `T\u00FAl nagy: a bemeneti \u00E9rt\u00E9k ${issue.origin ?? \"\u00E9rt\u00E9k\"} t\u00FAl nagy: ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `T\u00FAl kicsi: a bemeneti \u00E9rt\u00E9k ${issue.origin} m\u00E9rete t\u00FAl kicsi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `T\u00FAl kicsi: a bemeneti \u00E9rt\u00E9k ${issue.origin} t\u00FAl kicsi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u00C9rv\u00E9nytelen string: \"${_issue.prefix}\" \u00E9rt\u00E9kkel kell kezd\u0151dnie`;\n if (_issue.format === \"ends_with\")\n return `\u00C9rv\u00E9nytelen string: \"${_issue.suffix}\" \u00E9rt\u00E9kkel kell v\u00E9gz\u0151dnie`;\n if (_issue.format === \"includes\")\n return `\u00C9rv\u00E9nytelen string: \"${_issue.includes}\" \u00E9rt\u00E9ket kell tartalmaznia`;\n if (_issue.format === \"regex\")\n return `\u00C9rv\u00E9nytelen string: ${_issue.pattern} mint\u00E1nak kell megfelelnie`;\n return `\u00C9rv\u00E9nytelen ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u00C9rv\u00E9nytelen sz\u00E1m: ${issue.divisor} t\u00F6bbsz\u00F6r\u00F6s\u00E9nek kell lennie`;\n case \"unrecognized_keys\":\n return `Ismeretlen kulcs${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u00C9rv\u00E9nytelen kulcs ${issue.origin}`;\n case \"invalid_union\":\n return \"\u00C9rv\u00E9nytelen bemenet\";\n case \"invalid_element\":\n return `\u00C9rv\u00E9nytelen \u00E9rt\u00E9k: ${issue.origin}`;\n default:\n return `\u00C9rv\u00E9nytelen bemenet`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nfunction getArmenianPlural(count, one, many) {\n return Math.abs(count) === 1 ? one : many;\n}\nfunction withDefiniteArticle(word) {\n if (!word)\n return \"\";\n const vowels = [\"\u0561\", \"\u0565\", \"\u0568\", \"\u056B\", \"\u0578\", \"\u0578\u0582\", \"\u0585\"];\n const lastChar = word[word.length - 1];\n return word + (vowels.includes(lastChar) ? \"\u0576\" : \"\u0568\");\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"\u0576\u0577\u0561\u0576\",\n many: \"\u0576\u0577\u0561\u0576\u0576\u0565\u0580\",\n },\n verb: \"\u0578\u0582\u0576\u0565\u0576\u0561\u056C\",\n },\n file: {\n unit: {\n one: \"\u0562\u0561\u0575\u0569\",\n many: \"\u0562\u0561\u0575\u0569\u0565\u0580\",\n },\n verb: \"\u0578\u0582\u0576\u0565\u0576\u0561\u056C\",\n },\n array: {\n unit: {\n one: \"\u057F\u0561\u0580\u0580\",\n many: \"\u057F\u0561\u0580\u0580\u0565\u0580\",\n },\n verb: \"\u0578\u0582\u0576\u0565\u0576\u0561\u056C\",\n },\n set: {\n unit: {\n one: \"\u057F\u0561\u0580\u0580\",\n many: \"\u057F\u0561\u0580\u0580\u0565\u0580\",\n },\n verb: \"\u0578\u0582\u0576\u0565\u0576\u0561\u056C\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0574\u0578\u0582\u057F\u0584\",\n email: \"\u0567\u056C. \u0570\u0561\u057D\u0581\u0565\",\n url: \"URL\",\n emoji: \"\u0567\u0574\u0578\u057B\u056B\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E \u0587 \u056A\u0561\u0574\",\n date: \"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E\",\n time: \"ISO \u056A\u0561\u0574\",\n duration: \"ISO \u057F\u0587\u0578\u0572\u0578\u0582\u0569\u0575\u0578\u0582\u0576\",\n ipv4: \"IPv4 \u0570\u0561\u057D\u0581\u0565\",\n ipv6: \"IPv6 \u0570\u0561\u057D\u0581\u0565\",\n cidrv4: \"IPv4 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584\",\n cidrv6: \"IPv6 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584\",\n base64: \"base64 \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572\",\n base64url: \"base64url \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572\",\n json_string: \"JSON \u057F\u0578\u0572\",\n e164: \"E.164 \u0570\u0561\u0574\u0561\u0580\",\n jwt: \"JWT\",\n template_literal: \"\u0574\u0578\u0582\u057F\u0584\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u0569\u056B\u057E\",\n array: \"\u0566\u0561\u0576\u0563\u057E\u0561\u056E\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 instanceof ${issue.expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${received}`;\n }\n return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${util.stringifyPrimitive(issue.values[1])}`;\n return `\u054D\u056D\u0561\u056C \u057F\u0561\u0580\u0562\u0565\u0580\u0561\u056F\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 \u0570\u0565\u057F\u0587\u0575\u0561\u056C\u0576\u0565\u0580\u056B\u0581 \u0574\u0565\u056F\u0568\u055D ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getArmenianPlural(maxValue, sizing.unit.one, sizing.unit.many);\n return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue.origin ?? \"\u0561\u0580\u056A\u0565\u0584\")} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue.origin ?? \"\u0561\u0580\u056A\u0565\u0584\")} \u056C\u056B\u0576\u056B ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getArmenianPlural(minValue, sizing.unit.one, sizing.unit.many);\n return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue.origin)} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue.origin)} \u056C\u056B\u0576\u056B ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057D\u056F\u057D\u057E\u056B \"${_issue.prefix}\"-\u0578\u057E`;\n if (_issue.format === \"ends_with\")\n return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0561\u057E\u0561\u0580\u057F\u057E\u056B \"${_issue.suffix}\"-\u0578\u057E`;\n if (_issue.format === \"includes\")\n return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057A\u0561\u0580\u0578\u0582\u0576\u0561\u056F\u056B \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0570\u0561\u0574\u0561\u057A\u0561\u057F\u0561\u057D\u056D\u0561\u0576\u056B ${_issue.pattern} \u0571\u0587\u0561\u0579\u0561\u0583\u056B\u0576`;\n return `\u054D\u056D\u0561\u056C ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u054D\u056D\u0561\u056C \u0569\u056B\u057E\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0562\u0561\u0566\u0574\u0561\u057A\u0561\u057F\u056B\u056F \u056C\u056B\u0576\u056B ${issue.divisor}-\u056B`;\n case \"unrecognized_keys\":\n return `\u0549\u0573\u0561\u0576\u0561\u0579\u057E\u0561\u056E \u0562\u0561\u0576\u0561\u056C\u056B${issue.keys.length > 1 ? \"\u0576\u0565\u0580\" : \"\"}. ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u054D\u056D\u0561\u056C \u0562\u0561\u0576\u0561\u056C\u056B ${withDefiniteArticle(issue.origin)}-\u0578\u0582\u0574`;\n case \"invalid_union\":\n return \"\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\";\n case \"invalid_element\":\n return `\u054D\u056D\u0561\u056C \u0561\u0580\u056A\u0565\u0584 ${withDefiniteArticle(issue.origin)}-\u0578\u0582\u0574`;\n default:\n return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"memiliki\" },\n file: { unit: \"byte\", verb: \"memiliki\" },\n array: { unit: \"item\", verb: \"memiliki\" },\n set: { unit: \"item\", verb: \"memiliki\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"alamat email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tanggal dan waktu format ISO\",\n date: \"tanggal format ISO\",\n time: \"jam format ISO\",\n duration: \"durasi format ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"rentang alamat IPv4\",\n cidrv6: \"rentang alamat IPv6\",\n base64: \"string dengan enkode base64\",\n base64url: \"string dengan enkode base64url\",\n json_string: \"string JSON\",\n e164: \"angka E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Input tidak valid: diharapkan instanceof ${issue.expected}, diterima ${received}`;\n }\n return `Input tidak valid: diharapkan ${expected}, diterima ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak valid: diharapkan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak valid: diharapkan salah satu dari ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} menjadi ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak valid: harus dimulai dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak valid: harus berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak valid: harus menyertakan \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak valid: harus sesuai pola ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} tidak valid`;\n }\n case \"not_multiple_of\":\n return `Angka tidak valid: harus kelipatan dari ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak valid di ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak valid\";\n case \"invalid_element\":\n return `Nilai tidak valid di ${issue.origin}`;\n default:\n return `Input tidak valid`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"stafi\", verb: \"a\u00F0 hafa\" },\n file: { unit: \"b\u00E6ti\", verb: \"a\u00F0 hafa\" },\n array: { unit: \"hluti\", verb: \"a\u00F0 hafa\" },\n set: { unit: \"hluti\", verb: \"a\u00F0 hafa\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"gildi\",\n email: \"netfang\",\n url: \"vefsl\u00F3\u00F0\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dagsetning og t\u00EDmi\",\n date: \"ISO dagsetning\",\n time: \"ISO t\u00EDmi\",\n duration: \"ISO t\u00EDmalengd\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded strengur\",\n base64url: \"base64url-encoded strengur\",\n json_string: \"JSON strengur\",\n e164: \"E.164 t\u00F6lugildi\",\n jwt: \"JWT\",\n template_literal: \"gildi\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"n\u00FAmer\",\n array: \"fylki\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Rangt gildi: \u00DE\u00FA sl\u00F3st inn ${received} \u00FEar sem \u00E1 a\u00F0 vera instanceof ${issue.expected}`;\n }\n return `Rangt gildi: \u00DE\u00FA sl\u00F3st inn ${received} \u00FEar sem \u00E1 a\u00F0 vera ${expected}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Rangt gildi: gert r\u00E1\u00F0 fyrir ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u00D3gilt val: m\u00E1 vera eitt af eftirfarandi ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Of st\u00F3rt: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin ?? \"gildi\"} hafi ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"hluti\"}`;\n return `Of st\u00F3rt: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin ?? \"gildi\"} s\u00E9 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Of l\u00EDti\u00F0: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin} hafi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Of l\u00EDti\u00F0: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin} s\u00E9 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 byrja \u00E1 \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 enda \u00E1 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 innihalda \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 fylgja mynstri ${_issue.pattern}`;\n return `Rangt ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `R\u00F6ng tala: ver\u00F0ur a\u00F0 vera margfeldi af ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u00D3\u00FEekkt ${issue.keys.length > 1 ? \"ir lyklar\" : \"ur lykill\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Rangur lykill \u00ED ${issue.origin}`;\n case \"invalid_union\":\n return \"Rangt gildi\";\n case \"invalid_element\":\n return `Rangt gildi \u00ED ${issue.origin}`;\n default:\n return `Rangt gildi`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caratteri\", verb: \"avere\" },\n file: { unit: \"byte\", verb: \"avere\" },\n array: { unit: \"elementi\", verb: \"avere\" },\n set: { unit: \"elementi\", verb: \"avere\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"indirizzo email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e ora ISO\",\n date: \"data ISO\",\n time: \"ora ISO\",\n duration: \"durata ISO\",\n ipv4: \"indirizzo IPv4\",\n ipv6: \"indirizzo IPv6\",\n cidrv4: \"intervallo IPv4\",\n cidrv6: \"intervallo IPv6\",\n base64: \"stringa codificata in base64\",\n base64url: \"URL codificata in base64\",\n json_string: \"stringa JSON\",\n e164: \"numero E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"numero\",\n array: \"vettore\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Input non valido: atteso instanceof ${issue.expected}, ricevuto ${received}`;\n }\n return `Input non valido: atteso ${expected}, ricevuto ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input non valido: atteso ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opzione non valida: atteso uno tra ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementi\"}`;\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve essere ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Stringa non valida: deve iniziare con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Stringa non valida: deve terminare con \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Stringa non valida: deve includere \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;\n return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Numero non valido: deve essere un multiplo di ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chiav${issue.keys.length > 1 ? \"i\" : \"e\"} non riconosciut${issue.keys.length > 1 ? \"e\" : \"a\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chiave non valida in ${issue.origin}`;\n case \"invalid_union\":\n return \"Input non valido\";\n case \"invalid_element\":\n return `Valore non valido in ${issue.origin}`;\n default:\n return `Input non valido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u6587\u5B57\", verb: \"\u3067\u3042\u308B\" },\n file: { unit: \"\u30D0\u30A4\u30C8\", verb: \"\u3067\u3042\u308B\" },\n array: { unit: \"\u8981\u7D20\", verb: \"\u3067\u3042\u308B\" },\n set: { unit: \"\u8981\u7D20\", verb: \"\u3067\u3042\u308B\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u5165\u529B\u5024\",\n email: \"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\",\n url: \"URL\",\n emoji: \"\u7D75\u6587\u5B57\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO\u65E5\u6642\",\n date: \"ISO\u65E5\u4ED8\",\n time: \"ISO\u6642\u523B\",\n duration: \"ISO\u671F\u9593\",\n ipv4: \"IPv4\u30A2\u30C9\u30EC\u30B9\",\n ipv6: \"IPv6\u30A2\u30C9\u30EC\u30B9\",\n cidrv4: \"IPv4\u7BC4\u56F2\",\n cidrv6: \"IPv6\u7BC4\u56F2\",\n base64: \"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217\",\n base64url: \"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217\",\n json_string: \"JSON\u6587\u5B57\u5217\",\n e164: \"E.164\u756A\u53F7\",\n jwt: \"JWT\",\n template_literal: \"\u5165\u529B\u5024\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u6570\u5024\",\n array: \"\u914D\u5217\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u7121\u52B9\u306A\u5165\u529B: instanceof ${issue.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${received}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;\n }\n return `\u7121\u52B9\u306A\u5165\u529B: ${expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${received}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u7121\u52B9\u306A\u5165\u529B: ${util.stringifyPrimitive(issue.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`;\n return `\u7121\u52B9\u306A\u9078\u629E: ${util.joinValues(issue.values, \"\u3001\")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"\u4EE5\u4E0B\u3067\u3042\u308B\" : \"\u3088\u308A\u5C0F\u3055\u3044\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u5927\u304D\u3059\u304E\u308B\u5024: ${issue.origin ?? \"\u5024\"}\u306F${issue.maximum.toString()}${sizing.unit ?? \"\u8981\u7D20\"}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n return `\u5927\u304D\u3059\u304E\u308B\u5024: ${issue.origin ?? \"\u5024\"}\u306F${issue.maximum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"\u4EE5\u4E0A\u3067\u3042\u308B\" : \"\u3088\u308A\u5927\u304D\u3044\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue.origin}\u306F${issue.minimum.toString()}${sizing.unit}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue.origin}\u306F${issue.minimum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \"${_issue.prefix}\"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n if (_issue.format === \"ends_with\")\n return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \"${_issue.suffix}\"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n if (_issue.format === \"includes\")\n return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \"${_issue.includes}\"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n if (_issue.format === \"regex\")\n return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${_issue.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n return `\u7121\u52B9\u306A${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u7121\u52B9\u306A\u6570\u5024: ${issue.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n case \"unrecognized_keys\":\n return `\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${issue.keys.length > 1 ? \"\u7FA4\" : \"\"}: ${util.joinValues(issue.keys, \"\u3001\")}`;\n case \"invalid_key\":\n return `${issue.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;\n case \"invalid_union\":\n return \"\u7121\u52B9\u306A\u5165\u529B\";\n case \"invalid_element\":\n return `${issue.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;\n default:\n return `\u7121\u52B9\u306A\u5165\u529B`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n file: { unit: \"\u10D1\u10D0\u10D8\u10E2\u10D8\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n array: { unit: \"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n set: { unit: \"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0\",\n email: \"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8\",\n url: \"URL\",\n emoji: \"\u10D4\u10DB\u10DD\u10EF\u10D8\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD\",\n date: \"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8\",\n time: \"\u10D3\u10E0\u10DD\",\n duration: \"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0\",\n ipv4: \"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8\",\n ipv6: \"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8\",\n cidrv4: \"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8\",\n cidrv6: \"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8\",\n base64: \"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8\",\n base64url: \"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8\",\n json_string: \"JSON \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8\",\n e164: \"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8\",\n jwt: \"JWT\",\n template_literal: \"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8\",\n string: \"\u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8\",\n boolean: \"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8\",\n function: \"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0\",\n array: \"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 instanceof ${issue.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${received}`;\n }\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${util.joinValues(issue.values, \"|\")}-\u10D3\u10D0\u10DC`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin ?? \"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin ?? \"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0\"} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \"${_issue.prefix}\"-\u10D8\u10D7`;\n }\n if (_issue.format === \"ends_with\")\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \"${_issue.suffix}\"-\u10D8\u10D7`;\n if (_issue.format === \"includes\")\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 \"${_issue.includes}\"-\u10E1`;\n if (_issue.format === \"regex\")\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${_issue.pattern}`;\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${issue.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;\n case \"unrecognized_keys\":\n return `\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${issue.keys.length > 1 ? \"\u10D4\u10D1\u10D8\" : \"\u10D8\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${issue.origin}-\u10E8\u10D8`;\n case \"invalid_union\":\n return \"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0\";\n case \"invalid_element\":\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${issue.origin}-\u10E8\u10D8`;\n default:\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n file: { unit: \"\u1794\u17C3\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n array: { unit: \"\u1792\u17B6\u178F\u17BB\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n set: { unit: \"\u1792\u17B6\u178F\u17BB\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\",\n email: \"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B\",\n url: \"URL\",\n emoji: \"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO\",\n date: \"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO\",\n time: \"\u1798\u17C9\u17C4\u1784 ISO\",\n duration: \"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO\",\n ipv4: \"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4\",\n ipv6: \"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6\",\n cidrv4: \"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4\",\n cidrv6: \"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6\",\n base64: \"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64\",\n base64url: \"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url\",\n json_string: \"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON\",\n e164: \"\u179B\u17C1\u1781 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u179B\u17C1\u1781\",\n array: \"\u17A2\u17B6\u179A\u17C1 (Array)\",\n null: \"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A instanceof ${issue.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${received}`;\n }\n return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin ?? \"\u178F\u1798\u17D2\u179B\u17C3\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"\u1792\u17B6\u178F\u17BB\"}`;\n return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin ?? \"\u178F\u1798\u17D2\u179B\u17C3\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin} ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${_issue.pattern}`;\n return `\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue.origin}`;\n case \"invalid_union\":\n return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`;\n case \"invalid_element\":\n return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue.origin}`;\n default:\n return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import km from \"./km.js\";\n/** @deprecated Use `km` instead. */\nexport default function () {\n return km();\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\uBB38\uC790\", verb: \"to have\" },\n file: { unit: \"\uBC14\uC774\uD2B8\", verb: \"to have\" },\n array: { unit: \"\uAC1C\", verb: \"to have\" },\n set: { unit: \"\uAC1C\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\uC785\uB825\",\n email: \"\uC774\uBA54\uC77C \uC8FC\uC18C\",\n url: \"URL\",\n emoji: \"\uC774\uBAA8\uC9C0\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \uB0A0\uC9DC\uC2DC\uAC04\",\n date: \"ISO \uB0A0\uC9DC\",\n time: \"ISO \uC2DC\uAC04\",\n duration: \"ISO \uAE30\uAC04\",\n ipv4: \"IPv4 \uC8FC\uC18C\",\n ipv6: \"IPv6 \uC8FC\uC18C\",\n cidrv4: \"IPv4 \uBC94\uC704\",\n cidrv6: \"IPv6 \uBC94\uC704\",\n base64: \"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4\",\n base64url: \"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4\",\n json_string: \"JSON \uBB38\uC790\uC5F4\",\n e164: \"E.164 \uBC88\uD638\",\n jwt: \"JWT\",\n template_literal: \"\uC785\uB825\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 instanceof ${issue.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${received}\uC785\uB2C8\uB2E4`;\n }\n return `\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${received}\uC785\uB2C8\uB2E4`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${util.stringifyPrimitive(issue.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`;\n return `\uC798\uBABB\uB41C \uC635\uC158: ${util.joinValues(issue.values, \"\uB610\uB294 \")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"\uC774\uD558\" : \"\uBBF8\uB9CC\";\n const suffix = adj === \"\uBBF8\uB9CC\" ? \"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4\" : \"\uC5EC\uC57C \uD569\uB2C8\uB2E4\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"\uC694\uC18C\";\n if (sizing)\n return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue.maximum.toString()}${unit} ${adj}${suffix}`;\n return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue.maximum.toString()} ${adj}${suffix}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"\uC774\uC0C1\" : \"\uCD08\uACFC\";\n const suffix = adj === \"\uC774\uC0C1\" ? \"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4\" : \"\uC5EC\uC57C \uD569\uB2C8\uB2E4\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"\uC694\uC18C\";\n if (sizing) {\n return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue.minimum.toString()}${unit} ${adj}${suffix}`;\n }\n return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue.minimum.toString()} ${adj}${suffix}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \"${_issue.prefix}\"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`;\n }\n if (_issue.format === \"ends_with\")\n return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \"${_issue.suffix}\"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`;\n if (_issue.format === \"includes\")\n return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \"${_issue.includes}\"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`;\n if (_issue.format === \"regex\")\n return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${_issue.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`;\n return `\uC798\uBABB\uB41C ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\uC798\uBABB\uB41C \uC22B\uC790: ${issue.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;\n case \"unrecognized_keys\":\n return `\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\uC798\uBABB\uB41C \uD0A4: ${issue.origin}`;\n case \"invalid_union\":\n return `\uC798\uBABB\uB41C \uC785\uB825`;\n case \"invalid_element\":\n return `\uC798\uBABB\uB41C \uAC12: ${issue.origin}`;\n default:\n return `\uC798\uBABB\uB41C \uC785\uB825`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst capitalizeFirstCharacter = (text) => {\n return text.charAt(0).toUpperCase() + text.slice(1);\n};\nfunction getUnitTypeFromNumber(number) {\n const abs = Math.abs(number);\n const last = abs % 10;\n const last2 = abs % 100;\n if ((last2 >= 11 && last2 <= 19) || last === 0)\n return \"many\";\n if (last === 1)\n return \"one\";\n return \"few\";\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"simbolis\",\n few: \"simboliai\",\n many: \"simboli\u0173\",\n },\n verb: {\n smaller: {\n inclusive: \"turi b\u016Bti ne ilgesn\u0117 kaip\",\n notInclusive: \"turi b\u016Bti trumpesn\u0117 kaip\",\n },\n bigger: {\n inclusive: \"turi b\u016Bti ne trumpesn\u0117 kaip\",\n notInclusive: \"turi b\u016Bti ilgesn\u0117 kaip\",\n },\n },\n },\n file: {\n unit: {\n one: \"baitas\",\n few: \"baitai\",\n many: \"bait\u0173\",\n },\n verb: {\n smaller: {\n inclusive: \"turi b\u016Bti ne didesnis kaip\",\n notInclusive: \"turi b\u016Bti ma\u017Eesnis kaip\",\n },\n bigger: {\n inclusive: \"turi b\u016Bti ne ma\u017Eesnis kaip\",\n notInclusive: \"turi b\u016Bti didesnis kaip\",\n },\n },\n },\n array: {\n unit: {\n one: \"element\u0105\",\n few: \"elementus\",\n many: \"element\u0173\",\n },\n verb: {\n smaller: {\n inclusive: \"turi tur\u0117ti ne daugiau kaip\",\n notInclusive: \"turi tur\u0117ti ma\u017Eiau kaip\",\n },\n bigger: {\n inclusive: \"turi tur\u0117ti ne ma\u017Eiau kaip\",\n notInclusive: \"turi tur\u0117ti daugiau kaip\",\n },\n },\n },\n set: {\n unit: {\n one: \"element\u0105\",\n few: \"elementus\",\n many: \"element\u0173\",\n },\n verb: {\n smaller: {\n inclusive: \"turi tur\u0117ti ne daugiau kaip\",\n notInclusive: \"turi tur\u0117ti ma\u017Eiau kaip\",\n },\n bigger: {\n inclusive: \"turi tur\u0117ti ne ma\u017Eiau kaip\",\n notInclusive: \"turi tur\u0117ti daugiau kaip\",\n },\n },\n },\n };\n function getSizing(origin, unitType, inclusive, targetShouldBe) {\n const result = Sizable[origin] ?? null;\n if (result === null)\n return result;\n return {\n unit: result.unit[unitType],\n verb: result.verb[targetShouldBe][inclusive ? \"inclusive\" : \"notInclusive\"],\n };\n }\n const FormatDictionary = {\n regex: \"\u012Fvestis\",\n email: \"el. pa\u0161to adresas\",\n url: \"URL\",\n emoji: \"jaustukas\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO data ir laikas\",\n date: \"ISO data\",\n time: \"ISO laikas\",\n duration: \"ISO trukm\u0117\",\n ipv4: \"IPv4 adresas\",\n ipv6: \"IPv6 adresas\",\n cidrv4: \"IPv4 tinklo prefiksas (CIDR)\",\n cidrv6: \"IPv6 tinklo prefiksas (CIDR)\",\n base64: \"base64 u\u017Ekoduota eilut\u0117\",\n base64url: \"base64url u\u017Ekoduota eilut\u0117\",\n json_string: \"JSON eilut\u0117\",\n e164: \"E.164 numeris\",\n jwt: \"JWT\",\n template_literal: \"\u012Fvestis\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"skai\u010Dius\",\n bigint: \"sveikasis skai\u010Dius\",\n string: \"eilut\u0117\",\n boolean: \"login\u0117 reik\u0161m\u0117\",\n undefined: \"neapibr\u0117\u017Eta reik\u0161m\u0117\",\n function: \"funkcija\",\n symbol: \"simbolis\",\n array: \"masyvas\",\n object: \"objektas\",\n null: \"nulin\u0117 reik\u0161m\u0117\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Gautas tipas ${received}, o tik\u0117tasi - instanceof ${issue.expected}`;\n }\n return `Gautas tipas ${received}, o tik\u0117tasi - ${expected}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Privalo b\u016Bti ${util.stringifyPrimitive(issue.values[0])}`;\n return `Privalo b\u016Bti vienas i\u0161 ${util.joinValues(issue.values, \"|\")} pasirinkim\u0173`;\n case \"too_big\": {\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.maximum)), issue.inclusive ?? false, \"smaller\");\n if (sizing?.verb)\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} ${sizing.verb} ${issue.maximum.toString()} ${sizing.unit ?? \"element\u0173\"}`;\n const adj = issue.inclusive ? \"ne didesnis kaip\" : \"ma\u017Eesnis kaip\";\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} turi b\u016Bti ${adj} ${issue.maximum.toString()} ${sizing?.unit}`;\n }\n case \"too_small\": {\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.minimum)), issue.inclusive ?? false, \"bigger\");\n if (sizing?.verb)\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} ${sizing.verb} ${issue.minimum.toString()} ${sizing.unit ?? \"element\u0173\"}`;\n const adj = issue.inclusive ? \"ne ma\u017Eesnis kaip\" : \"didesnis kaip\";\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} turi b\u016Bti ${adj} ${issue.minimum.toString()} ${sizing?.unit}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Eilut\u0117 privalo prasid\u0117ti \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Eilut\u0117 privalo pasibaigti \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Eilut\u0117 privalo \u012Ftraukti \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Eilut\u0117 privalo atitikti ${_issue.pattern}`;\n return `Neteisingas ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Skai\u010Dius privalo b\u016Bti ${issue.divisor} kartotinis.`;\n case \"unrecognized_keys\":\n return `Neatpa\u017Eint${issue.keys.length > 1 ? \"i\" : \"as\"} rakt${issue.keys.length > 1 ? \"ai\" : \"as\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Rastas klaidingas raktas\";\n case \"invalid_union\":\n return \"Klaidinga \u012Fvestis\";\n case \"invalid_element\": {\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} turi klaiding\u0105 \u012Fvest\u012F`;\n }\n default:\n return \"Klaidinga \u012Fvestis\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u0437\u043D\u0430\u0446\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n file: { unit: \"\u0431\u0430\u0458\u0442\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n array: { unit: \"\u0441\u0442\u0430\u0432\u043A\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n set: { unit: \"\u0441\u0442\u0430\u0432\u043A\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0432\u043D\u0435\u0441\",\n email: \"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430\",\n url: \"URL\",\n emoji: \"\u0435\u043C\u043E\u045F\u0438\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435\",\n date: \"ISO \u0434\u0430\u0442\u0443\u043C\",\n time: \"ISO \u0432\u0440\u0435\u043C\u0435\",\n duration: \"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435\",\n ipv4: \"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430\",\n ipv6: \"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430\",\n cidrv4: \"IPv4 \u043E\u043F\u0441\u0435\u0433\",\n cidrv6: \"IPv6 \u043E\u043F\u0441\u0435\u0433\",\n base64: \"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430\",\n base64url: \"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430\",\n json_string: \"JSON \u043D\u0438\u0437\u0430\",\n e164: \"E.164 \u0431\u0440\u043E\u0458\",\n jwt: \"JWT\",\n template_literal: \"\u0432\u043D\u0435\u0441\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u0431\u0440\u043E\u0458\",\n array: \"\u043D\u0438\u0437\u0430\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 instanceof ${issue.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${received}`;\n }\n return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin ?? \"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430\"} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438\"}`;\n return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin ?? \"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430\"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${_issue.pattern}`;\n return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438\" : \"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${issue.origin}`;\n case \"invalid_union\":\n return \"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441\";\n case \"invalid_element\":\n return `\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${issue.origin}`;\n default:\n return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"aksara\", verb: \"mempunyai\" },\n file: { unit: \"bait\", verb: \"mempunyai\" },\n array: { unit: \"elemen\", verb: \"mempunyai\" },\n set: { unit: \"elemen\", verb: \"mempunyai\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"alamat e-mel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tarikh masa ISO\",\n date: \"tarikh ISO\",\n time: \"masa ISO\",\n duration: \"tempoh ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"julat IPv4\",\n cidrv6: \"julat IPv6\",\n base64: \"string dikodkan base64\",\n base64url: \"string dikodkan base64url\",\n json_string: \"string JSON\",\n e164: \"nombor E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"nombor\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Input tidak sah: dijangka instanceof ${issue.expected}, diterima ${received}`;\n }\n return `Input tidak sah: dijangka ${expected}, diterima ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak sah: dijangka ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak sah: dijangka salah satu daripada ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} adalah ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak sah: mesti bermula dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak sah: mesti berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak sah: mesti mengandungi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} tidak sah`;\n }\n case \"not_multiple_of\":\n return `Nombor tidak sah: perlu gandaan ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak sah dalam ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak sah\";\n case \"invalid_element\":\n return `Nilai tidak sah dalam ${issue.origin}`;\n default:\n return `Input tidak sah`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tekens\", verb: \"heeft\" },\n file: { unit: \"bytes\", verb: \"heeft\" },\n array: { unit: \"elementen\", verb: \"heeft\" },\n set: { unit: \"elementen\", verb: \"heeft\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"invoer\",\n email: \"emailadres\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum en tijd\",\n date: \"ISO datum\",\n time: \"ISO tijd\",\n duration: \"ISO duur\",\n ipv4: \"IPv4-adres\",\n ipv6: \"IPv6-adres\",\n cidrv4: \"IPv4-bereik\",\n cidrv6: \"IPv6-bereik\",\n base64: \"base64-gecodeerde tekst\",\n base64url: \"base64 URL-gecodeerde tekst\",\n json_string: \"JSON string\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"invoer\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"getal\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ongeldige invoer: verwacht instanceof ${issue.expected}, ontving ${received}`;\n }\n return `Ongeldige invoer: verwacht ${expected}, ontving ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ongeldige optie: verwacht \u00E9\u00E9n van ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const longName = issue.origin === \"date\" ? \"laat\" : issue.origin === \"string\" ? \"lang\" : \"groot\";\n if (sizing)\n return `Te ${longName}: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementen\"} ${sizing.verb}`;\n return `Te ${longName}: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} is`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const shortName = issue.origin === \"date\" ? \"vroeg\" : issue.origin === \"string\" ? \"kort\" : \"klein\";\n if (sizing) {\n return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;\n }\n return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ongeldige tekst: moet met \"${_issue.prefix}\" beginnen`;\n }\n if (_issue.format === \"ends_with\")\n return `Ongeldige tekst: moet op \"${_issue.suffix}\" eindigen`;\n if (_issue.format === \"includes\")\n return `Ongeldige tekst: moet \"${_issue.includes}\" bevatten`;\n if (_issue.format === \"regex\")\n return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;\n return `Ongeldig: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;\n case \"unrecognized_keys\":\n return `Onbekende key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ongeldige key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ongeldige invoer\";\n case \"invalid_element\":\n return `Ongeldige waarde in ${issue.origin}`;\n default:\n return `Ongeldige invoer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"\u00E5 ha\" },\n file: { unit: \"bytes\", verb: \"\u00E5 ha\" },\n array: { unit: \"elementer\", verb: \"\u00E5 inneholde\" },\n set: { unit: \"elementer\", verb: \"\u00E5 inneholde\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"e-postadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslett\",\n date: \"ISO-dato\",\n time: \"ISO-klokkeslett\",\n duration: \"ISO-varighet\",\n ipv4: \"IPv4-omr\u00E5de\",\n ipv6: \"IPv6-omr\u00E5de\",\n cidrv4: \"IPv4-spekter\",\n cidrv6: \"IPv6-spekter\",\n base64: \"base64-enkodet streng\",\n base64url: \"base64url-enkodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"tall\",\n array: \"liste\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ugyldig input: forventet instanceof ${issue.expected}, fikk ${received}`;\n }\n return `Ugyldig input: forventet ${expected}, fikk ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til \u00E5 ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til \u00E5 ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `For lite(n): forventet ${issue.origin} til \u00E5 ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lite(n): forventet ${issue.origin} til \u00E5 ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: m\u00E5 starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: m\u00E5 ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: m\u00E5 inneholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: m\u00E5 matche m\u00F8nsteret ${_issue.pattern}`;\n return `Ugyldig ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldig tall: m\u00E5 v\u00E6re et multiplum av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukjente n\u00F8kler\" : \"Ukjent n\u00F8kkel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig n\u00F8kkel i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldig input\";\n case \"invalid_element\":\n return `Ugyldig verdi i ${issue.origin}`;\n default:\n return `Ugyldig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"harf\", verb: \"olmal\u0131d\u0131r\" },\n file: { unit: \"bayt\", verb: \"olmal\u0131d\u0131r\" },\n array: { unit: \"unsur\", verb: \"olmal\u0131d\u0131r\" },\n set: { unit: \"unsur\", verb: \"olmal\u0131d\u0131r\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"giren\",\n email: \"epostag\u00E2h\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO heng\u00E2m\u0131\",\n date: \"ISO tarihi\",\n time: \"ISO zaman\u0131\",\n duration: \"ISO m\u00FCddeti\",\n ipv4: \"IPv4 ni\u015F\u00E2n\u0131\",\n ipv6: \"IPv6 ni\u015F\u00E2n\u0131\",\n cidrv4: \"IPv4 menzili\",\n cidrv6: \"IPv6 menzili\",\n base64: \"base64-\u015Fifreli metin\",\n base64url: \"base64url-\u015Fifreli metin\",\n json_string: \"JSON metin\",\n e164: \"E.164 say\u0131s\u0131\",\n jwt: \"JWT\",\n template_literal: \"giren\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"numara\",\n array: \"saf\",\n null: \"gayb\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `F\u00E2sit giren: umulan instanceof ${issue.expected}, al\u0131nan ${received}`;\n }\n return `F\u00E2sit giren: umulan ${expected}, al\u0131nan ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `F\u00E2sit giren: umulan ${util.stringifyPrimitive(issue.values[0])}`;\n return `F\u00E2sit tercih: m\u00FBteberler ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Fazla b\u00FCy\u00FCk: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"} sahip olmal\u0131yd\u0131.`;\n return `Fazla b\u00FCy\u00FCk: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} olmal\u0131yd\u0131.`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Fazla k\u00FC\u00E7\u00FCk: ${issue.origin}, ${adj}${issue.minimum.toString()} ${sizing.unit} sahip olmal\u0131yd\u0131.`;\n }\n return `Fazla k\u00FC\u00E7\u00FCk: ${issue.origin}, ${adj}${issue.minimum.toString()} olmal\u0131yd\u0131.`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `F\u00E2sit metin: \"${_issue.prefix}\" ile ba\u015Flamal\u0131.`;\n if (_issue.format === \"ends_with\")\n return `F\u00E2sit metin: \"${_issue.suffix}\" ile bitmeli.`;\n if (_issue.format === \"includes\")\n return `F\u00E2sit metin: \"${_issue.includes}\" ihtiv\u00E2 etmeli.`;\n if (_issue.format === \"regex\")\n return `F\u00E2sit metin: ${_issue.pattern} nak\u015F\u0131na uymal\u0131.`;\n return `F\u00E2sit ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `F\u00E2sit say\u0131: ${issue.divisor} kat\u0131 olmal\u0131yd\u0131.`;\n case \"unrecognized_keys\":\n return `Tan\u0131nmayan anahtar ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} i\u00E7in tan\u0131nmayan anahtar var.`;\n case \"invalid_union\":\n return \"Giren tan\u0131namad\u0131.\";\n case \"invalid_element\":\n return `${issue.origin} i\u00E7in tan\u0131nmayan k\u0131ymet var.`;\n default:\n return `K\u0131ymet tan\u0131namad\u0131.`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u062A\u0648\u06A9\u064A\", verb: \"\u0648\u0644\u0631\u064A\" },\n file: { unit: \"\u0628\u0627\u06CC\u067C\u0633\", verb: \"\u0648\u0644\u0631\u064A\" },\n array: { unit: \"\u062A\u0648\u06A9\u064A\", verb: \"\u0648\u0644\u0631\u064A\" },\n set: { unit: \"\u062A\u0648\u06A9\u064A\", verb: \"\u0648\u0644\u0631\u064A\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0648\u0631\u0648\u062F\u064A\",\n email: \"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9\",\n url: \"\u06CC\u0648 \u0622\u0631 \u0627\u0644\",\n emoji: \"\u0627\u06CC\u0645\u0648\u062C\u064A\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A\",\n date: \"\u0646\u06D0\u067C\u0647\",\n time: \"\u0648\u062E\u062A\",\n duration: \"\u0645\u0648\u062F\u0647\",\n ipv4: \"\u062F IPv4 \u067E\u062A\u0647\",\n ipv6: \"\u062F IPv6 \u067E\u062A\u0647\",\n cidrv4: \"\u062F IPv4 \u0633\u0627\u062D\u0647\",\n cidrv6: \"\u062F IPv6 \u0633\u0627\u062D\u0647\",\n base64: \"base64-encoded \u0645\u062A\u0646\",\n base64url: \"base64url-encoded \u0645\u062A\u0646\",\n json_string: \"JSON \u0645\u062A\u0646\",\n e164: \"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647\",\n jwt: \"JWT\",\n template_literal: \"\u0648\u0631\u0648\u062F\u064A\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u0639\u062F\u062F\",\n array: \"\u0627\u0631\u06D0\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F instanceof ${issue.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${received} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;\n }\n return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${received} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${util.stringifyPrimitive(issue.values[0])} \u0648\u0627\u06CC`;\n }\n return `\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${util.joinValues(issue.values, \"|\")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${issue.origin ?? \"\u0627\u0631\u0632\u069A\u062A\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0635\u0631\u0648\u0646\u0647\"} \u0648\u0644\u0631\u064A`;\n }\n return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${issue.origin ?? \"\u0627\u0631\u0632\u069A\u062A\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} \u0648\u064A`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} ${sizing.unit} \u0648\u0644\u0631\u064A`;\n }\n return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} \u0648\u064A`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F \"${_issue.prefix}\" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`;\n }\n if (_issue.format === \"ends_with\") {\n return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F \"${_issue.suffix}\" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`;\n }\n if (_issue.format === \"includes\") {\n return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \"${_issue.includes}\" \u0648\u0644\u0631\u064A`;\n }\n if (_issue.format === \"regex\") {\n return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${_issue.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`;\n }\n return `${FormatDictionary[_issue.format] ?? issue.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`;\n }\n case \"not_multiple_of\":\n return `\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${issue.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;\n case \"unrecognized_keys\":\n return `\u0646\u0627\u0633\u0645 ${issue.keys.length > 1 ? \"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647\" : \"\u06A9\u0644\u06CC\u0689\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${issue.origin} \u06A9\u06D0`;\n case \"invalid_union\":\n return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`;\n case \"invalid_element\":\n return `\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${issue.origin} \u06A9\u06D0`;\n default:\n return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znak\u00F3w\", verb: \"mie\u0107\" },\n file: { unit: \"bajt\u00F3w\", verb: \"mie\u0107\" },\n array: { unit: \"element\u00F3w\", verb: \"mie\u0107\" },\n set: { unit: \"element\u00F3w\", verb: \"mie\u0107\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"wyra\u017Cenie\",\n email: \"adres email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i godzina w formacie ISO\",\n date: \"data w formacie ISO\",\n time: \"godzina w formacie ISO\",\n duration: \"czas trwania ISO\",\n ipv4: \"adres IPv4\",\n ipv6: \"adres IPv6\",\n cidrv4: \"zakres IPv4\",\n cidrv6: \"zakres IPv6\",\n base64: \"ci\u0105g znak\u00F3w zakodowany w formacie base64\",\n base64url: \"ci\u0105g znak\u00F3w zakodowany w formacie base64url\",\n json_string: \"ci\u0105g znak\u00F3w w formacie JSON\",\n e164: \"liczba E.164\",\n jwt: \"JWT\",\n template_literal: \"wej\u015Bcie\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"liczba\",\n array: \"tablica\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano instanceof ${issue.expected}, otrzymano ${received}`;\n }\n return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${expected}, otrzymano ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie mie\u0107 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\u00F3w\"}`;\n }\n return `Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie wynosi\u0107 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie mie\u0107 ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"element\u00F3w\"}`;\n }\n return `Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie wynosi\u0107 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi zaczyna\u0107 si\u0119 od \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi ko\u0144czy\u0107 si\u0119 na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi zawiera\u0107 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi odpowiada\u0107 wzorcowi ${_issue.pattern}`;\n return `Nieprawid\u0142ow(y/a/e) ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nierozpoznane klucze${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nieprawid\u0142owy klucz w ${issue.origin}`;\n case \"invalid_union\":\n return \"Nieprawid\u0142owe dane wej\u015Bciowe\";\n case \"invalid_element\":\n return `Nieprawid\u0142owa warto\u015B\u0107 w ${issue.origin}`;\n default:\n return `Nieprawid\u0142owe dane wej\u015Bciowe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"ter\" },\n file: { unit: \"bytes\", verb: \"ter\" },\n array: { unit: \"itens\", verb: \"ter\" },\n set: { unit: \"itens\", verb: \"ter\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"padr\u00E3o\",\n email: \"endere\u00E7o de e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"dura\u00E7\u00E3o ISO\",\n ipv4: \"endere\u00E7o IPv4\",\n ipv6: \"endere\u00E7o IPv6\",\n cidrv4: \"faixa de IPv4\",\n cidrv6: \"faixa de IPv6\",\n base64: \"texto codificado em base64\",\n base64url: \"URL codificada em base64\",\n json_string: \"texto JSON\",\n e164: \"n\u00FAmero E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"n\u00FAmero\",\n null: \"nulo\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Tipo inv\u00E1lido: esperado instanceof ${issue.expected}, recebido ${received}`;\n }\n return `Tipo inv\u00E1lido: esperado ${expected}, recebido ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inv\u00E1lida: esperado ${util.stringifyPrimitive(issue.values[0])}`;\n return `Op\u00E7\u00E3o inv\u00E1lida: esperada uma das ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} tivesse ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} fosse ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Muito pequeno: esperado que ${issue.origin} tivesse ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Muito pequeno: esperado que ${issue.origin} fosse ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Texto inv\u00E1lido: deve come\u00E7ar com \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Texto inv\u00E1lido: deve terminar com \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Texto inv\u00E1lido: deve incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Texto inv\u00E1lido: deve corresponder ao padr\u00E3o ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} inv\u00E1lido`;\n }\n case \"not_multiple_of\":\n return `N\u00FAmero inv\u00E1lido: deve ser m\u00FAltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chave${issue.keys.length > 1 ? \"s\" : \"\"} desconhecida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chave inv\u00E1lida em ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inv\u00E1lida\";\n case \"invalid_element\":\n return `Valor inv\u00E1lido em ${issue.origin}`;\n default:\n return `Campo inv\u00E1lido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nfunction getRussianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"\u0441\u0438\u043C\u0432\u043E\u043B\",\n few: \"\u0441\u0438\u043C\u0432\u043E\u043B\u0430\",\n many: \"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432\",\n },\n verb: \"\u0438\u043C\u0435\u0442\u044C\",\n },\n file: {\n unit: {\n one: \"\u0431\u0430\u0439\u0442\",\n few: \"\u0431\u0430\u0439\u0442\u0430\",\n many: \"\u0431\u0430\u0439\u0442\",\n },\n verb: \"\u0438\u043C\u0435\u0442\u044C\",\n },\n array: {\n unit: {\n one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\",\n many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\",\n },\n verb: \"\u0438\u043C\u0435\u0442\u044C\",\n },\n set: {\n unit: {\n one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\",\n many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\",\n },\n verb: \"\u0438\u043C\u0435\u0442\u044C\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0432\u0432\u043E\u0434\",\n email: \"email \u0430\u0434\u0440\u0435\u0441\",\n url: \"URL\",\n emoji: \"\u044D\u043C\u043E\u0434\u0437\u0438\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F\",\n date: \"ISO \u0434\u0430\u0442\u0430\",\n time: \"ISO \u0432\u0440\u0435\u043C\u044F\",\n duration: \"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C\",\n ipv4: \"IPv4 \u0430\u0434\u0440\u0435\u0441\",\n ipv6: \"IPv6 \u0430\u0434\u0440\u0435\u0441\",\n cidrv4: \"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\",\n cidrv6: \"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\",\n base64: \"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64\",\n base64url: \"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url\",\n json_string: \"JSON \u0441\u0442\u0440\u043E\u043A\u0430\",\n e164: \"\u043D\u043E\u043C\u0435\u0440 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u0432\u0432\u043E\u0434\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u0447\u0438\u0441\u043B\u043E\",\n array: \"\u043C\u0430\u0441\u0441\u0438\u0432\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C instanceof ${issue.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${received}`;\n }\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\"} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`;\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${issue.keys.length > 1 ? \"\u044B\u0435\" : \"\u044B\u0439\"} \u043A\u043B\u044E\u0447${issue.keys.length > 1 ? \"\u0438\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${issue.origin}`;\n case \"invalid_union\":\n return \"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435\";\n case \"invalid_element\":\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${issue.origin}`;\n default:\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znakov\", verb: \"imeti\" },\n file: { unit: \"bajtov\", verb: \"imeti\" },\n array: { unit: \"elementov\", verb: \"imeti\" },\n set: { unit: \"elementov\", verb: \"imeti\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"vnos\",\n email: \"e-po\u0161tni naslov\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum in \u010Das\",\n date: \"ISO datum\",\n time: \"ISO \u010Das\",\n duration: \"ISO trajanje\",\n ipv4: \"IPv4 naslov\",\n ipv6: \"IPv6 naslov\",\n cidrv4: \"obseg IPv4\",\n cidrv6: \"obseg IPv6\",\n base64: \"base64 kodiran niz\",\n base64url: \"base64url kodiran niz\",\n json_string: \"JSON niz\",\n e164: \"E.164 \u0161tevilka\",\n jwt: \"JWT\",\n template_literal: \"vnos\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u0161tevilo\",\n array: \"tabela\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Neveljaven vnos: pri\u010Dakovano instanceof ${issue.expected}, prejeto ${received}`;\n }\n return `Neveljaven vnos: pri\u010Dakovano ${expected}, prejeto ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neveljaven vnos: pri\u010Dakovano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Preveliko: pri\u010Dakovano, da bo ${issue.origin ?? \"vrednost\"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementov\"}`;\n return `Preveliko: pri\u010Dakovano, da bo ${issue.origin ?? \"vrednost\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Premajhno: pri\u010Dakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Premajhno: pri\u010Dakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Neveljaven niz: mora se za\u010Deti z \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Neveljaven niz: mora se kon\u010Dati z \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neveljaven niz: mora vsebovati \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;\n return `Neveljaven ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neprepoznan${issue.keys.length > 1 ? \"i klju\u010Di\" : \" klju\u010D\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neveljaven klju\u010D v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neveljaven vnos\";\n case \"invalid_element\":\n return `Neveljavna vrednost v ${issue.origin}`;\n default:\n return \"Neveljaven vnos\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tecken\", verb: \"att ha\" },\n file: { unit: \"bytes\", verb: \"att ha\" },\n array: { unit: \"objekt\", verb: \"att inneh\u00E5lla\" },\n set: { unit: \"objekt\", verb: \"att inneh\u00E5lla\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"regulj\u00E4rt uttryck\",\n email: \"e-postadress\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datum och tid\",\n date: \"ISO-datum\",\n time: \"ISO-tid\",\n duration: \"ISO-varaktighet\",\n ipv4: \"IPv4-intervall\",\n ipv6: \"IPv6-intervall\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodad str\u00E4ng\",\n base64url: \"base64url-kodad str\u00E4ng\",\n json_string: \"JSON-str\u00E4ng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"mall-literal\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"antal\",\n array: \"lista\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ogiltig inmatning: f\u00F6rv\u00E4ntat instanceof ${issue.expected}, fick ${received}`;\n }\n return `Ogiltig inmatning: f\u00F6rv\u00E4ntat ${expected}, fick ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ogiltig inmatning: f\u00F6rv\u00E4ntat ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ogiltigt val: f\u00F6rv\u00E4ntade en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `F\u00F6r stor(t): f\u00F6rv\u00E4ntade ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n }\n return `F\u00F6r stor(t): f\u00F6rv\u00E4ntat ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `F\u00F6r lite(t): f\u00F6rv\u00E4ntade ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `F\u00F6r lite(t): f\u00F6rv\u00E4ntade ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ogiltig str\u00E4ng: m\u00E5ste b\u00F6rja med \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Ogiltig str\u00E4ng: m\u00E5ste sluta med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ogiltig str\u00E4ng: m\u00E5ste inneh\u00E5lla \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ogiltig str\u00E4ng: m\u00E5ste matcha m\u00F6nstret \"${_issue.pattern}\"`;\n return `Ogiltig(t) ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ogiltigt tal: m\u00E5ste vara en multipel av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ok\u00E4nda nycklar\" : \"Ok\u00E4nd nyckel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ogiltig nyckel i ${issue.origin ?? \"v\u00E4rdet\"}`;\n case \"invalid_union\":\n return \"Ogiltig input\";\n case \"invalid_element\":\n return `Ogiltigt v\u00E4rde i ${issue.origin ?? \"v\u00E4rdet\"}`;\n default:\n return `Ogiltig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n file: { unit: \"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n array: { unit: \"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n set: { unit: \"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1\",\n email: \"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD\",\n date: \"ISO \u0BA4\u0BC7\u0BA4\u0BBF\",\n time: \"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD\",\n duration: \"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1\",\n ipv4: \"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF\",\n ipv6: \"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF\",\n cidrv4: \"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1\",\n cidrv6: \"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1\",\n base64: \"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD\",\n base64url: \"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD\",\n json_string: \"JSON \u0B9A\u0BB0\u0BAE\u0BCD\",\n e164: \"E.164 \u0B8E\u0BA3\u0BCD\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u0B8E\u0BA3\u0BCD\",\n array: \"\u0B85\u0BA3\u0BBF\",\n null: \"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 instanceof ${issue.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${received}`;\n }\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${util.joinValues(issue.values, \"|\")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin ?? \"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD\"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n }\n return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin ?? \"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\"} ${adj}${issue.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; //\n }\n return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin} ${adj}${issue.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: \"${_issue.prefix}\" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n if (_issue.format === \"ends_with\")\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: \"${_issue.suffix}\" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n if (_issue.format === \"includes\")\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: \"${_issue.includes}\" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n if (_issue.format === \"regex\")\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${_issue.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${issue.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n case \"unrecognized_keys\":\n return `\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${issue.keys.length > 1 ? \"\u0B95\u0BB3\u0BCD\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;\n case \"invalid_union\":\n return \"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1\";\n case \"invalid_element\":\n return `${issue.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;\n default:\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n file: { unit: \"\u0E44\u0E1A\u0E15\u0E4C\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n array: { unit: \"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n set: { unit: \"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19\",\n email: \"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25\",\n url: \"URL\",\n emoji: \"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO\",\n date: \"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO\",\n time: \"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO\",\n duration: \"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO\",\n ipv4: \"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4\",\n ipv6: \"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6\",\n cidrv4: \"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4\",\n cidrv6: \"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6\",\n base64: \"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64\",\n base64url: \"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL\",\n json_string: \"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON\",\n e164: \"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)\",\n jwt: \"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT\",\n template_literal: \"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\",\n array: \"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)\",\n null: \"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 instanceof ${issue.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${received}`;\n }\n return `\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19\" : \"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin ?? \"\u0E04\u0E48\u0E32\"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\"}`;\n return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin ?? \"\u0E04\u0E48\u0E32\"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22\" : \"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 \"${_issue.includes}\" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`;\n if (_issue.format === \"regex\")\n return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${_issue.pattern}`;\n return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${issue.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;\n case \"unrecognized_keys\":\n return `\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue.origin}`;\n case \"invalid_union\":\n return \"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49\";\n case \"invalid_element\":\n return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue.origin}`;\n default:\n return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"olmal\u0131\" },\n file: { unit: \"bayt\", verb: \"olmal\u0131\" },\n array: { unit: \"\u00F6\u011Fe\", verb: \"olmal\u0131\" },\n set: { unit: \"\u00F6\u011Fe\", verb: \"olmal\u0131\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"girdi\",\n email: \"e-posta adresi\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO tarih ve saat\",\n date: \"ISO tarih\",\n time: \"ISO saat\",\n duration: \"ISO s\u00FCre\",\n ipv4: \"IPv4 adresi\",\n ipv6: \"IPv6 adresi\",\n cidrv4: \"IPv4 aral\u0131\u011F\u0131\",\n cidrv6: \"IPv6 aral\u0131\u011F\u0131\",\n base64: \"base64 ile \u015Fifrelenmi\u015F metin\",\n base64url: \"base64url ile \u015Fifrelenmi\u015F metin\",\n json_string: \"JSON dizesi\",\n e164: \"E.164 say\u0131s\u0131\",\n jwt: \"JWT\",\n template_literal: \"\u015Eablon dizesi\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ge\u00E7ersiz de\u011Fer: beklenen instanceof ${issue.expected}, al\u0131nan ${received}`;\n }\n return `Ge\u00E7ersiz de\u011Fer: beklenen ${expected}, al\u0131nan ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ge\u00E7ersiz de\u011Fer: beklenen ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ge\u00E7ersiz se\u00E7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u00C7ok b\u00FCy\u00FCk: beklenen ${issue.origin ?? \"de\u011Fer\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u00F6\u011Fe\"}`;\n return `\u00C7ok b\u00FCy\u00FCk: beklenen ${issue.origin ?? \"de\u011Fer\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u00C7ok k\u00FC\u00E7\u00FCk: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `\u00C7ok k\u00FC\u00E7\u00FCk: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ge\u00E7ersiz metin: \"${_issue.prefix}\" ile ba\u015Flamal\u0131`;\n if (_issue.format === \"ends_with\")\n return `Ge\u00E7ersiz metin: \"${_issue.suffix}\" ile bitmeli`;\n if (_issue.format === \"includes\")\n return `Ge\u00E7ersiz metin: \"${_issue.includes}\" i\u00E7ermeli`;\n if (_issue.format === \"regex\")\n return `Ge\u00E7ersiz metin: ${_issue.pattern} desenine uymal\u0131`;\n return `Ge\u00E7ersiz ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ge\u00E7ersiz say\u0131: ${issue.divisor} ile tam b\u00F6l\u00FCnebilmeli`;\n case \"unrecognized_keys\":\n return `Tan\u0131nmayan anahtar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} i\u00E7inde ge\u00E7ersiz anahtar`;\n case \"invalid_union\":\n return \"Ge\u00E7ersiz de\u011Fer\";\n case \"invalid_element\":\n return `${issue.origin} i\u00E7inde ge\u00E7ersiz de\u011Fer`;\n default:\n return `Ge\u00E7ersiz de\u011Fer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n file: { unit: \"\u0431\u0430\u0439\u0442\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n array: { unit: \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n set: { unit: \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456\",\n email: \"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438\",\n url: \"URL\",\n emoji: \"\u0435\u043C\u043E\u0434\u0437\u0456\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO\",\n date: \"\u0434\u0430\u0442\u0430 ISO\",\n time: \"\u0447\u0430\u0441 ISO\",\n duration: \"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO\",\n ipv4: \"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4\",\n ipv6: \"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6\",\n cidrv4: \"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4\",\n cidrv6: \"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6\",\n base64: \"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64\",\n base64url: \"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url\",\n json_string: \"\u0440\u044F\u0434\u043E\u043A JSON\",\n e164: \"\u043D\u043E\u043C\u0435\u0440 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u0447\u0438\u0441\u043B\u043E\",\n array: \"\u043C\u0430\u0441\u0438\u0432\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F instanceof ${issue.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${received}`;\n }\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432\"}`;\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\"} \u0431\u0443\u0434\u0435 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin} \u0431\u0443\u0434\u0435 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`;\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${issue.keys.length > 1 ? \"\u0456\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${issue.origin}`;\n case \"invalid_union\":\n return \"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456\";\n case \"invalid_element\":\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${issue.origin}`;\n default:\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import uk from \"./uk.js\";\n/** @deprecated Use `uk` instead. */\nexport default function () {\n return uk();\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u062D\u0631\u0648\u0641\", verb: \"\u06C1\u0648\u0646\u0627\" },\n file: { unit: \"\u0628\u0627\u0626\u0679\u0633\", verb: \"\u06C1\u0648\u0646\u0627\" },\n array: { unit: \"\u0622\u0626\u0679\u0645\u0632\", verb: \"\u06C1\u0648\u0646\u0627\" },\n set: { unit: \"\u0622\u0626\u0679\u0645\u0632\", verb: \"\u06C1\u0648\u0646\u0627\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0627\u0646 \u067E\u0679\",\n email: \"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633\",\n url: \"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644\",\n emoji: \"\u0627\u06CC\u0645\u0648\u062C\u06CC\",\n uuid: \"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n uuidv4: \"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4\",\n uuidv6: \"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6\",\n nanoid: \"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n guid: \"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n cuid: \"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n cuid2: \"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2\",\n ulid: \"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC\",\n xid: \"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC\",\n ksuid: \"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n datetime: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645\",\n date: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E\",\n time: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A\",\n duration: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A\",\n ipv4: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633\",\n ipv6: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633\",\n cidrv4: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C\",\n cidrv6: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C\",\n base64: \"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF\",\n base64url: \"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF\",\n json_string: \"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF\",\n e164: \"\u0627\u06CC 164 \u0646\u0645\u0628\u0631\",\n jwt: \"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC\",\n template_literal: \"\u0627\u0646 \u067E\u0679\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u0646\u0645\u0628\u0631\",\n array: \"\u0622\u0631\u06D2\",\n null: \"\u0646\u0644\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: instanceof ${issue.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${received} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;\n }\n return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${received} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${util.stringifyPrimitive(issue.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n return `\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${util.joinValues(issue.values, \"|\")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${issue.origin ?? \"\u0648\u06CC\u0644\u06CC\u0648\"} \u06A9\u06D2 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0627\u0635\u0631\"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`;\n return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${issue.origin ?? \"\u0648\u06CC\u0644\u06CC\u0648\"} \u06A9\u0627 ${adj}${issue.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue.origin} \u06A9\u06D2 ${adj}${issue.minimum.toString()} ${sizing.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`;\n }\n return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue.origin} \u06A9\u0627 ${adj}${issue.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \"${_issue.prefix}\" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n }\n if (_issue.format === \"ends_with\")\n return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \"${_issue.suffix}\" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n if (_issue.format === \"includes\")\n return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \"${_issue.includes}\" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n if (_issue.format === \"regex\")\n return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${_issue.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n return `\u063A\u0644\u0637 ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${issue.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n case \"unrecognized_keys\":\n return `\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${issue.keys.length > 1 ? \"\u0632\" : \"\"}: ${util.joinValues(issue.keys, \"\u060C \")}`;\n case \"invalid_key\":\n return `${issue.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;\n case \"invalid_union\":\n return \"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679\";\n case \"invalid_element\":\n return `${issue.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;\n default:\n return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"belgi\", verb: \"bo\u2018lishi kerak\" },\n file: { unit: \"bayt\", verb: \"bo\u2018lishi kerak\" },\n array: { unit: \"element\", verb: \"bo\u2018lishi kerak\" },\n set: { unit: \"element\", verb: \"bo\u2018lishi kerak\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"kirish\",\n email: \"elektron pochta manzili\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO sana va vaqti\",\n date: \"ISO sana\",\n time: \"ISO vaqt\",\n duration: \"ISO davomiylik\",\n ipv4: \"IPv4 manzil\",\n ipv6: \"IPv6 manzil\",\n mac: \"MAC manzil\",\n cidrv4: \"IPv4 diapazon\",\n cidrv6: \"IPv6 diapazon\",\n base64: \"base64 kodlangan satr\",\n base64url: \"base64url kodlangan satr\",\n json_string: \"JSON satr\",\n e164: \"E.164 raqam\",\n jwt: \"JWT\",\n template_literal: \"kirish\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"raqam\",\n array: \"massiv\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Noto\u2018g\u2018ri kirish: kutilgan instanceof ${issue.expected}, qabul qilingan ${received}`;\n }\n return `Noto\u2018g\u2018ri kirish: kutilgan ${expected}, qabul qilingan ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Noto\u2018g\u2018ri kirish: kutilgan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Noto\u2018g\u2018ri variant: quyidagilardan biri kutilgan ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Juda katta: kutilgan ${issue.origin ?? \"qiymat\"} ${adj}${issue.maximum.toString()} ${sizing.unit} ${sizing.verb}`;\n return `Juda katta: kutilgan ${issue.origin ?? \"qiymat\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;\n }\n return `Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Noto\u2018g\u2018ri satr: \"${_issue.prefix}\" bilan boshlanishi kerak`;\n if (_issue.format === \"ends_with\")\n return `Noto\u2018g\u2018ri satr: \"${_issue.suffix}\" bilan tugashi kerak`;\n if (_issue.format === \"includes\")\n return `Noto\u2018g\u2018ri satr: \"${_issue.includes}\" ni o\u2018z ichiga olishi kerak`;\n if (_issue.format === \"regex\")\n return `Noto\u2018g\u2018ri satr: ${_issue.pattern} shabloniga mos kelishi kerak`;\n return `Noto\u2018g\u2018ri ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Noto\u2018g\u2018ri raqam: ${issue.divisor} ning karralisi bo\u2018lishi kerak`;\n case \"unrecognized_keys\":\n return `Noma\u2019lum kalit${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} dagi kalit noto\u2018g\u2018ri`;\n case \"invalid_union\":\n return \"Noto\u2018g\u2018ri kirish\";\n case \"invalid_element\":\n return `${issue.origin} da noto\u2018g\u2018ri qiymat`;\n default:\n return `Noto\u2018g\u2018ri kirish`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"k\u00FD t\u1EF1\", verb: \"c\u00F3\" },\n file: { unit: \"byte\", verb: \"c\u00F3\" },\n array: { unit: \"ph\u1EA7n t\u1EED\", verb: \"c\u00F3\" },\n set: { unit: \"ph\u1EA7n t\u1EED\", verb: \"c\u00F3\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u0111\u1EA7u v\u00E0o\",\n email: \"\u0111\u1ECBa ch\u1EC9 email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ng\u00E0y gi\u1EDD ISO\",\n date: \"ng\u00E0y ISO\",\n time: \"gi\u1EDD ISO\",\n duration: \"kho\u1EA3ng th\u1EDDi gian ISO\",\n ipv4: \"\u0111\u1ECBa ch\u1EC9 IPv4\",\n ipv6: \"\u0111\u1ECBa ch\u1EC9 IPv6\",\n cidrv4: \"d\u1EA3i IPv4\",\n cidrv6: \"d\u1EA3i IPv6\",\n base64: \"chu\u1ED7i m\u00E3 h\u00F3a base64\",\n base64url: \"chu\u1ED7i m\u00E3 h\u00F3a base64url\",\n json_string: \"chu\u1ED7i JSON\",\n e164: \"s\u1ED1 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u0111\u1EA7u v\u00E0o\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"s\u1ED1\",\n array: \"m\u1EA3ng\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i instanceof ${issue.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${received}`;\n }\n return `\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${util.stringifyPrimitive(issue.values[0])}`;\n return `T\u00F9y ch\u1ECDn kh\u00F4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\u00E1c gi\u00E1 tr\u1ECB ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Qu\u00E1 l\u1EDBn: mong \u0111\u1EE3i ${issue.origin ?? \"gi\u00E1 tr\u1ECB\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"ph\u1EA7n t\u1EED\"}`;\n return `Qu\u00E1 l\u1EDBn: mong \u0111\u1EE3i ${issue.origin ?? \"gi\u00E1 tr\u1ECB\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Qu\u00E1 nh\u1ECF: mong \u0111\u1EE3i ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Qu\u00E1 nh\u1ECF: mong \u0111\u1EE3i ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\u00FAc b\u1EB1ng \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} kh\u00F4ng h\u1EE3p l\u1EC7`;\n }\n case \"not_multiple_of\":\n return `S\u1ED1 kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\u00E0 b\u1ED9i s\u1ED1 c\u1EE7a ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kh\u00F3a kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kh\u00F3a kh\u00F4ng h\u1EE3p l\u1EC7 trong ${issue.origin}`;\n case \"invalid_union\":\n return \"\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7\";\n case \"invalid_element\":\n return `Gi\u00E1 tr\u1ECB kh\u00F4ng h\u1EE3p l\u1EC7 trong ${issue.origin}`;\n default:\n return `\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u5B57\u7B26\", verb: \"\u5305\u542B\" },\n file: { unit: \"\u5B57\u8282\", verb: \"\u5305\u542B\" },\n array: { unit: \"\u9879\", verb: \"\u5305\u542B\" },\n set: { unit: \"\u9879\", verb: \"\u5305\u542B\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u8F93\u5165\",\n email: \"\u7535\u5B50\u90AE\u4EF6\",\n url: \"URL\",\n emoji: \"\u8868\u60C5\u7B26\u53F7\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO\u65E5\u671F\u65F6\u95F4\",\n date: \"ISO\u65E5\u671F\",\n time: \"ISO\u65F6\u95F4\",\n duration: \"ISO\u65F6\u957F\",\n ipv4: \"IPv4\u5730\u5740\",\n ipv6: \"IPv6\u5730\u5740\",\n cidrv4: \"IPv4\u7F51\u6BB5\",\n cidrv6: \"IPv6\u7F51\u6BB5\",\n base64: \"base64\u7F16\u7801\u5B57\u7B26\u4E32\",\n base64url: \"base64url\u7F16\u7801\u5B57\u7B26\u4E32\",\n json_string: \"JSON\u5B57\u7B26\u4E32\",\n e164: \"E.164\u53F7\u7801\",\n jwt: \"JWT\",\n template_literal: \"\u8F93\u5165\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"\u6570\u5B57\",\n array: \"\u6570\u7EC4\",\n null: \"\u7A7A\u503C(null)\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B instanceof ${issue.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${received}`;\n }\n return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${issue.origin ?? \"\u503C\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u4E2A\u5143\u7D20\"}`;\n return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${issue.origin ?? \"\u503C\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 \"${_issue.prefix}\" \u5F00\u5934`;\n if (_issue.format === \"ends_with\")\n return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 \"${_issue.suffix}\" \u7ED3\u5C3E`;\n if (_issue.format === \"includes\")\n return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${_issue.pattern}`;\n return `\u65E0\u6548${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${issue.divisor} \u7684\u500D\u6570`;\n case \"unrecognized_keys\":\n return `\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;\n case \"invalid_union\":\n return \"\u65E0\u6548\u8F93\u5165\";\n case \"invalid_element\":\n return `${issue.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;\n default:\n return `\u65E0\u6548\u8F93\u5165`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u5B57\u5143\", verb: \"\u64C1\u6709\" },\n file: { unit: \"\u4F4D\u5143\u7D44\", verb: \"\u64C1\u6709\" },\n array: { unit: \"\u9805\u76EE\", verb: \"\u64C1\u6709\" },\n set: { unit: \"\u9805\u76EE\", verb: \"\u64C1\u6709\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u8F38\u5165\",\n email: \"\u90F5\u4EF6\u5730\u5740\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u65E5\u671F\u6642\u9593\",\n date: \"ISO \u65E5\u671F\",\n time: \"ISO \u6642\u9593\",\n duration: \"ISO \u671F\u9593\",\n ipv4: \"IPv4 \u4F4D\u5740\",\n ipv6: \"IPv6 \u4F4D\u5740\",\n cidrv4: \"IPv4 \u7BC4\u570D\",\n cidrv6: \"IPv6 \u7BC4\u570D\",\n base64: \"base64 \u7DE8\u78BC\u5B57\u4E32\",\n base64url: \"base64url \u7DE8\u78BC\u5B57\u4E32\",\n json_string: \"JSON \u5B57\u4E32\",\n e164: \"E.164 \u6578\u503C\",\n jwt: \"JWT\",\n template_literal: \"\u8F38\u5165\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA instanceof ${issue.expected}\uFF0C\u4F46\u6536\u5230 ${received}`;\n }\n return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${expected}\uFF0C\u4F46\u6536\u5230 ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${issue.origin ?? \"\u503C\"} \u61C9\u70BA ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u500B\u5143\u7D20\"}`;\n return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${issue.origin ?? \"\u503C\"} \u61C9\u70BA ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue.origin} \u61C9\u70BA ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue.origin} \u61C9\u70BA ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 \"${_issue.prefix}\" \u958B\u982D`;\n }\n if (_issue.format === \"ends_with\")\n return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 \"${_issue.suffix}\" \u7D50\u5C3E`;\n if (_issue.format === \"includes\")\n return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${_issue.pattern}`;\n return `\u7121\u6548\u7684 ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${issue.divisor} \u7684\u500D\u6578`;\n case \"unrecognized_keys\":\n return `\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${issue.keys.length > 1 ? \"\u5011\" : \"\"}\uFF1A${util.joinValues(issue.keys, \"\u3001\")}`;\n case \"invalid_key\":\n return `${issue.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;\n case \"invalid_union\":\n return \"\u7121\u6548\u7684\u8F38\u5165\u503C\";\n case \"invalid_element\":\n return `${issue.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;\n default:\n return `\u7121\u6548\u7684\u8F38\u5165\u503C`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u00E0mi\", verb: \"n\u00ED\" },\n file: { unit: \"bytes\", verb: \"n\u00ED\" },\n array: { unit: \"nkan\", verb: \"n\u00ED\" },\n set: { unit: \"nkan\", verb: \"n\u00ED\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"\u1EB9\u0300r\u1ECD \u00ECb\u00E1w\u1ECDl\u00E9\",\n email: \"\u00E0d\u00EDr\u1EB9\u0301s\u00EC \u00ECm\u1EB9\u0301l\u00EC\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u00E0k\u00F3k\u00F2 ISO\",\n date: \"\u1ECDj\u1ECD\u0301 ISO\",\n time: \"\u00E0k\u00F3k\u00F2 ISO\",\n duration: \"\u00E0k\u00F3k\u00F2 t\u00F3 p\u00E9 ISO\",\n ipv4: \"\u00E0d\u00EDr\u1EB9\u0301s\u00EC IPv4\",\n ipv6: \"\u00E0d\u00EDr\u1EB9\u0301s\u00EC IPv6\",\n cidrv4: \"\u00E0gb\u00E8gb\u00E8 IPv4\",\n cidrv6: \"\u00E0gb\u00E8gb\u00E8 IPv6\",\n base64: \"\u1ECD\u0300r\u1ECD\u0300 t\u00ED a k\u1ECD\u0301 n\u00ED base64\",\n base64url: \"\u1ECD\u0300r\u1ECD\u0300 base64url\",\n json_string: \"\u1ECD\u0300r\u1ECD\u0300 JSON\",\n e164: \"n\u1ECD\u0301mb\u00E0 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u1EB9\u0300r\u1ECD \u00ECb\u00E1w\u1ECDl\u00E9\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"n\u1ECD\u0301mb\u00E0\",\n array: \"akop\u1ECD\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e: a n\u00ED l\u00E1ti fi instanceof ${issue.expected}, \u00E0m\u1ECD\u0300 a r\u00ED ${received}`;\n }\n return `\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e: a n\u00ED l\u00E1ti fi ${expected}, \u00E0m\u1ECD\u0300 a r\u00ED ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e: a n\u00ED l\u00E1ti fi ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u00C0\u1E63\u00E0y\u00E0n a\u1E63\u00EC\u1E63e: yan \u1ECD\u0300kan l\u00E1ra ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `T\u00F3 p\u1ECD\u0300 j\u00F9: a n\u00ED l\u00E1ti j\u1EB9\u0301 p\u00E9 ${issue.origin ?? \"iye\"} ${sizing.verb} ${adj}${issue.maximum} ${sizing.unit}`;\n return `T\u00F3 p\u1ECD\u0300 j\u00F9: a n\u00ED l\u00E1ti j\u1EB9\u0301 ${adj}${issue.maximum}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `K\u00E9r\u00E9 ju: a n\u00ED l\u00E1ti j\u1EB9\u0301 p\u00E9 ${issue.origin} ${sizing.verb} ${adj}${issue.minimum} ${sizing.unit}`;\n return `K\u00E9r\u00E9 ju: a n\u00ED l\u00E1ti j\u1EB9\u0301 ${adj}${issue.minimum}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\u00FA \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\u00ED p\u1EB9\u0300l\u00FA \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\u00ED \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u00E1 \u00E0p\u1EB9\u1EB9r\u1EB9 mu ${_issue.pattern}`;\n return `A\u1E63\u00EC\u1E63e: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `N\u1ECD\u0301mb\u00E0 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \u00E8y\u00E0 p\u00EDp\u00EDn ti ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `B\u1ECDt\u00ECn\u00EC \u00E0\u00ECm\u1ECD\u0300: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `B\u1ECDt\u00ECn\u00EC a\u1E63\u00EC\u1E63e n\u00EDn\u00FA ${issue.origin}`;\n case \"invalid_union\":\n return \"\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e\";\n case \"invalid_element\":\n return `Iye a\u1E63\u00EC\u1E63e n\u00EDn\u00FA ${issue.origin}`;\n default:\n return \"\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "var _a;\nexport const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new WeakMap();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new WeakMap();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n const f = { ...pm, ...this._map.get(schema) };\n return Object.keys(f).length ? f : undefined;\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\n(_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());\nexport const globalRegistry = globalThis.__zod_globalRegistry;\n", "import * as checks from \"./checks.js\";\nimport * as registries from \"./registries.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\n// @__NO_SIDE_EFFECTS__\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mac(Class, params) {\n return new Class({\n type: \"string\",\n format: \"mac\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\n// @__NO_SIDE_EFFECTS__\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\n// @__NO_SIDE_EFFECTS__\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\n// @__NO_SIDE_EFFECTS__\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\n// @__NO_SIDE_EFFECTS__\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\n// @__NO_SIDE_EFFECTS__\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\n// @__NO_SIDE_EFFECTS__\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\n// @__NO_SIDE_EFFECTS__\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\n// @__NO_SIDE_EFFECTS__\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\n// @__NO_SIDE_EFFECTS__\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\n// @__NO_SIDE_EFFECTS__\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\n// @__NO_SIDE_EFFECTS__\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\n// slugify\n// @__NO_SIDE_EFFECTS__\nexport function _slugify() {\n return _overwrite((input) => util.slugify(input));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _xor(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n inclusive: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass<schemas.$ZodTuple>,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\n// @__NO_SIDE_EFFECTS__\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// same as _custom but defaults to abort:false\n// @__NO_SIDE_EFFECTS__\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _superRefine(fn) {\n const ch = _check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n });\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _check(fn, params) {\n const ch = new checks.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function describe(description) {\n const ch = new checks.$ZodCheck({ check: \"describe\" });\n ch._zod.onattach = [\n (inst) => {\n const existing = registries.globalRegistry.get(inst) ?? {};\n registries.globalRegistry.add(inst, { ...existing, description });\n },\n ];\n ch._zod.check = () => { }; // no-op check\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function meta(metadata) {\n const ch = new checks.$ZodCheck({ check: \"meta\" });\n ch._zod.onattach = [\n (inst) => {\n const existing = registries.globalRegistry.get(inst) ?? {};\n registries.globalRegistry.add(inst, { ...existing, ...metadata });\n },\n ];\n ch._zod.check = () => { }; // no-op check\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const stringSchema = new _String({ type: \"string\", error: params.error });\n const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n const codec = new _Codec({\n type: \"pipe\",\n in: stringSchema,\n out: booleanSchema,\n transform: ((input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: codec,\n continue: false,\n });\n return {};\n }\n }),\n reverseTransform: ((input, _payload) => {\n if (input === true) {\n return truthyArray[0] || \"true\";\n }\n else {\n return falsyArray[0] || \"false\";\n }\n }),\n error: params.error,\n });\n return codec;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n", "import { globalRegistry } from \"./registries.js\";\n// function initializeContext<T extends schemas.$ZodType>(inputs: JSONSchemaGeneratorParams<T>): ToJSONSchemaContext<T> {\n// return {\n// processor: inputs.processor,\n// metadataRegistry: inputs.metadata ?? globalRegistry,\n// target: inputs.target ?? \"draft-2020-12\",\n// unrepresentable: inputs.unrepresentable ?? \"throw\",\n// };\n// }\nexport function initializeContext(params) {\n // Normalize target: convert old non-hyphenated versions to hyphenated versions\n let target = params?.target ?? \"draft-2020-12\";\n if (target === \"draft-4\")\n target = \"draft-04\";\n if (target === \"draft-7\")\n target = \"draft-07\";\n return {\n processors: params.processors ?? {},\n metadataRegistry: params?.metadata ?? globalRegistry,\n target,\n unrepresentable: params?.unrepresentable ?? \"throw\",\n override: params?.override ?? (() => { }),\n io: params?.io ?? \"output\",\n counter: 0,\n seen: new Map(),\n cycles: params?.cycles ?? \"ref\",\n reused: params?.reused ?? \"inline\",\n external: params?.external ?? undefined,\n };\n}\nexport function process(schema, ctx, _params = { path: [], schemaPath: [] }) {\n var _a;\n const def = schema._zod.def;\n // check for schema in seens\n const seen = ctx.seen.get(schema);\n if (seen) {\n seen.count++;\n // check if cycle\n const isCycle = _params.schemaPath.includes(schema);\n if (isCycle) {\n seen.cycle = _params.path;\n }\n return seen.schema;\n }\n // initialize\n const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n ctx.seen.set(schema, result);\n // custom method overrides default behavior\n const overrideSchema = schema._zod.toJSONSchema?.();\n if (overrideSchema) {\n result.schema = overrideSchema;\n }\n else {\n const params = {\n ..._params,\n schemaPath: [..._params.schemaPath, schema],\n path: _params.path,\n };\n if (schema._zod.processJSONSchema) {\n schema._zod.processJSONSchema(ctx, result.schema, params);\n }\n else {\n const _json = result.schema;\n const processor = ctx.processors[def.type];\n if (!processor) {\n throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`);\n }\n processor(schema, ctx, _json, params);\n }\n const parent = schema._zod.parent;\n if (parent) {\n // Also set ref if processor didn't (for inheritance)\n if (!result.ref)\n result.ref = parent;\n process(parent, ctx, params);\n ctx.seen.get(parent).isParent = true;\n }\n }\n // metadata\n const meta = ctx.metadataRegistry.get(schema);\n if (meta)\n Object.assign(result.schema, meta);\n if (ctx.io === \"input\" && isTransforming(schema)) {\n // examples/defaults only apply to output type of pipe\n delete result.schema.examples;\n delete result.schema.default;\n }\n // set prefault as default\n if (ctx.io === \"input\" && result.schema._prefault)\n (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n delete result.schema._prefault;\n // pulling fresh from ctx.seen in case it was overwritten\n const _result = ctx.seen.get(schema);\n return _result.schema;\n}\nexport function extractDefs(ctx, schema\n// params: EmitParams\n) {\n // iterate over seen map;\n const root = ctx.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // Track ids to detect duplicates across different schemas\n const idToSchema = new Map();\n for (const entry of ctx.seen.entries()) {\n const id = ctx.metadataRegistry.get(entry[0])?.id;\n if (id) {\n const existing = idToSchema.get(id);\n if (existing && existing !== entry[0]) {\n throw new Error(`Duplicate schema id \"${id}\" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);\n }\n idToSchema.set(id, entry[0]);\n }\n }\n // returns a ref to the schema\n // defId will be empty if the ref points to an external schema (or #)\n const makeURI = (entry) => {\n // comparing the seen objects because sometimes\n // multiple schemas map to the same seen object.\n // e.g. lazy\n // external is configured\n const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (ctx.external) {\n const externalId = ctx.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${ctx.counter++}`;\n // check if schema is in the external registry\n const uriGenerator = ctx.external.uri ?? ((id) => id);\n if (externalId) {\n return { ref: uriGenerator(externalId) };\n }\n // otherwise, add to __shared\n const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`;\n entry[1].defId = id; // set defId so it will be reused if needed\n return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${id}` };\n }\n if (entry[1] === root) {\n return { ref: \"#\" };\n }\n // self-contained schema\n const uriPrefix = `#`;\n const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`;\n return { defId, ref: defUriPrefix + defId };\n };\n // stored cached version in `def` property\n // remove all properties, set $ref\n const extractToDef = (entry) => {\n // if the schema is already a reference, do not extract it\n if (entry[1].schema.$ref) {\n return;\n }\n const seen = entry[1];\n const { ref, defId } = makeURI(entry);\n seen.def = { ...seen.schema };\n // defId won't be set if the schema is a reference to an external schema\n // or if the schema is the root schema\n if (defId)\n seen.defId = defId;\n // wipe away all properties except $ref\n const schema = seen.schema;\n for (const key in schema) {\n delete schema[key];\n }\n schema.$ref = ref;\n };\n // throw on cycles\n // break cycles\n if (ctx.cycles === \"throw\") {\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n if (seen.cycle) {\n throw new Error(\"Cycle detected: \" +\n `#/${seen.cycle?.join(\"/\")}/<root>` +\n '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n }\n }\n }\n // extract schemas into $defs\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n // convert root schema to # $ref\n if (schema === entry[0]) {\n extractToDef(entry); // this has special handling for the root schema\n continue;\n }\n // extract schemas that are in the external registry\n if (ctx.external) {\n const ext = ctx.external.registry.get(entry[0])?.id;\n if (schema !== entry[0] && ext) {\n extractToDef(entry);\n continue;\n }\n }\n // extract schemas with `id` meta\n const id = ctx.metadataRegistry.get(entry[0])?.id;\n if (id) {\n extractToDef(entry);\n continue;\n }\n // break cycles\n if (seen.cycle) {\n // any\n extractToDef(entry);\n continue;\n }\n // extract reused schemas\n if (seen.count > 1) {\n if (ctx.reused === \"ref\") {\n extractToDef(entry);\n // biome-ignore lint:\n continue;\n }\n }\n }\n}\nexport function finalize(ctx, schema) {\n const root = ctx.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // flatten refs - inherit properties from parent schemas\n const flattenRef = (zodSchema) => {\n const seen = ctx.seen.get(zodSchema);\n // already processed\n if (seen.ref === null)\n return;\n const schema = seen.def ?? seen.schema;\n const _cached = { ...schema };\n const ref = seen.ref;\n seen.ref = null; // prevent infinite recursion\n if (ref) {\n flattenRef(ref);\n const refSeen = ctx.seen.get(ref);\n const refSchema = refSeen.schema;\n // merge referenced schema into current\n if (refSchema.$ref && (ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\")) {\n // older drafts can't combine $ref with other properties\n schema.allOf = schema.allOf ?? [];\n schema.allOf.push(refSchema);\n }\n else {\n Object.assign(schema, refSchema);\n }\n // restore child's own properties (child wins)\n Object.assign(schema, _cached);\n const isParentRef = zodSchema._zod.parent === ref;\n // For parent chain, child is a refinement - remove parent-only properties\n if (isParentRef) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (!(key in _cached)) {\n delete schema[key];\n }\n }\n }\n // When ref was extracted to $defs, remove properties that match the definition\n if (refSchema.$ref && refSeen.def) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (key in refSeen.def && JSON.stringify(schema[key]) === JSON.stringify(refSeen.def[key])) {\n delete schema[key];\n }\n }\n }\n }\n // If parent was extracted (has $ref), propagate $ref to this schema\n // This handles cases like: readonly().meta({id}).describe()\n // where processor sets ref to innerType but parent should be referenced\n const parent = zodSchema._zod.parent;\n if (parent && parent !== ref) {\n // Ensure parent is processed first so its def has inherited properties\n flattenRef(parent);\n const parentSeen = ctx.seen.get(parent);\n if (parentSeen?.schema.$ref) {\n schema.$ref = parentSeen.schema.$ref;\n // De-duplicate with parent's definition\n if (parentSeen.def) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (key in parentSeen.def && JSON.stringify(schema[key]) === JSON.stringify(parentSeen.def[key])) {\n delete schema[key];\n }\n }\n }\n }\n }\n // execute overrides\n ctx.override({\n zodSchema: zodSchema,\n jsonSchema: schema,\n path: seen.path ?? [],\n });\n };\n for (const entry of [...ctx.seen.entries()].reverse()) {\n flattenRef(entry[0]);\n }\n const result = {};\n if (ctx.target === \"draft-2020-12\") {\n result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n }\n else if (ctx.target === \"draft-07\") {\n result.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (ctx.target === \"draft-04\") {\n result.$schema = \"http://json-schema.org/draft-04/schema#\";\n }\n else if (ctx.target === \"openapi-3.0\") {\n // OpenAPI 3.0 schema objects should not include a $schema property\n }\n else {\n // Arbitrary string values are allowed but won't have a $schema property set\n }\n if (ctx.external?.uri) {\n const id = ctx.external.registry.get(schema)?.id;\n if (!id)\n throw new Error(\"Schema is missing an `id` property\");\n result.$id = ctx.external.uri(id);\n }\n Object.assign(result, root.def ?? root.schema);\n // build defs object\n const defs = ctx.external?.defs ?? {};\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n if (seen.def && seen.defId) {\n defs[seen.defId] = seen.def;\n }\n }\n // set definitions in result\n if (ctx.external) {\n }\n else {\n if (Object.keys(defs).length > 0) {\n if (ctx.target === \"draft-2020-12\") {\n result.$defs = defs;\n }\n else {\n result.definitions = defs;\n }\n }\n }\n try {\n // this \"finalizes\" this schema and ensures all cycles are removed\n // each call to finalize() is functionally independent\n // though the seen map is shared\n const finalized = JSON.parse(JSON.stringify(result));\n Object.defineProperty(finalized, \"~standard\", {\n value: {\n ...schema[\"~standard\"],\n jsonSchema: {\n input: createStandardJSONSchemaMethod(schema, \"input\", ctx.processors),\n output: createStandardJSONSchemaMethod(schema, \"output\", ctx.processors),\n },\n },\n enumerable: false,\n writable: false,\n });\n return finalized;\n }\n catch (_err) {\n throw new Error(\"Error converting schema to JSON.\");\n }\n}\nfunction isTransforming(_schema, _ctx) {\n const ctx = _ctx ?? { seen: new Set() };\n if (ctx.seen.has(_schema))\n return false;\n ctx.seen.add(_schema);\n const def = _schema._zod.def;\n if (def.type === \"transform\")\n return true;\n if (def.type === \"array\")\n return isTransforming(def.element, ctx);\n if (def.type === \"set\")\n return isTransforming(def.valueType, ctx);\n if (def.type === \"lazy\")\n return isTransforming(def.getter(), ctx);\n if (def.type === \"promise\" ||\n def.type === \"optional\" ||\n def.type === \"nonoptional\" ||\n def.type === \"nullable\" ||\n def.type === \"readonly\" ||\n def.type === \"default\" ||\n def.type === \"prefault\") {\n return isTransforming(def.innerType, ctx);\n }\n if (def.type === \"intersection\") {\n return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n }\n if (def.type === \"record\" || def.type === \"map\") {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n if (def.type === \"pipe\") {\n return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n }\n if (def.type === \"object\") {\n for (const key in def.shape) {\n if (isTransforming(def.shape[key], ctx))\n return true;\n }\n return false;\n }\n if (def.type === \"union\") {\n for (const option of def.options) {\n if (isTransforming(option, ctx))\n return true;\n }\n return false;\n }\n if (def.type === \"tuple\") {\n for (const item of def.items) {\n if (isTransforming(item, ctx))\n return true;\n }\n if (def.rest && isTransforming(def.rest, ctx))\n return true;\n return false;\n }\n return false;\n}\n/**\n * Creates a toJSONSchema method for a schema instance.\n * This encapsulates the logic of initializing context, processing, extracting defs, and finalizing.\n */\nexport const createToJSONSchemaMethod = (schema, processors = {}) => (params) => {\n const ctx = initializeContext({ ...params, processors });\n process(schema, ctx);\n extractDefs(ctx, schema);\n return finalize(ctx, schema);\n};\nexport const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => {\n const { libraryOptions, target } = params ?? {};\n const ctx = initializeContext({ ...(libraryOptions ?? {}), target, io, processors });\n process(schema, ctx);\n extractDefs(ctx, schema);\n return finalize(ctx, schema);\n};\n", "import { extractDefs, finalize, initializeContext, process, } from \"./to-json-schema.js\";\nimport { getEnumValues } from \"./util.js\";\nconst formatMap = {\n guid: \"uuid\",\n url: \"uri\",\n datetime: \"date-time\",\n json_string: \"json-string\",\n regex: \"\", // do not set\n};\n// ==================== SIMPLE TYPE PROCESSORS ====================\nexport const stringProcessor = (schema, ctx, _json, _params) => {\n const json = _json;\n json.type = \"string\";\n const { minimum, maximum, format, patterns, contentEncoding } = schema._zod\n .bag;\n if (typeof minimum === \"number\")\n json.minLength = minimum;\n if (typeof maximum === \"number\")\n json.maxLength = maximum;\n // custom pattern overrides format\n if (format) {\n json.format = formatMap[format] ?? format;\n if (json.format === \"\")\n delete json.format; // empty format is not valid\n // JSON Schema format: \"time\" requires a full time with offset or Z\n // z.iso.time() does not include timezone information, so format: \"time\" should never be used\n if (format === \"time\") {\n delete json.format;\n }\n }\n if (contentEncoding)\n json.contentEncoding = contentEncoding;\n if (patterns && patterns.size > 0) {\n const regexes = [...patterns];\n if (regexes.length === 1)\n json.pattern = regexes[0].source;\n else if (regexes.length > 1) {\n json.allOf = [\n ...regexes.map((regex) => ({\n ...(ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\"\n ? { type: \"string\" }\n : {}),\n pattern: regex.source,\n })),\n ];\n }\n }\n};\nexport const numberProcessor = (schema, ctx, _json, _params) => {\n const json = _json;\n const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;\n if (typeof format === \"string\" && format.includes(\"int\"))\n json.type = \"integer\";\n else\n json.type = \"number\";\n if (typeof exclusiveMinimum === \"number\") {\n if (ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\") {\n json.minimum = exclusiveMinimum;\n json.exclusiveMinimum = true;\n }\n else {\n json.exclusiveMinimum = exclusiveMinimum;\n }\n }\n if (typeof minimum === \"number\") {\n json.minimum = minimum;\n if (typeof exclusiveMinimum === \"number\" && ctx.target !== \"draft-04\") {\n if (exclusiveMinimum >= minimum)\n delete json.minimum;\n else\n delete json.exclusiveMinimum;\n }\n }\n if (typeof exclusiveMaximum === \"number\") {\n if (ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\") {\n json.maximum = exclusiveMaximum;\n json.exclusiveMaximum = true;\n }\n else {\n json.exclusiveMaximum = exclusiveMaximum;\n }\n }\n if (typeof maximum === \"number\") {\n json.maximum = maximum;\n if (typeof exclusiveMaximum === \"number\" && ctx.target !== \"draft-04\") {\n if (exclusiveMaximum <= maximum)\n delete json.maximum;\n else\n delete json.exclusiveMaximum;\n }\n }\n if (typeof multipleOf === \"number\")\n json.multipleOf = multipleOf;\n};\nexport const booleanProcessor = (_schema, _ctx, json, _params) => {\n json.type = \"boolean\";\n};\nexport const bigintProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"BigInt cannot be represented in JSON Schema\");\n }\n};\nexport const symbolProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Symbols cannot be represented in JSON Schema\");\n }\n};\nexport const nullProcessor = (_schema, ctx, json, _params) => {\n if (ctx.target === \"openapi-3.0\") {\n json.type = \"string\";\n json.nullable = true;\n json.enum = [null];\n }\n else {\n json.type = \"null\";\n }\n};\nexport const undefinedProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Undefined cannot be represented in JSON Schema\");\n }\n};\nexport const voidProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Void cannot be represented in JSON Schema\");\n }\n};\nexport const neverProcessor = (_schema, _ctx, json, _params) => {\n json.not = {};\n};\nexport const anyProcessor = (_schema, _ctx, _json, _params) => {\n // empty schema accepts anything\n};\nexport const unknownProcessor = (_schema, _ctx, _json, _params) => {\n // empty schema accepts anything\n};\nexport const dateProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Date cannot be represented in JSON Schema\");\n }\n};\nexport const enumProcessor = (schema, _ctx, json, _params) => {\n const def = schema._zod.def;\n const values = getEnumValues(def.entries);\n // Number enums can have both string and number values\n if (values.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (values.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n json.enum = values;\n};\nexport const literalProcessor = (schema, ctx, json, _params) => {\n const def = schema._zod.def;\n const vals = [];\n for (const val of def.values) {\n if (val === undefined) {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Literal `undefined` cannot be represented in JSON Schema\");\n }\n else {\n // do not add to vals\n }\n }\n else if (typeof val === \"bigint\") {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"BigInt literals cannot be represented in JSON Schema\");\n }\n else {\n vals.push(Number(val));\n }\n }\n else {\n vals.push(val);\n }\n }\n if (vals.length === 0) {\n // do nothing (an undefined literal was stripped)\n }\n else if (vals.length === 1) {\n const val = vals[0];\n json.type = val === null ? \"null\" : typeof val;\n if (ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\") {\n json.enum = [val];\n }\n else {\n json.const = val;\n }\n }\n else {\n if (vals.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (vals.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n if (vals.every((v) => typeof v === \"boolean\"))\n json.type = \"boolean\";\n if (vals.every((v) => v === null))\n json.type = \"null\";\n json.enum = vals;\n }\n};\nexport const nanProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"NaN cannot be represented in JSON Schema\");\n }\n};\nexport const templateLiteralProcessor = (schema, _ctx, json, _params) => {\n const _json = json;\n const pattern = schema._zod.pattern;\n if (!pattern)\n throw new Error(\"Pattern not found in template literal\");\n _json.type = \"string\";\n _json.pattern = pattern.source;\n};\nexport const fileProcessor = (schema, _ctx, json, _params) => {\n const _json = json;\n const file = {\n type: \"string\",\n format: \"binary\",\n contentEncoding: \"binary\",\n };\n const { minimum, maximum, mime } = schema._zod.bag;\n if (minimum !== undefined)\n file.minLength = minimum;\n if (maximum !== undefined)\n file.maxLength = maximum;\n if (mime) {\n if (mime.length === 1) {\n file.contentMediaType = mime[0];\n Object.assign(_json, file);\n }\n else {\n Object.assign(_json, file); // shared props at root\n _json.anyOf = mime.map((m) => ({ contentMediaType: m })); // only contentMediaType differs\n }\n }\n else {\n Object.assign(_json, file);\n }\n};\nexport const successProcessor = (_schema, _ctx, json, _params) => {\n json.type = \"boolean\";\n};\nexport const customProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Custom types cannot be represented in JSON Schema\");\n }\n};\nexport const functionProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Function types cannot be represented in JSON Schema\");\n }\n};\nexport const transformProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Transforms cannot be represented in JSON Schema\");\n }\n};\nexport const mapProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Map cannot be represented in JSON Schema\");\n }\n};\nexport const setProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Set cannot be represented in JSON Schema\");\n }\n};\n// ==================== COMPOSITE TYPE PROCESSORS ====================\nexport const arrayProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n json.type = \"array\";\n json.items = process(def.element, ctx, { ...params, path: [...params.path, \"items\"] });\n};\nexport const objectProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n json.type = \"object\";\n json.properties = {};\n const shape = def.shape;\n for (const key in shape) {\n json.properties[key] = process(shape[key], ctx, {\n ...params,\n path: [...params.path, \"properties\", key],\n });\n }\n // required keys\n const allKeys = new Set(Object.keys(shape));\n const requiredKeys = new Set([...allKeys].filter((key) => {\n const v = def.shape[key]._zod;\n if (ctx.io === \"input\") {\n return v.optin === undefined;\n }\n else {\n return v.optout === undefined;\n }\n }));\n if (requiredKeys.size > 0) {\n json.required = Array.from(requiredKeys);\n }\n // catchall\n if (def.catchall?._zod.def.type === \"never\") {\n // strict\n json.additionalProperties = false;\n }\n else if (!def.catchall) {\n // regular\n if (ctx.io === \"output\")\n json.additionalProperties = false;\n }\n else if (def.catchall) {\n json.additionalProperties = process(def.catchall, ctx, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n};\nexport const unionProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n // Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches)\n // This includes both z.xor() and discriminated unions\n const isExclusive = def.inclusive === false;\n const options = def.options.map((x, i) => process(x, ctx, {\n ...params,\n path: [...params.path, isExclusive ? \"oneOf\" : \"anyOf\", i],\n }));\n if (isExclusive) {\n json.oneOf = options;\n }\n else {\n json.anyOf = options;\n }\n};\nexport const intersectionProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n const a = process(def.left, ctx, {\n ...params,\n path: [...params.path, \"allOf\", 0],\n });\n const b = process(def.right, ctx, {\n ...params,\n path: [...params.path, \"allOf\", 1],\n });\n const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n const allOf = [\n ...(isSimpleIntersection(a) ? a.allOf : [a]),\n ...(isSimpleIntersection(b) ? b.allOf : [b]),\n ];\n json.allOf = allOf;\n};\nexport const tupleProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n json.type = \"array\";\n const prefixPath = ctx.target === \"draft-2020-12\" ? \"prefixItems\" : \"items\";\n const restPath = ctx.target === \"draft-2020-12\" ? \"items\" : ctx.target === \"openapi-3.0\" ? \"items\" : \"additionalItems\";\n const prefixItems = def.items.map((x, i) => process(x, ctx, {\n ...params,\n path: [...params.path, prefixPath, i],\n }));\n const rest = def.rest\n ? process(def.rest, ctx, {\n ...params,\n path: [...params.path, restPath, ...(ctx.target === \"openapi-3.0\" ? [def.items.length] : [])],\n })\n : null;\n if (ctx.target === \"draft-2020-12\") {\n json.prefixItems = prefixItems;\n if (rest) {\n json.items = rest;\n }\n }\n else if (ctx.target === \"openapi-3.0\") {\n json.items = {\n anyOf: prefixItems,\n };\n if (rest) {\n json.items.anyOf.push(rest);\n }\n json.minItems = prefixItems.length;\n if (!rest) {\n json.maxItems = prefixItems.length;\n }\n }\n else {\n json.items = prefixItems;\n if (rest) {\n json.additionalItems = rest;\n }\n }\n // length\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n};\nexport const recordProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n json.type = \"object\";\n // For looseRecord with regex patterns, use patternProperties\n // This correctly represents \"only validate keys matching the pattern\" semantics\n // and composes well with allOf (intersections)\n const keyType = def.keyType;\n const keyBag = keyType._zod.bag;\n const patterns = keyBag?.patterns;\n if (def.mode === \"loose\" && patterns && patterns.size > 0) {\n // Use patternProperties for looseRecord with regex patterns\n const valueSchema = process(def.valueType, ctx, {\n ...params,\n path: [...params.path, \"patternProperties\", \"*\"],\n });\n json.patternProperties = {};\n for (const pattern of patterns) {\n json.patternProperties[pattern.source] = valueSchema;\n }\n }\n else {\n // Default behavior: use propertyNames + additionalProperties\n if (ctx.target === \"draft-07\" || ctx.target === \"draft-2020-12\") {\n json.propertyNames = process(def.keyType, ctx, {\n ...params,\n path: [...params.path, \"propertyNames\"],\n });\n }\n json.additionalProperties = process(def.valueType, ctx, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n // Add required for keys with discrete values (enum, literal, etc.)\n const keyValues = keyType._zod.values;\n if (keyValues) {\n const validKeyValues = [...keyValues].filter((v) => typeof v === \"string\" || typeof v === \"number\");\n if (validKeyValues.length > 0) {\n json.required = validKeyValues;\n }\n }\n};\nexport const nullableProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n const inner = process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n if (ctx.target === \"openapi-3.0\") {\n seen.ref = def.innerType;\n json.nullable = true;\n }\n else {\n json.anyOf = [inner, { type: \"null\" }];\n }\n};\nexport const nonoptionalProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\nexport const defaultProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n json.default = JSON.parse(JSON.stringify(def.defaultValue));\n};\nexport const prefaultProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n if (ctx.io === \"input\")\n json._prefault = JSON.parse(JSON.stringify(def.defaultValue));\n};\nexport const catchProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n let catchValue;\n try {\n catchValue = def.catchValue(undefined);\n }\n catch {\n throw new Error(\"Dynamic catch values are not supported in JSON Schema\");\n }\n json.default = catchValue;\n};\nexport const pipeProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n const innerType = ctx.io === \"input\" ? (def.in._zod.def.type === \"transform\" ? def.out : def.in) : def.out;\n process(innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = innerType;\n};\nexport const readonlyProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n json.readOnly = true;\n};\nexport const promiseProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\nexport const optionalProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\nexport const lazyProcessor = (schema, ctx, _json, params) => {\n const innerType = schema._zod.innerType;\n process(innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = innerType;\n};\n// ==================== ALL PROCESSORS ====================\nexport const allProcessors = {\n string: stringProcessor,\n number: numberProcessor,\n boolean: booleanProcessor,\n bigint: bigintProcessor,\n symbol: symbolProcessor,\n null: nullProcessor,\n undefined: undefinedProcessor,\n void: voidProcessor,\n never: neverProcessor,\n any: anyProcessor,\n unknown: unknownProcessor,\n date: dateProcessor,\n enum: enumProcessor,\n literal: literalProcessor,\n nan: nanProcessor,\n template_literal: templateLiteralProcessor,\n file: fileProcessor,\n success: successProcessor,\n custom: customProcessor,\n function: functionProcessor,\n transform: transformProcessor,\n map: mapProcessor,\n set: setProcessor,\n array: arrayProcessor,\n object: objectProcessor,\n union: unionProcessor,\n intersection: intersectionProcessor,\n tuple: tupleProcessor,\n record: recordProcessor,\n nullable: nullableProcessor,\n nonoptional: nonoptionalProcessor,\n default: defaultProcessor,\n prefault: prefaultProcessor,\n catch: catchProcessor,\n pipe: pipeProcessor,\n readonly: readonlyProcessor,\n promise: promiseProcessor,\n optional: optionalProcessor,\n lazy: lazyProcessor,\n};\nexport function toJSONSchema(input, params) {\n if (\"_idmap\" in input) {\n // Registry case\n const registry = input;\n const ctx = initializeContext({ ...params, processors: allProcessors });\n const defs = {};\n // First pass: process all schemas to build the seen map\n for (const entry of registry._idmap.entries()) {\n const [_, schema] = entry;\n process(schema, ctx);\n }\n const schemas = {};\n const external = {\n registry,\n uri: params?.uri,\n defs,\n };\n // Update the context with external configuration\n ctx.external = external;\n // Second pass: emit each schema\n for (const entry of registry._idmap.entries()) {\n const [key, schema] = entry;\n extractDefs(ctx, schema);\n schemas[key] = finalize(ctx, schema);\n }\n if (Object.keys(defs).length > 0) {\n const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n schemas.__shared = {\n [defsSegment]: defs,\n };\n }\n return { schemas };\n }\n // Single schema case\n const ctx = initializeContext({ ...params, processors: allProcessors });\n process(input, ctx);\n extractDefs(ctx, input);\n return finalize(ctx, input);\n}\n", "import { allProcessors } from \"./json-schema-processors.js\";\nimport { extractDefs, finalize, initializeContext, process, } from \"./to-json-schema.js\";\n/**\n * Legacy class-based interface for JSON Schema generation.\n * This class wraps the new functional implementation to provide backward compatibility.\n *\n * @deprecated Use the `toJSONSchema` function instead for new code.\n *\n * @example\n * ```typescript\n * // Legacy usage (still supported)\n * const gen = new JSONSchemaGenerator({ target: \"draft-07\" });\n * gen.process(schema);\n * const result = gen.emit(schema);\n *\n * // Preferred modern usage\n * const result = toJSONSchema(schema, { target: \"draft-07\" });\n * ```\n */\nexport class JSONSchemaGenerator {\n /** @deprecated Access via ctx instead */\n get metadataRegistry() {\n return this.ctx.metadataRegistry;\n }\n /** @deprecated Access via ctx instead */\n get target() {\n return this.ctx.target;\n }\n /** @deprecated Access via ctx instead */\n get unrepresentable() {\n return this.ctx.unrepresentable;\n }\n /** @deprecated Access via ctx instead */\n get override() {\n return this.ctx.override;\n }\n /** @deprecated Access via ctx instead */\n get io() {\n return this.ctx.io;\n }\n /** @deprecated Access via ctx instead */\n get counter() {\n return this.ctx.counter;\n }\n set counter(value) {\n this.ctx.counter = value;\n }\n /** @deprecated Access via ctx instead */\n get seen() {\n return this.ctx.seen;\n }\n constructor(params) {\n // Normalize target for internal context\n let normalizedTarget = params?.target ?? \"draft-2020-12\";\n if (normalizedTarget === \"draft-4\")\n normalizedTarget = \"draft-04\";\n if (normalizedTarget === \"draft-7\")\n normalizedTarget = \"draft-07\";\n this.ctx = initializeContext({\n processors: allProcessors,\n target: normalizedTarget,\n ...(params?.metadata && { metadata: params.metadata }),\n ...(params?.unrepresentable && { unrepresentable: params.unrepresentable }),\n ...(params?.override && { override: params.override }),\n ...(params?.io && { io: params.io }),\n });\n }\n /**\n * Process a schema to prepare it for JSON Schema generation.\n * This must be called before emit().\n */\n process(schema, _params = { path: [], schemaPath: [] }) {\n return process(schema, this.ctx, _params);\n }\n /**\n * Emit the final JSON Schema after processing.\n * Must call process() first.\n */\n emit(schema, _params) {\n // Apply emit params to the context\n if (_params) {\n if (_params.cycles)\n this.ctx.cycles = _params.cycles;\n if (_params.reused)\n this.ctx.reused = _params.reused;\n if (_params.external)\n this.ctx.external = _params.external;\n }\n extractDefs(this.ctx, schema);\n const result = finalize(this.ctx, schema);\n // Strip ~standard property to match old implementation's return type\n const { \"~standard\": _, ...plainResult } = result;\n return plainResult;\n }\n}\n", "export {};\n", "import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as processors from \"../core/json-schema-processors.js\";\nimport { createStandardJSONSchemaMethod, createToJSONSchemaMethod } from \"../core/to-json-schema.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n Object.assign(inst[\"~standard\"], {\n jsonSchema: {\n input: createStandardJSONSchemaMethod(inst, \"input\"),\n output: createStandardJSONSchemaMethod(inst, \"output\"),\n },\n });\n inst.toJSONSchema = createToJSONSchemaMethod(inst, {});\n inst.def = def;\n inst.type = def.type;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone(util.mergeDefs(def, {\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }), {\n parent: true,\n });\n };\n inst.with = inst.check;\n inst.clone = (def, params) => core.clone(inst, def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n // parsing\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n // encoding/decoding\n inst.encode = (data, params) => parse.encode(inst, data, params);\n inst.decode = (data, params) => parse.decode(inst, data, params);\n inst.encodeAsync = async (data, params) => parse.encodeAsync(inst, data, params);\n inst.decodeAsync = async (data, params) => parse.decodeAsync(inst, data, params);\n inst.safeEncode = (data, params) => parse.safeEncode(inst, data, params);\n inst.safeDecode = (data, params) => parse.safeDecode(inst, data, params);\n inst.safeEncodeAsync = async (data, params) => parse.safeEncodeAsync(inst, data, params);\n inst.safeDecodeAsync = async (data, params) => parse.safeDecodeAsync(inst, data, params);\n // refinements\n inst.refine = (check, params) => inst.check(refine(check, params));\n inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n // wrappers\n inst.optional = () => optional(inst);\n inst.exactOptional = () => exactOptional(inst);\n inst.nullable = () => nullable(inst);\n inst.nullish = () => optional(nullable(inst));\n inst.nonoptional = (params) => nonoptional(inst, params);\n inst.array = () => array(inst);\n inst.or = (arg) => union([inst, arg]);\n inst.and = (arg) => intersection(inst, arg);\n inst.transform = (tx) => pipe(inst, transform(tx));\n inst.default = (def) => _default(inst, def);\n inst.prefault = (def) => prefault(inst, def);\n // inst.coalesce = (def, params) => coalesce(inst, def, params);\n inst.catch = (params) => _catch(inst, params);\n inst.pipe = (target) => pipe(inst, target);\n inst.readonly = () => readonly(inst);\n // meta\n inst.describe = (description) => {\n const cl = inst.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n };\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n inst.meta = (...args) => {\n if (args.length === 0) {\n return core.globalRegistry.get(inst);\n }\n const cl = inst.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n };\n // helpers\n inst.isOptional = () => inst.safeParse(undefined).success;\n inst.isNullable = () => inst.safeParse(null).success;\n inst.apply = (fn) => fn(inst);\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.stringProcessor(inst, ctx, json, params);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // validations\n inst.regex = (...args) => inst.check(checks.regex(...args));\n inst.includes = (...args) => inst.check(checks.includes(...args));\n inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n inst.min = (...args) => inst.check(checks.minLength(...args));\n inst.max = (...args) => inst.check(checks.maxLength(...args));\n inst.length = (...args) => inst.check(checks.length(...args));\n inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n inst.lowercase = (params) => inst.check(checks.lowercase(params));\n inst.uppercase = (params) => inst.check(checks.uppercase(params));\n // transforms\n inst.trim = () => inst.check(checks.trim());\n inst.normalize = (...args) => inst.check(checks.normalize(...args));\n inst.toLowerCase = () => inst.check(checks.toLowerCase());\n inst.toUpperCase = () => inst.check(checks.toUpperCase());\n inst.slugify = () => inst.check(checks.slugify());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n return core._url(ZodURL, {\n protocol: /^https?$/,\n hostname: core.regexes.domain,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodMAC = /*@__PURE__*/ core.$constructor(\"ZodMAC\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodMAC.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function mac(params) {\n return core._mac(ZodMAC, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport function hex(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hex\", core.regexes.hex, _params);\n}\nexport function hash(alg, params) {\n const enc = params?.enc ?? \"hex\";\n const format = `${alg}_${enc}`;\n const regex = core.regexes[format];\n if (!regex)\n throw new Error(`Unrecognized hash format: ${format}`);\n return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.numberProcessor(inst, ctx, json, params);\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.int = (params) => inst.check(int(params));\n inst.safe = (params) => inst.check(int(params));\n inst.positive = (params) => inst.check(checks.gt(0, params));\n inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n inst.negative = (params) => inst.check(checks.lt(0, params));\n inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n // inst.finite = (params) => inst.check(core.finite(params));\n inst.finite = () => inst;\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.booleanProcessor(inst, ctx, json, params);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.bigintProcessor(inst, ctx, json, params);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.symbolProcessor(inst, ctx, json, params);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.undefinedProcessor(inst, ctx, json, params);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nullProcessor(inst, ctx, json, params);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.anyProcessor(inst, ctx, json, params);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unknownProcessor(inst, ctx, json, params);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.neverProcessor(inst, ctx, json, params);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.voidProcessor(inst, ctx, json, params);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.dateProcessor(inst, ctx, json, params);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.arrayProcessor(inst, ctx, json, params);\n inst.element = def.element;\n inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n inst.length = (len, params) => inst.check(checks.length(len, params));\n inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObjectJIT.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.objectProcessor(inst, ctx, json, params);\n util.defineLazy(inst, \"shape\", () => {\n return def.shape;\n });\n inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n inst.extend = (incoming) => {\n return util.extend(inst, incoming);\n };\n inst.safeExtend = (incoming) => {\n return util.safeExtend(inst, incoming);\n };\n inst.merge = (other) => util.merge(inst, other);\n inst.pick = (mask) => util.pick(inst, mask);\n inst.omit = (mask) => util.omit(inst, mask);\n inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n shape: shape ?? {},\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodXor = /*@__PURE__*/ core.$constructor(\"ZodXor\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodXor.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n inst.options = def.options;\n});\n/** Creates an exclusive union (XOR) where exactly one option must match.\n * Unlike regular unions that succeed when any option matches, xor fails if\n * zero or more than one option matches the input. */\nexport function xor(options, params) {\n return new ZodXor({\n type: \"union\",\n options: options,\n inclusive: false,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.intersectionProcessor(inst, ctx, json, params);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.tupleProcessor(inst, ctx, json, params);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.recordProcessor(inst, ctx, json, params);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n const k = core.clone(keyType);\n k._zod.values = undefined;\n return new ZodRecord({\n type: \"record\",\n keyType: k,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function looseRecord(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n mode: \"loose\",\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.mapProcessor(inst, ctx, json, params);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.setProcessor(inst, ctx, json, params);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.enumProcessor(inst, ctx, json, params);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.literalProcessor(inst, ctx, json, params);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.fileProcessor(inst, ctx, json, params);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.transformProcessor(inst, ctx, json, params);\n inst._zod.parse = (payload, _ctx) => {\n if (_ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n // _issue.continue ??= true;\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodExactOptional = /*@__PURE__*/ core.$constructor(\"ZodExactOptional\", (inst, def) => {\n core.$ZodExactOptional.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function exactOptional(innerType) {\n return new ZodExactOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nullableProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.defaultProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.prefaultProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nonoptionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.successProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.catchProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nanProcessor(inst, ctx, json, params);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.pipeProcessor(inst, ctx, json, params);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n ZodPipe.init(inst, def);\n core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n return new ZodCodec({\n type: \"pipe\",\n in: in_,\n out: out,\n transform: params.decode,\n reverseTransform: params.encode,\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.readonlyProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.templateLiteralProcessor(inst, ctx, json, params);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.lazyProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.promiseProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n core.$ZodFunction.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.functionProcessor(inst, ctx, json, params);\n});\nexport function _function(params) {\n return new ZodFunction({\n type: \"function\",\n input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n output: params?.output ?? unknown(),\n });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.customProcessor(inst, ctx, json, params);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n return core._superRefine(fn);\n}\n// Re-export describe and meta from core\nexport const describe = core.describe;\nexport const meta = core.meta;\nfunction _instanceof(cls, params = {}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n // Override check to emit invalid_type instead of custom\n inst._zod.check = (payload) => {\n if (!(payload.value instanceof cls)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: cls.name,\n input: payload.value,\n inst,\n path: [...(inst._zod.def.path ?? [])],\n });\n }\n };\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Codec: ZodCodec,\n Boolean: ZodBoolean,\n String: ZodString,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n", "export { _lt as lt, _lte as lte, _gt as gt, _gte as gte, _positive as positive, _negative as negative, _nonpositive as nonpositive, _nonnegative as nonnegative, _multipleOf as multipleOf, _maxSize as maxSize, _minSize as minSize, _size as size, _maxLength as maxLength, _minLength as minLength, _length as length, _regex as regex, _lowercase as lowercase, _uppercase as uppercase, _includes as includes, _startsWith as startsWith, _endsWith as endsWith, _property as property, _mime as mime, _overwrite as overwrite, _normalize as normalize, _trim as trim, _toLowerCase as toLowerCase, _toUpperCase as toUpperCase, _slugify as slugify, } from \"../core/index.js\";\n", "import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n", "import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => {\n inst.issues.push(issue);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => {\n inst.issues.push(...issues);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n", "import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n", "// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n invalid_type: \"invalid_type\",\n too_big: \"too_big\",\n too_small: \"too_small\",\n invalid_format: \"invalid_format\",\n not_multiple_of: \"not_multiple_of\",\n unrecognized_keys: \"unrecognized_keys\",\n invalid_union: \"invalid_union\",\n invalid_key: \"invalid_key\",\n invalid_element: \"invalid_element\",\n invalid_value: \"invalid_value\",\n custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n core.config({\n customError: map,\n });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n return core.config().customError;\n}\n/** @deprecated Do not use. Stub definition, only included for zod-to-json-schema compatibility. */\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n", "import { globalRegistry } from \"../core/registries.js\";\nimport * as _checks from \"./checks.js\";\nimport * as _iso from \"./iso.js\";\nimport * as _schemas from \"./schemas.js\";\n// Local z object to avoid circular dependency with ../index.js\nconst z = {\n ..._schemas,\n ..._checks,\n iso: _iso,\n};\n// Keys that are recognized and handled by the conversion logic\nconst RECOGNIZED_KEYS = new Set([\n // Schema identification\n \"$schema\",\n \"$ref\",\n \"$defs\",\n \"definitions\",\n // Core schema keywords\n \"$id\",\n \"id\",\n \"$comment\",\n \"$anchor\",\n \"$vocabulary\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n // Type\n \"type\",\n \"enum\",\n \"const\",\n // Composition\n \"anyOf\",\n \"oneOf\",\n \"allOf\",\n \"not\",\n // Object\n \"properties\",\n \"required\",\n \"additionalProperties\",\n \"patternProperties\",\n \"propertyNames\",\n \"minProperties\",\n \"maxProperties\",\n // Array\n \"items\",\n \"prefixItems\",\n \"additionalItems\",\n \"minItems\",\n \"maxItems\",\n \"uniqueItems\",\n \"contains\",\n \"minContains\",\n \"maxContains\",\n // String\n \"minLength\",\n \"maxLength\",\n \"pattern\",\n \"format\",\n // Number\n \"minimum\",\n \"maximum\",\n \"exclusiveMinimum\",\n \"exclusiveMaximum\",\n \"multipleOf\",\n // Already handled metadata\n \"description\",\n \"default\",\n // Content\n \"contentEncoding\",\n \"contentMediaType\",\n \"contentSchema\",\n // Unsupported (error-throwing)\n \"unevaluatedItems\",\n \"unevaluatedProperties\",\n \"if\",\n \"then\",\n \"else\",\n \"dependentSchemas\",\n \"dependentRequired\",\n // OpenAPI\n \"nullable\",\n \"readOnly\",\n]);\nfunction detectVersion(schema, defaultTarget) {\n const $schema = schema.$schema;\n if ($schema === \"https://json-schema.org/draft/2020-12/schema\") {\n return \"draft-2020-12\";\n }\n if ($schema === \"http://json-schema.org/draft-07/schema#\") {\n return \"draft-7\";\n }\n if ($schema === \"http://json-schema.org/draft-04/schema#\") {\n return \"draft-4\";\n }\n // Use defaultTarget if provided, otherwise default to draft-2020-12\n return defaultTarget ?? \"draft-2020-12\";\n}\nfunction resolveRef(ref, ctx) {\n if (!ref.startsWith(\"#\")) {\n throw new Error(\"External $ref is not supported, only local refs (#/...) are allowed\");\n }\n const path = ref.slice(1).split(\"/\").filter(Boolean);\n // Handle root reference \"#\"\n if (path.length === 0) {\n return ctx.rootSchema;\n }\n const defsKey = ctx.version === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (path[0] === defsKey) {\n const key = path[1];\n if (!key || !ctx.defs[key]) {\n throw new Error(`Reference not found: ${ref}`);\n }\n return ctx.defs[key];\n }\n throw new Error(`Reference not found: ${ref}`);\n}\nfunction convertBaseSchema(schema, ctx) {\n // Handle unsupported features\n if (schema.not !== undefined) {\n // Special case: { not: {} } represents never\n if (typeof schema.not === \"object\" && Object.keys(schema.not).length === 0) {\n return z.never();\n }\n throw new Error(\"not is not supported in Zod (except { not: {} } for never)\");\n }\n if (schema.unevaluatedItems !== undefined) {\n throw new Error(\"unevaluatedItems is not supported\");\n }\n if (schema.unevaluatedProperties !== undefined) {\n throw new Error(\"unevaluatedProperties is not supported\");\n }\n if (schema.if !== undefined || schema.then !== undefined || schema.else !== undefined) {\n throw new Error(\"Conditional schemas (if/then/else) are not supported\");\n }\n if (schema.dependentSchemas !== undefined || schema.dependentRequired !== undefined) {\n throw new Error(\"dependentSchemas and dependentRequired are not supported\");\n }\n // Handle $ref\n if (schema.$ref) {\n const refPath = schema.$ref;\n if (ctx.refs.has(refPath)) {\n return ctx.refs.get(refPath);\n }\n if (ctx.processing.has(refPath)) {\n // Circular reference - use lazy\n return z.lazy(() => {\n if (!ctx.refs.has(refPath)) {\n throw new Error(`Circular reference not resolved: ${refPath}`);\n }\n return ctx.refs.get(refPath);\n });\n }\n ctx.processing.add(refPath);\n const resolved = resolveRef(refPath, ctx);\n const zodSchema = convertSchema(resolved, ctx);\n ctx.refs.set(refPath, zodSchema);\n ctx.processing.delete(refPath);\n return zodSchema;\n }\n // Handle enum\n if (schema.enum !== undefined) {\n const enumValues = schema.enum;\n // Special case: OpenAPI 3.0 null representation { type: \"string\", nullable: true, enum: [null] }\n if (ctx.version === \"openapi-3.0\" &&\n schema.nullable === true &&\n enumValues.length === 1 &&\n enumValues[0] === null) {\n return z.null();\n }\n if (enumValues.length === 0) {\n return z.never();\n }\n if (enumValues.length === 1) {\n return z.literal(enumValues[0]);\n }\n // Check if all values are strings\n if (enumValues.every((v) => typeof v === \"string\")) {\n return z.enum(enumValues);\n }\n // Mixed types - use union of literals\n const literalSchemas = enumValues.map((v) => z.literal(v));\n if (literalSchemas.length < 2) {\n return literalSchemas[0];\n }\n return z.union([literalSchemas[0], literalSchemas[1], ...literalSchemas.slice(2)]);\n }\n // Handle const\n if (schema.const !== undefined) {\n return z.literal(schema.const);\n }\n // Handle type\n const type = schema.type;\n if (Array.isArray(type)) {\n // Expand type array into anyOf union\n const typeSchemas = type.map((t) => {\n const typeSchema = { ...schema, type: t };\n return convertBaseSchema(typeSchema, ctx);\n });\n if (typeSchemas.length === 0) {\n return z.never();\n }\n if (typeSchemas.length === 1) {\n return typeSchemas[0];\n }\n return z.union(typeSchemas);\n }\n if (!type) {\n // No type specified - empty schema (any)\n return z.any();\n }\n let zodSchema;\n switch (type) {\n case \"string\": {\n let stringSchema = z.string();\n // Apply format using .check() with Zod format functions\n if (schema.format) {\n const format = schema.format;\n // Map common formats to Zod check functions\n if (format === \"email\") {\n stringSchema = stringSchema.check(z.email());\n }\n else if (format === \"uri\" || format === \"uri-reference\") {\n stringSchema = stringSchema.check(z.url());\n }\n else if (format === \"uuid\" || format === \"guid\") {\n stringSchema = stringSchema.check(z.uuid());\n }\n else if (format === \"date-time\") {\n stringSchema = stringSchema.check(z.iso.datetime());\n }\n else if (format === \"date\") {\n stringSchema = stringSchema.check(z.iso.date());\n }\n else if (format === \"time\") {\n stringSchema = stringSchema.check(z.iso.time());\n }\n else if (format === \"duration\") {\n stringSchema = stringSchema.check(z.iso.duration());\n }\n else if (format === \"ipv4\") {\n stringSchema = stringSchema.check(z.ipv4());\n }\n else if (format === \"ipv6\") {\n stringSchema = stringSchema.check(z.ipv6());\n }\n else if (format === \"mac\") {\n stringSchema = stringSchema.check(z.mac());\n }\n else if (format === \"cidr\") {\n stringSchema = stringSchema.check(z.cidrv4());\n }\n else if (format === \"cidr-v6\") {\n stringSchema = stringSchema.check(z.cidrv6());\n }\n else if (format === \"base64\") {\n stringSchema = stringSchema.check(z.base64());\n }\n else if (format === \"base64url\") {\n stringSchema = stringSchema.check(z.base64url());\n }\n else if (format === \"e164\") {\n stringSchema = stringSchema.check(z.e164());\n }\n else if (format === \"jwt\") {\n stringSchema = stringSchema.check(z.jwt());\n }\n else if (format === \"emoji\") {\n stringSchema = stringSchema.check(z.emoji());\n }\n else if (format === \"nanoid\") {\n stringSchema = stringSchema.check(z.nanoid());\n }\n else if (format === \"cuid\") {\n stringSchema = stringSchema.check(z.cuid());\n }\n else if (format === \"cuid2\") {\n stringSchema = stringSchema.check(z.cuid2());\n }\n else if (format === \"ulid\") {\n stringSchema = stringSchema.check(z.ulid());\n }\n else if (format === \"xid\") {\n stringSchema = stringSchema.check(z.xid());\n }\n else if (format === \"ksuid\") {\n stringSchema = stringSchema.check(z.ksuid());\n }\n // Note: json-string format is not currently supported by Zod\n // Custom formats are ignored - keep as plain string\n }\n // Apply constraints\n if (typeof schema.minLength === \"number\") {\n stringSchema = stringSchema.min(schema.minLength);\n }\n if (typeof schema.maxLength === \"number\") {\n stringSchema = stringSchema.max(schema.maxLength);\n }\n if (schema.pattern) {\n // JSON Schema patterns are not implicitly anchored (match anywhere in string)\n stringSchema = stringSchema.regex(new RegExp(schema.pattern));\n }\n zodSchema = stringSchema;\n break;\n }\n case \"number\":\n case \"integer\": {\n let numberSchema = type === \"integer\" ? z.number().int() : z.number();\n // Apply constraints\n if (typeof schema.minimum === \"number\") {\n numberSchema = numberSchema.min(schema.minimum);\n }\n if (typeof schema.maximum === \"number\") {\n numberSchema = numberSchema.max(schema.maximum);\n }\n if (typeof schema.exclusiveMinimum === \"number\") {\n numberSchema = numberSchema.gt(schema.exclusiveMinimum);\n }\n else if (schema.exclusiveMinimum === true && typeof schema.minimum === \"number\") {\n numberSchema = numberSchema.gt(schema.minimum);\n }\n if (typeof schema.exclusiveMaximum === \"number\") {\n numberSchema = numberSchema.lt(schema.exclusiveMaximum);\n }\n else if (schema.exclusiveMaximum === true && typeof schema.maximum === \"number\") {\n numberSchema = numberSchema.lt(schema.maximum);\n }\n if (typeof schema.multipleOf === \"number\") {\n numberSchema = numberSchema.multipleOf(schema.multipleOf);\n }\n zodSchema = numberSchema;\n break;\n }\n case \"boolean\": {\n zodSchema = z.boolean();\n break;\n }\n case \"null\": {\n zodSchema = z.null();\n break;\n }\n case \"object\": {\n const shape = {};\n const properties = schema.properties || {};\n const requiredSet = new Set(schema.required || []);\n // Convert properties - mark optional ones\n for (const [key, propSchema] of Object.entries(properties)) {\n const propZodSchema = convertSchema(propSchema, ctx);\n // If not in required array, make it optional\n shape[key] = requiredSet.has(key) ? propZodSchema : propZodSchema.optional();\n }\n // Handle propertyNames\n if (schema.propertyNames) {\n const keySchema = convertSchema(schema.propertyNames, ctx);\n const valueSchema = schema.additionalProperties && typeof schema.additionalProperties === \"object\"\n ? convertSchema(schema.additionalProperties, ctx)\n : z.any();\n // Case A: No properties (pure record)\n if (Object.keys(shape).length === 0) {\n zodSchema = z.record(keySchema, valueSchema);\n break;\n }\n // Case B: With properties (intersection of object and looseRecord)\n const objectSchema = z.object(shape).passthrough();\n const recordSchema = z.looseRecord(keySchema, valueSchema);\n zodSchema = z.intersection(objectSchema, recordSchema);\n break;\n }\n // Handle patternProperties\n if (schema.patternProperties) {\n // patternProperties: keys matching pattern must satisfy corresponding schema\n // Use loose records so non-matching keys pass through\n const patternProps = schema.patternProperties;\n const patternKeys = Object.keys(patternProps);\n const looseRecords = [];\n for (const pattern of patternKeys) {\n const patternValue = convertSchema(patternProps[pattern], ctx);\n const keySchema = z.string().regex(new RegExp(pattern));\n looseRecords.push(z.looseRecord(keySchema, patternValue));\n }\n // Build intersection: object schema + all pattern property records\n const schemasToIntersect = [];\n if (Object.keys(shape).length > 0) {\n // Use passthrough so patternProperties can validate additional keys\n schemasToIntersect.push(z.object(shape).passthrough());\n }\n schemasToIntersect.push(...looseRecords);\n if (schemasToIntersect.length === 0) {\n zodSchema = z.object({}).passthrough();\n }\n else if (schemasToIntersect.length === 1) {\n zodSchema = schemasToIntersect[0];\n }\n else {\n // Chain intersections: (A & B) & C & D ...\n let result = z.intersection(schemasToIntersect[0], schemasToIntersect[1]);\n for (let i = 2; i < schemasToIntersect.length; i++) {\n result = z.intersection(result, schemasToIntersect[i]);\n }\n zodSchema = result;\n }\n break;\n }\n // Handle additionalProperties\n // In JSON Schema, additionalProperties defaults to true (allow any extra properties)\n // In Zod, objects strip unknown keys by default, so we need to handle this explicitly\n const objectSchema = z.object(shape);\n if (schema.additionalProperties === false) {\n // Strict mode - no extra properties allowed\n zodSchema = objectSchema.strict();\n }\n else if (typeof schema.additionalProperties === \"object\") {\n // Extra properties must match the specified schema\n zodSchema = objectSchema.catchall(convertSchema(schema.additionalProperties, ctx));\n }\n else {\n // additionalProperties is true or undefined - allow any extra properties (passthrough)\n zodSchema = objectSchema.passthrough();\n }\n break;\n }\n case \"array\": {\n // TODO: uniqueItems is not supported\n // TODO: contains/minContains/maxContains are not supported\n // Check if this is a tuple (prefixItems or items as array)\n const prefixItems = schema.prefixItems;\n const items = schema.items;\n if (prefixItems && Array.isArray(prefixItems)) {\n // Tuple with prefixItems (draft-2020-12)\n const tupleItems = prefixItems.map((item) => convertSchema(item, ctx));\n const rest = items && typeof items === \"object\" && !Array.isArray(items)\n ? convertSchema(items, ctx)\n : undefined;\n if (rest) {\n zodSchema = z.tuple(tupleItems).rest(rest);\n }\n else {\n zodSchema = z.tuple(tupleItems);\n }\n // Apply minItems/maxItems constraints to tuples\n if (typeof schema.minItems === \"number\") {\n zodSchema = zodSchema.check(z.minLength(schema.minItems));\n }\n if (typeof schema.maxItems === \"number\") {\n zodSchema = zodSchema.check(z.maxLength(schema.maxItems));\n }\n }\n else if (Array.isArray(items)) {\n // Tuple with items array (draft-7)\n const tupleItems = items.map((item) => convertSchema(item, ctx));\n const rest = schema.additionalItems && typeof schema.additionalItems === \"object\"\n ? convertSchema(schema.additionalItems, ctx)\n : undefined; // additionalItems: false means no rest, handled by default tuple behavior\n if (rest) {\n zodSchema = z.tuple(tupleItems).rest(rest);\n }\n else {\n zodSchema = z.tuple(tupleItems);\n }\n // Apply minItems/maxItems constraints to tuples\n if (typeof schema.minItems === \"number\") {\n zodSchema = zodSchema.check(z.minLength(schema.minItems));\n }\n if (typeof schema.maxItems === \"number\") {\n zodSchema = zodSchema.check(z.maxLength(schema.maxItems));\n }\n }\n else if (items !== undefined) {\n // Regular array\n const element = convertSchema(items, ctx);\n let arraySchema = z.array(element);\n // Apply constraints\n if (typeof schema.minItems === \"number\") {\n arraySchema = arraySchema.min(schema.minItems);\n }\n if (typeof schema.maxItems === \"number\") {\n arraySchema = arraySchema.max(schema.maxItems);\n }\n zodSchema = arraySchema;\n }\n else {\n // No items specified - array of any\n zodSchema = z.array(z.any());\n }\n break;\n }\n default:\n throw new Error(`Unsupported type: ${type}`);\n }\n // Apply metadata\n if (schema.description) {\n zodSchema = zodSchema.describe(schema.description);\n }\n if (schema.default !== undefined) {\n zodSchema = zodSchema.default(schema.default);\n }\n return zodSchema;\n}\nfunction convertSchema(schema, ctx) {\n if (typeof schema === \"boolean\") {\n return schema ? z.any() : z.never();\n }\n // Convert base schema first (ignoring composition keywords)\n let baseSchema = convertBaseSchema(schema, ctx);\n const hasExplicitType = schema.type || schema.enum !== undefined || schema.const !== undefined;\n // Process composition keywords LAST (they can appear together)\n // Handle anyOf - wrap base schema with union\n if (schema.anyOf && Array.isArray(schema.anyOf)) {\n const options = schema.anyOf.map((s) => convertSchema(s, ctx));\n const anyOfUnion = z.union(options);\n baseSchema = hasExplicitType ? z.intersection(baseSchema, anyOfUnion) : anyOfUnion;\n }\n // Handle oneOf - exclusive union (exactly one must match)\n if (schema.oneOf && Array.isArray(schema.oneOf)) {\n const options = schema.oneOf.map((s) => convertSchema(s, ctx));\n const oneOfUnion = z.xor(options);\n baseSchema = hasExplicitType ? z.intersection(baseSchema, oneOfUnion) : oneOfUnion;\n }\n // Handle allOf - wrap base schema with intersection\n if (schema.allOf && Array.isArray(schema.allOf)) {\n if (schema.allOf.length === 0) {\n baseSchema = hasExplicitType ? baseSchema : z.any();\n }\n else {\n let result = hasExplicitType ? baseSchema : convertSchema(schema.allOf[0], ctx);\n const startIdx = hasExplicitType ? 0 : 1;\n for (let i = startIdx; i < schema.allOf.length; i++) {\n result = z.intersection(result, convertSchema(schema.allOf[i], ctx));\n }\n baseSchema = result;\n }\n }\n // Handle nullable (OpenAPI 3.0)\n if (schema.nullable === true && ctx.version === \"openapi-3.0\") {\n baseSchema = z.nullable(baseSchema);\n }\n // Handle readOnly\n if (schema.readOnly === true) {\n baseSchema = z.readonly(baseSchema);\n }\n // Collect metadata: core schema keywords and unrecognized keys\n const extraMeta = {};\n // Core schema keywords that should be captured as metadata\n const coreMetadataKeys = [\"$id\", \"id\", \"$comment\", \"$anchor\", \"$vocabulary\", \"$dynamicRef\", \"$dynamicAnchor\"];\n for (const key of coreMetadataKeys) {\n if (key in schema) {\n extraMeta[key] = schema[key];\n }\n }\n // Content keywords - store as metadata\n const contentMetadataKeys = [\"contentEncoding\", \"contentMediaType\", \"contentSchema\"];\n for (const key of contentMetadataKeys) {\n if (key in schema) {\n extraMeta[key] = schema[key];\n }\n }\n // Unrecognized keys (custom metadata)\n for (const key of Object.keys(schema)) {\n if (!RECOGNIZED_KEYS.has(key)) {\n extraMeta[key] = schema[key];\n }\n }\n if (Object.keys(extraMeta).length > 0) {\n ctx.registry.add(baseSchema, extraMeta);\n }\n return baseSchema;\n}\n/**\n * Converts a JSON Schema to a Zod schema. This function should be considered semi-experimental. It's behavior is liable to change. */\nexport function fromJSONSchema(schema, params) {\n // Handle boolean schemas\n if (typeof schema === \"boolean\") {\n return schema ? z.any() : z.never();\n }\n const version = detectVersion(schema, params?.defaultTarget);\n const defs = (schema.$defs || schema.definitions || {});\n const ctx = {\n version,\n defs,\n refs: new Map(),\n processing: new Set(),\n rootSchema: schema,\n registry: params?.registry ?? globalRegistry,\n };\n return convertSchema(schema, ctx);\n}\n", "import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n return core._coercedDate(schemas.ZodDate, params);\n}\n", "import * as z from \"./external.js\";\nexport { z };\nexport * from \"./external.js\";\nexport default z;\n", "import * as z4 from \"zod/v4\";\nexport type FieldTypeGroups = \"STRING\" | \"JSON\";\n\nexport type _zod = typeof z4;\n\nexport interface Z2<T extends FieldTypeGroups> extends _zod { }\n\nexport { z4 as zod };\n\nexport const Z2: Z2<any> = Object.create(z4);\n", "import {\n BagPermissionLevel,\n RecipePermissionLevel,\n TemplatePermissionLevel\n} from \"@tiddlywiki/mws-prisma\";\nimport { zod as z } from \"@tiddlywiki/server/src/Z2\";\n\n\nconst halfWidth = \"half\" as const;\nconst fullWidth = \"full\" as const;\nconst stackLayout = \"stack\" as const;\n\nexport type TabId = \"wikis\" | \"templates\" | \"bags\" | \"roles\" | \"users\";\n\n\nexport interface FieldGroupDefinition {\n title?: string;\n description?: string;\n keys: string[];\n headerFieldKey?: string;\n disabledWhenHeaderOff?: boolean;\n footerDescriptionFromHeader?: boolean;\n width?: \"half\" | \"full\";\n layout?: \"grid\" | \"stack\";\n}\n\nexport type FieldSection = \"authored\" | \"runtime\" | \"operations\";\n\n\nexport type FieldType =\n | \"template-type\"\n | \"string\"\n | \"text\"\n | \"enter-password\"\n | \"confirm-password\"\n | \"search\"\n | \"switch\"\n // | \"json-editor\"\n | \"structured-preview\"\n | \"table\"\n | \"permission-table\"\n | \"validation-report\"\n | \"resolver-preview\"\n | \"search-multiselect\"\n | \"prefix-table\"\n // | \"reference\"\n // | \"reference-list\"\n | \"parameter-list\"\n | \"relationship-table\"\n // | \"action\"\n | \"summary-list\"\n | \"number\"\n | \"activity-feed\"\n | \"version\"\n | \"select\"\n | \"metadata-table\";\n\n\nexport class IdString extends String {\n static cast(val: IdString): string { return val.toString(); }\n static prefix = \"IdString____\";\n name = \"IdString\" as const;\n constructor(value: string) { super(value); }\n toJSON() { return IdString.prefix + this.valueOf(); }\n}\n\nconst stringLikeFieldShape = z.union([z.string(), z.instanceof(IdString)]);\n\nexport const fieldTypeZodShapes = {\n \"template-type\": z.enum([\"simpleV1\"]),\n \"string\": z.string(),\n \"text\": z.string(),\n \"enter-password\": z.string(),\n \"confirm-password\": z.string(),\n \"search\": z.string(),\n \"structured-preview\": z.string(),\n \"table\": z.string().array(),\n \"permission-table\": z.array(z.object({\n role: z.string(),\n level: z.string(),\n })),\n \"validation-report\": z.string(),\n \"resolver-preview\": z.string(),\n \"search-multiselect\": z.string().array(),\n \"prefix-table\": z.array(z.object({\n prefix: z.string(),\n bagName: z.string(),\n })),\n \"parameter-list\": z.string().array(),\n \"relationship-table\": z.string().array(),\n \"summary-list\": z.string().array(),\n \"number\": z.string(),\n \"activity-feed\": z.string().array(),\n \"version\": z.string(),\n \"select\": z.string(),\n \"switch\": z.boolean(),\n \"metadata-table\": z.string().array(),\n} satisfies Record<FieldType, any>;\n\nexport type FieldZodType<T extends FieldType = FieldType> = z.infer<(typeof fieldTypeZodShapes)[T]>;\n\nexport const fieldTypeCreateFactories = {\n \"template-type\": () => \"simpleV1\",\n \"string\": () => \"\",\n \"text\": () => \"\",\n \"enter-password\": () => \"\",\n \"confirm-password\": () => \"\",\n \"search\": () => \"\",\n \"switch\": () => false,\n \"structured-preview\": () => \"\",\n \"table\": () => [],\n \"permission-table\": () => [],\n \"validation-report\": () => \"\",\n \"resolver-preview\": () => \"\",\n \"search-multiselect\": () => [],\n \"prefix-table\": () => [],\n \"parameter-list\": () => [],\n \"relationship-table\": () => [],\n \"summary-list\": () => [],\n \"number\": () => \"\",\n \"activity-feed\": () => [],\n \"version\": () => \"\",\n \"select\": () => \"\",\n \"metadata-table\": () => [],\n} satisfies { [K in FieldType]: () => FieldZodType<K> };\n\n\n\nexport type Mode = \"create\" | \"create edit\" | \"edit\" | \"edit temp\" | \"create temp\" | \"create edit temp\" | \"server\" | \"\";\n\n\nexport interface FieldDefinition {\n key: string;\n label: string;\n type: FieldType;\n mode: Mode;\n section?: FieldSection;\n description?: string;\n architecture?: string;\n}\n\nexport interface ColumnDefinition {\n key: string;\n label: string;\n width?: number;\n}\n\nexport interface TabDefinition {\n id: TabId;\n label: string;\n createLabel: string;\n eyebrow: string;\n description: string;\n columns: ColumnDefinition[];\n sidebarDisplay: string[];\n fields: FieldDefinition[];\n fieldGroups?: Partial<Record<FieldSection, FieldGroupDefinition[]>>;\n}\n\n\nconst writableRoutingDescription =\n \"Define the write targets for title prefixes. \" +\n \"The resolver matches prefixes from longest to shortest, so most specific prefix gets the tiddler. \" +\n \"A tiddler will first be read from the single writable bag it matches, then from readonly bags, \" +\n \"other writable bags are ignored. The default bag catches any titles that don't match a prefix. \";\n\nconst tabs = {\n wikis: {\n id: \"wikis\",\n label: \"Wikis\",\n createLabel: \"Create wiki\",\n eyebrow: \"Your thoughts\",\n description: \"Final wiki instances built from a template plus per-wiki customizations.\",\n columns: [\n { key: \"slug\", label: \"Slug\", width: 2 },\n { key: \"displayName\", label: \"Display name\", width: 2 },\n { key: \"templateName\", label: \"Template\" },\n { key: \"defaultWritableBag\", label: \"Default bag\" },\n { key: \"prefixRuleCount\", label: \"Prefix rules\" },\n { key: \"readonlyBagCount\", label: \"Readonly bags\" },\n { key: \"pluginCount\", label: \"Plugins\" },\n // { key: \"edit\", label: \"\" }\n // { key: \"lastCompiledAt\", label: \"Compiled\" },\n // { key: \"statusFlags\", label: \"Status\" },\n // { key: \"compileValidation\", label: \"Validation\" }\n ],\n fields: [\n { key: \"slug\", label: \"Slug\", type: \"string\", section: \"authored\", mode: \"create edit\" },\n { key: \"displayName\", label: \"Display name\", type: \"string\", section: \"authored\", mode: \"create edit\" },\n { key: \"description\", label: \"Description\", type: \"text\", section: \"authored\", mode: \"create edit\" },\n { key: \"templateName\", label: \"Template\", type: \"search\", section: \"authored\", mode: \"create\" },\n { key: \"readonlyBags\", label: \"Readonly bags\", type: \"search-multiselect\", section: \"authored\", mode: \"create edit\" },\n { key: \"plugins\", label: \"Plugins\", type: \"search-multiselect\", section: \"authored\", mode: \"create edit\" },\n { key: \"lastCompiledAt\", label: \"Compiled\", type: \"string\", section: \"runtime\", mode: \"server\" },\n {\n key: \"writablePrefixBags\",\n label: \"Writable prefix bags\",\n type: \"prefix-table\",\n section: \"authored\",\n mode: \"create edit\",\n architecture: \"Edits the wiki-level prefix-to-bag routing table that drives write target selection. Longest prefix wins, and the empty string row is the fallback write target. A tiddler will only be read from the single write target it matches, after that the readonly bags are used, other write targets are ignored.\",\n },\n {\n key: \"effectiveWritableBags\",\n label: \"Current writable bags\",\n type: \"prefix-table\",\n section: \"runtime\",\n mode: \"server\",\n architecture: \"Read-only projection of compiled recipe-bag rows in the same slice of the pie order the resolver uses for writes.\",\n },\n {\n key: \"effectiveReadonlyBags\",\n label: \"Current readonly bags\",\n type: \"table\",\n section: \"runtime\",\n mode: \"server\",\n architecture: \"Read-only projection of compiled recipe-bag rows in the same top-to-bottom order the resolver uses for reads.\",\n },\n {\n key: \"effectivePluginSet\",\n label: \"Current plugin set\",\n type: \"table\",\n section: \"runtime\",\n mode: \"server\",\n architecture: \"Read-only projection of the resolved plugin rows that will actually be used by the wiki page and preload path.\",\n },\n {\n key: \"recipePermissions\",\n label: \"Recipe permissions\",\n type: \"permission-table\",\n section: \"authored\",\n mode: \"create edit\",\n architecture: \"Edits permission rows on the wiki definition itself. These govern access to the wiki surface separately from bag-level read and write rights.\",\n },\n {\n key: \"compileValidation\",\n label: \"Compile validation\",\n type: \"validation-report\",\n section: \"runtime\",\n mode: \"\",\n architecture: \"Read-only validation and compilation result across template, parameters, bag references, plugin references, and routing invariants.\",\n },\n {\n key: \"titleResolutionPreview\",\n label: \"Title routing test\",\n type: \"resolver-preview\",\n section: \"operations\",\n mode: \"edit temp\",\n architecture: \"Diagnostic resolver output for a title entered by the user: computed prefix match and authored write target selection only. Read answers and final write permission would require live server state.\",\n },\n ],\n fieldGroups: {\n authored: [\n { title: \"Wiki identity\", description: \"Name the wiki, describe it, and choose the template that provides its base routing model.\", keys: [\"slug\", \"displayName\", \"description\", \"templateName\"], width: fullWidth, layout: stackLayout },\n { title: \"Writable routing\", description: writableRoutingDescription, keys: [\"writablePrefixBags\"], width: fullWidth },\n { title: \"Bags\", description: \"Add wiki-specific readonly bags on top of anything inherited from the template.\", keys: [\"readonlyBags\"], width: halfWidth },\n { title: \"Plugins\", description: \"Add wiki-specific plugins on top of the template plugin set.\", keys: [\"plugins\"], width: halfWidth },\n { title: \"Access\", description: \"Control who can access the wiki surface itself. Bag access is handled separately on the participating bags.\", keys: [\"recipePermissions\"], width: fullWidth },\n ],\n runtime: [\n // { title: \"Computed Write Prefix\", description: \"\", keys: [\"effectiveWritableBags\"], width: fullWidth },\n // { title: \"Computed Bag Order\", description: \"\", keys: [\"effectiveReadonlyBags\"], width: halfWidth },\n // { title: \"Computed Plugin Set\", description: \"\", keys: [\"effectivePluginSet\"], width: halfWidth },\n // { title: \"Compilation status\", description: \"Validation and compilation outcome for the current authored state.\", keys: [\"compileValidation\"], width: fullWidth },\n ],\n operations: [\n {\n title: \"Title routing test\",\n description: \"Test a title against the wiki's current prefix rules to see which bag would receive writes.\",\n keys: [\"titleResolutionPreview\"],\n width: fullWidth,\n },\n ],\n },\n sidebarDisplay: [\n \"displayName\",\n \"slug\",\n \"templateName\",\n \"effectiveWritableBags\",\n \"effectiveReadonlyBags\",\n \"effectivePluginSet\",\n ]\n },\n templates: {\n id: \"templates\",\n label: \"Templates\",\n createLabel: \"Create template\",\n eyebrow: \"Wiki Blueprints\",\n description: \"Reusable recipe definitions. Changes made to a template apply to every wiki using it.\",\n columns: [\n { key: \"name\", label: \"Name\", width: 2 },\n { key: \"description\", label: \"Description\", width: 3 },\n { key: \"readonlyBagsSummary\", label: \"Readonly bags\" },\n // { key: \"writablePrefixSummary\", label: \"Writable prefixes\" },\n { key: \"dependentWikiCount\", label: \"Dependent wikis\" },\n { key: \"lastUpdatedAt\", label: \"Updated\", width: 2 },\n // { key: \"validationStatus\", label: \"Validation\" },\n ],\n fields: [\n { key: \"type\", label: \"Type\", type: \"template-type\", section: \"authored\", mode: \"create\" },\n { key: \"name\", label: \"Name\", type: \"string\", section: \"authored\", mode: \"create edit\" },\n { key: \"description\", label: \"Description\", type: \"text\", section: \"authored\", mode: \"create edit\" },\n { key: \"lastUpdatedAt\", label: \"Updated\", type: \"string\", section: \"runtime\", mode: \"server\" },\n {\n key: \"writablePrefixBags\",\n label: \"Writable prefix bags\",\n type: \"prefix-table\",\n section: \"authored\",\n mode: \"create edit\",\n architecture: \"Edits the template-level prefix-to-bag routing table that wikis inherit first. Longest prefix wins, and the empty string row is the fallback write target when no wiki-level override matches.\",\n },\n { key: \"readonlyBags\", label: \"Readonly bags\", type: \"search-multiselect\", section: \"authored\", mode: \"create edit\" },\n { key: \"plugins\", label: \"Plugins\", type: \"search-multiselect\", section: \"authored\", mode: \"create edit\" },\n {\n key: \"requiredPluginsEnabled\",\n label: \"Include Required Plugins\",\n type: \"switch\",\n section: \"authored\",\n mode: \"create edit\",\n description: \"Core plugins enable wiki sync functionality. Disable them for vanilla wikis or custom sync implementations.\",\n },\n {\n key: \"externalStore\",\n label: \"External JS Store\",\n type: \"switch\",\n section: \"authored\",\n mode: \"create edit\",\n description: \"Loads the entire store, including plugins, via a script tag.\",\n },\n {\n key: \"externalPlugins\",\n label: \"Load Plugins via Script Tags\",\n type: \"switch\",\n section: \"authored\",\n mode: \"create edit\",\n description: \"Loads plugin JSON on the client via script tags, allowing the browser to cache plugins separate from the store.\",\n },\n {\n key: \"twVersion\",\n label: \"TiddlyWiki Version\",\n type: \"select\",\n section: \"authored\",\n mode: \"create edit\",\n description: \"TW5 version pinning.\",\n\n },\n {\n key: \"templatePermissions\",\n label: \"Template permissions\",\n type: \"permission-table\",\n section: \"authored\",\n mode: \"create edit\",\n architecture: \"Grants permission to view or change this template. Wikis using this template grant their roles an implicit view permission for the selected template.\",\n },\n {\n key: \"customHtmlEnabled\",\n label: \"Custom HTML shell\",\n type: \"switch\",\n section: \"authored\",\n mode: \"create edit\",\n description: \"Enable custom HTML shell settings when this template should serve authored HTML instead of the default page shell.\",\n },\n {\n key: \"htmlContent\",\n label: \"HTML content\",\n type: \"text\",\n section: \"authored\",\n mode: \"create edit\",\n description: \"Store the raw HTML that will be served for this template. All HTTP endpoints still work, but any boot, library, or raw markup tiddlers must be included here manually.\",\n },\n {\n key: \"injectionFunction\",\n label: \"Injection function\",\n type: \"string\",\n section: \"authored\",\n mode: \"create edit\",\n description: \"Name of the JavaScript function to call with tiddlers, for example $tw.preloadTiddlers.\",\n },\n {\n key: \"injectionLocation\",\n label: \"Injection marker\",\n type: \"string\",\n section: \"authored\",\n mode: \"create edit\",\n description: \"Inject the tiddlers before this string in the HTML file. It must not be inside a script tag, for example <!-- INJECT STORE TIDDLERS HERE -->.\",\n },\n {\n key: \"defaultWritableBag\",\n label: \"Default writable bag\",\n type: \"string\",\n section: \"runtime\",\n mode: \"\",\n architecture: \"Read-only convenience projection of the writablePrefixBags row whose prefix is the empty string.\",\n },\n {\n key: \"dependentWikis\",\n label: \"Dependent wikis\",\n type: \"relationship-table\",\n section: \"runtime\",\n mode: \"\",\n architecture: \"Read-only relationship view listing all wikis that reference this template and will be revalidated or recompiled if it changes.\",\n },\n {\n key: \"validationReport\",\n label: \"Validation result\",\n type: \"validation-report\",\n section: \"runtime\",\n mode: \"\",\n architecture: \"Read-only summary of whether the definition can compile cleanly against current bag and plugin references.\",\n },\n ],\n fieldGroups: {\n authored: [\n { title: \"Template basics\", keys: [\"name\", \"description\"], width: fullWidth, layout: stackLayout },\n { title: \"Writable routing\", description: writableRoutingDescription, keys: [\"writablePrefixBags\"], width: fullWidth },\n { title: \"Bags\", keys: [\"readonlyBags\"], width: halfWidth },\n { title: \"Plugins\", keys: [\"plugins\", \"requiredPluginsEnabled\", \"externalPlugins\"], width: halfWidth, layout: stackLayout },\n { title: \"Permissions\", description: \"Permissions for who can edit or use this template. Access to the template is required to apply it to a recipe, but not required to use that recipe.\", keys: [\"templatePermissions\"], width: fullWidth, layout: stackLayout },\n { title: \"Custom HTML shell\", keys: [\"htmlContent\", \"injectionArray\", \"injectionLocation\"], headerFieldKey: \"customHtmlEnabled\", disabledWhenHeaderOff: true, width: fullWidth, layout: stackLayout },\n ],\n runtime: [\n // { keys: [\"defaultWritableBag\"], width: halfWidth },\n // { keys: [\"dependentWikis\"], width: halfWidth },\n // { keys: [\"validationReport\"], width: halfWidth },\n ],\n },\n sidebarDisplay: [\n \"name\",\n \"description\",\n \"dependentWikiCount\",\n ]\n },\n bags: {\n id: \"bags\",\n label: \"Bags\",\n createLabel: \"Create bag\",\n eyebrow: \"Tiddler Storage\",\n description: \"Concrete tiddler storage with role-based access control.\",\n columns: [\n { key: \"name\", label: \"Name\", width: 2 },\n { key: \"description\", label: \"Description\", width: 2 },\n { key: \"usedByCount\", label: \"Used by\" },\n { key: \"readonlyUsageCount\", label: \"Readonly\" },\n { key: \"writableUsageCount\", label: \"Writable\" },\n { key: \"defaultUsageCount\", label: \"Default\" },\n { key: \"permissionSummary\", label: \"Permissions\" },\n // { key: \"tiddlerCount\", label: \"Tiddlers\" },\n // { key: \"lastActivityAt\", label: \"Last activity\" },\n ],\n fields: [\n { key: \"name\", label: \"Name\", type: \"string\", section: \"authored\", mode: \"create edit\" },\n { key: \"description\", label: \"Description\", type: \"text\", section: \"authored\", mode: \"create edit\" },\n {\n key: \"bagPermissions\",\n label: \"Permissions\",\n type: \"permission-table\",\n section: \"authored\",\n mode: \"create edit\",\n architecture: \"Edits bag permission rows. These rows are consulted directly by the resolver when deciding who can read from or write to the storage container.\",\n },\n {\n key: \"referencedByTemplates\",\n label: \"Referenced by templates\",\n type: \"relationship-table\",\n section: \"runtime\",\n mode: \"\",\n architecture: \"Read-only relationship view derived from authored template definition JSON that mentions this bag in readonly or writable routing positions.\",\n },\n {\n key: \"referencedByWikis\",\n label: \"Referenced by wikis\",\n type: \"relationship-table\",\n section: \"runtime\",\n mode: \"\",\n architecture: \"Read-only relationship view derived from compiled recipe-bag rows, reflecting the effective runtime routing topology.\",\n },\n {\n key: \"routingRoles\",\n label: \"Routing roles\",\n type: \"summary-list\",\n section: \"runtime\",\n mode: \"\",\n architecture: \"Derived routing summary classifying how this bag participates across compiled wikis, such as readonly layer, writable prefix target, or default fallback.\",\n },\n // { key: \"tiddlerCount\", label: \"Tiddler count\", type: \"number\", section: \"runtime\", mode: \"\", },\n // {\n // key: \"recentActivity\",\n // label: \"Recent activity\",\n // type: \"activity-feed\",\n // section: \"runtime\",\n // mode: \"\",\n // architecture: \"Read-only operational summary built from recent tiddler event rows for this bag.\",\n // },\n ],\n fieldGroups: {\n authored: [\n { title: \"Bag basics\", keys: [\"name\", \"description\"], width: fullWidth, layout: stackLayout },\n { keys: [\"bagPermissions\"], width: fullWidth },\n ],\n runtime: [\n { keys: [\"referencedByTemplates\"], width: halfWidth },\n { keys: [\"referencedByWikis\"], width: halfWidth },\n // { keys: [\"routingRoles\"], width: halfWidth },\n // { keys: [\"tiddlerCount\"], width: halfWidth },\n // { keys: [\"recentActivity\"], width: fullWidth },\n ],\n },\n sidebarDisplay: [\n \"name\",\n \"description\",\n \"referencedByTemplates\",\n \"referencedByWikis\",\n ]\n },\n // plugins: {\n // id: \"plugins\",\n // label: \"Plugins\",\n // createLabel: \"Create plugin\",\n // eyebrow: \"Managed Assets\",\n // description: \"Separately versioned plugins compiled into each wiki\u2019s resolved plugin set. Still work in progress.\",\n // columns: [\n // { key: \"name\", label: \"Name\" },\n // { key: \"description\", label: \"Description\" },\n // { key: \"pluginPath\", label: \"Plugin Path\" },\n // { key: \"usageCount\", label: \"Usage\" },\n // ],\n // fields: [\n // { key: \"name\", label: \"Name\", type: \"string\", section: \"authored\", mode: \"server\" },\n // { key: \"description\", label: \"Description\", type: \"text\", section: \"authored\", mode: \"server\" },\n // { key: \"pluginPath\", label: \"Path\", type: \"string\", section: \"authored\", mode: \"server\" },\n // { key: \"usageCount\", label: \"Wiki Count\", type: \"number\", section: \"runtime\", mode: \"\" },\n // { key: \"usedByWikis\", label: \"Active Wikis\", type: \"table\", section: \"runtime\", mode: \"\" },\n // ],\n // fieldGroups: {\n // runtime: [\n // { title: \"Used in\", description: \"List of wikis this plugin is used in. Only includes templates that are in use.\", keys: [\"usedByWikis\"], width: fullWidth, layout: \"grid\" },\n // ],\n // },\n // sidebarDisplay: [\n // \"name\",\n // \"description\",\n // \"usageCount\",\n // \"pluginPath\",\n // ],\n // },\n roles: {\n id: \"roles\",\n label: \"Roles\",\n createLabel: \"Create role\",\n eyebrow: \"Access profiles\",\n description: \"Named access profiles that can be assigned to user accounts.\",\n columns: [\n { key: \"name\", label: \"Role name\", width: 2 },\n { key: \"description\", label: \"Role description\", width: 7 },\n ],\n fields: [\n { key: \"name\", label: \"Role name\", type: \"string\", section: \"authored\", mode: \"create edit\" },\n { key: \"description\", label: \"Role description\", type: \"text\", section: \"authored\", mode: \"create edit\" },\n ],\n fieldGroups: {\n authored: [\n { title: \"Role basics\", keys: [\"name\", \"description\"], width: fullWidth, layout: stackLayout },\n ],\n },\n sidebarDisplay: [\"name\", \"description\"],\n },\n // #region users\n users: {\n id: \"users\",\n label: \"Users\",\n createLabel: \"Create user\",\n eyebrow: \"Account logins\",\n description: \"User accounts with assigned roles.\",\n columns: [\n { key: \"username\", label: \"Username\", width: 2 },\n { key: \"email\", label: \"Email\", width: 7 },\n ],\n fields: [\n { key: \"username\", label: \"Username\", type: \"string\", section: \"authored\", mode: \"create edit\" },\n { key: \"email\", label: \"Email\", type: \"string\", section: \"authored\", mode: \"create edit\" },\n { key: \"userRoles\", label: \"Roles\", type: \"search-multiselect\", section: \"authored\", mode: \"create edit\" },\n { key: \"resetCode\", label: \"Reset Code\", type: \"string\", section: \"authored\", mode: \"create edit\" },\n\n // { key: \"password\", label: \"Password\", type: \"string\", section: \"authored\", mode: \"create edit\" },\n // { key: \"confirmPassword\", label: \"Confirm password\", type: \"string\", section: \"authored\", mode: \"create edit temp\" },\n ],\n fieldGroups: {\n authored: [\n { title: \"User identity\", keys: [\"username\", \"email\"], width: fullWidth, layout: stackLayout },\n { title: \"Roles\", description: \"Assign one or more role ids to this user account.\", keys: [\"userRoles\"], width: halfWidth },\n { title: \"Reset Code\", description: \"Allow the user to reset their password with this code.\", keys: [\"resetCode\"], width: halfWidth },\n { title: \"Credentials\", keys: [\"password\", \"confirmPassword\"], width: halfWidth, layout: stackLayout },\n ],\n },\n sidebarDisplay: [\n \"username\",\n \"email\",\n \"userRoles\",\n ]\n },\n} as const satisfies Record<string, TabDefinition>;\n\nexport const KeyFields = {\n bags: \"name\",\n // plugins: \"name\",\n roles: \"name\",\n templates: \"name\",\n users: \"username\",\n wikis: \"slug\",\n} satisfies { [K in keyof typeof tabs]: typeof tabs[K][\"fields\"][number][\"key\"] }\n\nexport function getTab(tabId: TabId): TabDefinition {\n return tabs[tabId];\n}\nexport function getAllTabs(): TabDefinition[] {\n return Object.values(tabs);\n}\n\nexport type TabDef = typeof tabs;\n\n\nexport function getSectionHeading(section: FieldSection, mode: \"create\" | \"edit\"): { title: string; copy: string; } | null {\n switch (section) {\n case \"authored\": return null;\n case \"runtime\": return {\n title: \"Current server state\",\n copy: \"These values come from the current server state. Changes you make on this page are not reflected here until you click save.\",\n };\n case \"operations\": return {\n title: \"Operations and diagnostics\",\n copy: \"\",\n };\n default: throw new Error(\"Section heading not implemented for \" + section);\n }\n\n}\ntype TabKeys<T extends TabDefinition> = MapFieldDefinitions<T[\"fields\"], any>[number] | \"id\"\ntype FieldValueMap<T> = FieldValueMap2<{ [K in keyof T]: FieldZodType<Extract<T[K], { key: K; type: FieldType; }>[\"type\"]> }>;\ntype FieldValueMap2<T> = { [K in keyof T]: T[K] extends Array<infer F> ? ReadonlyArray<F> : T[K] } & { id: IdString }\n\n\ntype StoredTabRecord<D extends TabDefinition, T> = Pick<T, TabFieldModeKeys<D, \"\" | \"create edit temp\" | \"create temp\" | \"edit temp\"> & keyof T>;\ntype SavedTabRecord<D extends TabDefinition, T> = Pick<T, TabFieldModeKeys<D, \"\" | \"create edit temp\" | \"create temp\" | \"edit temp\" | \"server\"> & keyof T>;\n\ntype TabFieldModeKeys<T extends TabDefinition, M extends Mode> = MapFieldDefinitions<T[\"fields\"], M>[number] | \"id\"\n\ntype MapFieldDefinitions<T, M extends Mode> =\n T extends [infer F extends FieldDefinition, ...infer R] ? [FilterServerFields<F, M>, ...MapFieldDefinitions<R, M>] :\n T extends [infer F extends FieldDefinition] ? [FilterServerFields<F, M>] : [];\n\ntype FilterServerFields<T extends FieldDefinition, M extends Mode> =\n T[\"mode\"] extends M ? never : T[\"key\"];\n\ntype TupleWhere<T, W> =\n T extends [infer F, ...infer R]\n ? (F extends W ? F : never) | TupleWhere<R, W>\n : T extends [infer F extends W]\n ? (F extends W ? F : never)\n : never;\n\n/** this ignores key string, which could be an issue */\nexport type Drafter<T extends { key: string; type: FieldType; }[]> = {\n [K in T[number][\"key\"]]:\n FieldZodType<TupleWhere<T, { key: K }>[\"type\"]>\n} & { id: IdString; }\n\nexport interface ExtraServerStuff {\n availablePlugins: { name: string; description: string; }[];\n}\nexport interface ExtraClientStuff {\n availableBagNames: Set<string>;\n availablePluginNames: Set<string>;\n}\n// DataClient keeps the record interfaces in sync with the zod field types\nexport interface AdminRecordStore extends DataClient, ExtraClientStuff, ExtraServerStuff {\n wikis: WikiAdminRecord[];\n templates: TemplateAdminRecord[];\n bags: BagAdminRecord[];\n // plugins: PluginAdminRecord[];\n roles: RoleAdminRecord[];\n users: UserAdminRecord[];\n}\n\ntype DataClient = {\n [K in keyof TabDef]: FieldValueMap<{\n [I in number & keyof TabDef[K][\"fields\"]as TabDef[K][\"fields\"][I][\"key\"]]: TabDef[K][\"fields\"][I]\n }>[]\n}\n\nexport interface DataStore extends ExtraServerStuff {\n wikis: StoredTabRecord<TabDef[\"wikis\"], WikiAdminRecord>[];\n templates: StoredTabRecord<TabDef[\"templates\"], TemplateAdminRecord>[];\n bags: StoredTabRecord<TabDef[\"bags\"], BagAdminRecord>[];\n // plugins: StoredTabRecord<TabDef[\"plugins\"], PluginAdminRecord>[];\n roles: StoredTabRecord<TabDef[\"roles\"], RoleAdminRecord>[];\n users: StoredTabRecord<TabDef[\"users\"], UserAdminRecord>[];\n};\n\nexport interface DataSave {\n wikis: SavedTabRecord<TabDef[\"wikis\"], WikiAdminRecord>[];\n templates: SavedTabRecord<TabDef[\"templates\"], TemplateAdminRecord>[];\n bags: SavedTabRecord<TabDef[\"bags\"], BagAdminRecord>[];\n // plugins: SavedTabRecord<TabDef[\"plugins\"], PluginAdminRecord>[];\n roles: SavedTabRecord<TabDef[\"roles\"], RoleAdminRecord>[];\n users: SavedTabRecord<TabDef[\"users\"], UserAdminRecord>[];\n};\n// #region Wiki\nexport interface WikiAdminRecord {\n // server fields\n id: IdString;\n slug: string;\n displayName: string;\n description: string;\n templateName: string;\n writablePrefixBags: readonly WritablePrefixRow[];\n readonlyBags: readonly string[];\n plugins: readonly string[];\n recipePermissions: readonly PermissionRow<RecipePermissionLevel>[];\n // client field\n defaultWritableBag: string;\n readonlyBagCount: string;\n prefixRuleCount: string;\n pluginCount: string;\n effectiveWritableBags: readonly WritablePrefixRow[];\n effectiveReadonlyBags: readonly string[];\n effectivePluginSet: readonly string[];\n compileValidation: string;\n lastCompiledAt: string;\n statusFlags: string;\n missingBags: string;\n missingPlugins: string;\n titleResolutionPreview: string;\n}\n\nexport type TemplateTypes = \"simpleV1\";\n// #region Template\nexport interface TemplateAdminRecord {\n // server fields\n id: IdString;\n type: TemplateTypes;\n name: string;\n description: string;\n writablePrefixBags: readonly WritablePrefixRow[];\n readonlyBags: readonly string[];\n plugins: readonly string[];\n templatePermissions: readonly PermissionRow<TemplatePermissionLevel>[];\n requiredPluginsEnabled: boolean;\n externalStore: boolean;\n externalPlugins: boolean;\n twVersion: string;\n customHtmlEnabled: boolean;\n htmlContent: string;\n injectionFunction: string;\n injectionLocation: string;\n // client fields\n defaultWritableBag: string;\n readonlyBagsSummary: string;\n dependentWikis: readonly string[];\n dependentWikiCount: string;\n lastUpdatedAt: string;\n validationStatus: string;\n validationReport: string;\n}\n// #region Bag\nexport interface BagAdminRecord {\n id: IdString;\n name: string;\n description: string;\n bagPermissions: readonly PermissionRow<BagPermissionLevel>[];\n usedByCount: string;\n readonlyUsageCount: string;\n writableUsageCount: string;\n defaultUsageCount: string;\n permissionSummary: string;\n referencedByTemplates: readonly string[];\n referencedByWikis: readonly string[];\n routingRoles: readonly string[];\n // tiddlerCount: string;\n // lastActivityAt: string;\n // recentActivity: string;\n}\n// #region Plugin\nexport interface PluginAdminRecord {\n id: IdString;\n name: string;\n description: string;\n pluginPath: string;\n usageCount: string;\n usedByWikis: string[];\n}\n// #region Role\nexport interface RoleAdminRecord {\n id: IdString;\n name: string;\n description: string;\n}\n// #region User\nexport interface UserAdminRecord {\n id: IdString;\n username: string;\n email: string;\n resetCode: string;\n userRoles: readonly string[];\n}\n\nexport interface WritablePrefixRow {\n prefix: string;\n bagName: string;\n}\n\nexport interface PermissionRow<Level extends string = string> {\n role: string;\n level: Level;\n}\n\nexport interface KeyValueRow {\n key: string;\n value: string;\n}\n\n\n// export class string extends String {\n// static cast(val: string): string { return val; }\n// static prefix = \"KeyString____\";\n// name = \"KeyString\" as const;\n// constructor(value: string) { super(value); }\n// toJSON() { return string.prefix + this.valueOf(); }\n// toString() { return super.toString(); }\n// }\n\n\nexport type TabZodObjectFilter = \"DataStore\" | \"DataSave\";\n\nfunction shouldIncludeFieldInTabZodObject(mode: Mode, filter?: TabZodObjectFilter): boolean {\n if (filter === \"DataStore\") {\n return mode !== \"\" && mode !== \"create edit temp\" && mode !== \"create temp\" && mode !== \"edit temp\";\n }\n if (filter === \"DataSave\") {\n return mode !== \"\" && mode !== \"create edit temp\" && mode !== \"create temp\" && mode !== \"edit temp\" && mode !== \"server\";\n }\n return true;\n}\n\nexport function buildTabZodObject<T extends TabId>(tabId: T, filter?: TabZodObjectFilter) {\n const tab = tabs[tabId];\n const fieldEntries = tab.fields\n .filter((field) => shouldIncludeFieldInTabZodObject(field.mode, filter))\n .map((field) => [field.key, fieldTypeZodShapes[field.type]] as const);\n\n return z.object({\n id: stringLikeFieldShape,\n ...Object.fromEntries(fieldEntries),\n });\n}\n\n\n", "export function definitely<T>(a: any): asserts a is T { }\n\nexport function ok<T>(value: T | null | undefined | \"\" | 0 | false, message?: string): asserts value is T {\n if (!value) throw new Error(message ?? `AssertionError: ${value}`);\n}\n\nexport function is<T>(a: any, b: boolean): a is T { return b; }\n\nexport function mapGetInit<K, V>(map: Map<K, V>, key: K, init: () => V): V {\n if (!map.has(key)) {\n let val = init();\n map.set(key, val);\n return val;\n } else {\n return map.get(key) as V;\n }\n}\n", "import { DraftChangeHandler, OperationTriggerHandler, PendingRowsChangeHandler, PermissionRowsChangeHandler, PerTabFieldState, ResolverTitleChangeHandler } from \"../app\";\nimport { MaterialSymbol } from \"../material-symbol\";\nimport { AdminRecordStore, FieldDefinition, FieldType, IdString, PermissionRow, WikiAdminRecord, WritablePrefixRow } from \"./tabs\";\nimport { definitely, is } from \"./utils\";\nimport warningIcon from \"@material-symbols/svg-400/outlined/warning.svg\";\nimport { findTemplateRecordForWikiRecord, jsonReviver } from \"./store\";\n\n\n\ninterface FieldEditorContext<T = unknown> extends ReadonlyFieldContext<T> {\n inputId: string;\n disabled?: boolean;\n fieldState: PerTabFieldState;\n itemsByTab: AdminRecordStore;\n onDraftChange: DraftChangeHandler<T>;\n onPendingRowsChange: PendingRowsChangeHandler;\n onTransientPermissionRowsChange: PermissionRowsChangeHandler;\n onResolverTitleChange: ResolverTitleChangeHandler;\n onTriggerOperation: OperationTriggerHandler;\n}\n\nexport function renderFieldEditor(ctx: FieldEditorContext<unknown>) {\n return (fieldTypeRenderEditors as any)[ctx.field.type](ctx);\n}\n\n\n/** The subset of FieldEditorContext that the readonly renderers need. */\ninterface ReadonlyFieldContext<T = unknown> {\n field: FieldDefinition;\n value: T;\n itemsByTab?: AdminRecordStore;\n}\nexport function renderFieldSidebar(ctx: ReadonlyFieldContext) {\n return (fieldTypeRenderSidebars as any)[ctx.field.type](ctx);\n}\n\n\ntype PermissionLevel = \"A_read\" | \"B_write\";\n\nfunction getPermissionLevelsForField(fieldKey: string): string[] {\n return fieldKey === \"bagPermissions\" ? [\"A_read\", \"B_write\", \"C_admin\"] : [\"A_read\", \"B_write\"];\n}\n\nfunction formatPermissionLevel(level: string): string {\n return level.replace(/^[A-Z]_/, \"\");\n}\n\nfunction buildEffectivePrefixObject(writablePrefixBags: (readonly WritablePrefixRow[])[]): readonly WritablePrefixRow[] {\n const result: Record<string, string> = {};\n for (const list of writablePrefixBags) {\n for (const row of list) {\n if (typeof row.prefix !== \"string\" || typeof row.bagName !== \"string\")\n throw new Error(\"Expects an object of { prefix: string; bagName: string; }.\")\n result[row.prefix] ??= row.bagName;\n }\n }\n return Object.entries(result)\n .map(([prefix, bagName]) => ({ prefix, bagName }))\n .sort((a, b) => b.prefix.length - a.prefix.length);\n}\n\n\nfunction getLookupOptions(fieldKey: string, itemsByTab: AdminRecordStore): string[] {\n if (fieldKey === \"readonlyBags\" || fieldKey === \"writablePrefixBags\") {\n return Array.from(itemsByTab.availableBagNames);\n }\n if (fieldKey === \"plugins\") {\n return Array.from(itemsByTab.availablePluginNames);\n }\n if (fieldKey === \"userRoles\" || fieldKey === \"bagPermissions\" || fieldKey === \"templatePermissions\" || fieldKey === \"recipePermissions\") {\n return Array.from(new Set(itemsByTab.roles.map((item) => item.name).filter(Boolean)));\n }\n return [];\n}\n\nexport function formatFieldValue(value: any): string {\n if (typeof value === \"string\"\n || value instanceof IdString\n )\n return value.trim() || \"\u2014\";\n if (Array.isArray(value)) {\n if (!value.length) return \"\u2014\";\n if (typeof value[0] === \"string\")\n return value.join(\"\\n\"); // value.length ? : \"\u2014\";\n if (typeof value[0] === \"object\") {\n if (typeof value[0].prefix === \"string\")\n return value.map(e => `${e.prefix}: ${e.bagName}`).join(\"\\n\");\n if (typeof value[0].name === \"string\")\n return value.map(e => `${e.name}`).join(\"\\n\");\n }\n }\n console.error(\"value is not supported\", value)\n throw new Error(\"value is not supported\");\n}\n\n\nfunction renderSearchableInput({ id, currentValue, placeholder, options, onInput, disabled }: {\n id: string;\n currentValue: string;\n placeholder: string;\n options: string[];\n onInput: (nextValue: string) => void;\n disabled: boolean | undefined;\n}) {\n const datalistId = `${id}-options`;\n return (\n <>\n <input\n id={id}\n class=\"field-input\"\n type=\"text\"\n value={currentValue}\n disabled={disabled}\n ref={(element) => {\n if (element.value !== currentValue) element.value = currentValue;\n }}\n placeholder={placeholder}\n list={options.length ? datalistId : undefined}\n oninput={(event) => onInput((event.currentTarget as HTMLInputElement).value)}\n />\n {options.length ? (\n <datalist id={datalistId}>\n {options.map((option) => <option value={option} />)}\n </datalist>\n ) : null}\n </>\n );\n}\n\nfunction renderTextInputField(ctx: FieldEditorContext, type: \"text\" | \"number\" | \"password\") {\n const { field, value, disabled, inputId, onDraftChange, } = ctx;\n definitely<string>(value);\n if (field.mode === \"server\" || field.mode === \"\") {\n return renderCalloutField(ctx);\n }\n return <input id={inputId} class=\"field-input\" type={type} value={value} ref={(element) => {\n if (element.value !== value) element.value = value;\n }} disabled={disabled} oninput={(event) => onDraftChange(field.key, (event.currentTarget as HTMLInputElement).value)} />;\n}\n\nfunction renderTextareaField(ctx: FieldEditorContext, rows: number, extraClass = \"\") {\n const { field, value, disabled, inputId, onDraftChange } = ctx;\n definitely<string>(value);\n const className = extraClass ? `field-textarea ${extraClass}` : \"field-textarea\";\n return <textarea id={inputId} class={className} rows={rows} ref={(element) => {\n if (element.value !== value) element.value = value;\n }} disabled={disabled} oninput={(event) => onDraftChange(field.key, (event.currentTarget as HTMLTextAreaElement).value)} />;\n}\n\nfunction renderSelectField(ctx: FieldEditorContext<boolean>) {\n const { field, value, disabled, inputId, onDraftChange } = ctx;\n definitely<boolean>(value);\n return (\n <select id={inputId} class=\"field-select\" disabled={disabled} onchange={(event) => onDraftChange(field.key, (event.currentTarget as HTMLSelectElement).value === \"true\")}>\n <option value=\"true\" selected={value}>Enabled</option>\n <option value=\"false\" selected={!value}>Disabled</option>\n </select>\n );\n}\n\n\nexport function renderSwitchField(ctx: Pick<\n FieldEditorContext<boolean>,\n \"field\" | \"value\" | \"onDraftChange\"\n>, headerSwitch = false) {\n const { field, value, onDraftChange } = ctx;\n const checked = value === true;\n return (\n <label class=\"header-switch\" for={`header-${field.key}`}>\n <input\n id={`header-${field.key}`}\n class=\"header-switch-input\"\n type=\"checkbox\"\n checked={checked}\n ref={(element) => { if (element.checked !== checked) element.checked = checked; }}\n onchange={(event) => onDraftChange(field.key, (event.currentTarget as HTMLInputElement).checked)}\n />\n <span class={checked ? \"header-switch-track is-checked\" : \"header-switch-track\"} aria-hidden=\"true\">\n <span class=\"header-switch-thumb\"></span>\n </span>\n </label>\n )\n // return (\n // <div class=\"toggle-field-row\">\n // {!headerSwitch ? (\n // <div class=\"toggle-field-copy\">\n // <strong>{field.label}</strong>\n // {field.description ? <p>{field.description}</p> : null}\n // </div>\n // ) : null}\n\n // </div>\n // );\n}\n\n\n\nfunction renderActivityFeedField(ctx: ReadonlyFieldContext<readonly string[]>) {\n const lines = ctx.value;\n return <ul class=\"timeline-list\">{lines.map((line) => <li>{line}</li>)}</ul>;\n}\n\nfunction renderMetadataTableField(ctx: ReadonlyFieldContext<readonly string[]>) {\n const lines = ctx.value;\n return <dl class=\"meta-list\">{lines.map((line) => {\n const [key, ...rest] = line.split(\":\");\n return <><dt>{key}</dt><dd>{rest.join(\":\").trim()}</dd></>;\n })}</dl>;\n}\n\nfunction renderTableField(ctx: ReadonlyFieldContext) {\n const { field, value, itemsByTab } = ctx;\n definitely<readonly string[]>(value);\n return renderLinesList(value, field.key, itemsByTab)\n}\n\nfunction renderLinesList(value: readonly string[], key: string, itemsByTab?: AdminRecordStore) {\n const missingCheck =\n itemsByTab ?\n (key === \"effectiveReadonlyBags\" || key === \"readonlyBags\") ? new Set(Array.from(itemsByTab.availableBagNames)) :\n (key === \"effectivePluginSet\" || key === \"plugins\") ? itemsByTab.availablePluginNames :\n null : null;\n const lines = value.map(line => ({ line, missing: missingCheck && !missingCheck.has(line), }));\n return <ul class=\"value-list\">{lines.map(({ line, missing }) => <li>\n {textWithSlashes(line)}\n {missing ? <span class=\"missing-marker\" aria-label=\"Missing dependency\" title=\"Missing dependency\"><MaterialSymbol icon={warningIcon} /></span> : null}\n </li>)}</ul>;\n\n}\nexport function textWithSlashes(line: string): JSX.Node[] {\n return line.split(\"/\").map((e, i, a) => <>{e + ((i !== a.length - 1) ? \"/\" : \"\")}<wbr /></>);\n}\n\nfunction renderCalloutField(ctx: ReadonlyFieldContext) {\n definitely<string>(ctx.value);\n return <div class=\"field-callout\"><p>{formatFieldValue(ctx.value)}</p></div>;\n}\n\nfunction renderPreField(ctx: ReadonlyFieldContext) {\n definitely<string>(ctx.value);\n return (\n <div class=\"field-value\">\n <pre>{formatFieldValue(ctx.value)}</pre>\n </div>\n );\n}\n\nfunction renderConfirmPasswordFieldEditor(ctx: FieldEditorContext<any>) {\n const { field, value, disabled, fieldState, inputId, onDraftChange, onTriggerOperation } = ctx;\n definitely<string>(value);\n const confirmationValue = fieldState.operationMessages[field.key] ?? \"\";\n const hasConfirmation = Boolean(confirmationValue);\n const hasMismatch = hasConfirmation && confirmationValue !== value;\n\n return (\n <div class=\"row-editor-stack\">\n <input\n id={inputId}\n class=\"field-input\"\n type=\"password\"\n value={value}\n disabled={disabled}\n placeholder=\"Enter password\"\n ref={(element) => {\n if (element.value !== value) element.value = value;\n }}\n oninput={(event) => onDraftChange(field.key, (event.currentTarget as HTMLInputElement).value)}\n />\n <input\n id={`${inputId}-confirm`}\n class=\"field-input\"\n type=\"password\"\n value={confirmationValue}\n disabled={disabled}\n placeholder=\"Confirm password\"\n ref={(element) => {\n if (element.value !== confirmationValue) element.value = confirmationValue;\n }}\n oninput={(event) => onTriggerOperation(field.key, (event.currentTarget as HTMLInputElement).value)}\n />\n {hasConfirmation ? <p class=\"field-helper\">{hasMismatch ? \"Passwords do not match yet.\" : \"Passwords match.\"}</p> : null}\n </div>\n );\n}\n\nfunction renderSearchMultiselectFieldSidebar(ctx: ReadonlyFieldContext<any>): JSX.Node {\n definitely<readonly string[]>(ctx.value);\n return <ul>\n {ctx.value.map((entry) => <li>{entry}</li>)}\n </ul>;\n}\n\nfunction renderSearchMultiselectFieldEditor(ctx: FieldEditorContext<any>) {\n const { field, value, disabled, fieldState, itemsByTab, inputId, onDraftChange, onPendingRowsChange } = ctx;\n if (typeof value === \"string\") {\n console.log(ctx);\n throw new Error(\"value is a string\");\n }\n if (field.mode === \"server\" || field.mode === \"\") {\n return renderLinesList(value, field.key, itemsByTab);\n }\n const editableLines = value;\n const pendingRowCount = fieldState.pendingRows[field.key] ?? 0;\n const lookupOptions = getLookupOptions(field.key, itemsByTab);\n const itemLabel =\n field.key === \"plugins\" ? \"plugin\" :\n field.key === \"userRoles\" ? \"role id\" :\n \"bag\";\n const templateRecord = is<WikiAdminRecord>(fieldState.draft, fieldState.tabId === \"wikis\")\n ? findTemplateRecordForWikiRecord(fieldState.draft, itemsByTab) : undefined;\n const templateReadonlyBagLines = field.key === \"readonlyBags\" && templateRecord ? templateRecord.readonlyBags : [];\n const templatePluginLines = field.key === \"plugins\" && templateRecord ? templateRecord.plugins : [];\n const templateCorePluginsEnabled = Boolean(templateRecord?.requiredPluginsEnabled);\n\n const updateLineValueAt = (index: number, nextValue: string) => {\n const lines = value.slice();\n const hadStoredRow = index < lines.length;\n while (lines.length <= index) lines.push(\"\");\n lines[index] = nextValue;\n onDraftChange(field.key, lines);\n if (!hadStoredRow && nextValue.trim()) onPendingRowsChange(field.key, (count) => count - 1);\n };\n\n const removeLineValueAt = (index: number) => {\n const lines = value.slice();\n if (index >= lines.length) {\n onPendingRowsChange(field.key, (count) => count - 1);\n return;\n }\n lines.splice(index, 1);\n onDraftChange(field.key, lines);\n };\n\n const displayedLines = editableLines.length\n ? [...editableLines, ...Array.from({ length: pendingRowCount }, () => \"\")]\n : [\"\", ...Array.from({ length: pendingRowCount }, () => \"\")];\n return (\n <div class=\"row-editor-stack\">\n {displayedLines.map((line, index) => (\n <div class=\"row-editor-row\">\n {renderSearchableInput({\n id: `${inputId}-${index}`,\n currentValue: line,\n placeholder: `${itemLabel.charAt(0).toUpperCase()}${itemLabel.slice(1)} name`,\n options: lookupOptions,\n onInput: (nextValue) => updateLineValueAt(index, nextValue),\n disabled: ctx.disabled\n })}\n <button type=\"button\" class=\"row-action-button\" disabled={disabled} onclick={() => removeLineValueAt(index)}>Remove</button>\n </div>\n ))}\n <button type=\"button\" class=\"ghost-button\" disabled={disabled} onclick={() => onPendingRowsChange(field.key, (count) => count + 1)}>{`Add ${itemLabel}`}</button>\n {field.key === \"readonlyBags\" && fieldState.tabId === \"wikis\" && templateRecord ? (\n <div class=\"field-callout\">\n <p>Readonly bags from template</p>\n <ul class=\"value-list\">\n {templateReadonlyBagLines.length ? templateReadonlyBagLines.map((bag) => <li>{bag}</li>) : <li>No template readonly bags</li>}\n </ul>\n </div>\n ) : null}\n {field.key === \"plugins\" && fieldState.tabId === \"wikis\" && templateRecord ? (\n <div class=\"field-callout\">\n <p>Plugins from template</p>\n <ul class=\"value-list\">\n {templatePluginLines.map((plugin) => <li>{plugin}</li>)}\n {templateCorePluginsEnabled ? <li>core plugins</li> : <li>core plugins disabled</li>}\n </ul>\n </div>\n ) : null}\n </div>\n );\n}\n\nfunction renderPermissionTableFieldViewer(ctx: ReadonlyFieldContext<readonly PermissionRow[]>) {\n const permissionRows = ctx.value;\n if (!permissionRows.length) {\n return <div class=\"field-callout\"><p>No permissions assigned.</p></div>;\n }\n return <table class=\"value-table\">\n {permissionRows.map((row) => (\n <tr>\n <td>{row.role || \"\u2014\"}</td>\n <td><span class=\"pill-value pill-value-small\">{formatPermissionLevel(row.level)}</span></td>\n </tr>\n ))}\n </table>;\n}\n\nfunction renderPermissionTableFieldEditor(ctx: FieldEditorContext<readonly PermissionRow[]>) {\n const { field, disabled, fieldState, itemsByTab, inputId, onDraftChange, onTransientPermissionRowsChange } = ctx;\n if (field.mode === \"server\" || field.mode === \"\") {\n return renderPermissionTableFieldViewer(ctx);\n }\n const permissionRows = ctx.value;\n const lookupOptions = getLookupOptions(field.key, itemsByTab);\n const availableLevels = getPermissionLevelsForField(field.key);\n const transientPermissionRows = fieldState.transientPermissionRows[field.key] ?? [];\n const displayedPermissionRows = permissionRows.length || transientPermissionRows.length\n ? [...permissionRows, ...transientPermissionRows]\n : [{ role: \"\", level: availableLevels[0] as PermissionLevel }];\n\n const persistPermissionRows = (rows: PermissionRow[]) => {\n const persistedRows = rows.filter((row) => row.role.trim());\n const nextTransientRows = rows.filter((row) => !row.role.trim());\n onDraftChange(field.key, permissionRowsCodec.stringify(persistedRows));\n onTransientPermissionRowsChange(field.key, nextTransientRows);\n };\n\n return (\n <div class=\"row-editor-stack\">\n {displayedPermissionRows.map((row, index) => (\n <div key={`${field.key}-permission-${index}`} class=\"row-editor-row row-editor-row-wide row-editor-row-permission\">\n {renderSearchableInput({\n id: `${inputId}-${index}-role`,\n currentValue: row.role,\n placeholder: \"Role\",\n options: lookupOptions,\n disabled: ctx.disabled,\n onInput: (nextValue) => {\n const nextRows = [...displayedPermissionRows];\n nextRows[index] = { ...row, role: nextValue };\n persistPermissionRows(nextRows);\n },\n })}\n <select class=\"field-select\" onchange={(event) => {\n if (disabled) return;\n const nextRows = [...displayedPermissionRows];\n nextRows[index] = { ...row, level: (event.currentTarget as HTMLSelectElement).value as PermissionLevel };\n persistPermissionRows(nextRows);\n }} disabled={disabled}>\n {availableLevels.map((level) => <option key={`${field.key}-${index}-${level}`} value={level} selected={level === row.level}>{formatPermissionLevel(level)}</option>)}\n </select>\n <button type=\"button\" class=\"row-action-button\" disabled={disabled} onclick={() => {\n const nextRows = [...displayedPermissionRows];\n nextRows.splice(index, 1);\n persistPermissionRows(nextRows);\n }}>Remove</button>\n </div>\n ))}\n <button type=\"button\" class=\"ghost-button\" disabled={disabled} onclick={() =>\n onTransientPermissionRowsChange(field.key, [...transientPermissionRows, {\n role: \"\", level: availableLevels[0] as PermissionLevel\n }])}>Add permission</button>\n </div>\n );\n}\n\nconst defaultPrefixPill = <div class=\"prefix-bag-sidebar-pill\">default</div>;\n\nfunction hasPrefixTrimMismatch(value: string): boolean {\n return value.trim() !== value;\n}\n\nfunction renderPrefixMappingRows(displayedMappingRows: readonly WritablePrefixRow[]) {\n return <table class=\"value-table\">\n {displayedMappingRows.map((row) => (\n <tr>\n <td>{row.prefix ? <code>{'\"' + row.prefix + '\"'}</code> : defaultPrefixPill}</td>\n <td>{row.bagName}</td>\n </tr>\n ))}\n </table>;\n}\n\nfunction renderPrefixTableFieldSidebar(ctx: ReadonlyFieldContext<any>): JSX.Node {\n definitely<WritablePrefixRow[]>(ctx.value);\n return <dl class=\"prefix-bag-sidebar\">\n {ctx.value.map((entry) => <>\n <dt class=\"prefix-bag-sidebar-term\">{entry.prefix ? <span class=\"prefix-bag-sidebar-prefix\">\"{textWithSlashes(entry.prefix)}\"</span> : defaultPrefixPill}</dt>\n <dd class=\"prefix-bag-sidebar-value\">{textWithSlashes(entry.bagName)}</dd>\n </>)}\n </dl>;\n}\n\nfunction renderPrefixTableFieldEditor(ctx: FieldEditorContext<any>) {\n const { field, value, disabled, fieldState, itemsByTab, inputId, onDraftChange, onPendingRowsChange } = ctx;\n const forDisplay = field.mode === \"server\";\n definitely<WritablePrefixRow[]>(value);\n const mappingRows = value;\n const pendingRowCount = fieldState.pendingRows[field.key] ?? 0;\n const lookupOptions = getLookupOptions(field.key, itemsByTab);\n const displayedMappingRows = mappingRows.length\n ? [...mappingRows, ...Array.from({ length: pendingRowCount }, () => ({ prefix: \"\", bagName: \"\" }))]\n : [{ prefix: \"\", bagName: \"\" }, ...Array.from({ length: pendingRowCount }, () => ({ prefix: \"\", bagName: \"\" }))];\n const templateRecord = is<WikiAdminRecord>(fieldState.draft, fieldState.tabId === \"wikis\")\n ? findTemplateRecordForWikiRecord(fieldState.draft, itemsByTab) : undefined;\n const inheritedRoutingRows = fieldState.tabId === \"wikis\" && templateRecord ? templateRecord.writablePrefixBags : [];\n\n if (forDisplay) {\n return renderPrefixMappingRows(displayedMappingRows);\n }\n return (\n <div class=\"row-editor-stack\">\n {displayedMappingRows.map((row, index) => (\n <div class=\"row-editor-row row-editor-row-wide\">\n <div class=\"prefix-input-shell\">\n <input class={hasPrefixTrimMismatch(row.prefix) ? \"field-input is-invalid\" : \"field-input\"}\n type=\"text\"\n value={row.prefix}\n placeholder=\"Prefix, leave blank for default\"\n aria-invalid={hasPrefixTrimMismatch(row.prefix) ? \"true\" : undefined}\n title={hasPrefixTrimMismatch(row.prefix) ? \"Prefix has leading or trailing whitespace. Is this intentional?\" : undefined}\n disabled={disabled}\n oninput={(event) => {\n const element = event.currentTarget as HTMLInputElement;\n const hadStoredRow = index < mappingRows.length;\n const nextRows = mappingRows.length ? [...mappingRows] : [{ prefix: \"\", bagName: \"\" }];\n nextRows[index] = { ...row, prefix: element.value };\n onDraftChange(field.key, nextRows);\n if (!hadStoredRow && (element.value || row.bagName.trim())) onPendingRowsChange(field.key, (count) => count - 1);\n }} ref={(element) => {\n if (element.value !== row.prefix) element.value = row.prefix;\n }} />\n {hasPrefixTrimMismatch(row.prefix) ? <span\n class=\"prefix-input-alert missing-marker\"\n aria-label=\"Prefix has leading or trailing whitespace\"\n title=\"Prefix has leading or trailing whitespace. Is this intentional?\"\n ><MaterialSymbol icon={warningIcon} /></span> : null}\n </div>\n {renderSearchableInput({\n id: `${inputId}-${index}-target`,\n currentValue: row.bagName,\n placeholder: \"Target bag\",\n options: lookupOptions,\n disabled: ctx.disabled,\n onInput: (nextValue) => {\n const hadStoredRow = index < mappingRows.length;\n const nextRows = mappingRows.length ? [...mappingRows] : [{ prefix: \"\", bagName: \"\" }];\n nextRows[index] = { ...row, bagName: nextValue };\n onDraftChange(field.key, nextRows);\n if (!hadStoredRow && (row.prefix || nextValue.trim())) onPendingRowsChange(field.key, (count) => count - 1);\n },\n })}\n {<button type=\"button\" class=\"row-action-button\" disabled={disabled} onclick={() => {\n if (index >= mappingRows.length) {\n onPendingRowsChange(field.key, (count) => count - 1);\n return;\n }\n const nextRows = mappingRows.length ? [...mappingRows] : [];\n nextRows.splice(index, 1);\n onDraftChange(field.key, nextRows);\n }}>Remove</button>}\n </div>\n ))}\n {<button type=\"button\" class=\"ghost-button\" disabled={disabled} onclick={() => onPendingRowsChange(field.key, (count) => count + 1)}>Add prefix rule</button>}\n {inheritedRoutingRows.length ? (\n <div class=\"field-callout\">\n <p>Writable bags inherited from template:</p>\n {renderPrefixMappingRows(buildEffectivePrefixObject([mappingRows, inheritedRoutingRows]))}\n </div>\n ) : null}\n </div>\n );\n}\n\nfunction renderAutocompleteFieldSidebar(ctx: ReadonlyFieldContext<any>) {\n return ctx.value ?? \"\";\n}\n\nfunction renderAutocompleteFieldEditor(ctx: FieldEditorContext<any>) {\n const { field, value, disabled, itemsByTab, inputId, onDraftChange } = ctx;\n const datalistId = `${inputId}-options`;\n const optionMap = new Map(itemsByTab.templates.map((entry) => [entry.name, entry.id]));\n\n return (\n <>\n <input id={inputId} class=\"field-input\" type=\"text\" value={value ?? \"\"} disabled={disabled}\n ref={(element) => {\n if (value && element.value !== value) element.value = value;\n }}\n list={datalistId}\n oninput={(event) => {\n const name = event.currentTarget.value;\n if (!name) return event.preventDefault();\n onDraftChange(field.key, name);\n }}\n />\n <datalist id={datalistId}>\n {Array.from(optionMap.keys(), (option) => <option value={option} />)}\n </datalist>\n </>\n );\n}\n\nfunction computeResolverPreview(draft: WikiAdminRecord, title: string) {\n const normalizedTitle = title.trim();\n const targets = draft.effectiveWritableBags.filter((row) => row.bagName).sort((a, b) => b.prefix.length - a.prefix.length);\n const writeTarget = normalizedTitle\n ? (targets.find((target) => target.prefix && normalizedTitle.startsWith(target.prefix)) ?? targets.find((target) => target.prefix === \"\"))\n : undefined;\n return {\n title: normalizedTitle,\n writeTo: writeTarget?.bagName ?? \"No writable target\",\n matchedPrefix: writeTarget ? (writeTarget.prefix || \"default\") : \"none\",\n };\n}\n\nfunction renderResolverPreviewFieldEditor(ctx: FieldEditorContext<any>) {\n const { fieldState, inputId, onResolverTitleChange } = ctx;\n definitely<WikiAdminRecord>(fieldState.draft);\n const preview = computeResolverPreview(fieldState.draft, fieldState.resolverTitle);\n return (\n <div class=\"tool-panel resolver-tool\">\n <label class=\"field-label\" for={inputId}>Title to test</label>\n <input id={inputId} class=\"field-input\" type=\"text\" value={fieldState.resolverTitle} ref={(element) => {\n if (element.value !== fieldState.resolverTitle) element.value = fieldState.resolverTitle;\n }} oninput={(event) => onResolverTitleChange((event.currentTarget as HTMLInputElement).value)} />\n <div class=\"resolver-grid\">\n <div class=\"resolver-stat\">\n <span>Matched prefix</span>\n <strong>{preview.matchedPrefix}</strong>\n </div>\n <div class=\"resolver-stat\">\n <span>Write target</span>\n <strong>{preview.writeTo}</strong>\n </div>\n </div>\n <div class=\"field-callout\">\n <p>{preview.title ? `Resolver would test the title against the longest matching prefix rule, then fall back to the default target if no explicit prefix matches. Final reads and write permission depend on live server state and are not shown here.` : `Enter a title to preview how this wiki would route it.`}</p>\n </div>\n </div>\n );\n}\n\nfunction renderValueListFieldSidebar(ctx: ReadonlyFieldContext<any>) {\n const lines = typeof ctx.value === \"string\"\n ? lineListCodec.parse(ctx.value)\n : ctx.value as readonly string[];\n return renderLinesList(lines, ctx.field.key, ctx.itemsByTab);\n}\n\ntype FieldTypeRenderEditor = ((ctx: FieldEditorContext<any>) => JSX.Node) | null;\ntype FieldTypeRenderSidebar = ((ctx: ReadonlyFieldContext<any>) => JSX.Node) | null;\n\n\nclass LineListCodec {\n public parse(value: string): string[] {\n if (!value.trim()) return [];\n return value.split(\"\\n\").map((entry) => entry.trim()).filter(Boolean);\n }\n\n public stringify(lines: string[]): string {\n return lines.map((line) => line.trim()).filter(Boolean).join(\"\\n\");\n }\n}\n\nclass PermissionRowsCodec {\n public parse(value: PermissionRow[]): PermissionRow[] {\n return JSON.parse(JSON.stringify(value), jsonReviver);\n }\n\n public stringify(value: PermissionRow[]): PermissionRow[] {\n return JSON.parse(JSON.stringify(value), jsonReviver);\n }\n}\n\nexport const lineListCodec = new LineListCodec();\nexport const permissionRowsCodec = new PermissionRowsCodec();\n\n\n\n\nexport const fieldTypeRenderEditors = {\n \"string\": (ctx) => renderTextInputField(ctx, \"text\"),\n \"version\": (ctx) => renderTextInputField(ctx, \"text\"),\n \"number\": (ctx) => renderTextInputField(ctx, \"number\"),\n \"text\": (ctx) => renderTextareaField(ctx, 4),\n \"enter-password\": (ctx) => renderTextInputField(ctx, \"password\"),\n \"confirm-password\": renderConfirmPasswordFieldEditor,\n \"search-multiselect\": renderSearchMultiselectFieldEditor,\n \"permission-table\": renderPermissionTableFieldEditor,\n \"prefix-table\": renderPrefixTableFieldEditor,\n \"select\": renderSelectField,\n \"switch\": renderSwitchField,\n \"search\": renderAutocompleteFieldEditor,\n \"resolver-preview\": renderResolverPreviewFieldEditor,\n \"parameter-list\": renderValueListFieldSidebar,\n \"relationship-table\": renderValueListFieldSidebar,\n \"summary-list\": renderValueListFieldSidebar,\n \"activity-feed\": renderActivityFeedField,\n \"metadata-table\": renderMetadataTableField,\n \"table\": renderTableField,\n \"structured-preview\": renderCalloutField,\n \"validation-report\": renderCalloutField,\n \"template-type\": (ctx) => null,\n} satisfies Record<FieldType, FieldTypeRenderEditor>;\n\nexport const fieldTypeRenderSidebars = {\n \"string\": renderPreField,\n \"version\": renderPreField,\n \"number\": renderPreField,\n \"text\": renderPreField,\n \"enter-password\": () => null,\n \"confirm-password\": () => null,\n \"search-multiselect\": renderSearchMultiselectFieldSidebar,\n \"permission-table\": renderPermissionTableFieldViewer,\n \"prefix-table\": renderPrefixTableFieldSidebar,\n \"select\": () => null,\n \"switch\": () => null,\n \"search\": renderAutocompleteFieldSidebar,\n \"resolver-preview\": () => null,\n \"parameter-list\": renderValueListFieldSidebar,\n \"relationship-table\": renderValueListFieldSidebar,\n \"summary-list\": renderValueListFieldSidebar,\n \"activity-feed\": renderActivityFeedField,\n \"metadata-table\": renderMetadataTableField,\n \"table\": renderTableField,\n \"structured-preview\": renderCalloutField,\n \"validation-report\": renderCalloutField,\n \"template-type\": () => null,\n} satisfies Record<FieldType, FieldTypeRenderSidebar>;\n", "import {\n AdminStorage,\n AdminRecord,\n isServerField,\n getAdminRecordValue,\n setAdminRecordValue,\n uniqueLines,\n} from \"../app\";\nimport { lineListCodec } from \"./renders\";\nimport {\n DataStore,\n AdminRecordStore,\n TabId,\n getTab,\n TabDefinition,\n TemplateAdminRecord,\n WikiAdminRecord,\n BagAdminRecord,\n PermissionRow,\n PluginAdminRecord,\n WritablePrefixRow,\n\n IdString,\n fieldTypeCreateFactories,\n ExtraClientStuff,\n ExtraServerStuff,\n} from \"./tabs\";\n\nimport { definitely, mapGetInit } from \"./utils\";\n\nexport const jsonReviver = (key: any, val: any) => {\n if (typeof val === \"string\" && val.startsWith(IdString.prefix))\n return new IdString(val.slice(IdString.prefix.length));\n // if (typeof val === \"string\" && val.startsWith(KeyString.prefix))\n // return val.slice(KeyString.prefix.length);\n return val;\n};\n\nexport class InMemoryAdminStorage implements AdminStorage {\n private data!: DataStore;\n constructor(\n private deriveItems: (data: DataStore) => AdminRecordStore\n ) {\n }\n\n public async loadAll(): Promise<AdminRecordStore> {\n const data = await (await fetch(pathPrefix + \"/admin/load\", {\n headers: { \"X-Requested-With\": \"TiddlyWiki\" }\n })).text();\n\n this.data = JSON.parse(data, jsonReviver);\n return this.deriveItems(this.data);\n }\n private wait(ms: number): Promise<void> {\n return new Promise((resolve) => {\n globalThis.setTimeout(resolve, ms);\n });\n }\n\n public async read<T extends TabId>(tabId: T, id: IdString): Promise<AdminRecordStore[T][number] | null> {\n if (!this.data) await this.loadAll();\n return this.deriveItems(this.data)[tabId].find((record) => record.id?.toString() === id?.toString()) ?? null;\n }\n\n public async save<T extends TabId>(tabId: T, record: AdminRecordStore[T][number]): Promise<AdminRecordStore[T]> {\n if (!this.data) throw new Error(\"data should be loaded first\");\n console.log(record);\n const prunedRecord = this.pruneStoredRecord(tabId, record);\n const id = prunedRecord.id;\n const response = await fetch(pathPrefix + \"/admin/save/\" + tabId, {\n method: \"PUT\",\n body: JSON.stringify(prunedRecord),\n headers: {\n \"X-Requested-With\": \"TiddlyWiki\"\n }\n });\n\n const text = await response.text();\n\n if (response.status !== 200) {\n throw new Error(text);\n } else {\n const storedRecord = JSON.parse(text, jsonReviver);\n console.log(storedRecord, prunedRecord);\n if (id?.toString()) {\n if (storedRecord.id?.toString() !== id.toString()) location.reload();\n const index = this.data[tabId].findIndex((item) => item.id?.toString() === id.toString());\n if (index >= 0) {\n this.data[tabId][index] = storedRecord as any;\n } else {\n this.data[tabId].push(storedRecord as any);\n }\n } else {\n this.data[tabId].push(storedRecord as any);\n }\n }\n\n this.data = { ...this.data, [tabId]: [...this.data[tabId]] };\n return this.deriveItems(this.data)[tabId].map((item) => ({ ...item })) as AdminRecordStore[T];\n }\n\n private pruneStoredRecord(tabId: TabId, record: AdminRecord): AdminRecord {\n const tab = getTab(tabId);\n const storedFields = tab.fields.filter((field) => isServerField(field.mode));\n const pruned: any = { id: record.id };\n for (const field of storedFields) {\n const value = getAdminRecordValue(field, record);\n setAdminRecordValue(field, pruned, value, true);\n }\n return pruned;\n }\n}\n\n\n\nexport function createDraft(tab: TabDefinition, source?: AdminRecord): AdminRecord {\n const draft: any = { id: source?.id ?? \"\" };\n for (const field of tab.fields) {\n const value = source\n ? getAdminRecordValue(field, source)\n : fieldTypeCreateFactories[field.type]();\n setAdminRecordValue(field, draft, value, true);\n }\n\n if (!source && tab.id === \"templates\") {\n const draft2: TemplateAdminRecord = draft as any;\n draft2.requiredPluginsEnabled = true;\n draft2.customHtmlEnabled = false;\n draft2.injectionFunction = \"$tw.preloadTiddlers\";\n }\n\n // console.log(buildTabZodObject(tab.id).safeParse(draft), KeyString.name, IdString.name);\n\n return draft;\n}\n\nexport function findTemplateRecordForWikiRecord(draft: DataStore[\"wikis\"][number], itemsByTab: DataStore) {\n return itemsByTab.templates.find((template) => draft.templateName === template.name);\n}\n\n\nfunction summarizePermissionRoles(value: readonly PermissionRow<string>[]): string {\n return value.map((row) => row.role).filter(Boolean).join(\", \");\n}\n\n\nfunction deriveBagRecords(items: DataStore, templates: TemplateAdminRecord[], wikis: WikiAdminRecord[]): BagAdminRecord[] {\n const templateReadonlyUsage = new Map<string, Set<string>>();\n const wikiReadonlyUsage = new Map<string, Set<string>>();\n const wikiWritableUsage = new Map<string, Set<string>>();\n const wikiDefaultUsage = new Map<string, Set<string>>();\n\n const addUsage = (map: Map<string, Set<string>>, bagName: string, recordName: string) => {\n if (!bagName || !recordName) return;\n mapGetInit(map, bagName, () => new Set).add(recordName);\n };\n\n for (const template of templates) {\n const templateName = template.name ?? \"\";\n template.readonlyBags.forEach((bagName) => addUsage(templateReadonlyUsage, bagName, templateName));\n }\n\n for (const wiki of wikis) {\n const wikiName = wiki.slug || wiki.displayName || \"\";\n const templateRecord = findTemplateRecordForWikiRecord(wiki, { ...items, templates, wikis });\n const effectiveReadonlyBags = uniqueLines([\n ...wiki.readonlyBags ?? [],\n ...templateRecord?.readonlyBags ?? [],\n ].map(e => e));\n effectiveReadonlyBags.forEach((bagName) => addUsage(wikiReadonlyUsage, bagName, wikiName));\n\n const prefixRows = wiki.writablePrefixBags;\n prefixRows.forEach((row) => addUsage(wikiWritableUsage, row.bagName, wikiName));\n const defaultBag = prefixRows.find((row) => row.prefix === \"\")?.bagName ?? \"\";\n addUsage(wikiDefaultUsage, defaultBag, wikiName);\n }\n\n return items.bags.map((bag) => {\n const name = bag.name ?? \"\";\n const referencedByTemplates = Array.from(templateReadonlyUsage.get(name) ?? []);\n const referencedByWikis = Array.from(wikiReadonlyUsage.get(name) ?? new Set<string>());\n const writableByWikis = Array.from(wikiWritableUsage.get(name) ?? new Set<string>());\n const defaultByWikis = Array.from(wikiDefaultUsage.get(name) ?? new Set<string>());\n const routingRoles = uniqueLines([\n referencedByWikis.length ? \"readonly layer\" : \"\",\n writableByWikis.length ? \"writable prefix target\" : \"\",\n defaultByWikis.length ? \"default writable target\" : \"\",\n ]);\n const allUsingWikis = new Set<string>([\n ...referencedByWikis,\n ...writableByWikis,\n ...defaultByWikis,\n ]);\n\n return {\n ...bag,\n usedByCount: String(allUsingWikis.size),\n readonlyUsageCount: String(referencedByWikis.length),\n writableUsageCount: String(writableByWikis.length),\n defaultUsageCount: String(defaultByWikis.length),\n permissionSummary: summarizePermissionRoles(bag.bagPermissions),\n referencedByTemplates,\n referencedByWikis: Array.from(allUsingWikis),\n routingRoles,\n };\n });\n}\n\n// function derivePluginRecords(items: DataStore, templates: TemplateAdminRecord[], wikis: WikiAdminRecord[]): PluginAdminRecord[] {\n// const pluginUsage = new Map<string, Set<string>>();\n\n// for (const wiki of wikis) {\n// const wikiName = wiki.slug || wiki.displayName || \"\";\n// wiki.effectivePluginSet.forEach((pluginValue) => {\n// const pluginName = pluginValue.split(\"@\")[0]?.trim() ?? pluginValue.trim();\n// if (!pluginName || !wikiName) return;\n// mapGetInit(pluginUsage, pluginName, () => new Set()).add(wikiName);\n// });\n// }\n\n// return items.availablePlugins.map((plugin) => {\n// const usedByWikis = Array.from(pluginUsage.get(plugin.name ?? \"\") ?? []).map(e => e);\n// return {\n// ...plugin,\n// usedByWikis,\n// usageCount: String(usedByWikis.length),\n// };\n// });\n// }\n\nfunction buildEffectiveBagStack({\n writablePrefixBags: prefixRows,\n templateReadonlyBags,\n wikiReadonlyBags,\n}: {\n writablePrefixBags: readonly WritablePrefixRow[];\n templateReadonlyBags: readonly string[];\n wikiReadonlyBags: readonly string[];\n}): string[] {\n const defaultTargets = prefixRows.filter((row) => row.prefix === \"\").map((row) => row.bagName);\n const prefixedTargets = prefixRows.filter((row) => row.prefix !== \"\").map((row) => row.bagName);\n return uniqueLines([\n ...defaultTargets.map(e => e),\n ...prefixedTargets.map(e => e),\n ...wikiReadonlyBags.map(e => e),\n ...templateReadonlyBags.map(e => e),\n ]) as string[];\n}\n\nfunction buildEffectivePluginSet({\n previousEffectivePlugins,\n templatePlugins,\n wikiPlugins,\n corePluginsEnabled,\n}: {\n previousEffectivePlugins: readonly string[];\n templatePlugins: readonly string[];\n wikiPlugins: readonly string[];\n corePluginsEnabled: boolean;\n}): string[] {\n const authoredPlugins = uniqueLines([...templatePlugins, ...wikiPlugins]);\n const runtimeManagedPlugins = previousEffectivePlugins.filter((plugin) => !authoredPlugins.includes(plugin));\n const corePlugins = corePluginsEnabled\n ? runtimeManagedPlugins.filter((plugin) => /core/i.test(plugin))\n : [];\n const requiredPlugins = runtimeManagedPlugins.filter((plugin) => !corePlugins.includes(plugin));\n\n return uniqueLines([\n ...wikiPlugins,\n ...templatePlugins,\n ...requiredPlugins,\n ...corePlugins,\n ]);\n}\n\n\nfunction syncWikiRecord(draft: DataStore[\"wikis\"][number], data: DataStore & ExtraClientStuff ) {\n const templateRecord = findTemplateRecordForWikiRecord(draft, data);\n const templateReadonlyBags = templateRecord ? templateRecord.readonlyBags : [];\n const templatePlugins = templateRecord ? templateRecord.plugins : [];\n const wikiReadonlyBags = draft.readonlyBags;\n const wikiPlugins = draft.plugins;\n\n const mergedReadonlyBags = uniqueLines([...wikiReadonlyBags, ...templateReadonlyBags].map(e => e));\n const mergedPlugins = buildEffectivePluginSet({\n previousEffectivePlugins: draft.effectivePluginSet,\n templatePlugins,\n wikiPlugins,\n corePluginsEnabled: !!templateRecord?.requiredPluginsEnabled,\n });\n const writablePrefixBags = draft.writablePrefixBags\n\n const defaultWritableBag = writablePrefixBags.find((row) => row.prefix === \"\")?.bagName ?? \"\";\n const prefixRuleCount = String(writablePrefixBags.length);\n const readableBagOrder = buildEffectiveBagStack({\n writablePrefixBags,\n templateReadonlyBags,\n wikiReadonlyBags,\n });\n const missingBags = readableBagOrder.filter((bagName) => !data.availableBagNames.has(bagName));\n const missingPlugins = mergedPlugins.filter((pluginName) => !data.availablePluginNames.has(pluginName));\n const hasMissingDependencies = missingBags.length > 0 || missingPlugins.length > 0;\n const missingMessages = [\n missingBags.length ? `Missing bags: ${missingBags.join(\", \")}` : \"\",\n missingPlugins.length ? `Missing plugins: ${missingPlugins.join(\", \")}` : \"\",\n ].filter(Boolean);\n const compileValidation = hasMissingDependencies\n ? `Alert. ${missingMessages.join(\". \")}.`\n : \"Valid. All referenced bags and plugins are present.\";\n const statusFlags = hasMissingDependencies ? \"alert, missing dependencies\" : \"compiled, dependencies resolved\";\n\n return {\n ...draft,\n templateName: templateRecord?.name ?? draft.templateName ?? \"\",\n defaultWritableBag,\n readonlyBagCount: String(mergedReadonlyBags.length),\n prefixRuleCount,\n pluginCount: String(mergedPlugins.length),\n compileValidation,\n statusFlags,\n missingBags: lineListCodec.stringify(missingBags),\n missingPlugins: lineListCodec.stringify(missingPlugins),\n titleResolutionPreview: \"\",\n } satisfies WikiAdminRecord;\n}\n\n\nfunction deriveItems(items: DataStore & ExtraServerStuff): AdminRecordStore {\n definitely<ExtraClientStuff>(items);\n items.availableBagNames = new Set(items.bags.map((bag) => bag.name).filter(Boolean));\n items.availablePluginNames = new Set(items.availablePlugins.map((plugin) => plugin.name).filter(Boolean));\n const wikis = items.wikis.map((wiki) => syncWikiRecord(wiki, items));\n const dependentWikiMap = new Map<string, string[]>();\n for (const wiki of wikis) {\n mapGetInit(dependentWikiMap, wiki.templateName, () => []).push(wiki.slug);\n }\n\n const templates = items.templates.map((template) => {\n const dependentWikis = dependentWikiMap.get(template.name) ?? [];\n const readonlyBags = template.readonlyBags\n const prefixRows = template.writablePrefixBags\n return {\n ...template,\n readonlyBagsSummary: readonlyBags.join(\", \"),\n dependentWikis,\n dependentWikiCount: String(dependentWikis.length),\n defaultWritableBag: prefixRows.find((row) => row.prefix === \"\")?.bagName ?? \"\",\n validationReport: \"placeholder\",\n validationStatus: \"placeholder\",\n lastUpdatedAt: new Date().toISOString(),\n } satisfies TemplateAdminRecord;\n // lastUpdatedAt, validationStatus, validationReport\n });\n\n const users = items.users.map(e => ({\n ...e,\n confirmPassword: \"\",\n }))\n\n return {\n ...items,\n templates,\n wikis,\n users,\n bags: deriveBagRecords(items, templates, wikis),\n // plugins: derivePluginRecords(items, templates, wikis),\n } as unknown as AdminRecordStore;\n}\n\nexport function getEmptyItems(): AdminRecordStore {\n return {\n availableBagNames: new Set(),\n availablePluginNames: new Set(),\n availablePlugins: [],\n wikis: [],\n templates: [],\n bags: [],\n roles: [],\n users: [],\n };\n}\n\n\nexport const adminStorage: AdminStorage = new InMemoryAdminStorage(deriveItems);\n\n", "\nimport { SessionManagerMap, AuthUser } from \"@tiddlywiki/mws/src/new-managers/sessions\";\nimport { Z2, zod, zod as z } from \"@tiddlywiki/server/src/Z2\";\nconst LOGIN_FAILED = 'Login failed. Please check your credentials.';\n\nconst sessionRequest: SessionManagerMap = {\n login1: sessionManager(\"login1\", \"/login/1\"),\n login2: sessionManager(\"login2\", \"/login/2\"),\n logout: sessionManager(\"logout\", \"/logout\"),\n forgotPassword: sessionManager(\"forgotPassword\", \"/login/forgot-password\"),\n resetPassword: sessionManager(\"resetPassword\", \"/login/reset-password\"),\n user_update_password: sessionManager(\"user_update_password\", \"/login/user_update_password\"),\n}\n\nfunction sessionManager<K extends keyof SessionManagerMap>(key: K, path: SessionManagerMap[K][\"path\"]) {\n const t = async (data: any) => {\n const req = await fetch(pathPrefix + path, {\n method: \"POST\",\n headers: {\n 'Content-Type': 'application/json',\n \"X-Requested-With\": \"TiddlyWiki\",\n },\n body: JSON.stringify(data),\n });\n if (!req.ok) throw new Error(await req.text());\n return req.status === 204 ? undefined : await req.json();\n };\n t.path = path;\n t.key = key;\n return t;\n}\n\nfunction arrayBufferToBase64_viaBlob(buffer: ArrayBuffer) {\n return new Promise<string>((resolve, reject) => {\n const blob = new Blob([buffer], { type: \"application/octet-stream\" });\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onload = () => {\n if (typeof reader.result !== \"string\") return reject('Failed to read blob');\n // reader.result is \"data:application/octet-stream;base64,AAAA\u2026\"\n const parts = reader.result.split(\",\");\n if (typeof parts[1] !== \"string\") return reject('Failed to read blob output');\n resolve(parts[1]);\n };\n reader.readAsDataURL(blob);\n });\n}\n\nasync function generateSessionSignature(sessionKey: string, session_id: string) {\n const encoder = new TextEncoder();\n const data = encoder.encode(sessionKey + session_id);\n const hash = await window.crypto.subtle.digest(\"SHA-256\", data);\n const signature = await arrayBufferToBase64_viaBlob(hash);\n return signature;\n}\n\nexport async function createNewPassword({ user_id, password }: { user_id: string, password: string }) {\n\n const opaque = await import(\"@serenity-kit/opaque\");\n\n await opaque.ready;\n\n const { clientRegistrationState, registrationRequest } = opaque.client.startRegistration({\n password\n });\n\n const registrationResponse = await sessionRequest.user_update_password({\n user_id, registrationRequest\n });\n\n if (!registrationResponse) throw 'Failed to update password'; // wierd, but shouldn't happen\n\n const { registrationRecord } = opaque.client.finishRegistration({\n clientRegistrationState, registrationResponse, password\n });\n\n await sessionRequest.user_update_password({\n user_id, registrationRecord\n });\n\n}\n\nexport async function changeExistingPasswordAdmin({ user_id, newPassword }: { user_id: string, newPassword: string }) {\n const opaque = await import(\"@serenity-kit/opaque\");\n\n await opaque.ready;\n\n const { clientRegistrationState, registrationRequest } = opaque.client.startRegistration({ password: newPassword });\n\n const registrationResponse = await sessionRequest.user_update_password({\n user_id, registrationRequest\n });\n\n if (!registrationResponse) throw 'Failed to update password'; // wierd, but shouldn't happen\n\n const { registrationRecord } = opaque.client.finishRegistration({\n clientRegistrationState, registrationResponse, password: newPassword,\n });\n\n await sessionRequest.user_update_password({ user_id, registrationRecord });\n\n}\n\n\nexport async function changeExistingPasswordWithPassword({ username, password, newPassword }: {\n username: string;\n password: string;\n newPassword: string;\n}) {\n\n const { user_id, session_id, sessionKey, opaque } = await loginWithOpaque(username, password);\n\n const { clientRegistrationState, registrationRequest } = opaque.client.startRegistration({ password: newPassword });\n\n const signature = await generateSessionSignature(sessionKey, session_id);\n\n const registrationResponse = await sessionRequest.user_update_password({\n user_id, registrationRequest, session_id, signature\n });\n\n if (!registrationResponse) throw 'Failed to update password'; // wierd, but shouldn't happen\n\n const { registrationRecord } = opaque.client.finishRegistration({\n clientRegistrationState, registrationResponse, password: newPassword,\n });\n\n await sessionRequest.user_update_password({ user_id, registrationRecord, session_id, signature });\n\n // this closes the login session we opened for the password change\n await sessionRequest.logout({ session_id, signature, skipCookie: true });\n\n}\n\n\nexport async function changeExistingPasswordWithCode({ user_id, username, resetCode, newPassword }: {\n user_id: string;\n username: string;\n resetCode: string;\n newPassword: string;\n}) {\n\n const opaque = await import(\"@serenity-kit/opaque\");\n\n await opaque.ready;\n\n const { clientRegistrationState, registrationRequest } = opaque.client.startRegistration({ password: newPassword });\n\n const registrationResponse = await sessionRequest.resetPassword({\n user_id,\n username,\n resetCode,\n registrationRequest\n });\n\n if (!registrationResponse) throw 'Failed to update password'; // wierd, but shouldn't happen\n\n const { registrationRecord } = opaque.client.finishRegistration({\n password: newPassword,\n clientRegistrationState,\n registrationResponse,\n });\n\n await sessionRequest.resetPassword({\n user_id,\n username,\n resetCode,\n registrationRecord\n });\n\n\n}\n\n\n\n\nexport async function loginWithOpaque(username: string, password: string, setCookie?: boolean) {\n\n const opaque = await import(\"@serenity-kit/opaque\");\n\n await opaque.ready;\n\n const { clientLoginState, startLoginRequest } = opaque.client.startLogin({ password });\n\n const { loginResponse, loginSession } = await sessionRequest.login1({ username, startLoginRequest });\n\n const loginResult = opaque.client.finishLogin({ clientLoginState, loginResponse, password, });\n\n if (!loginResult) throw new Error(LOGIN_FAILED);\n\n const { finishLoginRequest, sessionKey, exportKey, serverStaticPublicKey } = loginResult;\n\n const { user_id, session_id } = await sessionRequest.login2({ finishLoginRequest, loginSession, skipCookie: !setCookie });\n\n return { user_id, session_id, username, sessionKey, exportKey, serverStaticPublicKey, opaque };\n\n}\n\nexport async function logout() {\n await sessionRequest.logout(undefined);\n location.reload();\n}\n\nexport async function serverAcceptResetCode({ emailOrUsername, resetCode }: {\n emailOrUsername: string;\n resetCode?: string;\n csrfToken: string;\n}): Promise<{\n // required to create the new password\n user_id: string;\n // useful for user confirmation\n username: string;\n}> {\n return await sessionRequest.forgotPassword({ emailOrUsername, resetCode });\n}\n", "import { customElement, JSXElement, addstyles, state } from \"@tiddlywiki/jsx-lit\";\nimport css from \"./app.inline.css\";\nimport warningIcon from \"@material-symbols/svg-400/outlined/warning.svg\";\nimport closeIcon from \"@material-symbols/svg-400/outlined/close.svg\";\nimport accountCircleIcon from \"@material-symbols/svg-400/outlined/account_circle.svg\";\nimport { MaterialSymbol } from \"./material-symbol\";\nimport {\n getAllTabs,\n getTab,\n TabId,\n ColumnDefinition,\n FieldDefinition,\n FieldGroupDefinition,\n FieldSection,\n FieldType,\n Mode,\n TabDefinition,\n PermissionRow,\n AdminRecordStore,\n WikiAdminRecord,\n WritablePrefixRow,\n getSectionHeading,\n TemplateTypes,\n IdString,\n\n KeyFields\n} from \"./definition/tabs\";\n\nimport { adminStorage, createDraft, getEmptyItems, jsonReviver } from \"./definition/store\";\nimport { definitely, is } from \"./definition/utils\";\nimport { logout } from \"./passwords\";\nimport { fieldTypeRenderSidebars, formatFieldValue, renderFieldEditor, renderFieldSidebar, renderSwitchField, textWithSlashes } from \"./definition/renders\";\n\n\nexport type AdminRecord = { id: IdString; };\n\ntype ModalMode = \"create\" | \"edit\";\n\ntype ModalState = {\n [K in TabId]: {\n tabId: K;\n mode: ModalMode;\n draft: AdminRecordStore[K][number];\n /** The unedited original the draft was from. */\n saved: AdminRecordStore[K][number];\n resolverTitle: string;\n operationMessages: Record<string, string>;\n pendingRows: Record<string, number>;\n transientPermissionRows: Record<string, PermissionRow[]>;\n storageError: string;\n loading?: boolean;\n };\n}[TabId];\n\ntype ModalStateForTab<T extends TabId> = Extract<ModalState, { tabId: T }>;\n\nexport interface PerTabFieldState {\n readonly tabId: TabId;\n readonly mode: ModalMode;\n readonly draft: AdminRecord;\n readonly saved: AdminRecord;\n readonly resolverTitle: string;\n readonly operationMessages: Record<string, string>;\n readonly pendingRows: Record<string, number>;\n readonly transientPermissionRows: Record<string, PermissionRow[]>;\n readonly storageError: string;\n readonly loading?: boolean;\n}\n\ninterface PerTabStore {\n readonly fieldState: PerTabFieldState | null;\n readonly selectedTab: TabDefinition | null;\n readonly itemsByTab: AdminRecordStore;\n readonly displayedStorageError: string;\n readonly isModalLoading: boolean;\n readonly isSaving: boolean;\n readonly isOpeningItem: boolean;\n readonly isOpen: boolean;\n readonly isBusy: boolean;\n readonly clearStorageError: () => void;\n readonly closeModal: () => void;\n readonly openCreate: (tabId: TabId) => void;\n readonly openItem: (tabId: TabId, recordId: IdString) => Promise<void>;\n readonly saveDraft: () => Promise<void>;\n readonly updateDraft: DraftChangeHandler;\n readonly updatePendingRows: PendingRowsChangeHandler;\n readonly updateTransientPermissionRows: PermissionRowsChangeHandler;\n readonly updateResolverTitle: ResolverTitleChangeHandler;\n readonly triggerOperation: OperationTriggerHandler;\n}\n\ninterface AppStoreState {\n activeTab: TabId;\n itemsByTab: AdminRecordStore;\n isLoadingData: boolean;\n}\n\ninterface PerTabStoreState {\n modalState: ModalState | null;\n isOpeningItem: boolean;\n isSaving: boolean;\n}\n\ninterface PerTabStoreDependencies {\n getItemsByTab(): AdminRecordStore;\n replaceItemsByTab(itemsByTab: AdminRecordStore): void;\n setActiveTab(tabId: TabId): void;\n requestUpdate(): void;\n}\n\ninterface UpdateHost {\n requestUpdate(): void;\n}\n\nexport interface AdminStorage {\n loadAll(): Promise<AdminRecordStore>;\n read<T extends TabId>(tabId: T, id: IdString): Promise<AdminRecordStore[T][number] | null>;\n save<T extends TabId>(tabId: T, record: AdminRecordStore[T][number]): Promise<AdminRecordStore[T]>;\n}\n\nexport type DraftChangeHandler<T = unknown> = (fieldKey: string, value: T) => void;\nexport type PendingRowsChangeHandler = (fieldKey: string, updater: (count: number) => number) => void;\nexport type PermissionRowsChangeHandler = (fieldKey: string, rows: PermissionRow[]) => void;\nexport type ResolverTitleChangeHandler = (value: string) => void;\nexport type OperationTriggerHandler = (fieldKey: string, message: string) => void;\n\ninterface FieldBlockProps {\n field: FieldDefinition;\n value: unknown;\n saved?: unknown;\n disabled?: boolean;\n useCardTitle?: boolean;\n store: PerTabStore;\n}\n\n\n\ninterface MissingDependencyLine {\n value: string;\n missing: boolean;\n}\n\ninterface SidebarSectionProps {\n title: string;\n content: JSX.Node;\n}\n\ninterface ToggleFieldProps {\n field: FieldDefinition;\n value: boolean;\n onDraftChange: DraftChangeHandler<boolean>;\n headerOnly?: boolean;\n}\n\ninterface RecordModalProps {\n store: PerTabStore;\n}\n\n\n\nexport function isServerField(mode: Mode) {\n return [\"create\", \"create edit\", \"edit\", \"server\"].includes(mode);\n}\nfunction isAuthoredField(mode: Mode) {\n return [\"create\", \"create edit\", \"edit\"].includes(mode);\n}\n\nfunction isEditable(field: FieldDefinition, mode: ModalMode): boolean {\n if (!field.mode) return false;\n if (field.mode === \"create edit\") return true;\n if (field.mode === \"create\") return mode === \"create\";\n if (field.mode === \"edit\") return mode === \"edit\";\n if (field.mode === \"create edit temp\") return true;\n if (field.mode === \"create temp\") return mode === \"create\";\n if (field.mode === \"edit temp\") return mode === \"edit\";\n if (field.mode === \"server\") return false;\n const t: never = field.mode;\n return false;\n}\n\nfunction getPrimaryValue(tab: TabDefinition, item: AdminRecord): string {\n const primary = tab.columns[0] ?? tab.fields[0];\n return formatFieldValue(getAdminRecordValue(primary, item));\n}\n\nfunction getCreateLabel(tab: TabDefinition): string {\n return tab.createLabel;\n}\n\n\n\nfunction getFieldSection(field: FieldDefinition): FieldSection {\n return field.section ?? (isAuthoredField(field.mode) ? \"authored\" : \"runtime\");\n}\n\nfunction getSectionFields(tab: TabDefinition, section: FieldSection): FieldDefinition[] {\n // if (tab.id === \"wikis\" && section === \"runtime\") return [];\n // if (tab.id === \"templates\" && section === \"runtime\") return [];\n if (!tab.fieldGroups?.[section]?.length) return [];\n return tab.fields.filter((field) => {\n return getFieldSection(field) === section;\n });\n}\n\nfunction getSidebarFields(tab: TabDefinition) {\n const keys = new Set(tab.sidebarDisplay);\n return tab.fields.filter(e => keys.has(e.key));\n}\n\nfunction getFieldGroups(tab: TabDefinition, section: FieldSection, fields: FieldDefinition[]): FieldGroupDefinition[] {\n const fallback = fields.map((field) => ({ keys: [field.key], width: \"half\" as const }));\n\n const configuredGroups = tab.fieldGroups?.[section];\n if (!configuredGroups) return fallback;\n\n return configuredGroups.filter((group) => group.keys.some((key) => fields.some((field) => field.key === key)));\n}\n\n\nexport function uniqueLines(values: readonly string[]): string[] {\n return Array.from(new Set(values.map((value) => value.trim()).filter(Boolean)));\n}\n\nfunction getErrorMessage(error: unknown, fallback: string): string {\n return error instanceof Error ? error.message : fallback;\n}\n\nfunction formatStorageErrorForDisplay(storageError: string): string {\n if (!storageError) return storageError;\n\n try {\n const parsed = JSON.parse(storageError) as {\n reason?: unknown;\n status?: unknown;\n details?: { prettyErrors?: unknown };\n };\n const hasReason = typeof parsed.reason === \"string\";\n const hasStatus = typeof parsed.status === \"number\" || typeof parsed.status === \"string\";\n const prettyText = typeof parsed.details?.prettyErrors === \"string\"\n ? parsed.details.prettyErrors\n : \"\";\n\n if (hasReason && hasStatus && prettyText.trim()) return prettyText;\n } catch {\n // Keep the original storage error text when it's not valid JSON.\n }\n\n return storageError;\n}\n\n// #region - AppStore\n\nclass PerTabStoreImpl implements PerTabStore {\n private readonly state: PerTabStoreState = {\n modalState: null,\n isOpeningItem: false,\n isSaving: false,\n };\n\n constructor(\n private readonly storage: AdminStorage,\n private readonly deps: PerTabStoreDependencies,\n ) { }\n\n public get fieldState(): PerTabFieldState | null {\n return this.state.modalState as PerTabFieldState | null;\n }\n\n public get selectedTab(): TabDefinition | null {\n return this.fieldState ? getTab(this.fieldState.tabId) : null;\n }\n\n public get itemsByTab(): AdminRecordStore {\n return this.deps.getItemsByTab();\n }\n\n public get displayedStorageError(): string {\n return formatStorageErrorForDisplay(this.fieldState?.storageError ?? \"\");\n }\n\n public get isModalLoading(): boolean {\n return Boolean(this.fieldState?.loading);\n }\n\n public get isSaving(): boolean {\n return this.state.isSaving;\n }\n\n public get isOpeningItem(): boolean {\n return this.state.isOpeningItem;\n }\n\n public get isOpen(): boolean {\n return Boolean(this.fieldState);\n }\n\n public get isBusy(): boolean {\n return this.isOpeningItem || this.isSaving;\n }\n\n public readonly clearStorageError = () => {\n const modalState = this.state.modalState;\n if (!modalState?.storageError) return;\n this.patchState({\n modalState: {\n ...modalState,\n storageError: \"\",\n },\n });\n };\n\n public readonly closeModal = () => {\n if (!this.state.modalState) return;\n this.patchState({ modalState: null });\n };\n\n public readonly openCreate = (tabId: TabId) => {\n const draft = this.createDraftFor(tabId);\n this.deps.setActiveTab(tabId);\n this.patchState({\n modalState: this.createModalState(tabId, \"create\", draft, draft, false, \"\"),\n });\n };\n\n public readonly openItem = async (tabId: TabId, recordId: IdString) => {\n const emptyDraft = this.createDraftFor(tabId);\n this.deps.setActiveTab(tabId);\n this.patchState({\n modalState: this.createModalState(tabId, \"edit\", emptyDraft, emptyDraft, true, \"\"),\n isOpeningItem: true,\n });\n\n let item: AdminRecordStore[typeof tabId][number] | null = null;\n let storageError = \"\";\n try {\n item = await this.storage.read(tabId, recordId);\n } catch (error) {\n console.error(error);\n storageError = getErrorMessage(error, \"Failed to load record details.\");\n } finally {\n this.patchState({ isOpeningItem: false });\n }\n\n if (!item) {\n this.patchState({\n modalState: this.createModalState(\n tabId,\n \"edit\",\n emptyDraft,\n emptyDraft,\n false,\n storageError || \"Record not found.\",\n ),\n });\n return;\n }\n\n const draft = this.createDraftFor(tabId, item);\n this.patchState({\n modalState: this.createModalState(tabId, \"edit\", draft, draft, false, \"\"),\n });\n };\n\n public readonly updateDraft: DraftChangeHandler = (fieldKey, value) => {\n const modalState = this.state.modalState;\n if (!modalState) return;\n\n if (fieldKey === KeyFields[modalState.tabId] && typeof value === \"string\") {\n value = value;\n }\n\n const nextDraft = { ...modalState.draft } as typeof modalState.draft;\n (nextDraft as unknown as Record<string, unknown>)[fieldKey] = value;\n\n this.patchState({\n modalState: {\n ...modalState,\n draft: nextDraft,\n } as ModalState,\n });\n };\n\n public readonly updatePendingRows: PendingRowsChangeHandler = (fieldKey, updater) => {\n const modalState = this.state.modalState;\n if (!modalState) return;\n\n const nextCount = Math.max(0, updater(modalState.pendingRows[fieldKey] ?? 0));\n this.patchState({\n modalState: {\n ...modalState,\n pendingRows: {\n ...modalState.pendingRows,\n [fieldKey]: nextCount,\n },\n },\n });\n };\n\n public readonly updateTransientPermissionRows: PermissionRowsChangeHandler = (fieldKey, rows) => {\n const modalState = this.state.modalState;\n if (!modalState) return;\n\n this.patchState({\n modalState: {\n ...modalState,\n transientPermissionRows: {\n ...modalState.transientPermissionRows,\n [fieldKey]: rows,\n },\n },\n });\n };\n\n public readonly updateResolverTitle: ResolverTitleChangeHandler = (value) => {\n const modalState = this.state.modalState;\n if (!modalState) return;\n this.patchState({\n modalState: { ...modalState, resolverTitle: value },\n });\n };\n\n public readonly triggerOperation: OperationTriggerHandler = (fieldKey, message) => {\n const modalState = this.state.modalState;\n if (!modalState) return;\n this.patchState({\n modalState: {\n ...modalState,\n operationMessages: {\n ...modalState.operationMessages,\n [fieldKey]: message,\n },\n },\n });\n };\n\n public readonly saveDraft = async () => {\n const snapshot = this.state.modalState;\n if (!snapshot) return;\n\n this.patchState({\n modalState: {\n ...snapshot,\n storageError: \"\",\n },\n isSaving: true,\n });\n\n let savedTabItems: AdminRecordStore[typeof snapshot.tabId] | null = null;\n let storageError = \"\";\n try {\n savedTabItems = await this.storage.save(\n snapshot.tabId,\n snapshot.draft,\n );\n } catch (error) {\n console.error(error);\n storageError = getErrorMessage(error, \"Failed to save record.\");\n } finally {\n this.patchState({ isSaving: false });\n }\n\n if (!savedTabItems) {\n const currentModalState = this.state.modalState;\n if (!currentModalState) return;\n this.patchState({\n modalState: {\n ...currentModalState,\n storageError,\n },\n });\n return;\n }\n\n this.deps.replaceItemsByTab({\n ...this.itemsByTab,\n [snapshot.tabId]: savedTabItems,\n } as AdminRecordStore);\n this.patchState({ modalState: null });\n };\n\n private createDraftFor<T extends TabId>(tabId: T, source?: AdminRecordStore[T][number]): AdminRecordStore[T][number] {\n return createDraft(getTab(tabId), source) as AdminRecordStore[T][number];\n }\n\n private createModalState<T extends TabId>(\n tabId: T,\n mode: ModalMode,\n draft: AdminRecordStore[T][number],\n saved: AdminRecordStore[T][number],\n loading: boolean,\n storageError: string,\n ): ModalStateForTab<T> {\n return {\n tabId,\n mode,\n draft,\n saved,\n resolverTitle: \"Docs/Welcome\",\n operationMessages: {},\n pendingRows: {},\n transientPermissionRows: {},\n storageError,\n loading,\n } as ModalStateForTab<T>;\n }\n\n private patchState(patch: Partial<PerTabStoreState>): void {\n Object.assign(this.state, patch);\n this.deps.requestUpdate();\n }\n}\n\nclass AppStore {\n public readonly state: AppStoreState = {\n activeTab: \"wikis\",\n itemsByTab: getEmptyItems(),\n isLoadingData: true,\n };\n\n public readonly perTabStore: PerTabStore;\n\n private hasLoaded = false;\n private loadPromise: Promise<void> | null = null;\n\n constructor(\n private readonly host: UpdateHost,\n private readonly storage: AdminStorage,\n ) {\n this.perTabStore = new PerTabStoreImpl(storage, {\n getItemsByTab: () => this.state.itemsByTab,\n replaceItemsByTab: (itemsByTab) => this.patchState({ itemsByTab }),\n setActiveTab: (tabId) => this.setActiveTab(tabId),\n requestUpdate: () => this.host.requestUpdate(),\n });\n }\n\n public get currentTab(): TabDefinition {\n return getTab(this.state.activeTab);\n }\n\n public get activeTabItems(): AdminRecordStore[TabId] {\n return this.state.itemsByTab[this.state.activeTab];\n }\n\n public get isListInteractionDisabled(): boolean {\n return this.perTabStore.isBusy;\n }\n\n public ensureLoaded(): Promise<void> {\n if (this.hasLoaded) return Promise.resolve();\n if (!this.loadPromise) {\n this.loadPromise = this.loadAllInternal().finally(() => {\n this.loadPromise = null;\n });\n }\n return this.loadPromise;\n }\n\n public reload(): Promise<void> {\n this.hasLoaded = false;\n return this.ensureLoaded();\n }\n\n public readonly setActiveTab = (tabId: TabId) => {\n if (tabId === this.state.activeTab) return;\n this.patchState({ activeTab: tabId });\n };\n\n public readonly openCreate = (tabId: TabId) => {\n this.perTabStore.openCreate(tabId);\n };\n\n public readonly openItem = async (tabId: TabId, recordId: IdString) => {\n await this.perTabStore.openItem(tabId, recordId);\n };\n\n private async loadAllInternal(): Promise<void> {\n this.patchState({\n isLoadingData: true,\n });\n\n try {\n const loadedItems = await this.storage.loadAll();\n this.hasLoaded = true;\n this.patchState({\n itemsByTab: loadedItems,\n isLoadingData: false,\n });\n } catch (error) {\n this.patchState({\n isLoadingData: false,\n });\n throw error;\n }\n }\n\n private patchState(patch: Partial<AppStoreState>): void {\n Object.assign(this.state, patch);\n this.host.requestUpdate();\n }\n}\n\n\n\n// #region - field block\n\n@customElement(\"mws-field-block\")\nclass FieldBlockElement<T> extends JSXElement {\n useLightDOM: boolean = true;\n\n @state() accessor props!: FieldBlockProps;\n\n protected render() {\n const { field, useCardTitle, value, saved: savedValue, store } = this.props;\n const fieldState = store.fieldState;\n if (!fieldState) return null;\n\n const modalMode = fieldState.mode;\n const editable = isEditable(field, modalMode);\n const disabled = Boolean(this.props.disabled) || !editable;\n // const useToggleEditor = editable && field.key === \"requiredPluginsEnabled\";\n const isToggle = field.type === \"switch\";\n const children = <>\n {renderFieldEditor({\n inputId: `field-${field.key}`,\n field,\n value,\n disabled,\n fieldState,\n itemsByTab: store.itemsByTab,\n onDraftChange: store.updateDraft,\n onPendingRowsChange: store.updatePendingRows,\n onTransientPermissionRowsChange: store.updateTransientPermissionRows,\n onResolverTitleChange: store.updateResolverTitle,\n onTriggerOperation: store.triggerOperation,\n })}\n </>;\n return (\n <div class=\"field-block\">\n <div class=\"field-editor\">\n {!useCardTitle ? <label class=\"field-label\" for={`field-${field.key}`}>{field.label}</label> : null}\n {field.description ? <p class=\"field-helper\">{field.description}</p> : null}\n {isToggle ? <div class=\"toggle-field-row\">{children}</div> : children}\n </div>\n </div>\n );\n }\n}\n\nexport function getAdminRecordValue(field: FieldDefinition | ColumnDefinition, draft: AdminRecord) {\n if (!(field.key in draft)) throw new Error(\"The field \" + field.key + \" is not defined in the draft record\");\n return (draft as any)[field.key];\n}\nexport function setAdminRecordValue(field: FieldDefinition | ColumnDefinition, draft: AdminRecord, value: unknown, init: boolean) {\n if (!init && !(field.key in draft)) throw new Error(\"The field \" + field.key + \" is not defined in the draft record\");\n (draft as any)[field.key] = value;\n}\n\nfunction sidebarField(field: FieldDefinition, draft: AdminRecord, saved: AdminRecord, itemsByTab?: AdminRecordStore) {\n const value = getAdminRecordValue(field, saved);\n return sidebarSection({\n title: field.label,\n content: renderFieldSidebar({\n field,\n value: getAdminRecordValue(field, saved),\n itemsByTab\n })\n })\n}\nfunction sidebarSection({ title, content }: SidebarSectionProps) {\n return (\n <div class=\"sidebar-section\">\n <h4 class=\"sidebar-section-title\">{title}</h4>\n <div class=\"sidebar-section-body\">{content}</div>\n </div>\n );\n}\n\n// #region tab modal\n\n@customElement(\"mws-record-modal\")\nclass RecordModalElement extends JSXElement {\n useLightDOM: boolean = true;\n\n @state() accessor props!: RecordModalProps;\n\n protected render() {\n const { store } = this.props;\n const { selectedTab, fieldState } = store;\n if (!selectedTab || !fieldState) return null;\n\n const itemsByTab = store.itemsByTab;\n const storageError = store.displayedStorageError;\n const isModalLoading = store.isModalLoading;\n const isSaving = store.isSaving;\n const isOpeningItem = store.isOpeningItem;\n const onClose = store.closeModal;\n const onSave = store.saveDraft;\n const onDraftChange = store.updateDraft;\n const onClearStorageError = store.clearStorageError;\n const recordTitle = fieldState.mode === \"create\"\n ? `New ${selectedTab.label.slice(0, -1)}`\n : getPrimaryValue(selectedTab, fieldState.draft) || `${selectedTab.label.slice(0, -1)} details`;\n const headerCopy = storageError\n ? \"Storage returned an error for this record. Fix the issue or close the dialog and try again.\"\n : selectedTab.description;\n\n const authoredFields = !isModalLoading ? getSectionFields(selectedTab, \"authored\") : [];\n const runtimeFields = !isModalLoading ? getSectionFields(selectedTab, \"runtime\") : [];\n const operationFields = !isModalLoading ? getSectionFields(selectedTab, \"operations\") : [];\n const sidebarFields = !isModalLoading ? getSidebarFields(selectedTab) : [];\n\n return (\n <div class=\"modal-shell\" webjsx-attr-open onclick={(event) => {\n if (event.target === event.currentTarget) onClose();\n }}>\n <section class=\"modal-card\" role=\"dialog\" aria-modal=\"true\" aria-label={`${selectedTab.label} details`}>\n <header class=\"modal-header\">\n <div class=\"modal-title\">\n <p class=\"eyebrow\">{selectedTab.eyebrow}</p>\n <h3>{isModalLoading\n ? `Loading ${selectedTab.label.slice(0, -1).toLowerCase()}...`\n : textWithSlashes(recordTitle)}</h3>\n <p>{isModalLoading ? \"Fetching record details from async storage before rendering the form.\" : headerCopy}</p>\n </div>\n <div class=\"close-button\" onclick={onClose} aria-label=\"Close details\">\n <MaterialSymbol icon={closeIcon} />\n </div>\n </header>\n\n {isModalLoading ? (\n <div class=\"modal-loading-shell\">\n <div class=\"modal-loading-bar\" aria-hidden=\"true\"><span></span></div>\n <p class=\"modal-loading-copy\">Loading {selectedTab.label.toLowerCase()} details...</p>\n </div>\n ) : (\n <div class=\"modal-layout\">\n <aside class=\"field-index modal-sidebar\">\n {sidebarFields.map(field => sidebarSection({\n title: field.label,\n content: renderFieldSidebar({\n field,\n value: getAdminRecordValue(field, fieldState.saved),\n itemsByTab\n })\n }))}\n </aside>\n\n <div class=\"field-stack modal-main\">\n {([\n [\"authored\", authoredFields],\n [\"runtime\", runtimeFields],\n [\"operations\", operationFields],\n ] as [FieldSection, FieldDefinition[]][]).map(([section, fields]) => {\n if (!fields.length) return null;\n const heading = getSectionHeading(section, fieldState.mode);\n return (\n <section class=\"modal-section\">\n {heading ? (\n <header class=\"modal-section-header\">\n <div>\n <h4>{heading.title}</h4>\n </div>\n <p>{heading.copy}</p>\n </header>\n ) : null}\n\n <div class=\"section-field-grid\">\n {getFieldGroups(selectedTab, section, fields).map((group) => {\n const groupFields = group.keys\n .map((key) => fields.find((field) => field.key === key))\n .filter((field): field is FieldDefinition => Boolean(field));\n const headerField = group.headerFieldKey\n ? fields.find((field) => field.key === group.headerFieldKey)\n : undefined;\n const groupDisabled = Boolean(group.disabledWhenHeaderOff && headerField && getAdminRecordValue(headerField, fieldState.draft) !== true);\n const headerDescription = group.description ?? (!group.footerDescriptionFromHeader ? headerField?.description : undefined) ?? \"\";\n const footerDescription = group.footerDescriptionFromHeader ? headerField?.description : undefined;\n if (!groupFields.length) return null;\n\n return (\n <article class={group.width === \"full\" ? \"field-card is-full\" : \"field-card\"}>\n <header class=\"field-card-header\">\n <div class=\"field-card-header-row\">\n <h4>{group.title ?? (groupFields.length === 1 ? groupFields[0].label : groupFields.map((field) => field.label).join(\" and \"))}</h4>\n {headerField ? renderSwitchField({\n field: headerField,\n value: getAdminRecordValue(headerField, fieldState.draft) ?? \"\",\n onDraftChange,\n }, true) : null}\n </div>\n {headerDescription ? <p>{headerDescription}</p> : null}\n </header>\n\n <div class={groupFields.length > 1 ? (group.layout === \"stack\" ? \"composite-fields is-stack\" : \"composite-fields\") : \"single-field\"}>\n {groupFields.map((field) => (\n <FieldBlockElement\n field={field}\n value={getAdminRecordValue(field, fieldState.draft)}\n saved={getAdminRecordValue(field, fieldState.saved)}\n disabled={groupDisabled}\n useCardTitle={groupFields.length === 1}\n store={store}\n />\n ))}\n </div>\n {footerDescription ? <div class=\"field-card-footer-note\"><p>{footerDescription}</p></div> : null}\n </article>\n );\n })}\n </div>\n </section>\n );\n })}\n\n {true\n ? <footer class=\"modal-actions\">\n <button class=\"ghost-button\" type=\"button\" onclick={onClose} disabled={isSaving}>Cancel</button>\n <button class=\"primary-button\" type=\"button\" onclick={onSave} disabled={isSaving || isOpeningItem}>{isSaving ? \"Saving...\" : fieldState.mode === \"create\" ? `Save ${selectedTab.label.slice(0, -1)}` : \"Save changes\"}</button>\n </footer>\n : <footer class=\"modal-actions\">\n <button class=\"ghost-button\" type=\"button\" onclick={onClose} disabled={isSaving}>Close</button>\n </footer>}\n </div>\n </div>\n )}\n\n {storageError ? (\n <footer class=\"modal-header\" role=\"alert\" aria-live=\"polite\">\n <pre style=\"white-space: break-spaces;\">{storageError}</pre>\n <button class=\"error-close-button\" type=\"button\" onclick={onClearStorageError} aria-label=\"Dismiss error message\">\n <MaterialSymbol icon={closeIcon} />\n </button>\n </footer>\n ) : null}\n </section>\n </div>\n );\n }\n}\n\n// #region tab main\n\n\n@addstyles(css)\n@customElement(\"mws-app\")\nexport class App extends JSXElement {\n // don't use shadow dom. allows inheriting main.css styles.\n useLightDOM: boolean = true;\n\n @state() accessor mainStorageError = \"\";\n\n private readonly store = new AppStore(this, adminStorage);\n private readonly handlePageShow = () => {\n void this.loadAdminRecords(true);\n };\n private readonly handleAccountMenuClick = (event: MouseEvent) => {\n const accountMenu = this.querySelector(\".hero-account-menu\");\n if (!(accountMenu instanceof HTMLDetailsElement) || !accountMenu.open) return;\n\n const target = event.target;\n if (target instanceof Node && accountMenu.contains(target)) return;\n accountMenu.open = false;\n };\n\n constructor() {\n super()\n }\n\n private readonly clearMainStorageError = () => {\n if (!this.mainStorageError) return;\n this.mainStorageError = \"\";\n };\n\n private readonly loadAdminRecords = async (reload = false) => {\n this.clearMainStorageError();\n\n try {\n if (reload) {\n await this.store.reload();\n return;\n }\n\n await this.store.ensureLoaded();\n } catch (error) {\n console.error(error);\n this.mainStorageError = formatStorageErrorForDisplay(\n getErrorMessage(error, \"Failed to load admin records.\"),\n );\n }\n };\n\n private readonly openCreate = (tabId: TabId) => {\n this.store.openCreate(tabId);\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener(\"click\", this.handleAccountMenuClick, true);\n window.addEventListener(\"pageshow\", this.handlePageShow);\n void this.loadAdminRecords();\n }\n\n disconnectedCallback(): void {\n document.removeEventListener(\"click\", this.handleAccountMenuClick, true);\n window.removeEventListener(\"pageshow\", this.handlePageShow);\n super.disconnectedCallback();\n }\n\n protected render() {\n const store = this.store;\n const { activeTab, itemsByTab, isLoadingData } = store.state;\n const perTabStore = store.perTabStore;\n const currentTab = store.currentTab;\n const activeTabItems = store.activeTabItems;\n const isListInteractionDisabled = store.isListInteractionDisabled;\n const mainStorageError = this.mainStorageError;\n\n return (\n <div class=\"admin-shell\">\n <header class=\"hero-panel\">\n <div class=\"hero-panel-content\">\n <p class=\"eyebrow\">Multi-wiki server administration</p>\n <h1 style=\"display:flex; gap: 1rem; align-items:center;\">\n <span>MWS</span>\n </h1>\n <p class=\"hero-copy\">All your thoughts, in as many places as you need them.</p>\n </div>\n <div class=\"hero-account-shell\">\n <details class=\"hero-account-menu\">\n <summary class=\"hero-account-trigger\" aria-label=\"Open account menu\">\n <span class=\"hero-account-name\">{embeddedServerResponse.userState.username}</span>\n <span class=\"hero-account-icon\" aria-hidden=\"true\">\n {/* <img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Crab_Nebula.jpg/250px-Crab_Nebula.jpg\"/> */}\n {embeddedServerResponse.userState.avatarUrl\n ? <img src={embeddedServerResponse.userState.avatarUrl} />\n : <MaterialSymbol icon={accountCircleIcon} />}\n </span>\n </summary>\n <div class=\"hero-account-dropdown\" role=\"menu\" aria-label=\"Account options\">\n <button\n class=\"hero-account-action\"\n type=\"button\"\n role=\"menuitem\"\n onclick={() => {\n location.pathname = pathPrefix + \"/profile\";\n }}\n >\n Profile\n </button>\n <button\n class=\"hero-account-action\"\n type=\"button\"\n role=\"menuitem\"\n onclick={logout}\n >\n Logout\n </button>\n </div>\n </details>\n </div>\n </header>\n\n <nav class=\"tab-strip\" aria-label=\"Admin sections\">\n {getAllTabs().map((tab) => (\n <button\n class={tab.id === activeTab ? \"tab-button is-active\" : \"tab-button\"}\n onclick={() => store.setActiveTab(tab.id)}\n type=\"button\"\n >\n <span>{tab.label}</span>\n <small>{itemsByTab[tab.id].length} items</small>\n </button>\n ))}\n </nav>\n\n <section class=\"section-header\">\n <div>\n <p class=\"eyebrow\">{currentTab.eyebrow}</p>\n <h2>{currentTab.label}</h2>\n </div>\n <p class=\"section-copy\">{currentTab.description}</p>\n <button\n class=\"primary-button\"\n type=\"button\"\n onclick={() => this.openCreate(currentTab.id)}\n disabled={isLoadingData || perTabStore.isOpeningItem || perTabStore.isSaving}\n >{getCreateLabel(currentTab)}</button>\n </section>\n\n <section class=\"list-panel\">\n {/* <div class=\"list-toolbar\">\n <div>\n <strong>{currentTab.label} list</strong>\n <p>{isLoadingData\n ? \"Loading\u2026\"\n : \"Click any row to for more information.\"}</p>\n </div>\n <div class=\"toolbar-actions\">\n <button\n class=\"ghost-button\"\n type=\"button\"\n onclick={() => this.openCreate(currentTab.id)}\n disabled={isLoadingData || perTabStore.isOpeningItem || perTabStore.isSaving}\n >{getCreateLabel(currentTab)}</button>\n </div>\n </div> */}\n\n {mainStorageError ? (\n <div class=\"field-callout\" role=\"alert\" aria-live=\"polite\">\n <pre style=\"white-space: break-spaces;\">{mainStorageError}</pre>\n <button class=\"ghost-button\" type=\"button\" onclick={this.clearMainStorageError}>Dismiss</button>\n </div>\n ) : null}\n\n <div class=\"list-grid list-grid-header\">\n {currentTab.columns.map((column) => (\n <div class=\"list-cell list-head\" style={\n column.width && column.width > 1\n ? { gridColumn: \"span \" + column.width }\n : {}\n }>{column.label}</div>\n ))}\n\n </div>\n\n <div class=\"list-body\">\n {isLoadingData ? (\n <div class=\"field-callout\">\n <p>Loading {currentTab.label.toLowerCase()}\u2026</p>\n </div>\n ) : activeTabItems.length ? activeTabItems.map((item) => (\n <div\n class=\"list-grid list-row\"\n role=\"button\"\n tabindex={isListInteractionDisabled ? -1 : 0}\n aria-disabled={isListInteractionDisabled ? \"true\" : undefined}\n onclick={() => {\n if (!isListInteractionDisabled)\n void store.openItem(currentTab.id, item.id);\n }}\n onkeydown={(event) => {\n if (isListInteractionDisabled) return;\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n event.preventDefault();\n void store.openItem(currentTab.id, item.id);\n }}\n >\n {currentTab.columns.map((column) => {\n const value = getAdminRecordValue(column, item);\n const isFirstColumn = column.key === currentTab.columns[0]?.key;\n const linkUrl = isFirstColumn ? getListColumnLink(currentTab.id, column.key, item) : null;\n if (typeof linkUrl === \"string\") {\n return <a\n class=\"list-cell list-cell-link\"\n href={linkUrl}\n onclick={(event) => event.stopPropagation()}\n onkeydown={(event) => event.stopPropagation()}\n style={column.width && column.width > 1\n ? { gridColumn: \"span \" + column.width }\n : {}\n }\n >{renderListCellValue(column.key, value)}</a>;\n }\n return (\n <div class=\"list-cell\" style={\n column.width && column.width > 1\n ? { gridColumn: \"span \" + column.width }\n : {}\n }>\n {renderListCellValue(column.key, value)}\n {/* {(() => {\n\n\n return typeof linkUrl === \"string\"\n ? <a\n class=\"list-cell-link\"\n href={linkUrl} onclick={(event) => event.stopPropagation()}\n onkeydown={(event) => event.stopPropagation()}\n >{renderListCellValue(column.key, value)}</a>\n : renderListCellValue(column.key, value);\n })()} */}\n </div>\n )\n })}\n </div>\n )) : (\n <div class=\"field-callout\">\n <p>Create a {currentTab.label.toLowerCase()} to get started.</p>\n </div>\n )}\n </div>\n </section>\n\n {perTabStore.isOpen ? (\n <RecordModalElement\n store={perTabStore}\n />\n ) : null}\n </div>\n );\n }\n}\n\n// #region table stuff\n\nfunction renderListCellValue(columnKey: string, value: string | undefined) {\n const formattedValue = formatFieldValue(value);\n\n if (columnKey === \"statusFlags\" && value?.toLowerCase().includes(\"alert\")) {\n return (\n <span class=\"missing-marker\" aria-label={formattedValue} title={formattedValue}>\n <MaterialSymbol icon={warningIcon} />\n </span>\n );\n }\n\n return textWithSlashes(formattedValue);\n}\n\nfunction getListColumnLink(tabId: TabId, columnKey: string, item: AdminRecord): string | null {\n const mapper = getListColumnLinkMappers(tabId)[columnKey];\n return mapper ? mapper(item) : null;\n}\n\n\nfunction getListColumnLinkMappers(tabId: TabId): Partial<Record<string, ListColumnLinkMapper>> {\n switch (tabId) {\n case \"wikis\":\n return {\n slug: (item) => {\n definitely<WikiAdminRecord>(item);\n return item.slug ? `${pathPrefix}/wiki/${encodeURIComponent(item.slug)}` : null;\n },\n };\n case \"templates\":\n case \"bags\":\n case \"roles\":\n case \"users\":\n return {};\n default: {\n const exhaustive: never = tabId;\n return exhaustive;\n }\n }\n}\n\ntype ListColumnLinkMapper = (item: AdminRecord) => string | null;\n", "import { JSXElement } from \"@tiddlywiki/jsx-lit\"\n/**\n * Wraps a class accessor or setter so that `requestUpdate()` is called when the accessor is set.\n * \n * The property name and old value are NOT passed to `requestUpdate()`.\n */\nexport function requestUpdate<C extends { context: JSXElement }, V>(\n target: ClassAccessorDecoratorTarget<C, V>,\n context: ClassAccessorDecoratorContext<C, V>\n): ClassAccessorDecoratorResult<C, V> {\n const { kind } = context;\n\n if (kind === 'accessor') {\n // Standard decorators cannot dynamically modify the class, so we can't\n // replace a field with accessors. The user must use the new `accessor`\n // keyword instead.\n let value: V;\n return {\n set(v) {\n if (!Object.is(v, value)) {\n value = v;\n this.context.requestUpdate();\n }\n },\n init(v) {\n value = v;\n return v;\n },\n get() {\n return value;\n }\n };\n }\n throw new Error(`Unsupported decorator location: ${kind}`);\n};\n", "import { JSXElement } from \"../../jsx-lit/src/JSXElement\";\nimport { AdminRecord, PerTabFieldState, DraftChangeHandler, PendingRowsChangeHandler, PermissionRowsChangeHandler, ResolverTitleChangeHandler, OperationTriggerHandler } from \"./app\";\nimport { renderFieldEditor } from \"./definition/renders\";\nimport { getEmptyItems } from \"./definition/store\";\nimport { PermissionRow, FieldDefinition } from \"./definition/tabs\";\nimport { requestUpdate } from \"./requestUpdate\";\n\n\nexport class FomController<T extends AdminRecord> {\n\n\n constructor(public context: JSXElement & { draft: T }) { }\n\n private get draft(): T { return this.context.draft }\n\n private readonly itemsByTab = getEmptyItems();\n\n requestUpdate() { this.context.requestUpdate(); }\n\n @requestUpdate private accessor isSubmitting: boolean = false;\n @requestUpdate private accessor submitMessage: string = new URLSearchParams(globalThis.location?.search ?? \"\").get(\"state\") === \"password-changed\"\n ? \"Password updated. You can now log in.\"\n : \"\";\n @requestUpdate private accessor operationMessages: Record<string, string> = {};\n @requestUpdate private accessor pendingRows: Record<string, number> = {};\n @requestUpdate private accessor transientPermissionRows: Record<string, PermissionRow[]> = {};\n\n private get fieldState(): PerTabFieldState {\n return {\n tabId: \"users\",\n mode: \"create\",\n draft: this.draft,\n saved: this.draft,\n resolverTitle: \"\",\n operationMessages: this.operationMessages,\n pendingRows: this.pendingRows,\n transientPermissionRows: this.transientPermissionRows,\n storageError: \"\",\n };\n }\n\n // #region context\n private readonly updateDraft: DraftChangeHandler = (fieldKey, value) => {\n (this.draft as unknown as Record<string, unknown>)[fieldKey] = value;\n this.requestUpdate();\n };\n\n private readonly updatePendingRows: PendingRowsChangeHandler = (fieldKey, updater) => {\n this.pendingRows[fieldKey] = Math.max(0, updater(this.pendingRows[fieldKey] ?? 0));\n this.requestUpdate();\n };\n\n private readonly updateTransientPermissionRows: PermissionRowsChangeHandler = (fieldKey, rows) => {\n this.transientPermissionRows[fieldKey] = rows;\n this.requestUpdate();\n };\n\n private readonly updateResolverTitle: ResolverTitleChangeHandler = () => {\n this.requestUpdate();\n };\n\n private readonly triggerOperation: OperationTriggerHandler = (fieldKey, message) => {\n this.operationMessages[fieldKey] = message;\n this.requestUpdate();\n };\n\n\n // #region handleAny\n readonly handleAnySubmit = async (message: string, failed: string, cb: () => Promise<boolean>) => {\n this.isSubmitting = true;\n this.submitMessage = message;\n try {\n if (!await cb()) {\n this.submitMessage = failed;\n }\n } catch (error) {\n console.error(error);\n if (error instanceof Error) {\n try {\n const se = JSON.parse(error.message);\n if (se.reason && se.status) {\n this.submitMessage = se.reason;\n if (se.details) {\n Object.entries(se.details).forEach(([k, v]) => {\n this.submitMessage += \"\\n\" + k + \": \" + v;\n });\n }\n return;\n }\n } catch (e) {\n }\n }\n this.submitMessage = error instanceof Error ? error.message : failed;\n } finally {\n this.isSubmitting = false;\n }\n };\n\n // #region field\n renderField(field: FieldDefinition): JSX.Node {\n const value = (this.draft as any)[field.key] ?? \"\";\n const inputId = `login-${field.key}`;\n\n return (\n <div class=\"login-field\">\n <label class=\"login-field-label\" for={inputId}>{field.label}</label>\n {renderFieldEditor({\n field: field as unknown as FieldDefinition,\n value,\n disabled: this.isSubmitting,\n fieldState: this.fieldState,\n itemsByTab: this.itemsByTab,\n onDraftChange: this.updateDraft,\n onPendingRowsChange: this.updatePendingRows,\n onTransientPermissionRowsChange: this.updateTransientPermissionRows,\n onResolverTitleChange: this.updateResolverTitle,\n onTriggerOperation: this.triggerOperation,\n inputId,\n })}\n </div>\n );\n }\n // #region common\n // Keep the shared card structure in one place so each form mode only supplies its\n // mode-specific title, copy, fields, extra content, and actions.\n renderCommon({\n title,\n copy,\n submitDisabled,\n submitAction,\n submitLabel,\n isStart: isStart,\n backAction: handleBackClick,\n backLabel = \"Cancel\",\n }: {\n title: string;\n copy: string;\n submitDisabled: boolean;\n submitLabel: string;\n submitAction: () => Promise<void>;\n backAction: () => Promise<void>;\n backLabel?: string;\n isStart?: boolean;\n }, content: JSX.Node): JSX.Node {\n return (\n <div class=\"admin-shell\">\n <section class=\"modal-card\" aria-label=\"Login form\" style=\"max-width: 30rem; margin: 0 auto; width: 100%;\">\n <header class=\"login-card-header\">\n <div class=\"login-card-title\">\n <h3>{title}</h3>\n <p class=\"login-card-copy\">{copy}</p>\n {/* {this.serverState ? <p class=\"login-card-meta\">Server state ready.</p> : null} */}\n </div>\n </header>\n\n <div class=\"login-card-body\">\n {content}\n\n {this.submitMessage ? (\n <div class=\"login-feedback\" role=\"status\" aria-live=\"polite\">\n {this.submitMessage.split(\"\\n\").map(e => <p>{e}</p>)}\n </div>\n ) : null}\n\n {isStart ? (\n <button\n class=\"primary-button login-submit\"\n type=\"button\"\n disabled={submitDisabled}\n onclick={submitAction}\n >{submitLabel}</button>\n ) : (\n <footer class=\"login-actions\">\n <div class=\"login-action-row\">\n {!isStart && <button class=\"ghost-button\"\n type=\"button\"\n disabled={this.isSubmitting}\n onclick={handleBackClick}\n >{backLabel}</button>}\n <button\n class=\"primary-button login-submit\"\n type=\"button\"\n disabled={submitDisabled}\n onclick={submitAction}\n >{submitLabel}</button>\n </div>\n </footer>\n )}\n\n </div>\n </section>\n </div>\n );\n }\n\n}\n", "import { addstyles, customElement, JSXElement, state } from \"@tiddlywiki/jsx-lit\";\nimport {\n AdminRecord,\n} from \"./app\";\nimport { FieldDefinition, IdString } from \"./definition/tabs\";\nimport css from \"./app.inline.css\";\nimport { changeExistingPasswordWithCode, loginWithOpaque, serverAcceptResetCode } from \"./passwords\";\nimport { FomController } from \"./FomController\";\n\n// #region Login\ntype LoginFormMode = \"login\" | \"forgot-password\" | \"reset-code\" | \"update-password\";\n\ntype LoginDraft = AdminRecord & {\n confirmNewPassword: string;\n emailOrUsername: string;\n newPassword: string;\n resetCode: string;\n username: string;\n password: string;\n};\n\ntype LoginServerState = {\n csrfToken: string;\n emailEnabled: boolean;\n};\n\nconst renderCallout = (content: JSX.Node) => <div class=\"field-callout\"><p>{content}</p></div>;\n\n@addstyles(css)\n@customElement(\"mws-login-form\")\nexport class LoginForm extends JSXElement {\n // AGENTS: When the user edits this class directly, treat those changes as intentional and\n // important signals about desired behavior unless they explicitly ask to remove them.\n useLightDOM: boolean = true;\n constructor() { super(); }\n\n control: FomController<LoginDraft> = new FomController<LoginDraft>(this);\n\n handleAnySubmit: FomController<LoginDraft>[\"handleAnySubmit\"] = (...args) => this.control.handleAnySubmit(...args)\n\n\n // #region state\n @state() accessor draft: LoginDraft = this.createDraft();\n\n @state() private accessor mode: LoginFormMode = \"login\";\n @state() private accessor isSubmitting: boolean = false;\n @state() private accessor isResolvingServerState: boolean = false;\n @state() private accessor rememberMe: boolean = false;\n @state() private accessor serverState: LoginServerState | null = null;\n @state() private accessor submitMessage: string = new URLSearchParams(globalThis.location?.search ?? \"\").get(\"state\") === \"password-changed\"\n ? \"Password updated. You can now log in.\"\n : \"\";\n\n\n private createDraft(): LoginDraft {\n return {\n id: new IdString(\"\"),\n confirmNewPassword: \"\",\n emailOrUsername: \"\",\n newPassword: \"\",\n resetCode: \"\",\n username: \"\",\n password: \"\",\n };\n }\n\n\n\n\n private readonly fields: FieldDefinition[] = [\n {\n key: \"username\",\n label: \"Username\",\n type: \"string\",\n mode: \"create\",\n },\n {\n key: \"password\",\n label: \"Password\",\n type: \"enter-password\",\n mode: \"create\",\n },\n ];\n\n private readonly forgotPasswordFields: FieldDefinition[] = [\n {\n key: \"emailOrUsername\",\n label: \"Email / username\",\n type: \"string\",\n mode: \"create\",\n },\n ];\n\n private readonly resetCodeFields: FieldDefinition[] = [\n {\n key: \"resetCode\",\n label: \"Reset code\",\n type: \"string\",\n mode: \"create\",\n },\n ];\n\n private readonly updatePasswordFields: FieldDefinition[] = [\n {\n key: \"newPassword\",\n label: \"New password\",\n type: \"enter-password\",\n mode: \"create\",\n },\n {\n key: \"confirmNewPassword\",\n label: \"Confirm new password\",\n type: \"enter-password\",\n mode: \"create\",\n },\n ];\n\n private serverStatePromise: Promise<LoginServerState> | null = null;\n private ensureServerState(): Promise<LoginServerState> {\n if (this.serverState) return Promise.resolve(this.serverState);\n if (!this.serverStatePromise) {\n this.isResolvingServerState = true;\n this.serverStatePromise = this.loadServerStateInternal().then((serverState) => {\n this.serverState = serverState;\n return serverState;\n }).finally(() => {\n this.isResolvingServerState = false;\n this.serverStatePromise = null;\n });\n }\n return this.serverStatePromise;\n }\n\n\n\n private readonly handleBackClick = async () => {\n this.submitMessage = \"\";\n switch (this.mode) {\n case \"login\": break;\n case \"forgot-password\": {\n this.mode = \"login\";\n }; break;\n case \"reset-code\": {\n const serverState = await this.ensureServerState();\n if (!serverState.emailEnabled) {\n this.mode = \"login\";\n } else {\n this.mode = \"forgot-password\";\n }\n }; break;\n case \"update-password\": {\n this.mode = \"reset-code\";\n }; break;\n }\n\n }\n\n\n private readonly handleLoginSubmit = async () => {\n await this.handleAnySubmit(\n \"Logging in\u2026\",\n \"Login failed.\",\n () => this.submitLogin()\n );\n };\n\n private readonly handleForgotPasswordClick = async () => {\n this.submitMessage = \"\";\n this.mode = \"forgot-password\";\n const serverState = await this.ensureServerState();\n if (!serverState.emailEnabled) {\n this.mode = \"reset-code\";\n return;\n }\n }\n\n private readonly handleForgotPasswordSubmit = async () => {\n const serverState = await this.ensureServerState();\n if (!serverState.emailEnabled) {\n this.mode = \"reset-code\";\n return;\n }\n await this.handleAnySubmit(\n \"Sending reset email\u2026\",\n \"Reset email failed.\",\n () => this.submitForgotPassword()\n );\n };\n\n private readonly handleResetCodeSubmit = async () => {\n await this.handleAnySubmit(\n \"Verifying reset code\u2026\",\n \"Reset code failed.\",\n () => this.submitResetCode()\n );\n };\n\n private readonly handleUpdatePasswordSubmit = async (): Promise<void> => {\n const newPassword = this.draft.newPassword;\n const confirmNewPassword = this.draft.confirmNewPassword;\n\n if (!newPassword || !confirmNewPassword) {\n this.submitMessage = \"Enter and confirm your new password.\";\n return;\n }\n\n if (newPassword !== confirmNewPassword) {\n this.submitMessage = \"Passwords do not match.\";\n return;\n }\n\n await this.handleAnySubmit(\n \"Updating password\u2026\",\n \"Password update failed.\",\n () => this.submitUpdatePassword()\n );\n };\n\n\n protected render() {\n this.ensureServerState();\n\n switch (this.mode) {\n // #region login\n case \"login\": {\n const isLoginPageBusy = this.isSubmitting;\n\n return this.control.renderCommon({\n title: \"Log in\",\n copy: \"Enter your account credentials to continue.\",\n submitAction: this.handleLoginSubmit,\n submitDisabled: isLoginPageBusy,\n submitLabel: this.isSubmitting ? \"Logging in\u2026\" : \"Log in\",\n isStart: true,\n backAction: this.handleBackClick,\n }, <>\n <div class=\"login-fields\">{this.fields.map((field) => this.control.renderField(field))}</div>\n <div class=\"login-options\" aria-label=\"Login options\">\n <label class=\"login-checkbox\" for=\"login-remember-me\">\n <input\n id=\"login-remember-me\"\n class=\"login-checkbox-input\"\n type=\"checkbox\"\n checked={this.rememberMe}\n disabled={isLoginPageBusy}\n ref={(element) => {\n if (element.checked !== this.rememberMe)\n element.checked = this.rememberMe;\n }}\n onchange={(event) => {\n this.rememberMe = event.currentTarget.checked;\n }} />\n <span>Remember me</span>\n </label>\n\n <button\n class=\"login-link-button\"\n type=\"button\"\n disabled={isLoginPageBusy}\n onclick={() => this.handleForgotPasswordClick()}\n >Forgot password?</button>\n </div>\n </>);\n }\n // #region forgot\n case \"forgot-password\": {\n const isForgotPasswordEmailEnabled = !this.serverState || this.serverState.emailEnabled;\n\n const isSubmitDisabled = this.isSubmitting || this.isResolvingServerState\n || !this.draft.emailOrUsername\n\n return this.control.renderCommon({\n title: \"Forgot password\",\n copy: \"Enter your email and we will send a reset link.\",\n submitAction: this.handleForgotPasswordSubmit,\n submitDisabled: isSubmitDisabled,\n submitLabel: isForgotPasswordEmailEnabled ? \"Send Email\" : \"Enter Code\",\n backAction: this.handleBackClick,\n }, this.isResolvingServerState ? (\n <div class=\"modal-loading-shell\">\n <div class=\"modal-loading-bar\" aria-hidden=\"true\"><span></span></div>\n <p class=\"modal-loading-copy\">Please wait, loading server state...</p>\n </div>\n ) : (\n <div class=\"login-fields\">\n {this.forgotPasswordFields.map((field) => this.control.renderField(field))}\n </div>\n ));\n }\n // #region code\n case \"reset-code\": {\n const adminCode = this.serverState && !this.serverState.emailEnabled;\n\n const resetCodeActionDisabled = this.isResolvingServerState || this.isSubmitting\n || !this.draft.emailOrUsername\n || !this.draft.resetCode;\n\n return this.control.renderCommon({\n title: \"Enter reset code\",\n copy: \"Enter your password reset code.\",\n submitAction: this.handleResetCodeSubmit,\n submitDisabled: resetCodeActionDisabled,\n submitLabel: \"Verify code\",\n backAction: this.handleBackClick,\n }, <>\n <div class=\"login-fields\">\n {!this.serverState?.emailEnabled &&\n this.forgotPasswordFields.map((field) => this.control.renderField(field))\n }\n {this.resetCodeFields.map((field) => this.control.renderField(field))}\n </div>\n {adminCode && renderCallout(\"Email services are not setup. Ask an admin for a reset code.\")}\n </>);\n }\n // #region update\n case \"update-password\": {\n\n const updatePasswordActionDisabled = this.isSubmitting\n || !this.draft.newPassword\n || !this.draft.confirmNewPassword\n || this.draft.newPassword !== this.draft.confirmNewPassword;\n\n return this.control.renderCommon({\n title: \"Update password\",\n copy: \"Choose a new password for your account.\",\n submitAction: this.handleUpdatePasswordSubmit,\n submitDisabled: updatePasswordActionDisabled,\n submitLabel: \"Update password\",\n backAction: this.handleBackClick,\n }, <>\n <div class=\"login-fields\">\n {renderCallout(\"Username: \" + this.draft.username)}\n {this.updatePasswordFields.map((field) => this.control.renderField(field))}\n </div>\n </>);\n }\n }\n\n }\n\n private submitLogin = async (): Promise<boolean> => {\n const serverState = await this.ensureServerState();\n const clientState = this.draft;\n this.rememberMe;\n await loginWithOpaque(clientState.username, clientState.password, true);\n location.href = location.origin + pathPrefix + \"/\";\n return true;\n }\n private submitForgotPassword = async (): Promise<boolean> => {\n const serverState = await this.ensureServerState();\n const clientState = this.draft;\n this.mode = \"reset-code\";\n this.submitMessage = \"\";\n return true;\n }\n private submitResetCode = async (): Promise<boolean> => {\n const serverState = await this.ensureServerState();\n const clientState = this.draft;\n const { user_id, username } = await serverAcceptResetCode({\n resetCode: clientState.resetCode,\n csrfToken: serverState.csrfToken,\n emailOrUsername: clientState.emailOrUsername,\n });\n clientState.id = new IdString(user_id);\n clientState.username = username;\n this.mode = \"update-password\";\n this.submitMessage = \"\";\n return true;\n }\n private submitUpdatePassword = async (): Promise<boolean> => {\n const serverState = await this.ensureServerState();\n const clientState = this.draft;\n await changeExistingPasswordWithCode({\n user_id: clientState.id.toString(),\n username: clientState.username,\n resetCode: clientState.resetCode,\n newPassword: clientState.newPassword,\n });\n location.search = \"?state=password-changed\";\n return new Promise(() => { });\n return true;\n }\n\n private async loadServerStateInternal(): Promise<LoginServerState> {\n await new Promise(r => { setTimeout(r, 2000); });\n return {\n csrfToken: \"pretend-csrf-token\",\n emailEnabled: false,\n };\n }\n\n}", "import { addstyles, customElement, JSXElement, state } from \"@tiddlywiki/jsx-lit\";\nimport {\n AdminRecord,\n} from \"./app\";\nimport { FieldDefinition, IdString, FieldZodType, FieldType, Drafter } from \"./definition/tabs\";\nimport css from \"./app.inline.css\";\nimport { changeExistingPasswordWithCode, changeExistingPasswordWithPassword, loginWithOpaque, serverAcceptResetCode } from \"./passwords\";\nimport { FomController } from \"./FomController\";\n\nconst profileFields = [\n {\n key: \"username\",\n label: \"Username\",\n type: \"string\",\n mode: \"server\",\n },\n {\n key: \"email\",\n label: \"Email\",\n type: \"string\",\n mode: \"server\",\n },\n {\n key: \"roles\",\n label: \"Roles\",\n type: \"search-multiselect\",\n mode: \"server\"\n }\n] as const satisfies FieldDefinition[];\n\nconst updatePasswordFields = [\n\n {\n key: \"password\",\n label: \"Current password\",\n type: \"enter-password\",\n mode: \"create\",\n },\n {\n key: \"newPassword\",\n label: \"New password\",\n type: \"enter-password\",\n mode: \"create\",\n },\n {\n key: \"confirmNewPassword\",\n label: \"Confirm new password\",\n type: \"enter-password\",\n mode: \"create\",\n },\n] as const satisfies FieldDefinition[];\n\n\ntype ProfileDraft = Drafter<typeof profileFields> & Drafter<typeof updatePasswordFields>;\n\ntype LoginServerState = {\n csrfToken: string;\n emailEnabled: boolean;\n};\n\nconst renderCallout = (content: JSX.Node) => <div class=\"field-callout\"><p>{content}</p></div>;\n\n@addstyles(css)\n@customElement(\"mws-profile-form\")\nexport class ProfileForm extends JSXElement {\n // AGENTS: When the user edits this class directly, treat those changes as intentional and\n // important signals about desired behavior unless they explicitly ask to remove them.\n useLightDOM: boolean = true;\n constructor() { super(); }\n\n control: FomController<ProfileDraft> = new FomController<ProfileDraft>(this);\n\n handleAnySubmit: FomController<ProfileDraft>[\"handleAnySubmit\"] = (...args) => this.control.handleAnySubmit(...args)\n\n onCancel = async () => {\n location.pathname = pathPrefix + \"/\";\n }\n\n @state() accessor props!: {}\n\n // #region state\n @state() accessor draft: ProfileDraft = this.createDraft();\n\n @state() private accessor mode: \"profile\" | \"updatePassword\" = \"profile\";\n @state() private accessor isSubmitting: boolean = false;\n @state() private accessor submitMessage: string = new URLSearchParams(globalThis.location?.search ?? \"\").get(\"state\") === \"password-changed\"\n ? \"Password updated. You can now log in.\"\n : \"\";\n\n\n private createDraft(): ProfileDraft {\n return {\n id: new IdString(\"\"),\n email: \"\",\n username: \"\",\n roles: [],\n password: \"\",\n newPassword: \"\",\n confirmNewPassword: \"\",\n };\n }\n\n protected render() {\n switch (this.mode) {\n case \"profile\": {\n\n return this.control.renderCommon({\n title: \"User Profile\",\n copy: \"View your profile.\",\n submitAction: this.handleProfileSubmit,\n submitDisabled: false,\n submitLabel: \"Update Password\",\n backAction: this.onCancel,\n backLabel: \"Close\",\n }, <>\n <div class=\"login-fields\">\n {profileFields.map((field) => this.control.renderField(field))}\n </div>\n </>);\n\n } break;\n\n\n case \"updatePassword\": {\n\n const updatePasswordActionDisabled = this.isSubmitting\n || !this.draft.newPassword\n || !this.draft.confirmNewPassword\n || this.draft.newPassword !== this.draft.confirmNewPassword;\n\n return this.control.renderCommon({\n title: \"Update password\",\n copy: \"Choose a new password for your account.\",\n submitAction: this.handleUpdatePasswordSubmit,\n submitDisabled: updatePasswordActionDisabled,\n submitLabel: \"Update password\",\n backAction: async () => { this.mode = \"profile\"; },\n }, <>\n <div class=\"login-fields\">\n {updatePasswordFields.map((field) => this.control.renderField(field))}\n </div>\n </>);\n }\n\n }\n\n }\n\n private readonly handleProfileSubmit = async () => {\n await this.handleAnySubmit(\n \"Update password\",\n \"\",\n async () => {\n this.mode = \"updatePassword\";\n return true;\n }\n );\n }\n\n private readonly handleUpdatePasswordSubmit = async (): Promise<void> => {\n const newPassword = this.draft.newPassword;\n const confirmNewPassword = this.draft.confirmNewPassword;\n\n if (!newPassword || !confirmNewPassword) {\n this.submitMessage = \"Enter and confirm your new password.\";\n return;\n }\n\n if (newPassword !== confirmNewPassword) {\n this.submitMessage = \"Passwords do not match.\";\n return;\n }\n\n await this.handleAnySubmit(\n \"Updating password\u2026\",\n \"Password update failed.\",\n () => this.submitUpdatePassword()\n );\n };\n\n private submitUpdatePassword = async (): Promise<boolean> => {\n const clientState = this.draft;\n await changeExistingPasswordWithPassword({\n username: embeddedServerResponse.userState.username,\n password: clientState.password,\n newPassword: clientState.newPassword,\n });\n location.search = \"?state=password-changed\";\n return new Promise(() => { });\n }\n\n}\n\n\n\n", "/// <reference path=\"types.d.ts\" />\n// global css (not scoped)\nimport \"./main.css\";\nimport { App } from \"./app\";\nimport { LoginForm } from \"./app-login\";\nimport { AuthUser } from \"@tiddlywiki/mws/src/new-managers/sessions\";\nimport { SendError } from \"@tiddlywiki/server\";\nimport { ProfileForm } from \"./app-profile\";\n\n// disables the \"flash of white\" styles\ndocument.documentElement.classList.add(\"loaded\");\n\nwindow.addEventListener(\"drop\", (e) => {\n e.preventDefault();\n console.log(\"Prevented the default browser behavior of doing stuff with dropped stuff. If you have a use case for this, please open an issue.\");\n});\n\n\ndeclare global {\n const pathPrefix: string;\n const embeddedServerResponse: {\n userState: AuthUser;\n sendError?: ReturnType<SendError<any>[\"toJSON\"]>;\n }\n}\n\n// Source - https://stackoverflow.com/a/52695341\n// Posted by Gary Vernon Grubb, modified by community. \n// See post 'Timeline' for change history\n// Retrieved 2026-01-30, License - CC BY-SA 4.0\n\nconst isInStandaloneMode = () => false\n || (window.matchMedia('(display-mode: standalone)').matches)\n || (window.matchMedia('(display-mode: fullscreen)').matches)\n || (window.matchMedia('(display-mode: minimal-ui)').matches)\n || (\"standalone\" in window.navigator && window.navigator.standalone)\n || document.referrer.includes('android-app://');\n\nif (isInStandaloneMode()) {\n console.log(\"webapp is installed\")\n}\n\n\nfunction setup() {\n if (location.pathname === pathPrefix + \"/login\") {\n document.body.appendChild(new LoginForm());\n }\n else if (!embeddedServerResponse.userState.isLoggedIn) {\n location.pathname = pathPrefix + \"/login\";\n }\n else if (location.pathname === pathPrefix + \"/profile\") {\n document.body.appendChild(new ProfileForm());\n }\n else {\n document.body.appendChild(new App());\n }\n\n}\n\nif (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", setup);\n} else {\n setup();\n}\n\n"],
|
|
5
|
+
"mappings": "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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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",
|
|
6
|
+
"names": ["require_events", "__commonJSMin", "exports", "module", "R", "ReflectApply", "target", "receiver", "args", "ReflectOwnKeys", "ProcessEmitWarning", "warning", "NumberIsNaN", "value", "EventEmitter", "once", "defaultMaxListeners", "checkListener", "listener", "arg", "n", "_getMaxListeners", "that", "type", "i", "doError", "events", "er", "err", "handler", "len", "listeners", "arrayClone", "_addListener", "prepend", "m", "existing", "w", "onceWrapper", "_onceWrap", "state", "wrapped", "list", "position", "originalListener", "spliceOne", "keys", "key", "_listeners", "unwrap", "evlistener", "unwrapListeners", "emitter", "listenerCount", "arr", "copy", "index", "ret", "name", "resolve", "reject", "errorListener", "resolver", "eventTargetAgnosticAddListener", "addErrorHandlerIfEventEmitter", "flags", "wrapListener", "esm_exports", "__export", "client", "ready", "server", "_loadWasmModule", "sync", "filepath", "src", "imports", "_instantiateOrCompile", "source", "stream", "compileFunc", "buf", "isNode", "raw", "rawLength", "i", "wasmData", "createServerRegistrationResponse", "params", "ret", "wasm", "takeFromExternrefTable0", "createServerSetup", "deferred1_0", "deferred1_1", "getStringFromWasm0", "finishClientLogin", "finishClientRegistration", "finishServerLogin", "getServerPublicKey", "data", "deferred3_0", "deferred3_1", "ptr0", "passStringToWasm0", "len0", "WASM_VECTOR_LEN", "ptr2", "len2", "startClientLogin", "startClientRegistration", "startServerLogin", "__wbg_get_imports", "arg0", "arg1", "ptr1", "len1", "getDataViewMemory0", "v", "isLikeNone", "debugString", "val", "obj", "handleError", "arg2", "result", "getArrayU8FromWasm0", "addToExternrefTable0", "table", "offset", "idx", "type", "description", "name", "length", "debug", "builtInMatches", "className", "ptr", "len", "getUint8ArrayMemory0", "cachedDataViewMemory0", "decodeText", "cachedUint8ArrayMemory0", "f", "args", "e", "x", "arg", "malloc", "realloc", "cachedTextEncoder", "mem", "code", "view", "value", "numBytesDecoded", "MAX_SAFARI_DECODE_BYTES", "cachedTextDecoder", "__wbg_finalize_init", "instance", "module", "__wbg_load", "expectedResponseType", "bytes", "__wbg_init", "module_or_path", "init_esm", "__esmMin", "customElement", "tagName", "classOrTarget", "context", "addInitializer", "customElements", "define", "global", "globalThis", "supportsAdoptingStyleSheets", "ShadowRoot", "ShadyCSS", "nativeShadow", "Document", "prototype", "CSSStyleSheet", "constructionToken", "Symbol", "cssTagCache", "WeakMap", "CSSResult", "cssText", "strings", "safeToken", "this", "Error", "_strings", "styleSheet", "_styleSheet", "cacheable", "length", "get", "replaceSync", "set", "toString", "unsafeCSS", "value", "String", "adoptStyles", "renderRoot", "styles", "supportsAdoptingStyleSheets", "adoptedStyleSheets", "map", "s", "CSSStyleSheet", "styleSheet", "style", "document", "createElement", "nonce", "global", "setAttribute", "textContent", "cssText", "appendChild", "getCompatibleStyle", "sheet", "rule", "cssRules", "unsafeCSS", "is", "defineProperty", "getOwnPropertyDescriptor", "getOwnPropertyNames", "getOwnPropertySymbols", "getPrototypeOf", "Object", "global", "globalThis", "trustedTypes", "emptyStringForBooleanAttribute", "emptyScript", "polyfillSupport", "reactiveElementPolyfillSupport", "JSCompiler_renameProperty", "prop", "_obj", "defaultConverter", "value", "type", "Boolean", "Array", "JSON", "stringify", "fromValue", "Number", "parse", "e", "notEqual", "old", "defaultPropertyDeclaration", "attribute", "String", "converter", "reflect", "useDefault", "hasChanged", "Symbol", "metadata", "litPropertyMetadata", "WeakMap", "ReactiveElement", "HTMLElement", "initializer", "this", "__prepare", "_initializers", "push", "observedAttributes", "finalize", "__attributeToPropertyMap", "keys", "name", "options", "state", "prototype", "hasOwnProperty", "create", "wrapped", "elementProperties", "set", "noAccessor", "key", "descriptor", "getPropertyDescriptor", "get", "v", "oldValue", "call", "requestUpdate", "configurable", "enumerable", "superCtor", "Map", "finalized", "props", "properties", "propKeys", "p", "createProperty", "attr", "__attributeNameForProperty", "elementStyles", "finalizeStyles", "styles", "isArray", "Set", "flat", "Infinity", "reverse", "s", "unshift", "getCompatibleStyle", "toLowerCase", "constructor", "super", "__instanceProperties", "isUpdatePending", "hasUpdated", "__reflectingProperty", "__initialize", "__updatePromise", "Promise", "res", "enableUpdating", "_$changedProperties", "__saveInstanceProperties", "forEach", "i", "controller", "__controllers", "add", "renderRoot", "isConnected", "hostConnected", "delete", "instanceProperties", "size", "createRenderRoot", "shadowRoot", "attachShadow", "shadowRootOptions", "adoptStyles", "connectedCallback", "c", "_requestedUpdate", "disconnectedCallback", "hostDisconnected", "_old", "_$attributeToProperty", "attrValue", "toAttribute", "removeAttribute", "setAttribute", "ctor", "propName", "getPropertyOptions", "fromAttribute", "convertedValue", "__defaultValues", "useNewValue", "newValue", "hasAttribute", "_$changeProperty", "__enqueueUpdate", "initializeValue", "has", "__reflectingProperties", "reject", "result", "scheduleUpdate", "performUpdate", "shouldUpdate", "changedProperties", "willUpdate", "hostUpdate", "update", "__markUpdated", "_$didUpdate", "_changedProperties", "hostUpdated", "firstUpdated", "updated", "updateComplete", "getUpdateComplete", "__propertyToAttribute", "mode", "reactiveElementVersions", "defaultPropertyDeclaration", "attribute", "type", "String", "converter", "defaultConverter", "reflect", "hasChanged", "notEqual", "standardProperty", "options", "target", "context", "kind", "metadata", "properties", "globalThis", "litPropertyMetadata", "get", "set", "Map", "Object", "create", "wrapped", "name", "v", "oldValue", "call", "this", "requestUpdate", "_$changeProperty", "value", "Error", "property", "protoOrTarget", "nameOrContext", "proto", "hasOwnProperty", "constructor", "createProperty", "getOwnPropertyDescriptor", "undefined", "state", "options", "property", "attribute", "addstyles", "styles", "target", "context", "addstylesinner", "css", "computedStyle", "getBreakpointValue", "breakpoint", "width", "breakpointValues", "import_events", "JSXElementSymbol", "SVG_NAMESPACE", "OldPropsSymbol", "KeyChildren", "OwnKeySymbol", "DOMElementSymbol", "observer", "mutations", "mutation", "callbacks", "observerCallbacks", "cb", "render", "root", "child", "updateChildren", "updateElement", "jsx", "el", "parentNamespaceURI", "isNodeTypeValidUpdate", "namespaceURI", "updateAttributes", "key", "ref", "props", "filter", "oldProps", "value", "descriptor", "styleKey", "styleValue", "eventName", "children", "curKeyMap", "newKeyMap", "newChildNodes", "i", "newChildDef", "curChildNode", "newChildNode", "isJSXDOMElement", "isJSXElement", "isValidCurChildNode", "hasKey", "keyChildNode", "isChild", "isDOM", "replaceChildren", "e", "removed", "j", "oldChildNode", "node", "def", "namespace", "JSXElementSymbol", "is", "a", "b", "Fragment", "jsx", "type", "props", "key", "is", "JSXElementSymbol", "jsxs", "__values", "o", "s", "m", "i", "__read", "n", "r", "ar", "e", "error", "__spreadArray", "to", "from", "pack", "i", "l", "ar", "isFunction", "value", "createErrorClass", "createImpl", "_super", "instance", "ctorFunc", "UnsubscriptionError", "createErrorClass", "_super", "errors", "err", "i", "arrRemove", "arr", "item", "index", "Subscription", "initialTeardown", "errors", "_parentage", "_parentage_1", "__values", "_parentage_1_1", "parent_1", "initialFinalizer", "isFunction", "e", "UnsubscriptionError", "_finalizers", "_finalizers_1", "_finalizers_1_1", "finalizer", "execFinalizer", "err", "__spreadArray", "__read", "teardown", "_a", "parent", "arrRemove", "empty", "EMPTY_SUBSCRIPTION", "Subscription", "execFinalizer", "finalizer", "isFunction", "listeners", "debounces", "resizeObserver", "entries", "entry", "e", "observeResize", "target", "listener", "unobserveResize", "listenSet", "y", "hasChangedJSXProps", "n", "o", "key", "DO_NOT_RENDER", "JSXElement", "_JSXElement", "EventEmitter", "Subscription", "fn", "init", "curfunc", "state", "inited", "cb", "deps", "args", "target", "inner", "type", "listener", "element", "caller", "observeResize", "unobserveResize", "initialValue", "newValue", "nextValue", "checkDeps", "result", "err", "_changedProperties", "changedProperties", "tree", "render", "jsx", "styles", "setstyle", "cssText", "style", "nonce", "el", "s", "is", "rule", "oldDeps", "newDeps", "app_inline_default", "warning_default", "close_default", "account_circle_default", "_props_dec", "_a", "_MaterialSymbol_decorators", "_init", "_props", "t", "MaterialSymbol", "JSXElement", "r", "__publicField", "__privateAdd", "__runInitializers", "__decoratorStart", "__decorateElement", "v4_exports", "__export", "$brand", "$input", "$output", "NEVER", "TimePrecision", "ZodAny", "ZodArray", "ZodBase64", "ZodBase64URL", "ZodBigInt", "ZodBigIntFormat", "ZodBoolean", "ZodCIDRv4", "ZodCIDRv6", "ZodCUID", "ZodCUID2", "ZodCatch", "ZodCodec", "ZodCustom", "ZodCustomStringFormat", "ZodDate", "ZodDefault", "ZodDiscriminatedUnion", "ZodE164", "ZodEmail", "ZodEmoji", "ZodEnum", "ZodError", "ZodExactOptional", "ZodFile", "ZodFirstPartyTypeKind", "ZodFunction", "ZodGUID", "ZodIPv4", "ZodIPv6", "ZodISODate", "ZodISODateTime", "ZodISODuration", "ZodISOTime", "ZodIntersection", "ZodIssueCode", "ZodJWT", "ZodKSUID", "ZodLazy", "ZodLiteral", "ZodMAC", "ZodMap", "ZodNaN", "ZodNanoID", "ZodNever", "ZodNonOptional", "ZodNull", "ZodNullable", "ZodNumber", "ZodNumberFormat", "ZodObject", "ZodOptional", "ZodPipe", "ZodPrefault", "ZodPromise", "ZodReadonly", "ZodRealError", "ZodRecord", "ZodSet", "ZodString", "ZodStringFormat", "ZodSuccess", "ZodSymbol", "ZodTemplateLiteral", "ZodTransform", "ZodTuple", "ZodType", "ZodULID", "ZodURL", "ZodUUID", "ZodUndefined", "ZodUnion", "ZodUnknown", "ZodVoid", "ZodXID", "ZodXor", "_ZodString", "_default", "_function", "any", "array", "base64", "base64url", "bigint", "boolean", "_catch", "check", "cidrv4", "cidrv6", "clone", "codec", "coerce_exports", "config", "core_exports", "cuid", "cuid2", "custom", "date", "decode", "decodeAsync", "v4_default", "describe", "discriminatedUnion", "e164", "email", "emoji", "encode", "encodeAsync", "_endsWith", "_enum", "exactOptional", "file", "flattenError", "float32", "float64", "formatError", "fromJSONSchema", "getErrorMap", "globalRegistry", "_gt", "_gte", "guid", "hash", "hex", "hostname", "httpUrl", "_includes", "_instanceof", "int", "int32", "int64", "intersection", "ipv4", "ipv6", "iso_exports", "json", "jwt", "keyof", "ksuid", "lazy", "_length", "literal", "locales_exports", "looseObject", "looseRecord", "_lowercase", "_lt", "_lte", "mac", "map", "_maxLength", "_maxSize", "meta", "_mime", "_minLength", "_minSize", "_multipleOf", "nan", "nanoid", "nativeEnum", "_negative", "never", "_nonnegative", "nonoptional", "_nonpositive", "_normalize", "_null", "nullable", "nullish", "number", "object", "optional", "_overwrite", "parse", "parseAsync", "partialRecord", "pipe", "_positive", "prefault", "preprocess", "prettifyError", "promise", "_property", "readonly", "record", "refine", "_regex", "regexes_exports", "registry", "safeDecode", "safeDecodeAsync", "safeEncode", "safeEncodeAsync", "safeParse", "safeParseAsync", "set", "setErrorMap", "_size", "_slugify", "_startsWith", "strictObject", "string", "stringFormat", "stringbool", "success", "superRefine", "symbol", "templateLiteral", "toJSONSchema", "_toLowerCase", "_toUpperCase", "transform", "treeifyError", "_trim", "tuple", "uint32", "uint64", "ulid", "_undefined", "union", "unknown", "_uppercase", "url", "util_exports", "uuid", "uuidv4", "uuidv6", "uuidv7", "_void", "xid", "xor", "external_exports", "external_exports", "__export", "$brand", "$input", "$output", "NEVER", "TimePrecision", "ZodAny", "ZodArray", "ZodBase64", "ZodBase64URL", "ZodBigInt", "ZodBigIntFormat", "ZodBoolean", "ZodCIDRv4", "ZodCIDRv6", "ZodCUID", "ZodCUID2", "ZodCatch", "ZodCodec", "ZodCustom", "ZodCustomStringFormat", "ZodDate", "ZodDefault", "ZodDiscriminatedUnion", "ZodE164", "ZodEmail", "ZodEmoji", "ZodEnum", "ZodError", "ZodExactOptional", "ZodFile", "ZodFirstPartyTypeKind", "ZodFunction", "ZodGUID", "ZodIPv4", "ZodIPv6", "ZodISODate", "ZodISODateTime", "ZodISODuration", "ZodISOTime", "ZodIntersection", "ZodIssueCode", "ZodJWT", "ZodKSUID", "ZodLazy", "ZodLiteral", "ZodMAC", "ZodMap", "ZodNaN", "ZodNanoID", "ZodNever", "ZodNonOptional", "ZodNull", "ZodNullable", "ZodNumber", "ZodNumberFormat", "ZodObject", "ZodOptional", "ZodPipe", "ZodPrefault", "ZodPromise", "ZodReadonly", "ZodRealError", "ZodRecord", "ZodSet", "ZodString", "ZodStringFormat", "ZodSuccess", "ZodSymbol", "ZodTemplateLiteral", "ZodTransform", "ZodTuple", "ZodType", "ZodULID", "ZodURL", "ZodUUID", "ZodUndefined", "ZodUnion", "ZodUnknown", "ZodVoid", "ZodXID", "ZodXor", "_ZodString", "_default", "_function", "any", "array", "base64", "base64url", "bigint", "boolean", "_catch", "check", "cidrv4", "cidrv6", "clone", "codec", "coerce_exports", "config", "core_exports", "cuid", "cuid2", "custom", "date", "decode", "decodeAsync", "describe", "discriminatedUnion", "e164", "email", "emoji", "encode", "encodeAsync", "_endsWith", "_enum", "exactOptional", "file", "flattenError", "float32", "float64", "formatError", "fromJSONSchema", "getErrorMap", "globalRegistry", "_gt", "_gte", "guid", "hash", "hex", "hostname", "httpUrl", "_includes", "_instanceof", "int", "int32", "int64", "intersection", "ipv4", "ipv6", "iso_exports", "json", "jwt", "keyof", "ksuid", "lazy", "_length", "literal", "locales_exports", "looseObject", "looseRecord", "_lowercase", "_lt", "_lte", "mac", "map", "_maxLength", "_maxSize", "meta", "_mime", "_minLength", "_minSize", "_multipleOf", "nan", "nanoid", "nativeEnum", "_negative", "never", "_nonnegative", "nonoptional", "_nonpositive", "_normalize", "_null", "nullable", "nullish", "number", "object", "optional", "_overwrite", "parse", "parseAsync", "partialRecord", "pipe", "_positive", "prefault", "preprocess", "prettifyError", "promise", "_property", "readonly", "record", "refine", "_regex", "regexes_exports", "registry", "safeDecode", "safeDecodeAsync", "safeEncode", "safeEncodeAsync", "safeParse", "safeParseAsync", "set", "setErrorMap", "_size", "_slugify", "_startsWith", "strictObject", "string", "stringFormat", "stringbool", "success", "superRefine", "symbol", "templateLiteral", "toJSONSchema", "_toLowerCase", "_toUpperCase", "transform", "treeifyError", "_trim", "tuple", "uint32", "uint64", "ulid", "_undefined", "union", "unknown", "_uppercase", "url", "util_exports", "uuid", "uuidv4", "uuidv6", "uuidv7", "_void", "xid", "xor", "core_exports", "__export", "$ZodAny", "$ZodArray", "$ZodAsyncError", "$ZodBase64", "$ZodBase64URL", "$ZodBigInt", "$ZodBigIntFormat", "$ZodBoolean", "$ZodCIDRv4", "$ZodCIDRv6", "$ZodCUID", "$ZodCUID2", "$ZodCatch", "$ZodCheck", "$ZodCheckBigIntFormat", "$ZodCheckEndsWith", "$ZodCheckGreaterThan", "$ZodCheckIncludes", "$ZodCheckLengthEquals", "$ZodCheckLessThan", "$ZodCheckLowerCase", "$ZodCheckMaxLength", "$ZodCheckMaxSize", "$ZodCheckMimeType", "$ZodCheckMinLength", "$ZodCheckMinSize", "$ZodCheckMultipleOf", "$ZodCheckNumberFormat", "$ZodCheckOverwrite", "$ZodCheckProperty", "$ZodCheckRegex", "$ZodCheckSizeEquals", "$ZodCheckStartsWith", "$ZodCheckStringFormat", "$ZodCheckUpperCase", "$ZodCodec", "$ZodCustom", "$ZodCustomStringFormat", "$ZodDate", "$ZodDefault", "$ZodDiscriminatedUnion", "$ZodE164", "$ZodEmail", "$ZodEmoji", "$ZodEncodeError", "$ZodEnum", "$ZodError", "$ZodExactOptional", "$ZodFile", "$ZodFunction", "$ZodGUID", "$ZodIPv4", "$ZodIPv6", "$ZodISODate", "$ZodISODateTime", "$ZodISODuration", "$ZodISOTime", "$ZodIntersection", "$ZodJWT", "$ZodKSUID", "$ZodLazy", "$ZodLiteral", "$ZodMAC", "$ZodMap", "$ZodNaN", "$ZodNanoID", "$ZodNever", "$ZodNonOptional", "$ZodNull", "$ZodNullable", "$ZodNumber", "$ZodNumberFormat", "$ZodObject", "$ZodObjectJIT", "$ZodOptional", "$ZodPipe", "$ZodPrefault", "$ZodPromise", "$ZodReadonly", "$ZodRealError", "$ZodRecord", "$ZodRegistry", "$ZodSet", "$ZodString", "$ZodStringFormat", "$ZodSuccess", "$ZodSymbol", "$ZodTemplateLiteral", "$ZodTransform", "$ZodTuple", "$ZodType", "$ZodULID", "$ZodURL", "$ZodUUID", "$ZodUndefined", "$ZodUnion", "$ZodUnknown", "$ZodVoid", "$ZodXID", "$ZodXor", "$brand", "$constructor", "$input", "$output", "Doc", "json_schema_exports", "JSONSchemaGenerator", "NEVER", "TimePrecision", "_any", "_array", "_base64", "_base64url", "_bigint", "_boolean", "_catch", "_check", "_cidrv4", "_cidrv6", "_coercedBigint", "_coercedBoolean", "_coercedDate", "_coercedNumber", "_coercedString", "_cuid", "_cuid2", "_custom", "_date", "_decode", "_decodeAsync", "_default", "_discriminatedUnion", "_e164", "_email", "_emoji", "_encode", "_encodeAsync", "_endsWith", "_enum", "_file", "_float32", "_float64", "_gt", "_gte", "_guid", "_includes", "_int", "_int32", "_int64", "_intersection", "_ipv4", "_ipv6", "_isoDate", "_isoDateTime", "_isoDuration", "_isoTime", "_jwt", "_ksuid", "_lazy", "_length", "_literal", "_lowercase", "_lt", "_lte", "_mac", "_map", "_maxLength", "_maxSize", "_mime", "_minLength", "_minSize", "_multipleOf", "_nan", "_nanoid", "_nativeEnum", "_negative", "_never", "_nonnegative", "_nonoptional", "_nonpositive", "_normalize", "_null", "_nullable", "_number", "_optional", "_overwrite", "_parse", "_parseAsync", "_pipe", "_positive", "_promise", "_property", "_readonly", "_record", "_refine", "_regex", "_safeDecode", "_safeDecodeAsync", "_safeEncode", "_safeEncodeAsync", "_safeParse", "_safeParseAsync", "_set", "_size", "_slugify", "_startsWith", "_string", "_stringFormat", "_stringbool", "_success", "_superRefine", "_symbol", "_templateLiteral", "_toLowerCase", "_toUpperCase", "_transform", "_trim", "_tuple", "_uint32", "_uint64", "_ulid", "_undefined", "_union", "_unknown", "_uppercase", "_url", "_uuid", "_uuidv4", "_uuidv6", "_uuidv7", "_void", "_xid", "_xor", "clone", "config", "createStandardJSONSchemaMethod", "createToJSONSchemaMethod", "decode", "decodeAsync", "describe", "encode", "encodeAsync", "extractDefs", "finalize", "flattenError", "formatError", "globalConfig", "globalRegistry", "initializeContext", "isValidBase64", "isValidBase64URL", "isValidJWT", "locales_exports", "meta", "parse", "parseAsync", "prettifyError", "process", "regexes_exports", "registry", "safeDecode", "safeDecodeAsync", "safeEncode", "safeEncodeAsync", "safeParse", "safeParseAsync", "toDotPath", "toJSONSchema", "treeifyError", "util_exports", "version", "NEVER", "$constructor", "name", "initializer", "params", "init", "inst", "def", "_", "proto", "keys", "i", "k", "Parent", "Definition", "_a", "fn", "$brand", "$ZodAsyncError", "$ZodEncodeError", "globalConfig", "config", "newConfig", "util_exports", "__export", "BIGINT_FORMAT_RANGES", "Class", "NUMBER_FORMAT_RANGES", "aborted", "allowsEval", "assert", "assertEqual", "assertIs", "assertNever", "assertNotEqual", "assignProp", "base64ToUint8Array", "base64urlToUint8Array", "cached", "captureStackTrace", "cleanEnum", "cleanRegex", "clone", "cloneDef", "createTransparentProxy", "defineLazy", "esc", "escapeRegex", "extend", "finalizeIssue", "floatSafeRemainder", "getElementAtPath", "getEnumValues", "getLengthableOrigin", "getParsedType", "getSizableOrigin", "hexToUint8Array", "isObject", "isPlainObject", "issue", "joinValues", "jsonStringifyReplacer", "merge", "mergeDefs", "normalizeParams", "nullish", "numKeys", "objectClone", "omit", "optionalKeys", "parsedType", "partial", "pick", "prefixIssues", "primitiveTypes", "promiseAllObject", "propertyKeyTypes", "randomString", "required", "safeExtend", "shallowClone", "slugify", "stringifyPrimitive", "uint8ArrayToBase64", "uint8ArrayToBase64url", "uint8ArrayToHex", "unwrapMessage", "val", "_arg", "_x", "_", "entries", "numericValues", "v", "k", "array", "separator", "value", "getter", "input", "source", "start", "end", "step", "valDecCount", "stepString", "stepDecCount", "match", "decCount", "valInt", "stepInt", "EVALUATING", "object", "key", "obj", "target", "prop", "defs", "mergedDescriptors", "def", "descriptors", "schema", "path", "acc", "promisesObj", "keys", "promises", "results", "resolvedObj", "i", "length", "chars", "str", "_args", "data", "F", "o", "ctor", "prot", "keyCount", "t", "inst", "params", "cl", "_params", "receiver", "descriptor", "shape", "mask", "currDef", "checks", "newShape", "existingShape", "_shape", "a", "b", "oldShape", "x", "startIndex", "issues", "iss", "_a", "message", "ctx", "config", "full", "args", "el", "base64", "binaryString", "bytes", "base64url", "padding", "hex", "cleanHex", "initializer", "inst", "def", "jsonStringifyReplacer", "$ZodError", "$constructor", "$ZodRealError", "flattenError", "error", "mapper", "issue", "fieldErrors", "formErrors", "sub", "formatError", "processError", "issues", "curr", "i", "el", "treeifyError", "result", "path", "_a", "_b", "fullpath", "terminal", "toDotPath", "_path", "segs", "seg", "prettifyError", "lines", "a", "b", "_parse", "_Err", "schema", "value", "_ctx", "_params", "ctx", "result", "$ZodAsyncError", "e", "iss", "finalizeIssue", "config", "captureStackTrace", "parse", "$ZodRealError", "_parseAsync", "params", "parseAsync", "_safeParse", "$ZodError", "safeParse", "_safeParseAsync", "safeParseAsync", "_encode", "encode", "_decode", "decode", "_encodeAsync", "encodeAsync", "_decodeAsync", "decodeAsync", "_safeEncode", "safeEncode", "_safeDecode", "safeDecode", "_safeEncodeAsync", "safeEncodeAsync", "_safeDecodeAsync", "safeDecodeAsync", "regexes_exports", "__export", "base64", "base64url", "bigint", "boolean", "browserEmail", "cidrv4", "cidrv6", "cuid", "cuid2", "date", "datetime", "domain", "duration", "e164", "email", "emoji", "extendedDuration", "guid", "hex", "hostname", "html5Email", "idnEmail", "integer", "ipv4", "ipv6", "ksuid", "lowercase", "mac", "md5_base64", "md5_base64url", "md5_hex", "nanoid", "_null", "number", "rfc5322Email", "sha1_base64", "sha1_base64url", "sha1_hex", "sha256_base64", "sha256_base64url", "sha256_hex", "sha384_base64", "sha384_base64url", "sha384_hex", "sha512_base64", "sha512_base64url", "sha512_hex", "string", "time", "ulid", "_undefined", "unicodeEmail", "uppercase", "uuid", "uuid4", "uuid6", "uuid7", "xid", "cuid", "cuid2", "ulid", "xid", "ksuid", "nanoid", "duration", "extendedDuration", "guid", "uuid", "version", "uuid4", "uuid6", "uuid7", "email", "html5Email", "rfc5322Email", "unicodeEmail", "idnEmail", "browserEmail", "_emoji", "emoji", "ipv4", "ipv6", "mac", "delimiter", "escapedDelim", "escapeRegex", "cidrv4", "cidrv6", "base64", "base64url", "hostname", "domain", "e164", "dateSource", "date", "timeSource", "args", "hhmm", "time", "datetime", "opts", "timeRegex", "string", "params", "regex", "bigint", "integer", "number", "boolean", "_null", "_undefined", "lowercase", "uppercase", "hex", "fixedBase64", "bodyLength", "padding", "fixedBase64url", "length", "md5_hex", "md5_base64", "md5_base64url", "sha1_hex", "sha1_base64", "sha1_base64url", "sha256_hex", "sha256_base64", "sha256_base64url", "sha384_hex", "sha384_base64", "sha384_base64url", "sha512_hex", "sha512_base64", "sha512_base64url", "$ZodCheck", "$constructor", "inst", "def", "_a", "numericOriginMap", "$ZodCheckLessThan", "origin", "bag", "curr", "payload", "$ZodCheckGreaterThan", "$ZodCheckMultipleOf", "floatSafeRemainder", "$ZodCheckNumberFormat", "isInt", "minimum", "maximum", "NUMBER_FORMAT_RANGES", "integer", "input", "$ZodCheckBigIntFormat", "BIGINT_FORMAT_RANGES", "$ZodCheckMaxSize", "val", "nullish", "getSizableOrigin", "$ZodCheckMinSize", "$ZodCheckSizeEquals", "size", "tooBig", "$ZodCheckMaxLength", "getLengthableOrigin", "$ZodCheckMinLength", "$ZodCheckLengthEquals", "length", "$ZodCheckStringFormat", "_b", "$ZodCheckRegex", "$ZodCheckLowerCase", "lowercase", "$ZodCheckUpperCase", "uppercase", "$ZodCheckIncludes", "escapedRegex", "escapeRegex", "pattern", "$ZodCheckStartsWith", "$ZodCheckEndsWith", "handleCheckPropertyResult", "result", "property", "prefixIssues", "$ZodCheckProperty", "$ZodCheckMimeType", "mimeSet", "$ZodCheckOverwrite", "Doc", "args", "fn", "arg", "lines", "x", "minIndent", "dedented", "line", "F", "version", "$ZodType", "$constructor", "inst", "def", "_a", "version", "checks", "ch", "fn", "runChecks", "payload", "ctx", "isAborted", "aborted", "asyncResult", "currLen", "_", "$ZodAsyncError", "handleCanaryResult", "canary", "checkResult", "result", "defineLazy", "value", "safeParse", "safeParseAsync", "r", "$ZodString", "string", "$ZodStringFormat", "$ZodCheckStringFormat", "$ZodGUID", "guid", "$ZodUUID", "v", "uuid", "$ZodEmail", "email", "$ZodURL", "trimmed", "url", "$ZodEmoji", "emoji", "$ZodNanoID", "nanoid", "$ZodCUID", "cuid", "$ZodCUID2", "cuid2", "$ZodULID", "ulid", "$ZodXID", "xid", "$ZodKSUID", "ksuid", "$ZodISODateTime", "datetime", "$ZodISODate", "date", "$ZodISOTime", "time", "$ZodISODuration", "duration", "$ZodIPv4", "ipv4", "$ZodIPv6", "ipv6", "$ZodMAC", "mac", "$ZodCIDRv4", "cidrv4", "$ZodCIDRv6", "cidrv6", "parts", "address", "prefix", "prefixNum", "isValidBase64", "data", "$ZodBase64", "base64", "isValidBase64URL", "base64url", "c", "padded", "$ZodBase64URL", "$ZodE164", "e164", "isValidJWT", "token", "algorithm", "tokensParts", "header", "parsedHeader", "$ZodJWT", "$ZodCustomStringFormat", "$ZodNumber", "number", "_ctx", "input", "received", "$ZodNumberFormat", "$ZodCheckNumberFormat", "$ZodBoolean", "boolean", "$ZodBigInt", "bigint", "$ZodBigIntFormat", "$ZodCheckBigIntFormat", "$ZodSymbol", "$ZodUndefined", "_undefined", "$ZodNull", "_null", "$ZodAny", "$ZodUnknown", "$ZodNever", "$ZodVoid", "$ZodDate", "isDate", "handleArrayResult", "final", "index", "prefixIssues", "$ZodArray", "proms", "i", "item", "handlePropertyResult", "key", "isOptionalOut", "normalizeDef", "keys", "k", "okeys", "optionalKeys", "handleCatchall", "unrecognized", "keySet", "_catchall", "t", "$ZodObject", "sh", "newSh", "_normalized", "cached", "shape", "propValues", "field", "isObject", "catchall", "el", "$ZodObjectJIT", "superParse", "generateFastpass", "doc", "Doc", "normalized", "parseStr", "esc", "ids", "counter", "id", "fastpass", "jit", "globalConfig", "fastEnabled", "allowsEval", "handleUnionResults", "results", "nonaborted", "iss", "finalizeIssue", "config", "$ZodUnion", "o", "option", "patterns", "p", "cleanRegex", "single", "first", "async", "handleExclusiveUnionResults", "successes", "$ZodXor", "$ZodDiscriminatedUnion", "_super", "pv", "val", "disc", "opts", "map", "values", "opt", "$ZodIntersection", "left", "right", "handleIntersectionResults", "mergeValues", "a", "b", "isPlainObject", "bKeys", "sharedKeys", "newObj", "sharedValue", "newArray", "itemA", "itemB", "unrecKeys", "unrecIssue", "bothKeys", "f", "merged", "$ZodTuple", "items", "reversedIndex", "optStart", "tooBig", "tooSmall", "handleTupleResult", "rest", "$ZodRecord", "recordKeys", "keyResult", "retryResult", "$ZodMap", "valueResult", "handleMapResult", "propertyKeyTypes", "$ZodSet", "handleSetResult", "$ZodEnum", "getEnumValues", "valuesSet", "escapeRegex", "$ZodLiteral", "$ZodFile", "$ZodTransform", "$ZodEncodeError", "_out", "output", "handleOptionalResult", "$ZodOptional", "pattern", "$ZodExactOptional", "$ZodNullable", "$ZodDefault", "handleDefaultResult", "$ZodPrefault", "$ZodNonOptional", "x", "handleNonOptionalResult", "$ZodSuccess", "$ZodCatch", "$ZodNaN", "$ZodPipe", "handlePipeResult", "next", "$ZodCodec", "handleCodecAResult", "transformed", "handleCodecTxResult", "nextSchema", "$ZodReadonly", "handleReadonlyResult", "$ZodTemplateLiteral", "regexParts", "part", "source", "start", "end", "primitiveTypes", "$ZodFunction", "func", "args", "parsedArgs", "parse", "parseAsync", "F", "$ZodPromise", "inner", "$ZodLazy", "$ZodCustom", "$ZodCheck", "handleRefineResult", "_iss", "issue", "locales_exports", "__export", "ar_default", "az_default", "be_default", "bg_default", "ca_default", "cs_default", "da_default", "de_default", "en_default", "eo_default", "es_default", "fa_default", "fi_default", "fr_default", "fr_CA_default", "he_default", "hu_default", "hy_default", "id_default", "is_default", "it_default", "ja_default", "ka_default", "kh_default", "km_default", "ko_default", "lt_default", "mk_default", "ms_default", "nl_default", "no_default", "ota_default", "pl_default", "ps_default", "pt_default", "ru_default", "sl_default", "sv_default", "ta_default", "th_default", "tr_default", "ua_default", "uk_default", "ur_default", "uz_default", "vi_default", "yo_default", "zh_CN_default", "zh_TW_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "ar_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "az_default", "getBelarusianPlural", "count", "one", "few", "many", "absCount", "lastDigit", "lastTwoDigits", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "maxValue", "unit", "minValue", "_issue", "be_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "invalid_adj", "bg_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "ca_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "cs_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "da_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "de_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "en_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "eo_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "es_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "fa_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "fi_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "fr_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "fr_CA_default", "error", "TypeNames", "Sizable", "typeEntry", "t", "typeLabel", "e", "withDefinite", "verbFor", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expectedKey", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "stringified", "v", "lastValue", "sizing", "subject", "comparison", "verb", "adj", "be", "singularPhrase", "_issue", "nounEntry", "noun", "adjective", "joinValues", "he_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "hu_default", "getArmenianPlural", "count", "one", "many", "withDefiniteArticle", "word", "vowels", "lastChar", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "maxValue", "unit", "minValue", "_issue", "hy_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "id_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "is_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "it_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "ja_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "ka_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "km_default", "kh_default", "km_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "suffix", "sizing", "unit", "_issue", "ko_default", "capitalizeFirstCharacter", "text", "getUnitTypeFromNumber", "number", "abs", "last", "last2", "error", "Sizable", "getSizing", "origin", "unitType", "inclusive", "targetShouldBe", "result", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "sizing", "adj", "_issue", "lt_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "mk_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "ms_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "longName", "shortName", "_issue", "nl_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "no_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "ota_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "ps_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "pl_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "pt_default", "getRussianPlural", "count", "one", "few", "many", "absCount", "lastDigit", "lastTwoDigits", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "maxValue", "unit", "minValue", "_issue", "ru_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "sl_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "sv_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "ta_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "th_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "tr_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "uk_default", "ua_default", "uk_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "ur_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "uz_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "vi_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "zh_CN_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "zh_TW_default", "error", "Sizable", "getSizing", "origin", "FormatDictionary", "TypeDictionary", "issue", "expected", "receivedType", "parsedType", "received", "stringifyPrimitive", "joinValues", "adj", "sizing", "_issue", "yo_default", "_a", "$output", "$input", "$ZodRegistry", "schema", "_meta", "meta", "p", "pm", "f", "registry", "globalRegistry", "_string", "Class", "params", "normalizeParams", "_coercedString", "_email", "_guid", "_uuid", "_uuidv4", "_uuidv6", "_uuidv7", "_url", "_emoji", "_nanoid", "_cuid", "_cuid2", "_ulid", "_xid", "_ksuid", "_ipv4", "_ipv6", "_mac", "_cidrv4", "_cidrv6", "_base64", "_base64url", "_e164", "_jwt", "TimePrecision", "_isoDateTime", "_isoDate", "_isoTime", "_isoDuration", "_number", "_coercedNumber", "_int", "_float32", "_float64", "_int32", "_uint32", "_boolean", "_coercedBoolean", "_bigint", "_coercedBigint", "_int64", "_uint64", "_symbol", "_undefined", "_null", "_any", "_unknown", "_never", "_void", "_date", "_coercedDate", "_nan", "_lt", "value", "$ZodCheckLessThan", "_lte", "_gt", "value", "params", "$ZodCheckGreaterThan", "normalizeParams", "_gte", "_positive", "params", "_gt", "_negative", "_lt", "_nonpositive", "_lte", "_nonnegative", "_gte", "_multipleOf", "value", "$ZodCheckMultipleOf", "normalizeParams", "_maxSize", "maximum", "$ZodCheckMaxSize", "_minSize", "minimum", "$ZodCheckMinSize", "_size", "size", "$ZodCheckSizeEquals", "_maxLength", "$ZodCheckMaxLength", "_minLength", "$ZodCheckMinLength", "_length", "length", "$ZodCheckLengthEquals", "_regex", "pattern", "$ZodCheckRegex", "_lowercase", "$ZodCheckLowerCase", "_uppercase", "$ZodCheckUpperCase", "_includes", "includes", "$ZodCheckIncludes", "_startsWith", "prefix", "$ZodCheckStartsWith", "_endsWith", "suffix", "$ZodCheckEndsWith", "_property", "property", "schema", "$ZodCheckProperty", "_mime", "types", "$ZodCheckMimeType", "_overwrite", "tx", "$ZodCheckOverwrite", "_normalize", "form", "input", "_trim", "_toLowerCase", "_toUpperCase", "_slugify", "slugify", "_array", "Class", "element", "_union", "options", "_xor", "_discriminatedUnion", "discriminator", "_intersection", "left", "right", "_tuple", "items", "_paramsOrRest", "_params", "hasRest", "$ZodType", "rest", "_record", "keyType", "valueType", "_map", "_set", "_enum", "values", "entries", "v", "_nativeEnum", "_literal", "_file", "_transform", "fn", "_optional", "innerType", "_nullable", "_default", "defaultValue", "shallowClone", "_nonoptional", "_success", "_catch", "catchValue", "_pipe", "in_", "out", "_readonly", "_templateLiteral", "parts", "_lazy", "getter", "_promise", "_custom", "norm", "_refine", "_superRefine", "ch", "_check", "payload", "issue", "_issue", "$ZodCheck", "describe", "description", "inst", "existing", "globalRegistry", "meta", "metadata", "_stringbool", "Classes", "truthyArray", "falsyArray", "truthySet", "falsySet", "_Codec", "$ZodCodec", "_Boolean", "$ZodBoolean", "_String", "$ZodString", "stringSchema", "booleanSchema", "codec", "data", "_payload", "_stringFormat", "format", "fnOrRegex", "def", "val", "initializeContext", "params", "target", "globalRegistry", "process", "schema", "ctx", "_params", "_a", "def", "seen", "result", "overrideSchema", "_json", "processor", "parent", "meta", "isTransforming", "extractDefs", "root", "idToSchema", "entry", "id", "existing", "makeURI", "defsSegment", "externalId", "uriGenerator", "defUriPrefix", "defId", "extractToDef", "ref", "key", "ext", "finalize", "flattenRef", "zodSchema", "_cached", "refSeen", "refSchema", "parentSeen", "defs", "finalized", "createStandardJSONSchemaMethod", "_schema", "_ctx", "option", "item", "createToJSONSchemaMethod", "processors", "io", "libraryOptions", "formatMap", "stringProcessor", "schema", "ctx", "_json", "_params", "json", "minimum", "maximum", "format", "patterns", "contentEncoding", "regexes", "regex", "numberProcessor", "multipleOf", "exclusiveMaximum", "exclusiveMinimum", "booleanProcessor", "_schema", "_ctx", "bigintProcessor", "symbolProcessor", "nullProcessor", "undefinedProcessor", "voidProcessor", "neverProcessor", "anyProcessor", "unknownProcessor", "dateProcessor", "enumProcessor", "def", "values", "getEnumValues", "v", "literalProcessor", "vals", "val", "nanProcessor", "templateLiteralProcessor", "pattern", "fileProcessor", "file", "mime", "m", "successProcessor", "customProcessor", "functionProcessor", "transformProcessor", "mapProcessor", "setProcessor", "arrayProcessor", "params", "process", "objectProcessor", "shape", "key", "allKeys", "requiredKeys", "unionProcessor", "isExclusive", "options", "x", "i", "intersectionProcessor", "a", "b", "isSimpleIntersection", "allOf", "tupleProcessor", "prefixPath", "restPath", "prefixItems", "rest", "recordProcessor", "keyType", "valueSchema", "keyValues", "validKeyValues", "nullableProcessor", "inner", "seen", "nonoptionalProcessor", "defaultProcessor", "prefaultProcessor", "catchProcessor", "catchValue", "pipeProcessor", "innerType", "readonlyProcessor", "promiseProcessor", "optionalProcessor", "lazyProcessor", "allProcessors", "toJSONSchema", "input", "registry", "initializeContext", "defs", "entry", "_", "schemas", "external", "extractDefs", "finalize", "defsSegment", "JSONSchemaGenerator", "value", "params", "normalizedTarget", "initializeContext", "allProcessors", "schema", "_params", "process", "extractDefs", "result", "finalize", "_", "plainResult", "json_schema_exports", "schemas_exports", "__export", "ZodAny", "ZodArray", "ZodBase64", "ZodBase64URL", "ZodBigInt", "ZodBigIntFormat", "ZodBoolean", "ZodCIDRv4", "ZodCIDRv6", "ZodCUID", "ZodCUID2", "ZodCatch", "ZodCodec", "ZodCustom", "ZodCustomStringFormat", "ZodDate", "ZodDefault", "ZodDiscriminatedUnion", "ZodE164", "ZodEmail", "ZodEmoji", "ZodEnum", "ZodExactOptional", "ZodFile", "ZodFunction", "ZodGUID", "ZodIPv4", "ZodIPv6", "ZodIntersection", "ZodJWT", "ZodKSUID", "ZodLazy", "ZodLiteral", "ZodMAC", "ZodMap", "ZodNaN", "ZodNanoID", "ZodNever", "ZodNonOptional", "ZodNull", "ZodNullable", "ZodNumber", "ZodNumberFormat", "ZodObject", "ZodOptional", "ZodPipe", "ZodPrefault", "ZodPromise", "ZodReadonly", "ZodRecord", "ZodSet", "ZodString", "ZodStringFormat", "ZodSuccess", "ZodSymbol", "ZodTemplateLiteral", "ZodTransform", "ZodTuple", "ZodType", "ZodULID", "ZodURL", "ZodUUID", "ZodUndefined", "ZodUnion", "ZodUnknown", "ZodVoid", "ZodXID", "ZodXor", "_ZodString", "_default", "_function", "any", "array", "base64", "base64url", "bigint", "boolean", "_catch", "check", "cidrv4", "cidrv6", "codec", "cuid", "cuid2", "custom", "date", "describe", "discriminatedUnion", "e164", "email", "emoji", "_enum", "exactOptional", "file", "float32", "float64", "guid", "hash", "hex", "hostname", "httpUrl", "_instanceof", "int", "int32", "int64", "intersection", "ipv4", "ipv6", "json", "jwt", "keyof", "ksuid", "lazy", "literal", "looseObject", "looseRecord", "mac", "map", "meta", "nan", "nanoid", "nativeEnum", "never", "nonoptional", "_null", "nullable", "nullish", "number", "object", "optional", "partialRecord", "pipe", "prefault", "preprocess", "promise", "readonly", "record", "refine", "set", "strictObject", "string", "stringFormat", "stringbool", "success", "superRefine", "symbol", "templateLiteral", "transform", "tuple", "uint32", "uint64", "ulid", "_undefined", "union", "unknown", "url", "uuid", "uuidv4", "uuidv6", "uuidv7", "_void", "xid", "xor", "checks_exports", "__export", "_endsWith", "_gt", "_gte", "_includes", "_length", "_lowercase", "_lt", "_lte", "_maxLength", "_maxSize", "_mime", "_minLength", "_minSize", "_multipleOf", "_negative", "_nonnegative", "_nonpositive", "_normalize", "_overwrite", "_positive", "_property", "_regex", "_size", "_slugify", "_startsWith", "_toLowerCase", "_toUpperCase", "_trim", "_uppercase", "iso_exports", "__export", "ZodISODate", "ZodISODateTime", "ZodISODuration", "ZodISOTime", "date", "datetime", "duration", "time", "ZodISODateTime", "$constructor", "inst", "def", "$ZodISODateTime", "ZodStringFormat", "datetime", "params", "_isoDateTime", "ZodISODate", "$ZodISODate", "date", "_isoDate", "ZodISOTime", "$ZodISOTime", "time", "_isoTime", "ZodISODuration", "$ZodISODuration", "duration", "_isoDuration", "initializer", "inst", "issues", "$ZodError", "mapper", "formatError", "flattenError", "issue", "jsonStringifyReplacer", "ZodError", "$constructor", "ZodRealError", "parse", "_parse", "ZodRealError", "parseAsync", "_parseAsync", "safeParse", "_safeParse", "safeParseAsync", "_safeParseAsync", "encode", "_encode", "decode", "_decode", "encodeAsync", "_encodeAsync", "decodeAsync", "_decodeAsync", "safeEncode", "_safeEncode", "safeDecode", "_safeDecode", "safeEncodeAsync", "_safeEncodeAsync", "safeDecodeAsync", "_safeDecodeAsync", "ZodType", "$constructor", "inst", "def", "$ZodType", "createStandardJSONSchemaMethod", "createToJSONSchemaMethod", "checks", "util_exports", "ch", "params", "clone", "reg", "meta", "data", "parse", "safeParse", "parseAsync", "safeParseAsync", "encode", "decode", "encodeAsync", "decodeAsync", "safeEncode", "safeDecode", "safeEncodeAsync", "safeDecodeAsync", "check", "refine", "refinement", "superRefine", "fn", "_overwrite", "optional", "exactOptional", "nullable", "nonoptional", "array", "arg", "union", "intersection", "tx", "pipe", "transform", "_default", "prefault", "_catch", "target", "readonly", "description", "cl", "globalRegistry", "args", "_ZodString", "$ZodString", "ctx", "json", "stringProcessor", "bag", "_regex", "_includes", "_startsWith", "_endsWith", "_minLength", "_maxLength", "_length", "_lowercase", "_uppercase", "_trim", "_normalize", "_toLowerCase", "_toUpperCase", "_slugify", "ZodString", "_email", "ZodEmail", "_url", "ZodURL", "_jwt", "ZodJWT", "_emoji", "ZodEmoji", "_guid", "ZodGUID", "_uuid", "ZodUUID", "_uuidv4", "_uuidv6", "_uuidv7", "_nanoid", "ZodNanoID", "_cuid", "ZodCUID", "_cuid2", "ZodCUID2", "_ulid", "ZodULID", "_base64", "ZodBase64", "_base64url", "ZodBase64URL", "_xid", "ZodXID", "_ksuid", "ZodKSUID", "_ipv4", "ZodIPv4", "_ipv6", "ZodIPv6", "_cidrv4", "ZodCIDRv4", "_cidrv6", "ZodCIDRv6", "_e164", "ZodE164", "datetime", "date", "time", "duration", "string", "_string", "ZodStringFormat", "$ZodStringFormat", "$ZodEmail", "email", "$ZodGUID", "guid", "$ZodUUID", "uuid", "uuidv4", "uuidv6", "uuidv7", "$ZodURL", "url", "httpUrl", "regexes_exports", "$ZodEmoji", "emoji", "$ZodNanoID", "nanoid", "$ZodCUID", "cuid", "$ZodCUID2", "cuid2", "$ZodULID", "ulid", "$ZodXID", "xid", "$ZodKSUID", "ksuid", "$ZodIPv4", "ipv4", "ZodMAC", "$ZodMAC", "mac", "_mac", "$ZodIPv6", "ipv6", "$ZodCIDRv4", "cidrv4", "$ZodCIDRv6", "cidrv6", "$ZodBase64", "base64", "$ZodBase64URL", "base64url", "$ZodE164", "e164", "$ZodJWT", "jwt", "ZodCustomStringFormat", "$ZodCustomStringFormat", "stringFormat", "format", "fnOrRegex", "_params", "_stringFormat", "hostname", "hex", "hash", "alg", "enc", "regex", "ZodNumber", "$ZodNumber", "numberProcessor", "value", "_gt", "_gte", "_lt", "_lte", "int", "_multipleOf", "number", "_number", "ZodNumberFormat", "$ZodNumberFormat", "_int", "float32", "_float32", "float64", "_float64", "int32", "_int32", "uint32", "_uint32", "ZodBoolean", "$ZodBoolean", "booleanProcessor", "boolean", "_boolean", "ZodBigInt", "$ZodBigInt", "bigintProcessor", "bigint", "_bigint", "ZodBigIntFormat", "$ZodBigIntFormat", "int64", "_int64", "uint64", "_uint64", "ZodSymbol", "$ZodSymbol", "symbolProcessor", "symbol", "_symbol", "ZodUndefined", "$ZodUndefined", "undefinedProcessor", "_undefined", "ZodNull", "$constructor", "inst", "def", "$ZodNull", "ZodType", "ctx", "json", "params", "nullProcessor", "_null", "ZodAny", "$constructor", "inst", "def", "$ZodAny", "ZodType", "ctx", "json", "params", "anyProcessor", "any", "_any", "ZodUnknown", "$ZodUnknown", "unknownProcessor", "unknown", "_unknown", "ZodNever", "$ZodNever", "neverProcessor", "never", "_never", "ZodVoid", "$ZodVoid", "voidProcessor", "_void", "ZodDate", "$constructor", "inst", "def", "$ZodDate", "ZodType", "ctx", "json", "params", "dateProcessor", "value", "_gte", "_lte", "c", "date", "_date", "ZodArray", "$ZodArray", "arrayProcessor", "minLength", "_minLength", "maxLength", "_maxLength", "len", "_length", "array", "element", "_array", "keyof", "schema", "shape", "_enum", "ZodObject", "$ZodObjectJIT", "objectProcessor", "util_exports", "catchall", "unknown", "never", "incoming", "other", "mask", "args", "ZodOptional", "ZodNonOptional", "object", "strictObject", "looseObject", "ZodUnion", "$ZodUnion", "unionProcessor", "union", "options", "ZodXor", "$ZodXor", "xor", "ZodDiscriminatedUnion", "$ZodDiscriminatedUnion", "discriminatedUnion", "discriminator", "ZodIntersection", "$ZodIntersection", "intersectionProcessor", "intersection", "left", "right", "ZodTuple", "$ZodTuple", "tupleProcessor", "rest", "tuple", "items", "_paramsOrRest", "_params", "hasRest", "$ZodType", "ZodRecord", "$ZodRecord", "recordProcessor", "record", "keyType", "valueType", "partialRecord", "k", "clone", "looseRecord", "ZodMap", "$ZodMap", "mapProcessor", "_minSize", "_maxSize", "_size", "map", "ZodSet", "$ZodSet", "setProcessor", "set", "ZodEnum", "$ZodEnum", "enumProcessor", "keys", "values", "newEntries", "entries", "v", "nativeEnum", "entries", "params", "ZodEnum", "util_exports", "ZodLiteral", "$constructor", "inst", "def", "$ZodLiteral", "ZodType", "ctx", "json", "literalProcessor", "literal", "value", "ZodFile", "$ZodFile", "fileProcessor", "size", "_minSize", "_maxSize", "types", "_mime", "file", "_file", "ZodTransform", "$ZodTransform", "transformProcessor", "payload", "_ctx", "$ZodEncodeError", "issue", "_issue", "output", "transform", "fn", "ZodOptional", "$ZodOptional", "optionalProcessor", "optional", "innerType", "ZodExactOptional", "$ZodExactOptional", "exactOptional", "ZodNullable", "$ZodNullable", "nullableProcessor", "nullable", "nullish", "ZodDefault", "$ZodDefault", "defaultProcessor", "_default", "defaultValue", "ZodPrefault", "$ZodPrefault", "prefaultProcessor", "prefault", "ZodNonOptional", "$ZodNonOptional", "nonoptionalProcessor", "nonoptional", "ZodSuccess", "$ZodSuccess", "successProcessor", "success", "ZodCatch", "$ZodCatch", "catchProcessor", "_catch", "catchValue", "ZodNaN", "$constructor", "inst", "def", "$ZodNaN", "ZodType", "ctx", "json", "params", "nanProcessor", "nan", "_nan", "ZodPipe", "$ZodPipe", "pipeProcessor", "pipe", "in_", "out", "ZodCodec", "$ZodCodec", "codec", "ZodReadonly", "$ZodReadonly", "readonlyProcessor", "readonly", "innerType", "ZodTemplateLiteral", "$ZodTemplateLiteral", "templateLiteralProcessor", "templateLiteral", "parts", "util_exports", "ZodLazy", "$ZodLazy", "lazyProcessor", "lazy", "getter", "ZodPromise", "$ZodPromise", "promiseProcessor", "promise", "ZodFunction", "$ZodFunction", "functionProcessor", "_function", "tuple", "array", "unknown", "ZodCustom", "$constructor", "inst", "def", "$ZodCustom", "ZodType", "ctx", "json", "params", "customProcessor", "check", "fn", "ch", "$ZodCheck", "custom", "_params", "_custom", "refine", "_refine", "superRefine", "_superRefine", "describe", "meta", "_instanceof", "cls", "data", "util_exports", "payload", "stringbool", "args", "_stringbool", "ZodCodec", "ZodBoolean", "ZodString", "json", "params", "jsonSchema", "lazy", "union", "string", "number", "boolean", "_null", "array", "record", "preprocess", "fn", "schema", "pipe", "transform", "ZodIssueCode", "setErrorMap", "map", "config", "getErrorMap", "ZodFirstPartyTypeKind", "z", "schemas_exports", "checks_exports", "iso_exports", "RECOGNIZED_KEYS", "detectVersion", "schema", "defaultTarget", "$schema", "resolveRef", "ref", "ctx", "path", "defsKey", "key", "convertBaseSchema", "refPath", "resolved", "zodSchema", "convertSchema", "enumValues", "v", "literalSchemas", "type", "typeSchemas", "t", "typeSchema", "stringSchema", "format", "numberSchema", "shape", "properties", "requiredSet", "propSchema", "propZodSchema", "keySchema", "valueSchema", "objectSchema", "recordSchema", "patternProps", "patternKeys", "looseRecords", "pattern", "patternValue", "schemasToIntersect", "result", "i", "prefixItems", "items", "tupleItems", "item", "rest", "element", "arraySchema", "baseSchema", "hasExplicitType", "options", "s", "anyOfUnion", "oneOfUnion", "startIdx", "extraMeta", "coreMetadataKeys", "contentMetadataKeys", "fromJSONSchema", "params", "version", "defs", "globalRegistry", "coerce_exports", "__export", "bigint", "boolean", "date", "number", "string", "string", "params", "_coercedString", "ZodString", "number", "_coercedNumber", "ZodNumber", "boolean", "_coercedBoolean", "ZodBoolean", "bigint", "_coercedBigint", "ZodBigInt", "date", "_coercedDate", "ZodDate", "config", "en_default", "classic_default", "external_exports", "v4_default", "classic_default", "Z2", "v4_exports", "halfWidth", "fullWidth", "stackLayout", "IdString", "_IdString", "val", "value", "stringLikeFieldShape", "v4_exports", "fieldTypeZodShapes", "fieldTypeCreateFactories", "writableRoutingDescription", "tabs", "KeyFields", "getTab", "tabId", "getAllTabs", "getSectionHeading", "section", "mode", "is", "a", "b", "mapGetInit", "map", "key", "init", "val", "renderFieldEditor", "ctx", "fieldTypeRenderEditors", "renderFieldSidebar", "fieldTypeRenderSidebars", "getPermissionLevelsForField", "fieldKey", "formatPermissionLevel", "level", "buildEffectivePrefixObject", "writablePrefixBags", "result", "list", "row", "prefix", "bagName", "a", "b", "getLookupOptions", "itemsByTab", "item", "formatFieldValue", "value", "IdString", "renderSearchableInput", "id", "currentValue", "placeholder", "options", "onInput", "disabled", "datalistId", "jsxs", "Fragment", "jsx", "element", "event", "option", "renderTextInputField", "type", "field", "inputId", "onDraftChange", "renderCalloutField", "renderTextareaField", "rows", "extraClass", "className", "renderSelectField", "renderSwitchField", "headerSwitch", "checked", "renderActivityFeedField", "lines", "line", "renderMetadataTableField", "key", "rest", "renderTableField", "renderLinesList", "missingCheck", "missing", "textWithSlashes", "MaterialSymbol", "warning_default", "renderPreField", "renderConfirmPasswordFieldEditor", "fieldState", "onTriggerOperation", "confirmationValue", "hasConfirmation", "hasMismatch", "renderSearchMultiselectFieldSidebar", "entry", "renderSearchMultiselectFieldEditor", "onPendingRowsChange", "editableLines", "pendingRowCount", "lookupOptions", "itemLabel", "templateRecord", "is", "findTemplateRecordForWikiRecord", "templateReadonlyBagLines", "templatePluginLines", "templateCorePluginsEnabled", "updateLineValueAt", "index", "nextValue", "hadStoredRow", "count", "removeLineValueAt", "displayedLines", "bag", "plugin", "renderPermissionTableFieldViewer", "permissionRows", "renderPermissionTableFieldEditor", "onTransientPermissionRowsChange", "availableLevels", "transientPermissionRows", "displayedPermissionRows", "persistPermissionRows", "persistedRows", "nextTransientRows", "permissionRowsCodec", "nextRows", "defaultPrefixPill", "hasPrefixTrimMismatch", "renderPrefixMappingRows", "displayedMappingRows", "renderPrefixTableFieldSidebar", "renderPrefixTableFieldEditor", "forDisplay", "mappingRows", "inheritedRoutingRows", "renderAutocompleteFieldSidebar", "renderAutocompleteFieldEditor", "optionMap", "name", "computeResolverPreview", "draft", "title", "normalizedTitle", "targets", "writeTarget", "target", "renderResolverPreviewFieldEditor", "onResolverTitleChange", "preview", "renderValueListFieldSidebar", "lineListCodec", "LineListCodec", "PermissionRowsCodec", "jsonReviver", "jsonReviver", "key", "val", "IdString", "InMemoryAdminStorage", "deriveItems", "data", "ms", "resolve", "tabId", "id", "record", "prunedRecord", "response", "text", "storedRecord", "index", "item", "storedFields", "getTab", "field", "isServerField", "pruned", "value", "getAdminRecordValue", "setAdminRecordValue", "createDraft", "tab", "source", "draft", "fieldTypeCreateFactories", "draft2", "findTemplateRecordForWikiRecord", "itemsByTab", "template", "summarizePermissionRoles", "row", "deriveBagRecords", "items", "templates", "wikis", "templateReadonlyUsage", "wikiReadonlyUsage", "wikiWritableUsage", "wikiDefaultUsage", "addUsage", "map", "bagName", "recordName", "mapGetInit", "templateName", "wiki", "wikiName", "templateRecord", "uniqueLines", "e", "prefixRows", "defaultBag", "bag", "name", "referencedByTemplates", "referencedByWikis", "writableByWikis", "defaultByWikis", "routingRoles", "allUsingWikis", "buildEffectiveBagStack", "templateReadonlyBags", "wikiReadonlyBags", "defaultTargets", "prefixedTargets", "buildEffectivePluginSet", "previousEffectivePlugins", "templatePlugins", "wikiPlugins", "corePluginsEnabled", "authoredPlugins", "runtimeManagedPlugins", "plugin", "corePlugins", "requiredPlugins", "syncWikiRecord", "mergedReadonlyBags", "mergedPlugins", "writablePrefixBags", "defaultWritableBag", "prefixRuleCount", "missingBags", "missingPlugins", "pluginName", "hasMissingDependencies", "missingMessages", "compileValidation", "statusFlags", "lineListCodec", "dependentWikiMap", "dependentWikis", "readonlyBags", "users", "getEmptyItems", "adminStorage", "LOGIN_FAILED", "sessionRequest", "sessionManager", "key", "path", "t", "data", "req", "arrayBufferToBase64_viaBlob", "buffer", "resolve", "reject", "blob", "reader", "parts", "generateSessionSignature", "sessionKey", "session_id", "hash", "changeExistingPasswordWithPassword", "username", "password", "newPassword", "user_id", "session_id", "sessionKey", "opaque", "loginWithOpaque", "clientRegistrationState", "registrationRequest", "signature", "generateSessionSignature", "registrationResponse", "sessionRequest", "registrationRecord", "changeExistingPasswordWithCode", "resetCode", "setCookie", "clientLoginState", "startLoginRequest", "loginResponse", "loginSession", "loginResult", "LOGIN_FAILED", "finishLoginRequest", "exportKey", "serverStaticPublicKey", "logout", "serverAcceptResetCode", "emailOrUsername", "isServerField", "mode", "isAuthoredField", "isEditable", "field", "t", "getPrimaryValue", "tab", "item", "primary", "formatFieldValue", "getAdminRecordValue", "getCreateLabel", "getFieldSection", "getSectionFields", "section", "getSidebarFields", "keys", "e", "getFieldGroups", "fields", "fallback", "configuredGroups", "group", "key", "uniqueLines", "values", "value", "getErrorMessage", "error", "formatStorageErrorForDisplay", "storageError", "parsed", "hasReason", "hasStatus", "prettyText", "PerTabStoreImpl", "storage", "deps", "getTab", "modalState", "tabId", "draft", "recordId", "emptyDraft", "fieldKey", "KeyFields", "nextDraft", "updater", "nextCount", "rows", "message", "snapshot", "savedTabItems", "currentModalState", "source", "createDraft", "saved", "loading", "patch", "AppStore", "host", "itemsByTab", "getEmptyItems", "loadedItems", "_props_dec", "_a", "_FieldBlockElement_decorators", "_init", "_props", "FieldBlockElement", "JSXElement", "r", "__publicField", "__privateAdd", "__runInitializers", "useCardTitle", "savedValue", "store", "fieldState", "modalMode", "editable", "disabled", "isToggle", "children", "jsx", "Fragment", "renderFieldEditor", "jsxs", "__decoratorStart", "__decorateElement", "setAdminRecordValue", "init", "sidebarSection", "title", "content", "jsxs", "jsx", "_props_dec", "_a", "_RecordModalElement_decorators", "_init", "_props", "t", "RecordModalElement", "JSXElement", "r", "__publicField", "__privateAdd", "__runInitializers", "store", "selectedTab", "fieldState", "itemsByTab", "storageError", "isModalLoading", "isSaving", "isOpeningItem", "onClose", "onSave", "onDraftChange", "onClearStorageError", "recordTitle", "getPrimaryValue", "headerCopy", "authoredFields", "getSectionFields", "runtimeFields", "operationFields", "sidebarFields", "getSidebarFields", "event", "textWithSlashes", "MaterialSymbol", "close_default", "field", "renderFieldSidebar", "getAdminRecordValue", "section", "fields", "heading", "getSectionHeading", "getFieldGroups", "group", "groupFields", "key", "headerField", "groupDisabled", "headerDescription", "footerDescription", "renderSwitchField", "FieldBlockElement", "__decoratorStart", "__decorateElement", "_mainStorageError_dec", "_App_decorators", "_mainStorageError", "addstyles", "app_inline_default", "App", "AppStore", "adminStorage", "accountMenu", "target", "reload", "error", "formatStorageErrorForDisplay", "getErrorMessage", "tabId", "activeTab", "isLoadingData", "perTabStore", "currentTab", "activeTabItems", "isListInteractionDisabled", "mainStorageError", "account_circle_default", "logout", "getAllTabs", "tab", "getCreateLabel", "column", "item", "value", "linkUrl", "getListColumnLink", "renderListCellValue", "columnKey", "formattedValue", "formatFieldValue", "warning_default", "mapper", "getListColumnLinkMappers", "requestUpdate", "target", "context", "kind", "value", "v", "_transientPermissionRows_dec", "_pendingRows_dec", "_operationMessages_dec", "_submitMessage_dec", "_isSubmitting_dec", "_init", "_isSubmitting", "_submitMessage", "_operationMessages", "_pendingRows", "_transientPermissionRows", "requestUpdate", "FomController", "context", "__publicField", "getEmptyItems", "__privateAdd", "__runInitializers", "fieldKey", "value", "updater", "rows", "message", "failed", "cb", "error", "se", "k", "v", "field", "inputId", "jsxs", "jsx", "renderFieldEditor", "title", "copy", "submitDisabled", "submitAction", "submitLabel", "isStart", "handleBackClick", "backLabel", "content", "e", "__decoratorStart", "__decorateElement", "__decoratorMetadata", "renderCallout", "content", "jsx", "_submitMessage_dec", "_serverState_dec", "_rememberMe_dec", "_isResolvingServerState_dec", "_isSubmitting_dec", "_mode_dec", "_draft_dec", "_a", "_LoginForm_decorators", "_init", "_draft", "_mode", "_isSubmitting", "_isResolvingServerState", "_rememberMe", "_serverState", "_submitMessage", "addstyles", "app_inline_default", "t", "LoginForm", "JSXElement", "r", "__publicField", "FomController", "args", "__privateAdd", "__runInitializers", "newPassword", "confirmNewPassword", "serverState", "clientState", "loginWithOpaque", "user_id", "username", "serverAcceptResetCode", "IdString", "changeExistingPasswordWithCode", "isLoginPageBusy", "jsxs", "Fragment", "field", "element", "event", "isForgotPasswordEmailEnabled", "isSubmitDisabled", "adminCode", "resetCodeActionDisabled", "updatePasswordActionDisabled", "__decoratorStart", "__decorateElement", "profileFields", "updatePasswordFields", "_submitMessage_dec", "_isSubmitting_dec", "_mode_dec", "_draft_dec", "_props_dec", "_a", "_ProfileForm_decorators", "_init", "_props", "_draft", "_mode", "_isSubmitting", "_submitMessage", "addstyles", "app_inline_default", "t", "ProfileForm", "JSXElement", "r", "__publicField", "FomController", "args", "__privateAdd", "__runInitializers", "newPassword", "confirmNewPassword", "clientState", "changeExistingPasswordWithPassword", "IdString", "jsx", "Fragment", "profileFields", "field", "updatePasswordActionDisabled", "updatePasswordFields", "__decoratorStart", "__decorateElement", "e", "isInStandaloneMode", "setup", "LoginForm", "ProfileForm", "App"]
|
|
7
|
+
}
|