0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],o=3;o b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nfunction prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nfunction segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nfunction rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nfunction rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n\nvar customHistory = null;\n\nvar ROUTERS = [];\n\nvar subscribers = [];\n\nvar EMPTY = {};\n\nfunction setUrl(url, type) {\n\tif ( type === void 0 ) type='push';\n\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tvar url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn (\"\" + (url.pathname || '') + (url.search || ''));\n}\n\n\n\nfunction route(url, replace) {\n\tif ( replace === void 0 ) replace=false;\n\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (var i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) { return true; }\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tvar didRoute = false;\n\tfor (var i=0; i 0;\n\t};\n\n\t/** Re-render children with a new URL to match against. */\n\tRouter.prototype.routeTo = function routeTo (url) {\n\t\tthis.setState({ url: url });\n\n\t\tvar didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) { this.forceUpdate(); }\n\n\t\treturn didRoute;\n\t};\n\n\tRouter.prototype.componentWillMount = function componentWillMount () {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidMount = function componentDidMount () {\n\t\tvar this$1 = this;\n\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen(function (location) {\n\t\t\t\tthis$1.routeTo((\"\" + (location.pathname || '') + (location.search || '')));\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.componentWillUnmount = function componentWillUnmount () {\n\t\tif (typeof this.unlisten==='function') { this.unlisten(); }\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t};\n\n\tRouter.prototype.componentWillUpdate = function componentWillUpdate () {\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidUpdate = function componentDidUpdate () {\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.getMatchingChildren = function getMatchingChildren (children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( function (vnode) {\n\t\t\t\tvar matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tvar newProps = { url: url, matches: matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t};\n\n\tRouter.prototype.render = function render (ref, ref$1) {\n\t\tvar children = ref.children;\n\t\tvar onChange = ref.onChange;\n\t\tvar url = ref$1.url;\n\n\t\tvar active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tvar current = active[0] || null;\n\n\t\tvar previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl: url,\n\t\t\t\t\tprevious: previous,\n\t\t\t\t\tactive: active,\n\t\t\t\t\tcurrent: current\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t};\n\n\treturn Router;\n}(Component));\n\nvar Link = function (props) { return (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n); };\n\nvar Route = function (props) { return createElement(props.component, props); };\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };export default Router;\n//# sourceMappingURL=preact-router.es.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelPath = exports.Path = exports.relativePath = void 0;\r\nfunction relativePath(start, relativePath) {\r\n return relativePath.reduce((path, e) => {\r\n if (e === 'pop') {\r\n return path.pop();\r\n }\r\n else {\r\n return path.push(e.push);\r\n }\r\n }, start);\r\n}\r\nexports.relativePath = relativePath;\r\n/**\r\n * Immutable helper class to represent a path in data\r\n */\r\nclass Path {\r\n /**\r\n * @param modelArr Initial array of path model elements. Empty if not given\r\n * @param contextArr Initial array of path context elements. Empty if not given\r\n */\r\n constructor(modelArr, contextArr) {\r\n this.modelArr = modelArr !== null && modelArr !== void 0 ? modelArr : [];\r\n this.contextArr = contextArr !== null && contextArr !== void 0 ? contextArr : [];\r\n }\r\n /**\r\n * The last model element of this path\r\n */\r\n last() {\r\n return this.modelArr[this.modelArr.length - 1];\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new Path(this.modelArr.slice(start, end), this.contextArr);\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new Path(this.modelArr.slice(1), this.contextArr);\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new Path(this.modelArr.slice(0, -1), this.contextArr);\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new Path([...this.modelArr, element], [...this.contextArr]);\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n if (typeof element === 'number')\r\n return this.copy();\r\n const newElement = element.startsWith('minecraft:') ? element.slice(10) : element;\r\n return new Path([...this.modelArr], [...this.contextArr, newElement]);\r\n }\r\n copy() {\r\n return new Path([...this.modelArr], [...this.contextArr]);\r\n }\r\n getArray() {\r\n return this.modelArr;\r\n }\r\n /**\r\n * Attaches a model to this path and all paths created from this\r\n * @param model\r\n */\r\n withModel(model) {\r\n return new ModelPath(model, this);\r\n }\r\n getContext() {\r\n return this.contextArr;\r\n }\r\n /**\r\n * Checks path equality\r\n * @param other path to compare\r\n */\r\n equals(other) {\r\n return other.modelArr.length === this.modelArr.length\r\n && other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path starts with another path\r\n * @param other path that this path should start with\r\n */\r\n startsWith(other) {\r\n if (this.modelArr.length < other.modelArr.length)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path ends with another path\r\n * @param other parent path where this path should end with\r\n */\r\n endsWith(other) {\r\n const offset = this.modelArr.length - other.modelArr.length;\r\n if (offset < 0)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[offset + i]);\r\n }\r\n toString() {\r\n return this.modelArr\r\n .map(e => (typeof e === 'string') ? `.${e}` : `[${e}]`)\r\n .join('')\r\n .replace(/^\\./, '');\r\n }\r\n forEach(fn, thisArg) {\r\n return this.modelArr.forEach(fn, thisArg);\r\n }\r\n}\r\nexports.Path = Path;\r\nclass ModelPath extends Path {\r\n constructor(model, path) {\r\n super(path === null || path === void 0 ? void 0 : path.modelArr, path === null || path === void 0 ? void 0 : path.contextArr);\r\n this.model = model;\r\n }\r\n getModel() {\r\n return this.model;\r\n }\r\n /**\r\n * Gets the data from the model if it was attached\r\n * @returns undefined, if no model was attached\r\n */\r\n get() {\r\n var _a;\r\n return (_a = this.model) === null || _a === void 0 ? void 0 : _a.get(this);\r\n }\r\n /**\r\n * Sets the value to the model if it was attached\r\n */\r\n set(value) {\r\n var _a;\r\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.set(this, value);\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new ModelPath(this.model, super.slice(start, end));\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new ModelPath(this.model, super.shift());\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new ModelPath(this.model, super.pop());\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new ModelPath(this.model, super.modelPush(element));\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n return new ModelPath(this.model, super.contextPush(element));\r\n }\r\n copy() {\r\n return new ModelPath(this.model, super.copy());\r\n }\r\n}\r\nexports.ModelPath = ModelPath;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Errors = void 0;\r\n/**\r\n * Collects errors from data paths\r\n */\r\nclass Errors {\r\n constructor() {\r\n this.errors = [];\r\n }\r\n add(path, error, ...params) {\r\n this.errors.push({ path, error, params });\r\n return false;\r\n }\r\n get(path, exact = false) {\r\n return exact ? this.errors.filter(e => e.path.equals(path))\r\n : this.errors.filter(e => e.path.startsWith(path));\r\n }\r\n getAll() {\r\n return this.errors;\r\n }\r\n clear() {\r\n this.errors = [];\r\n }\r\n count() {\r\n return this.errors.length;\r\n }\r\n *[Symbol.iterator]() {\r\n for (const e of this.errors) {\r\n yield e;\r\n }\r\n }\r\n}\r\nexports.Errors = Errors;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hexId = exports.quoteString = exports.escapeString = void 0;\r\nfunction escapeString(str) {\r\n return str.replace(/(\\\\|\")/g, '\\\\$1');\r\n}\r\nexports.escapeString = escapeString;\r\nfunction quoteString(str) {\r\n return `\"${escapeString(str)}\"`;\r\n}\r\nexports.quoteString = quoteString;\r\nconst dec2hex = (dec) => ('0' + dec.toString(16)).substr(-2);\r\nfunction hexId(length = 12) {\r\n var arr = new Uint8Array(length / 2);\r\n window.crypto.getRandomValues(arr);\r\n return Array.from(arr, dec2hex).join('');\r\n}\r\nexports.hexId = hexId;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\nconst utils_1 = require(\"../utils\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a, _b, _c, _d;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n this.verbose = (_b = options === null || options === void 0 ? void 0 : options.verbose) !== null && _b !== void 0 ? _b : false;\r\n this.wrapLists = (_c = options === null || options === void 0 ? void 0 : options.wrapLists) !== null && _c !== void 0 ? _c : false;\r\n this.schema = schema;\r\n const data = (_d = options === null || options === void 0 ? void 0 : options.initialData) !== null && _d !== void 0 ? _d : schema.default();\r\n this.data = this.wrapLists ? DataModel.wrapLists(data) : data;\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n if (this.wrapLists && typeof e === 'number') {\r\n node[e] = { node: {}, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[e] = {};\r\n }\r\n }\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n if (node === null)\r\n return;\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else if (this.wrapLists && typeof path.last() === 'number') {\r\n node[path.last()] = { node: value, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n if (this.verbose) {\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n }\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose, wrapLists: this.wrapLists })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n static wrapLists(value) {\r\n if (Array.isArray(value)) {\r\n return value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: utils_1.hexId(),\r\n }));\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.wrapLists(v);\r\n });\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n static unwrapLists(value) {\r\n if (Array.isArray(value)) {\r\n return value.map(v => this.unwrapLists(v.node));\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.unwrapLists(v);\r\n });\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n return value.map((obj, index) => {\r\n const newObj = children.validate(path.push(index), options.wrapLists ? obj.node : obj, errors, options);\r\n return options.wrapLists ? { node: newObj, id: obj.id } : newObj;\r\n });\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwitchNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.SwitchNode = (cases) => {\r\n return {\r\n ...Node_1.Base,\r\n type(path) {\r\n return this.activeCase(path, true)\r\n .node.type(path);\r\n },\r\n category(path) {\r\n return this.activeCase(path, true)\r\n .node.category(path);\r\n },\r\n default: () => cases[0].node.default(),\r\n navigate(path, index) {\r\n var _a;\r\n const nextIndex = index + 1;\r\n return (_a = this.activeCase(path.slice(0, nextIndex))) === null || _a === void 0 ? void 0 : _a.node.navigate(path, index);\r\n },\r\n pathPush(path, key) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.pathPush(path, key)) !== null && _b !== void 0 ? _b : path;\r\n },\r\n suggest(path, value) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.suggest(path, value)) !== null && _b !== void 0 ? _b : cases\r\n .filter(c => c.match(path))\r\n .map(c => c.node.suggest(path, value))\r\n .reduce((p, c) => p.concat(c));\r\n },\r\n validate(path, value, errors, options) {\r\n let c = this.activeCase(path);\r\n if (c === undefined) {\r\n return value;\r\n }\r\n return c.node.validate(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.validationOption(path);\r\n },\r\n activeCase(path, fallback) {\r\n const sorter = (a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); };\r\n const matchedCases = cases.filter(c => c.match(path)).sort(sorter);\r\n if (fallback && matchedCases.length === 0) {\r\n return cases.sort(sorter)[0];\r\n }\r\n return (matchedCases.length > 0 ? matchedCases[0] : undefined);\r\n },\r\n hook(hook, path, ...args) {\r\n return this.activeCase(path, true)\r\n .node.hook(hook, path, ...args);\r\n },\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberEnum = exports.NumberNode = void 0;\r\nconst __1 = require(\"..\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.NumberEnum = ({ integer, values }) => __1.Mod(exports.NumberNode({ integer }), node => ({\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if (!values.includes(value)) {\r\n errors.add(path, 'error.invalid_number_enum', values.join(', '));\r\n }\r\n return value;\r\n }\r\n}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'object' || value === null) {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n let res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n delete res[k];\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, config: config !== null && config !== void 0 ? config : {}, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = isEnum(config)\r\n ? ((typeof config.enum === 'string')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : []; }\r\n : () => config.enum)\r\n : (((config === null || config === void 0 ? void 0 : config.validator) === 'resource')\r\n ? ((typeof config.params.pool === 'string')\r\n ? (config.params.pool.startsWith('$')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool.slice(1))) !== null && _a !== void 0 ? _a : []; }\r\n : () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool)) !== null && _a !== void 0 ? _a : []; })\r\n : () => config.params.pool)\r\n : () => []);\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value[0] === '#'\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n (config.params.allowTag && value[0] === '#') ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","\n/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","import t from\"pako\";import e from\"md5\";import{vec3 as i,mat4 as s,glMatrix as n}from\"gl-matrix\";var r;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(r||(r={}));const o={[r.UP]:[0,1,0],[r.DOWN]:[0,-1,0],[r.NORTH]:[0,0,-1],[r.EAST]:[1,0,0],[r.SOUTH]:[0,0,1],[r.WEST]:[-1,0,0]};var a;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return o[t]}}(r||(r={})),function(t){t.create=function(t,e,i){return[t,e,i]},t.offset=function(t,e,i,s){return[t[0]+e,t[1]+i,t[2]+s]},t.towards=function(e,i){return t.offset(e,...r.normal(i))}}(a||(a={}));const l={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},h=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class u{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const i=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,i}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let i=0;i=e)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=s,this.dataView=new DataView(s),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,i){this.accommodate(e),this.dataView[t](this.offset,i,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),s.push(128|63&i)):i<65536?(s.push(224|i>>12),s.push(128|i>>6&63),s.push(128|63&i)):(s.push(240|i>>18&7),s.push(128|i>>12&63),s.push(128|i>>6&63),s.push(128|63&i));return s}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(l[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(t+1,65535&n),s.setInt8(t+3,r),s.setInt32(t+4096,e.timestamp);const o=4096*n;s.setInt32(o,e.data.length+1),s.setInt8(o+4,e.compression),i.set(e.data,o+5),n+=r}return i}function y(t,e,i,s){const n=x(t,e,i);switch(n.compression){case 1:n.data=b(s);break;case 2:n.data=b(s,!1,!0);break;case 3:n.data=v(s);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function x(t,e,i){const s=t.find((t=>t.x===e&&t.z===i));if(void 0===s)throw new Error(`Cannot find chunk [${e}, ${i}]`);return s}function S(t,e,i){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==i)throw new Error(`Expected ${e} to be of type ${i}, but found ${t[e].type}`);return t[e].value}function B(t,e,i,s){const n=S(t,e,\"list\");if(n.type!==i)throw new Error(`Expected ${e} to be a list of ${i}s, but found ${n.type}s`);if(s&&n.value.length!==s)throw new Error(`Expected ${e} to be a list of length ${s}, but found length ${n.value.length}`);return n.value}function I(t,e){try{return t()}catch(t){return e}}var P,E,A,C,R;!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,i){var s;const n=null!==(s=e(t))&&void 0!==s?s:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,i(e)])))},t.compose=function(t,e,i){const s=e(t);return s?i(s):void 0}}(P||(P={}));class N{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return\"minecraft:water\"===this.name||\"minecraft:lava\"===this.name}equals(t){return this.name===t.name&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=S(t.value,\"Name\",\"string\"),i=I((()=>S(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:S(i,e,\"string\")})),{});return new N(e,s)}static fromJson(t){var e,i;const s=null!==(e=P.readObject(t))&&void 0!==e?e:{},n=null!==(i=P.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=P.readMap(s.Properties,(t=>{var e;return null!==(e=P.readString(t))&&void 0!==e?e:\"\"}));return new N(n,r)}}N.AIR=new N(\"minecraft:air\");class k{constructor(t){this.minY=t,this.storage=Array(k.SIZE),this.palette=[N.AIR]}get minBlockY(){return this.minY<<4}index(t,e,i){return(t<<8)+(e<<4)+i}getBlockState(t,e,i){var s;const n=this.storage[this.index(t,e,i)];return null!==(s=this.palette[n])&&void 0!==s?s:N.AIR}setBlockState(t,e,i,s){let n=this.palette.findIndex((t=>t.equals(s)));-1===n&&(n=this.palette.length,this.palette.push(s)),this.storage[this.index(t,e,i)]=n}}k.WIDTH=16,k.SIZE=k.WIDTH*k.WIDTH*k.WIDTH;class T{constructor(t,e,i){this.minY=t,this.height=e,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[i,s,n]=t,r=this.sections[this.getSectionIndex(s)];return null!==(e=null==r?void 0:r.getBlockState(15&i,15&s,15&n))&&void 0!==e?e:N.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(N.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&i,15&s,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new k(this.minSection+t)),this.sections[t]}}!function(t){t.create=function(t,e){return[t,e]},t.fromBlockPos=function(t){return[t[0]>>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return t[0]<<19},t.maxBlockZ=function(t){return t[1]<<19}}(E||(E={}));class _{constructor(t,e=[],i=[]){this.size=t,this.palette=e,this.blocks=i,this.blocksMap=[],i.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,i,s){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new N(e,i);let r=this.palette.findIndex((t=>t.equals(n)));return-1===r&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:s}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:s},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]N.fromNbt({name:\"\",value:t}))),s=B(t.value,\"blocks\",\"compound\").map((t=>({pos:B(t,\"pos\",\"int\",3),state:S(t,\"state\",\"int\"),nbt:I((()=>S(t,\"nbt\",\"compound\")),void 0)})));return new _(e,i,s)}}function O(t){return t*t}function M(t,e,i){return Math.max(e,Math.min(i,t))}function L(t,e,i){return e+t*(i-e)}function D(t,e,i,s,n,r){return L(e,L(t,i,s),L(t,n,r))}function U(t,e,i,s,n,r,o,a,l,h,u){return L(i,D(t,e,s,n,r,o),D(t,e,a,l,h,u))}function X(t,e,i){return i<0?t:i>1?e:L(i,t,e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(t,e,i){let s=e-t;for(;s>0;){const e=Math.floor(s/2),n=t+e;i(n)?s=e:(t=n+1,s-=e+1)}return t}class V{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new V(this.nextLong())}setSeed(t){this.seed=t^V.MULTIPLIER&V.MODULUS_MASK}advance(){this.seed=this.seed*V.MULTIPLIER+V.INCREMENT&V.MODULUS_MASK}consume(t){for(let e=0;e>BigInt(V.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,i;for(;(e=this.next(31))-(i=e%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt(\"-4658895280553007687\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(27))*BigInt(\"-7723592293110705685\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(31))&BigInt(\"0xFFFFFFFFFFFFFFFF\")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt(\"0x10000000000000000\"));const e=t^W.SILVER_RATIO_64,i=e+W.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[W.mixStafford13(e),W.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=W.upgradeSeedTo128bit(t)}fork(){return new W([this.next(),this.next()])}static getSeed(t,e,i){let s=t*BigInt(3129871)^i*BigInt(116129781)^e;return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}forkAt(t,e,i){const s=W.getSeed(t,e,i)^this.seed[0];return new W([s,this.seed[1]])}static LongfromBytes(t,e,i,s,n,r,o,a){return BigInt(t)<BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s>BigInt(64-t)}nextInt(t){var e=this.next()&BigInt(4294967295);if(t){const o=BigInt(t);var i=e*o,s=i&BigInt(4294967295);if(s>BigInt(32);return Number(r)}var o=Number(e);return o>=2147483648&&(o-=4294967296),o}nextFloat(){return Number(this.nextBits(24))*W.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*W.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}W.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),W.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),W.FLOAT_MULTIPLIER=1/Math.pow(2,24),W.DOUBLE_MULTIPLIER=11102230246251565e-32;class Y{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample2D(t,e){let i,s,n;const r=(t+e)*Y.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*Y.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+Y.G2,c=n-h+Y.G2,d=a-1+2*Y.G2,f=n-1+2*Y.G2,g=255&o,p=255&s,m=this.P(g+this.P(p))%12,v=this.P(g+l+this.P(p+h))%12,b=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,a,n,0,.5)+this.getCornerNoise3D(v,u,c,0,.5)+this.getCornerNoise3D(b,d,f,0,.5))}sample(t,e,i){const s=.3333333333333333*(t+e+i),n=Math.floor(t+s),r=Math.floor(e+s),o=Math.floor(i+s),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=i-(o-a);let c,d,f,g,p,m;l>=h?h>=u?(c=1,d=0,f=0,g=1,p=1,m=0):l>=u?(c=1,d=0,f=0,g=1,p=0,m=1):(c=0,d=0,f=1,g=1,p=0,m=1):h127?t-256:t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample(t,e,i,s=0,n=0){const r=t+this.xo,o=e+this.yo,a=i+this.zo,l=Math.floor(r),h=Math.floor(o),u=Math.floor(a),c=r-l,d=o-h,f=a-u;let g=0;if(0!==s){const t=n>=0&&n=0;s-=1)s0&&(s=this.maxLimitNoise.getOctaveNoise(l))&&(a+=s.sample(c,d,f,u,e*u)/r),r/=2}return X(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=P.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=P.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=P.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=P.readNumber(o.y_factor))&&void 0!==r?r:80}}}(A||(A={}));class G{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new Z(t,e,i),this.second=new Z(t,e,i);let s=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=P.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(C||(C={}));class ${constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new Y(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new Y(t):t.consume(262);if(i>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,s)-1)}sample(t,e,i){let s=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var e;return null!==(e=P.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new q(0);for(const e of h){const s=null!==(r=P.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=P.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(R||(R={}));class q{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class K{constructor(t,e=[],i=[],s=[]){this.coordinate=t,this.locations=e,this.values=i,this.derivatives=s}apply(t){const e=this.coordinate.apply(t),i=j(0,this.locations.length,(t=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const Q=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],tt=[124/256,189/256,107/256],et=Q(6396257),it=Q(8431445),st=Q(4764952),nt=Q(4159204),rt=Q(8431445),ot=Q(2129968),at=t=>[t/8,1-t/32,64*t],lt={large_fern:()=>tt,tall_grass:()=>tt,grass_block:()=>tt,fern:()=>tt,grass:()=>tt,potted_fern:()=>tt,spruce_leaves:()=>et,birch_leaves:()=>it,oak_leaves:()=>st,jungle_leaves:()=>st,acacia_leaves:()=>st,dark_oak_leaves:()=>st,vine:()=>st,water:()=>nt,bubble_column:()=>nt,cauldron:()=>nt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),M(e*e*.7-.5,0,1),M(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>tt,attached_melon_stem:()=>rt,attached_pumpkin_stem:()=>rt,melon_stem:t=>{var e;return at(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return at(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>ot};var ht;function ut(...t){let e=0;for(const i of t)e+=i.length;const i=new Float32Array(e);let s=0;for(const e of t)i.set(e,s),s+=e.length;return i}function ct(t,e){const s=i.create();for(let n=0;nthis.matchesVariant(e,t)));if(0===e.length)return[];const i=this.variants[e[0]];return[Array.isArray(i)?i[0]:i]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,i,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=ht.rotate(a,null!==(l=v.x)&&void 0!==l?l:0,null!==(h=v.y)&&void 0!==h?h:0),b=r.getBlockModel(v.model).getBuffers(t,e,i,o,d);if(v.x||v.y){const t=s.create();s.identity(t),s.translate(t,t,[8,8,8]),s.rotateY(t,t,-n.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-n.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),ct(b.position,t)}f.push(b.position),g.push(...b.texCoord),p.push(...b.tintColor),m.push(...b.index),o+=b.texCoord.length/2}const v=s.create();s.identity(v),s.scale(v,v,[.0625,.0625,.0625]);const b=ut(...f);return ct(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[i,s]=t.split(\"=\");return e[i]===s}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const i=t;return Object.keys(i).every((t=>i[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new dt(t,e.variants,e.multipart)}}const ft={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},gt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},pt=1.41421356237,mt={x:[1,pt,pt],y:[pt,1,pt],z:[pt,pt,1]};class vt{constructor(t,e,i,s){this.id=t,this.parent=e,this.textures=i,this.elements=s,this.flattened=!1}getBuffers(t,e,i,s,n){var r;const o=[],a=[],l=[],h=[];for(const u of null!==(r=this.elements)&&void 0!==r?r:[]){const r=this.getElementBuffers(t,e,u,s,i,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),s+=r.texCoord.length/2}return{position:ut(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,e,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,w,F;const y=r.from[0],x=r.from[1],S=r.from[2],B=r.to[0],I=r.to[1],P=r.to[2],E=[],A=[],C=[],R=[],N=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[w,F,y,x]=a.getTextureUV(this.getTexture(i.texture)),S=(y-w)/16,B=(x-F)/16,I=S/16,P=B/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*S+I,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*B+P,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*S-I,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*B-P;const N=ft[null!==(p=i.rotation)&&void 0!==p?p:0];A.push(w+s[N[0]],F+s[N[1]],w+s[N[2]],F+s[N[3]],w+s[N[4]],F+s[N[5]],w+s[N[6]],F+s[N[7]]);const k=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=lt[t.slice(10)])||void 0===v?void 0:v.call(lt,e))&&void 0!==b?b:[1,1,1];C.push(...k,...k,...k,...k),E.push(...n),R.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null===(u=null===(h=r.faces)||void 0===h?void 0:h.up)||void 0===u?void 0:u.texture)||r.faces.up.cullface&&l[r.faces.up.cullface]||N(r.faces.up,[y,16-P,B,16-S],[y,I,P,B,I,P,B,I,S,y,I,S]),!(null===(d=null===(c=r.faces)||void 0===c?void 0:c.down)||void 0===d?void 0:d.texture)||r.faces.down.cullface&&l[r.faces.down.cullface]||N(r.faces.down,[16-P,16-B,16-S,16-y],[y,x,S,B,x,S,B,x,P,y,x,P]),!(null===(g=null===(f=r.faces)||void 0===f?void 0:f.south)||void 0===g?void 0:g.texture)||r.faces.south.cullface&&l[r.faces.south.cullface]||N(r.faces.south,[y,16-I,B,16-x],[y,x,P,B,x,P,B,I,P,y,I,P]),!(null===(m=null===(p=r.faces)||void 0===p?void 0:p.north)||void 0===m?void 0:m.texture)||r.faces.north.cullface&&l[r.faces.north.cullface]||N(r.faces.north,[16-B,16-I,16-y,16-x],[B,x,S,y,x,S,y,I,S,B,I,S]),!(null===(b=null===(v=r.faces)||void 0===v?void 0:v.east)||void 0===b?void 0:b.texture)||r.faces.east.cullface&&l[r.faces.east.cullface]||N(r.faces.east,[16-P,16-I,16-S,16-x],[B,x,P,B,x,S,B,I,S,B,I,P]),!(null===(F=null===(w=r.faces)||void 0===w?void 0:w.west)||void 0===F?void 0:F.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||N(r.faces.west,[S,16-I,P,16-x],[y,x,S,y,x,P,y,I,P,y,I,S]);const k=s.create();if(s.identity(k),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(k,k,t),s.rotate(k,k,n.toRadian(r.rotation.angle),gt[r.rotation.axis]),r.rotation.rescale&&s.scale(k,k,mt[r.rotation.axis]),i.negate(t,t),s.translate(k,k,t)}const T=new Float32Array(E);return ct(T,k),{position:T,texCoord:A,tintColor:C,index:R}}getTexture(t){for(var e,i;t.startsWith(\"#\");)t=null!==(i=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==i?i:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const i=t.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(t),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys(null!==(e=i.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=i.textures[t])})),this.flattened=!0}}static fromJson(t,e){let i=e.parent;return i&&!i.startsWith(\"minecraft:\")&&(i=\"minecraft:\"+i),new vt(t,i,e.textures,e.elements)}}class bt{constructor(t,e,i){this.gl=t,this.program=this.initShaderProgram(e,i)}getProgram(){return this.program}initShaderProgram(t,e){const i=this.loadShader(this.gl.VERTEX_SHADER,t),s=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,s),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const i=this.gl.createShader(t);if(this.gl.shaderSource(i,e),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),e}return i}}function wt(t,e,i,s,n){const r=new dt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Ft(t,e,i,s,n,o){const a=n.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][i];return wt(`minecraft:${t}`,s,e,n,new vt(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:r.UP},down:{texture:\"#still\",tintindex:o,cullface:r.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:r.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:r.EAST},south:{texture:\"#flow\",tintindex:o,cullface:r.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:r.WEST}}}]))}const yt={\"minecraft:water\":(t,e,i,s)=>Ft(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Ft(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return wt(\"minecraft:chest\",s,t,{},new vt(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,i)},xt=new Set(Object.keys(yt));class St{constructor(t,e,i,s){var n,r;this.gl=t,this.structure=e,this.resources=i,this.chunks=[],(null==s?void 0:s.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==s?void 0:s.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==s?void 0:s.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new bt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new bt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new bt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=s.create();return s.perspective(i,t,e,.1,500),i}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),i=2*Math.abs(t[1])+(t[1]<0?1:0),s=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][i]||(this.chunks[e][i]=[]),this.chunks[e][i][s]||(this.chunks[e][i][s]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][i][s]}updateStructureBuffers(t){var e;const n=(t,e,n)=>{const r=s.create();s.translate(r,r,e),ct(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,ut(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,ut(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const s of this.structure.getBlocks()){const o=s.state.getName(),a=s.state.getProperties(),h=null!==(e=this.resources.getDefaultBlockProperties(o))&&void 0!==e?e:{};Object.entries(h).forEach((([t,e])=>{a[t]||(a[t]=e)}));const u=[Math.floor(s.pos[0]/this.chunkSize),Math.floor(s.pos[1]/this.chunkSize),Math.floor(s.pos[2]/this.chunkSize)];if(t&&!t.some((t=>i.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,r.UP),down:this.needsCull(s,r.DOWN),west:this.needsCull(s,r.WEST),east:this.needsCull(s,r.EAST),north:this.needsCull(s,r.NORTH),south:this.needsCull(s,r.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),n(l,s.pos,c)),xt.has(o)&&(l=yt[o](c.indexOffset,a,this.resources,e),n(l,s.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var i,s;const n=null===(i=this.structure.getBlock(a.towards(t.pos,e)))||void 0===i?void 0:i.state;return!!n&&((null===(s=this.resources.getBlockFlags(n.getName()))||void 0===s?void 0:s.opaque)?!(e===r.UP&&t.state.isFluid()):t.state.isFluid()&&n.isFluid())}getGridBuffers(){const[t,e,i]=this.structure.getSize(),s=[],n=[];s.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),s.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),s.push(0,0,0,0,e,0),s.push(t,0,0,t,e,0),s.push(0,0,i,0,e,i),s.push(t,0,i,t,e,i),s.push(0,e,0,0,e,i),s.push(t,e,0,t,e,i),s.push(0,e,0,t,e,0),s.push(0,e,i,t,e,i);for(let e=1;e<=t;e+=1)s.push(e,0,0,e,0,i);for(let e=1;e<=i;e+=1)s.push(0,0,e,t,0,e);for(let e=0;e<8+t+i;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:s.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],i=[];for(let s=0;s{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const i=s.create();s.copy(i,t),s.translate(i,i,e),this.setUniform(\"mView\",i),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,i,s){this.gl.viewport(t,e,i,s),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,i){const s=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(s,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(s)}setUniform(t,e){const i=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(i,!1,e)}}\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***************************************************************************** */function Bt(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}l((s=s.apply(t,e||[])).next())}))}class It{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!==(e=this.idMap[t])&&void 0!==e?e:[0,0,this.part,this.part]}static fromBlobs(t){return Bt(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),i=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),s=16*i,n=1/i,r=document.createElement(\"canvas\");r.width=s,r.height=s;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Bt(this,void 0,void 0,(function*(){const s=l%i,r=Math.floor(l/i);l+=1,a[e]=[n*s,n*r,n*s+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*s,16*r,16,16)}))))),new It(o.getImageData(0,0,s,s),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return It.drawInvalidTexture(e),new It(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var Pt,Et,At,Ct,Rt,Nt,kt,Tt,_t;!function(t){function e(t,e){return\"number\"==typeof t?new i(t,null!=e?e:t):t}t.target=function(t,e,i,s,r,o){return new n(t,e,i,s,r,o)},t.parameters=function(t,i,n,r,o,a,l){return new s(e(t),e(i),e(n),e(r),e(o),e(a),l)},t.param=e;class i{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,i=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(i,0)}union(t){return new i(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new i(t,t);const[s,n]=null!==(e=P.readArray(t,(t=>P.readNumber(t))))&&void 0!==e?e:[];return new i(null!=s?s:0,null!=n?n:0)}}t.Param=i;class s{constructor(t,e,i,s,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return O(this.temperature.distance(t.temperature))+O(this.humidity.distance(t.humidity))+O(this.continentalness.distance(t.continentalness))+O(this.erosion.distance(t.erosion))+O(this.depth.distance(t.depth))+O(this.weirdness.distance(t.weirdness))+O(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=P.readObject(t))&&void 0!==e?e:{};return new s(i.fromJson(r.temperature),i.fromJson(r.humidity),i.fromJson(r.continentalness),i.fromJson(r.erosion),i.fromJson(r.depth),i.fromJson(r.weirdness),null!==(n=P.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=s;class n{constructor(t,e,i,s,n,r){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=n;t.Parameters=class{constructor(t){this.things=t,this.index=new r(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};class r{constructor(t){this.root=r.build(t.map((([t,e])=>new l(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=r.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let i=0;i<7;i+=1){const s=t.space[i];e+=Math.abs((s.min+s.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new a(e)}let e=1/0,i=-1,s=[];for(let n=0;n<7;++n){t=r.sort(t,n,!1),s=r.bucketize(t);let o=0;for(const t of s)o+=r.area(t.space);e>o&&(e=o,i=n)}return t=r.sort(t,i,!1),s=r.bucketize(t),s=r.sort(s,i,!0),new a(s.map((t=>r.build(t.children))))}static sort(t,e,i){return t.map((t=>{const s=t.space[e],n=(s.min+s.max)/2;return{key:i?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let i=[];const s=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)i.push(n),i.lengthnew i(1/0,-1/0)));for(const i of t)e=[...Array(7)].map(((t,s)=>e[s].union(i.space[s])));return e}search(t,e){let i=1/0,s=null;for(const n of this.children){const r=e(n,t);if(i<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);i<=a||(i=a,s=o)}return s}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(Pt||(Pt={}));class Ot{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=P.readObject(t))&&void 0!==e?e:{},n=null!==(i=P.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Ot(n)}}class Mt{constructor(t){this.parameters=t}getBiome(t,e,i,s){const n=s(t,e,i);return this.parameters.find(n)}static fromJson(t){var e,i;const s=null!==(e=P.readObject(t))&&void 0!==e?e:{},n=(null!==(i=P.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=P.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Pt.ParamPoint.fromJson(t.parameters)}})(null!==(e=P.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Mt(new Pt.Parameters(n))}}class Lt{constructor(t,e,i){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=i}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const i=null!==(e=P.readObject(t))&&void 0!==e?e:{};return new Lt(R.fromJson(i.offset,this.EXTRACTOR),R.fromJson(i.factor,this.EXTRACTOR),R.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+Lt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,i){return{continents:t,erosion:e,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),s=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new K(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,i).addPoint(1,s),r=new K(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new K(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new Lt(n,r,o)}static getErosionFactor(t,e){const i=new K(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new K(this.EROSION).addPoint(-.6,i).addPoint(-.5,new K(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new K(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new K(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new K(this.RIDGES).addPoint(-.9,t).addPoint(-.69,e);s.addPoint(.35,t).addPoint(.45,i).addPoint(.55,i).addPoint(.62,t)}else{const e=new K(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new K(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);s.addPoint(.05,n).addPoint(.4,n).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return s}static buildErosionOffsetSpline(t,e,i,s,n,r,o,a){const l=this.buildMountainRidgeSplineWithPoints(L(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(L(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,L(.5,.5,.5)*s,.5*s,.6*s,.5),d=this.ridgeSpline(t,n*s,e*s,.5*s,.6*s,.5),f=this.ridgeSpline(t,n,n,e,i,.5),g=this.ridgeSpline(t,n,n,e,i,.5),p=new K(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new K(this.EROSION).addPoint(-.85,l).addPoint(-.7,h).addPoint(-.4,u).addPoint(-.35,c).addPoint(-.1,d).addPoint(.2,f);return o&&v.addPoint(.4,g).addPoint(.45,p).addPoint(.55,p).addPoint(.58,g),v.addPoint(.7,m),v}static buildMountainRidgeSplineWithPoints(t,e){const i=new K(this.RIDGES),s=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.650?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new K(Lt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}Lt.GLOBAL_OFFSET=-.50375,Lt.EXTRACTOR=t=>{var e;const i=null!==(e=P.readString(t))&&void 0!==e?e:\"continents\";return Lt.extractor(i)},Lt.CONTINENTS=Lt.extractor(\"continents\"),Lt.EROSION=Lt.extractor(\"erosion\"),Lt.WEIRDNESS=Lt.extractor(\"weirdness\"),Lt.RIDGES=Lt.extractor(\"ridges\"),function(t){t.fromList=function(t){return(e,i,s,n)=>{for(const r of t){const t=r(e,i,s,n);if(t)return t}return null}}}(Et||(Et={}));class Dt{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=Dt.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=Dt.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;st.initializeForFirstCellX()))}advanceCellX(t){this.interpolators.forEach((e=>e.advanceCellX(t)))}selectCellYZ(t,e){this.interpolators.forEach((i=>i.selectCellYZ(t,e)))}updateForY(t){this.interpolators.forEach((e=>e.updateForY(t)))}updateForX(t){this.interpolators.forEach((e=>e.updateForX(t)))}updateForZ(t){this.interpolators.forEach((e=>e.updateForZ(t)))}swapSlices(){this.interpolators.forEach((t=>t.swapSlices()))}updateNoiseAndGenerateBaseState(t,e,i){return this.baseNoise(t,e,i)}}!function(t){t.create=function(t,e,i){return{offset:t,factor:e,jaggedness:i}}}(At||(At={})),function(t){t.create=function(t,e,i){const s=e+t.getOffset(e,0,i),n=i+t.getOffset(i,e,0),r=t.getContinentalness(s,n),o=t.getWeirdness(s,n),a=t.getErosion(s,n);return{shiftedX:s,shiftedZ:n,continentalness:r,weirdness:o,erosion:a,terrainInfo:t.getTerrainInfo(s<<2,n<<2,r,o,a)}}}(Ct||(Ct={})),function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c,d;const f=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=P.readInt(f.min_y))&&void 0!==i?i:0,height:null!==(s=P.readInt(f.height))&&void 0!==s?s:256,xzSize:null!==(n=P.readInt(f.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=P.readInt(f.size_vertical))&&void 0!==r?r:1,densityFactor:null!==(o=P.readNumber(f.density_factor))&&void 0!==o?o:0,densityOffset:null!==(a=P.readNumber(f.density_offset))&&void 0!==a?a:0,sampling:A.fromJson(f.sampling),topSlide:Nt.fromJson(f.top_slide),bottomSlide:Nt.fromJson(f.bottom_slide),terrainShaper:Lt.fromJson(f.terrain_shaper),useSimplexSurfaceNoise:null!==(l=P.readBoolean(f.simplex_surface_noise))&&void 0!==l&&l,randomDensityOffset:null!==(h=P.readBoolean(f.random_density_offset))&&void 0!==h&&h,islandNoiseOverride:null!==(u=P.readBoolean(f.island_noise_override))&&void 0!==u&&u,isAmplified:null!==(c=P.readBoolean(f.amplified))&&void 0!==c&&c,useLegacyRandom:null!==(d=P.readBoolean(f.use_legacy_random))&&void 0!==d&&d}}}(Rt||(Rt={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=P.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=P.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=P.readInt(r.offset))&&void 0!==n?n:0}},t.apply=function(t,e,i){if(t.size<=0)return e;const s=(i-t.offset)/t.size;return X(t.target,e,s)}}(Nt||(Nt={}));class Xt{constructor(t,e,i,s,n,r,o=!1){if(this.cellWidth=t,this.cellHeight=e,this.cellCountY=i,this.settings=s,o){const i=new V(r),o=s.useLegacyRandom?new V(r):i.fork();this.blendedNoise=new H(o,s.sampling,t,e),i.consume(8),this.temperatureNoise=new G(new V(r),n.temperature),this.humidityNoise=new G(new V(r+BigInt(1)),n.humidity),this.continentalnessNoise=new G(new V(r+BigInt(2)),n.continentalness),this.erosionNoise=new G(new V(r+BigInt(3)),n.erosion),this.weirdnessNoise=new G(new V(r+BigInt(4)),n.weirdness),this.offsetNoise=new G(new V(r+BigInt(5)),n.shift),this.jaggedNoise=new G(i.fork(),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}else{const i=W.create(r).fork();this.blendedNoise=new H(i.forkWithHashOf(\"minecraft:terrain\"),s.sampling,t,e),this.temperatureNoise=new G(i.forkWithHashOf(\"minecraft:temperature\"),n.temperature),this.humidityNoise=new G(i.forkWithHashOf(\"minecraft:vegetation\"),n.humidity),this.continentalnessNoise=new G(i.forkWithHashOf(\"minecraft:continentalness\"),n.continentalness),this.erosionNoise=new G(i.forkWithHashOf(\"minecraft:erosion\"),n.erosion),this.weirdnessNoise=new G(i.forkWithHashOf(\"minecraft:ridge\"),n.weirdness),this.offsetNoise=new G(i.forkWithHashOf(\"minecraft:offset\"),n.shift),this.jaggedNoise=new G(i.forkWithHashOf(\"minecraft:jagged\"),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}this.shaper=s.terrainShaper,this.baseNoise=t=>{const e=t.createNoiseInterpolator(((e,i,s)=>this.calculateBaseNoise(e,i,s,t.getTerrainInfo(e>>2,s>>2))));return()=>e.sample()}}sample(t,e,i){const s=t+this.getOffset(t,0,i),n=i+this.getOffset(i,t,0),r=this.getContinentalness(s,n),o=this.getErosion(s,n),a=this.getWeirdness(s,n),l=this.shaper.offset(Lt.point(r,o,a));return this.target(t,e,i,s,n,r,o,a,l)}target(t,e,i,s,n,r,o,a,l){const h=e+this.getOffset(e,i,t),u=this.getTemperature(s,h,n),c=this.getHumidity(s,h,n),d=this.computeDimensionDensity(e<<2)+l;return Pt.target(u,c,r,o,d,a)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}getTerrainInfo(t,e,i,s,n){const r=Lt.point(i,s,n);return At.create(this.shaper.offset(r),this.shaper.factor(r),this.shaper.jaggedness(r))}makeBaseNoiseFiller(t,e){const i=this.baseNoise(t);return(t,s,n)=>{let r=i();return r=M(.64*r,-1,1),r=r/2-r*r*r/24,r+=e(t,s,n),r>0?null:N.AIR}}calculateBaseNoise(t,e,i,s){let n=this.blendedNoise.sample(t,e,i);if(s){const r=this.sampleJaggedNoise(s.jaggedness,t,i),o=this.computeDimensionDensity(e),a=s.factor*(s.offset+r+o);n+=a>0?4*a:a}return n=M(n,-64,64),n=this.applySlide(n,e/this.cellHeight),n=M(n,-64,64),n}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t){return(1-t/128)*this.settings.densityFactor+this.settings.densityOffset}applySlide(t,e){const i=e-Math.floor(this.settings.minY/this.cellHeight);return t=Nt.apply(this.settings.topSlide,t,this.cellCountY-i),t=Nt.apply(this.settings.bottomSlide,t,i)}}class zt{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.cellHeight=i.noise.ySize<<2,this.cellWidth=i.noise.xzSize<<2,this.cellCountXZ=Math.floor(16/this.cellWidth),this.cellCountY=Math.floor(i.noise.height/this.cellHeight),this.sampler=new Xt(this.cellWidth,this.cellHeight,this.cellCountY,i.noise,i.octaves,t,i.legacyRandomSource),this.materialRule=Et.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)])}fillBiomes(t){const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Math.floor(e/this.cellHeight);Math.floor((i-e)/this.cellHeight);const n=E.minBlockX(t.pos),r=E.minBlockZ(t.pos),o=new Ut(this.cellWidth,this.cellHeight,this.cellCountXZ,this.cellCountY,s,this.sampler,n,r,(()=>0));for(let e=0;em))}}}fill(t){var e;const i=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=Math.floor(i/this.cellHeight),r=Math.floor((s-i)/this.cellHeight),o=E.minBlockX(t.pos),a=E.minBlockZ(t.pos),l=new Ut(this.cellWidth,this.cellHeight,this.cellCountXZ,this.cellCountY,n,this.sampler,o,a,(()=>0));l.initializeForFirstCellX();for(let i=0;i=0;u-=1){l.selectCellYZ(u,s);for(let r=this.cellHeight-1;r>=0;r-=1){const c=(n+u)*this.cellHeight+r,d=15&c,f=t.getSectionIndex(c);t.getSectionIndex(h.minBlockY)!==f&&(h=t.getOrCreateSection(f));const g=r/this.cellHeight;l.updateForY(g);for(let t=0;t{var e,i,s;return{distance:null!==(e=P.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=P.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=P.readInt(t.count))&&void 0!==s?s:0}})),structures:P.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=P.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=P.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=P.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=P.readObject(t))&&void 0!==e?e:{})}))}}}(Tt||(Tt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{temperature:C.fromJson(i.temperature),humidity:C.fromJson(i.humidity),continentalness:C.fromJson(i.continentalness),erosion:C.fromJson(i.erosion),weirdness:C.fromJson(i.weirdness),shift:C.fromJson(i.shift)}}}(_t||(_t={}));export{H as BlendedNoise,lt as BlockColors,dt as BlockDefinition,vt as BlockModel,a as BlockPos,N as BlockState,T as Chunk,E as ChunkPos,k as ChunkSection,Pt as Climate,q as ConstantProvider,r as Direction,Ot as FixedBiome,Ct as FlatNoiseData,J as ImprovedNoise,P as Json,V as LegacyRandom,Et as MaterialRule,Mt as MultiNoise,u as NbtReader,c as NbtWriter,Ut as NoiseChunk,zt as NoiseChunkGenerator,kt as NoiseGeneratorSettings,Dt as NoiseInterpolator,_t as NoiseOctaves,C as NoiseParameters,Xt as NoiseSampler,A as NoiseSamplingSettings,Rt as NoiseSettings,Nt as NoiseSlideSettings,G as NormalNoise,R as NumberProvider,Z as PerlinNoise,$ as PerlinSimplexNoise,Y as SimplexNoise,K as Spline,_ as Structure,St as StructureRenderer,Tt as StructureSettings,At as TerrainInfo,Lt as TerrainShaper,It as TextureAtlas,W as XoroshiroRandom,j as binarySearch,M as clamp,X as clampedLerp,B as getListTag,I as getOptional,S as getTag,L as lerp,D as lerp2,U as lerp3,g as read,m as readChunk,f as readCompressed,p as readRegion,d as readUncompressed,z as smoothstep,O as square,h as tagNames,l as tagTypes,w as write,y as writeChunk,b as writeCompressed,F as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","\nlet wasm;\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst u32CvtShim = new Uint32Array(2);\n\nconst int64CvtShim = new BigInt64Array(u32CvtShim.buffer);\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachegetInt32Memory0;\n}\n\nlet cachegetFloat64Memory0 = null;\nfunction getFloat64Memory0() {\n if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {\n cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);\n }\n return cachegetFloat64Memory0;\n}\n\nfunction getArrayF64FromWasm0(ptr, len) {\n return getFloat64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {BigInt} seed\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function improved_noise(seed, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.improved_noise(retptr, low0, high0, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v1 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArrayF64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getFloat64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function perlin_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.perlin_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function normal_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.normal_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachegetUint32Memory0 = null;\nfunction getUint32Memory0() {\n if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachegetUint32Memory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {Float64Array} t_min\n* @param {Float64Array} t_max\n* @param {Float64Array} h_min\n* @param {Float64Array} h_max\n* @param {Float64Array} c_min\n* @param {Float64Array} c_max\n* @param {Float64Array} e_min\n* @param {Float64Array} e_max\n* @param {Float64Array} w_min\n* @param {Float64Array} w_max\n* @param {Float64Array} d_min\n* @param {Float64Array} d_max\n* @param {Float64Array} offset\n* @param {Int32Array} biome\n* @returns {ParameterList}\n*/\nexport function biome_parameters(t_min, t_max, h_min, h_max, c_min, c_max, e_min, e_max, w_min, w_max, d_min, d_max, offset, biome) {\n var ptr0 = passArrayF64ToWasm0(t_min, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passArrayF64ToWasm0(t_max, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_min, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(h_max, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(c_min, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(c_max, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(e_min, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ptr7 = passArrayF64ToWasm0(e_max, wasm.__wbindgen_malloc);\n var len7 = WASM_VECTOR_LEN;\n var ptr8 = passArrayF64ToWasm0(w_min, wasm.__wbindgen_malloc);\n var len8 = WASM_VECTOR_LEN;\n var ptr9 = passArrayF64ToWasm0(w_max, wasm.__wbindgen_malloc);\n var len9 = WASM_VECTOR_LEN;\n var ptr10 = passArrayF64ToWasm0(d_min, wasm.__wbindgen_malloc);\n var len10 = WASM_VECTOR_LEN;\n var ptr11 = passArrayF64ToWasm0(d_max, wasm.__wbindgen_malloc);\n var len11 = WASM_VECTOR_LEN;\n var ptr12 = passArrayF64ToWasm0(offset, wasm.__wbindgen_malloc);\n var len12 = WASM_VECTOR_LEN;\n var ptr13 = passArray32ToWasm0(biome, wasm.__wbindgen_malloc);\n var len13 = WASM_VECTOR_LEN;\n var ret = wasm.biome_parameters(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13);\n return ParameterList.__wrap(ret);\n}\n\n/**\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @returns {NoiseParameters}\n*/\nexport function noise_parameters(first_octave, amplitudes) {\n var ptr0 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.noise_parameters(first_octave, ptr0, len0);\n return NoiseParameters.__wrap(ret);\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} t_first\n* @param {Float64Array} t_amplitudes\n* @param {number} h_first\n* @param {Float64Array} h_amplitudes\n* @param {number} c_first\n* @param {Float64Array} c_amplitudes\n* @param {number} e_first\n* @param {Float64Array} e_amplitudes\n* @param {number} w_first\n* @param {Float64Array} w_amplitudes\n* @param {number} s_first\n* @param {Float64Array} s_amplitudes\n* @returns {Sampler}\n*/\nexport function climate_sampler(seed, t_first, t_amplitudes, h_first, h_amplitudes, c_first, c_amplitudes, e_first, e_amplitudes, w_first, w_amplitudes, s_first, s_amplitudes) {\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(t_amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_amplitudes, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(c_amplitudes, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(e_amplitudes, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(w_amplitudes, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(s_amplitudes, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ret = wasm.climate_sampler(low0, high0, t_first, ptr1, len1, h_first, ptr2, len2, c_first, ptr3, len3, e_first, ptr4, len4, w_first, ptr5, len5, s_first, ptr6, len6);\n return Sampler.__wrap(ret);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n return instance.ptr;\n}\n/**\n* @param {ParameterList} parameters\n* @param {Float64Array} target\n* @returns {number}\n*/\nexport function find_biome(parameters, target) {\n _assertClass(parameters, ParameterList);\n var ptr0 = passArrayF64ToWasm0(target, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.find_biome(parameters.ptr, ptr0, len0);\n return ret;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n return getInt32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {ParameterList} parameters\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Int32Array}\n*/\nexport function multi_noise(parameters, sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(parameters, ParameterList);\n _assertClass(sampler, Sampler);\n wasm.multi_noise(retptr, parameters.ptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function climate_noise(sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(sampler, Sampler);\n wasm.climate_noise(retptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} x\n* @returns {Test}\n*/\nexport function create_test(x) {\n var ret = wasm.create_test(x);\n return Test.__wrap(ret);\n}\n\n/**\n* @param {Test} test\n* @returns {number}\n*/\nexport function calc_test(test) {\n _assertClass(test, Test);\n var ret = wasm.calc_test(test.ptr);\n return ret;\n}\n\n/**\n*/\nexport class ImprovedNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_improvednoise_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseOctaves {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseoctaves_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseParameters {\n\n static __wrap(ptr) {\n const obj = Object.create(NoiseParameters.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseparameters_free(ptr);\n }\n}\n/**\n*/\nexport class NormalNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_normalnoise_free(ptr);\n }\n}\n/**\n*/\nexport class ParameterList {\n\n static __wrap(ptr) {\n const obj = Object.create(ParameterList.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_parameterlist_free(ptr);\n }\n}\n/**\n*/\nexport class PerlinNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_perlinnoise_free(ptr);\n }\n}\n/**\n*/\nexport class Sampler {\n\n static __wrap(ptr) {\n const obj = Object.create(Sampler.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sampler_free(ptr);\n }\n}\n/**\n*/\nexport class Test {\n\n static __wrap(ptr) {\n const obj = Object.create(Test.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_test_free(ptr);\n }\n}\n\nasync function 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\n } catch (e) {\n if (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 {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('deepslate_rs_bg.wasm', import.meta.url);\n }\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n\n\n const { instance, module } = await load(await input, imports);\n\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport default init;\n\n","export default \"__VITE_ASSET__4990c219__\"","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n\n if (opts.circles) return rfdcCircles(opts)\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n var refs = []\n var refsNew = []\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n var index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = exports.LocationFields = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ enum: 'biome' })),\r\n feature: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n dimension: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', core_1.ObjectNode(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }, { context: 'dimension_type' }), {\r\n default: () => Common_1.DefaultDimensionType\r\n }));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 6,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 6,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RangeConfig = {\r\n maximum: core_1.NumberNode({ integer: true }),\r\n bottom_offset: core_1.NumberNode({ integer: true }),\r\n top_offset: core_1.NumberNode({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:chance': ChanceConfig,\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true }),\r\n extra_count: core_1.NumberNode({ integer: true }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:no_surface_ore': OreConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: core_1.NumberNode({ integer: true }),\r\n ignore_vines: core_1.BooleanNode(),\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n minimum_size: Reference('feature_size'),\r\n trunk_provider: Reference('block_state_provider'),\r\n leaves_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n }\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), {\r\n default: () => Common_1.DefaultNoiseSettings\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: Reference('distance_predicate'),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: Reference('float_bounds')\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 7;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_spread_double': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:lava_lake': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:water_depth_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.Opt(core_1.BooleanNode()),\r\n project: core_1.Opt(core_1.BooleanNode()),\r\n need_water: core_1.Opt(core_1.BooleanNode()),\r\n xspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n yspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n zspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.IntProvider()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider'),\r\n place_on: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_in: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_under: core_1.Opt(core_1.ListNode(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n sapling_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n size: Common_1.IntProvider({ min: 0 })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n min_surface_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nconst DefaultStructureSettings = {\r\n 'minecraft:igloo': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357618\r\n },\r\n 'minecraft:mansion': {\r\n spacing: 80,\r\n separation: 20,\r\n salt: 10387319\r\n },\r\n 'minecraft:jungle_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357619\r\n },\r\n 'minecraft:nether_fossil': {\r\n spacing: 2,\r\n separation: 1,\r\n salt: 14357921\r\n },\r\n 'minecraft:stronghold': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:shipwreck': {\r\n spacing: 24,\r\n separation: 4,\r\n salt: 165745295\r\n },\r\n 'minecraft:mineshaft': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:desert_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357617\r\n },\r\n 'minecraft:ruined_portal': {\r\n spacing: 40,\r\n separation: 15,\r\n salt: 34222645\r\n },\r\n 'minecraft:fortress': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:pillager_outpost': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 165745296\r\n },\r\n 'minecraft:village': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 10387312\r\n },\r\n 'minecraft:endcity': {\r\n spacing: 20,\r\n separation: 11,\r\n salt: 10387313\r\n },\r\n 'minecraft:buried_treasure': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:ocean_ruin': {\r\n spacing: 20,\r\n separation: 8,\r\n salt: 14357621\r\n },\r\n 'minecraft:bastion_remnant': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:swamp_hut': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357620\r\n },\r\n 'minecraft:monument': {\r\n spacing: 32,\r\n separation: 5,\r\n salt: 10387313\r\n }\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n },\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 7;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true }),\r\n allow_water: core_1.BooleanNode(),\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:lava_lake': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:scatter': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:water_depth_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: Feature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n ignore_vines: true,\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:matching_blocks': {\r\n offset: core_1.Opt(Reference('block_pos')),\r\n blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n offset: core_1.Opt(Reference('block_pos')),\r\n fluids: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n offset: core_1.Opt(Reference('block_pos')),\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_run_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n run_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n run_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as f,useDebugValue as c}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as p,Fragment as v,render as d,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function C(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=C({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:p(p(n).map(t))},k={map:N,forEach:N,count:function(n){return n?p(n).length:0},only:function(n){var t=p(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:p},A=h.__e;h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)};var O=h.unmount;function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function F(){this.u=null,this.o=null}h.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n)},(L.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=C({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var M=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),t.i.removeChild(n)}}),d(s(T,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function I(n,t){return s(j,{__v:n,i:t})}(F.prototype=new a).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M(t,n,r)):u()};e?e(o):o()}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=p(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M(n,e,t)})};var W=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z(n,t,e){return null==t.__k&&(t.textContent=\"\"),d(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var H=h.event;function Z(){}function Y(){return this.cancelBubble}function $(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$,n.nativeEvent=n};var q,G={configurable:!0,get:function(){return this.class}},J=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){for(var u in r={},e){var o=e[u];\"value\"===u&&\"defaultValue\"in e&&null==o||(\"defaultValue\"===u&&\"value\"in e&&null==e.value?u=\"value\":\"download\"===u&&!0===o?o=\"\":/ondoubleclick/i.test(u)?u=\"ondblclick\":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u=\"oninput\":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P.test(u)?u=u.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===o&&(o=void 0),r[u]=o)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=p(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=p(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r}t&&e.class!=e.className&&(G.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",G)),n.$$typeof=W,J&&J(n)};var K=h.__r;h.__r=function(n){K&&K(n),q=n.__c};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q.__n[n.__c].props.value}}}},X=1,nn=2,tn=3,en=4,rn=5;function un(n,t){return t()}var on=\"object\"==typeof performance&&\"function\"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()},ln=\"16.8.0\";function fn(n){return s.bind(null,n)}function cn(n){return!!n&&n.$$typeof===W}function an(n){return cn(n)?y.apply(null,arguments):n}function sn(n){return!!n.__k&&(d(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},vn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"16.8.0\",Children:k,render:z,hydrate:B,unmountComponentAtNode:sn,createPortal:I,createElement:s,createContext:_,createFactory:fn,cloneElement:an,createRef:b,Fragment:v,isValidElement:cn,findDOMNode:hn,Component:a,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:pn,StrictMode:v,Suspense:L,SuspenseList:F,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};export{ln as version,k as Children,z as render,B as hydrate,sn as unmountComponentAtNode,I as createPortal,fn as createFactory,an as cloneElement,cn as isValidElement,hn as findDOMNode,E as PureComponent,g as memo,x as forwardRef,pn as unstable_batchedUpdates,vn as StrictMode,L as Suspense,F as SuspenseList,D as lazy,Q as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,X as unstable_ImmediatePriority,nn as unstable_UserBlockingPriority,tn as unstable_NormalPriority,en as unstable_LowPriority,rn as unstable_IdlePriority,un as unstable_runWithPriority,on as unstable_now};\n//# sourceMappingURL=compat.module.js.map\n","/*!\n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i\"']/;\nconst escapeReplace = /[&<>\"']/g;\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape$3(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\nfunction unescape$1(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit$1(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\nfunction cleanUrl$1(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape$1(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim$1(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest$1 = { exec: function noopTest() {} };\n\nfunction merge$2(obj) {\n let i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells$1(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) { cells.shift(); }\n if (!cells[cells.length - 1].trim()) { cells.pop(); }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim$1(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n}\n\nfunction findClosingBracket$1(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation$1(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\n// copied from https://stackoverflow.com/a/5450113/806777\nfunction repeatString$1(pattern, count) {\n if (count < 1) {\n return '';\n }\n let result = '';\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n count >>= 1;\n pattern += pattern;\n }\n return result + pattern;\n}\n\nvar helpers = {\n escape: escape$3,\n unescape: unescape$1,\n edit: edit$1,\n cleanUrl: cleanUrl$1,\n resolveUrl,\n noopTest: noopTest$1,\n merge: merge$2,\n splitCells: splitCells$1,\n rtrim: rtrim$1,\n findClosingBracket: findClosingBracket$1,\n checkSanitizeDeprecation: checkSanitizeDeprecation$1,\n repeatString: repeatString$1\n};\n\nconst { defaults: defaults$4 } = defaults$5.exports;\nconst {\n rtrim,\n splitCells,\n escape: escape$2,\n findClosingBracket\n} = helpers;\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape$2(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text, [])\n };\n lexer.state.inLink = false;\n return token;\n } else {\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape$2(text)\n };\n }\n}\n\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nvar Tokenizer_1$1 = class Tokenizer {\n constructor(options) {\n this.options = options || defaults$4;\n }\n\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap) {\n if (cap[0].length > 1) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n return { raw: '\\n' };\n }\n }\n\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text\n };\n }\n }\n\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ *> ?/gm, '');\n\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text\n };\n }\n }\n\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine,\n line, lines, itemContents;\n\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?: [^\\\\n]*| *)(?:\\\\n[^\\\\n]*)*(?:\\\\n|$))`);\n\n // Get each top-level item\n while (src) {\n if (this.rules.block.hr.test(src)) { // End list if we encounter an HR (possibly move into itemRegex?)\n break;\n }\n\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n lines = cap[2].split('\\n');\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = lines[0].trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = cap[1].length + (indent > 4 ? 1 : indent); // intented code blocks after 4 spaces; indent is always 1\n itemContents = lines[0].slice(indent - cap[1].length);\n }\n\n blankLine = false;\n raw = cap[0];\n\n if (!lines[0] && /^ *$/.test(lines[1])) { // items begin with at most one blank line\n raw = cap[1] + lines.slice(0, 2).join('\\n') + '\\n';\n list.loose = true;\n lines = [];\n }\n\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])`);\n\n for (i = 1; i < lines.length; i++) {\n line = lines[i];\n\n if (this.options.pedantic) { // Re-align to follow commonmark nesting rules\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(line)) {\n raw = cap[1] + lines.slice(0, i).join('\\n') + '\\n';\n break;\n }\n\n // Until we encounter a blank line, item contents do not need indentation\n if (!blankLine) {\n if (!line.trim()) { // Check if current line is empty\n blankLine = true;\n }\n\n // Dedent if possible\n if (line.search(/[^ ]/) >= indent) {\n itemContents += '\\n' + line.slice(indent);\n } else {\n itemContents += '\\n' + line;\n }\n continue;\n }\n\n // Dedent this line\n if (line.search(/[^ ]/) >= indent || !line.trim()) {\n itemContents += '\\n' + line.slice(indent);\n continue;\n } else { // Line was not properly indented; end of this item\n raw = cap[1] + lines.slice(0, i).join('\\n') + '\\n';\n break;\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n\n list.raw += raw;\n src = src.slice(raw.length);\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n\n const l = list.items.length;\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (list.items[i].tokens.some(t => t.type === 'space')) {\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n }\n\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n if (this.options.sanitize) {\n token.type = 'paragraph';\n token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape$2(cap[0]);\n token.tokens = [];\n this.lexer.inline(token.text, token.tokens);\n }\n return token;\n }\n }\n\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n }\n\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (cap) {\n const item = {\n type: 'table',\n header: splitCells(cap[1]).map(c => { return { text: c }; }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n\n let l = item.align.length;\n let i, j, k, row;\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(c => { return { text: c }; });\n }\n\n // parse child tokens inside headers and cells\n\n // header child tokens\n l = item.header.length;\n for (j = 0; j < l; j++) {\n item.header[j].tokens = [];\n this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);\n }\n\n // cell child tokens\n l = item.rows.length;\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n for (k = 0; k < row.length; k++) {\n row[k].tokens = [];\n this.lexer.inlineTokens(row[k].text, row[k].tokens);\n }\n }\n\n return item;\n }\n }\n }\n\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const token = {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n const token = {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape$2(cap[1])\n };\n }\n }\n\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize\n ? 'text'\n : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize\n ? (this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape$2(cap[0]))\n : cap[0]\n };\n }\n }\n\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^$/.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (/^$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n let link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n if (!link || !link.href) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u)) return;\n\n const nextChar = match[1] || match[2] || '';\n\n if (!nextChar || (nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar)))) {\n const lLength = match[0].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = src.slice(1, lLength + match.index + rLength);\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n }\n }\n\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape$2(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2], [])\n };\n }\n }\n\n autolink(src, mangle) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$2(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape$2(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n url(src, mangle) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$2(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape$2(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n inlineText(src, smartypants) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape$2(cap[0])) : cap[0];\n } else {\n text = escape$2(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n};\n\nconst {\n noopTest,\n edit,\n merge: merge$1\n} = helpers;\n\n/**\n * Block-Level Grammar\n */\nconst block$1 = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)( [^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *([^\\s>]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock$1._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\nblock$1._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock$1.def = edit(block$1.def)\n .replace('label', block$1._label)\n .replace('title', block$1._title)\n .getRegex();\n\nblock$1.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock$1.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block$1.bullet)\n .getRegex();\n\nblock$1.list = edit(block$1.list)\n .replace(/bull/g, block$1.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block$1.def.source + ')')\n .getRegex();\n\nblock$1._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock$1._comment = /|$)/;\nblock$1.html = edit(block$1.html, 'i')\n .replace('comment', block$1._comment)\n .replace('tag', block$1._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock$1.paragraph = edit(block$1._paragraph)\n .replace('hr', block$1.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block$1._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock$1.blockquote = edit(block$1.blockquote)\n .replace('paragraph', block$1.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock$1.normal = merge$1({}, block$1);\n\n/**\n * GFM Block Grammar\n */\n\nblock$1.gfm = merge$1({}, block$1.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock$1.gfm.table = edit(block$1.gfm.table)\n .replace('hr', block$1.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block$1._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock$1.pedantic = merge$1({}, block$1.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block$1._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block$1.normal._paragraph)\n .replace('hr', block$1.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block$1.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline$1 = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\ninline$1.punctuation = edit(inline$1.punctuation).replace(/punctuation/g, inline$1._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline$1.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline$1.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline$1._comment = edit(block$1._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline$1.emStrong.lDelim = edit(inline$1.emStrong.lDelim)\n .replace(/punct/g, inline$1._punctuation)\n .getRegex();\n\ninline$1.emStrong.rDelimAst = edit(inline$1.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline$1._punctuation)\n .getRegex();\n\ninline$1.emStrong.rDelimUnd = edit(inline$1.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline$1._punctuation)\n .getRegex();\n\ninline$1._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline$1._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline$1._email = /[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])?)+(?![-_])/;\ninline$1.autolink = edit(inline$1.autolink)\n .replace('scheme', inline$1._scheme)\n .replace('email', inline$1._email)\n .getRegex();\n\ninline$1._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline$1.tag = edit(inline$1.tag)\n .replace('comment', inline$1._comment)\n .replace('attribute', inline$1._attribute)\n .getRegex();\n\ninline$1._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline$1._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline$1._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline$1.link = edit(inline$1.link)\n .replace('label', inline$1._label)\n .replace('href', inline$1._href)\n .replace('title', inline$1._title)\n .getRegex();\n\ninline$1.reflink = edit(inline$1.reflink)\n .replace('label', inline$1._label)\n .getRegex();\n\ninline$1.reflinkSearch = edit(inline$1.reflinkSearch, 'g')\n .replace('reflink', inline$1.reflink)\n .replace('nolink', inline$1.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline$1.normal = merge$1({}, inline$1);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline$1.pedantic = merge$1({}, inline$1.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline$1._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline$1._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline$1.gfm = merge$1({}, inline$1.normal, {\n escape: edit(inline$1.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nvar Lexer_1$1 = class Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults$3;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer$2();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.type) {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n};\n\nconst { defaults: defaults$2 } = defaults$5.exports;\nconst {\n cleanUrl,\n escape: escape$1\n} = helpers;\n\n/**\n * Renderer\n */\nvar Renderer_1$1 = class Renderer {\n constructor(options) {\n this.options = options || defaults$2;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return ''\n + (escaped ? code : escape$1(code, true))\n + '
\\n';\n }\n\n return ''\n + (escaped ? code : escape$1(code, true))\n + '
\\n';\n }\n\n blockquote(quote) {\n return '\\n' + quote + '
\\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n }\n\n hr() {\n return this.options.xhtml ? '
\\n' : '
\\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '' + type + '>\\n';\n }\n\n listitem(text) {\n return '' + text + '\\n';\n }\n\n checkbox(checked) {\n return ' ';\n }\n\n paragraph(text) {\n return '' + text + '
\\n';\n }\n\n table(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
\\n';\n }\n\n tablerow(content) {\n return '\\n' + content + '
\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '' + type + '>\\n';\n }\n\n // span level renderer\n strong(text) {\n return '' + text + '';\n }\n\n em(text) {\n return '' + text + '';\n }\n\n codespan(text) {\n return '' + text + '';\n }\n\n br() {\n return this.options.xhtml ? '
' : '
';\n }\n\n del(text) {\n return '' + text + '';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '' + text + '';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '
' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n};\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\n\nvar TextRenderer_1$1 = class TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n};\n\n/**\n * Slugger generates header id\n */\n\nvar Slugger_1$1 = class Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n};\n\nconst Renderer$2 = Renderer_1$1;\nconst TextRenderer$2 = TextRenderer_1$1;\nconst Slugger$2 = Slugger_1$1;\nconst { defaults: defaults$1 } = defaults$5.exports;\nconst {\n unescape\n} = helpers;\n\n/**\n * Parsing & Compiling\n */\nvar Parser_1$1 = class Parser {\n constructor(options) {\n this.options = options || defaults$1;\n this.options.renderer = this.options.renderer || new Renderer$2();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer$2();\n this.slugger = new Slugger$2();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n};\n\nconst Lexer$1 = Lexer_1$1;\nconst Parser$1 = Parser_1$1;\nconst Tokenizer$1 = Tokenizer_1$1;\nconst Renderer$1 = Renderer_1$1;\nconst TextRenderer$1 = TextRenderer_1$1;\nconst Slugger$1 = Slugger_1$1;\nconst {\n merge,\n checkSanitizeDeprecation,\n escape\n} = helpers;\nconst {\n getDefaults,\n changeDefaults,\n defaults\n} = defaults$5.exports;\n\n/**\n * Marked\n */\nfunction marked$1(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked$1.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer$1.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked$1.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser$1.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked$1.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer$1.lex(src, opt);\n if (opt.walkTokens) {\n marked$1.walkTokens(tokens, opt.walkTokens);\n }\n return Parser$1.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return 'An error occurred:
'\n + escape(e.message + '', true)\n + '
';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked$1.options =\nmarked$1.setOptions = function(opt) {\n merge(marked$1.defaults, opt);\n changeDefaults(marked$1.defaults);\n return marked$1;\n};\n\nmarked$1.getDefaults = getDefaults;\n\nmarked$1.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked$1.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked$1.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked$1.defaults.renderer || new Renderer$1();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked$1.defaults.tokenizer || new Tokenizer$1();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked$1.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked$1.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked$1.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked$1, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked$1.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked$1.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked$1.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked$1.defaults.extensions && marked$1.defaults.extensions.childTokens && marked$1.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked$1.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked$1.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked$1.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked$1.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked$1.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer$1.lexInline(src, opt);\n if (opt.walkTokens) {\n marked$1.walkTokens(tokens, opt.walkTokens);\n }\n return Parser$1.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return 'An error occurred:
'\n + escape(e.message + '', true)\n + '
';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked$1.Parser = Parser$1;\nmarked$1.parser = Parser$1.parse;\nmarked$1.Renderer = Renderer$1;\nmarked$1.TextRenderer = TextRenderer$1;\nmarked$1.Lexer = Lexer$1;\nmarked$1.lexer = Lexer$1.lex;\nmarked$1.Tokenizer = Tokenizer$1;\nmarked$1.Slugger = Slugger$1;\nmarked$1.parse = marked$1;\n\nvar marked_1 = marked$1;\n\nconst marked = marked_1;\nconst Lexer = Lexer_1$1;\nconst Parser = Parser_1$1;\nconst Tokenizer = Tokenizer_1$1;\nconst Renderer = Renderer_1$1;\nconst TextRenderer = TextRenderer_1$1;\nconst Slugger = Slugger_1$1;\n\nesmEntry$1.exports = marked;\nvar parse = esmEntry$1.exports.parse = marked;\nvar Parser_1 = esmEntry$1.exports.Parser = Parser;\nvar parser = esmEntry$1.exports.parser = Parser.parse;\nvar Renderer_1 = esmEntry$1.exports.Renderer = Renderer;\nvar TextRenderer_1 = esmEntry$1.exports.TextRenderer = TextRenderer;\nvar Lexer_1 = esmEntry$1.exports.Lexer = Lexer;\nvar lexer = esmEntry$1.exports.lexer = Lexer.lex;\nvar Tokenizer_1 = esmEntry$1.exports.Tokenizer = Tokenizer;\nvar Slugger_1 = esmEntry$1.exports.Slugger = Slugger;\n\nvar esmEntry = esmEntry$1.exports;\n\nexport { Lexer_1 as Lexer, Parser_1 as Parser, Renderer_1 as Renderer, Slugger_1 as Slugger, TextRenderer_1 as TextRenderer, Tokenizer_1 as Tokenizer, esmEntry as default, lexer, parse, parser };\n"],"names":["n","u","i","t","r","f","e","n2","l2","u2","parentNode","removeChild","i2","t2","o2","r2","arguments","f2","length","push","children","defaultProps","v","type","props","key","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","vnode","this","context","d","indexOf","base","_","b","__r","debounceRendering","sort","n3","some","__P","c","I","__n","ownerSVGElement","T","e2","c2","s2","a2","h","p2","_2","k2","b2","m2","w2","A2","P2","Array","isArray","y","g","x","value","L","appendChild","nextSibling","insertBefore","setProperty","test","style","cssText","P","replace","toLowerCase","slice","l","addEventListener","H","$","removeEventListener","setAttribute","removeAttribute","event","v2","d2","g2","x2","contextType","__E","prototype","render","p","M","sub","state","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","m","y2","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","call","childNodes","dangerouslySetInnerHTML","attributes","name","__html","innerHTML","C","A","firstChild","s","checked","j","diffed","l3","u3","current","unmount","z","componentWillUnmount","a","getDerivedStateFromError","setState","componentDidCatch","k","forceUpdate","Promise","then","bind","resolve","setTimeout","EMPTY$1","obj","url","route2","opts","ret","reg","match","matches","split","decodeURIComponent","join","segmentize","max","Math","i$12","charAt","param","flags","plus","star","val","map","default","rank","index","path","rankSegment","rankChild","segment","customHistory","ROUTERS","subscribers","EMPTY","location","getCurrentLocation","pathname","search","canRoute","history","routeTo","didRoute","node","getAttribute","href","target","route","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","String","nodeName","toUpperCase","hasAttribute","routeFromLink","eventListenersInitialized","Router","Component$$1","getCurrentUrl","delegateLinkHandler","__proto__","Object","create","Router2","static","onChange","toChildArray","getMatchingChildren","updating","this$1","unlisten","listen","location2","splice","invoke","filter","prepareVNodeForRanking","pathRankSort","exec","newProps","cloneElement","Boolean","ref$1","active","previous","previousUrl","router","Component","Link","assign","onClick","handleLinkClick","Route","component","o","__H","w","requestAnimationFrame","t3","cancelAnimationFrame","defineProperty","Path_1","start","relativePath2","reduce","pop","[object Object]","modelArr","contextArr","end","Path","element","modelPush","contextPush","copy","newElement","startsWith","model","ModelPath","other","every","offset","fn","thisArg","_a","get","set","super","shift","Errors_1","errors","error","params","exact","equals","Symbol","iterator","Errors","str","utils","escapeString","dec2hex","dec","toString","substr","arr","Uint8Array","crypto","getRandomValues","from","DataModel_1","require$$0","require$$1","utils_1","require$$2","schema","options","_b","_c","_d","historyMax","verbose","wrapLists","initialData","DataModel","listeners","JSON","stringify","historyIndex","listener","newHistory","silentInvalidate","invalidated","loose","validate","invalidate","silent","getArray","reset","id","hexId","isNaN","last","log","parse","withModel","clear","tempErrors","add","res","entries","unwrapLists","exports","category","enabled","keep","optional","pathPush","suggest","validationOption","hook","args","canUpdate","update","mods","__spreadValues","Mod","__spreadProps","BooleanNode","Node_1","Base","boolean","ListNode","config","min","minLength","maxLength","Infinity","between","nextIndex","navigate","parseInt","newObj","_a2","list","SwitchNode","cases","activeCase","concat","fallback","sorter","priority","matchedCases","ListNode_1","SwitchNode_1","choices","switchNode","choice","isValid","XOrList","ChoiceNode","change","presetNode","objectNode","presets","keys","MapNode","validation","__1","DataModel_12","Node_12","integer","color","Number","isInteger","number","values","NumberNode","includes","Path_12","Errors_12","utils_12","require$$3","require$$4","fields","Switch","Case","defaultFields","__restKey","getActiveFields","switchValue","relativePath","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","disableSwitchContext","pathElements","activeFields","existingKeys","quoteString","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","object","Reference","schemas2","transform","StringNode","isEnum","enum","isValidator","validator","collections","getValues","pool","allowTag","isDefinition","allowUnknown","additional","string","Hook","Registries","registry","warn","ValidationOption","__createBinding2","__createBinding","k22","enumerable","__exportStar","exports2","hasOwnProperty","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","buf","len","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","zero$1","static_dtree","D_CODES$1","_dist_code","_length_code","MAX_MATCH$1","base_length","base_dist","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","code","gen_codes","bl_count","next_code","MAX_BITS$1","bits","init_block","LITERALS$1","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","bi_windup","smaller","depth","_n2","_m2","pqdownheap","heap","j2","heap_len","compress_block","ltree","dtree","lc","extra","lx","d_buf","l_buf","build_tree","desc","stree","heap_max","xbits","overflow","scan_tree","curlen","prevlen","nextlen","count","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block$1","stored_len","header","window","subarray","trees","_tr_init","LENGTH_CODES$1","L_CODES$1","StaticTreeDesc","l_desc","TreeDesc","d_desc","bl_desc","_tr_stored_block","_tr_flush_block","opt_lenb","static_lenb","max_blindex","level","strm","data_type","black_mask","detect_data_type","BL_CODES$1","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank2","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","adler32_1","adler","pos","s1","crcTable","Uint32Array","table","makeTable","crc32_1","crc","messages","2","1","0","-1","-2","-3","-4","-5","-6","constants$2","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","Z_NO_FLUSH$2","Z_FULL_FLUSH$1","Z_FINISH$3","Z_BLOCK$1","Z_OK$3","Z_STREAM_END$3","Z_STREAM_ERROR$2","Z_DATA_ERROR$2","Z_BUF_ERROR$1","Z_DEFAULT_COMPRESSION$1","Z_DEFAULT_STRATEGY$1","Z_DEFLATED$2","err","errorCode","msg","zero","HASH","prev","hash_shift","hash_mask","flush_pending","avail_out","output","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","size","avail_in","input","next_in","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","limit","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","head","insert","ins_h","deflate_fast","flush","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","func","configuration_table","Config","max_block_size","pending_buf_size","max_start","status","gzhead","gzindex","method","last_flush","w_bits","hash_bits","Uint16Array","HEAP_SIZE","MAX_BITS","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","DeflateState","deflate_1$2","deflateInit","deflateSetHeader","deflate","beg","old_flush","text","hcrc","comment","time","os","level_flags","charCodeAt","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","dictLength","tmpDict","avail","next","deflateInfo","_has","common","sources","source","TypeError","chunks","result","chunk","STR_APPLY_UIA_OK","fromCharCode","apply","_utf8len","q2","strings","TextEncoder","encode","c22","m_pos","str_len","buf_len","TextDecoder","decode","out","utf16buf","c_len","buf2binstring","zstream","toString$1","Z_NO_FLUSH$1","Z_FINISH$2","Z_OK$2","Z_STREAM_END$2","Z_DEFLATED$1","chunkSize","opt","raw","gzip","ended","Error","dict","_dict_set","Deflate$1","flush_mode","_flush_mode","onData","onEnd","inffast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","mode","sane","lbase","lext","dbase","dext","inftrees","lens","lens_index","codes","table_index","work","incr","fill","low","mask","sym","root","curr","drop","left","used","huff","base_index","MAXBITS","offs","here_bits","here_op","here_val","extra_index","Z_FINISH$1","Z_OK$1","Z_STREAM_END$1","Z_NEED_DICT$1","Z_STREAM_ERROR$1","Z_DATA_ERROR$1","Z_MEM_ERROR$1","zswap32","havedict","check","total","wbits","ncode","nlen","ndist","have","lendyn","distdyn","back","was","inflateResetKeep","Int32Array","inflateReset","inflateReset2","inflateInit2","InflateState","lenfix","distfix","virgin","fixedtables","updatewindow","src","inflate_1$2","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","order","done","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","dictid","inflateInfo","gzheader","to","Inflate$1","last_avail_out","next_out_utf8","tail","utf8str","base64map","crypt","rotl","rotr","endian","randomBytes","bytes","floor","random","bytesToWords","words","wordsToBytes","bytesToHex","hex","hexToBytes","bytesToBase64","base64","triplet","base64ToBytes","imod4","pow","charenc","utf8","stringToBytes","bin","unescape","encodeURIComponent","bytesToString","escape","charenc_1","isBuffer_1","readFloatLE","isBuffer","isSlowBuffer","_isBuffer","isBuffer2","md5","message","encoding","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","_blocksize","_digestsize","digestbytes","asBytes","asString","UP","DOWN","NORTH","EAST","SOUTH","WEST","E","R","ht","Pt","Et","At","Ct","Rt","Nt","kt","Tt","_t","ALL","normal","towards","readNumber","readInt","readString","readBoolean","readObject","readArray","e3","t4","readMap","fromEntries","compose","properties","S","N","Name","Properties","AIR","minY","storage","SIZE","palette","findIndex","WIDTH","height","sections","sectionsCount","maxY","maxSection","minSection","getSectionIndex","getBlockState","getOrCreateSection","setBlockState","fromBlockPos","fromLong","BigInt","minBlockX","minBlockZ","maxBlockX","maxBlockZ","seed","setSeed","V","nextLong","MULTIPLIER","MODULUS_MASK","INCREMENT","advance","MODULUS_BITS","FLOAT_MULTIPLIER","DOUBLE_MULTIPLIER","W","upgradeSeedTo128bit","SILVER_RATIO_64","GOLDEN_RATIO_64","mixStafford13","getSeed","LongfromBytes","rotateLeft","o3","nextBits","xo","nextDouble","yo","zo","nextInt","Y","F2","G2","getCornerNoise3D","S2","B","I2","E2","C2","R2","N2","gradDot","GRADIENT","sqrt","sampleAndLerp","D","U","fork","noiseLevels","i3","J","forkWithHashOf","consume","amplitudes","lowestFreqInputFactor","lowestFreqValueFactor","sample","Z","cellWidth","cellHeight","minLimitNoise","maxLimitNoise","mainNoise","xzScale","yScale","xzMainScale","xzFactor","yMainScale","yFactor","getOctaveNoise","o4","a3","X","fromJson","xz_scale","y_scale","xz_factor","y_factor","firstOctave","first","second","valueFactor","G","INPUT_FACTOR","q","K","coordinate","points","s3","derivative","addPoint","locations","derivatives","toJson","rotate","up","down","north","east","south","west","r3","parameters","Param","temperature","humidity","continentalness","erosion","weirdness","O","distance","ParamPoint","TargetPoint","Parameters","things","build","CHILDREN_PER_NODE","e4","e5","i4","s4","space","abs","bucketize","area","toArray","thing","RTree","RNode","buildSpace","union","RSubTree","RLeaf","biome","Ot","offsetSampler","factorSampler","jaggednessSampler","Lt","EXTRACTOR","factor","jaggedness","GLOBAL_OFFSET","continents","ridges","peaksAndValleys","buildErosionOffsetSpline","CONTINENTS","getErosionFactor","buildErosionJaggednessSpline","WEIRDNESS","EROSION","RIDGES","buildMountainRidgeSplineWithPoints","ridgeSpline","mountainContinentalness","calculateMountainRidgeZeroContinentalnessPoint","calculateSlope","buildRidgeJaggednessSpline","buildWeirdnessJaggednessSpline","extractor","fromList","filler","noise000","noise001","noise100","noise101","noise010","noise011","noise110","noise111","valueXZ00","valueXZ10","valueXZ01","valueXZ11","valueZ0","valueZ1","slice0","Dt","allocateSlice","cellCountY","cellCountXZ","slice1","fillSlice","firstCellX","firstCellZ","cellCountNoiseMinY","interpolators","terrainInfo","Map","shiftedX","shiftedZ","terrainInfoBuffer","baseNoise","makeBaseNoiseFiller","initializeForFirstCellX","advanceCellX","selectCellYZ","updateForY","updateForX","updateForZ","swapSlices","getOffset","getContinentalness","getWeirdness","getErosion","getTerrainInfo","min_y","xzSize","size_horizontal","ySize","size_vertical","densityFactor","density_factor","densityOffset","density_offset","sampling","topSlide","top_slide","bottomSlide","bottom_slide","terrainShaper","terrain_shaper","useSimplexSurfaceNoise","simplex_surface_noise","randomDensityOffset","random_density_offset","islandNoiseOverride","island_noise_override","isAmplified","amplified","useLegacyRandom","use_legacy_random","settings","blendedNoise","temperatureNoise","humidityNoise","continentalnessNoise","erosionNoise","weirdnessNoise","offsetNoise","jaggedNoise","shaper","createNoiseInterpolator","calculateBaseNoise","point","getTemperature","getHumidity","computeDimensionDensity","sampleJaggedNoise","applySlide","biomeSource","noise","sampler","Xt","octaves","legacyRandomSource","materialRule","updateNoiseAndGenerateBaseState","Ut","minBlockY","getShiftedX","getShiftedZ","getBiome","r4","u4","f3","defaultBlock","seaLevel","defaultFluid","wasm","structures","default_block","default_fluid","bedrockRoofPosition","bedrock_roof_position","bedrockFloorPosition","bedrock_floor_position","sea_level","disableMobGeneration","disable_mob_generation","aquifersEnabled","aquifers_enabled","noiseCavesEnabled","noise_caves_enabled","deepslateEnabled","deepslate_enabled","oreVeinsEnabled","ore_veins_enabled","noodleCavesEnabled","noodle_caves_enabled","legacy_random_source","stronghold","spread","spacing","t5","separation","salt","cachedTextDecoder","ignoreBOM","fatal","cachegetUint8Memory0","ptr","buffer","memory","u32CvtShim","int64CvtShim","BigInt64Array","cachegetInt32Memory0","cachegetFloat64Memory0","Float64Array","WASM_VECTOR_LEN","arg","malloc","cachegetUint32Memory0","t_min","t_max","h_min","h_max","c_min","c_max","e_min","e_max","w_min","w_max","d_min","d_max","ptr0","passArrayF64ToWasm0","__wbindgen_malloc","len0","ptr1","len1","ptr2","len2","ptr3","len3","ptr4","len4","ptr5","len5","ptr6","len6","ptr7","len7","ptr8","len8","ptr9","len9","ptr10","len10","ptr11","len11","ptr12","len12","ptr13","passArray32ToWasm0","len13","biome_parameters","ParameterList","__wrap","t_first","t_amplitudes","h_first","h_amplitudes","c_first","c_amplitudes","e_first","e_amplitudes","w_first","w_amplitudes","s_first","s_amplitudes","low0","high0","climate_sampler","Sampler","instance","klass","x_from","x_to","x_step","y_from","y_to","y_step","z_from","z_to","z_step","retptr","__wbindgen_add_to_stack_pointer","multi_noise","r0","getInt32Memory0","r1","v0","__wbindgen_free","climate_noise","getFloat64Memory0","__destroy_into_raw","__wbg_parameterlist_free","__wbg_sampler_free","async","URL","import_meta","imports","wbg","__wbindgen_throw","arg0","arg1","getStringFromWasm0","Request","fetch","module","Response","WebAssembly","instantiateStreaming","headers","arrayBuffer","instantiate","Instance","load","__wbindgen_wasm_module","rfdc_1","circles","refs","refsNew","proto","Date","cloneArray","cloneProto","o22","cur","ArrayBuffer","isView","copyBuffer","clone","a22","rfdcCircles","Buffer","byteOffset","Collections","register","core_12","StringNode2","Reference2","ObjectNode","Opt","forceRange","bounds","allowBinomial","choiceContext","minecraft:alternative","terms","minecraft:block_state_property","block","minecraft:damage_source_properties","predicate","minecraft:entity_properties","entity","minecraft:entity_scores","scores","Range","minecraft:inverted","term","minecraft:killed_by_player","inverse","minecraft:location_check","offsetX","offsetY","offsetZ","minecraft:match_tool","minecraft:random_chance","chance","minecraft:random_chance_with_looting","looting_multiplier","minecraft:reference","minecraft:table_bonus","enchantment","chances","minecraft:time_check","period","minecraft:weather_check","raining","thundering","Common_12","StateChoice","item","tag","durability","potion","nbt","enchantments","levels","fluid","position","feature","dimension","light","LocationFields","stat","minecraft:mined","minecraft:crafted","minecraft:used","minecraft:broken","minecraft:picked_up","minecraft:dropped","minecraft:killed","minecraft:killed_by","minecraft:custom","gamemode","advancements","recipes","stats","amplifier","duration","ambient","visible","absolute","horizontal","team","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","effects","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","Advancement","core_1","Common_1","Predicates_1","display","icon","title","description","background","frame","show_toast","announce_to_chat","hidden","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","conditions","minecraft:bee_nest_destroyed","num_bees_inside","minecraft:bred_animals","partner","child","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","victims","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","villager","zombie","minecraft:effects_changed","minecraft:enter_block","minecraft:enchanted_item","minecraft:entity_hurt_player","damage","minecraft:entity_killed_player","killing_blow","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:inventory_changed","slots","empty","occupied","full","items","minecraft:item_durability_changed","delta","minecraft:killed_by_crossbow","unique_entity_types","minecraft:levitation","minecraft:location","minecraft:nether_travel","entered","exited","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","recipe","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:shot_crossbow","minecraft:summoned_entity","minecraft:tame_animal","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile","Condition","ObjectOrList","condition","ConditionCases","LootContext","requires","allows","LootTable","LootContext_1","functionsAndConditions","functions","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","LootTableTypes","conditionSwtichNode","compileSwitchNode","LootConditions","functionSwtichNode","LootFunctions","entitySourceSwtichNode","LootEntitySources","copySourceSwtichNode","LootCopySources","pools","rolls","bonus_rolls","weightMod","weight","quality","minecraft:alternatives","minecraft:dynamic","minecraft:group","minecraft:item","minecraft:loot_table","minecraft:sequence","minecraft:tag","expand","minecraft:apply_bonus","formula","bonusMultiplier","probability","minecraft:copy_name","minecraft:copy_nbt","ops","getter","minecraft:copy_state","minecraft:enchant_randomly","minecraft:enchant_with_levels","treasure","minecraft:exploration_map","destination","decoration","zoom","search_radius","skip_existing_chunks","minecraft:fill_player_head","minecraft:limit_count","minecraft:looting_enchant","minecraft:set_attributes","modifiers","minecraft:set_contents","minecraft:set_count","minecraft:set_damage","minecraft:set_loot_table","minecraft:set_lore","lore","minecraft:set_name","minecraft:set_nbt","minecraft:set_stew_effect","attribute","amount","operation","slot","StringOrList","PackMcmeta","pack","pack_format","Recipe","minecraft:crafting_shaped","group","pattern","minecraft:crafting_shapeless","ingredients","minecraft:smelting","ingredient","cookingtime","minecraft:blasting","minecraft:smoking","minecraft:campfire_cooking","minecraft:stonecutting","minecraft:smithing","addition","Tags","TagBase","required","TextComponent","getSimpleString","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","change_page","copy_to_clipboard","open_file","open_url","run_command","leadingSlash","allowPartial","suggest_command","hoverEvent","show_text","show_item","show_entity","translate","with","score","isScoreHolder","objective","selector","keybind","interpret","schemas","Advancement_1","Condition_1","LootTable_1","PackMcmeta_1","Recipe_1","Tags_1","TextComponent_1","initCommonSchemas","initPredicatesSchemas","initAdvancementSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","__setModuleDefault","__importStar","mod","__esModule","lib","Collections_1","schemas_1","CollectionRegistry","initCollections","getSchemas_1","SchemaRegistry","initSchemas","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","maxSpread","ObjectOrPreset","minecraft:overworld","DefaultDimensionType","minecraft:the_nether","shrunk","fixed_time","minecraft:the_end","DefaultNoiseSettings","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands","EntityPredicate","minecraft:item_used_on_block","minecraft:player_generates_container_loot","loot_table","minecraft:player_interacted_with_entity","minecraft:target_hit","projectile","shooter","signal_strength","minecraft:thrown_item_picked_up_by_entity","Dimension","NoPreset","DimensionTypePresets","generator","minecraft:noise","NoiseSettingsPresets","biome_source","minecraft:fixed","minecraft:multi_noise","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","minecraft:checkerboard","scale","minecraft:vanilla_layered","large_biomes","legacy_biome_init_layer","minecraft:flat","lakes","features","layers","altitude","DimensionType","Predicates","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome","surface_builder","downfall","precipitation","temperature_modifier","player_spawn_friendly","creature_spawn_probability","sky_color","fog_color","water_color","water_fog_color","grass_color","foliage_color","grass_color_modifier","ambient_sound","mood_sound","sound","tick_delay","block_search_extent","additions_sound","tick_chance","music","min_delay","max_delay","replace_current_music","particle","starts","spawners","minCount","maxCount","spawn_costs","energy_budget","charge","carvers","Carver","Decorator","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","UniformInt","minecraft:carving_mask","step","minecraft:chance","minecraft:count","minecraft:count_extra","extra_count","extra_chance","minecraft:count_multilayer","minecraft:count_noise","noise_level","below_noise","above_noise","minecraft:count_noise_biased","noise_to_count_ratio","noise_factor","noise_offset","minecraft:decorated","outer","inner","minecraft:depth_average","baseline","minecraft:fire","minecraft:glowstone","minecraft:lava_lake","minecraft:range","minecraft:range_biased","minecraft:range_very_biased","minecraft:water_lake","ProcessorList","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","minecraft:block_age","mossiness","minecraft:block_ignore","blocks","minecraft:block_rot","integrity","minecraft:gravity","heightmap","minecraft:rule","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","minecraft:axis_aligned_linear_pos","axis","minecraft:linear_pos","minecraft:block_match","minecraft:blockstate_match","block_state","minecraft:random_block_match","minecraft:random_blockstate_match","minecraft:tag_match","Feature","RandomPatchConfig","can_replace","project","need_water","xspread","yspread","zspread","tries","state_provider","block_placer","whitelist","blacklist","DiskConfig","radius","half_height","targets","HugeMushroomConfig","cap_provider","stem_provider","foliage_radius","OreConfig","Feature2","minecraft:bamboo","minecraft:basalt_columns","reach","minecraft:block_pile","decorator","minecraft:delta_feature","rim","rim_size","minecraft:disk","minecraft:emerald_ore","minecraft:end_gateway","exit","minecraft:end_spike","crystal_invulnerable","crystal_beam_target","spikes","centerX","centerZ","guarded","minecraft:fill_layer","minecraft:flower","minecraft:forest_rock","minecraft:huge_brown_mushroom","minecraft:huge_fungus","hat_state","decor_state","stem_state","valid_base_block","planted","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:iceberg","minecraft:lake","minecraft:nether_forest_vegetation","minecraft:netherrack_replace_blobs","minecraft:no_bonemeal_flower","minecraft:no_surface_ore","minecraft:ore","minecraft:random_patch","minecraft:random_boolean_selector","feature_false","feature_true","minecraft:random_selector","minecraft:sea_pickle","minecraft:seagrass","minecraft:simple_block","to_place","place_on","place_in","place_under","minecraft:simple_random_selector","minecraft:spring_feature","rock_count","hole_count","requires_block_below","valid_blocks","minecraft:tree","max_water_depth","ignore_vines","minimum_size","trunk_provider","leaves_provider","trunk_placer","base_height","height_rand_a","height_rand_b","foliage_placer","minecraft:blob_foliage_placer","minecraft:bush_foliage_placer","minecraft:fancy_foliage_placer","minecraft:jungle_foliage_placer","minecraft:mega_pine_foliage_placer","crown_height","minecraft:pine_foliage_placer","minecraft:spruce_foliage_placer","trunk_height","decorators","minecraft:alter_ground","provider","minecraft:beehive","minecraft:cocoa","min_clipped_height","minecraft:two_layers_feature_size","lower_size","upper_size","minecraft:three_layers_feature_size","upper_limit","middle_size","minecraft:rotated_block_provider","minecraft:simple_state_provider","minecraft:weighted_state_provider","minecraft:column_placer","min_size","extra_size","NoiseSettings","StructureFeature","templatePoolConfig","start_pool","minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:mineshaft","minecraft:ocean_ruin","biome_temp","large_probability","cluster_probability","minecraft:pillager_outpost","minecraft:ruined_portal","portal_type","minecraft:shipwreck","is_beached","minecraft:village","SurfaceBuilder","top_material","under_material","underwater_material","snowy","TemplatePool","Processors","elements","element_type","projection","minecraft:feature_pool_element","minecraft:legacy_single_pool_element","minecraft:list_pool_element","minecraft:single_pool_element","worldgen","Biome_1","Carver_1","Decorator_1","Feature_1","NoiseSettings_1","ProcessorList_1","StructureFeature_1","SurfaceBuilder_1","TemplatePool_1","initBiomeSchemas","initCarverSchemas","initDecoratorSchemas","initFeatureSchemas","initNoiseSettingsSchemas","initProcessorListSchemas","initStructureFeatureSchemas","initSurfaceBuilderSchemas","initTemplatePoolSchemas","WorldSettings","generate_features","bonus_chest","dimensions","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","minecraft:lightning_strike","lightning","bystander","minecraft:using_item","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","defaultCase","minecraft:constant","minecraft:uniform","minecraft:binomial","minecraft:score","minecraft:context","minecraft:storage","min_inclusive","max_exclusive","minecraft:clamped_normal","mean","deviation","minecraft:trapezoid","plateau","FloatProvider","max_inclusive","minecraft:biased_to_bottom","minecraft:clamped","IntProvider","above_bottom","below_top","minecraft:very_biased_to_bottom","entitySourceNode","minecraft:value_check","range","copySourceNode","minecraft:set_banner_pattern","patterns","append","minecraft:set_enchantments","ItemModifier","FunctionCases","conditionIDSwtichNode","functionIDSwtichNode","_p","looking_at","stepping_on","passenger","lightning_bolt","blocks_set_on_fire","entity_struck","separator","CanyonConfig","vertical_rotation","shape","distance_factor","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","CaveConfig","horizontal_radius_multiplier","vertical_radius_multiplier","floor_level","lava_level","debug_settings","debug_mode","air_state","water_state","lava_state","barrier_state","minecraft:canyon","minecraft:cave","minecraft:nether_cave","minecraft:cave_surface","surface","floor_to_ceiling_search_range","minecraft:heightmap","minecraft:heightmap_spread_double","minecraft:water_depth_threshold","minecraft:protected_blocks","TargetBlockState","discard_chance_on_air_exposure","VegetationPatchConfig","vertical_range","extra_bottom_block_chance","extra_edge_column_chance","vegetation_chance","xz_radius","replaceable","ground_state","vegetation_feature","minecraft:decorated_flower","minecraft:dripstone_cluster","max_stalagmite_stalactite_height_diff","height_deviation","dripstone_block_layer_thickness","density","wetness","chance_of_dripstone_column_at_max_distance_from_center","max_distance_from_edge_affecting_chance_of_dripstone_column","max_distance_from_center_affecting_height_bias","minecraft:fossil","max_empty_corners_allowed","fossil_structures","overlay_structures","fossil_processors","overlay_processors","minecraft:geode","filling_provider","inner_layer_provider","alternate_inner_layer_provider","middle_layer_provider","outer_layer_provider","inner_placements","cannot_replace","invalid_blocks","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","outer_wall_distance","distribution_points","point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","minecraft:glow_lichen","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","minecraft:growing_plant","direction","allow_water","height_distribution","body_provider","head_provider","minecraft:large_dripstone","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","minecraft:replace_single_block","minecraft:root_system","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","allowed_vertical_water_for_tree","root_replaceable","root_state_provider","hanging_root_state_provider","minecraft:scattered_ore","minecraft:small_dripstone","max_placements","empty_space_search_radius","max_offset_from_origin","chance_of_taller_dripstone","force_dirt","dirt_provider","sapling_provider","foliage_provider","minecraft:bending_trunk_placer","bend_length","min_height_for_leaves","minecraft:random_spread_foliage_placer","foliage_height","leaf_placement_attempts","minecraft:underwater_magma","floor_search_range","placement_radius_around_floor","placement_probability_per_valid_position","minecraft:vegetation_patch","minecraft:waterlogged_vegetation_patch","minecraft:randomized_int_state_provider","property","min_surface_level","minecraft:nether_fossil","ItemModifier_1","initItemModifierSchemas","minecraft:fall_from_height","start_position","minecraft:ride_entity_in_lava","Model","Vec","Texture","ambientocclusion","gui_light","textures","rotation","origin","angle","NumberEnum","rescale","shade","faces","texture","uv","cullface","tintindex","translation","overrides","layer0","BlockDefinition","variants","multipart","when","VariantChildren","uvlock","OR","assets","Model_1","BlockDefinition_1","initBlockDefinitionSchemas","initModelSchemas","DefaultStructureSettings","minecraft:igloo","minecraft:mansion","minecraft:jungle_pyramid","minecraft:stronghold","minecraft:desert_pyramid","minecraft:fortress","minecraft:endcity","minecraft:swamp_hut","minecraft:monument","surface_rule","sequence","minecraft:weighted_list","distribution","minecraft:set_potion","ClimateParameter","minecraft:block_filter","minecraft:environment_scan","direction_of_search","max_steps","target_condition","minecraft:scatter","xz_spread","y_spread","minecraft:surface_relative_threshold","minecraft:block_column","allowed_placement","prioritize_tip","minecraft:pointed_dripstone","chance_of_directional_spread","chance_of_spread_radius2","chance_of_spread_radius3","NoiseProvider","MIN_VALUE","minecraft:dual_noise_provider","variety","InclusiveRange","slow_noise","slow_scale","states","minecraft:noise_threshold_provider","threshold","high_chance","default_state","low_states","high_states","minecraft:noise_provider","minecraft:all_of","predicates","minecraft:any_of","minecraft:matching_blocks","minecraft:matching_fluids","fluids","minecraft:not","minecraft:would_survive","SurfaceRule","minecraft:block","result_state","minecraft:condition","if_true","then_run","minecraft:biome","biome_is","minecraft:noise_threshold","min_threshold","max_threshold","invert","minecraft:stone_depth","surface_type","add_run_depth","minecraft:vertical_gradient","random_name","true_at_and_below","false_at_and_above","minecraft:water","run_depth_multiplier","add_stone_depth","minecraft:y_above","anchor","is_biome","SurfaceRule_1","initSurfaceRuleSchemas","assets_1","initAssetsSchemas","displayName","isReactComponent","__f","isPureReactComponent","__u","__R","n4","__O","delete","revealOrder","F","reverse","for","configurable","writable","cancelBubble","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","multiple","selected","defaultValue","className","$$typeof","performance","now","HowlerGlobal2","init","self2","Howler2","_counter","_html5AudioPool","html5PoolSize","_codecs","_howls","_muted","_volume","_canPlayEvent","_navigator","navigator","masterGain","noAudio","usingWebAudio","autoSuspend","ctx","autoUnlock","_setup","volume","vol","gain","setValueAtTime","currentTime","_webAudio","ids","_getSoundIds","_soundById","_node","mute","muted","stop","unload","close","codecs","ext","_autoSuspend","Audio","oncanplaythrough","_setupCodecs","audioTest","err2","canPlayType","mpegTest","ua","userAgent","checkOpera","isOldOpera","checkSafari","safariVersion","isOldSafari","mp3","mpeg","opus","ogg","oga","wav","aac","caf","m4a","m4b","mp4","weba","webm","dolby","flac","_unlockAudio","_audioUnlocked","_mobileUnloaded","sampleRate","_scratchBuffer","createBuffer","unlock","audioNode","_unlocked","_releaseHtml5Audio","_autoResume","createBufferSource","connect","noteOn","resume","onended","disconnect","_emit","_obtainHtml5Audio","testPlay","play","catch","audio","suspend","_sounds","_paused","_suspendTimer","handleSuspension","_resumeAfterSuspend","Howl2","_autoplay","autoplay","_format","format","_html5","html5","_loop","loop","_pool","_preload","preload","_rate","rate","_sprite","sprite","_src","_xhr","xhr","withCredentials","_duration","_state","_endTimers","_queue","_playLock","_onend","onend","_onfade","onfade","_onload","onload","_onloaderror","onloaderror","_onplayerror","onplayerror","_onpause","onpause","_onplay","onplay","_onstop","onstop","_onmute","onmute","_onvolume","onvolume","_onrate","onrate","_onseek","onseek","_onunlock","onunlock","_onresume","protocol","Sound2","internal","num","_ended","_id","_inactiveSound","soundId","_loadQueue","seek","_seek","timeout","setParams","_start","_stop","playWebAudio","_refreshBuffer","_playStart","bufferSource","noteGrainOn","once","_clearTimer","playHtml5","playbackRate","paused","loadedNoReadyState","ejecta","readyState","isCocoonJS","pause","_rateSeek","_stopFade","noteOff","_cleanBuffer","_clearSound","_interval","fade","linearRampToValueAtTime","_startFadeInterval","isGroup","diff","steps","stepLen","lastTick","_fadeTo","setInterval","tick","round","cancelScheduledValues","loopStart","loopEnd","playing","realTime","rateSeek","seekAndEmit","emitSeek","sounds","_errorFn","_loadFn","_endFn","remCache","cache","on","events","off","isId","task","_drain","cnt","_panner","isIOS","vendor","howl","_parent","createGain","createGainNode","_errorListener","_loadListener","_endListener","ceil","__default","loadBuffer","atob","dataView","XMLHttpRequest","open","responseType","setRequestHeader","response","onerror","safeXhrSend","send","decodeAudioData","arraybuffer","success","loadSound","setupAudioContext","AudioContext","webkitAudioContext","iOS","platform","appVersion","version","safari","global","HowlerGlobal","Howler","Howl","Sound","_super","_pos","_orientation","stereo","pan","z2","positionX","setTargetAtTime","positionY","positionZ","setPosition","orientation","xUp","yUp","zUp","or","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","_stereo","_pannerAttr","coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","panningModel","refDistance","rolloffFactor","_onstereo","onstereo","_onpos","onpos","_onorientation","onorientation","pannerType","createStereoPanner","orientationX","orientationY","orientationZ","pannerAttr","_coneInnerAngle","_coneOuterAngle","_coneOuterGain","_distanceModel","_maxDistance","_refDistance","_rolloffFactor","_panningModel","pa","panner","setupPanner","createPanner","esmEntry$1","defaults$5","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitize","sanitizer","smartLists","smartypants","tokenizer","walkTokens","xhtml","defaults","getDefaults","getDefaults$1","changeDefaults","newDefaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","&","<",">","\"","'","getEscapeReplacement","ch","unescapeTest","html","substring","caret","nonWordAndColonTest","originIndependentUrl","baseUrls","justDomain","domain","rtrim$1","relativeBase","suffLen","currChar","helpers","unescape$1","edit","regex","getRegex","RegExp","cleanUrl","prot","resolveUrl","encodeURI","noopTest","merge","splitCells","tableRow","cells","escaped","trim","rtrim","findClosingBracket","checkSanitizeDeprecation","repeatString","defaults$4","escape$2","cap","link","lexer","inLink","token","tokens","inlineTokens","Tokenizer_1$1","newline","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","indentCodeCompensation","lang","heading","trimmed","inline","hr","blockquote","blockTokens","istask","ischecked","indent","blankLine","endsWithBlankLine","line","lines","itemContents","bull","isordered","ordered","itemRegex","trimLeft","nextBulletRegex","trimRight","top","pre","def","align","rows","row","lheading","paragraph","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","linkLen","outputLink","_escapes","links","reflink","nolink","maskedSrc","prevChar","emStrong","lDelim","nextChar","punctuation","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","lastIndex","text2","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","del","mangle2","autolink","prevCapZero","_backpedal","smartypants2","merge$1","block$1","noopTest2","_paragraph","_label","_title","bullet","listItemStart","_tag","_comment","inline$1","reflinkSearch","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","Tokenizer$2","defaults$3","Lexer_1$1","inlineQueue","rules2","Lexer","lex","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startBlock","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","lastIndexOf","codespan","startInline","inlineText","defaults$2","escape$1","Renderer_1$1","infostring","quote","slugger","slug","body","content","TextRenderer_1$1","Slugger_1$1","seen","originalSlug","isDryRun","occurenceAccumulator","serialize","getNextSafeSlug","dryrun","Renderer$2","TextRenderer$2","Slugger$2","defaults$1","Parser_1$1","textRenderer","Parser","parseInline","cell","itemBody","checkbox","l4","renderers","parser","tablecell","tablerow","unshift","listitem","image","Lexer$1","Parser$1","Tokenizer$1","Renderer$1","TextRenderer$1","Slugger$1","callback","marked$1","setOptions","use","childTokens","hasExtensions","prevRenderer","args2","prop","prevTokenizer","lexInline","Renderer","TextRenderer","Tokenizer","Slugger","marked","Lexer2","Parser2","Tokenizer2","Renderer2","TextRenderer2","Slugger2","esmEntry"],"mappings":"4bAAG,WAAA,IAACA,EAAIC,EAAEC,EAAEC,EAAIC,EAAE,GAAGC,EAAE,GAAGC,EAAE,oEAAoE,WAAWC,EAAEC,WAAWC,KAAKD,IAAIC,GAAGD,EAAEC,UAAUF,EAAE,WAAWA,OAAOC,EAAED,EAAEG,cAAcF,EAAEG,YAAYJ,GAAG,WAAWA,EAAEC,EAAEC,OAAOG,EAAEC,EAAEC,EAAEC,EAAEC,UAAUC,EAAE,OAAOH,KAAKN,EAAE,OAAOM,EAAEF,EAAEJ,EAAEM,GAAG,OAAOA,EAAED,EAAEL,EAAEM,GAAGG,EAAEH,GAAGN,EAAEM,MAAME,UAAUE,OAAO,MAAMT,EAAE,CAACA,GAAGK,EAAE,EAAEA,EAAEE,UAAUE,OAAOJ,MAAMK,KAAKJ,EAAED,OAAO,MAAAL,MAAYW,SAASX,GAAG,mBAAmBF,GAAG,MAAAA,EAAQc,iBAAiBP,KAAKP,EAAEc,kBAAa,IAASJ,EAAEH,OAAOA,GAAGP,EAAEc,aAAaP,WAAWQ,EAAEf,EAAEU,EAAEL,EAAEC,EAAE,MAAM,WAAWL,EAAEC,EAAEG,EAAEC,EAAEC,OAAOC,EAAE,CAACQ,KAAKf,EAAEgB,MAAMf,EAAEgB,IAAIb,EAAEc,IAAIb,EAAEc,IAAI,KAAKC,GAAG,KAAKC,IAAI,EAAEC,IAAI,KAAKC,SAAI,EAAOC,IAAI,KAAKC,IAAI,KAAKC,iBAAY,EAAOC,IAAI,MAAArB,IAAUd,EAAEmC,IAAIrB,UAAU,MAAAd,EAAQoC,OAAOpC,EAAEoC,MAAMrB,GAAGA,EAAoC,WAAWR,UAAUA,EAAEa,SAAS,WAAWb,EAAEC,QAAQgB,MAAMjB,EAAE8B,KAAKC,QAAQ9B,EAAE,WAAWD,EAAEC,MAAM,MAAAA,SAAeD,EAAEqB,GAAGW,EAAEhC,EAAEqB,GAAGrB,EAAEqB,GAAGD,IAAIa,QAAQjC,GAAG,GAAG,aAAaE,EAAED,EAAED,EAAEoB,IAAIT,OAAOV,OAAO,SAASD,EAAEoB,IAAInB,KAAK,MAAMC,EAAEqB,WAAWrB,EAAEqB,UAAU,mBAAmBvB,EAAEgB,KAAKgB,EAAEhC,GAAG,KAAK,WAAWA,OAAOC,EAAEC,KAAK,SAASF,EAAEqB,KAAK,MAAArB,EAAQyB,IAAI,KAAKzB,EAAEuB,IAAIvB,EAAEyB,IAAIS,KAAK,KAAKjC,EAAE,EAAEA,EAAED,EAAEoB,IAAIT,OAAOV,OAAO,SAASD,EAAEoB,IAAInB,KAAK,MAAMC,EAAEqB,IAAI,GAAGA,IAAIvB,EAAEyB,IAAIS,KAAKhC,EAAEqB,iBAAiBY,EAAEnC,IAAI,WAAWC,KAAKA,EAAEuB,QAAQA,KAAI,IAAK9B,EAAEkB,KAAKX,KAAKmC,EAAEC,OAAOzC,IAAIH,EAAE6C,wBAAwB7C,EAAE6C,oBAAoB3C,GAAGyC,GAAG,qBAAqBpC,EAAEoC,EAAEC,IAAI3C,EAAEiB,UAAUjB,EAAE6C,MAAK,SAASC,EAAEvC,UAAUuC,EAAEZ,IAAIN,IAAIrB,EAAE2B,IAAIN,OAAM5B,EAAE,GAAGM,EAAEyC,MAAK,SAASD,OAAOvC,EAAEC,EAAEG,EAAEC,EAAEC,EAAEC,IAAIgB,cAAcgB,GAAGZ,KAAKL,OAAOtB,EAAEyC,SAAS,MAAMC,EAAE,GAAGrC,IAAIsB,IAAItB,EAAEsB,IAAI,EAAEgB,EAAEpC,EAAEF,EAAED,EAAEJ,EAAE4C,SAAI,IAAArC,EAAWsC,gBAAgB,MAAMxC,EAAEoB,IAAI,CAACnB,GAAG,KAAKL,EAAE,MAAAK,EAAQyB,EAAE1B,GAAGC,EAAED,EAAEoB,KAAKqB,EAAE7C,EAAEI,GAAGA,EAAEiB,KAAKhB,GAAG4B,EAAE7B,QAAO,WAAWN,EAAEC,EAAEC,EAAEG,EAAEC,EAAEC,EAAEyC,EAAEC,EAAEC,EAAEC,OAAOC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEtD,GAAGA,EAAEe,KAAKtB,EAAE8D,EAAED,EAAEhD,WAAWT,EAAEkB,IAAI,GAAGgC,EAAE,EAAEA,EAAEnD,EAAEU,OAAOyC,OAAO,SAASlD,EAAEkB,IAAIgC,GAAG,SAASnD,EAAEmD,KAAK,kBAAkBG,EAAE,KAAK,iBAAiBA,GAAG,iBAAiBA,GAAG,iBAAiBA,EAAExC,EAAE,KAAKwC,EAAE,KAAK,KAAKA,GAAGM,MAAMC,QAAQP,GAAGxC,EAAEgD,EAAE,CAAClD,SAAS0C,GAAG,KAAK,KAAK,MAAMA,EAAEjC,IAAI,EAAEP,EAAEwC,EAAEvC,KAAKuC,EAAEtC,MAAMsC,EAAErC,IAAI,KAAKqC,EAAE3B,KAAK2B,GAAG,IAAIA,EAAElC,GAAGnB,EAAEqD,EAAEjC,IAAIpB,EAAEoB,IAAI,EAAE,UAAUqC,EAAEP,KAAKE,GAAGC,EAAErC,KAAKoC,EAAEpC,KAAKqC,EAAEvC,OAAOsC,EAAEtC,OAAOoC,QAAG,WAAgBC,EAAE,EAAEA,EAAEO,EAAEP,IAAI,OAAOM,EAAEN,KAAKE,EAAErC,KAAKoC,EAAEpC,KAAKqC,EAAEvC,OAAOsC,EAAEtC,KAAK,GAAGqC,QAAG,UAAe,OAAOrD,EAAEuD,EAAED,EAAEA,GAAGzD,EAAES,EAAEC,EAAEyC,EAAEC,EAAEC,EAAEC,GAAGK,EAAED,EAAEhC,OAAOgC,EAAEpC,MAAMmC,EAAEnC,KAAKkC,UAAU,IAAIC,EAAEnC,KAAKuC,EAAE9C,KAAK0C,EAAEnC,IAAI,KAAKoC,GAAGG,EAAE9C,KAAKyC,EAAEE,EAAE9B,KAAK+B,EAAED,IAAI,MAAMC,GAAG,MAAMC,MAAMD,GAAG,mBAAmBD,EAAEvC,MAAM,MAAMuC,EAAEnC,KAAKmC,EAAEnC,MAAMkC,EAAElC,IAAImC,EAAE/B,IAAI0B,EAAEc,EAAET,EAAEL,EAAElD,GAAGkD,EAAEe,EAAEjE,EAAEuD,EAAED,EAAEK,EAAEH,EAAEN,GAAGC,GAAG,WAAAjD,EAAac,KAAK,mBAAmBd,EAAEc,SAASQ,IAAI0B,GAAGlD,EAAEkE,MAAM,IAAIhB,GAAGI,EAAE/B,KAAK2B,GAAGA,EAAE/C,YAAYH,MAAMgC,EAAEsB,QAAQpD,EAAEqB,IAAIkC,EAAEL,EAAEQ,EAAER,KAAK,MAAMO,EAAEP,KAAK,mBAAmBlD,EAAEc,MAAM,MAAM2C,EAAEP,GAAG7B,KAAKoC,EAAEP,GAAG7B,KAAKrB,EAAEsB,QAAQA,IAAIQ,EAAE3B,EAAE+C,EAAE,IAAIe,EAAER,EAAEP,GAAGO,EAAEP,QAAQM,MAAMN,EAAE,EAAEA,EAAEM,EAAE/C,OAAOyC,MAAMM,EAAEN,GAAGM,IAAIN,GAAGM,IAAIN,IAAI,WAAWpD,EAAEC,EAAEC,OAAOG,EAAEC,MAAMD,EAAE,EAAEA,EAAEL,EAAEoB,IAAIT,OAAON,OAAOL,EAAEoB,IAAIf,QAAQgB,GAAGrB,EAAEC,EAAE,mBAAmBK,EAAEU,KAAKgD,EAAE1D,EAAEL,EAAEC,GAAG+D,EAAE/D,EAAEI,EAAEA,EAAEN,EAAEoB,IAAId,EAAEiB,IAAItB,WAAWA,EAAE,WAAWD,EAAEC,UAAUA,EAAEA,GAAG,GAAG,MAAAD,GAAS,kBAAkBA,UAAU8D,QAAQ9D,GAAGA,EAAEyC,MAAK,SAASD,KAAKA,EAAEvC,MAAKA,EAAEW,KAAKZ,IAAIC,EAAE,WAAWD,EAAEC,EAAEC,EAAEG,EAAEC,EAAEC,OAAOC,EAAEE,EAAEsC,UAAK,IAAS/C,EAAEuB,MAAMvB,EAAEuB,IAAIvB,EAAEuB,SAAI,UAAe,MAAAtB,GAASI,GAAGC,GAAG,MAAMD,EAAEH,gBAAgB,MAAAI,GAASA,EAAEJ,aAAaH,IAAIoE,YAAY9D,GAAGE,EAAE,SAAS,KAAKE,EAAEH,EAAEyC,EAAE,KAAKtC,EAAE2D,cAAcrB,EAAE3C,EAAEM,OAAOqC,GAAG,KAAKtC,GAAGJ,YAAYgE,aAAahE,EAAEC,GAAGC,EAAED,cAAS,IAAAC,EAAWA,EAAEF,EAAE+D,YAAuO,WAAWrE,EAAEC,EAAEC,GAAG,MAAMD,EAAE,GAAGD,EAAEuE,YAAYtE,EAAEC,GAAGF,EAAEC,GAAG,MAAMC,EAAE,GAAG,iBAAiBA,GAAGH,EAAEyE,KAAKvE,GAAGC,EAAEA,EAAE,KAAK,WAAWF,EAAEC,EAAEC,EAAEG,EAAEC,OAAOC,OAAO,UAAAN,KAAe,iBAAiBC,IAAIuE,MAAMC,QAAQxE,MAAM,IAAI,iBAAiBG,MAAMoE,MAAMC,QAAQrE,EAAE,IAAIA,MAAMJ,KAAKI,KAAKJ,KAAKC,GAAGyE,EAAE3E,EAAEyE,MAAMxE,EAAE,OAAOC,MAAMD,KAAKC,KAAKA,EAAED,KAAKI,EAAEJ,IAAI0E,EAAE3E,EAAEyE,MAAMxE,EAAEC,EAAED,YAAY,MAAAA,EAAQ,IAAI,MAAMA,EAAE,KAAKA,OAAOA,EAAE2E,QAAQ,WAAW,KAAK3E,EAAEA,EAAE4E,gBAAgB7E,EAAEC,EAAE4E,cAAcC,MAAM,GAAG7E,EAAE6E,MAAM,GAAG9E,EAAE+E,MAAMA,EAAE,IAAI/E,EAAE+E,EAAE9E,EAAEM,GAAGL,EAAEA,EAAEG,GAAGL,EAAEgF,iBAAiB/E,EAAEM,EAAE0E,EAAEC,EAAE3E,GAAGP,EAAEmF,oBAAoBlF,EAAEM,EAAE0E,EAAEC,EAAE3E,WAAW,4BAA4BN,EAAE,IAAIK,IAAIL,EAAE2E,QAAQ,aAAa,KAAKA,QAAQ,SAAS,aAAa,SAAA3E,GAAY,SAASA,GAAG,SAASA,GAAG,aAAAA,GAAgB,aAAAA,GAAgBA,KAAKD,QAAQC,GAAG,MAAMC,EAAE,GAAGA,gBAAgBsC,IAAI,mBAAmBtC,IAAI,MAAMA,KAAI,IAAKA,GAAG,MAAAD,EAAQ,IAAI,MAAMA,EAAE,IAAID,EAAEoF,aAAanF,EAAEC,GAAGF,EAAEqF,gBAAgBpF,KAAK,WAAWA,QAAQ8E,EAAE9E,EAAEe,MAAK,GAAIvB,EAAE6F,MAAM7F,EAAE6F,MAAMrF,GAAGA,GAAG,WAAWA,QAAQ8E,EAAE9E,EAAEe,MAAK,GAAIvB,EAAE6F,MAAM7F,EAAE6F,MAAMrF,GAAGA,GAAG,WAAWA,EAAEC,EAAEG,EAAEC,EAAEC,EAAEC,EAAEE,EAAEsC,EAAEE,OAAOC,EAAEoC,EAAEnC,EAAEoC,EAAElC,EAAEC,EAAEC,EAAEiC,EAAE/B,EAAEgC,EAAE/B,EAAEC,EAAE1D,EAAEc,aAAQ,IAASd,EAAEyB,mBAAmB,KAAK,MAAMtB,EAAEqB,QAAQrB,EAAEqB,IAAIsB,EAAE9C,EAAEqB,IAAIlB,EAAEkB,IAAIrB,EAAEwB,IAAI,KAAKlB,EAAE,CAACwC,OAAOvD,EAAE6B,MAAM6B,EAAEjD,YAAY,mBAAmB0D,EAAE,IAAI6B,EAAEvF,EAAEe,MAAMyC,KAAKE,EAAE+B,cAAcrF,EAAE6C,EAAE1B,KAAKiE,EAAEvC,EAAEO,EAAEA,EAAEzC,MAAMiD,MAAMf,EAAE9B,GAAGf,EAAED,EAAEoB,IAAI+B,KAAKtD,EAAEuB,IAAIpB,EAAEoB,KAAKJ,GAAGkE,EAAEK,mBAAmBhC,GAAGA,EAAEiC,UAAUC,OAAO5F,EAAEuB,IAAI8D,EAAE,IAAI3B,EAAE6B,EAAEC,MAAMjE,IAAI8D,EAAE,IAAIQ,EAAEN,EAAEC,GAAGH,EAAE5D,YAAYiC,EAAE2B,EAAEO,OAAOE,GAAGtC,GAAGA,EAAEuC,IAAIV,GAAGA,EAAEtE,MAAMwE,EAAEF,EAAEW,UAAUA,MAAM,IAAIX,EAAExD,QAAQ2D,EAAEH,EAAE1C,IAAIvC,EAAE8C,EAAEmC,EAAE/D,KAAI,EAAG+D,EAAE7D,IAAI,IAAI,MAAM6D,EAAEY,QAAQA,IAAIZ,EAAEW,OAAO,MAAAtC,EAAQwC,6BAA6BD,KAAKZ,EAAEW,UAAUC,IAAIxD,EAAE,GAAG4C,EAAEY,MAAMxD,EAAE4C,EAAEY,IAAIvC,EAAEwC,yBAAyBX,EAAEF,EAAEY,OAAOX,EAAED,EAAEtE,MAAMqC,EAAEiC,EAAEW,MAAM9C,EAAE,MAAMQ,EAAEwC,0BAA0B,MAAAb,EAAQc,oBAAoBd,EAAEc,qBAAqB,MAAMd,EAAEe,mBAAmBf,EAAE7D,IAAId,KAAK2E,EAAEe,uBAAuB,IAAI,MAAA1C,EAAQwC,0BAA0BX,IAAID,GAAG,MAAMD,EAAEgB,2BAA2BhB,EAAEgB,0BAA0Bd,EAAEC,IAAIH,EAAEhE,KAAK,MAAMgE,EAAEiB,wBAAuB,IAAKjB,EAAEiB,sBAAsBf,EAAEF,EAAEY,IAAIT,IAAIxF,EAAE0B,MAAMvB,EAAEuB,IAAI,GAAGX,MAAMwE,EAAEF,EAAEW,MAAMX,EAAEY,IAAIjG,EAAE0B,MAAMvB,EAAEuB,QAAQJ,KAAI,GAAI+D,EAAE3D,IAAI1B,EAAEA,EAAEqB,IAAIlB,EAAEkB,IAAIrB,EAAEkB,IAAIf,EAAEe,IAAIlB,EAAEkB,IAAIqF,SAAQ,SAASzG,SAASqB,GAAGnB,MAAKqF,EAAE7D,IAAIf,QAAQD,EAAEE,KAAK2E,WAAW,MAAMA,EAAEmB,qBAAqBnB,EAAEmB,oBAAoBjB,EAAEF,EAAEY,IAAIT,GAAG,MAAMH,EAAEoB,oBAAoBpB,EAAE7D,IAAId,MAAK,aAAa+F,mBAAmBnB,EAAElC,EAAEC,QAAOxB,QAAQ2D,EAAEH,EAAEtE,MAAMwE,EAAEF,EAAEW,MAAMX,EAAEY,OAAO1G,EAAE4C,MAAMc,EAAEjD,GAAGqF,EAAE/D,KAAI,EAAG+D,EAAE3D,IAAI1B,EAAEqF,EAAE7C,IAAIzC,EAAEkD,EAAEoC,EAAEO,OAAOP,EAAEtE,MAAMsE,EAAEW,MAAMX,EAAExD,SAASwD,EAAEW,MAAMX,EAAEY,IAAI,MAAAZ,EAAQqB,oBAAoBjE,EAAEA,EAAE,GAAGrC,GAAGiF,EAAEqB,oBAAoBxD,GAAG,MAAAmC,EAAQsB,4BAA4BtB,EAAEsB,wBAAwBrB,EAAElC,IAAIK,EAAE,MAAMR,GAAGA,EAAEnC,OAAO+C,GAAG,MAAAZ,EAAQjC,IAAIiC,EAAElC,MAAMJ,SAASsC,EAAE2D,EAAE7G,EAAE4D,MAAMC,QAAQH,GAAGA,EAAE,CAACA,GAAGzD,EAAEG,EAAEC,EAAEC,EAAEC,EAAEE,EAAEsC,EAAEE,GAAGqC,EAAErD,KAAKhC,EAAEqB,IAAIrB,EAAEwB,IAAI,KAAK6D,EAAE7D,IAAIf,QAAQD,EAAEE,KAAK2E,GAAG/B,MAAMoC,IAAIL,EAAElE,GAAG,MAAMkE,EAAEhE,KAAI,OAAQ,MAAMf,GAAGN,EAAE0B,MAAMvB,EAAEuB,OAAOR,IAAIf,EAAEe,IAAIlB,EAAEqB,IAAIlB,EAAEkB,KAAKrB,EAAEqB,IAA2Q,SAAWvB,EAAEC,EAAEC,EAAEG,EAAEC,EAAEC,EAAEyC,EAAEC,OAAOE,EAAEoC,EAAEnC,EAAE2D,EAAE1D,EAAEnD,EAAEe,MAAMuE,EAAEvF,EAAEgB,MAAMqC,EAAErD,EAAEe,KAAKuC,EAAE,KAAK,QAAAD,OAAc,GAAI,MAAA/C,OAAagD,EAAEhD,EAAEI,OAAO4C,UAAUhD,EAAEgD,UAAUvD,MAAMmD,EAAE6D,WAAW1D,EAAE,GAAGH,EAAE8D,WAAW,GAAG9D,EAAE5C,EAAEgD,GAAG,cAAc,MAAMvD,EAAE,IAAI,OAAAsD,SAAgB4D,SAASC,eAAe3B,KAAKlF,EAAE4G,SAASE,gBAAgB,6BAA6B9D,GAAG4D,SAASG,cAAc/D,EAAEkC,EAAE8B,IAAI9B,GAAGjF,EAAE,KAAK0C,GAAE,KAAM,OAAAK,MAAakC,GAAGvC,GAAGjD,EAAEuH,OAAO/B,MAAM+B,KAAK/B,OAAO,IAAIjF,EAAEA,GAAGT,EAAEgF,MAAM0C,KAAKxH,EAAEyH,YAAYlC,KAAKrF,EAAEe,OAAOpB,GAAG6H,wBAAwBtE,EAAEoC,EAAEkC,yBAAyBzE,EAAE,IAAI,MAAA1C,MAAY8C,EAAE,GAAG0D,EAAE,EAAEA,EAAE/G,EAAE2H,WAAWhH,OAAOoG,MAAM/G,EAAE2H,WAAWZ,GAAGa,MAAM5H,EAAE2H,WAAWZ,GAAG7C,UAAUqB,YAAYnC,EAAEyE,QAAQtC,EAAEsC,QAAQzE,EAAEyE,SAAS7H,EAAE8H,eAAeA,UAAU1E,GAAGA,EAAEyE,QAAQ,QAA34H,SAAW7H,EAAEC,EAAEC,EAAEG,EAAEC,OAAOC,MAAMA,KAAKL,EAAE,aAAaK,GAAG,QAAAA,GAAWA,KAAKN,GAAG8H,EAAE/H,EAAEO,EAAE,KAAKL,EAAEK,GAAGF,OAAOE,KAAKN,KAAK,mBAAmBA,EAAEM,IAAI,aAAAA,GAAgB,QAAQA,GAAG,UAAAA,GAAa,YAAYA,GAAGL,EAAEK,KAAKN,EAAEM,IAAIwH,EAAE/H,EAAEO,EAAEN,EAAEM,GAAGL,EAAEK,GAAGF,GAA2rH2H,CAAEhI,EAAEwF,EAAEnC,EAAE/C,EAAE2C,GAAGG,IAAIhC,IAAI,WAAWmC,EAAEtD,EAAEgB,MAAMJ,SAASiG,EAAE9G,EAAE6D,MAAMC,QAAQP,GAAGA,EAAE,CAACA,GAAGtD,EAAEC,EAAEG,EAAEC,GAAG,kBAAkBgD,EAAE/C,EAAEyC,EAAEhD,EAAEiI,WAAWhF,GAAG,MAAM1C,MAAMgD,EAAEhD,EAAEI,OAAO4C,KAAK,MAAMhD,EAAEgD,IAAI2E,EAAE3H,EAAEgD,kBAAkBiC,QAAG,OAAYA,EAAEtB,aAAalE,EAAEkE,OAAO,aAAAZ,IAAiBC,IAAIwE,EAAE/H,EAAE,QAAQuD,EAAEF,EAAEa,OAAM,GAAI,YAAYsB,QAAG,OAAYA,EAAE2C,UAAU5E,IAAIvD,EAAEmI,SAASJ,EAAE/H,EAAE,UAAUuD,EAAEF,EAAE8E,SAAQ,WAAYnI,EAA9zCoI,CAAE/H,EAAEkB,IAAIrB,EAAEG,EAAEC,EAAEC,EAAEC,EAAEE,EAAEwC,MAAMzD,EAAE4I,SAASlF,EAAEjD,SAASoI,KAAK1G,IAAI,SAAS,MAAMpB,OAAOe,IAAIyB,EAAE9C,EAAEwB,MAAMwB,EAAE1C,EAAEA,EAAEyB,QAAQe,IAAI,MAAMvD,EAAE8B,IAAI+G,EAAEpI,EAAEG,IAAI,WAAWJ,EAAEC,KAAKuB,KAAKhC,EAAEgC,IAAIvB,EAAED,GAAGA,EAAEwC,MAAK,SAAS8F,SAASA,EAAE7G,IAAI6G,EAAE7G,IAAI,GAAGzB,EAAEwC,MAAK,SAASzC,KAAKwH,KAAKe,YAAWD,KAAK/G,IAAI+G,EAAEC,EAAE3G,SAAikC,WAAW3B,EAAEC,EAAEG,OAAO,mBAAmBJ,EAAEA,EAAEC,GAAGD,EAAEuI,QAAQtI,QAAQoI,KAAK/G,IAAI+G,EAAEjI,IAAI,WAAWJ,EAAEC,EAAEG,OAAOC,EAAEC,EAAEC,KAAKf,EAAEgJ,SAAShJ,EAAEgJ,QAAQxI,MAAMA,EAAEkB,SAASqH,SAASlI,EAAEkI,UAAUvI,EAAEsB,KAAKmH,EAAEpI,EAAE,KAAKJ,IAAIG,GAAG,mBAAmBJ,EAAEe,SAAS,SAASf,EAAEsB,MAAMtB,EAAEsB,IAAItB,EAAEuB,SAAI,EAAO,SAASvB,EAAEwB,KAAK,IAAInB,EAAEqI,2BAA2BA,6BAA6BL,KAAK/G,IAAI+G,EAAEpI,KAAKgC,KAAK5B,EAAEoC,IAAI,QAAQpC,EAAEL,EAAEmB,QAAQZ,EAAE,EAAEA,EAAEF,EAAEK,OAAOH,MAAMA,IAAI2D,EAAE7D,EAAEE,GAAGN,EAAEG,GAAG,MAAME,GAAG2H,EAAE3H,GAAG,WAAWP,EAAEC,EAAEC,UAAU4B,KAAKH,YAAY3B,EAAEE,GAAG,WAAWD,EAAEC,EAAEG,OAAOC,EAAEC,EAAEyC,IAAI3B,IAAI5B,EAAE4B,GAAGpB,EAAEC,GAAGK,KAAK,mBAAmBF,GAAG,KAAKA,GAAGA,EAAEe,KAAKlB,EAAEkB,IAAI4B,EAAE,GAAGJ,EAAE1C,EAAED,IAAIK,GAAGD,GAAGH,GAAGkB,IAAIwH,EAAE7E,EAAE,KAAK,CAAC9D,IAAIM,GAAGV,EAAEA,OAAE,IAAAK,EAAW4C,iBAAiBxC,GAAGD,EAAE,CAACA,GAAGE,EAAE,KAAKL,EAAE+H,WAAWnI,EAAEgF,MAAM0C,KAAKtH,EAAEuH,YAAY,KAAKzE,GAAG1C,GAAGD,EAAEA,EAAEE,EAAEA,EAAEgB,IAAIrB,EAAE+H,WAAW3H,GAAGyC,EAAEC,EAAE/C,GAAsvBR,EAAE,CAAC8B,IAAI,SAASvB,EAAEC,WAAWC,EAAEG,EAAEC,EAAEL,EAAEA,EAAEoB,UAAUpB,EAAEwB,OAAOvB,EAAEmB,aAAanB,EAAEyB,cAAc,MAAAtB,EAAQwI,6BAA6BC,SAASzI,EAAEwI,yBAAyB7I,IAAIM,EAAEJ,EAAEsB,KAAK,MAAAtB,EAAQ6I,sBAAsBA,kBAAkB/I,GAAGM,EAAEJ,EAAEsB,KAAKlB,SAASJ,EAAE0F,IAAI1F,QAAQoI,KAAKA,QAAQtI,GAAG4B,IAAI,GAAyDmE,EAAEF,UAAUiD,SAAS,SAAS9I,EAAEC,OAAOC,IAAI,MAAA4B,KAAWqE,KAAKrE,KAAKqE,MAAMrE,KAAKoE,MAAMpE,KAAKqE,IAAIrE,KAAKqE,IAAIxD,EAAE,GAAGb,KAAKoE,OAAO,mBAAmBlG,MAAMA,EAAE2C,EAAE,GAAGzC,GAAG4B,KAAKb,QAAQjB,GAAG2C,EAAEzC,EAAEF,GAAG,MAAAA,GAAS8B,KAAKF,SAASE,KAAKJ,IAAId,KAAKX,GAAG+I,EAAElH,QAAQiE,EAAEF,UAAUoD,YAAY,SAASjJ,QAAQ4B,WAAWL,KAAI,EAAGvB,GAAG8B,KAAKJ,IAAId,KAAKZ,GAAGgJ,EAAElH,QAAQiE,EAAEF,UAAUC,OAAO/B,EAAErE,EAAE,GAAGC,EAAE,mBAAmBuJ,QAAQA,QAAQrD,UAAUsD,KAAKC,KAAKF,QAAQG,WAAWC,WAAWlH,EAAEC,IAAI,ECEjoT,IAAIkH,EAAU,GAEd,WAAgBC,EAAKvI,WAEXZ,KAAKY,IACTZ,GAAKY,EAAMZ,UAETmJ,EAGR,WAAcC,EAAKC,EAAOC,OAIxBC,EAHGC,EAAM,wBACT5G,EAAIwG,EAAIK,MAAMD,GACdE,EAAU,MAEP9G,GAAKA,EAAE,WACNI,EAAIJ,EAAE,GAAG+G,MAAM,KACV3J,EAAE,EAAGA,EAAEgD,EAAE1C,OAAQN,IAAK,KAC1BG,EAAI6C,EAAEhD,GAAG2J,MAAM,OACXC,mBAAmBzJ,EAAE,KAAOyJ,mBAAmBzJ,EAAEsE,MAAM,GAAGoF,KAAK,QAGnEC,EAAWV,EAAI7E,QAAQiF,EAAK,OAC1BM,EAAWT,GAAS,YACxBU,EAAMC,KAAKD,IAAIX,EAAI9I,OAAQ+I,EAAM/I,QAC5B2J,EAAI,EAAGA,EAAIF,EAAKE,OACpBZ,EAAMY,IAA+B,MAAvBZ,EAAMY,GAAKC,OAAO,GAAU,KACzCC,EAAQd,EAAMY,GAAK1F,QAAQ,gBAAiB,IAC/C6F,KAAeH,GAAKR,MAAM,YAAcP,GAAS,IAAM,GACvDmB,GAAQD,EAAMxI,QAAQ,KACtB0I,GAAQF,EAAMxI,QAAQ,KACtB2I,EAAMnB,EAAIa,IAAQ,OACdM,IAAQD,MAAe1I,QAAQ,KAAK,GAAKyI,GAAO,IAC9C,aAGCF,GAASP,mBAAmBW,GAChCF,GAAQC,EAAM,GACTH,GAASf,EAAI3E,MAAMwF,GAAKO,IAAIZ,oBAAoBC,KAAK,oBAItDR,EAAMY,KAAOb,EAAIa,GAAM,IACzB,gBAIW,IAAfX,EAAKmB,UAAwB,IAANlB,IACpBG,EAGR,WAAsB5G,EAAGK,UAEtBL,EAAE4H,KAAOvH,EAAEuH,KAAQ,EAClB5H,EAAE4H,KAAOvH,EAAEuH,QACV5H,EAAE6H,MAAQxH,EAAEwH,MAKjB,WAAgCnJ,EAAOmJ,YAChCA,MAAQA,IACRD,KAgBP,SAAmBlJ,UACXA,EAAMZ,MAAM6J,QAAU,GALhBG,EAKyBpJ,EAAMZ,MAAMgK,KAJ3Cd,EAAWc,GAAMJ,IAAIK,GAAahB,KAAK,KAD/C,IAAce,EAZAE,CAAUtJ,GAChBA,EAAMZ,MAGd,WAAoBwI,UACZA,EAAI7E,QAAQ,eAAgB,IAAIoF,MAAM,KAG9C,WAAqBoB,SACM,KAAnBA,EAAQb,OAAO,GAAW,EAAI,MAAMtI,QAAQmJ,EAAQb,OAAOa,EAAQzK,OAAO,KAAQ,EAAI,EAW9F,IAAI0K,EAAgB,KAEhBC,EAAU,GAEVC,EAAc,GAEdC,EAAQ,GAcZ,iBACK/B,QAUI,OATJ4B,GAAiBA,EAAcI,SAC5BJ,EAAcI,SAEZJ,GAAiBA,EAAcK,mBACjCL,EAAcK,qBAGI,oBAAXD,SAAyBA,SAAWD,GAEhCG,UAAY,OAAWC,QAAU,IAKpD,YAAenC,EAAK7E,eACF,IAAZA,OAA6B,GAEjB,iBAAN6E,GAAkBA,EAAIA,QACtBA,EAAI7E,UACR6E,EAAIA,KAaZ,SAAkBA,WACRpJ,EAAEiL,EAAQ3K,OAAQN,QACtBiL,EAAQjL,GAAGwL,SAASpC,UAAe,SAEjC,EAbHoC,CAASpC,IArCd,SAAgBA,EAAKzI,QACN,IAATA,MAAuB,QAExBqK,GAAiBA,EAAcrK,KACpBA,GAAMyI,GAEK,oBAAVqC,SAAyBA,QAAQ9K,EAAK,kBAC7CA,EAAK,SAAS,KAAM,KAAMyI,IA+B3BA,EAAK7E,EAAU,UAAY,QAG5BmH,GAAQtC,GAchB,YAAiBA,WACZuC,GAAW,EACN3L,EAAE,EAAGA,EAAEiL,EAAQ3K,OAAQN,KACD,IAA1BiL,EAAQjL,GAAG0L,QAAQtC,QACX,WAGJa,EAAIiB,EAAY5K,OAAQ2J,OACpBA,GAAKb,UAEXuC,EAIR,YAAuBC,MAEjBA,GAASA,EAAKC,kBAEfC,EAAOF,EAAKC,aAAa,QAC5BE,EAASH,EAAKC,aAAa,aAGvBC,GAASA,EAAKrC,MAAM,WAAYsC,GAAWA,EAAOtC,MAAM,qBAGtDuC,GAAMF,IAId,YAAyBnJ,QACpBA,EAAEsJ,SAAWtJ,EAAEuJ,SAAWvJ,EAAEwJ,QAAUxJ,EAAEyJ,UAAuB,IAAXzJ,EAAE0J,kBAC5C1J,EAAE2J,eAAiB3J,EAAEoJ,QAAUtK,MACtC8K,GAAQ5J,GAIhB,YAAiBA,UACZA,IACCA,EAAE6J,4BAA8BA,2BAChC7J,EAAE8J,mBAAqBA,oBACzBC,mBAEI,EAIR,YAA6B/J,QAExBA,EAAEsJ,SAAWtJ,EAAEuJ,SAAWvJ,EAAEwJ,QAAUxJ,EAAEyJ,UAAuB,IAAXzJ,EAAE0J,aAEtDpM,EAAI0C,EAAEoJ,aAE8B,MAAnCY,OAAO1M,EAAE2M,UAAUC,eAAuB5M,EAAE4L,aAAa,QAAS,IACjE5L,EAAE6M,aAAa,oBAEfC,GAAc9M,UACVsM,GAAQ5J,UAGR1C,EAAEA,EAAEH,aAIf,IAAIkN,IAA4B,EAiB7B,IAACC,GAAU,SAAUC,cACPtM,KACFuG,KAAK1F,KAAMb,GACpBA,EAAM6K,YACO7K,EAAM6K,cAGlB5F,MAAQ,CACZuD,IAAKxI,EAAMwI,KAAO+D,KAtBhBH,KAE0B,mBAAnBrI,mBACLqG,oBACa,YAAY,cACpBmC,yBAGO,QAASC,SAEC,UAkBvBF,MAAsBG,UAAYH,KAChC1H,UAAY8H,OAAOC,OAAQL,GAAgBA,EAAa1H,aACxDA,UAAUlE,YAAckM,IAExBhI,UAAUW,sBAAwB,SAAgCvF,UACrD,IAAfA,EAAM6M,SACH7M,EAAMwI,MAAM3H,KAAKb,MAAMwI,KAAOxI,EAAM8M,WAAWjM,KAAKb,MAAM8M,aAI3DlI,UAAUgG,SAAW,SAAmBpC,OAC1C5I,EAAWmN,EAAalM,KAAKb,MAAMJ,iBAChCiB,KAAKmM,oBAAoBpN,EAAU4I,GAAK,GAAO9I,OAAS,KAIzDkF,UAAUkG,QAAU,SAAkBtC,QACvCX,SAAS,CAAEW,IAAAA,QAEZuC,EAAWlK,KAAK+J,SAASpC,UAGxB3H,KAAKoM,eAAiBjF,cAEpB+C,KAGDnG,UAAUQ,mBAAqB,aAC7BzF,KAAKkB,WACRoM,UAAW,KAGVrI,UAAUS,kBAAoB,eAChC6H,EAASrM,KAETuJ,SACE+C,SAAW/C,EAAcgD,QAAO,SAAUC,KACvCvC,QAAS,MAAeJ,UAAY,OAAgBC,QAAU,cAGlEsC,UAAW,KAGVrI,UAAU8C,qBAAuB,WACZ,mBAAhB7G,KAAKsM,eAA8BA,aACtCG,OAAOjD,EAAQrJ,QAAQH,MAAO,MAGhC+D,UAAUa,oBAAsB,gBACjCwH,UAAW,KAGVrI,UAAUc,mBAAqB,gBAChCuH,UAAW,KAGVrI,UAAUoI,oBAAsB,SAA8BpN,EAAU4I,EAAK+E,UAC5E3N,EACL4N,OAAOC,GACPnM,KAAKoM,GACL9D,KAAK,SAAUhJ,OACXkI,EAAU6E,EAAKnF,EAAK5H,EAAMZ,MAAMgK,KAAMpJ,EAAMZ,UAC5C8I,EAAS,KACG,IAAXyE,EAAkB,KACjBK,EAAW,CAAEpF,IAAAA,EAAUM,QAAAA,YACpB8E,EAAU9E,UACV8E,EAAS1N,WACT0N,EAAS3N,IDpTkpQ,SAAWlB,EAAEC,EAAEC,OAAOG,EAAEC,EAAEC,EAAEC,EAAEC,UAAUC,EAAEiC,EAAE,GAAG3C,EAAEiB,WAAWV,KAAKN,EAAE,OAAOM,EAAEF,EAAEJ,EAAEM,GAAG,OAAOA,EAAED,EAAEL,EAAEM,GAAGG,EAAEH,GAAGN,EAAEM,MAAME,UAAUE,OAAO,MAAMT,EAAE,CAACA,GAAGK,EAAE,EAAEA,EAAEE,UAAUE,OAAOJ,MAAMK,KAAKJ,EAAED,WAAW,MAAAL,MAAYW,SAASX,GAAGa,EAAEf,EAAEgB,KAAKN,EAAEL,GAAGL,EAAEkB,IAAIZ,GAAGN,EAAEmB,IAAI,MCqT54Q2N,CAAajN,EAAOgN,UAErBhN,MAEN4M,OAAOM,YAGLlJ,UAAUC,OAAS,SAAiB3E,EAAK6N,OAC3CnO,EAAWM,EAAIN,SACfkN,EAAW5M,EAAI4M,SACftE,EAAMuF,EAAMvF,IAEZwF,EAASnN,KAAKmM,oBAAoBD,EAAanN,GAAW4I,GAAK,GAE/DjB,EAAUyG,EAAO,IAAM,KAEvBC,EAAWpN,KAAKqN,mBAChB1F,IAAMyF,SACJC,YAAc1F,EACG,mBAAXsE,KACD,CACRqB,OAAQtN,KACR2H,IAAAA,EACAyF,SAAAA,EACAD,OAAAA,EACAzG,QAAAA,KAKIA,GAGDqF,EAnHM,CAoHZwB,GAEEC,GAAO,SAAUrO,UACpBoG,EAAc,IAAKkI,EAAO,CAAEC,QAASC,IAAmBxO,KAKzDqM,GAAO/B,YAAcA,EACrB+B,GAAOE,cAAgBA,EACvBF,GAAOjB,MAAQA,GACfiB,GAAOA,OAASA,GAChBA,GAAOoC,MANK,SAAUzO,UAAgBoG,EAAcpG,EAAM0O,UAAW1O,IAOrEqM,GAAOgC,KAAOA,GACdhC,GAAOsB,KAAOA,ECrWmB,IAAIhP,GAAEF,GAAEG,GAAE+P,GAAE,EAAEjQ,GAAE,GAAGgD,GAAElD,EAAE6B,IAAIxB,GAAEL,EAAE4C,IAAItC,GAAEN,EAAE4I,OAAOO,GAAEnJ,EAAEgC,IAAIV,GAAEtB,EAAEgJ,QAAQ,YAAWnI,EAAEE,KAAKkB,KAAKjC,EAAEiC,IAAIhC,GAAEY,EAAEsP,IAAGpP,GAAGoP,GAAE,MAAMvP,EAAEX,GAAEmQ,SAAQA,IAAI,CAACxO,GAAG,GAAGK,IAAI,YAAYpB,GAAGD,EAAEgB,GAAGV,QAAQN,EAAEgB,GAAGT,KAAK,IAAIP,EAAEgB,GAAGf,GAAG,YAAWN,UAAU4P,GAAE,EAAS,SAAW5P,EAAEQ,EAAED,OAAOF,EAAEyG,GAAElH,KAAI,UAAUS,EAAET,EAAEI,EAAEK,EAAEoB,QAAQJ,GAAG,CAACd,EAAEA,EAAEC,GAAGsP,QAAE,EAAOtP,GAAG,SAASgC,OAAOlC,EAAED,EAAET,EAAES,EAAEgB,GAAG,GAAGmB,KAAKnB,GAAG,KAAKf,MAAMe,GAAG,CAACf,EAAED,EAAEgB,GAAG,IAAIhB,EAAEoB,IAAIqH,SAAS,OAAOzI,EAAEoB,IAAI/B,IAAGW,EAAEgB,GAAvL0E,CAAE+J,GAAE9P,GAAsL,YAAWQ,EAAED,OAAOF,EAAEyG,GAAElH,KAAI,IAAIH,EAAE0G,KAAK6C,GAAE3I,EAAEwP,IAAItP,OAAOc,GAAGb,EAAEH,EAAEwP,IAAItP,EAAEb,GAAEmQ,IAAInO,IAAId,KAAKP,IAAsF,YAAWL,UAAU4P,GAAE,EAAE5N,IAAE,iBAAiB,CAACwG,QAAQxI,KAAI,IAA8G,YAAWA,EAAEE,OAAOM,EAAEsG,GAAElH,KAAI,UAAUoJ,GAAExI,EAAEqP,IAAI3P,OAAOmB,GAAGrB,IAAIQ,EAAEqP,IAAI3P,EAAEM,EAAEkB,IAAI1B,GAAGQ,EAAEa,GAAG,YAAWrB,EAAEM,UAAUsP,GAAE,EAAE5N,IAAE,kBAAkBhC,IAAGM,GAAmL,YAAWN,OAAOQ,EAAEsG,GAAElH,KAAI,IAAIW,EAAEwE,YAAWvE,EAAEa,GAAGrB,EAAEN,GAAEqJ,uBAAsBA,kBAAkB,SAASvG,KAAKnB,IAAIb,EAAEa,GAAGmB,GAAGjC,EAAE,GAAGiC,KAAK,CAACjC,EAAE,GAAG,aAAa,QAAG,KAAU,iBAAekG,SAAQ,SAASnG,MAAMA,EAAEoC,UAAUmN,IAAInO,IAAI+E,QAAQzC,IAAG1D,EAAEuP,IAAInO,IAAI+E,QAAQ2B,IAAG9H,EAAEuP,IAAInO,IAAI,SAASxB,KAAK2P,IAAInO,IAAI,GAAGjC,EAAE8B,IAAIrB,EAAEI,EAAEsB,SAAQjC,GAAE,GAAGF,EAAE6B,IAAI,SAAStB,MAAK,KAAK2C,IAAGA,GAAE3C,IAAIP,EAAE4C,IAAI,SAASrC,OAAMF,GAAEE,GAAGJ,GAAE,MAAMY,MAAKR,EAAEyB,KAAKoO,UAAUnO,IAAI+E,QAAQzC,IAAGxD,EAAEkB,IAAI+E,QAAQ2B,IAAG5H,EAAEkB,IAAI,KAAKjC,EAAE4I,OAAO,SAAS/H,OAAMP,GAAEO,OAAOC,EAAED,EAAEmB,OAAOlB,EAAEsP,KAAKtP,EAAEsP,IAAInO,IAAIf,SAAS,IAAIhB,GAAEiB,KAAKL,IAAIV,KAAIJ,EAAEsQ,4BAA2BtQ,EAAEsQ,wBAAwB,SAAS/P,OAAOgQ,EAAE9P,EAAE,wBAAwBM,GAAG4B,IAAG6N,qBAAqBD,GAAG1G,WAAWtJ,IAAIQ,EAAE8I,WAAWpJ,EAAE,YAAW6P,sBAAsB7P,MAAM+D,KAAIvE,QAAE,GAAQD,EAAEgC,IAAI,SAASnB,EAAEJ,KAAKuC,MAAK,SAASuN,SAAStO,IAAI+E,QAAQzC,IAAGgM,EAAEtO,IAAIsO,EAAEtO,IAAI+M,QAAO,SAASzO,UAAUA,EAAEqB,IAAI+G,GAAEpI,YAAWQ,KAAKiC,MAAK,SAASzC,KAAK0B,QAAQA,IAAI,OAAMxB,EAAE,GAAGT,EAAE8B,IAAIf,EAAEwP,EAAEpO,SAAQgH,IAAGA,GAAEtI,EAAEJ,IAAIT,EAAEgJ,QAAQ,SAASnI,OAAMS,GAAET,OAAOJ,EAAEI,EAAEmB,OAAOvB,GAAGA,EAAE2P,UAAUA,IAAIxO,GAAGoF,QAAQzC,UAASgM,KAAKzO,IAAIyO,EAAE9P,EAAE0B,OAAO,IAAIQ,GAAE,mBAAmB2N,sBAAsB,YAAW/P,OAAOM,EAAEZ,GAAE,mBAAmBM,EAAEyB,KAAKzB,EAAEyB,MAAM/B,GAAEY,EAAE,YAAWN,OAAOM,EAAEZ,KAAI+B,IAAIzB,EAAEqB,KAAK3B,GAAEY,EAAE,YAAWN,EAAEM,UAAUN,GAAGA,EAAEW,SAASL,EAAEK,QAAQL,EAAEmC,MAAK,SAASuN,EAAE9P,UAAU8P,IAAIhQ,EAAEE,MAAK,YAAWF,EAAEM,SAAS,mBAAmBA,EAAEA,EAAEN,GAAGM,0KCC/1EqN,OAAOuC,eAAeC,GAAS,aAAc,CAAEjM,OAAO,8CACI,kBAC1D,SAAsBkM,EAAOC,UAClBA,EAAaC,QAAO,CAACrF,EAAMjI,IACpB,QAANA,EACOiI,EAAKsF,MAGLtF,EAAKrK,KAAKoC,EAAEpC,OAExBwP,IAMP,SAKII,YAAYC,EAAUC,QACbD,SAAWA,MAAAA,EAA2CA,EAAW,QACjEC,WAAaA,MAAAA,EAA+CA,EAAa,GAKlFF,cACW1O,KAAK2O,SAAS3O,KAAK2O,SAAS9P,OAAS,GAKhD6P,MAAMJ,EAAOO,UACF,IAAIC,GAAK9O,KAAK2O,SAAS3L,MAAMsL,EAAOO,GAAM7O,KAAK4O,YAK1DF,eACW,IAAII,GAAK9O,KAAK2O,SAAS3L,MAAM,GAAIhD,KAAK4O,YAKjDF,aACW,IAAII,GAAK9O,KAAK2O,SAAS3L,MAAM,MAAQhD,KAAK4O,YAMrDF,KAAKK,UACM/O,KAAKgP,UAAUD,GAASE,YAAYF,GAM/CL,UAAUK,UACC,IAAID,GAAK,IAAI9O,KAAK2O,SAAUI,GAAU,IAAI/O,KAAK4O,aAM1DF,YAAYK,MACe,iBAAZA,SACA/O,KAAKkP,aACVC,EAAaJ,EAAQK,WAAW,cAAgBL,EAAQ/L,MAAM,IAAM+L,SACnE,IAAID,GAAK,IAAI9O,KAAK2O,UAAW,IAAI3O,KAAK4O,WAAYO,IAE7DT,cACW,IAAII,GAAK,IAAI9O,KAAK2O,UAAW,IAAI3O,KAAK4O,aAEjDF,kBACW1O,KAAK2O,SAMhBD,UAAUW,UACC,IAAIC,GAAUD,EAAOrP,MAEhC0O,oBACW1O,KAAK4O,WAMhBF,OAAOa,UACIA,EAAMZ,SAAS9P,SAAWmB,KAAK2O,SAAS9P,QACxC0Q,EAAMZ,SAASa,OAAM,CAAC/L,EAAGlF,IAAMkF,IAAMzD,KAAK2O,SAASpQ,KAM9DmQ,WAAWa,WACHvP,KAAK2O,SAAS9P,OAAS0Q,EAAMZ,SAAS9P,SAEnC0Q,EAAMZ,SAASa,OAAM,CAAC/L,EAAGlF,IAAMkF,IAAMzD,KAAK2O,SAASpQ,KAM9DmQ,SAASa,SACCE,EAASzP,KAAK2O,SAAS9P,OAAS0Q,EAAMZ,SAAS9P,eACjD4Q,EAAS,IAENF,EAAMZ,SAASa,OAAM,CAAC/L,EAAGlF,IAAMkF,IAAMzD,KAAK2O,SAASc,EAASlR,KAEvEmQ,kBACW1O,KAAK2O,SACP5F,QAAuB,iBAAN7H,EAAkB,IAAIA,IAAM,IAAIA,OACjDkH,KAAK,IACLtF,QAAQ,MAAO,IAExB4L,QAAQgB,EAAIC,UACD3P,KAAK2O,SAAShK,QAAQ+K,EAAIC,YAG1Bb,GACf,iBAAwBA,GACpBJ,YAAYW,EAAOlG,SACTA,MAAAA,OAAmC,EAASA,EAAKwF,SAAUxF,MAAAA,OAAmC,EAASA,EAAKyF,iBAC7GS,MAAQA,EAEjBX,kBACW1O,KAAKqP,MAMhBX,UACQkB,SACyB,UAAhB5P,KAAKqP,aAA0B,IAAPO,OAAgB,EAASA,EAAGC,IAAI7P,MAKzE0O,IAAItM,OACIwN,EACkB,UAAhB5P,KAAKqP,aAA0B,IAAPO,GAAyBA,EAAGE,IAAI9P,KAAMoC,GAKxEsM,MAAMJ,EAAOO,UACF,IAAIS,GAAUtP,KAAKqP,MAAOU,MAAM/M,MAAMsL,EAAOO,IAKxDH,eACW,IAAIY,GAAUtP,KAAKqP,MAAOU,MAAMC,SAK3CtB,aACW,IAAIY,GAAUtP,KAAKqP,MAAOU,MAAMtB,OAM3CC,KAAKK,UACM/O,KAAKgP,UAAUD,GAASE,YAAYF,GAM/CL,UAAUK,UACC,IAAIO,GAAUtP,KAAKqP,MAAOU,MAAMf,UAAUD,IAMrDL,YAAYK,UACD,IAAIO,GAAUtP,KAAKqP,MAAOU,MAAMd,YAAYF,IAEvDL,cACW,IAAIY,GAAUtP,KAAKqP,MAAOU,MAAMb,sBAG3BI,aCjMpBzD,OAAOuC,eAAe6B,GAAS,aAAc,CAAE7N,OAAO,mBACrC,EAIjB,SACIsM,mBACSwB,OAAS,GAElBxB,IAAIvF,EAAMgH,KAAUC,eACXF,OAAOpR,KAAK,CAAEqK,KAAAA,EAAMgH,MAAAA,EAAOC,OAAAA,KACzB,EAEX1B,IAAIvF,EAAMkH,GAAQ,UACPA,EAAQrQ,KAAKkQ,OAAOvD,WAAYzL,EAAEiI,KAAKmH,OAAOnH,KAC/CnJ,KAAKkQ,OAAOvD,WAAYzL,EAAEiI,KAAKiG,WAAWjG,KAEpDuF,gBACW1O,KAAKkQ,OAEhBxB,aACSwB,OAAS,GAElBxB,eACW1O,KAAKkQ,OAAOrR,SAErB0R,OAAOC,sBACMtP,KAAKlB,KAAKkQ,aACXhP,aAIDuP,aC9BjB,YAAsBC,UACXA,EAAI5N,QAAQ,UAAW,QAHlC+I,OAAOuC,eAAeuC,GAAS,aAAc,CAAEvO,OAAO,iDACO,kBAItCwO,kBACvB,SAAqBF,SACV,IAAIE,GAAaF,OAG5B,MAAMG,GAAWC,QAAeA,EAAIC,SAAS,KAAKC,oBAClD,SAAenS,EAAS,QAChBoS,EAAM,IAAIC,WAAWrS,EAAS,iBAC3BsS,OAAOC,gBAAgBH,GACvBlP,MAAMsP,KAAKJ,EAAKJ,IAASzI,KAAK,KCdzCyD,OAAOuC,eAAekD,GAAS,aAAc,CAAElP,OAAO,sBAClC,EACpB,MAAMiM,GAASkD,GACTtB,GAAWuB,GACXC,GAAUC,GAIhB,SAIIhD,YAAYiD,EAAQC,OACZhC,EAAIiC,EAAIC,EAAIC,OACXC,WAA6F,UAA1EJ,MAAAA,OAAyC,EAASA,EAAQI,kBAA+B,IAAPpC,EAAgBA,EAAK,QAC1HqC,QAAuF,UAAvEL,MAAAA,OAAyC,EAASA,EAAQK,eAA4B,IAAPJ,GAAgBA,OAC/GK,UAA2F,UAAzEN,MAAAA,OAAyC,EAASA,EAAQM,iBAA8B,IAAPJ,GAAgBA,OACnHH,OAASA,QACRlM,EAAwF,UAA3EmM,MAAAA,OAAyC,EAASA,EAAQO,mBAAgC,IAAPJ,EAAgBA,EAAKJ,EAAO3I,eAC7HvD,KAAOzF,KAAKkS,UAAYE,GAAUF,UAAUzM,GAAQA,OACpD4M,UAAY,QACZnC,OAAS,IAAID,GAASQ,YACtBzG,QAAU,CAACsI,KAAKC,UAAUvS,KAAKyF,YAC/B+M,aAAe,EAMxB9D,YAAY+D,QACHJ,UAAUvT,KAAK2T,GAMxB/D,eAAe+D,SACLvJ,EAAQlJ,KAAKqS,UAAUlS,QAAQsS,GACjCvJ,WACKmJ,UAAU5F,OAAOvD,EAAO,GAOrCwF,mBACUgE,EAAaJ,KAAKC,UAAUvS,KAAKyF,MACnCzF,KAAKgK,QAAQhK,KAAKwS,gBAAkBE,SAC/BF,cAAgB,OAChBxI,QAAQyC,OAAOzM,KAAKwS,aAAcxS,KAAKgS,WAAYU,GACpD1S,KAAKgK,QAAQnL,OAASmB,KAAKgS,kBACtBhI,QAAQyC,OAAO,EAAG,QAClB+F,cAAgB,SAGxBG,mBAKTjE,wBACS2D,UAAU1N,aACPxG,EAAEyU,eACAA,YAAY5S,MACd7B,EAAE+R,UACAA,OAAOlQ,KAAKkQ,WAO1BxB,MAAMtM,EAAOyQ,QACJpN,KAAOrD,OACP0Q,SAASD,QACTE,aAOTrE,IAAIvF,OACIgB,EAAOnK,KAAKyF,cACXd,qBACY,IAATwF,SACOA,IACPnK,KAAKkS,WAA0B,iBAANhR,EAClBiJ,EAAKjJ,GAAGiJ,KAGRA,EAAKjJ,MAGbiJ,EAOXuE,IAAIvF,EAAM/G,EAAO4Q,MACkB,IAA3B7J,EAAK8J,WAAWpU,wBACXqU,MAAM9Q,GAAO,OAGlB+H,EAAOnK,KAAKyF,OACXgJ,MAAM9J,kBACS,IAAZwF,EAAKjJ,IAAuC,iBAAZiJ,EAAKjJ,IAAsC,iBAAZiJ,EAAKjJ,KAChElB,KAAKkS,WAA0B,iBAANhR,IACpBA,GAAK,CAAEiJ,KAAM,GAAIgJ,GAAI1B,GAAQ2B,WAG7BlS,GAAK,MAGdlB,KAAKkS,WAA0B,iBAANhR,EAClBiJ,EAAKjJ,GAAGiJ,KAGRA,EAAKjJ,MAGP,OAATiJ,SAEU,IAAV/H,GAAyC,iBAAVA,GAAsBiR,MAAMjR,GAChC,iBAAhB+G,EAAKmK,SACP7G,OAAOtD,EAAKmK,OAAQ,UAGlBnJ,EAAKhB,EAAKmK,QAGhBtT,KAAKkS,WAAoC,iBAAhB/I,EAAKmK,SAC9BnK,EAAKmK,QAAU,CAAEnJ,KAAM/H,EAAO+Q,GAAI1B,GAAQ2B,WAG1CjK,EAAKmK,QAAUlR,EAEpB4Q,IAEAhT,KAAKiS,iBACGsB,IAAI,MAAOpK,EAAK4H,WAAYuB,KAAKC,UAAUnQ,SAElD0Q,UAAS,QACTC,eAKTrE,OACQ1O,KAAKwS,aAAe,SACfA,cAAgB,OAChB/M,KAAO6M,KAAKkB,MAAMxT,KAAKgK,QAAQhK,KAAKwS,oBACpCM,UAAS,QACTH,oBAMbjE,OACQ1O,KAAKwS,aAAexS,KAAKgK,QAAQnL,OAAS,SACrC2T,cAAgB,OAChB/M,KAAO6M,KAAKkB,MAAMxT,KAAKgK,QAAQhK,KAAKwS,oBACpCM,UAAS,QACTH,oBAMbjE,SAASmE,OACDjD,QACEzG,GAAO,IAAIkF,GAAOS,MAAO2E,UAAUzT,WACpCkQ,OAAOwD,aACPjO,KAA2G,UAA9FzF,KAAK2R,OAAOmB,SAAS3J,EAAMnJ,KAAKyF,KAAMzF,KAAKkQ,OAAQ,CAAE2C,MAAAA,EAAOX,UAAWlS,KAAKkS,mBAAiC,IAAPtC,EAAgBA,EAAK,GAEjJlB,MAAMvF,EAAMgH,KAAUC,SACZuD,EAAa,IAAI1D,GAASQ,SACrBmD,IAAIzK,EAAMgH,EAAOC,QACvBiC,UAAU1N,aACPxG,EAAE+R,UACAA,OAAOyD,uBAGJvR,MACTL,MAAMC,QAAQI,UACPA,EAAM2G,SAAU,CACnBoB,KAAMnK,KAAKkS,UAAUzO,GACrB0P,GAAI1B,GAAQ2B,eAGM,iBAAVhR,GAAgC,OAAVA,EAAgB,OAC5CyR,EAAM,iBACLC,QAAQ1R,GAAO2G,KAAI,EAAEtH,EAAGgC,QACvBhC,GAAKzB,KAAKkS,UAAUzO,MAErBoQ,SAGAzR,qBAGIA,MACXL,MAAMC,QAAQI,UACPA,EAAM2G,QAAS/I,KAAK+T,YAAYtQ,EAAE0G,WAEnB,iBAAV/H,GAAgC,OAAVA,EAAgB,OAC5CyR,EAAM,iBACLC,QAAQ1R,GAAO2G,KAAI,EAAEtH,EAAGgC,QACvBhC,GAAKzB,KAAK+T,YAAYtQ,MAEvBoQ,SAGAzR,gBAICgQ,6BC7NbhE,kBAAwB,aAAc,CAAEhM,OAAO,YACvC4R,OAAcA,OAAcA,OAAcA,aAAe,UACxD,CACZ9U,KAAM,IAAM,OACZ+U,SAAU,OACVjL,QAAS,OACTkL,QAAS,KAAM,EACfC,KAAM,KAAM,EACZC,SAAU,KAAM,EAChB1F,kBAAoB1O,MACpBqU,SAAW9S,GAAMA,EACjB+S,QAAS,IAAM,GACfxB,SAAU,CAACtR,EAAGiC,IAAMA,EACpB8Q,iBAAkB,OAClB7F,KAAK8F,EAAMrL,KAASsL,UAAeD,EAAKpU,KAAK,CAAE+J,KAAMnK,MAAQmJ,KAASsL,IACtEC,UAAW,KAAM,EACjBC,OAAQ,IAAM,WAEJ,CAACxK,EAAMyK,IAAUC,OACxB1K,GAA0B,mBAATyK,EAAsBA,EAAKzK,GAAQyK,UAE7C,CAACxV,EAAK+K,IAAS6J,GAAQc,IAAI3K,EAAM,CAC3C+J,QAAU3S,QAA4B,IAAtBA,EAAEzC,KAAKM,GAAKyQ,wBAEnB1F,UACF4K,OACA5K,GADA,CAEHiK,SAAU,KAAM,sBAIVjK,UACH4K,OACA5K,GADA,CAEHgK,KAAM,KAAM,eClCpBtI,OAAOuC,eAAe4G,GAAS,aAAc,CAAE5S,OAAO,wBAChC,EACtB,MAAMkP,GAAcC,GACd0D,GAASzD,kBAIO,IACXuD,OACAE,GAAOC,MADP,CAEHhW,KAAM,IAAM,UACZ8J,QAAS,KAAM,EACfsL,QAAS,IAAM,CAAC,QAAS,QACzB5F,SAASvF,EAAM/G,EAAO8N,EAAQ0B,UACtBA,EAAQiB,OAA0B,kBAAVzQ,MAChBwP,EAAQM,UAAYZ,GAAYc,UAAUF,UAAUlS,KAAKgJ,WAAahJ,KAAKgJ,WAElE,kBAAV5G,QAAiC,IAAVA,KACvBwR,IAAIzK,EAAM,0BAEd/G,GAEXsM,KAAK8F,EAAMrL,KAASsL,OACZ7E,SAC4B,UAAlB4E,EAAKW,eAA4B,IAAPvF,EAAgBA,EAAK4E,EAAKpU,MAAMsF,KAAK8O,EAAM,CAAErK,KAAMnK,MAAQmJ,KAASsL,sBCxBxH5I,OAAOuC,eAAegH,GAAS,aAAc,CAAEhT,OAAO,qBACnC,EACnB,MAAMkP,GAAcC,GACd0D,GAASzD,eACI,CAACzS,EAAUsW,SACtBzF,EAAIiC,QACFyD,EAAkF,UAAtED,MAAAA,OAAuC,EAASA,EAAOE,iBAA8B,IAAP3F,EAAgBA,EAAK,EAC/GtH,EAAkF,UAAtE+M,MAAAA,OAAuC,EAASA,EAAOG,iBAA8B,IAAP3D,EAAgBA,EAAK4D,EAAAA,EAC/GC,gBAAkD,EAASL,EAAOE,0BAAsD,EAASF,EAAOG,kBACtIT,OACDE,GAAOC,MADN,CAEJhW,KAAM,IAAM,OACZ8J,QAAS,kBAA8C,EAASqM,EAAOE,WAAa,IAAIxT,MAAMuT,IAAMvM,QAAShK,EAASiK,YAAa,GACnI0F,SAASvF,EAAMD,SACLyM,EAAYzM,EAAQ,SACLC,EAAK8J,WACTpU,QAAU8W,EAChB3V,KAEJjB,EAAS6W,SAASzM,EAAMwM,IAEnCtB,UAASlL,EAAMD,IACJC,EAAKrK,KAAK+W,SAAS3M,EAAM6H,aAAa9B,YAAY,SAE7DP,SAASvF,EAAM/G,EAAO8N,EAAQ0B,UACtBA,EAAQiB,QAAU9Q,MAAMC,QAAQI,OACxBwP,EAAQM,UAAYZ,GAAYc,UAAUF,UAAUlS,KAAKgJ,WAAahJ,KAAKgJ,WAElFjH,MAAMC,QAAQI,IAIVsT,MAAkB7W,OAASyW,GAAOlT,EAAMvD,OAASyJ,GAClDgN,IAAQhN,IACDsL,IAAIzK,EAAM,iCAAkC/G,EAAMvD,OAAQyW,KAG1D1B,IAAIzK,EAAM,mCAAoC/G,EAAMvD,OAAQyW,EAAKhN,GAGvElG,EAAMvD,OAASyW,IACb1B,IAAIzK,EAAM,mCAAoC/G,EAAMvD,OAAQyW,GAE9DlT,EAAMvD,OAASyJ,KACbsL,IAAIzK,EAAM,kCAAmC/G,EAAMvD,OAAQyJ,GAE/DlG,EAAM2G,KAAI,CAACrB,EAAKwB,WACb4M,EAAS/W,EAAS+T,SAAS3J,EAAKrK,KAAKoK,GAAQ0I,EAAQM,UAAYxK,EAAIyC,KAAOzC,EAAKwI,EAAQ0B,UACxFA,EAAQM,UAAY,CAAE/H,KAAM2L,EAAQ3C,GAAIzL,EAAIyL,IAAO2C,SAnBnDlC,IAAIzK,EAAM,uBACV/G,IAqBfsM,KAAK8F,EAAMrL,KAASsL,OACZsB,SACyB,UAAfvB,EAAKwB,YAAyB,IAAPD,EAAgBA,EAAKvB,EAAKpU,MAAMsF,KAAK8O,EAAM,CAAErK,KAAMnK,KAAMjB,SAAAA,EAAUsW,OAAQA,MAAAA,EAAuCA,EAAS,IAAMlM,KAASsL,iBCrD3L5I,OAAOuC,eAAe6H,GAAS,aAAc,CAAE7T,OAAO,uBACjC,EACrB,MAAM6S,GAAS1D,iBAIO2E,GACXnB,OACAE,GAAOC,MADP,CAEHxG,KAAKvF,UACMnJ,KAAKmW,WAAWhN,GAAM,GACxBgB,KAAKjL,KAAKiK,IAEnBuF,SAASvF,UACEnJ,KAAKmW,WAAWhN,GAAM,GACxBgB,KAAK8J,SAAS9K,IAEvBH,QAAS,IAAMkN,EAAM,GAAG/L,KAAKnB,UAC7B0F,SAASvF,EAAMD,OACP0G,QACE+F,EAAYzM,EAAQ,SACkC,UAA/ClJ,KAAKmW,WAAWhN,EAAKnG,MAAM,EAAG2S,WAAgC,IAAP/F,OAAgB,EAASA,EAAGzF,KAAKyL,SAASzM,EAAMD,IAExHwF,SAASvF,EAAM/J,OACPwQ,EAAIiC,SACwG,UAAlE,UAA3B7R,KAAKmW,WAAWhN,UAA0B,IAAPyG,OAAgB,EAASA,EAAGzF,KAAKkK,SAASlL,EAAM/J,UAAyB,IAAPyS,EAAgBA,EAAK1I,GAEjJuF,QAAQvF,EAAM/G,OACNwN,EAAIiC,SACyG,UAAnE,UAA3B7R,KAAKmW,WAAWhN,UAA0B,IAAPyG,OAAgB,EAASA,EAAGzF,KAAKmK,QAAQnL,EAAM/G,UAA2B,IAAPyP,EAAgBA,EAAKqE,EACzIvJ,WAAYxL,EAAE6G,MAAMmB,KACpBJ,QAAS5H,EAAEgJ,KAAKmK,QAAQnL,EAAM/G,KAC9BoM,QAAO,CAACjN,EAAGJ,IAAMI,EAAE6U,OAAOjV,MAEnCuN,SAASvF,EAAM/G,EAAO8N,EAAQ0B,OACtBzQ,EAAInB,KAAKmW,WAAWhN,eACd,IAANhI,EACOiB,EAEJjB,EAAEgJ,KAAK2I,SAAS3J,EAAM/G,EAAO8N,EAAQ0B,IAEhDlD,iBAAiBvF,OACTyG,SACoC,UAA3B5P,KAAKmW,WAAWhN,UAA0B,IAAPyG,OAAgB,EAASA,EAAGzF,KAAKoK,iBAAiBpL,IAEtGuF,WAAWvF,EAAMkN,SACPC,EAAS,CAACjV,EAAGK,SAAYkO,EAAIiC,SAAkC,UAAhBnQ,EAAE6U,gBAA6B,IAAP3G,EAAgBA,EAAK,IAA4B,UAAhBvO,EAAEkV,gBAA6B,IAAP1E,EAAgBA,EAAK,IACrJ2E,EAAeN,EAAMvJ,WAAYxL,EAAE6G,MAAMmB,KAAO1I,KAAK6V,UACvDD,GAAoC,IAAxBG,EAAa3X,OAClBqX,EAAMzV,KAAK6V,GAAQ,GAEtBE,EAAa3X,OAAS,EAAI2X,EAAa,QAAK,GAExD9H,KAAK8F,EAAMrL,KAASsL,UACTzU,KAAKmW,WAAWhN,GAAM,GACxBgB,KAAKqK,KAAKA,EAAMrL,KAASsL,yBCvDnCrG,iBAAwB,aAAc,CAAEhM,OAAO,qBAC7B4R,eAAuBA,eAAuBA,kBAAqB,QACtFyC,EAAalF,GACbmF,EAAelF,gBAIA,CAACmF,EAAStB,WAWrBuB,EAAaF,EAAaT,WAAWU,EAAQ5N,SAAU,CACzD7J,KAAMiC,EAAEjC,KACRqX,SAAUpV,EAAEoV,SACZvO,MAAQmB,GAbI,EAAC0N,EAAQzU,QACjByU,EAAO7O,aACA6O,EAAO7O,MAAM5F,UAEhByU,EAAO3X,UACN,cAAe6C,MAAMC,QAAQI,OAC7B,eAAkC,iBAAVA,IAAuBL,MAAMC,QAAQI,yBAC3CA,IAAUyU,EAAO3X,OAM3B4X,CAAQ3V,EAAGgI,EAAK0G,OACjC1F,KAAMhJ,EAAEgJ,iBAEL4K,OACA6B,GADA,CAEHlI,SAASvF,EAAM/G,EAAO8N,EAAQ0B,OACtBiF,EAASD,EAAWT,WAAWhN,GAAM,UACrC0N,EAAO1M,KAAKiK,WACLhS,EAEJyU,EAAO1M,KAAK2I,SAAS3J,EAAM/G,EAAO8N,EAAQ0B,IAErDlD,KAAK8F,EAAMrL,KAASsL,OACZ7E,SAC2B,UAAjB4E,EAAKqC,cAA2B,IAAPjH,EAAgBA,EAAK4E,EAAKpU,MAAMsF,KAAK8O,EAAM,CAAErK,KAAMnK,KAAM2W,QAAAA,EAAStB,OAAQA,MAAAA,EAAuCA,EAAS,GAAIuB,WAAAA,GAAczN,KAASsL,aAIlMsC,EAAWnT,GAAO,CAACuG,EAAMkL,IACpBrB,EAAQgD,WAAW,CACtB,CACI9X,KAAM0E,EACNuG,KAAAA,EACA8M,eAAmBrH,SAA2B,UAAVnM,EAAE,UAAuB,IAAPmM,EAAgBA,EAAKzF,EAAKnB,YAEpF,CACI9J,KAAM,OACNiL,KAAMsM,EAAWrB,SAASjL,GAC1B8M,UAAaxT,EAAI,CAACA,GAAK,KAE5B4R,kBAEgB0B,EAAQ,yBACRA,EAAQ,2BACN,CAACG,EAAYC,EAAYC,IACvCpD,EAAQgD,WAAW,CACtB,CACI9X,KAAM,SACNqX,SAAU,EACVpM,KAAM+M,EACND,UAAapL,OAAOwL,KAAKD,GAAS,IAEtC,CACIlY,KAAM,SACNiL,KAAMgN,EACNF,eAAmBrH,SAAiC,UAAhBwH,EAAQ3T,UAAuB,IAAPmM,EAAgBA,EAAKwH,EAAQvL,OAAOwL,KAAKD,GAAS,uBClE1HvL,OAAOuC,eAAekJ,GAAS,aAAc,CAAElV,OAAO,oBACpC,EAClB,MAAM6S,GAAS1D,GACTD,GAAcE,cAIF,CAAC6F,EAAMtY,EAAUsW,IACxBN,OACAE,GAAOC,MADP,CAEHhW,KAAM,IAAM,MACZ8J,QAAS,KAAO,IAChB0F,SAASvF,EAAMD,SACLyM,EAAYzM,EAAQ,SACLC,EAAK8J,WACTpU,QAAU8W,EAChB3V,KAEJjB,EAAS6W,SAASzM,EAAMwM,IAEnCtB,UAASlL,EAAM/J,IACJ+J,EAAK6F,UAAU5P,GAE1BkV,QAAUnL,GAASkO,EAAK/C,QAAQnL,EAAM,IACtCuF,SAASvF,EAAM/G,EAAO8N,EAAQ0B,MACtBA,EAAQiB,OAA0B,iBAAVzQ,MAChBwP,EAAQM,UAAYZ,GAAYc,UAAUF,UAAUlS,KAAKgJ,WAAahJ,KAAKgJ,WAEzE,OAAV5G,GAAmC,iBAAVA,WAClBwR,IAAIzK,EAAM,yBACV/G,MAEPyR,EAAM,iBACHwD,KAAKjV,GAAOuC,eACVmO,SAAS3J,EAAM1H,EAAGyO,EAAQ0B,KAC3BnQ,GAAK1C,EAAS+T,SAAS3J,EAAKrK,KAAK2C,GAAIW,EAAMX,GAAIyO,EAAQ0B,MAExDiC,GAEXnF,iBAAiBvF,OACTyG,SACgF,UAAvEyF,MAAAA,OAAuC,EAASA,EAAOkC,kBAA+B,IAAP3H,EAAgBA,EAAKyH,EAAK9C,iBAAiBpL,EAAKrK,KAAK,MAErJ4P,KAAK8F,EAAMrL,KAASsL,OACZ7E,SACwB,UAAd4E,EAAKzL,WAAwB,IAAP6G,EAAgBA,EAAK4E,EAAKpU,MAAMsF,KAAK8O,EAAM,CAAErK,KAAMnK,KAAMqX,KAAAA,EAAMtY,SAAAA,EAAUsW,OAAQA,MAAAA,EAAuCA,EAAS,IAAMlM,KAASsL,oCC7CzLrG,iBAAwB,aAAc,CAAEhM,OAAO,iBACjC4R,kBAAqB,QACpCwD,EAAMjG,GACNkG,EAAcjG,GACdkG,EAAShG,gBACO2D,QACdzF,EAAIiC,EAAIC,QACN6F,kBAAkD,EAAStC,EAAOuC,QAA0F,UAApEvC,MAAAA,OAAuC,EAASA,EAAOsC,eAA4B,IAAP/H,GAAgBA,EACpL0F,gBAA8C,EAASD,EAAOuC,OAAS,EAA0E,UAAhEvC,MAAAA,OAAuC,EAASA,EAAOC,WAAwB,IAAPzD,EAAgBA,OACzKvJ,gBAA8C,EAAS+M,EAAOuC,OAAS,SAAiF,UAAhEvC,MAAAA,OAAuC,EAASA,EAAO/M,WAAwB,IAAPwJ,EAAgBA,EAAK2D,EAAAA,EACrLC,OAA2E,kBAAzB,EAASL,EAAOC,WAAuF,kBAAzB,EAASD,EAAO/M,YAC/IyM,OACA2C,EAAOxC,MADP,CAEHhW,KAAM,IAAM,SACZ8J,QAAS,IAAMsM,EAAM,EAAIA,EAAM,EAC/B5G,SAASvF,EAAM/G,EAAO8N,EAAQ0B,UACtBA,EAAQiB,OAA0B,iBAAVzQ,MAChBwP,EAAQM,UAAYuF,EAAYrF,UAAUF,UAAUlS,KAAKgJ,WAAahJ,KAAKgJ,WAElE,iBAAV5G,IACAwR,IAAIzK,EAAM,yBAEZwO,IAAYE,OAAOC,UAAU1V,KAC3BwR,IAAIzK,EAAM,0BAEZuM,MAAoBJ,GAAOlT,EAAQkG,KACjCsL,IAAIzK,EAAM,qCAAsC/G,EAAOkT,EAAKhN,GAE9DlG,EAAQkT,IACN1B,IAAIzK,EAAM,qCAAsC/G,EAAOkT,GAEzDlT,EAAQkG,KACNsL,IAAIzK,EAAM,oCAAqC/G,EAAOkG,GAE1DlG,GAEXsM,KAAK8F,EAAMrL,KAASsL,OACZsB,SAC2B,UAAjBvB,EAAKuD,cAA2B,IAAPhC,EAAgBA,EAAKvB,EAAKpU,MAAMsF,KAAK8O,EAAM,CAAErK,KAAMnK,KAAM2X,QAAAA,EAASrC,IAAAA,EAAKhN,IAAAA,EAAKoN,QAAAA,EAASL,OAAQA,MAAAA,EAAuCA,EAAS,IAAMlM,KAASsL,oBAI1L,EAAGkD,QAAAA,EAASK,OAAAA,KAAaR,EAAI1C,IAAId,EAAQiE,WAAW,CAAEN,QAAAA,SAAqB,CAC5F7E,SAAU,CAAC3J,EAAM/G,EAAO8N,EAAQ0B,OACpBzH,EAAK2I,SAAS3J,EAAM/G,EAAO8N,EAAQ0B,GACtCoG,EAAOE,SAAS9V,MACVwR,IAAIzK,EAAM,4BAA6B6O,EAAO5P,KAAK,OAEvDhG,0CChDRgM,iBAAwB,aAAc,CAAEhM,OAAO,iBACjC4R,OAAeA,cAAiB,QAC/C0D,EAASnG,GACT4G,EAAS3G,GACT4G,EAAW1G,GACX2G,EAAUC,GACVb,EAAcc,YACHhI,OAAO,iBACTA,OAAO,qBACD,CAACiI,EAAQnD,mBACoDvD,UAA7D2G,QAAS9L,GAASkF,IAAQ6G,MAAOxC,GAA4BpE,EAAlB6G,gKAAkB7G,EAAlB,CAAnD8G,KAA0BA,OAC7BC,EAAmB1P,YACN,IAAXwD,SACOgM,QACLG,EAAcX,EAAOY,aAAa5P,EAAMwD,GAAQkD,MAChDsG,EAAaD,EAAM4C,UAClBjE,OAAK8D,GAAkBxC,IAE5B6C,EAAoB,CAAC7P,EAAM8P,SACzBlD,QACE+C,EAAcnM,EAASwL,EAAOY,aAAa5P,EAAMwD,GAAQkD,WAAQ,EACjEqJ,EAAavM,GAAwC,UAAxBuJ,EAAM4C,UAAiC,IAAP/C,EAAgBA,EAAW,GACxFoD,EAAWtN,OAAOwL,KAAK6B,GACvBE,gBAA0D,EAAS/D,EAAOpV,SAC5E,IAAIkY,EAAO7I,UAAUnG,EAAKkQ,WAAY,IAAIlB,EAAOrJ,KAAK3F,EAAK8J,WAAY,CAACoC,EAAOpV,WAAakJ,wBAChC,EAASkM,EAAOiE,uBAAyBR,GAAeK,EAASjB,SAASe,GACtIG,EAAgBnK,YAAY6J,GAAeM,GACzBta,KAAKma,WAEvBlE,OACD2C,EAAOxC,MADN,CAEJhW,KAAM,IAAM,SACZ+U,SAAU,IAAMoB,MAAAA,OAAuC,EAASA,EAAOpB,SACvEjL,QAAS,KAAO,IAChB0F,cACW1O,KAAKoU,YAEhB1F,SAASvF,EAAMD,SACLyM,EAAYzM,EAAQ,EACpBqQ,EAAepQ,EAAK8J,cACtBsG,EAAa1a,QAAU8W,SAChB3V,WAGLmK,EADe0O,EAAgB1P,EAAKnG,MAAM,EAAG2S,IACzB4D,EAAa5D,WAChCxL,MAAAA,OAAmC,EAASA,EAAKyL,SAASzM,EAAMwM,IAE3EtB,UAASlL,EAAM/J,IACJ4Z,EAAkB7P,EAAM/J,EAAI2R,YAEvCrC,QAAQvF,EAAM/G,SACJoX,EAAeX,EAAgB1P,GAC/BsQ,EAAe5N,OAAOwL,KAAsB,iBAAVjV,EAAqBA,EAAQ,WAC9DyJ,OAAOwL,KAAKmC,GACd7M,WAAY6M,EAAa/X,GAAGyS,QAAQ/K,KACpCwD,YAAa8M,EAAavB,SAASzW,KACnCsH,IAAIsP,EAAQqB,cAErBhL,SAASvF,EAAM/G,EAAO8N,EAAQ0B,MACtBA,EAAQiB,OAA0B,iBAAVzQ,MAChBwP,EAAQM,UAAYuF,EAAYrF,UAAUF,UAAUlS,KAAKgJ,WAAahJ,KAAKgJ,WAElE,iBAAV5G,GAAgC,OAAVA,WACtBwR,IAAIzK,EAAM,yBACV/G,MAEPoX,EAAeb,KACfhM,EAAQ,OACFgN,EAAaxB,EAAOY,aAAa5P,EAAMwD,OACzCmM,EAAca,EAAW9J,SACzB1G,EAAKmH,OAAOqJ,EAAWlL,OAAQ,OACzBmL,EAAcD,EAAWrG,SACjBqF,EAAciB,GAAa9G,SAAS3J,EAAKrK,KAAK8a,GAAcxX,EAAMwX,GAAc,IAAIxB,EAAS3H,OAAUmB,KAE1GiD,OAAK2E,GAAiBtD,EAAM4C,UAEzCe,EAAahO,OAAOwL,KAAKmC,GACzBM,EAAaD,EAAWlN,YAAa6M,EAAa/X,GAAG2S,aACrDiD,EAAO,IAAI0C,IAAI,IAAID,KAAejO,OAAOwL,KAAKjV,SAChDyR,EAAM,YACLlP,gBACGkV,EAAW3B,SAASzW,GAAI,KACnB+X,EAAa/X,GAAGyS,QAAQ/K,gBAEvB6Q,EAAWR,EAAa/X,GAAGqR,SAAS3J,EAAKrK,KAAK2C,GAAIW,EAAMX,GAAIyO,EAAQ0B,IACrE4H,EAAa/X,GAAG0S,QAAUqF,EAAa/X,GAAG2S,kBAC1B,OACTrS,MAAMC,QAAQgY,IAAiC,IAApBA,EAASnb,QACpCmb,EAASna,cAAgBgM,QAA2C,IAAjCA,OAAOwL,KAAK2C,GAAUnb,eAC1DgV,EAAIpS,MAGPA,GAAKuY,IACJX,WAAWvJ,IAAI3G,EAAKrK,KAAK2C,GAAIuY,GAAU,WAI5CvY,GAAKW,EAAMX,MAGhBoS,GAEXnF,KAAK8F,EAAMrL,KAASsL,OACZsB,SAC2B,UAAjBvB,EAAKyF,cAA2B,IAAPlE,EAAgBA,EAAKvB,EAAKpU,MAAMsF,KAAK8O,EAAM,CAAErK,KAAMnK,KAAMwY,OAAQG,EAAetD,OAAQA,MAAAA,EAAuCA,EAAS,GAAI1I,OAAAA,EAAQuJ,MAAAA,EAAO2C,gBAAAA,EAAiBG,kBAAAA,GAAqB7P,KAASsL,sBCxG7P5I,OAAOuC,eAAe8L,GAAS,aAAc,CAAE9X,OAAO,sBAClC,eACA,CAAC+X,EAASxI,KAAY,CACtCjD,KAAKvF,UACMgR,EAAQtK,IAAI8B,GAAQzS,KAAKoI,KAAKtH,KAA9Bma,CAAoChR,IAE/CuF,SAASvF,UACEgR,EAAQtK,IAAI8B,GAAQsC,SAAS3M,KAAKtH,KAAlCma,CAAwChR,IAEnDuF,iBACWyL,EAAQtK,IAAI8B,GAAQ3I,QAAQ1B,KAAKtH,KAAjCma,IAEXC,WAAUjR,EAAM/G,IACL+X,EAAQtK,IAAI8B,GAAQyI,UAAUjR,EAAM/G,GAE/CsM,QAAQvF,UACGgR,EAAQtK,IAAI8B,GAAQuC,QAAQ5M,KAAKtH,KAAjCma,CAAuChR,IAElDuF,cACWyL,EAAQtK,IAAI8B,GAAQwC,KAAK7M,KAAKtH,KAA9Bma,IAEXzL,kBACWyL,EAAQtK,IAAI8B,GAAQyC,SAAS9M,KAAKtH,KAAlCma,IAEXzL,SAASvF,EAAMD,UACJiR,EAAQtK,IAAI8B,GAAQiE,SAAStO,KAAKtH,KAAlCma,CAAwChR,EAAMD,IAEzDwF,SAASvF,EAAM/J,UACJ+a,EAAQtK,IAAI8B,GAAQ0C,SAAS/M,KAAKtH,KAAlCma,CAAwChR,EAAM/J,IAEzDsP,QAAQvF,EAAM/G,UACH+X,EAAQtK,IAAI8B,GAAQ2C,QAAQhN,KAAKtH,KAAjCma,CAAuChR,EAAM/G,IAExDsM,SAASvF,EAAM/G,EAAO8N,EAAQ0B,UACnBuI,EAAQtK,IAAI8B,GAAQmB,SAASxL,KAAKtH,KAAlCma,CAAwChR,EAAM/G,EAAO8N,EAAQ0B,IAExElD,iBAAiBvF,UACNgR,EAAQtK,IAAI8B,GAAQ4C,iBAAiBjN,KAAKtH,KAA1Cma,CAAgDhR,IAE3DuF,KAAK8F,EAAMrL,KAASsL,UACT0F,EAAQtK,IAAI8B,GAAQ6C,KAAKlN,KAAKtH,KAA9Bma,CAAoC3F,EAAMrL,KAASsL,IAE9D/F,WAAWvF,EAAMkN,UACN8D,EAAQtK,IAAI8B,GAAQwE,WAAW7O,KAAKtH,KAApCma,CAA0ChR,EAAMkN,IAE3D3H,UAAUvF,EAAM/G,UACL+X,EAAQtK,IAAI8B,GAAQ+C,UAAUpN,KAAKtH,KAAnCma,CAAyChR,EAAM/G,IAE1DsM,OAAOvF,EAAM/G,UACF+X,EAAQtK,IAAI8B,GAAQgD,OAAOrN,KAAKtH,KAAhCma,CAAsChR,EAAM/G,gBCjD3DyJ,OAAOuC,eAAeiM,GAAS,aAAc,CAAEjY,OAAO,uBACjC,EACrB,MAAM6S,GAAS1D,GACTE,GAAUD,GACVF,GAAcI,GACd4I,GAAUlY,QACRwN,WACuB,UAAXxN,SAA0B,IAAPwN,OAAgB,EAASA,EAAG2K,OAE7DC,GAAepY,QACbwN,WACuB,UAAXxN,SAA0B,IAAPwN,OAAgB,EAASA,EAAG6K,0BAK9C,CAACC,EAAarF,WACzBsF,EAAYL,GAAOjF,GACM,iBAAhBA,EAAOkF,KACZ,SAAY3K,SAA6G,UAA5F8K,MAAAA,OAAiD,EAASA,EAAY7K,IAAIwF,EAAOkF,aAA0B,IAAP3K,EAAgBA,EAAK,IACtJ,IAAMyF,EAAOkF,KACwD,2BAA/B,EAASlF,EAAOoF,WACtB,iBAAvBpF,EAAOjF,OAAOwK,KAClBvF,EAAOjF,OAAOwK,KAAKxL,WAAW,KAC3B,SAAYQ,SAA6H,UAA5G8K,MAAAA,OAAiD,EAASA,EAAY7K,IAAIwF,EAAOjF,OAAOwK,KAAK5X,MAAM,WAAwB,IAAP4M,EAAgBA,EAAK,IACtK,SAAYA,SAAoH,UAAnG8K,MAAAA,OAAiD,EAASA,EAAY7K,IAAIwF,EAAOjF,OAAOwK,aAA0B,IAAPhL,EAAgBA,EAAK,IACjK,IAAMyF,EAAOjF,OAAOwK,KACxB,IAAM,UACT7F,OACAE,GAAOC,MADP,CAEHhW,KAAM,IAAM,SACZ8J,QAAS,IAAM,GACf0F,SAASvF,EAAM/G,EAAO8N,EAAQ0B,MACtBA,EAAQiB,OAA0B,iBAAVzQ,SACP8P,UAAYZ,GAAYc,UAAUF,UAAUlS,KAAKgJ,WAAahJ,KAAKgJ,iBAAc,GAEjF,iBAAV5G,WACAwR,IAAIzK,EAAM,yBACV/G,KAEPoY,GAAYnF,KACa,aAArBA,EAAOoF,WAA4BrY,EAAMvD,OAAS,IAAMuD,EAAM8V,SAAS,SAClD,MAAb9V,EAAM,GACR,cAAgBA,EAAMY,MAAM,GAC5B,aAAeZ,GAEA,aAArBiT,EAAOoF,YAA4D,iBAAvBpF,EAAOjF,OAAOwK,MAAqBvF,EAAOjF,OAAOwK,KAAKxL,WAAW,MAC5GiG,EAAOjF,OAAOyK,UAAyB,MAAbzY,EAAM,IACjCiT,EAAOjF,OAAO0K,cACdzF,EAAOjF,OAAO2K,sBACP3Y,KAGVkY,GAAOjF,IAAWA,EAAO2F,kBACnB5Y,QAEL4V,EAAS2C,WACX3C,EAAOnZ,OAAS,IAAMmZ,EAAOE,SAAS9V,MAC/BwR,IAAIzK,EAAM,4BAA6B/G,GAE3CA,GAEXkS,QAAS,IAAMqG,IAAY5R,IAAI0I,GAAQiI,aACvCnF,qBACWiG,GAAYnF,GAAUA,OAAS,EAE1C3G,KAAK8F,EAAMrL,KAASsL,OACZ7E,SAC2B,UAAjB4E,EAAKyG,cAA2B,IAAPrL,EAAgBA,EAAK4E,EAAKpU,MAAMsF,KAAK8O,EAAM,CAAErK,KAAMnK,KAAM2a,UAAAA,EAAWtF,OAAAA,GAAUlM,KAASsL,iBCpE1I5I,OAAOuC,eAAe8M,GAAS,aAAc,CAAE9Y,OAAO,cCAtDyJ,OAAOuC,eAAe+M,GAAS,aAAc,CAAE/Y,OAAO,iDACA,oBAItD,MACIsM,mBACS0M,SAAW,GAEpB1M,SAASyE,EAAIhJ,QACJiR,SAASjI,GAAMhJ,EAExBuE,IAAIyE,SACMhJ,EAAOnK,KAAKob,SAASjI,eACd,IAAThJ,WACQgG,MAAM,2BAA2BgD,+BAEtChJ,0BAOf,MACIuE,mBACS0M,SAAW,GAEpB1M,SAASyE,EAAI6C,QACJoF,SAASjI,GAAM6C,EAExBtH,IAAIyE,SACM6C,EAAOhW,KAAKob,SAASjI,eACd,IAAT6C,WACQqF,KAAK,+BAA+BlI,+BAEzC6C,MAAAA,EAAmCA,EAAO,eCpCzDnK,OAAOuC,eAAekN,GAAS,aAAc,CAAElZ,OAAO,oBCAlDmZ,EAAmBvb,IAAQA,GAAKwb,yBAA4B1P,OAAU,SAASrN,EAAGkD,EAAGF,EAAGga,QAC7E,IAAPA,MAAuBha,UACpB2M,eAAe3P,EAAGgd,EAAI,CAAEC,YAAY,EAAM7L,IAAK,kBAAoBlO,EAAEF,OAC1E,SAAShD,EAAGkD,EAAGF,EAAGga,QACT,IAAPA,MAAuBha,KACzBga,GAAM9Z,EAAEF,KAEVka,EAAgB3b,IAAQA,GAAK2b,cAAiB,SAASha,EAAGia,WACjDra,KAAKI,EAAa,YAANJ,GAAoBqa,EAAQC,eAAeta,MAAoBqa,EAASja,EAAGJ,WAE7F6M,iBAAwB,aAAc,CAAEhM,OAAO,MACzCmP,GAA8ByC,KAC9BxC,GAAyBwC,KACzBtC,GAA2BsC,KAC3BsE,GAAyBtE,KACzBuE,GAAgCvE,KAChC8H,GAA+B9H,KAC/B+H,GAA6B/H,KAC7BgI,GAA4BhI,KAC5BiI,GAA+BjI,KAC/BkI,GAA+BlI,KAC/BmI,GAA8BnI,KAC9BoI,GAA+BpI,KAC/BqI,GAA+BrI,KAC/BsI,GAAmBtI,KACnBuI,GAAyBvI,KACzBwI,GAA+BxI,QCe5C,YAAgByI,OAAWC,EAAMD,EAAI5d,cAAiB6d,GAAO,KAASA,GAAO,EAI7E,MA2DMC,GACJ,IAAIzL,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAEpE0L,GACJ,IAAI1L,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAE7E2L,GACJ,IAAI3L,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAEhD4L,GACJ,IAAI5L,WAAW,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAgBxD6L,GAAgB,IAAIhb,MAAO,KACjCib,GAAOD,IAOP,MAAME,GAAgB,IAAIlb,MAAMmb,IAChCF,GAAOC,IAKP,MAAME,GAAgB,IAAIpb,MAjBJ,KAkBtBib,GAAOG,IAMP,MAAMC,GAAgB,IAAIrb,MAAMsb,KAChCL,GAAOI,IAGP,MAAME,GAAgB,IAAIvb,MAhGF,IAiGxBib,GAAOM,IAGP,MAAMC,GAAgB,IAAIxb,MA3FF,IAgGxB,YAAwByb,EAAaC,EAAYC,EAAYC,EAAOC,QAE7DJ,YAAeA,OACfC,WAAeA,OACfC,WAAeA,OACfC,MAAeA,OACfC,WAAeA,OAGfC,UAAeL,GAAeA,EAAY3e,OAIjD,IAAIif,GACAC,GACAC,GAGJ,YAAkBC,EAAUC,QACrBD,SAAWA,OACXE,SAAW,OACXD,UAAYA,EAzBnBlB,GAAOO,IA8BP,MAAMa,GAAUC,GAEPA,EAAO,IAAMlB,GAAWkB,GAAQlB,GAAW,SAAgB,IAQ9DmB,GAAY,CAACld,EAAGQ,OAGlB2c,YAAYnd,EAAEod,WAAmB,IAAL5c,IAC5B2c,YAAYnd,EAAEod,WAAc5c,IAAM,EAAK,KAQrC6c,GAAY,CAACrd,EAAGgB,EAAOvD,KAEvBuC,EAAEsd,SAtIc,GAsIS7f,KACzB8f,QAAWvc,GAAShB,EAAEsd,SAAY,SAC1Btd,EAAGA,EAAEud,UACbA,OAASvc,GAzIO,GAyIchB,EAAEsd,WAChCA,UAAY7f,EA1II,OA4IhB8f,QAAWvc,GAAShB,EAAEsd,SAAY,QAClCA,UAAY7f,IAKZ+f,GAAY,CAACxd,EAAGD,EAAG0d,QAEbzd,EAAGyd,EAAS,EAAJ1d,GAAiB0d,EAAS,EAAJ1d,EAAQ,KAS5C2d,GAAa,CAACC,EAAMrC,SAEpB7I,EAAM,QAEM,EAAPkL,OACG,MACF,UACCrC,EAAM,UACV7I,IAAQ,GAiIXmL,GAAY,CAACH,EAAMV,EAAUc,WAK3BC,EAAY,IAAInd,MAAMod,QAExBC,EACAlhB,EAFA6gB,EAAO,MAONK,EAAO,EAAGA,GAtTO,GAsTaA,MACvBA,GAAQL,EAAQA,EAAOE,EAASG,EAAO,IAAO,MASrDlhB,EAAI,EAAIA,GAAKigB,EAAUjgB,IAAK,KAC3Bwe,EAAMmC,EAAS,EAAJ3gB,EAAQ,GACX,IAARwe,MAEK,EAAJxe,GAAkB4gB,GAAWI,EAAUxC,KAAQA,MAoHlD2C,GAAcje,QAEdlD,MAGCA,EAAI,EAAGA,EAzcUohB,IAycMphB,MAASqhB,UAAc,EAAJrhB,GAAkB,MAC5DA,EAAI,EAAGA,EAvcU,GAucMA,MAASshB,UAAc,EAAJthB,GAAkB,MAC5DA,EAAI,EAAGA,EArcU,GAqcMA,MAASuhB,QAAY,EAAJvhB,GAAkB,IAE7DqhB,UAAUG,KAA0B,IACpCC,QAAUve,EAAEwe,WAAa,IACzBC,SAAWze,EAAE6G,QAAU,GAOrB6X,GAAa1e,IAEbA,EAAEsd,SAAW,KACLtd,EAAGA,EAAEud,QACNvd,EAAEsd,SAAW,MAEpBH,YAAYnd,EAAEod,WAAapd,EAAEud,UAE/BA,OAAS,IACTD,SAAW,GA8BTqB,GAAU,CAAClB,EAAM3gB,EAAGyD,EAAGqe,WAErBC,EAAU,EAAJ/hB,EACNgiB,EAAU,EAAJve,SACJkd,EAAKoB,GAAgBpB,EAAKqB,IAC1BrB,EAAKoB,KAAkBpB,EAAKqB,IAAiBF,EAAM9hB,IAAM8hB,EAAMre,IASnEwe,GAAa,CAAC/e,EAAGyd,EAAMpd,WAKrBgC,EAAIrC,EAAEgf,KAAK3e,OACb4e,EAAI5e,GAAK,OACN4e,GAAKjf,EAAEkf,WAERD,EAAIjf,EAAEkf,UACRP,GAAQlB,EAAMzd,EAAEgf,KAAKC,EAAI,GAAIjf,EAAEgf,KAAKC,GAAIjf,EAAE4e,aAIxCD,GAAQlB,EAAMpb,EAAGrC,EAAEgf,KAAKC,GAAIjf,EAAE4e,WAGhCI,KAAK3e,GAAKL,EAAEgf,KAAKC,KACfA,MAGE,IAEND,KAAK3e,GAAKgC,GAUR8c,GAAiB,CAACnf,EAAGof,EAAOC,SAK5BpC,EACAqC,EAEA3B,EACA4B,EAFAC,EAAK,KAIU,IAAfxf,EAAEye,cAEMze,EAAEmd,YAAYnd,EAAEyf,MAAa,EAALD,IAAW,EAAMxf,EAAEmd,YAAYnd,EAAEyf,MAAa,EAALD,EAAS,KAC7Exf,EAAEmd,YAAYnd,EAAE0f,MAAQF,OAGhB,IAATvC,KACQjd,EAAGsf,EAAIF,MAIVpD,GAAasD,MACVtf,EAAG2d,EAtkBG,IAskBiB,EAAGyB,KAC5B7D,GAAYoC,GACN,IAAV4B,OACIrD,GAAYyB,MACR3d,EAAGsf,EAAIC,UAGZvC,GAAOC,MAGJjd,EAAG2d,EAAM0B,KACX7D,GAAYmC,GACN,IAAV4B,OACMpD,GAAUwB,MACR3d,EAAGid,EAAMsC,WAQhBC,EAAKxf,EAAEye,aAGRze,EAlkBQ,IAkkBMof,IAYpBO,GAAa,CAAC3f,EAAG4f,WAIfnC,EAAWmC,EAAK/C,SAChBgD,EAAWD,EAAK9C,UAAUV,YAC1BK,EAAYmD,EAAK9C,UAAUL,UAC3BF,EAAWqD,EAAK9C,UAAUP,UAC5Bzf,EAAGyD,EAEHwI,EADAgU,WAOFmC,SAAW,IACXY,SAhnBoB,IAknBjBhjB,EAAI,EAAGA,EAAIyf,EAAOzf,IACQ,IAAzB2gB,EAAS,EAAJ3gB,MACLkiB,OAAOhf,EAAEkf,UAAYnC,EAAWjgB,IAChC8hB,MAAM9hB,GAAK,KAGJ,EAAJA,EAAQ,GAAa,OASvBkD,EAAEkf,SAAW,KACXlf,EAAEgf,OAAOhf,EAAEkf,UAAanC,EAAW,IAAMA,EAAW,IAC/C,EAAPhU,GAAqB,IACxB6V,MAAM7V,GAAQ,IACdwV,UAEE9B,MACA+B,YAAcqB,EAAa,EAAP9W,EAAW,UAIhCgU,SAAWA,EAKXjgB,EAAKkD,EAAEkf,UAAY,EAAcpiB,GAAK,EAAGA,OAAkBkD,EAAGyd,EAAM3gB,KAKlEyf,OAIDvc,EAAEgf,KAAK,KACTA,KAAK,GAAiBhf,EAAEgf,KAAKhf,EAAEkf,eACtBlf,EAAGyd,EAAM,KAGhBzd,EAAEgf,KAAK,KAETA,OAAOhf,EAAE8f,UAAYhjB,IACrBkiB,OAAOhf,EAAE8f,UAAYvf,IAGX,EAAPwI,GAAqB0U,EAAS,EAAJ3gB,GAAkB2gB,EAAS,EAAJld,KACpDqe,MAAM7V,MAAW6V,MAAM9hB,IAAMkD,EAAE4e,MAAMre,GAAKP,EAAE4e,MAAM9hB,GAAKkD,EAAE4e,MAAMre,IAAM,IAC9D,EAAJzD,EAAQ,GAAa2gB,EAAS,EAAJld,EAAQ,GAAawI,IAGlDiW,KAAK,GAAiBjW,OACb/I,EAAGyd,EAAM,SAEbzd,EAAEkf,UAAY,KAErBF,OAAOhf,EAAE8f,UAAY9f,EAAEgf,KAAK,GApeb,EAAChf,EAAG4f,WAIfnC,EAAkBmC,EAAK/C,SACvBE,EAAkB6C,EAAK7C,SACvB8C,EAAkBD,EAAK9C,UAAUV,YACjCK,EAAkBmD,EAAK9C,UAAUL,UACjC8C,EAAkBK,EAAK9C,UAAUT,WACjCrd,EAAkB4gB,EAAK9C,UAAUR,WACjCE,EAAkBoD,EAAK9C,UAAUN,eACnCtc,EACApD,EAAGyD,EACHyd,EACA+B,EACAviB,EACAwiB,EAAW,MAEVhC,EAAO,EAAGA,GA1NO,GA0NaA,MAC/BH,SAASG,GAAQ,QAMK,EAArBhe,EAAEgf,KAAKhf,EAAE8f,UAAgB,GAAa,EAEtC5f,EAAIF,EAAE8f,SAAW,EAAG5f,EAtOH,IAsOoBA,MACpCF,EAAEgf,KAAK9e,KACJud,EAA+B,EAA1BA,EAAS,EAAJ3gB,EAAQ,GAAiB,GAAa,EACnDkhB,EAAOxB,MACFA,SAGA,EAAJ1f,EAAQ,GAAakhB,EAGtBlhB,EAAIigB,MAENc,SAASG,OACH,EACJlhB,GAAKkC,MACCugB,EAAMziB,EAAIkC,MAEhBye,EAAS,EAAJ3gB,KACPyhB,SAAW/gB,KAAYuiB,GACrBtD,MACA+B,YAAchhB,KAAe,EAAJV,EAAQ,GAAaijB,QAGnC,IAAbC,KAMD,OACMxD,EAAa,EACQ,IAArBxc,EAAE6d,SAASG,UAChBH,SAASG,OACTH,SAASG,EAAO,IAAM,IACtBH,SAASrB,QAIC,QACLwD,EAAW,OAOfhC,EAAOxB,EAAqB,IAATwB,EAAYA,UAC9Bhe,EAAE6d,SAASG,GACF,IAANlhB,KACDkD,EAAEgf,OAAO9e,GACTK,EAAIwc,IACJU,EAAS,EAAJld,EAAQ,KAAeyd,MAE5BO,YAAmBd,EAAS,EAAJld,EAAQ,IAAckd,EAAS,EAAJld,KAC5C,EAAJA,EAAQ,GAAayd,WAwZrBhe,EAAG4f,MAGJnC,EAAMV,EAAU/c,EAAE6d,WAQxBoC,GAAY,CAACjgB,EAAGyd,EAAMV,SAKtBjgB,EAEAojB,EADAC,KAGAC,EAAU3C,EAAK,GAEf4C,EAAQ,EACRC,EAAY,EACZC,EAAY,MAEA,IAAZH,MACU,MACA,KAEQ,KAAL,GAAS,GAAa,MAElCtjB,EAAI,EAAGA,GAAKigB,EAAUjgB,MAChBsjB,IACC3C,EAAe,KAAL,GAAS,KAEvB4C,EAAQC,GAAaJ,IAAWE,IAG3BC,EAAQE,IACflC,QAAiB,EAAT6B,IAAwBG,EAEd,IAAXH,GAELA,IAAWC,KAAa9B,QAAiB,EAAT6B,OAClC7B,QAAQmC,OAEDH,GAAS,KAChBhC,QAAQoC,QAGRpC,QAAQqC,QAGJ,IACER,EAEM,IAAZE,KACU,MACA,GAEHF,IAAWE,KACR,IACA,MAGA,IACA,KAUZO,GAAY,CAAC3gB,EAAGyd,EAAMV,SAKtBjgB,EAEAojB,EADAC,KAGAC,EAAU3C,EAAK,GAEf4C,EAAQ,EACRC,EAAY,EACZC,EAAY,MAGA,IAAZH,MACU,MACA,GAGTtjB,EAAI,EAAGA,GAAKigB,EAAUjgB,SAChBsjB,IACC3C,EAAe,KAAL,GAAS,OAEvB4C,EAAQC,GAAaJ,IAAWE,OAG3BC,EAAQE,QACFvgB,EAAGkgB,EAAQlgB,EAAEqe,eAA+B,KAAVgC,QAE7B,IAAXH,GACLA,IAAWC,OACHngB,EAAGkgB,EAAQlgB,EAAEqe,iBAIfre,EAlxBI,GAkxBQA,EAAEqe,YACdre,EAAGqgB,EAAQ,EAAG,IAEfA,GAAS,OACRrgB,EAnxBI,GAmxBUA,EAAEqe,YAChBre,EAAGqgB,EAAQ,EAAG,QAGdrgB,EApxBI,GAoxBYA,EAAEqe,YAClBre,EAAGqgB,EAAQ,GAAI,MAGnB,IACEH,EACM,IAAZE,KACU,MACA,GAEHF,IAAWE,KACR,IACA,MAGA,IACA,KAwHlB,IAAIQ,IAAmB,EAKvB,MAuBMC,GAAqB,CAAC7gB,EAAGqb,EAAKyF,EAAY5O,QAMpClS,EAAI,KAA6B,EAAI,GAAI,GA3flC,EAACA,EAAGqb,EAAKC,EAAKyF,QAMrB/gB,GAEN+gB,OACQ/gB,EAAGsb,MACHtb,GAAIsb,MAKd6B,YAAYzO,IAAI1O,EAAEghB,OAAOC,SAAS5F,EAAKA,EAAMC,GAAMtb,EAAEod,WACrDA,SAAW9B,IA4eFtb,EAAGqb,EAAKyF,GAAY,IAoKjC,IAMII,GAAQ,CACXC,SAzMmBnhB,IAGb4gB,KA5mBgB,UAEjB9jB,EACAkhB,EACAvgB,EACAkgB,EACAV,QACEY,EAAW,IAAIld,MAAMod,UAgBlB,EACJJ,EAAO,EAAGA,EAAOyD,GAAoBzD,WAC5BA,GAAQlgB,EACfX,EAAI,EAAGA,EAAK,GAAKye,GAAYoC,GAAQ7gB,OAC3BW,KAAYkgB,SAQhBlgB,EAAS,GAAKkgB,IAGpB,EACFA,EAAO,EAAGA,EAAO,GAAIA,WACdA,GAAQV,EACbngB,EAAI,EAAGA,EAAK,GAAK0e,GAAYmC,GAAQ7gB,OAC7BmgB,KAAUU,UAIhB,EACFA,EAvYe,GAuYGA,WACbA,GAAQV,GAAQ,EACrBngB,EAAI,EAAGA,EAAK,GAAM0e,GAAYmC,GAAQ,EAAK7gB,OACnC,IAAMmgB,KAAUU,MAM1BK,EAAO,EAAGA,GAvYO,GAuYaA,MACxBA,GAAQ,QAGf,EACGlhB,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,YAMD6e,GAAc0F,IAAexD,GAGlC/gB,EAAI,EAAGA,EAhbU,GAgbKA,OACR,EAAJA,EAAQ,GAAa,KACjB,EAAJA,GAAkB4gB,GAAW5gB,EAAG,MAI/B,IAAIwkB,GAAe3F,GAAcJ,GAAa2C,IAzbxCA,IAYA,OA8aN,IAAIoD,GAAezF,GAAcL,GAAa,EAvbxC,GASA,OA+aL,IAAI8F,GAAe,IAAI3gB,MAAM,GAAI8a,GAAc,EArb1C,GAiBJ,WAk7BG,KAGnB8F,OAAU,IAAIC,GAASxhB,EAAEme,UAAWzB,MACpC+E,OAAU,IAAID,GAASxhB,EAAEoe,UAAWzB,MACpC+E,QAAU,IAAIF,GAASxhB,EAAEqe,QAASzB,MAElCW,OAAS,IACTD,SAAW,KAGFtd,IA0LZ2hB,iBAPwBd,GAQxBe,gBA1JyB,CAAC5hB,EAAGqb,EAAKyF,EAAY5O,SAMzC2P,EAAUC,EACVC,EAAc,EAGd/hB,EAAEgiB,MAAQ,GA5hCgB,IA+hCxBhiB,EAAEiiB,KAAKC,cACPD,KAAKC,UArGY,CAACliB,QAMpBlD,EADAqlB,EAAa,eAIZrlB,EAAI,EAAGA,GAAK,GAAIA,IAAKqlB,KAAgB,KACtB,EAAbA,GAAoD,IAAhCniB,EAAEme,UAAc,EAAJrhB,UAx8BX,KA88BQ,IAAhCkD,EAAEme,UAAU,KAA0D,IAAjCne,EAAEme,UAAU,KAChB,IAAjCne,EAAEme,UAAU,WA98BY,MAi9BvBrhB,EAAI,GAAIA,EAr7BS,IAq7BOA,OACS,IAAhCkD,EAAEme,UAAc,EAAJrhB,UAl9BU,SADA,GAmiCLslB,CAAiBpiB,OAI3BA,EAAGA,EAAEuhB,WAILvhB,EAAGA,EAAEyhB,UA1LE,CAACzhB,QAEjB+hB,SAGM/hB,EAAGA,EAAEme,UAAWne,EAAEuhB,OAAOxE,aACzB/c,EAAGA,EAAEoe,UAAWpe,EAAEyhB,OAAO1E,aAGxB/c,EAAGA,EAAE0hB,SASXK,EAAcM,GAAgBN,GAAe,GACS,IAArD/hB,EAAEqe,QAAgC,EAAxB3C,GAASqG,GAAmB,GADSA,cAMnDxD,SAAW,KAAmB,GAAK,EAAI,EAAI,EAItCwD,GAwKSO,CAActiB,KAGhBA,EAAEue,QAAU,EAAI,IAAO,IACpBve,EAAEwe,WAAa,EAAI,IAAO,EAMrCsD,GAAeD,MAAuBC,MAI/BA,EAAchB,EAAa,EAGnCA,EAAa,GAAKe,QAAcxG,KAShBrb,EAAGqb,EAAKyF,EAAY5O,GAnlCX,IAqlCnBlS,EAAEuiB,UAA0BT,IAAgBD,MAE3C7hB,EAAI,KAA6B,EAAI,GAAI,MACpCA,EAAG2b,GAAcE,SAGtB7b,EAAI,KAA0B,EAAI,GAAI,GAjM7B,EAACA,EAAGwiB,EAAQC,EAAQC,SAIrCC,SAMM3iB,EAAGwiB,EAAS,IAAK,MACjBxiB,EAAGyiB,EAAS,EAAK,MACjBziB,EAAG0iB,EAAU,EAAI,GACtBC,EAAO,EAAGA,EAAOD,EAASC,OAEnB3iB,EAAGA,EAAEqe,QAAyB,EAAjB3C,GAASiH,GAAY,GAAY,MAIhD3iB,EAAGA,EAAEme,UAAWqE,EAAS,MAGzBxiB,EAAGA,EAAEoe,UAAWqE,EAAS,KA4KlBziB,EAAGA,EAAEuhB,OAAOxE,SAAW,EAAG/c,EAAEyhB,OAAO1E,SAAW,EAAGgF,EAAc,MAC/D/hB,EAAGA,EAAEme,UAAWne,EAAEoe,eAMxBpe,GAEPkS,MACQlS,IA8Eb4iB,UApEmB,CAAC5iB,EAAGid,EAAMqC,OAO1BnC,YAAYnd,EAAEyf,MAAqB,EAAbzf,EAAEye,UAAqBxB,IAAS,EAAK,MAC3DE,YAAYnd,EAAEyf,MAAqB,EAAbzf,EAAEye,SAAe,GAAY,IAAPxB,IAE5CE,YAAYnd,EAAE0f,MAAQ1f,EAAEye,UAAiB,IAALa,IACpCb,WAEW,IAATxB,IAEAkB,UAAe,EAALmB,QAEVzY,gBAOAsX,UAAgD,MAAxBmB,GAvmCN,IAumCyB,QAC3ClB,UAAyB,EAAfpB,GAAOC,OA0Bbjd,EAAEye,WAAaze,EAAE6iB,YAAc,GAkBxCC,UAvKoB9iB,OACTA,EAAG+iB,EAAmB,MACtB/iB,EAl9BQ,IAk9BM2b,IAjzBT,CAAC3b,IAEG,KAAfA,EAAEsd,aACMtd,EAAGA,EAAEud,UACbA,OAAS,IACTD,SAAW,GAEJtd,EAAEsd,UAAY,MACrBH,YAAYnd,EAAEod,WAAwB,IAAXpd,EAAEud,SAC7BA,SAAW,IACXD,UAAY,KAwyBPtd,KAuNX,IAAIgjB,GAzBY,CAACC,EAAO5H,EAAKC,EAAK4H,SAC5BC,EAAc,MAARF,EAAiB,EACvBjjB,EAAOijB,IAAU,GAAM,MAAS,EAChCnmB,EAAI,OAEO,IAARwe,GAAW,GAIZA,EAAM,IAAO,IAAOA,KACjBxe,OAGCqmB,EAAK9H,EAAI6H,KAAS,IAClBljB,EAAKmjB,EAAK,UACPrmB,MAEL,SACA,aAGAqmB,EAAMnjB,GAAM,GAAM,GA8B5B,MAeMojB,GAAW,IAAIC,YAfH,UACZtjB,EAAGujB,EAAQ,WAENxmB,EAAI,EAAGA,EAAI,IAAKA,IAAK,GACxBA,UACKuD,EAAI,EAAGA,EAAI,EAAGA,MACX,EAAJN,EAAU,WAAcA,IAAM,EAAOA,IAAM,IAE7CjD,GAAKiD,SAGNujB,GAIwBC,IAiBjC,IAAIC,GAdU,CAACC,EAAKpI,EAAKC,EAAK4H,WACtB9lB,EAAIgmB,GACJ3V,EAAMyV,EAAM5H,gBAITne,EAAI+lB,EAAK/lB,EAAIsQ,EAAKtQ,MAClBsmB,IAAQ,EAAKrmB,EAAmB,OAAVie,EAAIle,cAG3BsmB,GAyBNC,GAAW,CACbC,EAAQ,kBACRC,EAAQ,aACRC,EAAQ,GACRC,KAAQ,aACRC,KAAQ,eACRC,KAAQ,aACRC,KAAQ,sBACRC,KAAQ,eACRC,KAAQ,wBAsBNC,GAAc,CAGhBC,WAAoB,EACpBC,gBAAoB,EACpBC,aAAoB,EACpBC,aAAoB,EACpBC,SAAoB,EACpBC,QAAoB,EACpBC,QAAoB,EAKpBC,KAAoB,EACpBC,aAAoB,EACpBC,YAAoB,EACpBC,WACAC,kBACAC,gBACAC,eACAC,eAIAC,iBAA0B,EAC1BC,aAA0B,EAC1BC,mBAA0B,EAC1BC,yBAGAC,WAA0B,EAC1BC,eAA0B,EAC1BC,MAA0B,EAC1BC,QAA0B,EAC1BC,mBAA0B,EAG1BC,SAA0B,EAC1BC,OAA0B,EAE1BC,UAA0B,EAG1BC,WAA0B,GAuB5B,MAAM7E,SAAEA,oBAAUQ,mBAAkBC,aAAiBgB,aAAWE,IAAc5B,IAS5EmD,WAAY4B,mBAAc3B,GAAiBE,aAAc0B,GAAgBzB,SAAU0B,GAAYzB,QAAS0B,GACxGxB,KAAMyB,GAAQxB,aAAcyB,GAAgBtB,eAAgBuB,GAAkBtB,aAAcuB,GAAgBrB,YAAasB,GACzHlB,sBAAuBmB,cACvBlB,kBAAYC,SAAgBC,WAAOC,GAASC,mBAAoBe,aAChEZ,GACAC,WAAYY,IACVxC,GAgDEyC,GAAM,CAAC5E,EAAM6E,OACZC,IAAMrD,GAASoD,GACbA,GAGHjf,GAAQrK,OACG,MAAY,EAAI,EAAI,GAG/BwpB,GAAQ3L,QACRC,EAAMD,EAAI5d,cAAiB6d,GAAO,KAASA,GAAO,GAKxD,IAII2L,GAJY,CAACjnB,EAAGknB,EAAM7iB,QAAmBrE,EAAEmnB,WAAc9iB,GAAQrE,EAAEonB,UAYvE,MAAMC,GAAiBpF,UACfjiB,EAAIiiB,EAAKjf,UAGXsY,EAAMtb,EAAEod,QACR9B,EAAM2G,EAAKqF,cACPrF,EAAKqF,WAED,IAARhM,MAECiM,OAAO7Y,IAAI1O,EAAEmd,YAAY8D,SAASjhB,EAAEwnB,YAAaxnB,EAAEwnB,YAAclM,GAAM2G,EAAKwF,YAC5EA,UAAYnM,IACfkM,aAAelM,IACZoM,WAAapM,IACbgM,WAAahM,IAChB8B,SAAW9B,EACK,IAAdtb,EAAEod,YACFoK,YAAc,KAKdG,GAAmB,CAAC3nB,EAAGkS,QACXlS,EAAIA,EAAE4nB,aAAe,EAAI5nB,EAAE4nB,eAAmB5nB,EAAE6nB,SAAW7nB,EAAE4nB,YAAa1V,KACxF0V,YAAc5nB,EAAE6nB,YACJ7nB,EAAEiiB,OAIZ6F,GAAW,CAAC9nB,EAAGM,OACjB6c,YAAYnd,EAAEod,WAAa9c,GASzBynB,GAAc,CAAC/nB,EAAGM,OAIpB6c,YAAYnd,EAAEod,WAAc9c,IAAM,EAAK,MACvC6c,YAAYnd,EAAEod,WAAiB,IAAJ9c,GAWzB0nB,GAAW,CAAC/F,EAAM5G,EAAKnO,EAAO+a,SAE9B3M,EAAM2G,EAAKiG,gBAEX5M,EAAM2M,MAAcA,GACZ,IAAR3M,EAAoB,KAEnB4M,UAAY5M,IAGb5M,IAAIuT,EAAKkG,MAAMlH,SAASgB,EAAKmG,QAASnG,EAAKmG,QAAU9M,GAAMpO,GACvC,IAApB+U,EAAKjf,MAAMqlB,OACRpF,MAAQD,GAAUf,EAAKgB,MAAO5H,EAAKC,EAAKpO,GAGlB,IAApB+U,EAAKjf,MAAMqlB,SACbpF,MAAQO,GAAQvB,EAAKgB,MAAO5H,EAAKC,EAAKpO,MAGxCkb,SAAW9M,IACXgN,UAAYhN,EAEVA,IAaHiN,GAAgB,CAACvoB,EAAGwoB,SAIpB5hB,EACA0U,EAHAmN,EAAezoB,EAAE0oB,iBACjBC,EAAO3oB,EAAE6nB,SAGTe,EAAW5oB,EAAE6oB,YACbC,EAAa9oB,EAAE8oB,iBACbC,EAAS/oB,EAAE6nB,SAAY7nB,EAAEgpB,OAhJVC,IAiJjBjpB,EAAE6nB,YAAcmB,OAjJCC,KAiJyB,EAExCC,EAAOlpB,EAAEghB,OAETmI,EAAQnpB,EAAEopB,OACVlC,EAAQlnB,EAAEknB,KAMVmC,EAASrpB,EAAE6nB,SA7JD,QA8JZyB,EAAaJ,EAAKP,EAAOC,EAAW,GACpCW,EAAaL,EAAKP,EAAOC,GAQzB5oB,EAAE6oB,aAAe7oB,EAAEwpB,iBACJ,GAKfV,EAAa9oB,EAAEypB,cAA0BzpB,EAAEypB,mBAMrCjB,EAWJU,EAAKtiB,EAAQgiB,KAAkBW,GAC/BL,EAAKtiB,EAAQgiB,EAAW,KAAOU,GAC/BJ,EAAKtiB,KAA0BsiB,EAAKP,IACpCO,IAAOtiB,KAAwBsiB,EAAKP,EAAO,OAUvC,gBASCO,IAAOP,KAAUO,IAAOtiB,IAAUsiB,IAAOP,KAAUO,IAAOtiB,IAC1DsiB,IAAOP,KAAUO,IAAOtiB,IAAUsiB,IAAOP,KAAUO,IAAOtiB,IAC1DsiB,IAAOP,KAAUO,IAAOtiB,IAAUsiB,IAAOP,KAAUO,IAAOtiB,IAC1DsiB,IAAOP,KAAUO,IAAOtiB,IAAUsiB,IAAOP,KAAUO,IAAOtiB,IAC1D+hB,EAAOU,QAxNF,OA4NcV,KACrBU,EA7NO,IA+NV/N,EAAMsN,EAAU,MAChBc,YAAclB,IACLlN,EACPA,GAAOwN,UAGEI,EAAKP,EAAOC,EAAW,KACvBM,EAAKP,EAAOC,cAEP1B,EAAKsB,EAAYW,IAAUJ,GAA4B,KAAjBN,UAExDG,GAAY5oB,EAAEypB,UACTb,EAEF5oB,EAAEypB,WAcLE,GAAe3pB,UAEb4pB,EAAU5pB,EAAEgpB,WACd7oB,EAAGrD,EAAGyD,EAAGspB,EAAMva,IAIhB,MACMtP,EAAE8pB,YAAc9pB,EAAEypB,UAAYzpB,EAAE6nB,SAoBnC7nB,EAAE6nB,UAAY+B,KAtRCX,KAsRoC,GAEnDjI,OAAOtS,IAAI1O,EAAEghB,OAAOC,SAAS2I,EAASA,EAAUA,GAAU,KAC1DF,aAAeE,IACf/B,UAAY+B,IAEZhC,aAAegC,IASb5pB,EAAE+pB,YACFjtB,OAGEkD,EAAEgqB,OAAO7pB,KACX6pB,KAAK7pB,GAAMI,GAAKqpB,EAAUrpB,EAAIqpB,EAAU,UACjC9sB,KAEP8sB,IACA9sB,OAGEkD,EAAEknB,OAAO/mB,KACX+mB,KAAK/mB,GAAMI,GAAKqpB,EAAUrpB,EAAIqpB,EAAU,UAIjC9sB,MAEH8sB,KAEc,IAApB5pB,EAAEiiB,KAAKiG,oBAgBPF,GAAShoB,EAAEiiB,KAAMjiB,EAAEghB,OAAQhhB,EAAE6nB,SAAW7nB,EAAEypB,UAAWI,KACvDJ,WAAa3sB,EAGXkD,EAAEypB,UAAYzpB,EAAEiqB,QAhVN,QAiVNjqB,EAAE6nB,SAAW7nB,EAAEiqB,SACnBC,MAAQlqB,EAAEghB,OAAO1R,KAGjB4a,MAAQjD,GAAKjnB,EAAGA,EAAEkqB,MAAOlqB,EAAEghB,OAAO1R,EAAM,IAInCtP,EAAEiqB,WAELC,MAAQjD,GAAKjnB,EAAGA,EAAEkqB,MAAOlqB,EAAEghB,OAAO1R,EA3V1B,EA2V4C,MAEpD4X,KAAK5X,EAAMtP,EAAEopB,QAAUppB,EAAEgqB,KAAKhqB,EAAEkqB,SAChCF,KAAKhqB,EAAEkqB,OAAS5a,QAEhB2a,WACEjqB,EAAEypB,UAAYzpB,EAAEiqB,OAjWV,aA0WPjqB,EAAEypB,UAxWUR,KAwWuC,IAApBjpB,EAAEiiB,KAAKiG,WAoJ3CiC,GAAe,CAACnqB,EAAGoqB,SAEnBC,EACAC,SAEK,IAMHtqB,EAAEypB,UAvgBaR,IAugBc,OACnBjpB,GACRA,EAAEypB,UAzgBWR,KAygBkBmB,IAAUnE,UA7fzB,KAggBA,IAAhBjmB,EAAEypB,qBAQI,EACRzpB,EAAEypB,WAvhBQ,MAyhBVS,MAAQjD,GAAKjnB,EAAGA,EAAEkqB,MAAOlqB,EAAEghB,OAAOhhB,EAAE6nB,SAzhB1B,EAyhBiD,MACjD7nB,EAAEknB,KAAKlnB,EAAE6nB,SAAW7nB,EAAEopB,QAAUppB,EAAEgqB,KAAKhqB,EAAEkqB,SACnDF,KAAKhqB,EAAEkqB,OAASlqB,EAAE6nB,UAOJ,IAAdwC,GAA4BrqB,EAAE6nB,SAAWwC,GAAerqB,EAAEgpB,OAhiB3CC,QAqiBfsB,aAAehC,GAAcvoB,EAAGqqB,IAGhCrqB,EAAEuqB,cA1iBQ,OA+iBH3H,GAAU5iB,EAAGA,EAAE6nB,SAAW7nB,EAAE0pB,YAAa1pB,EAAEuqB,aA/iBxC,KAijBVd,WAAazpB,EAAEuqB,aAKbvqB,EAAEuqB,cAAgBvqB,EAAEwqB,gBAAuCxqB,EAAEypB,WAtjBrD,EAsjB6E,GACrFc,oBAEE1C,aAEAqC,MAAQjD,GAAKjnB,EAAGA,EAAEkqB,MAAOlqB,EAAEghB,OAAOhhB,EAAE6nB,SA3jB9B,EA2jBqD,MACjD7nB,EAAEknB,KAAKlnB,EAAE6nB,SAAW7nB,EAAEopB,QAAUppB,EAAEgqB,KAAKhqB,EAAEkqB,SACnDF,KAAKhqB,EAAEkqB,OAASlqB,EAAE6nB,eAKQ,KAAnB7nB,EAAEuqB,gBACX1C,kBAGAA,UAAY7nB,EAAEuqB,eACdA,aAAe,IACfL,MAAQlqB,EAAEghB,OAAOhhB,EAAE6nB,YAEnBqC,MAAQjD,GAAKjnB,EAAGA,EAAEkqB,MAAOlqB,EAAEghB,OAAOhhB,EAAE6nB,SAAW,WAa1CjF,GAAU5iB,EAAG,EAAGA,EAAEghB,OAAOhhB,EAAE6nB,aAElC4B,cACA5B,cAEAyC,OAEetqB,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,kBAjlBS,WAulBtB2C,OAAWjqB,EAAE6nB,SAAY4C,EAAkBzqB,EAAE6nB,SAAW4C,EACtDL,IAAUjE,OAEKnmB,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,UAzlBW,EACA,GA8lBpBtnB,EAAEye,cAEaze,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,WApmBW,EACA,GAgnBpBoD,GAAe,CAAC1qB,EAAGoqB,SAEnBC,EACAC,EAEAK,SAGK,IAMH3qB,EAAEypB,UA3oBaR,IA2oBc,OACnBjpB,GACRA,EAAEypB,UA7oBWR,KA6oBkBmB,IAAUnE,UAjoBzB,KAooBA,IAAhBjmB,EAAEypB,qBAMI,EACRzpB,EAAEypB,WAzpBQ,MA2pBVS,MAAQjD,GAAKjnB,EAAGA,EAAEkqB,MAAOlqB,EAAEghB,OAAOhhB,EAAE6nB,SA3pB1B,EA2pBiD,MACjD7nB,EAAEknB,KAAKlnB,EAAE6nB,SAAW7nB,EAAEopB,QAAUppB,EAAEgqB,KAAKhqB,EAAEkqB,SACnDF,KAAKhqB,EAAEkqB,OAASlqB,EAAE6nB,YAMpBgB,YAAc7oB,EAAEuqB,eAChBK,WAAa5qB,EAAE0pB,cACfa,aAAeE,EAEC,IAAdJ,GAA0BrqB,EAAE6oB,YAAc7oB,EAAEwqB,gBAC5CxqB,EAAE6nB,SAAWwC,GAAcrqB,EAAEgpB,OAtqBdC,QA2qBfsB,aAAehC,GAAcvoB,EAAGqqB,GAG9BrqB,EAAEuqB,cAAgB,MAChBhI,WAAaiD,IAjrBP,IAirBsBxlB,EAAEuqB,cAA8BvqB,EAAE6nB,SAAW7nB,EAAE0pB,YAAc,UAK3Fa,aAAeE,IAMjBzqB,EAAE6oB,aA5rBQ,GA4rBoB7oB,EAAEuqB,cAAgBvqB,EAAE6oB,YAAa,GACpD7oB,EAAE6nB,SAAW7nB,EAAEypB,UA7rBhB,IAosBH7G,GAAU5iB,EAAGA,EAAE6nB,SAAW,EAAI7nB,EAAE4qB,WAAY5qB,EAAE6oB,YApsB3C,KA0sBVY,WAAazpB,EAAE6oB,YAAc,IAC7BA,aAAe,OAET7oB,EAAE6nB,UAAY8C,MAEhBT,MAAQjD,GAAKjnB,EAAGA,EAAEkqB,MAAOlqB,EAAEghB,OAAOhhB,EAAE6nB,SA/sB9B,EA+sBqD,MACjD7nB,EAAEknB,KAAKlnB,EAAE6nB,SAAW7nB,EAAEopB,QAAUppB,EAAEgqB,KAAKhqB,EAAEkqB,SACnDF,KAAKhqB,EAAEkqB,OAASlqB,EAAE6nB,gBAGK,KAAlB7nB,EAAE6oB,kBACXgC,gBAAkB,IAClBN,aAAeE,IACf5C,WAEEyC,OAEetqB,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,kBA9sBO,UAotBXtnB,EAAE6qB,sBAOFjI,GAAU5iB,EAAG,EAAGA,EAAEghB,OAAOhhB,EAAE6nB,SAAW,IAE3CyC,MAEetqB,GAAG,KAGpB6nB,aACA4B,YACuB,IAArBzpB,EAAEiiB,KAAKqF,iBApuBS,SA2uBlBuD,gBAAkB,IAClBhD,aACA4B,mBAIFzpB,EAAE6qB,oBAGKjI,GAAU5iB,EAAG,EAAGA,EAAEghB,OAAOhhB,EAAE6nB,SAAW,MAE7CgD,gBAAkB,KAEpBZ,OAASjqB,EAAE6nB,SAAW4C,EAAgBzqB,EAAE6nB,SAAW4C,EACjDL,IAAUjE,OAEKnmB,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,UA1vBW,EACA,GA+vBpBtnB,EAAEye,cAEaze,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,WArwBW,EACA,GA66B1B,YAAgBwD,EAAaC,EAAUC,EAAaC,EAAWC,QAExDJ,YAAcA,OACdC,SAAWA,OACXC,YAAcA,OACdC,UAAYA,OACZC,KAAOA,EAGd,MAAMC,GAAsB,CAE1B,IAAIC,GAAO,EAAG,EAAG,EAAG,GA5iBC,CAACprB,EAAGoqB,SAKrBiB,EAAiB,UAEjBA,EAAiBrrB,EAAEsrB,iBAAmB,MACvBtrB,EAAEsrB,iBAAmB,KAI/B,IAEHtrB,EAAEypB,WAAa,EAAG,OASRzpB,GACQ,IAAhBA,EAAEypB,WAAmBW,IAAUnE,UAraf,KAyaA,IAAhBjmB,EAAEypB,kBAQN5B,UAAY7nB,EAAEypB,YACdA,UAAY,QAGR8B,EAAYvrB,EAAE4nB,YAAcyD,MAEf,IAAfrrB,EAAE6nB,UAAkB7nB,EAAE6nB,UAAY0D,OAElC9B,UAAYzpB,EAAE6nB,SAAW0D,IACzB1D,SAAW0D,KAEIvrB,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,kBA7bS,KAuclBtnB,EAAE6nB,SAAW7nB,EAAE4nB,aAAgB5nB,EAAEgpB,OAndlBC,SAqdAjpB,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,kBA1cS,WAidtB2C,OAAS,EAEPG,IAAUjE,OAEKnmB,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,UApdW,EACA,IA0dpBtnB,EAAE6nB,SAAW7nB,EAAE4nB,iBAEA5nB,GAAG,GAChBA,EAAEiiB,KAAKqF,WAheW,MA07BxB,IAAI8D,GAAO,EAAG,EAAG,EAAG,EAAGjB,IACvB,IAAIiB,GAAO,EAAG,EAAG,GAAI,EAAGjB,IACxB,IAAIiB,GAAO,EAAG,EAAG,GAAI,GAAIjB,IAEzB,IAAIiB,GAAO,EAAG,EAAG,GAAI,GAAIV,IACzB,IAAIU,GAAO,EAAG,GAAI,GAAI,GAAIV,IAC1B,IAAIU,GAAO,EAAG,GAAI,IAAK,IAAKV,IAC5B,IAAIU,GAAO,EAAG,GAAI,IAAK,IAAKV,IAC5B,IAAIU,GAAO,GAAI,IAAK,IAAK,KAAMV,IAC/B,IAAIU,GAAO,GAAI,IAAK,IAAK,KAAMV,KA+BjC,mBACOzI,KAAO,UACPuJ,OAAS,OACTrO,YAAc,UACdmO,iBAAmB,OACnB9D,YAAc,OACdpK,QAAU,OACViL,KAAO,OACPoD,OAAS,UACTC,QAAU,OACVC,OAAS/E,QACTgF,mBAEA5C,OAAS,OACT6C,OAAS,OACTzC,OAAS,OAETpI,OAAS,UAQT8I,YAAc,OAKd5C,KAAO,UAMP8C,KAAO,UAEPE,MAAQ,OACRH,UAAY,OACZ+B,UAAY,OACZ1E,UAAY,OAEZD,WAAa,OAObS,YAAc,OAKd2C,aAAe,OACfK,WAAa,OACbC,gBAAkB,OAClBhD,SAAW,OACX6B,YAAc,OACdD,UAAY,OAEZZ,YAAc,OAKdH,iBAAmB,OAMnB8B,eAAiB,OAYjBxI,MAAQ,OACRO,SAAW,OAEXiH,WAAa,OAGbV,WAAa,OAYb3K,UAAa,IAAI4N,YAAYC,WAC7B5N,UAAa,IAAI2N,YAAa,UAC9B1N,QAAa,IAAI0N,YAAa,OAC9BntB,KAAKuf,cACLvf,KAAKwf,cACLxf,KAAKyf,cAELkD,OAAW,UACXE,OAAW,UACXC,QAAW,UAGX7D,SAAW,IAAIkO,YAAYE,SAI3BjN,KAAO,IAAI+M,YAAY,QACvBntB,KAAKogB,WAELE,SAAW,OACXY,SAAW,OAKXlB,MAAQ,IAAImN,YAAY,QACxBntB,KAAKggB,YAILc,MAAQ,OAERmD,YAAc,OAoBdpE,SAAW,OAEXgB,MAAQ,OAMRlB,QAAU,OACVC,WAAa,OACb3X,QAAU,OACVojB,OAAS,OAGT1M,OAAS,OAITD,SAAW,EAgBlB,MAAM4O,GAAoBjK,QAEnBA,IAASA,EAAKjf,aACV6jB,GAAI5E,EAAMsE,MAGd+B,SAAWrG,EAAKyF,UAAY,IAC5BxF,UAAY6D,SAEX/lB,EAAIiiB,EAAKjf,eACboa,QAAU,IACVoK,YAAc,EAEZxnB,EAAEqoB,KAAO,MACTA,MAAQroB,EAAEqoB,QAGZmD,OAAUxrB,EAAEqoB,KAxrCG,GAKA,MAorCZpF,MAAoB,IAAXjjB,EAAEqoB,KACd,EAEA,IACAuD,WAAa3F,MACNjmB,GACFqmB,IAIH8F,GAAgBlK,UAEdvb,EAAMwlB,GAAiBjK,GAnPf,IAACjiB,SAoPX0G,IAAQ2f,MApPGrmB,EAqPLiiB,EAAKjf,OAnPb8mB,YAAc,EAAI9pB,EAAEgpB,UAGjBhpB,EAAEgqB,QAILQ,eAAiBW,GAAoBnrB,EAAEgiB,OAAO+I,WAC9CvB,WAAa2B,GAAoBnrB,EAAEgiB,OAAO8I,cAC1ChC,WAAaqC,GAAoBnrB,EAAEgiB,OAAOgJ,cAC1CtC,iBAAmByC,GAAoBnrB,EAAEgiB,OAAOiJ,YAEhDpD,SAAW,IACXD,YAAc,IACd6B,UAAY,IACZQ,OAAS,IACTM,aAAevqB,EAAE6oB,YAAc4B,IAC/BI,gBAAkB,IAClBX,MAAQ,GAmOHxjB,GAaH0lB,GAAe,CAACnK,EAAMD,EAAO2J,EAAQU,EAAYC,EAAU/J,SAE1DN,SACIsE,OAEL8B,EAAO,KAEPrG,IAAU0E,OACJ,GAGN2F,EAAa,KACR,KACOA,GAGPA,EAAa,OACb,KACO,IAIZC,EAAW,GAAKA,EAxwCA,GAwwC4BX,IAAW/E,IACzDyF,EAAa,GAAKA,EAAa,IAAMrK,EAAQ,GAAKA,EAAQ,GAC1DO,EAAW,GAAKA,EAAWoD,UACpBkB,GAAI5E,EAAMsE,IAIA,IAAf8F,MACW,SAITrsB,EAAI,IAAIusB,YAETvpB,MAAQhD,IACXiiB,KAAOA,IAEPoG,KAAOA,IACPoD,OAAS,OACTI,OAASQ,IACTrD,OAAS,GAAKhpB,EAAE6rB,SAChBzC,OAASppB,EAAEgpB,OAAS,IAEpB8C,UAAYQ,EAAW,IACvBvC,UAAY,GAAK/pB,EAAE8rB,YACnB1E,UAAYpnB,EAAE+pB,UAAY,IAC1B5C,iBAAmB2E,UA5wCL,EA4wC6B,GA5wC7B,KA8wCd9K,OAAS,IAAIlR,WAAsB,EAAX9P,EAAEgpB,UAC1BgB,KAAO,IAAI+B,YAAY/rB,EAAE+pB,aACzB7C,KAAO,IAAI6E,YAAY/rB,EAAEgpB,UAKzBnG,YAAc,GAAMyJ,EAAW,IAE/BhB,iBAAmC,EAAhBtrB,EAAE6iB,cAIrB1F,YAAc,IAAIrN,WAAW9P,EAAEsrB,oBAI/B7L,MAAQ,EAAIzf,EAAE6iB,cAGdnD,MAAS,EAAS1f,EAAE6iB,cAEpBb,MAAQA,IACRO,SAAWA,IACXoJ,OAASA,EAEJQ,GAAalK,IAictB,IAmBIuK,GAAc,CACjBC,YAldmB,CAACxK,EAAMD,IAElBoK,GAAanK,EAAMD,EAAO4E,GAj0Cf,GAEE,EA+zCuDD,IAid5EyF,aApBoBA,GAqBpBD,aApBoBA,GAqBpBD,iBApBwBA,GAqBxBQ,iBA9iBwB,CAACzK,EAAM+H,IAEzB/H,GAASA,EAAKjf,MACK,IAApBif,EAAKjf,MAAMqlB,KAAqB9B,MAC/BvjB,MAAMyoB,OAASzB,EACb3D,IAH4BE,GA6iBpCoG,QAjdiB,CAAC1K,EAAMmI,SAEnBwC,EAAKllB,MAEJua,IAASA,EAAKjf,OACjBonB,EAAQhE,IAAagE,EAAQ,SACtBnI,EAAO4E,GAAI5E,EAAMsE,IAAoBA,SAGxCvmB,EAAIiiB,EAAKjf,UAEVif,EAAKsF,SACJtF,EAAKkG,OAA2B,IAAlBlG,EAAKiG,UAjzCN,MAkzCdloB,EAAEwrB,QAA2BpB,IAAUjE,UACnCU,GAAI5E,EAA0B,IAAnBA,EAAKqF,UAAmBb,GAAgBF,MAG1DtE,KAAOA,QACH4K,EAAY7sB,EAAE4rB,gBAClBA,WAAaxB,EA9zCE,KAi0CbpqB,EAAEwrB,UAEW,IAAXxrB,EAAEqoB,OACCpF,MAAQ,KACJjjB,EAAG,OACHA,EAAG,QACHA,EAAG,GACPA,EAAEyrB,WAaIzrB,KAAMyrB,OAAOqB,KAAO,EAAI,MAClBrB,OAAOsB,KAAO,EAAI,IACnB/sB,EAAEyrB,OAAOlM,MAAY,EAAJ,IACjBvf,EAAEyrB,OAAO/mB,KAAW,EAAJ,IAChB1E,EAAEyrB,OAAOuB,QAAc,GAAJ,OAExBhtB,EAAmB,IAAhBA,EAAEyrB,OAAOwB,SACZjtB,EAAIA,EAAEyrB,OAAOwB,MAAQ,EAAK,QAC1BjtB,EAAIA,EAAEyrB,OAAOwB,MAAQ,GAAM,QAC3BjtB,EAAIA,EAAEyrB,OAAOwB,MAAQ,GAAM,QAC3BjtB,EAAe,IAAZA,EAAEgiB,MAAc,EACfhiB,EAAEuiB,UAAYkD,IAAkBzlB,EAAEgiB,MAAQ,EAC1C,EAAI,MACRhiB,EAAiB,IAAdA,EAAEyrB,OAAOyB,IACjBltB,EAAEyrB,OAAOlM,OAASvf,EAAEyrB,OAAOlM,MAAM9hB,YAC1BuC,EAA2B,IAAxBA,EAAEyrB,OAAOlM,MAAM9hB,WAClBuC,EAAIA,EAAEyrB,OAAOlM,MAAM9hB,QAAU,EAAK,MAEzCuC,EAAEyrB,OAAOsB,SACN9J,MAAQO,GAAQvB,EAAKgB,MAAOjjB,EAAEmd,YAAand,EAAEod,QAAS,MAE3DsO,QAAU,IACVF,OA12CU,QAw0CHxrB,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAe,IAAZA,EAAEgiB,MAAc,EACfhiB,EAAEuiB,UAAYkD,IAAkBzlB,EAAEgiB,MAAQ,EAC1C,EAAI,MACRhiB,EAp0CD,KAq0CNwrB,OA70CS,SA02Cf,KACMzK,EAAU6F,MAAmBiF,OAAS,GAAM,IAAO,EACnDsB,OAEAntB,EAAEuiB,UAAYkD,IAAkBzlB,EAAEgiB,MAAQ,EAC9B,EACLhiB,EAAEgiB,MAAQ,EACL,EACO,IAAZhiB,EAAEgiB,MACG,EAEA,KAELmL,GAAe,EACP,IAAfntB,EAAE6nB,cA/3CQ,OAg4CJ,GAAM9G,EAAS,KAEvByK,OA33CW,OA43CDxrB,EAAG+gB,GAGI,IAAf/gB,EAAE6nB,cACQ7nB,EAAGiiB,EAAKgB,QAAU,OAClBjjB,EAAgB,MAAbiiB,EAAKgB,UAEjBA,MAAQ,KAv4CC,KA44CdjjB,EAAEwrB,UACAxrB,EAAEyrB,OAAOlM,MAAqB,OAC1Bvf,EAAEod,QAEDpd,EAAE0rB,SAAmC,QAAtBD,OAAOlM,MAAM9hB,UAC7BuC,EAAEod,UAAYpd,EAAEsrB,mBACdtrB,EAAEyrB,OAAOsB,MAAQ/sB,EAAEod,QAAUwP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOjjB,EAAEmd,YAAand,EAAEod,QAAUwP,EAAKA,OAErD3K,KACRjiB,EAAEod,QACJpd,EAAEod,UAAYpd,EAAEsrB,uBAIbtrB,EAA+B,IAA5BA,EAAEyrB,OAAOlM,MAAMvf,EAAE0rB,YAC3BA,UAEA1rB,EAAEyrB,OAAOsB,MAAQ/sB,EAAEod,QAAUwP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOjjB,EAAEmd,YAAand,EAAEod,QAAUwP,EAAKA,IAE/D5sB,EAAE0rB,UAAY1rB,EAAEyrB,OAAOlM,MAAM9hB,WAC7BiuB,QAAU,IACVF,OAl6CS,WAs6CXA,OAt6CW,MAAA,KAy6CbxrB,EAAEwrB,UACAxrB,EAAEyrB,OAAO/mB,KAAoB,GACzB1E,EAAEod,UAGL,IACGpd,EAAEod,UAAYpd,EAAEsrB,mBACdtrB,EAAEyrB,OAAOsB,MAAQ/sB,EAAEod,QAAUwP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOjjB,EAAEmd,YAAand,EAAEod,QAAUwP,EAAKA,OAErD3K,KACRjiB,EAAEod,QACJpd,EAAEod,UAAYpd,EAAEsrB,kBAAkB,GAC9B,UAKNtrB,EAAE0rB,QAAU1rB,EAAEyrB,OAAO/mB,KAAKjH,OACkB,IAAxCuC,EAAEyrB,OAAO/mB,KAAK0oB,WAAWptB,EAAE0rB,WAE3B,KAEC1rB,EAAG0H,SACG,IAARA,GAEL1H,EAAEyrB,OAAOsB,MAAQ/sB,EAAEod,QAAUwP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOjjB,EAAEmd,YAAand,EAAEod,QAAUwP,EAAKA,IAEvD,IAARllB,MACAgkB,QAAU,IACVF,OAv8CY,WA28CdA,OA38Cc,MAAA,KA88ChBxrB,EAAEwrB,UACAxrB,EAAEyrB,OAAOuB,QAAuB,GAC5BhtB,EAAEod,UAGL,IACGpd,EAAEod,UAAYpd,EAAEsrB,mBACdtrB,EAAEyrB,OAAOsB,MAAQ/sB,EAAEod,QAAUwP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOjjB,EAAEmd,YAAand,EAAEod,QAAUwP,EAAKA,OAErD3K,KACRjiB,EAAEod,QACJpd,EAAEod,UAAYpd,EAAEsrB,kBAAkB,GAC9B,UAKNtrB,EAAE0rB,QAAU1rB,EAAEyrB,OAAOuB,QAAQvvB,OACkB,IAA3CuC,EAAEyrB,OAAOuB,QAAQI,WAAWptB,EAAE0rB,WAE9B,KAEC1rB,EAAG0H,SACG,IAARA,GAEL1H,EAAEyrB,OAAOsB,MAAQ/sB,EAAEod,QAAUwP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOjjB,EAAEmd,YAAand,EAAEod,QAAUwP,EAAKA,IAEvD,IAARllB,MACA8jB,OA3+CS,YA++CXA,OA/+CW,OAAA,MAk/CbxrB,EAAEwrB,SACAxrB,EAAEyrB,OAAOsB,MACP/sB,EAAEod,QAAU,EAAIpd,EAAEsrB,qBACNrJ,GAEZjiB,EAAEod,QAAU,GAAKpd,EAAEsrB,sBACZtrB,EAAgB,IAAbiiB,EAAKgB,UACRjjB,EAAIiiB,EAAKgB,OAAS,EAAK,OAC3BA,MAAQ,IACXuI,OA1/CS,QA8/CXA,OA9/CW,KAogDC,IAAdxrB,EAAEod,eACU6E,GACS,IAAnBA,EAAKqF,mBAOLsE,cACKvF,WAOkB,IAAlBpE,EAAKiG,UAAkBrgB,GAAKuiB,IAAUviB,GAAKglB,IACpDzC,IAAUjE,UACHU,GAAI5E,EAAMwE,OAthDA,MA0hDfzmB,EAAEwrB,QAA6C,IAAlBvJ,EAAKiG,gBAC7BrB,GAAI5E,EAAMwE,OAKG,IAAlBxE,EAAKiG,UAAkC,IAAhBloB,EAAEypB,WAC1BW,IAAUnE,IAjiDM,MAiiDUjmB,EAAEwrB,OAA0B,KACnD6B,EAAUrtB,EAAEuiB,WAAakD,GA5qBZ,EAACzlB,EAAGoqB,SAEnBE,SAEK,IAEa,IAAhBtqB,EAAEypB,eACQzpB,GACQ,IAAhBA,EAAEypB,WAAiB,IACjBW,IAAUnE,UA73BI,aAq4BpBsE,aAAe,IAGR3H,GAAU5iB,EAAG,EAAGA,EAAEghB,OAAOhhB,EAAE6nB,aAClC4B,cACA5B,WACEyC,OAEetqB,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,kBA94BS,WAo5BtB2C,OAAS,EACPG,IAAUjE,OAEKnmB,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,UAt5BW,EACA,GA25BpBtnB,EAAEye,cAEaze,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,WAj6BW,EACA,GA+hDyBgG,CAAattB,EAAGoqB,GAC5DpqB,EAAEuiB,WAAamD,GA7wBF,EAAC1lB,EAAGoqB,SAElBE,EACApD,EACAyB,EAAMU,QAEJH,EAAOlpB,EAAEghB,cAEN,IAKHhhB,EAAEypB,WA9yBQ,IA8yBgB,OAChBzpB,GACRA,EAAEypB,WAhzBM,KAgzBoBW,IAAUnE,UAnyBtB,KAsyBA,IAAhBjmB,EAAEypB,qBAINc,aAAe,EACbvqB,EAAEypB,WAzzBQ,GAyzBkBzpB,EAAE6nB,SAAW,MACpC7nB,EAAE6nB,SAAW,IACbqB,EAAKP,GACRzB,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IAAO,GAClE3oB,EAAE6nB,SA5zBD,cA+zBDX,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IACzCzB,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IACzCzB,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IACzCzB,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IACzCA,EAAOU,KACdkB,aAp0BQ,OAo0B6B5B,GACnC3oB,EAAEuqB,aAAevqB,EAAEypB,cACnBc,aAAevqB,EAAEypB,cAOrBzpB,EAAEuqB,cA90BQ,KAk1BH3H,GAAU5iB,EAAG,EAAGA,EAAEuqB,aAl1Bf,KAo1BVd,WAAazpB,EAAEuqB,eACf1C,UAAY7nB,EAAEuqB,eACdA,aAAe,MAKR3H,GAAU5iB,EAAG,EAAGA,EAAEghB,OAAOhhB,EAAE6nB,aAElC4B,cACA5B,YAEAyC,OAEetqB,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,kBAr1BS,WA21BtB2C,OAAS,EACPG,IAAUjE,OAEKnmB,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,UA71BW,EACA,GAk2BpBtnB,EAAEye,cAEaze,GAAG,GACK,IAArBA,EAAEiiB,KAAKqF,WAx2BW,EACA,GAgiDIiG,CAAYvtB,EAAGoqB,GACrCe,GAAoBnrB,EAAEgiB,OAAOkJ,KAAKlrB,EAAGoqB,MAhiDnB,IAkiDlBiD,GAjiDkB,IAiiDcA,MAChC7B,OAviDa,KAEK,IAuiDlB6B,GAriDkB,IAqiDSA,SACN,IAAnBpL,EAAKqF,cACLsE,eAGGvF,MA3iDa,IAojDlBgH,IACEjD,IAAU9F,MACFtkB,GAEHoqB,IAAUhE,QAEApmB,EAAG,EAAG,GAAG,GAItBoqB,IAAUlE,QAEPlmB,EAAEgqB,MAEa,IAAhBhqB,EAAEypB,cACF5B,SAAW,IACXD,YAAc,IACdqC,OAAS,QAIHhI,GACS,IAAnBA,EAAKqF,oBACLsE,cACKvF,UAOT+D,IAAUjE,GAAqBE,GAC/BrmB,EAAEqoB,MAAQ,EAAY/B,IAGX,IAAXtmB,EAAEqoB,SACKroB,EAAgB,IAAbiiB,EAAKgB,UACRjjB,EAAIiiB,EAAKgB,OAAS,EAAK,QACvBjjB,EAAIiiB,EAAKgB,OAAS,GAAM,QACxBjjB,EAAIiiB,EAAKgB,OAAS,GAAM,QACxBjjB,EAAmB,IAAhBiiB,EAAKqG,aACRtoB,EAAIiiB,EAAKqG,UAAY,EAAK,QAC1BtoB,EAAIiiB,EAAKqG,UAAY,GAAM,QAC3BtoB,EAAIiiB,EAAKqG,UAAY,GAAM,UAIxBtoB,EAAGiiB,EAAKgB,QAAU,OAClBjjB,EAAgB,MAAbiiB,EAAKgB,WAGRhB,GAIVjiB,EAAEqoB,KAAO,MAAOA,MAAQroB,EAAEqoB,MAET,IAAdroB,EAAEod,QAAgBiJ,GAASC,KAuInCkH,WAnImBvL,QAEbA,IAAsBA,EAAKjf,aACvBujB,SAGHiF,EAASvJ,EAAKjf,MAAMwoB,cAhoDT,KAioDbA,GAhoDc,KAioDhBA,GAhoDe,KAioDfA,GAhoDkB,KAioDlBA,GAhoDe,MAioDfA,GAhoDe,MAioDfA,GAhoDiB,MAioDjBA,EAEO3E,GAAI5E,EAAMsE,OAGdvjB,MAAQ,KAvoDI,MAyoDVwoB,EAAwB3E,GAAI5E,EAAMuE,IAAkBH,KAgH5DoH,qBAxG4B,CAACxL,EAAMyL,SAE9BC,EAAaD,EAAWjwB,WAEvBwkB,IAAsBA,EAAKjf,aACvBujB,SAGHvmB,EAAIiiB,EAAKjf,MACTqlB,EAAOroB,EAAEqoB,QAEF,IAATA,GAAwB,IAATA,GAjqDF,KAiqDgBroB,EAAEwrB,QAA0BxrB,EAAEypB,iBACtDlD,MAII,IAAT8B,MAEGpF,MAAQD,GAAUf,EAAKgB,MAAOyK,EAAYC,EAAY,MAG3DtF,KAAO,EAGLsF,GAAc3tB,EAAEgpB,OAAQ,CACb,IAATX,OAEGroB,EAAEgqB,QACLnC,SAAW,IACXD,YAAc,IACdqC,OAAS,OAIT2D,EAAU,IAAI9d,WAAW9P,EAAEgpB,UACvBta,IAAIgf,EAAWzM,SAAS0M,EAAa3tB,EAAEgpB,OAAQ2E,GAAa,KACvDC,IACA5tB,EAAEgpB,aAGX6E,EAAQ5L,EAAKiG,SACb4F,EAAO7L,EAAKmG,QACZD,EAAQlG,EAAKkG,YACdD,SAAWyF,IACXvF,QAAU,IACVD,MAAQuF,KACD1tB,GACLA,EAAEypB,WA3sDO,GA2sDiB,KAC3Bna,EAAMtP,EAAE6nB,SACR/qB,EAAIkD,EAAEypB,UAAa,OAGnBS,MAAQjD,GAAKjnB,EAAGA,EAAEkqB,MAAOlqB,EAAEghB,OAAO1R,EAhtDxB,EAgtD0C,MAEpD4X,KAAK5X,EAAMtP,EAAEopB,QAAUppB,EAAEgqB,KAAKhqB,EAAEkqB,SAEhCF,KAAKhqB,EAAEkqB,OAAS5a,cAETxS,KACT+qB,SAAWvY,IACXma,UAAYgB,KACFzqB,YAEZ6nB,UAAY7nB,EAAEypB,YACd7B,YAAc5nB,EAAE6nB,WAChBoC,OAASjqB,EAAEypB,YACXA,UAAY,IACZc,aAAevqB,EAAE6oB,YAAc4B,IAC/BI,gBAAkB,IACfzC,QAAU0F,IACV3F,MAAQA,IACRD,SAAW2F,IACdxF,KAAOA,EACFhC,IAgCR0H,YApBiB,sCAuBlB,MAAMC,GAAO,CAAC1nB,EAAKtI,IACVyM,OAAO9H,UAAU8X,eAAenW,KAAKgC,EAAKtI,GAGnD,IA0CIiwB,GA1CS,SAAU3nB,SACf4nB,EAAUvtB,MAAMgC,UAAUf,MAAM0C,KAAK/G,UAAW,QAC/C2wB,EAAQzwB,QAAQ,OACf0wB,EAASD,EAAQtf,WAClBuf,MAEiB,iBAAXA,QACH,IAAIC,UAAUD,EAAS,gCAGpBhuB,KAAKguB,EACVH,GAAKG,EAAQhuB,OACXA,GAAKguB,EAAOhuB,YAKfmG,GAyBL2nB,GApBiBI,QAEf/S,EAAM,UAEDne,EAAI,EAAGJ,EAAIsxB,EAAO5wB,OAAQN,EAAIJ,EAAGI,OACjCkxB,EAAOlxB,GAAGM,aAIb6wB,EAAS,IAAIxe,WAAWwL,WAErBne,EAAI,EAAG+lB,EAAM,EAAGnmB,EAAIsxB,EAAO5wB,OAAQN,EAAIJ,EAAGI,IAAK,KAClDoxB,EAAQF,EAAOlxB,KACZuR,IAAI6f,EAAOrL,MACXqL,EAAM9wB,cAGR6wB,GAgBT,IAAIE,IAAmB,EAEvB,WAAaC,aAAaC,MAAM,KAAM,IAAI5e,WAAW,UAAc3R,QAAyB,EAM5F,MAAMwwB,GAAW,IAAI7e,WAAW,KAChC,QAAS8e,GAAI,EAAGA,GAAI,IAAKA,QACdA,IAAMA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAI,EAE5FD,GAAS,KAAOA,GAAS,KAAO,EAiFhC,IAyEIE,GAtJcvf,OACW,mBAAhBwf,aAA8BA,YAAYnsB,UAAUosB,cACtD,IAAID,aAAcC,OAAOzf,OAG9B+L,EAAKtb,EAAGivB,EAAIC,EAAO9xB,EAAG+xB,EAAU5f,EAAI7R,OAAQ0xB,EAAU,MAGrDF,EAAQ,EAAGA,EAAQC,EAASD,MAC3B3f,EAAI8d,WAAW6B,GACE,QAAZ,UAAuBA,EAAQ,EAAIC,MACrC5f,EAAI8d,WAAW6B,EAAQ,GACN,QAAZ,aACJ,SAAgB,OAAW,OAAY,gBAIpClvB,EAAI,IAAO,EAAIA,EAAI,KAAQ,EAAIA,EAAI,MAAU,EAAI,QAIxD,IAAI+P,WAAWqf,GAGhBhyB,EAAI,EAAG8xB,EAAQ,EAAG9xB,EAAIgyB,EAASF,MAC9B3f,EAAI8d,WAAW6B,GACE,QAAZ,UAAuBA,EAAQ,EAAIC,MACrC5f,EAAI8d,WAAW6B,EAAQ,GACN,QAAZ,aACJ,SAAgB,OAAW,OAAY,aAI3ClvB,EAAI,MAEF5C,KAAO4C,EACFA,EAAI,QAET5C,KAAO,IAAQ4C,IAAM,IACrB5C,KAAO,IAAY,GAAJ4C,GACVA,EAAI,SAET5C,KAAO,IAAQ4C,IAAM,KACrB5C,KAAO,IAAQ4C,IAAM,EAAI,KACzB5C,KAAO,IAAY,GAAJ4C,MAGf5C,KAAO,IAAQ4C,IAAM,KACrB5C,KAAO,IAAQ4C,IAAM,GAAK,KAC1B5C,KAAO,IAAQ4C,IAAM,EAAI,KACzB5C,KAAO,IAAY,GAAJ4C,UAIhBsb,GAgGLwT,GAzEa,CAACxT,EAAKnU,WACfoU,EAAMpU,GAAOmU,EAAI5d,UAEI,mBAAhB2xB,aAA8BA,YAAYzsB,UAAU0sB,cACtD,IAAID,aAAcC,OAAOhU,EAAI4F,SAAS,EAAG/Z,QAG9C/J,EAAGmyB,QAKDC,EAAW,IAAI5uB,MAAY,EAAN2a,OAEtBgU,EAAM,EAAGnyB,EAAI,EAAGA,EAAIme,GAAM,KACzBvb,EAAIsb,EAAIle,QAER4C,EAAI,IAAM,GAAWuvB,KAASvvB,eAE9ByvB,EAAQb,GAAS5uB,MAEjByvB,EAAQ,IAAcF,KAAS,SAAaE,EAAQ,cAGzC,IAAVA,EAAc,GAAiB,IAAVA,EAAc,GAAO,EAExCA,EAAQ,GAAKryB,EAAIme,KACjBvb,GAAK,EAAiB,GAAXsb,EAAIle,SAKlBqyB,EAAQ,IAAcF,KAAS,MAE/BvvB,EAAI,QACGuvB,KAASvvB,MAEb,QACIuvB,KAAS,MAAWvvB,GAAK,GAAM,OAC/BuvB,KAAS,MAAc,KAAJvvB,UA1DZ,EAACsb,EAAKC,QAItBA,EAAM,OACJD,EAAI4F,UAAYuN,UACX1kB,OAAO2kB,aAAaC,MAAM,KAAMrT,EAAI5d,SAAW6d,EAAMD,EAAMA,EAAI4F,SAAS,EAAG3F,QAIlFgT,EAAS,WACJnxB,EAAI,EAAGA,EAAIme,EAAKne,OACb2M,OAAO2kB,aAAapT,EAAIle,WAE7BmxB,GAgDAmB,CAAcF,EAAUD,IA8B7BT,GApBa,CAACxT,EAAKnU,QAEfA,GAAOmU,EAAI5d,QACP4d,EAAI5d,WAAgB4d,EAAI5d,YAG9BylB,EAAMhc,EAAM,OACTgc,GAAO,GAA2B,MAAV,MAAPA,gBAIpBA,EAAM,GAIE,IAARA,EAJkBhc,EAMdgc,EAAMyL,GAAStT,EAAI6H,IAAQhc,EAAOgc,EAAMhc,GAqDlD,IAAIwoB,GAzBJ,gBAEOvH,MAAQ,UACRC,QAAU,OAEVF,SAAW,OAEXI,SAAW,OAEXf,OAAS,UACTE,SAAW,OAEXH,UAAY,OAEZI,UAAY,OAEZX,IAAM,QAEN/jB,MAAQ,UAERkf,UAAY,OAEZe,MAAQ,GAKf,MAAM0M,GAAallB,OAAO9H,UAAUgN,UAMlC0U,WAAYuL,gBAAcrL,gBAAcC,GAAcC,SAAUoL,GAChEjL,KAAMkL,GAAQjL,aAAckL,yBAC5BxK,sBACAK,GACAI,WAAYgK,IACV5L,GA0FJ,YAAmB5T,QACZA,QAAUyd,GAAc,CAC3BjM,MAAOuD,GACPoG,OAAQqE,GACRC,UAAW,MACX5D,WAAY,GACZC,SAAU,EACV/J,SAAUqD,IACTpV,GAAW,QAEV0f,EAAMtxB,KAAK4R,QAEX0f,EAAIC,KAAQD,EAAI7D,WAAa,IAC3BA,YAAc6D,EAAI7D,WAGf6D,EAAIE,MAASF,EAAI7D,WAAa,GAAO6D,EAAI7D,WAAa,OACzDA,YAAc,SAGfxF,IAAS,OACTE,IAAS,QACTsJ,OAAS,OACThC,OAAS,QAETpM,KAAO,IAAIyN,QACXzN,KAAKqF,UAAY,MAElBkE,EAASgB,GAAYJ,aACvBxtB,KAAKqjB,KACLiO,EAAIlO,MACJkO,EAAIvE,OACJuE,EAAI7D,WACJ6D,EAAI5D,SACJ4D,EAAI3N,aAGFiJ,IAAWsE,SACP,IAAIQ,MAAM5M,GAAS8H,OAGvB0E,EAAInP,WACM2L,iBAAiB9tB,KAAKqjB,KAAMiO,EAAInP,QAG1CmP,EAAIxC,WAAY,KACd6C,OAE0B,iBAAnBL,EAAIxC,WAENmB,GAAmBqB,EAAIxC,YACe,yBAApCiC,GAAWrrB,KAAK4rB,EAAIxC,YACtB,IAAI5d,WAAWogB,EAAIxC,YAEnBwC,EAAIxC,aAGJlB,GAAYiB,qBAAqB7uB,KAAKqjB,KAAMsO,GAEjD/E,IAAWsE,SACP,IAAIQ,MAAM5M,GAAS8H,SAGtBgF,WAAY,GA0BrBC,GAAU9tB,UAAUjF,KAAO,SAAU2G,EAAMqsB,SACnCzO,EAAOrjB,KAAKqjB,KACZgO,EAAYrxB,KAAK4R,QAAQyf,cAC3BzE,EAAQmF,KAER/xB,KAAKyxB,aAAgB,QAErBK,MAAiBA,EAA0BA,GACb,IAAfA,EAAsBb,GAAaD,GAGlC,iBAATvrB,IAEJ8jB,MAAQ0G,GAAmBxqB,GACG,yBAA1BsrB,GAAWrrB,KAAKD,KACpB8jB,MAAQ,IAAIrY,WAAWzL,KAEvB8jB,MAAQ9jB,IAGV+jB,QAAU,IACVF,SAAWjG,EAAKkG,MAAM1qB,YAGF,IAAnBwkB,EAAKqF,cACFC,OAAS,IAAIzX,WAAWmgB,KACxBxI,SAAW,IACXH,UAAY2I,QAIE1L,IAAgBoM,IAAgBnM,KAAiBvC,EAAKqF,WAAa,OACjFsJ,OAAO3O,EAAKsF,OAAOtG,SAAS,EAAGgB,EAAKwF,aACpCH,UAAY,YAIVkF,GAAYG,QAAQ1K,EAAM0O,GAG/BnF,IAAWuE,UACT9N,EAAKwF,SAAW,QACbmJ,OAAO3O,EAAKsF,OAAOtG,SAAS,EAAGgB,EAAKwF,aAElC+E,GAAYgB,WAAW5uB,KAAKqjB,WAChC4O,MAAMrF,QACN6E,OAAQ,EACN7E,IAAWsE,MAIG,IAAnB7N,EAAKqF,cAMLqJ,EAAc,GAAK1O,EAAKwF,SAAW,OAChCmJ,OAAO3O,EAAKsF,OAAOtG,SAAS,EAAGgB,EAAKwF,aACpCH,UAAY,UAIG,IAAlBrF,EAAKiG,yBAXF0I,OAAO3O,EAAKsF,eAcd,GAWTkJ,GAAU9tB,UAAUiuB,OAAS,SAAUrC,QAChCF,OAAO3wB,KAAK6wB,IAanBkC,GAAU9tB,UAAUkuB,MAAQ,SAAUrF,GAEhCA,IAAWsE,UACRxB,OAASL,GAAqBrvB,KAAKyvB,cAErCA,OAAS,QACTxH,IAAM2E,OACNzE,IAAMnoB,KAAKqjB,KAAK8E,KAsJvB,IAAI+J,GAAU,SAAsB7O,EAAM/U,OACpC6jB,EACA7e,EACA8e,EACApE,EACAnf,EAEAwjB,EAEAC,EACAC,EACAC,EAEAC,EACAC,EACAtT,EACAuT,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAtW,EACA2B,EACAhN,EACA4hB,EAGA1J,EAAOZ,QAGLvkB,EAAQif,EAAKjf,QAEbif,EAAKmG,UACHnG,EAAKkG,QACN4I,KAAY7I,SAAW,KACvBjG,EAAKwF,WACHxF,EAAKsF,SACRyJ,KAAgB/O,EAAKqF,aACrB0J,KAAa1J,UAAY,OAExBtkB,EAAMiuB,OAELjuB,EAAMkuB,QACNluB,EAAMmuB,QACNnuB,EAAMouB,QACHpuB,EAAMge,SACVhe,EAAMsuB,OACNtuB,EAAMgb,OACLhb,EAAM8uB,UACN9uB,EAAM+uB,eACA/uB,EAAMgvB,SAAW,QACjBhvB,EAAMivB,UAAY,MAO7B,CACGjU,EAAO,QACDmK,EAAM4I,MAAU/S,KAChB,KACAmK,EAAM4I,MAAU/S,KAChB,KAGHuT,EAAMD,EAAOG,YAGX,MACFE,IAAS,QACJC,KACFA,IACFD,IAAS,GAAM,IACV,IAAPC,IAIKZ,KAAiB,MAAPW,YAEL,GAALC,OAwKc,IAAR,MAAW,GACjBL,GAAc,gBAAqCK,GAAM,kBAGpD,GAALA,EAAS,GAEVM,KArSC,aAySFnL,IAAM,gCACLmL,KA3SA,aAyHO,MAAPP,KACA,GACFC,IACE5T,EAAO4T,OACDzJ,EAAM4I,MAAU/S,KAChB,MAEHsT,MAAcM,GAAM,OACjBA,KACFA,GAGN5T,EAAO,QACDmK,EAAM4I,MAAU/S,KAChB,KACAmK,EAAM4I,MAAU/S,KAChB,KAEHwT,EAAMF,EAAOI,YAGX,MACFC,IAAS,QACJC,KACFA,IACFD,IAAS,GAAM,MAEZ,GAALC,OA+HmB,IAAR,MAAW,GACjBJ,GAAc,gBAAqCI,GAAM,iBAI3D7K,IAAM,0BACLmL,KAzRJ,gBAqJY,MAAPP,KACD,GACF3T,EAAO4T,OACDzJ,EAAM4I,MAAU/S,KAChB,EACJA,EAAO4T,OACDzJ,EAAM4I,MAAU/S,KAChB,OAGJsT,MAAcM,GAAM,EAExB3U,EAAOgU,EAAM,GACVlK,IAAM,kCACLmL,KAnKN,mBAuKQN,KACFA,IAEHZ,EAAOpE,EACR3P,EAAO2U,EAAI,MACR3U,EAAO2U,EACRA,EAAKT,GACHnuB,EAAMmvB,KAAM,GACTpL,IAAM,kCACLmL,KAhLV,gBA0MO,IACOb,EACA,IAAVD,SACMF,EAAQU,EACZA,EAAKtW,EAAK,IACLsW,OAEEZ,KAAUK,EAASphB,aACjB2hB,KACJZ,EAAO/T,IACAsK,WAGT6J,EAAQQ,SACPV,EAAQE,EAAQQ,KAClBR,EACFQ,EAAKtW,EAAK,IACLsW,OAEEZ,KAAUK,EAASphB,aACjB2hB,QACJ,EACHR,EAAQ9V,EAAK,GACV8V,KACEQ,OAEEZ,KAAUK,EAASphB,aACjB2hB,KACJZ,EAAO/T,IACAsK,eAKV6J,EAAQQ,EACZA,EAAKtW,EAAK,IACLsW,OAEEZ,KAAUK,EAASphB,aACjB2hB,KACJZ,EAAO/T,IACAsK,OAGXjM,EAAM,KACJ0V,KAAUa,EAAY5hB,OACtB+gB,KAAUa,EAAY5hB,OACtB+gB,KAAUa,EAAY5hB,QACtB,EAELqL,MACK0V,KAAUa,EAAY5hB,KACzBqL,EAAM,MACD0V,KAAUa,EAAY5hB,WAI9B,GACI+gB,EAAO/T,OAEL+T,KAAUzJ,EAAOtX,OACjB+gB,KAAUzJ,EAAOtX,OACjB+gB,KAAUzJ,EAAOtX,QACjB,QACAqL,EAAM,GACXA,MACK0V,KAAUzJ,EAAOtX,KACpBqL,EAAM,MACD0V,KAAUzJ,EAAOtX,2BAmC/B8gB,EAAM7e,GAAQ8e,EAAOvjB,KAGxBuQ,GAAQ,KACP1C,KACCA,GAAO,SACD0C,GAAQ,IAGjBoK,QAAU2I,IACVtJ,SAAWuJ,IACX9I,SAAY6I,EAAM7e,IAAmB6e,EAAZ,EAAmB,KAAW7e,KACvDoV,UAAa0J,EAAOvjB,IAAmBujB,EAAb,IAAqB,OAAcvjB,KAC5D6jB,KAAOA,IACPtT,KAAOA,GAuBf,MASMoU,GAAQ,IAAIrG,YAAY,CAC5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAGzDsG,GAAO,IAAIviB,WAAW,CAC1B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAGpDwiB,GAAQ,IAAIvG,YAAY,CAC5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IACtD,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAClD,KAAM,MAAO,MAAO,MAAO,EAAG,IAG1BwG,GAAO,IAAIziB,WAAW,CAC1B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpC,GAAI,GAAI,GAAI,GAAI,GAAI,KAsStB,IAAI0iB,GAnSkB,CAAC10B,EAAM20B,EAAMC,EAAYC,EAAOrP,EAAOsP,EAAaC,EAAMpsB,WAExEuX,EAAOvX,EAAKuX,SAYd8U,EACAC,EACAC,EACAC,EACAnF,EAIArgB,EAjBA6N,EAAM,EACN4X,EAAM,EACNhf,EAAM,EAAGhN,EAAM,EACfisB,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EAMPx0B,EAAO,KACPy0B,EAAa,QAGXpT,EAAQ,IAAI0L,YAAY2H,IACxBC,EAAO,IAAI5H,YAAY2H,QAIzBE,EAAWC,EAASC,EAHpBvU,EAAQ,KACRwU,EAAc,MAoCbzY,EAAM,EAAGA,GA7FA,GA6FgBA,MACtBA,GAAO,MAEV4X,EAAM,EAAGA,EAAMP,EAAOO,MACnBT,EAAKC,EAAaQ,YAInBlV,EACF9W,EAtGS,GAsGMA,GAAO,GACN,IAAfmZ,EAAMnZ,GADkBA,QAG1BisB,EAAOjsB,MACFA,GAEG,IAARA,WAII0rB,KAAkB,WAMlBA,KAAkB,WAEnB5U,KAAO,EACL,MAEJ9J,EAAM,EAAGA,EAAMhN,GACC,IAAfmZ,EAAMnM,GADaA,SAGrBif,EAAOjf,MACFA,KAIF,EACFoH,EAAM,EAAGA,GApIA,GAoIgBA,WACnB,KACD+E,EAAM/E,GACVgY,EAAO,cAITA,EAAO,IAtIG,OAsI+B,IAARpsB,kBAKhC,GAAK,EACLoU,EAAM,EAAGA,EAjJA,GAiJeA,MACtBA,EAAM,GAAKqY,EAAKrY,GAAO+E,EAAM/E,OAI/B4X,EAAM,EAAGA,EAAMP,EAAOO,IACM,IAA3BT,EAAKC,EAAaQ,OACfS,EAAKlB,EAAKC,EAAaQ,OAAWA,MAnJ7B,IAyLVp1B,KACKyhB,EAAQsT,IACT,IA1LK,IA4LF/0B,KACFs0B,MACO,MACNC,MACO,MACT,QAGCC,KACCC,WAKH,IACD,IACAre,IACC0e,IACAO,IACA,SAEA,GAAKA,IACLI,EAAO,EAlND,IAqNRz1B,GAAmBy1B,EA1NJ,KAMN,IAqNXz1B,GAAoBy1B,EA1NF,WA2NZ,SAIA,GAEKjY,EAAM+X,EACdR,EAAKK,GAAOzlB,KACJ,IACColB,EAAKK,IAETL,EAAKK,GAAOzlB,KACT8R,EAAMwU,EAAclB,EAAKK,MACxBl0B,EAAKy0B,EAAaZ,EAAKK,QAGxB,KACC,KAIN,GAAM5X,EAAM+X,IACZ,GAAKD,IACNL,QAEID,IACFhF,MAAgBuF,GAAQN,GAASa,GAAa,GAAOC,GAAW,GAAMC,EAAU,QACtE,IAATf,SAGF,GAAMzX,EAAM,EACZkY,EAAOV,OACH,KAEE,IAATA,MACMA,EAAO,KACPA,KAED,MAKY,KAAfzS,EAAM/E,GAAY,IAClBA,IAAQpU,UACNurB,EAAKC,EAAaG,EAAKK,OAI3B5X,EAAM6X,MAAgBF,KAAUD,EAAK,KAE1B,IAATK,MACKF,MAIDjf,IAGDoH,EAAM+X,IACN,GAAKD,EACLA,EAAOC,EAAOnsB,OACXmZ,EAAM+S,EAAOC,KACjBC,GAAQ,aAEH,QAIH,GAAKF,EA5RJ,IA6RJt1B,GAAmBy1B,EAlSR,KAMN,IA6RPz1B,GAAoBy1B,EAlSN,WAmSR,IAIHC,EAAOP,IAIPD,GAAQG,GAAQ,GAAOC,GAAQ,GAAOtF,EAAO8E,EAAc,UAOxD,IAATY,MAII1F,EAAO0F,GAAUlY,EAAM+X,GAAS,GAAO,IAAM,GAAK,KAKrDrV,KAAOmV,EACL,GA8BT,MAQE1O,SAAUuP,WAAYtP,WAASC,GAC/BC,KAAMqP,GAAQpP,aAAcqP,GAAgBpP,YAAaqP,GAAenP,eAAgBoP,GAAkBnP,aAAcoP,GAAgBnP,YAAaoP,eAAenP,cACpKa,IACE5B,GAqDEmQ,GAAW3F,QAEE,GAAM,UACP,EAAK,SACP,UAAW,KACX,QAAS,IAIzB,mBACOsD,KAAO,OACPhgB,MAAO,OACPmW,KAAO,OACPmM,UAAW,OACXjtB,MAAQ,OACR0pB,KAAO,OACPwD,MAAQ,OACRC,MAAQ,OAER1K,KAAO,UAGP2K,MAAQ,OACRzD,MAAQ,OACRC,MAAQ,OACRC,MAAQ,OACRpQ,OAAS,UAGTsQ,KAAO,OACPtT,KAAO,OAGPvgB,OAAS,OACT4Q,OAAS,OAGTkR,MAAQ,OAGRuS,QAAU,UACVC,SAAW,UACXC,QAAU,OACVC,SAAW,OAGX2C,MAAQ,OACRC,KAAO,OACPC,MAAQ,OACRC,KAAO,OACPjH,KAAO,UAEP2E,KAAO,IAAI1G,YAAY,UACvB8G,KAAO,IAAI9G,YAAY,UAOvBiJ,OAAS,UACTC,QAAU,UACV9C,KAAO,OACP+C,KAAO,OACPC,IAAM,EAIb,MAAMC,GAAoBnT,QAEnBA,IAASA,EAAKjf,aAAgBoxB,SAC7BpxB,EAAQif,EAAKjf,eACdslB,SAAWrG,EAAKyF,UAAY1kB,EAAM0xB,MAAQ,IAC1C3N,IAAM,GACP/jB,EAAMqlB,SACHpF,MAAqB,EAAbjgB,EAAMqlB,QAEf6J,KA3HQ,IA4HRhgB,KAAO,IACPsiB,SAAW,IACXvD,KAAO,QACPjH,KAAO,OACPsH,KAAO,IACPtT,KAAO,IAEP8T,QAAU9uB,EAAMgyB,OAAS,IAAIK,WA9FjB,OA+FZtD,SAAW/uB,EAAMiyB,QAAU,IAAII,WA9FlB,OAgGblD,KAAO,IACP+C,QAECjB,IAIHqB,GAAgBrT,QAEfA,IAASA,EAAKjf,aAAgBoxB,SAC7BpxB,EAAQif,EAAKjf,eACbkuB,MAAQ,IACRC,MAAQ,IACRC,MAAQ,EACPgE,GAAiBnT,IAKpBsT,GAAgB,CAACtT,EAAMoK,SACvBhE,MAGCpG,IAASA,EAAKjf,aAAgBoxB,SAC7BpxB,EAAQif,EAAKjf,aAGfqpB,EAAa,KACR,KACOA,MAGa,MAAL,GAClBA,EAAa,QACD,KAKdA,MAA4B,GAAKA,EAAa,IACzC+H,IAEY,OAAjBpxB,EAAMge,QAAmBhe,EAAM2xB,QAAUtI,MACrCrL,OAAS,QAIXqH,KAAOA,IACPsM,MAAQtI,EACPiJ,GAAarT,KAIhBuT,GAAe,CAACvT,EAAMoK,SAErBpK,SAAemS,SAGdpxB,EAAQ,IAAIyyB,KAIbzyB,MAAQA,IACPge,OAAS,WACTta,EAAM6uB,GAActT,EAAMoK,UAC5B3lB,IAAQutB,OACLjxB,MAAQ,MAER0D,GAoBT,IAEIgvB,GAAQC,GAFRC,IAAS,EAKb,MAAMC,GAAe7yB,OAGf4yB,GAAQ,IACD,IAAIP,WAAW,QACd,IAAIA,WAAW,QAGrBnC,EAAM,OACHA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,SAhQ/B,EAkQOlwB,EAAMyvB,KAAM,EAAG,IAAKiD,GAAU,EAAG1yB,EAAM6vB,KAAM,CAAE7U,KAAM,MAG/D,EACCkV,EAAM,MAAYT,KAAKS,KAAS,KArQ7B,EAuQMlwB,EAAMyvB,KAAM,EAAG,GAAMkD,GAAS,EAAG3yB,EAAM6vB,KAAM,CAAE7U,KAAM,QAG5D,IAGL8T,QAAU4D,KACV1D,QAAU,IACVD,SAAW4D,KACX1D,SAAW,GAkBb6D,GAAe,CAAC7T,EAAM8T,EAAKtoB,EAAKK,SAEhCmP,QACEja,EAAQif,EAAKjf,aAGE,OAAjBA,EAAMge,WACFkQ,MAAQ,GAAKluB,EAAM2xB,QACnBvD,MAAQ,IACRD,MAAQ,IAERnQ,OAAS,IAAIlR,WAAW9M,EAAMkuB,QAIlCpjB,GAAQ9K,EAAMkuB,SACVlQ,OAAOtS,IAAIqnB,EAAI9U,SAASxT,EAAMzK,EAAMkuB,MAAOzjB,GAAM,KACjD2jB,MAAQ,IACRD,MAAQnuB,EAAMkuB,UAGbluB,EAAMkuB,MAAQluB,EAAMouB,MACvBnU,EAAOnP,MACFA,KAGHkT,OAAOtS,IAAIqnB,EAAI9U,SAASxT,EAAMK,EAAML,EAAMK,EAAOmP,GAAOja,EAAMouB,WAC5DnU,MAGA+D,OAAOtS,IAAIqnB,EAAI9U,SAASxT,EAAMK,EAAML,GAAM,KAC1C2jB,MAAQtjB,IACRqjB,MAAQnuB,EAAMkuB,UAGdE,OAASnU,EACXja,EAAMouB,QAAUpuB,EAAMkuB,UAAeE,MAAQ,GAC7CpuB,EAAMmuB,MAAQnuB,EAAMkuB,UAAeC,OAASlU,KAG7C,GA8oCT,IAqBI+Y,GAAc,CACjBV,aAtBoBA,GAuBpBC,cAtBqBA,GAuBrBH,iBAtBwBA,GAuBxBa,YAnxCoBhU,GAEZuT,GAAavT,EAvKJ,IAy7CjBuT,aAtBoBA,GAuBpBU,QArqCiB,CAACjU,EAAMmI,SAEnBpnB,EACAmlB,EAAOZ,EACPuG,EACAqI,EACApB,EAAMzB,EACNhC,EACAtT,EACA+S,EAAKC,EACLljB,EACAmC,EACA4hB,EAEA+B,EAAWC,EAASC,EAEpBsC,EAAWC,EAASC,EACpBhb,EACA5U,EALAirB,EAAO,QAML4E,EAAO,IAAIzmB,WAAW,OACxBrJ,EAEA3J,QAEE05B,EACJ,IAAI1mB,WAAW,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,SAG5EmS,IAASA,EAAKjf,QAAUif,EAAKsF,SAC5BtF,EAAKkG,OAA2B,IAAlBlG,EAAKiG,gBAChBkM,KAGDnS,EAAKjf,MApVK,KAqVdA,EAAMkvB,SAAuBA,KApVb,MAwVdjQ,EAAKwF,WACFxF,EAAKsF,SACPtF,EAAKqF,YACLrF,EAAKmG,UACJnG,EAAKkG,QACNlG,EAAKiG,WACLllB,EAAMsuB,OACNtuB,EAAMgb,OAGP+W,IACCzB,IACDW,mBAIIjxB,EAAMkvB,WApXF,KAsXW,IAAflvB,EAAMqlB,KAAY,GACd6J,KA3WM,cA+WPlU,EAAO,IAAI,IACH,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,KAGQ,EAAbhb,EAAMqlB,MAAsB,QAATiJ,EAAiB,GACjCmD,MAAQ,IAET,GAAY,IAAPnD,IACL,GAAMA,IAAS,EAAK,MACnBmD,MAAQjR,GAAQxgB,EAAMyxB,MAAO8B,EAAM,EAAG,KAIrC,IACA,IAEDrE,KA7YC,aAgZH3qB,MAAQ,EACVvE,EAAMgnB,SACFA,KAAKyM,MAAO,KAED,IAAPpO,UACA,QAAoB,OAAc,IAAM,GAAI,GACjDtB,IAAM,2BACLmL,KA3XD,aA8XK,QAAqBlM,GAAY,GACtCe,IAAM,+BACLmL,KAhYD,iBAoYG,KACF,IAEyB,GAAnB,MACM,IAAhBlvB,EAAM2xB,QACFA,MAAQrZ,UAEPA,EAAMtY,EAAM2xB,MAAO,GACrB5N,IAAM,wBACLmL,KA7YD,WAmZDjB,KAAO,GAAKjuB,EAAM2xB,QAInB1R,MAAQjgB,EAAMyxB,MAAQ,IACrBvC,KAAc,IAAPZ,EA5aH,GAEE,KA4aL,IACA,aAvbE,OA4bFtT,EAAO,IAAI,IACH,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,OAGJzW,MAAQ+pB,GACK,MAAR/pB,SAAkBye,GAAY,GAClCe,IAAM,+BACLmL,KA1aD,YA6aW,MAAdlvB,EAAMuE,MAAgB,GACnBwf,IAAM,6BACLmL,KA/aD,SAkbHlvB,EAAMgnB,SACFA,KAAK8C,KAASwE,GAAQ,EAAK,GAEjB,IAAdtuB,EAAMuE,UAEH,GAAY,IAAP+pB,IACL,GAAMA,IAAS,EAAK,MACnBmD,MAAQjR,GAAQxgB,EAAMyxB,MAAO8B,EAAM,EAAG,MAIvC,IACA,IAEDrE,KA3dE,OAAA,OA+dDlU,EAAO,IAAI,IACH,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,EAGNhb,EAAMgnB,SACFA,KAAKiD,KAAOqE,GAEF,IAAdtuB,EAAMuE,UAEH,GAAY,IAAP+pB,IACL,GAAMA,IAAS,EAAK,MACpB,GAAMA,IAAS,GAAM,MACrB,GAAMA,IAAS,GAAM,MACpBmD,MAAQjR,GAAQxgB,EAAMyxB,MAAO8B,EAAM,EAAG,MAIvC,IACA,IAEDrE,KArfA,OAAA,OAyfClU,EAAO,IAAI,IACH,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,EAGNhb,EAAMgnB,SACFA,KAAK0M,OAAiB,IAAPpF,IACftH,KAAKkD,GAAMoE,GAAQ,GAET,IAAdtuB,EAAMuE,UAEH,GAAY,IAAP+pB,IACL,GAAMA,IAAS,EAAK,MACnBmD,MAAQjR,GAAQxgB,EAAMyxB,MAAO8B,EAAM,EAAG,MAIvC,IACA,IAEDrE,KA9gBG,OAAA,KAihBS,KAAdlvB,EAAMuE,MAAgB,MAEjByW,EAAO,IAAI,IACH,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,IAGJvgB,OAAS6zB,EACXtuB,EAAMgnB,SACFA,KAAK2M,UAAYrF,GAEP,IAAdtuB,EAAMuE,UAEH,GAAY,IAAP+pB,IACL,GAAMA,IAAS,EAAK,MACnBmD,MAAQjR,GAAQxgB,EAAMyxB,MAAO8B,EAAM,EAAG,MAIvC,IACA,OAGAvzB,EAAMgnB,SACPA,KAAKzK,MAAQ,QAEf2S,KA5iBG,OAAA,KA+iBS,KAAdlvB,EAAMuE,UACDvE,EAAMvF,OACTqQ,EAAOinB,MAAeA,GACtBjnB,IACE9K,EAAMgnB,SACFhnB,EAAMgnB,KAAK2M,UAAY3zB,EAAMvF,OAC9BuF,EAAMgnB,KAAKzK,UAERyK,KAAKzK,MAAQ,IAAIzP,WAAW9M,EAAMgnB,KAAK2M,cAEzC3M,KAAKzK,MAAM7Q,IACfyZ,EAAMlH,SACJ6M,EAGAA,EAAOhgB,GAGTwN,IAMc,IAAdtY,EAAMuE,UACFktB,MAAQjR,GAAQxgB,EAAMyxB,MAAOtM,EAAOra,EAAMggB,OAE1ChgB,KACAA,IACFrQ,QAAUqQ,GAEd9K,EAAMvF,kBAENA,OAAS,IACTy0B,KAhlBE,OAAA,KAmlBU,KAAdlvB,EAAMuE,MAAgB,IACX,IAATwtB,YACG,OAGC5M,EAAM2F,EAAOhgB,KAEf9K,EAAMgnB,MAAQ1O,GACbtY,EAAMvF,OAAS,UACZusB,KAAKtlB,MAAQoF,OAAO2kB,aAAanT,UAElCA,GAAOxN,EAAOinB,MAEL,IAAd/xB,EAAMuE,UACFktB,MAAQjR,GAAQxgB,EAAMyxB,MAAOtM,EAAOra,EAAMggB,OAE1ChgB,KACAA,EACJwN,eAEGtY,EAAMgnB,SACPA,KAAKtlB,KAAO,QAEdjH,OAAS,IACTy0B,KA1mBK,OAAA,KA6mBO,KAAdlvB,EAAMuE,MAAgB,IACX,IAATwtB,YACG,OAEC5M,EAAM2F,EAAOhgB,KAEf9K,EAAMgnB,MAAQ1O,GACbtY,EAAMvF,OAAS,UACZusB,KAAKgD,SAAWljB,OAAO2kB,aAAanT,UAErCA,GAAOxN,EAAOinB,MACL,IAAd/xB,EAAMuE,UACFktB,MAAQjR,GAAQxgB,EAAMyxB,MAAOtM,EAAOra,EAAMggB,OAE1ChgB,KACAA,EACJwN,eAEGtY,EAAMgnB,SACPA,KAAKgD,QAAU,QAEjBkF,KAjoBE,OAAA,KAooBU,IAAdlvB,EAAMuE,MAAgB,MAEjByW,EAAO,IAAI,IACH,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,KAGNsT,KAAwB,QAARmD,OAAiB,GAC9B1N,IAAM,wBACLmL,KA1nBH,WA8nBE,IACA,EAGLlvB,EAAMgnB,SACFA,KAAK+C,KAAS/pB,EAAMuE,OAAS,EAAK,IAClCyiB,KAAKyM,MAAO,KAEfxT,MAAQjgB,EAAMyxB,MAAQ,IACrBvC,KAzpBM,cAFF,QA+pBHlU,EAAO,IAAI,IACH,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,IAGLiF,MAAQjgB,EAAMyxB,MAAQF,GAAQjD,KAE5B,IACA,IAEDY,KA1qBE,QAAA,MA6qBe,IAAnBlvB,EAAMwxB,kBAEH/M,SAAW0O,IACX7O,UAAYgM,IACZlL,QAAU0F,IACV5F,SAAW6M,IACVzD,KAAOA,IACPtT,KAAOA,EAENmW,KAEJlR,MAAQjgB,EAAMyxB,MAAQ,IACrBvC,KAxrBM,QAAA,MA2rBR9H,IAAU1F,IAAW0F,IAAUzF,gBA1rBrB,MA6rBV3hB,EAAMkP,KAAM,MAEG,EAAP8L,KACK,EAAPA,IAEFkU,KAprBC,cAwrBFlU,EAAO,GAAG,IACF,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,WAGJ9L,KAAe,EAAPof,OAEJ,KACF,EAGQ,EAAPA,QACF,IAGGY,KAttBI,cAwtBP,QACSlvB,KAGNkvB,KAttBM,GAutBR9H,IAAUzF,GAAS,MAEX,KACF,qBAKP,IAGGuN,KAruBG,cAuuBN,IACEnL,IAAM,uBACLmL,KA5tBH,QA+tBG,KACF,aAhvBM,YAqvBG,EAAPlU,KACK,EAAPA,EAGDA,EAAO,IAAI,IACH,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,MAGE,eAAuB,GAAM,OAAS,GAC3C+I,IAAM,iCACLmL,KAlvBD,cAqvBDz0B,OAAgB,MAAP6zB,IAIR,IACA,IAEDY,KA3wBO,GA4wBT9H,IAAUzF,gBA5wBD,KA+wBPuN,KA9wBM,QAAA,QAixBLlvB,EAAMvF,OACTqQ,EAAM,IACJA,EAAOinB,MAAeA,GACtBjnB,EAAOwlB,MAAeA,GACb,IAATxlB,YAEGY,IAAIyZ,EAAMlH,SAAS6M,EAAMA,EAAOhgB,GAAOqoB,MAEtCroB,KACAA,KACAA,KACDA,IACDrQ,QAAUqQ,UAIZokB,KAryBM,cAKC,QAoyBNlU,EAAO,IAAI,IACH,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,OAGJ6W,KAAkC,KAAnB,WAEX,KACF,IAEFC,MAAmC,GAAnB,WAEZ,KACF,IAEFF,MAAmC,GAAnB,WAEZ,KACF,EAGJ5xB,EAAM6xB,KAAO,KAAO7xB,EAAM8xB,MAAQ,GAAI,GACnC/N,IAAM,wCACLmL,KAhzBD,WAqzBD6C,KAAO,IACP7C,KAl0BS,QAAA,QAq0BRlvB,EAAM+xB,KAAO/xB,EAAM4xB,OAAO,MAExB5W,EAAO,GAAG,IACF,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,IAGJyU,KAAK+D,EAAMxzB,EAAM+xB,SAAmB,EAAPzD,OAEzB,KACF,OAGHtuB,EAAM+xB,KAAO,MACZtC,KAAK+D,EAAMxzB,EAAM+xB,SAAW,OAM9BjD,QAAU9uB,EAAMgyB,SAChBhD,QAAU,IAET,CAAEhU,KAAMhb,EAAMgvB,WACfQ,GAl4BA,EAk4BgBxvB,EAAMyvB,KAAM,EAAG,GAAIzvB,EAAM8uB,QAAS,EAAG9uB,EAAM6vB,KAAMpsB,KACjEurB,QAAUvrB,EAAKuX,KAEjBtX,EAAK,GACFqgB,IAAM,6BACLmL,KAx1BD,WA41BD6C,KAAO,IACP7C,KAx2BU,QAAA,QA22BTlvB,EAAM+xB,KAAO/xB,EAAM6xB,KAAO7xB,EAAM8xB,OAAO,QAEnC9xB,EAAM8uB,QAAQR,MAActuB,EAAMgvB,SAAW,KACxCL,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENiC,GAAc5V,IANZ,IAQM,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,KAGN8V,EAAW,QAEHF,KACFA,IAEFnB,KAAKzvB,EAAM+xB,QAAUjB,MAExB,IACc,KAAbA,EAAiB,OAEfF,EAAY,EACT5V,EAAOlhB,GAAG,IACF,IAATi4B,iBAEI5M,EAAM2F,MAAW9P,KACjB,UAIA4V,KACFA,EAEW,IAAf5wB,EAAM+xB,KAAY,GACfhO,IAAM,8BACLmL,KAv4BP,WA04BKlvB,EAAMyvB,KAAKzvB,EAAM+xB,KAAO,KACvB,GAAY,UAET,KACF,UAGY,KAAbjB,EAAiB,OAEpBF,EAAY,EACT5V,EAAOlhB,GAAG,IACF,IAATi4B,iBAEI5M,EAAM2F,MAAW9P,KACjB,OAIA4V,KACFA,IAEF,IACC,GAAY,UAET,KACF,MAGL,OAECA,EAAY,EACT5V,EAAOlhB,GAAG,IACF,IAATi4B,iBAEI5M,EAAM2F,MAAW9P,KACjB,OAIA4V,KACFA,IAEF,IACC,IAAa,YAEV,KACF,KAGN5wB,EAAM+xB,KAAOjnB,EAAO9K,EAAM6xB,KAAO7xB,EAAM8xB,MAAO,GAC3C/N,IAAM,8BACLmL,KA77BL,cAg8BIpkB,OACC2kB,KAAKzvB,EAAM+xB,QAAUzZ,MAj8B1B,KAu8BHtY,EAAMkvB,cAGc,IAApBlvB,EAAMyvB,KAAK,KAAY,GACpB1L,IAAM,yCACLmL,KA58BD,cAm9BDF,QAAU,IAET,CAAEhU,KAAMhb,EAAMgvB,WACfQ,GApgCD,EAogCgBxvB,EAAMyvB,KAAM,EAAGzvB,EAAM6xB,KAAM7xB,EAAM8uB,QAAS,EAAG9uB,EAAM6vB,KAAMpsB,KAGxEurB,QAAUvrB,EAAKuX,KAGjBtX,EAAK,GACFqgB,IAAM,gCACLmL,KA99BD,cAk+BDD,SAAW,IAGXF,SAAW/uB,EAAMiyB,UAChB,CAAEjX,KAAMhb,EAAMivB,YACfO,GAphCA,EAohCgBxvB,EAAMyvB,KAAMzvB,EAAM6xB,KAAM7xB,EAAM8xB,MAAO9xB,EAAM+uB,SAAU,EAAG/uB,EAAM6vB,KAAMpsB,KAGpFwrB,SAAWxrB,EAAKuX,KAGlBtX,EAAK,GACFqgB,IAAM,0BACLmL,KA/+BD,cAm/BDA,KA7/BU,GA8/BZ9H,IAAUzF,gBA9/BE,KAigCVuN,KAhgCS,QAAA,MAmgCX6C,GAAQ,GAAKzB,GAAQ,IAAK,GAEvB7L,SAAW0O,IACX7O,UAAYgM,IACZlL,QAAU0F,IACV5F,SAAW6M,IACVzD,KAAOA,IACPtT,KAAOA,KAELiE,EAAM+O,KAER/O,EAAKwF,WACFxF,EAAKsF,SACPtF,EAAKqF,YACLrF,EAAKmG,UACJnG,EAAKkG,QACNlG,EAAKiG,WACLllB,EAAMsuB,OACNtuB,EAAMgb,KA9hCH,KAiiCNhb,EAAMkvB,SACFgD,qBAIJA,KAAO,IAEJlyB,EAAM8uB,QAAQR,MAActuB,EAAMgvB,SAAW,KACxCL,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAEPiC,GAAa5V,IANV,IAQM,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,KAGN6V,GAAgC,IAAV,OAAa,OACzBD,IACFC,IACCC,IAEF9wB,EAAM8uB,QAAQwE,UACIF,EAAYC,GAAY,IAAoCD,MACzEzE,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENyE,EAAYxC,GAAc5V,IAPxB,IASM,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,OAIAoY,KACFA,IAEFlB,MAAQkB,UAGNxC,KACFA,IAEFsB,MAAQtB,IACRn2B,OAASq2B,EACC,IAAZD,EAAe,GAIX3B,KA1kCO,YA6kCD,GAAV2B,EAAc,GAEVqB,UACAhD,KA9lCI,YAimCE,GAAV2B,EAAc,GACX9M,IAAM,gCACLmL,KAjlCD,WAolCD3S,MAAkB,GAAVsU,IACR3B,KA7lCY,QAAA,MAgmCdlvB,EAAMuc,MAAO,OAEXvc,EAAMuc,MACHvB,EAAOlhB,GAAG,IACF,IAATi4B,iBAEI5M,EAAM2F,MAAW9P,KACjB,IAGJvgB,QAAU6zB,MAActuB,EAAMuc,OAAS,OAEnCvc,EAAMuc,SACRvc,EAAMuc,QAER2V,MAAQlyB,EAAMuc,QAGhB4V,IAAMnyB,EAAMvF,SACZy0B,KAlnCU,QAAA,UAsnCPlvB,EAAM+uB,SAAST,MAActuB,EAAMivB,UAAY,KAC1CN,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENiC,GAAc5V,IANZ,IAQM,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,KAGe,IAAV,OAAa,OACd4V,IACFC,IACCC,IAEF9wB,EAAM+uB,SAASuE,UACGF,EAAYC,GAAY,IAAoCD,MACzEzE,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENyE,EAAYxC,GAAc5V,IAPxB,IASM,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,OAIAoY,KACFA,IAEFlB,MAAQkB,UAGNxC,KACFA,IAEFsB,MAAQtB,EACA,GAAVC,EAAc,GACX9M,IAAM,0BACLmL,KA5pCD,WA+pCD7jB,OAASylB,IACTvU,MAAoB,GAAXsU,IACT3B,KAvqCa,QAAA,MA0qCflvB,EAAMuc,MAAO,OAEXvc,EAAMuc,MACHvB,EAAOlhB,GAAG,IACF,IAATi4B,iBAEI5M,EAAM2F,MAAW9P,KACjB,IAGJ3P,QAAUijB,MAActuB,EAAMuc,OAAS,OAEnCvc,EAAMuc,SACRvc,EAAMuc,QAER2V,MAAQlyB,EAAMuc,SAGlBvc,EAAMqL,OAASrL,EAAMiuB,KAAM,GACxBlK,IAAM,kCACLmL,KAxrCD,WA6rCDA,KAlsCW,QAAA,MAqsCJ,IAAToB,eACGtC,EAAOsC,EACVtwB,EAAMqL,OAASP,EAAM,MAChB9K,EAAMqL,OAASP,EAClBA,EAAO9K,EAAMmuB,OACXnuB,EAAMmvB,KAAM,GACTpL,IAAM,kCACLmL,KAvsCL,SA0tCDpkB,EAAO9K,EAAMouB,UACPpuB,EAAMouB,QACPpuB,EAAMkuB,MAAQpjB,KAGd9K,EAAMouB,MAAQtjB,EAEnBA,EAAO9K,EAAMvF,WAAiBuF,EAAMvF,UAC1BuF,EAAMge,cAGNuG,IACP4O,EAAMnzB,EAAMqL,SACZrL,EAAMvF,OAEXqQ,EAAOwlB,MAAeA,MAClBxlB,IACFrQ,QAAUqQ,OAEPqoB,KAAStE,EAAY5hB,aACnBnC,GACU,IAAjB9K,EAAMvF,WAAsBy0B,KAxvCjB,eAKA,MAsvCF,IAAToB,YACG6C,KAASnzB,EAAMvF,aAEhBy0B,KA9vCS,cAMN,MA2vCLlvB,EAAMqlB,KAAM,MAEPrK,EAAO,IAAI,IACH,IAAT+W,iBAGI5M,EAAM2F,MAAW9P,KACjB,QAGFsV,IACH5L,WAAasJ,IACZ0D,OAAS1D,EACXA,MACG/N,MAAQjgB,EAAMyxB,MAEdzxB,EAAMuE,MAAQic,GAAQxgB,EAAMyxB,MAAOlN,EAAQyJ,EAAMmF,EAAMnF,GAAQhO,GAAUhgB,EAAMyxB,MAAOlN,EAAQyJ,EAAMmF,EAAMnF,MAG1GsC,KAEI/rB,MAAQ+pB,EAAOiD,GAAQjD,MAAWtuB,EAAMyxB,MAAO,GACnD1N,IAAM,yBACLmL,KA/wCH,WAmxCE,IACA,IAIHA,KA1xCI,QAAA,MA6xCNlvB,EAAMqlB,MAAQrlB,EAAMuE,MAAO,MAEtByW,EAAO,IAAI,IACH,IAAT+W,iBAEI5M,EAAM2F,MAAW9P,KACjB,KAGNsT,KAAwB,aAARoD,OAAqB,GAClC3N,IAAM,2BACLmL,KAtyCH,WA0yCE,IACA,IAIHA,KAhzCE,QAAA,KAmzCFgC,gBAlzCC,KAqzCDG,gBApzCC,UAuzCAC,QAtzCC,kBA0zCDF,YAcR3M,SAAW0O,IACX7O,UAAYgM,IACZlL,QAAU0F,IACV5F,SAAW6M,IACVzD,KAAOA,IACPtT,KAAOA,GAGThb,EAAMkuB,OAAUF,IAAS/O,EAAKqF,WAAatkB,EAAMkvB,KAl1CxC,OAm1CcA,KAt1CZ,IAs1C4B9H,IAAU4J,MAC/C8B,GAAa7T,EAAMA,EAAKsF,OAAQtF,EAAKwF,SAAUuJ,EAAO/O,EAAKqF,cAE1DrF,EAAKiG,YACJjG,EAAKqF,YACRgB,UAAYyI,IACZrJ,WAAasJ,IACZ0D,OAAS1D,EACXhuB,EAAMqlB,MAAQ2I,MACX/N,MAAQjgB,EAAMyxB,MAChBzxB,EAAMuE,MAAQic,GAAQxgB,EAAMyxB,MAAOlN,EAAQyJ,EAAM/O,EAAKwF,SAAWuJ,GAAQhO,GAAUhgB,EAAMyxB,MAAOlN,EAAQyJ,EAAM/O,EAAKwF,SAAWuJ,MAE9H9O,UAAYlf,EAAMgb,QAAc9L,KAAO,GAAK,IAj3C/B,OAk3COggB,KAAgB,IAAM,IA12CzB,OA22CGA,MAh3CN,KAg3CuBlvB,EAAMkvB,KAAiB,IAAM,IACzD,OAAc,IAATlB,GAAe5G,IAAU4J,KAAettB,IAAQutB,OAC3D9O,IAEDze,GAkGRkwB,WA9FmB3U,QAEbA,IAASA,EAAKjf,aACVoxB,OAGLpxB,EAAQif,EAAKjf,aACbA,EAAMge,WACFA,OAAS,QAEZhe,MAAQ,KACNixB,IAoFR4C,iBAhFwB,CAAC5U,EAAM+H,SAGzB/H,IAASA,EAAKjf,aAAgBoxB,SAC7BpxB,EAAQif,EAAKjf,aACM,IAAP,IAAPqlB,MAA0B+L,MAG/BpK,KAAOA,IACRyM,MAAO,EACLxC,KAuER6C,qBAnE4B,CAAC7U,EAAMyL,WAC5BC,EAAaD,EAAWjwB,WAE1BuF,EACA+zB,EACArwB,SAGCub,GAAyBA,EAAKjf,SAC3Bif,EAAKjf,MAEM,IAAfA,EAAMqlB,MAp6CI,KAo6CUrlB,EAAMkvB,KACrBkC,GAr6CK,KAy6CVpxB,EAAMkvB,SACC,IAEAlP,GAAU+T,EAAQrJ,EAAYC,EAAY,GAC/CoJ,IAAW/zB,EAAMyxB,OACZJ,MAKLyB,GAAa7T,EAAMyL,EAAYC,EAAYA,GAC7CjnB,KACIwrB,KAj6CK,GAk6CJoC,OAEHE,SAAW,EAEVP,MAzB4DG,IA4DpE4C,YAtBiB,sCAgFlB,IAAIC,GApCJ,gBAEOnK,KAAa,OAEbG,KAAa,OAEbyJ,OAAa,OAEbxJ,GAAa,OAEb3N,MAAa,UAEboX,UAAa,OAWbjyB,KAAa,QAIbsoB,QAAa,QAIbD,KAAa,OAEb0J,MAAa,GAKpB,MAAM9mB,GAAWlF,OAAO9H,UAAUgN,UAK5B0U,WACJA,YAAYI,QACZG,gBAAMC,eAAcC,kBAAaE,gBAAgBC,eAAcC,IAC7Dd,GAkFJ,YAAmB5T,QACZA,QAAUyd,GAAc,CAC3BgC,UAAW,MACX5D,WAAY,GACZ6K,GAAI,IACH1mB,GAAW,UAER0f,EAAMtxB,KAAK4R,QAIb0f,EAAIC,KAAQD,EAAI7D,YAAc,GAAO6D,EAAI7D,WAAa,OACpDA,YAAc6D,EAAI7D,WACC,IAAnB6D,EAAI7D,eAAwBA,mBAI7B6D,EAAI7D,YAAc,GAAO6D,EAAI7D,WAAa,QAC9B7b,EAAQ6b,eACnBA,YAAc,IAKf6D,EAAI7D,WAAa,IAAQ6D,EAAI7D,WAAa,IAGf,IAAR,KAAbA,gBACHA,YAAc,SAIjBxF,IAAS,OACTE,IAAS,QACTsJ,OAAS,OACThC,OAAS,QAETpM,KAAS,IAAIyN,QACbzN,KAAKqF,UAAY,MAElBkE,EAAUwK,GAAYR,aACxB52B,KAAKqjB,KACLiO,EAAI7D,eAGFb,IAAW5G,SACP,IAAI0L,MAAM5M,GAAS8H,YAGtBzK,OAAS,IAAIkW,MAENJ,iBAAiBj4B,KAAKqjB,KAAMrjB,KAAKmiB,QAGzCmP,EAAIxC,aAEwB,iBAAnBwC,EAAIxC,aACTA,WAAamB,GAAmBqB,EAAIxC,YACG,yBAAlC/d,GAASrL,KAAK4rB,EAAIxC,gBACvBA,WAAa,IAAI5d,WAAWogB,EAAIxC,aAElCwC,EAAIC,QACG6F,GAAYc,qBAAqBl4B,KAAKqjB,KAAMiO,EAAIxC,YACrDlC,IAAW5G,WACP,IAAI0L,MAAM5M,GAAS8H,IA+BjC2L,GAAUx0B,UAAUjF,KAAO,SAAU2G,EAAMqsB,SACnCzO,EAAOrjB,KAAKqjB,KACZgO,EAAYrxB,KAAK4R,QAAQyf,UACzBvC,EAAa9uB,KAAK4R,QAAQkd,eAC5BlC,EAAQmF,EAAayG,KAErBx4B,KAAKyxB,aAAc,QAEnBK,MAAiBA,EAA0BA,GACb,IAAfA,EAAsBjM,GAAWJ,GAGxB,yBAAxB1U,GAASrL,KAAKD,KACX8jB,MAAQ,IAAIrY,WAAWzL,KAEvB8jB,MAAQ9jB,IAGV+jB,QAAU,IACVF,SAAWjG,EAAKkG,MAAM1qB,SAElB,KACgB,IAAnBwkB,EAAKqF,cACFC,OAAS,IAAIzX,WAAWmgB,KACxBxI,SAAW,IACXH,UAAY2I,KAGV+F,GAAYE,QAAQjU,EAAM0O,GAE/BnF,IAAW1G,IAAe4I,MACnBsI,GAAYc,qBAAqB7U,EAAMyL,GAE5ClC,IAAW5G,KACJoR,GAAYE,QAAQjU,EAAM0O,GAC1BnF,IAAWvG,OAEXH,KAKN7C,EAAKiG,SAAW,GAChBsD,IAAW3G,IACX5C,EAAKjf,MAAMqlB,KAAO,GACK,IAAvBhkB,EAAK4d,EAAKmG,aAEHkN,aAAarT,KAChB+T,GAAYE,QAAQjU,EAAM0O,UAG7BnF,QACDxG,QACAC,QACAH,QACAI,eACE2L,MAAMrF,QACN6E,OAAQ,GACN,OAKMpO,EAAKqF,UAElBrF,EAAKwF,WACgB,IAAnBxF,EAAKqF,WAAmBkE,IAAW3G,OAEb,WAApBjmB,KAAK4R,QAAQ0mB,GAAiB,KAE5BG,EAAgBxI,GAAmB5M,EAAKsF,OAAQtF,EAAKwF,UAErD6P,EAAOrV,EAAKwF,SAAW4P,EACvBE,EAAU1I,GAAmB5M,EAAKsF,OAAQ8P,KAGzC5P,SAAW6P,IACXhQ,UAAY2I,EAAYqH,EACzBA,KAAW/P,OAAO7Y,IAAIuT,EAAKsF,OAAOtG,SAASoW,EAAeA,EAAgBC,GAAO,QAEhF1G,OAAO2G,aAGP3G,OAAO3O,EAAKsF,OAAO9pB,SAAWwkB,EAAKwF,SAAWxF,EAAKsF,OAAStF,EAAKsF,OAAOtG,SAAS,EAAGgB,EAAKwF,cAMhG+D,IAAW5G,IAA2B,IAAnBwS,MAGnB5L,IAAW3G,YACJmR,GAAYY,WAAWh4B,KAAKqjB,WAChC4O,MAAMrF,QACN6E,OAAQ,GACN,KAGa,IAAlBpO,EAAKiG,uBAGJ,GAYTiP,GAAUx0B,UAAUiuB,OAAS,SAAUrC,QAChCF,OAAO3wB,KAAK6wB,IAanB4I,GAAUx0B,UAAUkuB,MAAQ,SAAUrF,GAEhCA,IAAW5G,KACW,WAApBhmB,KAAK4R,QAAQ0mB,QACV5I,OAAS1vB,KAAKyvB,OAAOrnB,KAAK,SAE1BsnB,OAASL,GAAqBrvB,KAAKyvB,cAGvCA,OAAS,QACTxH,IAAM2E,OACNzE,IAAMnoB,KAAKqjB,KAAK8E,SCx7MjByQ,GAGJC,mCAHID,GACE,mEAENC,GAAQ,CAENC,KAAM,SAAS56B,EAAGwD,UACRxD,GAAKwD,EAAMxD,IAAO,GAAKwD,GAIjCq3B,KAAM,SAAS76B,EAAGwD,UACRxD,GAAM,GAAKwD,EAAOxD,IAAMwD,GAIlCs3B,OAAQ,SAAS96B,MAEXA,EAAE2B,aAAegY,cACO,SAAnBghB,GAAMC,KAAK56B,EAAG,GAAsC,WAApB26B,GAAMC,KAAK56B,EAAG,YAI9CK,EAAI,EAAGA,EAAIL,EAAEW,OAAQN,MAC1BA,GAAKs6B,GAAMG,OAAO96B,EAAEK,WACjBL,GAIT+6B,YAAa,SAAS/6B,WACXg7B,EAAQ,GAAIh7B,EAAI,EAAGA,MACpBY,KAAKyJ,KAAK4wB,MAAsB,IAAhB5wB,KAAK6wB,kBACtBF,GAITG,aAAc,SAASH,WACZI,EAAQ,GAAI/6B,EAAI,EAAGmD,EAAI,EAAGnD,EAAI26B,EAAMr6B,OAAQN,IAAKmD,GAAK,IACvDA,IAAM,IAAMw3B,EAAM36B,IAAO,GAAKmD,EAAI,UACnC43B,GAITC,aAAc,SAASD,WACZJ,EAAQ,GAAIx3B,EAAI,EAAGA,EAAmB,GAAf43B,EAAMz6B,OAAa6C,GAAK,IAChD5C,KAAMw6B,EAAM53B,IAAM,KAAQ,GAAKA,EAAI,GAAO,YAC3Cw3B,GAITM,WAAY,SAASN,WACVO,EAAM,GAAIl7B,EAAI,EAAGA,EAAI26B,EAAMr6B,OAAQN,MACtCO,QAAYP,KAAO,GAAGwS,SAAS,OAC/BjS,MAAiB,KAALP,IAAUwS,SAAS,YAE9B0oB,EAAIrxB,KAAK,KAIlBsxB,WAAY,SAASD,WACVP,EAAQ,GAAI/3B,EAAI,EAAGA,EAAIs4B,EAAI56B,OAAQsC,GAAK,IACzCrC,KAAK+W,SAAS4jB,EAAIzoB,OAAO7P,EAAG,GAAI,YACjC+3B,GAITS,cAAe,SAAST,WACbU,EAAS,GAAIr7B,EAAI,EAAGA,EAAI26B,EAAMr6B,OAAQN,GAAK,UAC9Cs7B,EAAWX,EAAM36B,IAAM,GAAO26B,EAAM36B,EAAI,IAAM,EAAK26B,EAAM36B,EAAI,GACxD8hB,EAAI,EAAGA,EAAI,EAAGA,IACb,EAAJ9hB,EAAY,EAAJ8hB,GAAwB,EAAf6Y,EAAMr6B,SAClBC,KAAK85B,GAAUnwB,OAAQoxB,IAAY,KAASxZ,GAAM,OAElDvhB,KAAK,YAEX86B,EAAOxxB,KAAK,KAIrB0xB,cAAe,SAASF,KAEbA,EAAO92B,QAAQ,iBAAkB,YAEjCo2B,EAAQ,GAAI36B,EAAI,EAAGw7B,EAAQ,EAAGx7B,EAAIq7B,EAAO/6B,OAC9Ck7B,IAAUx7B,EAAI,EACH,GAATw7B,KACEj7B,SAAiBqB,QAAQy5B,EAAOnxB,OAAOlK,EAAI,IAC1CgK,KAAKyxB,IAAI,KAAQD,EAAQ,GAAK,IAAgB,EAARA,EACtCnB,GAAUz4B,QAAQy5B,EAAOnxB,OAAOlK,MAAS,EAAY,EAARw7B,UAE/Cb,eAIML,GC9FnB,IAAIoB,GAAU,CAEZC,KAAM,CAEJC,cAAe,SAASzpB,UACfupB,GAAQG,IAAID,cAAcE,SAASC,mBAAmB5pB,MAI/D6pB,cAAe,SAASrB,UACf/wB,mBAAmBqyB,OAAOP,GAAQG,IAAIG,cAAcrB,OAK/DkB,IAAK,CAEHD,cAAe,SAASzpB,WACbwoB,EAAQ,GAAI36B,EAAI,EAAGA,EAAImS,EAAI7R,OAAQN,MACpCO,KAAyB,IAApB4R,EAAI8d,WAAWjwB,WACrB26B,GAITqB,cAAe,SAASrB,WACbxoB,EAAM,GAAInS,EAAI,EAAGA,EAAI26B,EAAMr6B,OAAQN,MACtCO,KAAKoM,OAAO2kB,aAAaqJ,EAAM36B,YAC9BmS,EAAItI,KAAK,OAKtBqyB,GAAiBR,GCvBjBS,GAAiB,SAAUhzB,UACX,MAAPA,OAAyBA,IAQlC,SAAuBA,SACa,mBAApBA,EAAIizB,aAAmD,mBAAdjzB,EAAI1E,OAAwB43B,GAASlzB,EAAI1E,MAAM,EAAG,IATjE63B,CAAanzB,MAAUA,EAAIozB,YAGrE,YAAmBpzB,WACRA,EAAI7H,aAAmD,mBAA7B6H,EAAI7H,YAAY+6B,UAA2BlzB,EAAI7H,YAAY+6B,SAASlzB,ICdxG,eACKmxB,EAAQtnB,WACR2oB,EAAO1oB,GAAmB0oB,KAC1Ba,EAAWrpB,GACX0oB,EAAM5oB,GAAmB4oB,IAG7BY,EAAM,SAAUC,EAASrpB,GAEnBqpB,EAAQp7B,aAAeqL,SACrB0G,GAAgC,WAArBA,EAAQspB,SACXd,EAAID,cAAcc,GAElBf,EAAKC,cAAcc,GACxBF,EAASE,KACNl5B,MAAMgC,UAAUf,MAAM0C,KAAKu1B,EAAS,GACtCl5B,MAAMC,QAAQi5B,IAAYA,EAAQp7B,cAAgBqR,eAChD+pB,EAAQlqB,oBAGhBpP,EAAIk3B,EAAMQ,aAAa4B,GACvB98B,EAAqB,EAAjB88B,EAAQp8B,OACZwC,EAAK,WACLK,aACAP,cACAuC,EAAK,UAGAnF,EAAI,EAAGA,EAAIoD,EAAE9C,OAAQN,MAC1BA,GAAsC,YAA7BA,IAAO,EAAMoD,EAAEpD,KAAO,IACO,cAA7BA,IAAM,GAAOoD,EAAEpD,KAAQ,KAIlCJ,IAAM,IAAM,KAASA,EAAI,KACC,MAAnB,KAAQ,GAAM,IAAWA,MAG9Bg9B,EAAKH,EAAII,IACTC,EAAKL,EAAIM,IACTC,EAAKP,EAAIQ,IACTC,EAAKT,EAAIU,QAEJn9B,EAAI,EAAGA,EAAIoD,EAAE9C,OAAQN,GAAK,GAAI,KAEjCo9B,EAAKt6B,EACLu6B,EAAKl6B,EACLm6B,EAAK16B,EACL26B,EAAKp4B,IAELy3B,EAAG95B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,gBACzB48B,EAAGz3B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAG,GAAI,iBACxB48B,EAAGh6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAG,GAAI,GAAK,aAC7B48B,EAAGz5B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAG,GAAI,kBACxB48B,EAAG95B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,gBACzB48B,EAAGz3B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAG,GAAI,GAAK,cAC7B48B,EAAGh6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAG,GAAI,kBACxB48B,EAAGz5B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAG,GAAI,gBACxB48B,EAAG95B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,EAAI,cAC7B48B,EAAGz3B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAG,GAAI,kBACxB48B,EAAGh6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAE,IAAK,aACxB48B,EAAGz5B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAE,IAAK,kBACxB48B,EAAG95B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAE,IAAM,EAAI,cAC7B48B,EAAGz3B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAE,IAAK,gBACxB48B,EAAGh6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAE,IAAK,kBAGxB88B,EAAGh6B,IAFH85B,EAAGz5B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAE,IAAK,GAAK,YAEpB4C,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,gBACzB88B,EAAG33B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAG,GAAK,iBACzB88B,EAAGl6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAE,IAAK,GAAK,aAC7B88B,EAAG35B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAG,GAAI,iBACxB88B,EAAGh6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,gBACzB88B,EAAG33B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAE,IAAM,EAAI,YAC7B88B,EAAGl6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAE,IAAK,iBACxB88B,EAAG35B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAG,GAAI,iBACxB88B,EAAGh6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,EAAI,aAC7B88B,EAAG33B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAE,IAAM,iBACzB88B,EAAGl6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAG,GAAI,iBACxB88B,EAAG35B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAG,GAAI,GAAK,cAC7B88B,EAAGh6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAE,IAAM,iBACzB88B,EAAG33B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAG,GAAK,eACzB88B,EAAGl6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAG,GAAI,GAAK,cAG7Bg9B,EAAGl6B,IAFHg6B,EAAG35B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAE,IAAK,gBAEf4C,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,aACzBg9B,EAAG73B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAG,GAAI,kBACxBg9B,EAAGp6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAE,IAAK,GAAK,cAC7Bg9B,EAAG75B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAE,IAAK,gBACxBg9B,EAAGl6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,iBACzBg9B,EAAG73B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAG,GAAI,GAAK,cAC7Bg9B,EAAGp6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAG,GAAI,iBACxBg9B,EAAG75B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAE,IAAK,kBACxBg9B,EAAGl6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAE,IAAM,EAAI,aAC7Bg9B,EAAG73B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAG,GAAI,iBACxBg9B,EAAGp6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAG,GAAI,iBACxBg9B,EAAG75B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAG,GAAI,GAAK,YAC7Bg9B,EAAGl6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,gBACzBg9B,EAAG73B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAE,IAAK,iBACxBg9B,EAAGp6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAE,IAAK,GAAK,aAG7Bk9B,EAAGp6B,IAFHk6B,EAAG75B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAG,GAAI,eAEf4C,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,gBACzBk9B,EAAG/3B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAG,GAAI,GAAK,cAC7Bk9B,EAAGt6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAE,IAAK,kBACxBk9B,EAAG/5B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAG,GAAI,gBACxBk9B,EAAGp6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAE,IAAM,EAAI,cAC7Bk9B,EAAG/3B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAG,GAAI,kBACxBk9B,EAAGt6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAE,IAAK,eACxBk9B,EAAG/5B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAG,GAAI,kBACxBk9B,EAAGp6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,EAAI,cAC7Bk9B,EAAG/3B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAE,IAAK,gBACxBk9B,EAAGt6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAG,GAAI,kBACxBk9B,EAAG/5B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAE,IAAK,GAAK,cAC7Bk9B,EAAGp6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAEpD,EAAG,GAAK,gBACzBk9B,EAAG/3B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAEpD,EAAE,IAAK,kBACxBk9B,EAAGt6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAEpD,EAAG,GAAI,GAAK,aAC7Bk9B,EAAG/5B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAEpD,EAAG,GAAI,iBAEvB8C,EAAIs6B,IAAQ,IACZj6B,EAAIk6B,IAAQ,IACZz6B,EAAI06B,IAAQ,IACZn4B,EAAIo4B,IAAQ,SAGZjD,EAAMG,OAAO,CAAC33B,EAAGK,EAAGP,EAAGuC,OAI5B03B,IAAO,SAAU/5B,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCN,EAAImD,KAASF,GAAKO,EAAIgC,QAAY,GAAKlF,YAC7B4C,EAAMlD,IAAO,GAAKkD,GAAOM,KAErC45B,IAAO,SAAUj6B,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCN,EAAImD,KAASqC,EAAIvC,GAAKuC,QAAY,GAAKlF,YAC7B4C,EAAMlD,IAAO,GAAKkD,GAAOM,KAErC85B,IAAO,SAAUn6B,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCN,EAAImD,KAASF,EAAIuC,QAAY,GAAKlF,YACxB4C,EAAMlD,IAAO,GAAKkD,GAAOM,KAErCg6B,IAAO,SAAUr6B,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCN,EAAImD,SAAeqC,SAAa,GAAKlF,YAC3B4C,EAAMlD,IAAO,GAAKkD,GAAOM,KAIrCq6B,WAAa,KACbC,YAAc,cAED,SAAUf,EAASrpB,MAC9BqpB,MAAAA,QACI,IAAIvJ,MAAM,oBAAsBuJ,OAEpCgB,EAAcpD,EAAMU,aAAayB,EAAIC,EAASrpB,WAC3CA,GAAWA,EAAQsqB,QAAUD,EAChCrqB,GAAWA,EAAQuqB,SAAW/B,EAAIG,cAAc0B,GAChDpD,EAAMW,WAAWyC,IA5JxB,OCAmGl+B,GAAYS,kBAAAA,GAAwFT,QAAM,KAAzFq+B,GAAG,KAAK59B,GAAE69B,KAAK,OAAO79B,GAAE89B,MAAM,QAAQ99B,GAAE+9B,KAAK,OAAO/9B,GAAEg+B,MAAM,QAAQh+B,GAAEi+B,KAAK,OAAmB,MAAM3uB,GAAE,EAAE/P,GAAEq+B,IAAI,CAAC,EAAE,EAAE,IAAIr+B,GAAEs+B,MAAM,CAAC,KAAK,IAAIt+B,GAAEu+B,OAAO,CAAC,EAAE,OAAOv+B,GAAEw+B,MAAM,CAAC,EAAE,EAAE,IAAIx+B,GAAEy+B,OAAO,CAAC,EAAE,EAAE,IAAIz+B,GAAE0+B,MAAM,IAAI,EAAE,IAAI,IAAI31B,GAAivMjE,GAAE65B,GAAEx2B,GAAED,GAAE02B,GAAqwiBC,GAc/5sBC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAdwoJ,YAAW7+B,EAAE0C,EAAE3C,OAAOC,EAAE0C,SAAS,IAAIwwB,MAAM,WAAWxwB,YAAY1C,EAAE0C,GAAGhC,OAAOX,QAAQ,IAAImzB,MAAM,YAAYxwB,mBAAmB3C,gBAAgBC,EAAE0C,GAAGhC,eAAeV,EAAE0C,GAAGkB,OAAp6L,SAAS5D,KAAK8+B,IAAI,CAAC9+B,EAAE49B,GAAG59B,EAAE69B,KAAK79B,EAAE89B,MAAM99B,EAAE+9B,KAAK/9B,EAAEg+B,MAAMh+B,EAAEi+B,MAAMj+B,EAAE++B,OAAO,SAASrvB,UAAUJ,GAAEI,IAA5F,CAAiGnQ,QAAM,KAAK,SAASS,KAAKsN,OAAO,SAASoC,EAAEhN,EAAE3C,SAAS,CAAC2P,EAAEhN,EAAE3C,IAAIC,EAAEiR,OAAO,SAASvB,EAAEhN,EAAE3C,EAAE6C,SAAS,CAAC8M,EAAE,GAAGhN,EAAEgN,EAAE,GAAG3P,EAAE2P,EAAE,GAAG9M,IAAI5C,EAAEg/B,QAAQ,SAASt8B,EAAE3C,UAAUC,EAAEiR,OAAOvO,KAAKnD,GAAEw/B,OAAOh/B,KAAnK,CAAyKuI,QAAM,KAA89L,SAAStI,cAAc0P,SAAS,iBAAiBA,GAAG,OAAAA,EAASA,OAAE,IAASuvB,WAAW,SAASvvB,SAAS,iBAAiBA,EAAEA,OAAE,GAAQ1P,EAAEk/B,QAAQ,SAASxvB,SAAS,iBAAiBA,EAAE3F,KAAK4wB,MAAMjrB,QAAG,GAAQ1P,EAAEm/B,WAAW,SAASzvB,SAAS,iBAAiBA,EAAEA,OAAE,GAAQ1P,EAAEo/B,YAAY,SAAS1vB,SAAS,kBAAkBA,EAAEA,OAAE,GAAQ1P,EAAEq/B,WAAW38B,EAAE1C,EAAEs/B,UAAU,SAAS5vB,EAAE6vB,MAAMh8B,MAAMC,QAAQkM,UAAUA,EAAEnF,QAAQg1B,EAAEC,MAAMx/B,EAAEy/B,QAAQ,SAAS/vB,EAAE3P,OAAO6C,QAAQlD,EAAE,UAAUgD,EAAEgN,UAAK,IAAS9M,EAAEA,EAAE,UAAUyK,OAAOqyB,YAAYryB,OAAOiI,QAAQ5V,GAAG6K,KAAK,EAAEi1B,EAAED,KAAK,CAACC,EAAEz/B,EAAEw/B,QAAQv/B,EAAE2/B,QAAQ,SAASjwB,EAAE6vB,EAAEx/B,SAAS6C,EAAE28B,EAAE7vB,UAAU9M,EAAE7C,EAAE6C,QAAG,GAA1lB,CAAmmByB,QAAM,KAAK,SAAQ6L,YAAYlQ,EAAE0C,EAAE,SAAS4E,KAAKtH,EAAEwB,KAAKo+B,WAAWl9B,EAAEwN,iBAAiB1O,KAAK8F,KAAK4I,uBAAuB1O,KAAKo+B,WAAW1vB,YAAYlQ,UAAUwB,KAAKo+B,WAAW5/B,GAAGkQ,gBAAgB,oBAAA1O,KAAyB8F,MAAM,mBAAmB9F,KAAK8F,KAAK4I,OAAOlQ,UAAUwB,KAAK8F,OAAOtH,EAAEsH,MAAM+F,OAAOwL,KAAKrX,KAAKo+B,YAAY5uB,UAAUhR,EAAE4/B,WAAWl9B,KAAKlB,KAAKo+B,WAAWl9B,KAAKwN,kBAAkB,IAAI7C,OAAOwL,KAAKrX,KAAKo+B,YAAYv/B,OAAOmB,KAAK8F,KAAK,GAAG9F,KAAK8F,QAAQ+F,OAAOiI,QAAQ9T,KAAKo+B,YAAYr1B,KAAK,EAAEvK,EAAE0C,KAAK1C,EAAE,IAAI0C,IAAIkH,KAAK,uBAAuB5J,SAAS0C,EAAEm9B,GAAE7/B,EAAE4D,MAAM,OAAO,UAAU7D,EAAjuC,SAAWC,EAAE0C,cAAc1C,UAAU0P,UAAUhN,GAAorCJ,EAAG,IAAIu9B,GAAE7/B,EAAE4D,MAAM,aAAa,aAAa,IAAIhB,EAAEyK,OAAOwL,KAAK9Y,GAAGiQ,QAAQ,CAACN,EAAE6vB,IAAIlyB,OAAO4B,OAAO5B,OAAO4B,OAAO,GAAGS,GAAG,EAAE6vB,GAAGM,GAAE9/B,EAAEw/B,EAAE,aAAa,WAAW,IAAIO,GAAEp9B,EAAEE,mBAAmB5C,OAAO0C,EAAE3C,QAAQ6C,EAAE,UAAUyB,GAAEg7B,WAAWr/B,UAAK,IAAS0C,EAAEA,EAAE,GAAGhD,EAAE,UAAU2E,GAAE86B,WAAWv8B,EAAEm9B,aAAQ,IAAShgC,EAAEA,EAAE,kBAAkBG,EAAEmE,GAAEo7B,QAAQ78B,EAAEo9B,oBAAoBT,SAAS,UAAUl7B,GAAE86B,WAAWzvB,UAAK,IAAS6vB,EAAEA,EAAE,aAAa,IAAIO,GAAEpgC,EAAEQ,IAAI4/B,GAAEG,IAAI,IAAIH,GAAE,iBAAiB,SAAQ5vB,YAAYlQ,QAAQkgC,KAAKlgC,EAAEwB,KAAK2+B,QAAQ58B,MAAMmF,GAAE03B,MAAM5+B,KAAK6+B,QAAQ,CAACP,GAAEG,4BAA4Bz+B,KAAK0+B,MAAM,EAAEhwB,MAAMlQ,EAAE0C,EAAE3C,aAAa,OAAO,GAAGA,EAAEmQ,cAAclQ,EAAE0C,EAAE3C,OAAO6C,QAAQlD,EAAE8B,KAAK2+B,QAAQ3+B,KAAKkJ,MAAM1K,EAAE0C,EAAE3C,WAAW,UAAUyB,KAAK6+B,QAAQ3gC,UAAK,IAAAkD,EAAWA,EAAEk9B,GAAEG,IAAI/vB,cAAclQ,EAAE0C,EAAE3C,EAAE6C,OAAOlD,EAAE8B,KAAK6+B,QAAQC,cAAc5wB,EAAEoC,OAAOlP,UAAUlD,MAAM8B,KAAK6+B,QAAQhgC,OAAOmB,KAAK6+B,QAAQ//B,KAAKsC,IAAIpB,KAAK2+B,QAAQ3+B,KAAKkJ,MAAM1K,EAAE0C,EAAE3C,IAAIL,GAAGgJ,GAAE63B,MAAM,GAAG73B,GAAE03B,KAAK13B,GAAE63B,MAAM73B,GAAE63B,MAAM73B,GAAE63B,MAAM,SAAQrwB,YAAYlQ,EAAE0C,EAAE3C,QAAQmgC,KAAKlgC,EAAEwB,KAAKg/B,OAAO99B,EAAElB,KAAKskB,IAAI/lB,EAAEyB,KAAKi/B,SAASl9B,MAAM/B,KAAKk/B,eAAe/K,KAAK,wBAAwBn0B,KAAK0+B,KAAK1+B,KAAKg/B,+BAA+Bh/B,KAAK0+B,MAAM,0BAA0B,QAAQS,KAAK,GAAG,8BAA8Bn/B,KAAKo/B,WAAWp/B,KAAKq/B,WAAW3wB,gBAAgBlQ,aAAa,GAAGwB,KAAKq/B,WAAW3wB,cAAclQ,OAAO0C,QAAQ3C,EAAE6C,EAAElD,GAAGM,EAAEE,EAAEsB,KAAKi/B,SAASj/B,KAAKs/B,gBAAgBl+B,WAAW,UAAU,MAAM1C,OAAE,EAAOA,EAAE6gC,cAAc,GAAGhhC,EAAE,GAAG6C,EAAE,GAAGlD,UAAK,IAAAgD,EAAWA,EAAEo9B,GAAEG,IAAI/vB,cAAclQ,EAAE0C,SAAS3C,EAAE6C,EAAElD,GAAGM,EAAEE,EAAEsB,KAAKs/B,gBAAgBl+B,OAAO3C,EAAEuB,KAAKi/B,SAASvgC,MAAM,OAAOD,EAAE,IAAIyC,EAAEoP,OAAOguB,GAAEG,cAAcz+B,KAAKw/B,mBAAmB9gC,KAAK+gC,cAAc,GAAGlhC,EAAE,GAAG6C,EAAE,GAAGlD,EAAEgD,GAAGwN,mBAAmBlQ,UAAU,MAAAwB,KAAWi/B,SAASzgC,UAAUygC,SAASzgC,GAAG,IAAI0I,GAAElH,KAAKq/B,WAAW7gC,IAAIwB,KAAKi/B,SAASzgC,IAAosD,YAAWA,UAAUA,EAAEA,EAAE,YAAWA,EAAE0C,EAAE3C,UAAUgK,KAAKD,IAAIpH,EAAEqH,KAAK+M,IAAI/W,EAAEC,IAAI,YAAWA,EAAE0C,EAAE3C,UAAU2C,EAAE1C,KAAK0C,GAAG,YAAW1C,EAAE0C,EAAE3C,EAAE6C,EAAElD,EAAEQ,UAAU2D,GAAEnB,EAAEmB,GAAE7D,EAAED,EAAE6C,GAAGiB,GAAE7D,EAAEN,EAAEQ,IAAgF,YAAWF,EAAE0C,EAAE3C,UAAUA,EAAE,EAAEC,EAAED,EAAE,EAAE2C,EAAEmB,GAAE9D,EAAEC,EAAE0C,GAAG,YAAW1C,UAAUA,EAAEA,EAAEA,QAAQA,EAAE,IAAI,KAArgE,SAASA,KAAKsN,OAAO,SAASoC,EAAEhN,SAAS,CAACgN,EAAEhN,IAAI1C,EAAEkhC,aAAa,SAASxxB,SAAS,CAACA,EAAE,IAAI,EAAEA,EAAE,IAAI,IAAI1P,EAAEmhC,SAAS,SAASzxB,SAAS,CAAC,WAAW2J,OAAO3J,GAAG2J,OAAO3J,GAAG0xB,OAAO,OAAOphC,EAAEqhC,UAAU,SAAS3xB,UAAUA,EAAE,IAAI,GAAG1P,EAAEshC,UAAU,SAAS5xB,UAAUA,EAAE,IAAI,GAAG1P,EAAEuhC,UAAU,SAAS7xB,UAAUA,EAAE,IAAI,IAAI1P,EAAEwhC,UAAU,SAAS9xB,UAAUA,EAAE,IAAI,IAA7U,CAAkVwuB,QAAM,KAAuxD,SAAQhuB,YAAYlQ,QAAQyhC,KAAKL,OAAO,GAAG5/B,KAAKkgC,QAAQ1hC,GAAGkQ,cAAc,IAAIyxB,GAAEngC,KAAKogC,YAAY1xB,QAAQlQ,QAAQyhC,KAAKzhC,EAAE2hC,GAAEE,WAAWF,GAAEG,aAAa5xB,eAAeuxB,KAAKjgC,KAAKigC,KAAKE,GAAEE,WAAWF,GAAEI,UAAUJ,GAAEG,aAAa5xB,QAAQlQ,WAAW0C,EAAE,EAAEA,EAAE1C,EAAE0C,GAAG,OAAOs/B,UAAU9xB,KAAKlQ,QAAQgiC,gBAAgBt/B,EAAE2W,OAAO7X,KAAKigC,MAAML,OAAOO,GAAEM,aAAajiC,WAAW0C,EAAE,WAAWA,EAAE,WAAWA,EAAEwN,QAAQlQ,WAAM,IAAAA,SAAkBwB,KAAKkvB,KAAK,OAAO,MAAM1wB,EAAE,UAAUqZ,OAAO+nB,OAAOphC,GAAGohC,OAAO5/B,KAAKkvB,KAAK,MAAM0Q,OAAO,SAAS1+B,EAAE3C,UAAUyB,KAAKkvB,KAAK,QAAQhuB,EAAE1C,MAAM,GAAG,WAAWD,EAAEmQ,yBAAyB1O,KAAKkvB,KAAK,MAAM0Q,OAAO,KAAKA,OAAO5/B,KAAKkvB,KAAK,KAAKxgB,mBAAmB1O,KAAKkvB,KAAK,IAAIiR,GAAEO,iBAAiBhyB,mBAAmBlQ,EAAEwB,KAAKkvB,KAAK,WAAWlvB,KAAKwgC,UAAUhiC,EAAE2hC,GAAEQ,mBAAmBR,GAAEM,aAAa,GAAGN,GAAEG,aAAaV,OAAO,mBAAmBO,GAAEE,WAAWT,OAAO,eAAeO,GAAEI,UAAUX,OAAO,MAAMO,GAAEO,iBAAiB,EAAEn4B,KAAKyxB,IAAI,EAAE,IAAImG,GAAEQ,kBAAkB,EAAEp4B,KAAKyxB,IAAI,EAAE,IAAI,SAAQtrB,YAAYlQ,QAAQyhC,KAAK,CAACL,OAAO,GAAGA,OAAO,IAAI5/B,KAAKigC,KAAKzhC,gBAAgBA,UAAU,IAAIoiC,GAAEA,GAAEC,oBAAoBriC,yBAAyBA,oBAAoBA,GAAGohC,OAAO,KAAKA,OAAO,wBAAwBA,OAAO,uBAAuBphC,GAAGohC,OAAO,KAAKA,OAAO,wBAAwBA,OAAO,uBAAuBphC,GAAGohC,OAAO,KAAKA,OAAO,iDAAiDphC,KAAK,OAAOohC,OAAO,8BAA8B1+B,EAAE1C,EAAEoiC,GAAEE,gBAAgBviC,EAAE2C,EAAE0/B,GAAEG,gBAAgBnB,OAAO,4BAA4B,CAACgB,GAAEI,cAAc9/B,GAAG0/B,GAAEI,cAAcziC,sBAAsBC,EAAE0C,UAAU1C,GAAG0C,EAAE0+B,OAAO,sBAAsBphC,GAAGohC,OAAO,IAAI1+B,EAAEwN,QAAQlQ,QAAQyhC,KAAKW,GAAEC,oBAAoBriC,GAAGkQ,cAAc,IAAIkyB,GAAE,CAAC5gC,KAAKkvB,OAAOlvB,KAAKkvB,wBAAwB1wB,EAAE0C,EAAE3C,OAAO6C,EAAE5C,EAAEohC,OAAO,SAASrhC,EAAEqhC,OAAO,WAAW1+B,SAASE,EAAEA,EAAEA,EAAEw+B,OAAO,UAAUx+B,EAAEw+B,OAAO,IAAIx+B,GAAGw+B,OAAO,IAAIlxB,OAAOlQ,EAAE0C,EAAE3C,SAAS6C,EAAEw/B,GAAEK,QAAQziC,EAAE0C,EAAE3C,GAAGyB,KAAKigC,KAAK,UAAU,IAAIW,GAAE,CAACx/B,EAAEpB,KAAKigC,KAAK,0BAA0BzhC,EAAE0C,EAAE3C,EAAE6C,EAAElD,EAAEQ,EAAED,EAAE4C,UAAUu+B,OAAOphC,IAAIohC,OAAO,IAAIA,OAAO1+B,IAAI0+B,OAAO,IAAIA,OAAOrhC,IAAIqhC,OAAO,IAAIA,OAAOx+B,IAAIw+B,OAAO,IAAIA,OAAO1hC,IAAI0hC,OAAO,IAAIA,OAAOlhC,IAAIkhC,OAAO,IAAIA,OAAOnhC,IAAImhC,OAAO,GAAGA,OAAOv+B,GAAGqN,eAAelQ,SAASD,EAAEN,GAAEO,EAAE,CAAC09B,SAAQ,IAAK96B,EAAEw/B,GAAEM,cAAc3iC,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIL,EAAE0iC,GAAEM,cAAc3iC,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,YAAY,IAAIqiC,GAAE,CAACx/B,EAAEpB,KAAKigC,KAAK,GAAG/hC,EAAE8B,KAAKigC,KAAK,KAAKvxB,aAAalQ,EAAEwB,KAAKigC,KAAK,OAAO/+B,EAAElB,KAAKigC,KAAK,SAAS1hC,EAAEqiC,GAAEO,WAAW3iC,EAAE0C,EAAE0+B,OAAO,sBAAsBA,OAAO,KAAKphC,EAAEohC,OAAO,6BAA6B1+B,GAAG1C,EAAEwB,KAAKigC,KAAK,CAACW,GAAEO,WAAW3iC,EAAEohC,OAAO,KAAK1+B,EAAEA,GAAG0+B,OAAO,IAAIA,OAAO,sBAAsBgB,GAAEO,WAAWjgC,EAAE0+B,OAAO,MAAMrhC,EAAEmQ,eAAelQ,EAAEwB,KAAKkvB,cAAc1wB,EAAEohC,OAAO,2BAA2BA,OAAO,wBAAwBphC,EAAEkQ,QAAQlQ,OAAO0C,EAAElB,KAAKigC,KAAK,GAAG1hC,EAAEyB,KAAKigC,KAAK,WAAW7+B,EAAE,EAAEA,EAAE5C,EAAE4C,GAAG,KAAKF,EAAEA,EAAE0/B,GAAEO,WAAWjgC,EAAE0+B,OAAO,KAAKrhC,EAAEA,GAAGqhC,OAAO,IAAIrhC,EAAEqiC,GAAEO,WAAW5iC,EAAEqhC,OAAO,UAAUK,KAAK,CAAC/+B,EAAE3C,GAAGmQ,SAASlQ,UAAUwB,KAAKkvB,QAAQ0Q,OAAO,GAAGphC,GAAGkQ,QAAQlQ,OAAO0C,EAAElB,KAAKkvB,OAAO0Q,OAAO,eAAephC,EAAE,OAAO4iC,EAAExB,OAAOphC,OAAOD,EAAE2C,EAAEkgC,EAAEhgC,EAAE7C,EAAEqhC,OAAO,eAAex+B,EAAEggC,UAAUljC,KAAKkjC,EAAExB,OAAO,aAAaA,OAAO,IAAIwB,EAAEhgC,EAAElD,WAAW8B,KAAKkvB,OAAO0Q,OAAO,aAAawB,GAAGxB,OAAO,gBAAgBlhC,EAAEH,GAAGqhC,OAAO,WAAW/nB,OAAOnZ,OAAOD,EAAEoZ,OAAO3W,UAAUzC,GAAG,gBAAgB,YAAYA,EAAEiQ,mBAAmBmJ,OAAO7X,KAAKqhC,SAAS,KAAKT,GAAEF,iBAAiBhyB,oBAAoBmJ,OAAO7X,KAAKqhC,SAAS,KAAKT,GAAED,kBAAkBjyB,2BAA2B,WAAW1O,KAAKigC,KAAK,GAAG,aAAajgC,KAAKigC,KAAK,IAAIW,GAAEE,gBAAgBlB,OAAO,uBAAuBgB,GAAEG,gBAAgBnB,OAAO,wBAAwBgB,GAAEF,iBAAiB,EAAEn4B,KAAKyxB,IAAI,EAAE,IAAI4G,GAAED,kBAAkB,sBAAsB,SAAQjyB,YAAYlQ,QAAQ8iC,GAAG,IAAI9iC,EAAE+iC,aAAavhC,KAAKwhC,GAAG,IAAIhjC,EAAE+iC,aAAavhC,KAAKyhC,GAAG,IAAIjjC,EAAE+iC,aAAavhC,KAAKiE,EAAElC,MAAM,aAAamM,EAAE,EAAEA,EAAE,IAAIA,GAAG,OAAOjK,EAAEiK,GAAGA,UAAUhN,EAAE,EAAEA,EAAE,IAAIA,GAAG,EAAE,OAAO3C,EAAEC,EAAEkjC,QAAQ,IAAIxgC,GAAGE,EAAEpB,KAAKiE,EAAE/C,QAAQ+C,EAAE/C,GAAGlB,KAAKiE,EAAE/C,EAAE3C,GAAGyB,KAAKiE,EAAE/C,EAAE3C,GAAG6C,GAAGsN,SAASlQ,EAAE0C,OAAO3C,EAAE6C,EAAElD,QAAQQ,KAAKwC,GAAGygC,GAAEC,GAAGnjC,EAAE8J,KAAK4wB,MAAM36B,EAAEE,GAAG2C,EAAE7C,cAAc+J,KAAK4wB,MAAMj4B,EAAExC,KAAKijC,GAAEE,SAAS1jC,EAAEmD,OAAOJ,KAAK3C,OAAO,EAAE+C,EAAE,MAAM,EAAEA,EAAE,SAASlD,EAAEiD,EAAElD,EAAEwjC,GAAEE,GAAG1gC,EAAEjD,EAAEoD,EAAEqgC,GAAEE,GAAGn+B,EAAErC,EAAE,EAAE,EAAEsgC,GAAEE,GAAGjjC,EAAEV,EAAE,EAAE,EAAEyjC,GAAEE,GAAGl+B,EAAE,IAAIlF,EAAE8C,EAAE,IAAIH,EAAEO,EAAE3B,KAAK6C,EAAEc,EAAE3D,KAAK6C,EAAEtB,IAAI,GAAGkC,EAAEzD,KAAK6C,EAAEc,EAAExF,EAAE6B,KAAK6C,EAAEtB,EAAED,IAAI,GAAGI,EAAE1B,KAAK6C,EAAEc,EAAE,EAAE3D,KAAK6C,EAAEtB,EAAE,IAAI,UAAU,SAASugC,iBAAiBngC,EAAEN,EAAEnD,EAAE,EAAE,IAAI8B,KAAK8hC,iBAAiBr+B,EAAErF,EAAE+C,EAAE,EAAE,IAAInB,KAAK8hC,iBAAiBpgC,EAAEgC,EAAE9E,EAAE,EAAE,KAAK8P,OAAOlQ,EAAE0C,EAAE3C,SAAS6C,EAAE,qBAAqBF,EAAE3C,GAAGL,EAAEqK,KAAK4wB,MAAM36B,EAAE4C,GAAG1C,EAAE6J,KAAK4wB,MAAMj4B,EAAEE,GAAG3C,EAAE8J,KAAK4wB,MAAM56B,EAAE6C,GAAGC,EAAE,sBAAsB3C,EAAED,GAAGN,EAAEK,KAAK6C,GAAGC,EAAEJ,KAAKG,GAAGjD,EAAEG,KAAK8C,OAAOF,EAAEuC,EAAE9E,EAAE+E,EAAEpC,EAAEI,KAAKL,EAAEA,GAAGlD,KAAK,EAAEsF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGxD,GAAGC,KAAK,EAAEsF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,MAAM,EAAE+B,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGL,EAAElD,KAAK,EAAEsF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGxD,EAAEC,KAAK,EAAEsF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,MAAM,EAAE+B,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,SAAS8B,EAAEtF,EAAEgD,EAAE,mBAAmBO,EAAEJ,EAAEoC,EAAE,mBAAmB9B,EAAExD,EAAEQ,EAAE,mBAAmBgjC,EAAEzjC,EAAEwF,EAAE,kBAAkBsB,EAAE3D,EAAEC,EAAE,kBAAkBqC,EAAExF,EAAEuD,EAAE,kBAAkBogC,EAAE5jC,EAAE,GAAG6jC,EAAE1gC,EAAE,GAAG2gC,EAAE7jC,EAAE,GAAG0D,EAAE,IAAI5D,EAAEgkC,EAAE,IAAIxjC,EAAEmD,EAAE,IAAIpD,EAAE0jC,EAAEniC,KAAK6C,EAAEf,EAAE9B,KAAK6C,EAAEq/B,EAAEliC,KAAK6C,EAAEhB,KAAK,GAAGugC,EAAEpiC,KAAK6C,EAAEf,EAAEX,EAAEnB,KAAK6C,EAAEq/B,EAAEx+B,EAAE1D,KAAK6C,EAAEhB,EAAEjD,KAAK,GAAGyjC,EAAEriC,KAAK6C,EAAEf,EAAE6B,EAAE3D,KAAK6C,EAAEq/B,EAAE3gC,EAAEvB,KAAK6C,EAAEhB,EAAEF,KAAK,GAAGF,EAAEzB,KAAK6C,EAAEf,EAAE,EAAE9B,KAAK6C,EAAEq/B,EAAE,EAAEliC,KAAK6C,EAAEhB,EAAE,KAAK,UAAU,SAASigC,iBAAiBK,EAAEhkC,EAAEmD,EAAElD,EAAE,IAAI4B,KAAK8hC,iBAAiBM,EAAE3+B,EAAE/B,EAAEE,EAAE,IAAI5B,KAAK8hC,iBAAiBO,EAAET,EAAE38B,EAAErB,EAAE,IAAI5D,KAAK8hC,iBAAiBrgC,EAAEsgC,EAAEC,EAAEC,EAAE,KAAKvzB,EAAElQ,UAAUwB,KAAKiE,EAAE,IAAIzF,GAAGkQ,iBAAiBlQ,EAAE0C,EAAE3C,EAAE6C,EAAElD,OAAOQ,EAAED,EAAEP,EAAEgD,EAAEA,EAAE3C,EAAEA,EAAE6C,EAAEA,SAAS3C,EAAE,EAAEC,EAAE,MAAMD,EAAEC,EAAED,EAAEA,EAAEkjC,GAAEW,QAAQ9jC,EAAE0C,EAAE3C,EAAE6C,IAAI1C,iBAAiBF,EAAE0C,EAAE3C,EAAE6C,SAASlD,EAAEyjC,GAAEY,SAAS,GAAG/jC,UAAUN,EAAE,GAAGgD,EAAEhD,EAAE,GAAGK,EAAEL,EAAE,GAAGkD,GAAGugC,GAAEY,SAAS,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,UAAUZ,GAAEC,GAAG,SAASY,KAAK,GAAG,GAAGb,GAAEE,MAAMt5B,KAAKi6B,KAAK,IAAI,EAAE,SAAQ9zB,YAAYlQ,QAAQ8iC,GAAG,IAAI9iC,EAAE+iC,aAAavhC,KAAKwhC,GAAG,IAAIhjC,EAAE+iC,aAAavhC,KAAKyhC,GAAG,IAAIjjC,EAAE+iC,aAAavhC,KAAKiE,EAAElC,MAAM,aAAamM,EAAE,EAAEA,EAAE,IAAIA,GAAG,OAAOjK,EAAEiK,GAAGA,EAAE,IAAIA,EAAE,IAAIA,UAAUhN,EAAE,EAAEA,EAAE,IAAIA,GAAG,EAAE,OAAO3C,EAAEC,EAAEkjC,QAAQ,IAAIxgC,GAAGE,EAAEpB,KAAKiE,EAAE/C,QAAQ+C,EAAE/C,GAAGlB,KAAKiE,EAAE/C,EAAE3C,GAAGyB,KAAKiE,EAAE/C,EAAE3C,GAAG6C,GAAGsN,OAAOlQ,EAAE0C,EAAE3C,EAAE6C,EAAE,EAAElD,EAAE,SAASQ,EAAEF,EAAEwB,KAAKshC,GAAG7iC,EAAEyC,EAAElB,KAAKwhC,GAAGngC,EAAE9C,EAAEyB,KAAKyhC,GAAGtjC,EAAEoK,KAAK4wB,MAAMz6B,GAAG4C,EAAEiH,KAAK4wB,MAAM16B,GAAGL,EAAEmK,KAAK4wB,MAAM93B,GAAGF,EAAEzC,EAAEP,EAAEuF,EAAEjF,EAAE6C,EAAE1C,EAAEyC,EAAEjD,MAAMuF,EAAE,KAAK,IAAIvC,EAAE,OAAO8M,EAAEhQ,GAAG,GAAGA,EAAEwF,EAAExF,EAAEwF,IAAI6E,KAAK4wB,MAAMjrB,EAAE9M,EAAE,MAAMA,SAASpB,KAAKyiC,cAActkC,EAAEmD,EAAElD,EAAE+C,EAAEuC,EAAEC,EAAE/E,EAAE8E,GAAGgL,cAAclQ,EAAE0C,EAAE3C,EAAE6C,EAAElD,EAAEQ,EAAED,SAAS4C,EAAErB,KAAK6C,EAAErE,GAAGL,EAAE6B,KAAK6C,EAAErE,EAAE,GAAG8C,EAAEtB,KAAK6C,EAAExB,EAAEH,GAAG9C,EAAE4B,KAAK6C,EAAExB,EAAEH,EAAE,GAAGC,EAAEnB,KAAK6C,EAAE1E,EAAE+C,GAAGwC,EAAE1D,KAAK6C,EAAE1E,EAAE+C,EAAE,GAAGtC,EAAE+iC,GAAEW,QAAQtiC,KAAK6C,EAAEvB,EAAE/C,GAAG6C,EAAElD,EAAEQ,GAAGiF,EAAEg+B,GAAEW,QAAQtiC,KAAK6C,EAAE1B,EAAE5C,GAAG6C,EAAE,EAAElD,EAAEQ,GAAG6C,EAAEogC,GAAEW,QAAQtiC,KAAK6C,EAAEzE,EAAEG,GAAG6C,EAAElD,EAAE,EAAEQ,GAAGiD,EAAEggC,GAAEW,QAAQtiC,KAAK6C,EAAEa,EAAEnF,GAAG6C,EAAE,EAAElD,EAAE,EAAEQ,GAAG+E,EAAEk+B,GAAEW,QAAQtiC,KAAK6C,EAAEvB,EAAE/C,EAAE,GAAG6C,EAAElD,EAAEQ,EAAE,GAAGgD,EAAEigC,GAAEW,QAAQtiC,KAAK6C,EAAE1B,EAAE5C,EAAE,GAAG6C,EAAE,EAAElD,EAAEQ,EAAE,GAAGkD,EAAE+/B,GAAEW,QAAQtiC,KAAK6C,EAAEzE,EAAEG,EAAE,GAAG6C,EAAElD,EAAE,EAAEQ,EAAE,GAAGkjC,EAAED,GAAEW,QAAQtiC,KAAK6C,EAAEa,EAAEnF,EAAE,GAAG6C,EAAE,EAAElD,EAAE,EAAEQ,EAAE,UAAxiN,SAAWF,EAAE0C,EAAE3C,EAAE6C,EAAElD,EAAEQ,EAAED,EAAE4C,EAAElD,EAAEmD,EAAElD,UAAUiE,GAAE9D,EAAEmkC,GAAElkC,EAAE0C,EAAEE,EAAElD,EAAEQ,EAAED,GAAGikC,GAAElkC,EAAE0C,EAAEG,EAAElD,EAAEmD,EAAElD,IAA0+MukC,CAAE/7B,GAAExF,GAAGwF,GAAEnI,GAAGmI,GAAElI,GAAGE,EAAE+E,EAAEpC,EAAEI,EAAE8B,EAAE/B,EAAEE,EAAEggC,GAAGlzB,EAAElQ,UAAU,IAAIwB,KAAKiE,EAAE,IAAIzF,IAAI,SAAQkQ,YAAYlQ,EAAE0C,EAAE3C,MAAMC,aAAaoiC,GAAE,OAAOx/B,EAAE5C,EAAEokC,YAAYC,YAAY9gC,MAAMxD,EAAEM,gBAAgBqP,EAAE,EAAEA,EAAE3P,EAAEM,OAAOqP,OAAO,IAAI3P,EAAE2P,GAAG,OAAO40B,EAAE5hC,EAAEgN,OAAO20B,YAAY30B,GAAG,IAAI60B,GAAE3hC,EAAE4hC,eAAe,UAAUF,SAAS,IAAI,EAAE5hC,EAAE3C,EAAEM,aAAa,IAAI6yB,MAAM,iEAAiEmR,YAAY9gC,MAAMxD,EAAEM,gBAAgBuC,GAAGF,EAAEE,GAAG,EAAEA,GAAG,IAAI7C,EAAEM,QAAQ,IAAAN,EAAM6C,GAAGpB,KAAK6iC,YAAYzhC,GAAG,IAAI2hC,GAAEvkC,GAAGA,EAAEykC,QAAQ,UAAUC,WAAW3kC,EAAEyB,KAAKmjC,sBAAsB56B,KAAKyxB,IAAI,EAAE94B,GAAGlB,KAAKojC,sBAAsB76B,KAAKyxB,IAAI,EAAEz7B,EAAEM,OAAO,SAASm7B,IAAI,EAAEz7B,EAAEM,QAAQ,GAAG6P,OAAOlQ,EAAE0C,EAAE3C,EAAE6C,EAAE,EAAElD,EAAE,EAAEQ,GAAE,OAAQD,EAAE,EAAE4C,EAAErB,KAAKmjC,sBAAsBhlC,EAAE6B,KAAKojC,8BAA8B9hC,EAAE,EAAEA,EAAEtB,KAAK6iC,YAAYhkC,OAAOyC,GAAG,EAAE,OAAOlD,EAAE4B,KAAK6iC,YAAYvhC,UAAUtB,KAAKkjC,WAAW5hC,GAAGnD,EAAEC,EAAEilC,OAAOC,GAAE7Z,KAAKjrB,EAAE6C,GAAG3C,GAAGN,EAAEojC,GAAG8B,GAAE7Z,KAAKvoB,EAAEG,GAAGiiC,GAAE7Z,KAAKlrB,EAAE8C,GAAGD,EAAEC,EAAEnD,EAAEmD,IAAIA,GAAG,EAAElD,GAAG,SAASM,EAAEiQ,eAAelQ,UAAUwB,KAAK6iC,YAAY7iC,KAAK6iC,YAAYhkC,OAAO,EAAEL,eAAeA,UAAUA,EAAE,SAAS+J,KAAK4wB,MAAM36B,EAAE,SAAS,KAAK,SAAQkQ,YAAYlQ,EAAE0C,EAAE3C,EAAE6C,QAAQmiC,UAAUhlC,EAAEyB,KAAKwjC,WAAWpiC,EAAEpB,KAAKyjC,cAAc,IAAIH,GAAE9kC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIwB,KAAK0jC,cAAc,IAAIJ,GAAE9kC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIwB,KAAK2jC,UAAU,IAAIL,GAAE9kC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIwB,KAAK4jC,QAAQ,QAAQ1iC,EAAE0iC,QAAQ5jC,KAAK6jC,OAAO,QAAQ3iC,EAAE2iC,OAAO7jC,KAAK8jC,YAAY9jC,KAAK4jC,QAAQ1iC,EAAE6iC,SAAS/jC,KAAKgkC,WAAWhkC,KAAK6jC,OAAO3iC,EAAE+iC,QAAQv1B,OAAOlQ,EAAE0C,EAAE3C,OAAO6C,IAAImH,KAAK4wB,MAAM36B,EAAEwB,KAAKujC,WAAWriC,EAAEqH,KAAK4wB,MAAMj4B,EAAElB,KAAKwjC,YAAYjlC,EAAEgK,KAAK4wB,MAAM56B,EAAEyB,KAAKujC,eAAerlC,EAAE,EAAEQ,EAAE,UAAU0iC,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,IAAIhgC,EAAEpB,KAAK2jC,UAAUO,eAAe9C,GAAGhgC,EAAE,OAAO+iC,EAAEnkC,KAAK8jC,YAAYplC,EAAE0lC,EAAEpkC,KAAKgkC,WAAWtlC,EAAEP,EAAEmlC,GAAE7Z,KAAKjrB,EAAE2lC,GAAG7iC,EAAEgiC,GAAE7Z,KAAKvoB,EAAEkjC,GAAGhmC,EAAEklC,GAAE7Z,KAAKlrB,EAAE4lC,MAAM/iC,EAAEiiC,OAAOllC,EAAEmD,EAAElD,EAAEgmC,EAAEljC,EAAEkjC,GAAG1lC,KAAK,OAAO,GAAG,GAAG,EAAEA,EAAE,MAAMD,EAAE,EAAE4C,EAAE,UAAUlD,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAE,OAAOmD,EAAEtB,KAAK4jC,QAAQllC,EAAEN,EAAE4B,KAAK6jC,OAAOnlC,EAAEyC,EAAEmiC,GAAE7Z,KAAKjrB,EAAE8C,GAAGoC,EAAE4/B,GAAE7Z,KAAKvoB,EAAE9C,GAAGQ,EAAE0kC,GAAE7Z,KAAKlrB,EAAE+C,KAAK,MAAMtB,KAAKyjC,cAAcS,eAAe/lC,SAASiD,EAAEiiC,OAAOliC,EAAEuC,EAAE9E,EAAER,EAAE8C,EAAE9C,GAAGM,GAAGR,EAAE,MAAM8B,KAAK0jC,cAAcQ,eAAe/lC,SAASiD,EAAEiiC,OAAOliC,EAAEuC,EAAE9E,EAAER,EAAE8C,EAAE9C,GAAGM,GAAGA,GAAG,SAAS2lC,GAAE5lC,EAAE,IAAI4C,EAAE,IAAInD,GAAG,MAAuWgI,QAAM,KAAzVo+B,SAAS,SAASp2B,OAAOhN,EAAE3C,EAAE6C,EAAElD,EAAEQ,QAAQD,EAAE,UAAUoE,GAAEg7B,WAAW3vB,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAAC0iC,QAAQ,UAAU/gC,GAAE46B,WAAWh/B,EAAE8lC,iBAAY,IAAAhmC,EAAWA,EAAE,EAAEslC,OAAO,UAAUhhC,GAAE46B,WAAWh/B,EAAE+lC,gBAAW,IAASpjC,EAAEA,EAAE,EAAE2iC,SAAS,UAAUlhC,GAAE46B,WAAWh/B,EAAEgmC,kBAAa,IAAAvmC,EAAWA,EAAE,GAAG+lC,QAAQ,UAAUphC,GAAE46B,WAAWh/B,EAAEimC,iBAAY,IAAShmC,EAAEA,EAAE,KAAiB,SAAQgQ,YAAYlQ,GAAGmmC,YAAYzjC,EAAEgiC,WAAW3kC,SAASqmC,MAAM,IAAItB,GAAE9kC,EAAE0C,EAAE3C,GAAGyB,KAAK6kC,OAAO,IAAIvB,GAAE9kC,EAAE0C,EAAE3C,OAAO6C,EAAE,EAAA,EAAIlD,GAAE,EAAA,UAAagQ,EAAE,EAAEA,EAAE3P,EAAEM,OAAOqP,GAAG,EAAE,IAAI3P,EAAE2P,OAAO3F,KAAK+M,IAAIlU,EAAE8M,GAAGhQ,EAAEqK,KAAKD,IAAIpK,EAAEgQ,UAAUxP,EAAE,MAAM,KAAK0C,EAAE,SAAS0jC,YAAY,EAAE,EAAEpmC,EAAEgQ,OAAOlQ,EAAE0C,EAAE3C,SAAS6C,EAAE5C,EAAEumC,GAAEC,aAAa9mC,EAAEgD,EAAE6jC,GAAEC,aAAatmC,EAAEH,EAAEwmC,GAAEC,yBAAyBJ,MAAMvB,OAAO7kC,EAAE0C,EAAE3C,GAAGyB,KAAK6kC,OAAOxB,OAAOjiC,EAAElD,EAAEQ,IAAIsB,KAAK8kC,aAAaC,GAAEC,aAAa,oBAA8T/+B,QAAM,KAAnSq+B,SAAS,SAASp2B,OAAOhN,EAAE3C,EAAE6C,QAAQlD,EAAE,UAAU2E,GAAEg7B,WAAW3vB,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACyjC,YAAY,UAAU9hC,GAAE66B,QAAQx/B,EAAEymC,oBAAe,IAASpmC,EAAEA,EAAE,EAAE2kC,WAAW,UAAUrgC,GAAEi7B,UAAU5/B,EAAEglC,oBAAoBnF,SAAS,UAAUl7B,GAAE46B,WAAWO,UAAK,IAASD,EAAEA,EAAE,YAAO,IAAS38B,EAAEA,EAAE,KAAunB,SAAS5C,KAAK8lC,SAAS,SAASpjC,EAAE3C,OAAO6C,EAAElD,EAAEQ,EAAED,KAAK,iBAAiByC,SAAS,IAAI+jC,GAAE/jC,SAASG,EAAE,UAAUwB,GAAEg7B,WAAW38B,UAAK,IAASE,EAAEA,EAAE,GAAGjD,EAAE,IAAI+mC,GAAE3mC,EAAE8C,EAAE8jC,aAAa7jC,EAAE,UAAUuB,GAAEi7B,UAAUz8B,EAAE+jC,gBAAgBrH,SAAS,UAAUl7B,GAAEg7B,WAAW3vB,UAAK,IAAS6vB,EAAEA,EAAE,aAAQ,IAAS7/B,EAAEA,EAAE,MAAM,IAAIoD,EAAEzC,cAAc,IAAIomC,GAAE,aAAalH,KAAKz8B,EAAE,OAAO+jC,EAAE,UAAUxiC,GAAE46B,WAAWM,EAAEp0B,iBAAY,IAAAjL,EAAWA,EAAE,EAAEgC,EAAElC,EAAE8lC,SAASvG,EAAE37B,MAAM7D,GAAG6lC,EAAE,UAAUvhC,GAAE46B,WAAWM,EAAEuH,mBAAc,IAAA7mC,EAAWA,EAAE,IAAI8mC,SAASF,EAAE3kC,EAAE0jC,UAAUjmC,GAA/e,CAAmfw+B,QAAM,KAAK,SAAQjuB,YAAYlQ,QAAQ4D,MAAM5D,EAAEkQ,eAAe1O,KAAKoC,MAAMsM,gBAAgB1O,KAAKoC,OAAO,SAAQsM,YAAYlQ,EAAE0C,EAAE,GAAG3C,EAAE,GAAG6C,EAAE,SAAS+jC,WAAW3mC,EAAEwB,KAAKwlC,UAAUtkC,EAAElB,KAAKgY,OAAOzZ,EAAEyB,KAAKylC,YAAYrkC,EAAEsN,MAAMlQ,SAAS0C,EAAElB,KAAKmlC,WAAWrV,MAAMtxB,GAAGD,EAAlyV,SAAWC,EAAE0C,EAAE3C,OAAO6C,EAAEF,EAAE1C,OAAO4C,EAAE,GAAG,OAAO28B,EAAEx1B,KAAK4wB,MAAM/3B,EAAE,GAAGlD,EAAEM,EAAEu/B,IAAI7/B,GAAGkD,EAAE28B,KAAK7/B,EAAE,EAAEkD,GAAG28B,EAAE,UAAUv/B,EAAgsV8H,CAAE,EAAEtG,KAAKwlC,UAAU3mC,WAAWqC,EAAElB,KAAKwlC,UAAUt3B,KAAK,EAAE9M,EAAEpB,KAAKwlC,UAAU3mC,OAAO,KAAKN,EAAE,SAASyB,KAAKgY,OAAO,GAAG8X,MAAMtxB,GAAGwB,KAAKylC,YAAY,MAAMzlC,KAAKwlC,UAAU,OAAOjnC,IAAI6C,SAASpB,KAAKgY,OAAO5W,GAAG0uB,MAAMtxB,GAAGwB,KAAKylC,YAAYrkC,MAAMpB,KAAKwlC,UAAUpkC,UAAUlD,EAAE8B,KAAKwlC,UAAUjnC,GAAGG,EAAEsB,KAAKwlC,UAAUjnC,EAAE,GAAGE,EAAEuB,KAAKylC,YAAYlnC,GAAG8C,EAAErB,KAAKylC,YAAYlnC,EAAE,GAAGJ,KAAKD,MAAMA,GAAGoD,EAAEtB,KAAKgY,OAAOzZ,GAAGuxB,MAAMtxB,GAAGJ,EAAE4B,KAAKgY,OAAOzZ,EAAE,GAAGuxB,MAAMtxB,GAAG2C,EAAE1C,KAAKP,MAAMoD,GAAGoC,GAAGrC,KAAKnD,MAAMoD,UAAUe,GAAElE,EAAEmD,EAAElD,GAAGD,KAAKA,GAAGkE,GAAElE,EAAEgD,EAAEuC,GAAGgL,SAASlQ,EAAE0C,EAAE3C,EAAE,UAAUyB,KAAKwlC,UAAU1mC,KAAKN,GAAGwB,KAAKgY,OAAOlZ,KAAK,iBAAiBoC,EAAE,IAAI+jC,GAAE/jC,GAAGA,GAAGlB,KAAKylC,YAAY3mC,KAAKP,GAAGyB,KAAK0O,eAAe,CAACy2B,WAAWnlC,KAAKmlC,WAAWO,SAASN,OAAOplC,KAAKwlC,UAAUz8B,KAAK,CAACvK,EAAE0C,KAAK,CAACyI,SAASnL,EAAE4D,MAAMpC,KAAKgY,OAAO9W,GAAGwkC,SAASJ,WAAWtlC,KAAKylC,YAAYvkC,UAAmhD07B,QAAQ,KAA5V+I,OAAO,SAASz3B,EAAEhN,EAAE3C,OAAOqnC,GAAGxkC,EAAEykC,KAAK3nC,EAAE4nC,MAAMpnC,EAAEqnC,KAAKtnC,EAAEunC,MAAM3kC,EAAE4kC,KAAK9nC,GAAG+P,SAAS3P,QAAQ,IAAIG,EAAED,EAAE4C,EAAElD,GAAG,CAACM,EAAE4C,EAAElD,EAAEO,cAAc,KAAKA,EAAED,EAAE4C,EAAElD,GAAG,CAACkD,EAAElD,EAAEO,EAAED,cAAc,KAAKC,EAAED,EAAE4C,EAAElD,GAAG,CAACA,EAAEO,EAAED,EAAE4C,UAAUH,QAAQ,IAAIE,EAAE1C,EAAER,EAAEmD,GAAG,CAAC3C,EAAER,EAAEmD,EAAED,cAAc,KAAKA,EAAE1C,EAAER,EAAEmD,GAAG,CAACnD,EAAEmD,EAAED,EAAE1C,cAAc,KAAK0C,EAAE1C,EAAER,EAAEmD,GAAG,CAACA,EAAED,EAAE1C,EAAER,SAAS,CAAC0nC,GAAGxkC,EAAEykC,KAAK3nC,EAAE4nC,MAAMpnC,EAAEqnC,KAAKtnC,EAAEunC,MAAM3kC,EAAE4kC,KAAK9nC,IAc3guB,SAASK,cAAc0P,EAAE6vB,SAAS,iBAAiB7vB,EAAE,IAAI3P,EAAE2P,EAAE,MAAA6vB,EAAQA,EAAE7vB,GAAGA,IAAI5D,OAAO,SAAS4D,EAAE6vB,EAAE+E,EAAEuC,EAAEa,EAAE9E,UAAU,IAAIljC,EAAEgQ,EAAE6vB,EAAE+E,EAAEuC,EAAEa,EAAE9E,IAAI5iC,EAAE2nC,WAAW,SAASj4B,EAAE40B,EAAEpiC,EAAEwlC,EAAE9E,EAAEgD,EAAE59B,UAAU,IAAIpF,EAAEF,EAAEgN,GAAGhN,EAAE4hC,GAAG5hC,EAAER,GAAGQ,EAAEglC,GAAGhlC,EAAEkgC,GAAGlgC,EAAEkjC,GAAG59B,IAAIhI,EAAEkK,MAAMxH,UAAUwN,YAAYR,EAAE6vB,QAAQzoB,IAAIpH,EAAElO,KAAKsI,IAAIy1B,EAAErvB,SAASR,SAAS6vB,GAAG,iBAAiB7vB,EAAEA,EAAEA,EAAEoH,KAAKtV,KAAKsI,IAAIw6B,EAAE9iC,KAAKsV,KAAK,iBAAiBpH,EAAEA,EAAEA,EAAE5F,YAAYy1B,EAAE,EAAEA,EAAEx1B,KAAKD,IAAIw6B,EAAE,GAAGp0B,MAAMR,UAAU,IAAI3P,EAAEgK,KAAK+M,IAAItV,KAAKsV,IAAIpH,EAAEoH,KAAK/M,KAAKD,IAAItI,KAAKsI,IAAI4F,EAAE5F,sBAAsB4F,OAAO6vB,KAAK,iBAAiB7vB,SAAS,IAAI3P,EAAE2P,EAAEA,SAASm3B,EAAE3kC,GAAG,UAAUmC,GAAEi7B,UAAU5vB,MAAMrL,GAAE46B,WAAWO,YAAO,IAAAD,EAAWA,EAAE,UAAU,IAAIx/B,EAAE,MAAM8mC,EAAEA,EAAE,EAAE,MAAM3kC,EAAEA,EAAE,MAAM0lC,MAAM7nC,UAAUmQ,YAAYR,EAAE6vB,EAAE+E,EAAEuC,EAAE3kC,EAAEwlC,EAAE9E,QAAQiF,YAAYn4B,EAAElO,KAAKsmC,SAASvI,EAAE/9B,KAAKumC,gBAAgBzD,EAAE9iC,KAAKwmC,QAAQnB,EAAErlC,KAAKggB,MAAMtf,EAAEV,KAAKymC,UAAUP,EAAElmC,KAAKyP,OAAO2xB,EAAE1yB,SAASR,UAAUw4B,GAAE1mC,KAAKqmC,YAAYM,SAASz4B,EAAEm4B,cAAcK,GAAE1mC,KAAKsmC,SAASK,SAASz4B,EAAEo4B,WAAWI,GAAE1mC,KAAKumC,gBAAgBI,SAASz4B,EAAEq4B,kBAAkBG,GAAE1mC,KAAKwmC,QAAQG,SAASz4B,EAAEs4B,UAAUE,GAAE1mC,KAAKggB,MAAM2mB,SAASz4B,EAAE8R,QAAQ0mB,GAAE1mC,KAAKymC,UAAUE,SAASz4B,EAAEu4B,YAAYC,GAAE1mC,KAAKyP,OAAOvB,EAAEuB,QAAQf,cAAc,CAAC1O,KAAKqmC,YAAYrmC,KAAKsmC,SAAStmC,KAAKumC,gBAAgBvmC,KAAKwmC,QAAQxmC,KAAKggB,MAAMhgB,KAAKymC,UAAU,IAAIloC,EAAEyB,KAAKyP,OAAOzP,KAAKyP,yBAAyBvB,OAAO6vB,EAAEr9B,QAAQwlC,EAAE,UAAUrjC,GAAEg7B,WAAW3vB,UAAK,IAAS6vB,EAAEA,EAAE,UAAU,IAAI38B,EAAE7C,EAAE+lC,SAAS4B,EAAEG,aAAa9nC,EAAE+lC,SAAS4B,EAAEI,UAAU/nC,EAAE+lC,SAAS4B,EAAEK,iBAAiBhoC,EAAE+lC,SAAS4B,EAAEM,SAASjoC,EAAE+lC,SAAS4B,EAAElmB,OAAOzhB,EAAE+lC,SAAS4B,EAAEO,WAAW,UAAU5jC,GAAE66B,QAAQwI,EAAEz2B,eAAU,IAAA/O,EAAWA,EAAE,MAAMkmC,WAAWxlC,UAAUsN,YAAYR,EAAE6vB,EAAE+E,EAAEuC,EAAE3kC,EAAEwlC,QAAQG,YAAYn4B,EAAElO,KAAKsmC,SAASvI,EAAE/9B,KAAKumC,gBAAgBzD,EAAE9iC,KAAKwmC,QAAQnB,EAAErlC,KAAKggB,MAAMtf,EAAEV,KAAKymC,UAAUP,sBAAsB,EAAEx3B,gBAAgB,CAAC1O,KAAKqmC,YAAYrmC,KAAKsmC,SAAStmC,KAAKumC,gBAAgBvmC,KAAKwmC,QAAQxmC,KAAKggB,MAAMhgB,KAAKymC,UAAUzmC,KAAKyP,WAAWo3B,YAAY3oC,IAAI4oC,WAAW,MAAMp4B,YAAYR,QAAQ64B,OAAO74B,EAAElO,KAAKkJ,MAAM,IAAIxK,EAAEwP,GAAGQ,KAAKR,UAAUlO,KAAKkJ,MAAMY,OAAOoE,GAAG,CAAC8vB,EAAED,IAAIC,EAAE2I,SAAS5I,eAAervB,YAAYR,QAAQqmB,KAAK71B,EAAEsoC,MAAM94B,EAAEnF,KAAK,EAAEi1B,EAAED,KAAK,IAAI5/B,EAAE6/B,EAAED,mBAAmB7vB,MAAM,IAAIA,EAAErP,cAAcqP,EAAE,MAAMA,EAAErP,QAAQH,EAAEuoC,kBAAkB,OAAOC,EAAEh5B,EAAEnF,aAAao+B,EAAE,UAAUC,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,OAAOC,EAAErJ,EAAEsJ,MAAMF,MAAM7+B,KAAKg/B,OAAOjyB,IAAI+xB,EAAE/+B,KAAK,SAAS,CAAClJ,IAAI+nC,EAAEh9B,KAAK6zB,MAAMv9B,MAAM,CAACu9B,EAAEmJ,IAAInJ,EAAE5+B,IAAI+nC,EAAE/nC,MAAM2J,KAAK,EAAEoB,KAAK6zB,KAAKA,WAAW,IAAI38B,EAAE6lC,OAAOnJ,EAAE,EAAA,EAAI+E,KAAKuC,EAAE,WAAW3kC,EAAE,EAAEA,EAAE,IAAIA,EAAE,GAAGhC,EAAE+B,KAAKyN,EAAExN,GAAE,GAAI2kC,EAAE3mC,EAAE8oC,UAAUt5B,OAAOkzB,EAAE,YAAYpD,KAAKqH,KAAK3mC,EAAE+oC,KAAKzJ,EAAEsJ,SAASlG,MAAMA,EAAE0B,EAAEpiC,UAAUwN,EAAExP,EAAE+B,KAAKyN,EAAE40B,GAAE,GAAIuC,EAAE3mC,EAAE8oC,UAAUt5B,GAAGm3B,EAAE3mC,EAAE+B,KAAK4kC,EAAEvC,GAAE,GAAI,IAAIzhC,EAAEgkC,EAAEt8B,QAAQrK,EAAEsoC,MAAMhJ,EAAEj/B,yBAAyBmP,EAAE6vB,EAAE+E,UAAU50B,EAAEnF,eAAes8B,EAAErH,EAAEsJ,MAAMvJ,GAAGr9B,KAAK4U,IAAI+vB,EAAE/8B,KAAK,QAAQ,CAAClJ,IAAI0jC,EAAEv6B,KAAKg/B,IAAI7mC,GAAGA,EAAEyJ,KAAK6zB,MAAMv9B,MAAM,CAACu9B,EAAEkJ,IAAIlJ,EAAE5+B,IAAI8nC,EAAE9nC,MAAM2J,KAAK,EAAEoB,KAAK6zB,KAAKA,qBAAqB9vB,SAAS6vB,EAAE,OAAO+E,EAAE,SAASuC,EAAE98B,KAAKyxB,IAAI,GAAGzxB,KAAK4wB,MAAM5wB,KAAKgL,IAAIrF,EAAErP,OAAO,KAAK0J,KAAKgL,IAAI,gBAAgB7S,KAAKwN,IAAIpP,KAAK4B,GAAGoiC,EAAEjkC,OAAOwmC,MAAMvmC,KAAK,IAAIuC,EAAEyhC,IAAIA,EAAE,WAAW,IAAIA,EAAEjkC,QAAQk/B,EAAEj/B,KAAK,IAAIuC,EAAEyhC,IAAI/E,cAAc7vB,OAAO6vB,EAAE,YAAY+E,KAAK50B,KAAK3F,KAAKg/B,IAAIzE,EAAEx6B,IAAIw6B,EAAExtB,YAAYyoB,EAAErvB,OAAOR,EAAE6vB,UAAU/9B,KAAKu0B,KAAKzqB,OAAOoE,EAAEw5B,UAAU3J,GAAG4J,WAAWV,kBAAkB,GAAGzoC,EAAEopC,MAAMlpC,UAAUgQ,YAAYR,QAAQo5B,MAAMp5B,EAAEQ,SAASR,OAAO6vB,EAAE,UAAU+E,EAAE,EAAEA,EAAE,EAAEA,GAAG,KAAK4D,GAAE1mC,KAAKsnC,MAAMxE,GAAG6D,SAASz4B,EAAE40B,YAAY/E,KAAK8J,MAAMppC,kBAAkBA,EAAEiQ,YAAYR,SAAS7M,EAAEymC,WAAW55B,IAAIlO,KAAKjB,SAASmP,oBAAoBA,OAAO6vB,EAAE,IAAIh8B,MAAM,IAAIgH,KAAK,IAAI,IAAIxK,EAAE,EAAA,GAAI,EAAA,eAAkBukC,KAAK50B,IAAI,IAAInM,MAAM,IAAIgH,KAAK,CAACi1B,EAAEqH,IAAItH,EAAEsH,GAAG0C,MAAMjF,EAAEwE,MAAMjC,aAAatH,EAAErvB,OAAOR,EAAE6vB,OAAO+E,EAAE,EAAA,EAAIuC,EAAE,eAAe3kC,KAAKV,KAAKjB,SAAS,OAAOmnC,EAAEnI,EAAEr9B,EAAEwN,MAAM40B,GAAGoD,iBAAiB9E,EAAE1gC,EAAEoJ,OAAOoE,EAAE6vB,GAAGqG,EAAE1jC,GAAG0gC,EAAE8E,EAAEnI,EAAEqD,EAAElzB,MAAMk2B,MAAMA,EAAEiB,EAAEjE,UAAUiE,KAAK2C,SAAS3mC,kBAAkB5C,EAAEiQ,YAAYR,EAAE6vB,SAAS7vB,EAAEo5B,SAAStnC,KAAK2nC,MAAM5J,EAAErvB,gBAAgB1O,QAAQioC,MAAM9pC,EAAjmH,CAAomH0+B,QAAQ,KAAK,SAASnuB,YAAYlQ,QAAQ0pC,MAAM1pC,EAAEkQ,kBAAkB1O,KAAKkoC,sBAAsB1pC,OAAO0C,EAAE3C,QAAQ6C,EAAE,UAAUyB,GAAEg7B,WAAWr/B,UAAK,IAAA0C,EAAWA,EAAE,GAAGhD,EAAE,UAAU2E,GAAE86B,WAAWv8B,EAAE8mC,cAAS,IAAS3pC,EAAEA,EAAE,4BAA4B,IAAI4pC,GAAGjqC,IAA8gB,SAASwQ,YAAYlQ,EAAE0C,EAAE3C,QAAQ6pC,cAAc5pC,EAAEwB,KAAKqoC,cAAcnnC,EAAElB,KAAKsoC,kBAAkB/pC,mBAAmBC,SAAS,CAACsxB,SAAS5uB,EAAE1C,GAAGknC,OAAO,IAAIlnC,mBAAmBA,OAAO0C,QAAQ3C,EAAE,UAAUsE,GAAEg7B,WAAWr/B,UAAK,IAAS0C,EAAEA,EAAE,UAAU,IAAIqnC,GAAG5L,GAAE2H,SAAS/lC,EAAEkR,OAAOzP,KAAKwoC,WAAW7L,GAAE2H,SAAS/lC,EAAEkqC,OAAOzoC,KAAKwoC,WAAW7L,GAAE2H,SAAS/lC,EAAEmqC,WAAW1oC,KAAKwoC,YAAY95B,eAAe,CAACe,OAAOzP,KAAKooC,cAAc1C,SAAS+C,OAAOzoC,KAAKqoC,cAAc3C,SAASgD,WAAW1oC,KAAKsoC,kBAAkB5C,UAAUh3B,OAAOlQ,UAAUwB,KAAKooC,cAActY,MAAMtxB,GAAG+pC,GAAGI,cAAcj6B,OAAOlQ,UAAUwB,KAAKqoC,cAAcvY,MAAMtxB,GAAGkQ,WAAWlQ,UAAUwB,KAAKsoC,kBAAkBxY,MAAMtxB,gBAAgBA,EAAE0C,EAAE3C,SAAS,CAACqqC,WAAWpqC,EAAEgoC,QAAQtlC,EAAEulC,UAAUloC,EAAEsqC,OAAO7oC,KAAK8oC,gBAAgBvqC,2BAA2BC,UAAU,SAAS+oC,IAAIh/B,KAAKg/B,IAAI/oC,GAAG,UAAU,oCAAoCA,EAAEwB,KAAK+oC,8BAA8B,EAAE,EAAE,GAAG,QAAO,GAAG,GAAI7nC,EAAElB,KAAK+oC,6BAA6B,IAAI,GAAG,GAAG,UAAS,GAAG,GAAIxqC,EAAEyB,KAAK+oC,6BAA6B,IAAI,GAAG,GAAG,UAAS,GAAG,GAAI3nC,EAAEpB,KAAK+oC,yBAAyB,GAAG,IAAI,GAAG,EAAE,IAAI,KAAI,GAAG,GAAI7qC,EAAE,IAAIgnC,GAAEllC,KAAKgpC,YAAYzD,cAAc,MAAMA,uBAAuBA,sBAAsBA,oBAAoBA,oBAAoBA,cAAc/mC,GAAG+mC,cAAc/mC,GAAG+mC,aAAarkC,GAAGqkC,SAAS,IAAIhnC,GAAGgnC,SAAS,EAAEnkC,GAAG1C,EAAE,IAAIwmC,GAAEllC,KAAKgpC,YAAYzD,cAAc,MAAMA,cAAcvlC,KAAKipC,iBAAiB,MAAK,IAAK1D,aAAavlC,KAAKipC,iBAAiB,MAAK,IAAK1D,SAAS,IAAIvlC,KAAKipC,iBAAiB,MAAK,IAAK1D,SAAS,IAAIvlC,KAAKipC,iBAAiB,MAAK,IAAKxqC,EAAE,IAAIymC,GAAEllC,KAAKgpC,YAAYzD,SAAS,IAAI,GAAGA,SAAS,IAAIvlC,KAAKkpC,6BAA6B,EAAE,GAAG,EAAE,IAAI3D,SAAS,IAAIvlC,KAAKkpC,6BAA6B,EAAE,EAAE,EAAE,WAAW,IAAIX,GAAGrqC,EAAEQ,EAAED,2BAA2BD,EAAE0C,SAAS3C,EAAE,IAAI2mC,GAAEllC,KAAKmpC,WAAW5D,aAAa,KAAKA,SAAS,GAAG/mC,GAAG4C,EAAE,IAAI8jC,GAAEllC,KAAKopC,SAAS7D,aAAahnC,GAAGgnC,aAAa,IAAIL,GAAEllC,KAAKmpC,WAAW5D,cAAc,KAAKA,SAAS,IAAI,OAAOA,cAAchnC,GAAGgnC,cAAchnC,GAAGgnC,aAAa,IAAIL,GAAEllC,KAAKmpC,WAAW5D,cAAc,MAAMA,SAAS,IAAI,MAAMA,SAAS,IAAIhnC,MAAM2C,EAAE,OAAO68B,EAAE,IAAImH,GAAEllC,KAAKmpC,WAAW5D,SAAS,EAAE/mC,GAAG+mC,SAAS,GAAG,MAAMzC,EAAE,IAAIoC,GAAEllC,KAAKqpC,QAAQ9D,aAAa/mC,GAAG+mC,cAAcxH,KAAKwH,SAAS,IAAI/mC,GAAG+mC,SAAS,IAAIzC,GAAGyC,SAAS,IAAIzC,GAAGyC,SAAS,IAAI/mC,OAAO,OAAOu/B,EAAE,IAAImH,GAAEllC,KAAKqpC,QAAQ9D,aAAahnC,GAAGgnC,cAAc,MAAMrnC,EAAE,IAAIgnC,GAAEllC,KAAKqpC,QAAQ9D,SAAS,IAAIhnC,GAAGgnC,SAAS,GAAG,QAAQA,SAAS,IAAIrnC,GAAGqnC,SAAS,GAAGrnC,GAAGqnC,SAAS,IAAIxH,GAAGwH,SAAS,IAAIxH,GAAGwH,SAAS,IAAI/mC,UAAU4C,kCAAkC5C,EAAE0C,EAAE3C,EAAE6C,EAAElD,EAAEQ,EAAED,EAAE4C,SAASlD,EAAE6B,KAAKspC,mCAAmCjnC,GAAEjB,EAAE,GAAG,KAAKC,GAAGC,EAAEtB,KAAKspC,mCAAmCjnC,GAAEjB,EAAE,GAAG,GAAGC,GAAGjD,EAAE4B,KAAKspC,mCAAmCloC,EAAEC,GAAGF,EAAEnB,KAAKupC,YAAY/qC,EAAE,IAAI,GAAG4C,EAAEiB,GAAE,GAAG,GAAG,IAAIjB,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIsC,EAAE1D,KAAKupC,YAAY/qC,EAAEN,EAAEkD,EAAEF,EAAEE,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIxC,EAAEoB,KAAKupC,YAAY/qC,EAAEN,EAAEA,EAAEgD,EAAE3C,EAAE,IAAIoF,EAAE3D,KAAKupC,YAAY/qC,EAAEN,EAAEA,EAAEgD,EAAE3C,EAAE,IAAIgD,EAAE,IAAI2jC,GAAEllC,KAAKqpC,QAAQ9D,YAAY/mC,GAAG+mC,aAAa3mC,GAAG2mC,SAAS,EAAEhnC,EAAE,KAAKoD,EAAE3B,KAAKupC,iBAAiB7qC,EAAEA,EAAEwC,EAAE3C,EAAE,GAAGkF,EAAE,IAAIyhC,GAAEllC,KAAKopC,SAAS7D,cAAcpnC,GAAGonC,aAAajkC,GAAGikC,aAAannC,GAAGmnC,cAAcpkC,GAAGokC,aAAa7hC,GAAG6hC,SAAS,GAAG3mC,UAAUH,GAAGgF,EAAE8hC,SAAS,GAAG5hC,GAAG4hC,SAAS,IAAIhkC,GAAGgkC,SAAS,IAAIhkC,GAAGgkC,SAAS,IAAI5hC,GAAGF,EAAE8hC,SAAS,GAAG5jC,GAAG8B,4CAA4CjF,EAAE0C,SAAS3C,EAAE,IAAI2mC,GAAEllC,KAAKqpC,QAAQjoC,EAAEpB,KAAKwpC,2BAA2BhrC,OAAON,EAAE8B,KAAKwpC,wBAAwB,EAAEhrC,OAAOE,EAAEsB,KAAKypC,+CAA+CjrC,WAAWE,GAAGA,EAAE,EAAE,OAAOq/B,EAAE/9B,KAAKwpC,6BAA6BhrC,OAAOC,EAAEuB,KAAKwpC,6BAA6BhrC,OAAO6C,EAAErB,KAAK0pC,eAAetoC,EAAE3C,aAAa8mC,YAAYnkC,EAAEC,GAAG9C,EAAEgnC,cAAc9mC,GAAGF,EAAEgnC,cAAcxH,SAAS5/B,EAAE6B,KAAKwpC,wBAAwB9qC,EAAEF,OAAO8C,EAAEtB,KAAK0pC,eAAevrC,EAAED,EAAEQ,EAAE,KAAK6mC,SAAS7mC,EAAE,IAAIP,GAAGI,EAAEgnC,SAAS7mC,EAAEP,EAAEmD,GAAG/C,EAAEgnC,SAAS,EAAErnC,EAAEoD,OAAO,OAAO4M,EAAElO,KAAK0pC,eAAetoC,EAAElD,KAAK,QAAQqnC,YAAYh9B,KAAKD,IAAI,GAAGlH,IAAI7C,EAAEgnC,SAAS,EAAEljC,GAAE,GAAGjB,EAAElD,GAAGgQ,IAAI3P,EAAEgnC,YAAYnkC,EAAE8M,GAAG3P,EAAEgnC,SAAS,EAAErnC,EAAEgQ,UAAU3P,iCAAiCC,EAAE0C,EAAE3C,SAAS6C,EAAE,aAAa,SAAS,MAAMF,IAAI,MAAMA,UAAU1C,EAAED,EAAEgK,KAAKD,IAAIlH,UAAUmH,KAAKD,IAAIlH,EAAE,yDAAyD5C,SAAS,MAAMA,iBAAiB,MAAMA,KAAK,2BAA2BA,EAAE0C,EAAE3C,EAAE6C,YAAY5C,MAAMD,sBAAsBC,EAAE0C,EAAE3C,EAAE6C,EAAElD,EAAEQ,SAASD,EAAE8J,KAAKD,IAAI,MAAM9J,GAAGE,GAAG2C,EAAE,KAAKH,UAAU,IAAIgkC,GAAEllC,KAAKqpC,QAAQ9D,YAAY/mC,EAAEC,GAAG8mC,aAAarkC,EAAEqH,KAAK+M,IAAI7W,EAAE4C,IAAIkkC,SAAS,EAAEhnC,EAAE8C,GAAGkkC,SAAS,GAAGnkC,EAAE,KAAK7C,IAAIgnC,SAAS,EAAErnC,EAAE,MAAMkD,wCAAwC5C,EAAE0C,EAAE3C,EAAE6C,SAASlD,EAAE8B,KAAK2pC,2BAA2BnrC,EAAED,GAAGG,EAAEsB,KAAK2pC,2BAA2BzoC,EAAEE,UAAU,IAAI8jC,GAAEllC,KAAKopC,SAAS7D,YAAYrnC,GAAGqnC,cAAc7mC,GAAG6mC,gBAAgB7mC,GAAG6mC,eAAe,qCAAqC/mC,EAAE0C,SAAS3C,EAAEgqC,GAAGO,gBAAgB,IAAI1nC,KAAKmnC,GAAGO,gBAAgB,YAAY,SAAS,IAAI5D,GAAEllC,KAAKqpC,QAAQ9D,SAAShnC,EAAE,GAAGgnC,SAASnkC,EAAEF,EAAE,EAAElB,KAAK4pC,+BAA+B1oC,GAAG,GAAGqkC,SAAS,EAAE/mC,EAAE,EAAEwB,KAAK4pC,+BAA+BprC,GAAG,yCAAyCA,UAAU,IAAI0mC,GAAEqD,GAAGY,WAAW5D,cAAc,IAAI/mC,GAAG+mC,SAAS,IAAI,GAAG/mC,IAAI+pC,GAAGI,sBAAsBJ,GAAGC,kBAAkBtnC,QAAQ3C,EAAE,UAAUsE,GAAE86B,WAAWn/B,UAAK,IAAS0C,EAAEA,EAAE,oBAAoBqnC,GAAGsB,UAAUtrC,IAAIgqC,GAAGS,WAAWT,GAAGsB,UAAU,cAActB,GAAGa,QAAQb,GAAGsB,UAAU,WAAWtB,GAAGY,UAAUZ,GAAGsB,UAAU,aAAatB,GAAGc,OAAOd,GAAGsB,UAAU,WAAiI/M,QAAQ,KAAjHgN,SAAS,SAAS57B,SAAS,CAAChN,EAAE3C,EAAE6C,EAAElD,eAAeQ,KAAKwP,EAAE,OAAO8vB,EAAEt/B,EAAEwC,EAAE3C,EAAE6C,EAAElD,MAAM8/B,SAASA,SAAS,OAAqB,SAAStvB,YAAYlQ,EAAE0C,QAAQyuB,MAAMnxB,EAAEwB,KAAK+pC,OAAO7oC,EAAElB,KAAKgqC,SAAS,EAAEhqC,KAAKiqC,SAAS,EAAEjqC,KAAKkqC,SAAS,EAAElqC,KAAKmqC,SAAS,EAAEnqC,KAAKoqC,SAAS,EAAEpqC,KAAKqqC,SAAS,EAAErqC,KAAKsqC,SAAS,EAAEtqC,KAAKuqC,SAAS,EAAEvqC,KAAKwqC,UAAU,EAAExqC,KAAKyqC,UAAU,EAAEzqC,KAAK0qC,UAAU,EAAE1qC,KAAK2qC,UAAU,EAAE3qC,KAAK4qC,QAAQ,EAAE5qC,KAAK6qC,QAAQ,EAAE7qC,KAAKoC,MAAM,EAAEpC,KAAK8qC,OAAOC,GAAGC,cAAcxsC,EAAEysC,WAAWzsC,EAAE0sC,aAAalrC,KAAKmrC,OAAOJ,GAAGC,cAAcxsC,EAAEysC,WAAWzsC,EAAE0sC,kCAAkC1sC,EAAE0C,SAAS3C,EAAEwD,MAAMb,EAAE,WAAWE,EAAE,EAAEA,EAAEF,EAAE,EAAEE,GAAG,IAAIA,GAAGW,MAAMvD,EAAE,UAAUD,EAAEmQ,+BAA+B08B,UAAUprC,KAAK8qC,OAAO9qC,KAAK2vB,MAAM0b,YAAY38B,aAAalQ,QAAQ4sC,UAAUprC,KAAKmrC,OAAOnrC,KAAK2vB,MAAM0b,WAAW7sC,EAAE,GAAGkQ,UAAUlQ,EAAE0C,SAAS3C,EAAE2C,EAAElB,KAAK2vB,MAAM4T,kBAAkBxF,EAAE,EAAEA,EAAE/9B,KAAK2vB,MAAMub,YAAY,EAAEnN,GAAG,EAAE,OAAO38B,QAAQuuB,MAAM2b,WAAWvN,GAAG/9B,KAAK2vB,MAAM4T,kBAAkBrlC,EAAE,EAAEA,EAAE8B,KAAK2vB,MAAMsb,WAAW,EAAE/sC,GAAG,EAAE,OAAOQ,QAAQixB,MAAM4b,mBAAmBrtC,GAAG8B,KAAK2vB,MAAM6T,aAAazF,GAAG7/B,GAAG8B,KAAK+pC,OAAOxrC,EAAEG,EAAE0C,KAAKsN,aAAalQ,EAAE0C,QAAQ8oC,SAAShqC,KAAK8qC,OAAO5pC,GAAG1C,GAAGwB,KAAKiqC,SAASjqC,KAAK8qC,OAAO5pC,EAAE,GAAG1C,GAAGwB,KAAKkqC,SAASlqC,KAAKmrC,OAAOjqC,GAAG1C,GAAGwB,KAAKmqC,SAASnqC,KAAKmrC,OAAOjqC,EAAE,GAAG1C,GAAGwB,KAAKoqC,SAASpqC,KAAK8qC,OAAO5pC,GAAG1C,EAAE,GAAGwB,KAAKqqC,SAASrqC,KAAK8qC,OAAO5pC,EAAE,GAAG1C,EAAE,GAAGwB,KAAKsqC,SAAStqC,KAAKmrC,OAAOjqC,GAAG1C,EAAE,GAAGwB,KAAKuqC,SAASvqC,KAAKmrC,OAAOjqC,EAAE,GAAG1C,EAAE,GAAGkQ,WAAWlQ,QAAQgsC,UAAUnoC,GAAE7D,EAAEwB,KAAKgqC,SAAShqC,KAAKoqC,UAAUpqC,KAAKyqC,UAAUpoC,GAAE7D,EAAEwB,KAAKkqC,SAASlqC,KAAKsqC,UAAUtqC,KAAK0qC,UAAUroC,GAAE7D,EAAEwB,KAAKiqC,SAASjqC,KAAKqqC,UAAUrqC,KAAK2qC,UAAUtoC,GAAE7D,EAAEwB,KAAKmqC,SAASnqC,KAAKuqC,UAAU77B,WAAWlQ,QAAQosC,QAAQvoC,GAAE7D,EAAEwB,KAAKwqC,UAAUxqC,KAAKyqC,WAAWzqC,KAAK6qC,QAAQxoC,GAAE7D,EAAEwB,KAAK0qC,UAAU1qC,KAAK2qC,WAAWj8B,WAAWlQ,QAAQ4D,MAAMC,GAAE7D,EAAEwB,KAAK4qC,QAAQ5qC,KAAK6qC,SAASn8B,gBAAgB1O,KAAKoC,MAAMsM,cAAc1O,KAAK8qC,OAAO9qC,KAAKmrC,QAAQ,CAACnrC,KAAKmrC,OAAOnrC,KAAK8qC,SAAS,SAASp8B,YAAYlQ,EAAE0C,EAAE3C,EAAE6C,EAAElD,EAAEQ,EAAED,EAAE4C,EAAElD,QAAQolC,UAAU/kC,EAAEwB,KAAKwjC,WAAWtiC,EAAElB,KAAKkrC,YAAY3sC,EAAEyB,KAAKirC,WAAW7pC,EAAEpB,KAAKurC,mBAAmBrtC,EAAE8B,KAAKqrC,WAAW9iC,KAAK4wB,MAAM16B,EAAED,GAAGwB,KAAKsrC,WAAW/iC,KAAK4wB,MAAM93B,EAAE7C,GAAGwB,KAAKwrC,cAAc,GAAGxrC,KAAKyrC,YAAY,IAAIC,UAAUpqC,EAAE/C,EAAEC,EAAE,OAAOmtC,SAAS5pC,MAAMT,GAAGtB,KAAK4rC,SAAS7pC,MAAMT,GAAGtB,KAAKumC,gBAAgBxkC,MAAMT,GAAGtB,KAAKymC,UAAU1kC,MAAMT,GAAGtB,KAAKwmC,QAAQzkC,MAAMT,GAAGtB,KAAK6rC,kBAAkB9pC,MAAMT,WAAW4M,EAAE,EAAEA,EAAE5M,EAAE4M,GAAG,EAAE,OAAO6vB,EAAE/9B,KAAKqrC,WAAWn9B,OAAOy9B,SAASz9B,GAAGnM,MAAMT,GAAGtB,KAAK4rC,SAAS19B,GAAGnM,MAAMT,GAAGtB,KAAKumC,gBAAgBr4B,GAAGnM,MAAMT,GAAGtB,KAAKymC,UAAUv4B,GAAGnM,MAAMT,GAAGtB,KAAKwmC,QAAQt4B,GAAGnM,MAAMT,GAAGtB,KAAK6rC,kBAAkB39B,GAAGnM,MAAMT,WAAWwhC,EAAE,EAAEA,EAAExhC,EAAEwhC,GAAG,EAAE,OAAOuC,EAAErlC,KAAKsrC,WAAWxI,EAAEpiC,EAAEs8B,GAAGlxB,OAAOpN,EAAEq/B,EAAEsH,QAAQsG,SAASz9B,GAAG40B,GAAGpiC,EAAEirC,SAAS3rC,KAAK4rC,SAAS19B,GAAG40B,GAAGpiC,EAAEkrC,SAAS5rC,KAAKumC,gBAAgBr4B,GAAG40B,GAAGpiC,EAAE6lC,gBAAgBvmC,KAAKymC,UAAUv4B,GAAG40B,GAAGpiC,EAAE+lC,UAAUzmC,KAAKwmC,QAAQt4B,GAAG40B,GAAGpiC,EAAE8lC,QAAQxmC,KAAK6rC,kBAAkB39B,GAAG40B,GAAGpiC,EAAE+qC,kBAAkBK,UAAUptC,EAAEqtC,oBAAoB/rC,KAAK7B,GAAGuQ,YAAYlQ,EAAE0C,UAAUlB,KAAK2rC,SAASntC,EAAEwB,KAAKqrC,YAAYnqC,EAAElB,KAAKsrC,YAAY58B,YAAYlQ,EAAE0C,UAAUlB,KAAK4rC,SAASptC,EAAEwB,KAAKqrC,YAAYnqC,EAAElB,KAAKsrC,YAAY58B,mBAAmBlQ,EAAE0C,UAAUlB,KAAKumC,gBAAgB/nC,EAAEwB,KAAKqrC,YAAYnqC,EAAElB,KAAKsrC,YAAY58B,aAAalQ,EAAE0C,UAAUlB,KAAKymC,UAAUjoC,EAAEwB,KAAKqrC,YAAYnqC,EAAElB,KAAKsrC,YAAY58B,WAAWlQ,EAAE0C,UAAUlB,KAAKwmC,QAAQhoC,EAAEwB,KAAKqrC,YAAYnqC,EAAElB,KAAKsrC,YAAY58B,eAAelQ,EAAE0C,UAAUlB,KAAK6rC,kBAAkBrtC,EAAEwB,KAAKqrC,YAAYnqC,EAAElB,KAAKsrC,YAAY58B,wBAAwBlQ,SAAS0C,EAAE,IAAI6pC,GAAG/qC,KAAKxB,UAAUwB,KAAKwrC,cAAc1sC,KAAKoC,GAAGA,EAAEwN,+BAA+B88B,cAAc7mC,YAAYnG,EAAEwtC,4BAA4Bt9B,aAAalQ,QAAQgtC,cAAc7mC,YAAYzD,EAAE+qC,aAAaztC,KAAKkQ,aAAalQ,EAAE0C,QAAQsqC,cAAc7mC,YAAYpG,EAAE2tC,aAAa1tC,EAAE0C,KAAKwN,WAAWlQ,QAAQgtC,cAAc7mC,YAAYzD,EAAEirC,WAAW3tC,KAAKkQ,WAAWlQ,QAAQgtC,cAAc7mC,YAAYzD,EAAEkrC,WAAW5tC,KAAKkQ,WAAWlQ,QAAQgtC,cAAc7mC,YAAYzD,EAAEmrC,WAAW7tC,KAAKkQ,kBAAkB88B,cAAc7mC,YAAYnG,EAAE8tC,eAAe59B,gCAAgClQ,EAAE0C,EAAE3C,UAAUyB,KAAK8rC,UAAUttC,EAAE0C,EAAE3C,KAAmFw+B,QAAQ,KAAxEjxB,OAAO,SAASoC,EAAEhN,EAAE3C,SAAS,CAACkR,OAAOvB,EAAEu6B,OAAOvnC,EAAEwnC,WAAWnqC,KAAuSy+B,QAAQ,KAA/QlxB,OAAO,SAASoC,EAAEhN,EAAE3C,SAAS6C,EAAEF,EAAEgN,EAAEq+B,UAAUrrC,EAAE,EAAE3C,GAAGL,EAAEK,EAAE2P,EAAEq+B,UAAUhuC,EAAE2C,EAAE,GAAGxC,EAAEwP,EAAEs+B,mBAAmBprC,EAAElD,GAAGO,EAAEyP,EAAEu+B,aAAarrC,EAAElD,GAAGmD,EAAE6M,EAAEw+B,WAAWtrC,EAAElD,SAAS,CAACytC,SAASvqC,EAAEwqC,SAAS1tC,EAAEqoC,gBAAgB7nC,EAAE+nC,UAAUhoC,EAAE+nC,QAAQnlC,EAAEoqC,YAAYv9B,EAAEy+B,eAAevrC,GAAG,EAAElD,GAAG,EAAEQ,EAAED,EAAE4C,MAA4iC47B,QAAQ,KAAnhCqH,SAAS,SAASp2B,OAAOhN,EAAE3C,EAAE6C,EAAElD,EAAEQ,EAAED,EAAE4C,EAAElD,EAAEmD,EAAElD,EAAE+C,EAAEuC,QAAQ9E,EAAE,UAAUiE,GAAEg7B,WAAW3vB,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACw9B,KAAK,UAAU77B,GAAE66B,QAAQ9+B,EAAEguC,cAAS,IAASruC,EAAEA,EAAE,EAAEygC,OAAO,UAAUn8B,GAAE66B,QAAQ9+B,EAAEogC,eAAU,IAAS59B,EAAEA,EAAE,IAAIyrC,OAAO,UAAUhqC,GAAE66B,QAAQ9+B,EAAEkuC,wBAAmB,IAAA5uC,EAAWA,EAAE,EAAE6uC,MAAM,UAAUlqC,GAAE66B,QAAQ9+B,EAAEouC,sBAAiB,IAAAtuC,EAAWA,EAAE,EAAEuuC,cAAc,UAAUpqC,GAAE46B,WAAW7+B,EAAEsuC,uBAAkB,IAAAzuC,EAAWA,EAAE,EAAE0uC,cAAc,UAAUtqC,GAAE46B,WAAW7+B,EAAEwuC,uBAAkB,IAAS/rC,EAAEA,EAAE,EAAEgsC,SAASnnC,GAAEo+B,SAAS1lC,EAAEyuC,UAAUC,SAASpQ,GAAGoH,SAAS1lC,EAAE2uC,WAAWC,YAAYtQ,GAAGoH,SAAS1lC,EAAE6uC,cAAcC,cAAcnF,GAAGjE,SAAS1lC,EAAE+uC,gBAAgBC,uBAAuB,UAAU/qC,GAAE+6B,YAAYh/B,EAAEivC,8BAAyB,IAAS1vC,GAAGA,EAAE2vC,oBAAoB,UAAUjrC,GAAE+6B,YAAYh/B,EAAEmvC,8BAAyB,IAASzsC,GAAGA,EAAE0sC,oBAAoB,UAAUnrC,GAAE+6B,YAAYh/B,EAAEqvC,8BAAyB,IAAA7vC,GAAYA,EAAE8vC,YAAY,UAAUrrC,GAAE+6B,YAAYh/B,EAAEuvC,kBAAa,IAAAhtC,GAAYA,EAAEitC,gBAAgB,UAAUvrC,GAAE+6B,YAAYh/B,EAAEyvC,0BAAqB,IAAS3qC,GAAGA,IAAkB,SAASlF,KAAK8lC,SAAS,SAASp2B,OAAOhN,EAAE3C,EAAE6C,EAAElD,QAAQQ,EAAE,UAAUmE,GAAEg7B,WAAW3vB,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACoJ,OAAO,UAAUzH,GAAE46B,WAAW/+B,EAAE4L,eAAU,IAAS/L,EAAEA,EAAE,EAAE8qB,KAAK,UAAUxmB,GAAE66B,QAAQh/B,EAAE2qB,aAAQ,IAAAjoB,EAAWA,EAAE,EAAEqO,OAAO,UAAU5M,GAAE66B,QAAQh/B,EAAE+Q,eAAU,IAAAvR,EAAWA,EAAE,IAAIM,EAAEsxB,MAAM,SAAS5hB,EAAEhN,EAAE3C,MAAM2P,EAAEmb,MAAM,SAASnoB,QAAQE,KAAK8M,EAAEuB,QAAQvB,EAAEmb,YAAYgb,GAAEn2B,EAAE5D,OAAOpJ,EAAEE,IAA3W,CAAgX87B,QAAQ,KAAK,SAASxuB,YAAYlQ,EAAE0C,EAAE3C,EAAE6C,EAAElD,EAAEQ,EAAED,GAAE,MAAOuB,KAAKujC,UAAU/kC,EAAEwB,KAAKwjC,WAAWtiC,EAAElB,KAAKirC,WAAW1sC,EAAEyB,KAAKsuC,SAASltC,EAAE3C,EAAE,OAAOqkC,EAAE,IAAI3C,GAAEzhC,GAAG0iC,EAAEhgC,EAAEgtC,gBAAgB,IAAIjO,GAAEzhC,GAAGokC,EAAEF,YAAY2L,aAAa,IAAIprC,GAAEi+B,EAAEhgC,EAAEisC,SAAS7uC,EAAE0C,GAAG4hC,EAAEG,QAAQ,GAAGjjC,KAAKwuC,iBAAiB,IAAIzJ,GAAE,IAAI5E,GAAEzhC,GAAGR,EAAEmoC,aAAarmC,KAAKyuC,cAAc,IAAI1J,GAAE,IAAI5E,GAAEzhC,EAAEkhC,OAAO,IAAI1hC,EAAEooC,UAAUtmC,KAAK0uC,qBAAqB,IAAI3J,GAAE,IAAI5E,GAAEzhC,EAAEkhC,OAAO,IAAI1hC,EAAEqoC,iBAAiBvmC,KAAK2uC,aAAa,IAAI5J,GAAE,IAAI5E,GAAEzhC,EAAEkhC,OAAO,IAAI1hC,EAAEsoC,SAASxmC,KAAK4uC,eAAe,IAAI7J,GAAE,IAAI5E,GAAEzhC,EAAEkhC,OAAO,IAAI1hC,EAAEuoC,WAAWzmC,KAAK6uC,YAAY,IAAI9J,GAAE,IAAI5E,GAAEzhC,EAAEkhC,OAAO,IAAI1hC,EAAE8R,OAAOhQ,KAAK8uC,YAAY,IAAI/J,GAAEjC,EAAEF,OAAO,CAAC+B,gBAAgBzB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,OAAOJ,EAAElC,GAAE90B,OAAOpN,GAAGkkC,YAAY2L,aAAa,IAAIprC,GAAE2/B,EAAEE,eAAe,qBAAqB5hC,EAAEisC,SAAS7uC,EAAE0C,GAAGlB,KAAKwuC,iBAAiB,IAAIzJ,GAAEjC,EAAEE,eAAe,yBAAyB9kC,EAAEmoC,aAAarmC,KAAKyuC,cAAc,IAAI1J,GAAEjC,EAAEE,eAAe,wBAAwB9kC,EAAEooC,UAAUtmC,KAAK0uC,qBAAqB,IAAI3J,GAAEjC,EAAEE,eAAe,6BAA6B9kC,EAAEqoC,iBAAiBvmC,KAAK2uC,aAAa,IAAI5J,GAAEjC,EAAEE,eAAe,qBAAqB9kC,EAAEsoC,SAASxmC,KAAK4uC,eAAe,IAAI7J,GAAEjC,EAAEE,eAAe,mBAAmB9kC,EAAEuoC,WAAWzmC,KAAK6uC,YAAY,IAAI9J,GAAEjC,EAAEE,eAAe,oBAAoB9kC,EAAE8R,OAAOhQ,KAAK8uC,YAAY,IAAI/J,GAAEjC,EAAEE,eAAe,oBAAoB,CAAC2B,gBAAgBzB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU6L,OAAO3tC,EAAEssC,cAAc1tC,KAAK8rC,oBAAoB/N,EAAE7vB,EAAE8gC,yBAAyB,CAAC9H,EAAEpE,EAAEuC,IAAIrlC,KAAKivC,mBAAmB/H,EAAEpE,EAAEuC,EAAEn3B,EAAEy+B,eAAezF,GAAG,EAAE7B,GAAG,YAAY,IAAItH,EAAEsF,UAAU30B,OAAOlQ,EAAE0C,EAAE3C,SAAS6C,EAAE5C,EAAEwB,KAAKusC,UAAU/tC,EAAE,EAAED,GAAGL,EAAEK,EAAEyB,KAAKusC,UAAUhuC,EAAEC,EAAE,GAAGE,EAAEsB,KAAKwsC,mBAAmBprC,EAAElD,GAAGO,EAAEuB,KAAK0sC,WAAWtrC,EAAElD,GAAGmD,EAAErB,KAAKysC,aAAarrC,EAAElD,GAAGC,EAAE6B,KAAK+uC,OAAOt/B,OAAO84B,GAAG2G,MAAMxwC,EAAED,EAAE4C,WAAWrB,KAAKsK,OAAO9L,EAAE0C,EAAE3C,EAAE6C,EAAElD,EAAEQ,EAAED,EAAE4C,EAAElD,GAAGuQ,OAAOlQ,EAAE0C,EAAE3C,EAAE6C,EAAElD,EAAEQ,EAAED,EAAE4C,EAAElD,SAASmD,EAAEJ,EAAElB,KAAKusC,UAAUrrC,EAAE3C,EAAEC,GAAGJ,EAAE4B,KAAKmvC,eAAe/tC,EAAEE,EAAEpD,GAAGiD,EAAEnB,KAAKovC,YAAYhuC,EAAEE,EAAEpD,GAAGwF,EAAE1D,KAAKqvC,wBAAwBnuC,GAAG,GAAG/C,SAAS0+B,GAAGvyB,OAAOlM,EAAE+C,EAAEzC,EAAED,EAAEiF,EAAErC,GAAGqN,UAAUlQ,EAAE0C,EAAE3C,UAAU,EAAEyB,KAAK6uC,YAAYxL,OAAO7kC,EAAE0C,EAAE3C,GAAGmQ,eAAelQ,EAAE0C,EAAE3C,UAAUyB,KAAKwuC,iBAAiBnL,OAAO7kC,EAAE0C,EAAE3C,GAAGmQ,YAAYlQ,EAAE0C,EAAE3C,UAAUyB,KAAKyuC,cAAcpL,OAAO7kC,EAAE0C,EAAE3C,GAAGmQ,mBAAmBlQ,EAAE0C,UAAUlB,KAAK0uC,qBAAqBrL,OAAO7kC,EAAE,EAAE0C,GAAGwN,WAAWlQ,EAAE0C,UAAUlB,KAAK2uC,aAAatL,OAAO7kC,EAAE,EAAE0C,GAAGwN,aAAalQ,EAAE0C,UAAUlB,KAAK4uC,eAAevL,OAAO7kC,EAAE,EAAE0C,GAAGwN,eAAelQ,EAAE0C,EAAE3C,EAAE6C,EAAElD,SAASQ,EAAE6pC,GAAG2G,MAAM3wC,EAAE6C,EAAElD,UAAU6+B,GAAGjxB,OAAO9L,KAAK+uC,OAAOt/B,OAAO/Q,GAAGsB,KAAK+uC,OAAOtG,OAAO/pC,GAAGsB,KAAK+uC,OAAOrG,WAAWhqC,IAAIgQ,oBAAoBlQ,EAAE0C,SAAS3C,EAAEyB,KAAK8rC,UAAUttC,SAAS,CAAC0P,EAAE9M,EAAElD,SAASQ,EAAEH,WAAWG,EAAEwF,GAAE,IAAIxF,KAAK,GAAGA,EAAEA,EAAE,EAAEA,EAAEA,EAAEA,EAAE,GAAGA,GAAGwC,EAAEgN,EAAE9M,EAAElD,GAAGQ,EAAE,EAAE,KAAK4/B,GAAEG,KAAK/vB,mBAAmBlQ,EAAE0C,EAAE3C,EAAE6C,OAAOlD,EAAE8B,KAAKuuC,aAAalL,OAAO7kC,EAAE0C,EAAE3C,MAAM6C,EAAE,OAAO1C,EAAEsB,KAAKsvC,kBAAkBluC,EAAEsnC,WAAWlqC,EAAED,GAAGE,EAAEuB,KAAKqvC,wBAAwBnuC,GAAGG,EAAED,EAAEqnC,UAAUh5B,OAAO/Q,EAAED,MAAM4C,EAAE,EAAE,EAAEA,EAAEA,SAASnD,EAAEgG,GAAEhG,MAAM,IAAIA,EAAE8B,KAAKuvC,WAAWrxC,EAAEgD,EAAElB,KAAKwjC,YAAYtlC,EAAEgG,GAAEhG,MAAM,IAAIA,EAAEwQ,kBAAkBlQ,EAAE0C,EAAE3C,MAAM,IAAAC,SAAa,QAAQ4C,EAAEpB,KAAK8uC,YAAYzL,OAAO,KAAKniC,EAAE,EAAE,KAAK3C,UAAU6C,EAAE,EAAE5C,EAAE4C,EAAE5C,EAAE,EAAE4C,EAAEsN,wBAAwBlQ,YAAYA,EAAE,KAAKwB,KAAKsuC,SAASrB,cAAcjtC,KAAKsuC,SAASnB,cAAcz+B,WAAWlQ,EAAE0C,SAAS3C,EAAE2C,EAAEqH,KAAK4wB,MAAMn5B,KAAKsuC,SAAS5P,KAAK1+B,KAAKwjC,mBAAmBhlC,EAAE0+B,GAAGpN,MAAM9vB,KAAKsuC,SAAShB,SAAS9uC,EAAEwB,KAAKirC,WAAW1sC,GAAK2+B,GAAGpN,MAAM9vB,KAAKsuC,SAASd,YAAYhvC,EAAED,IAAI,SAASmQ,YAAYlQ,EAAE0C,EAAE3C,QAAQixC,YAAYtuC,EAAElB,KAAKsuC,SAAS/vC,EAAEyB,KAAKwjC,WAAWjlC,EAAEkxC,MAAM1C,OAAO,EAAE/sC,KAAKujC,UAAUhlC,EAAEkxC,MAAM5C,QAAQ,EAAE7sC,KAAKkrC,YAAY3iC,KAAK4wB,MAAM,GAAGn5B,KAAKujC,WAAWvjC,KAAKirC,WAAW1iC,KAAK4wB,MAAM56B,EAAEkxC,MAAMzQ,OAAOh/B,KAAKwjC,YAAYxjC,KAAK0vC,QAAQ,IAAIC,GAAG3vC,KAAKujC,UAAUvjC,KAAKwjC,WAAWxjC,KAAKirC,WAAW1sC,EAAEkxC,MAAMlxC,EAAEqxC,QAAQpxC,EAAED,EAAEsxC,oBAAoB7vC,KAAK8vC,aAAahT,GAAGgN,SAAS,CAAC,CAAC57B,EAAE6vB,EAAE+E,EAAE1hC,IAAI8M,EAAE6hC,gCAAgChS,EAAE+E,EAAE1hC,KAAKsN,WAAWlQ,SAAS0C,EAAEqH,KAAKD,IAAI9J,EAAEkgC,KAAK1+B,KAAKsuC,SAASmB,MAAM/Q,MAAMngC,EAAEgK,KAAK+M,IAAI9W,EAAE2gC,KAAKn/B,KAAKsuC,SAASmB,MAAM/Q,KAAK1+B,KAAKsuC,SAASmB,MAAMzQ,QAAQ59B,EAAEmH,KAAK4wB,MAAMj4B,EAAElB,KAAKwjC,iBAAiBrK,SAASj4B,GAAGlB,KAAKwjC,kBAAkBtlC,EAAEw+B,GAAEmD,UAAUrhC,EAAE8lB,KAAK5lB,EAAEg+B,GAAEoD,UAAUthC,EAAE8lB,KAAK7lB,EAAE,IAAIuxC,GAAGhwC,KAAKujC,UAAUvjC,KAAKwjC,WAAWxjC,KAAKkrC,YAAYlrC,KAAKirC,WAAW7pC,EAAEpB,KAAK0vC,QAAQxxC,EAAEQ,GAAG,IAAI,YAAYq/B,EAAE,EAAEA,EAAEv/B,EAAE0gC,cAAcnB,GAAG,EAAE,OAAO+E,EAAEtkC,EAAEygC,SAASlB,GAAGkS,kBAAkB/hC,EAAE,EAAEA,EAAE,EAAEA,GAAG,UAAUg5B,EAAE,EAAEA,EAAE,EAAEA,GAAG,UAAU7B,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,OAAOhkC,EAAEnD,EAAEgQ,EAAE/P,EAAE2kC,EAAEoE,EAAE5lC,EAAE5C,EAAE2mC,EAAEjnC,EAAEK,EAAEyxC,YAAY7uC,EAAEC,GAAGH,EAAE1C,EAAE0xC,YAAY9uC,EAAEC,GAAGoC,EAAEjF,EAAE+tC,mBAAmBnrC,EAAEC,GAAG1C,EAAEH,EAAEiuC,WAAWrrC,EAAEC,GAAGqC,EAAElF,EAAEguC,aAAaprC,EAAEC,GAAGC,EAAE9C,EAAEkuC,eAAetrC,EAAEC,GAAGmO,OAAO9N,EAAE3B,KAAK0vC,QAAQplC,OAAOjJ,EAAElD,EAAEmD,EAAElD,EAAE+C,EAAEuC,EAAE9E,EAAE+E,EAAEpC,QAAQiuC,YAAYY,SAAS/uC,EAAElD,EAAEmD,GAAG,IAAIK,MAAM+M,KAAKlQ,OAAO0C,QAAQ3C,EAAEgK,KAAKD,IAAI9J,EAAEkgC,KAAK1+B,KAAKsuC,SAASmB,MAAM/Q,MAAMt9B,EAAEmH,KAAK+M,IAAI9W,EAAE2gC,KAAKn/B,KAAKsuC,SAASmB,MAAM/Q,KAAK1+B,KAAKsuC,SAASmB,MAAMzQ,QAAQ9gC,EAAEqK,KAAK4wB,MAAM56B,EAAEyB,KAAKwjC,YAAY9kC,EAAE6J,KAAK4wB,SAAS56B,GAAGyB,KAAKwjC,YAAY/kC,EAAEi+B,GAAEmD,UAAUrhC,EAAE8lB,KAAKjjB,EAAEq7B,GAAEoD,UAAUthC,EAAE8lB,KAAKnmB,EAAE,IAAI6xC,GAAGhwC,KAAKujC,UAAUvjC,KAAKwjC,WAAWxjC,KAAKkrC,YAAYlrC,KAAKirC,WAAW/sC,EAAE8B,KAAK0vC,QAAQjxC,EAAE4C,GAAG,IAAI,MAAM2qC,kCAAkClJ,EAAE,EAAEA,EAAE9iC,KAAKkrC,YAAYpI,GAAG,EAAE,GAAGmJ,aAAanJ,WAAWuC,EAAE,EAAEA,EAAErlC,KAAKkrC,YAAY7F,GAAG,EAAE,KAAK/jC,EAAE9C,EAAEghC,mBAAmBhhC,EAAE0gC,cAAc,WAAW9gC,EAAEM,EAAE,EAAEN,GAAG,EAAEA,GAAG,EAAE,GAAG8tC,aAAa9tC,EAAEinC,WAAWa,EAAElmC,KAAKwjC,WAAW,EAAE0C,GAAG,EAAEA,GAAG,EAAE,OAAO/kC,KAAK/C,GAAG4B,KAAKwjC,WAAW0C,EAAExiC,EAAE,GAAGvC,EAAEvC,EAAEJ,EAAE8gC,gBAAgBn+B,KAAKm+B,gBAAgBh+B,EAAE2uC,aAAarxC,MAAMJ,EAAEghC,mBAAmB5gC,UAAU+E,EAAEuiC,EAAElmC,KAAKwjC,aAAa2I,WAAWxoC,WAAWuK,EAAE,EAAEA,EAAElO,KAAKujC,UAAUr1B,GAAG,EAAE,OAAOxN,EAAEjC,EAAEqkC,EAAE9iC,KAAKujC,UAAUr1B,EAAEmiC,EAAE,GAAG3vC,EAAE+F,EAAEyH,EAAElO,KAAKujC,YAAY6I,WAAW3lC,WAAWu3B,EAAE,EAAEA,EAAEh+B,KAAKujC,UAAUvF,GAAG,EAAE,OAAOoJ,EAAE/lC,EAAEgkC,EAAErlC,KAAKujC,UAAUvF,EAAEoD,EAAE,GAAGgG,EAAEkJ,EAAEtS,EAAEh+B,KAAKujC,YAAY8I,WAAWiE,OAAOC,EAAE,UAAUvwC,KAAK8vC,aAAa3xC,EAAEuC,EAAES,EAAEimC,UAAK,IAAAlmC,EAAWA,EAAElB,KAAKsuC,SAASkC,gBAAgBD,EAAEjgC,OAAOguB,GAAEG,KAAK,QAAQz+B,KAAKsuC,SAASmC,qBAAqBzwC,KAAKsuC,SAASoC,eAAejR,cAAc4Q,EAAE3sC,EAAE09B,EAAEmP,SAASjE,eCbh6rB,IAAIqE,IDa8+tBxT,QAAQ,KAA5jCmH,SAAS,SAASp2B,OAAOhN,EAAE3C,EAAE6C,EAAElD,EAAEQ,EAAED,EAAE4C,EAAElD,EAAEmD,EAAElD,EAAE+C,QAAQuC,EAAE,UAAUb,GAAEg7B,WAAW3vB,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAAC0vC,WAAWxT,GAAGkH,SAAS5gC,EAAEktC,YAAYnB,MAAMxS,GAAGqH,SAAS5gC,EAAE+rC,OAAOG,QAAQvS,GAAGiH,SAAS5gC,EAAEksC,SAASY,aAAalS,GAAEgG,SAAS5gC,EAAEmtC,eAAeH,aAAapS,GAAEgG,SAAS5gC,EAAEotC,eAAeC,oBAAoB,UAAUluC,GAAE66B,QAAQh6B,EAAEstC,8BAAyB,IAASzyC,EAAEA,EAAE,EAAE0yC,qBAAqB,UAAUpuC,GAAE66B,QAAQh6B,EAAEwtC,+BAA0B,IAAA9vC,EAAWA,EAAE,EAAEqvC,SAAS,UAAU5tC,GAAE66B,QAAQh6B,EAAEytC,kBAAa,IAAAjzC,EAAWA,EAAE,EAAEkzC,qBAAqB,UAAUvuC,GAAE+6B,YAAYl6B,EAAE2tC,+BAA0B,IAAA3yC,GAAYA,EAAE4yC,gBAAgB,UAAUzuC,GAAE+6B,YAAYl6B,EAAE6tC,yBAAoB,IAAA9yC,GAAYA,EAAE+yC,kBAAkB,UAAU3uC,GAAE+6B,YAAYl6B,EAAE+tC,4BAAuB,IAASpwC,GAAGA,EAAEqwC,iBAAiB,UAAU7uC,GAAE+6B,YAAYl6B,EAAEiuC,0BAAqB,IAAAxzC,GAAYA,EAAEyzC,gBAAgB,UAAU/uC,GAAE+6B,YAAYl6B,EAAEmuC,0BAAqB,IAASvwC,GAAGA,EAAEwwC,mBAAmB,UAAUjvC,GAAE+6B,YAAYl6B,EAAEquC,6BAAwB,IAAS3zC,GAAGA,EAAEyxC,mBAAmB,UAAUhtC,GAAE+6B,YAAYl6B,EAAEsuC,6BAAwB,IAAS7wC,GAAGA,KAA0oBi8B,QAAQ,KAAlnBkH,SAAS,SAASp2B,OAAOhN,QAAQ3C,EAAE,UAAUsE,GAAEg7B,WAAW3vB,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAAC+wC,WAAWpvC,GAAEs7B,QAAQ5/B,EAAE0zC,WAAWpvC,GAAEg7B,oBAAoBE,EAAE+E,EAAE1hC,QAAQ,CAACulC,SAAS,UAAU9jC,GAAE66B,QAAQM,EAAE2I,iBAAY,IAAS5I,EAAEA,EAAE,EAAEmU,OAAO,UAAUrvC,GAAE66B,QAAQM,EAAEkU,eAAU,IAAApP,EAAWA,EAAE,EAAErhB,MAAM,UAAU5e,GAAE66B,QAAQM,EAAEvc,cAAS,IAAArgB,EAAWA,EAAE,MAAMwvC,WAAW/tC,GAAEo7B,QAAQ1/B,EAAEqyC,oBAAoB7S,IAAiBmJ,EAAEpE,EAAE1hC,WAAoL,UAAUyB,GAAEg7B,WAAWG,UAAK,IAASD,EAAEA,EAAE,GAArN,CAACoU,QAAQ,UAAUtvC,GAAE66B,QAAQ0U,EAAED,gBAAW,IAASjL,EAAEA,EAAE,EAAEmL,WAAW,UAAUxvC,GAAE66B,QAAQ0U,EAAEC,mBAAc,IAAAvP,EAAWA,EAAE,EAAEwP,KAAK,UAAUzvC,GAAE66B,QAAQ0U,EAAEE,aAAQ,IAAAlxC,EAAWA,EAAE,SAA0Xi8B,QAAQ,KAA/SiH,SAAS,SAASp2B,OAAOhN,QAAQ3C,EAAE,UAAUsE,GAAEg7B,WAAW3vB,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACmlC,YAAYpgC,GAAEq+B,SAAS/lC,EAAE8nC,aAAaC,SAASrgC,GAAEq+B,SAAS/lC,EAAE+nC,UAAUC,gBAAgBtgC,GAAEq+B,SAAS/lC,EAAEgoC,iBAAiBC,QAAQvgC,GAAEq+B,SAAS/lC,EAAEioC,SAASC,UAAUxgC,GAAEq+B,SAAS/lC,EAAEkoC,WAAWz2B,MAAM/J,GAAEq+B,SAAS/lC,EAAEyR,SCX/6vB,IAAIuiC,GAAoB,IAAI/hB,YAAY,QAAS,CAAEgiB,WAAW,EAAMC,OAAO,IAE3EF,GAAkB9hB,SAElB,IAAIiiB,GAAuB,KAQ3B,YAA4BC,EAAKj2B,UACtB61B,GAAkB9hB,QAPI,OAAzBiiB,IAAiCA,GAAqBE,SAAWjC,GAAKkC,OAAOD,YACtD,IAAI1hC,WAAWy/B,GAAKkC,OAAOD,SAE/CF,IAI2CrwB,SAASswB,EAAKA,EAAMj2B,IAG1E,MAAMo2B,GAAa,IAAIruB,YAAY,GAE7BsuB,GAAe,IAAIC,cAAcF,GAAWF,QAElD,IAAIK,GAAuB,KAC3B,qBACiC,OAAzBA,IAAiCA,GAAqBL,SAAWjC,GAAKkC,OAAOD,YACtD,IAAInc,WAAWka,GAAKkC,OAAOD,SAE/CK,GAGX,IAAIC,GAAyB,KAC7B,qBACmC,OAA3BA,IAAmCA,GAAuBN,SAAWjC,GAAKkC,OAAOD,YACxD,IAAIO,aAAaxC,GAAKkC,OAAOD,SAEnDM,GAoCX,IAAIE,GAAkB,EAEtB,YAA6BC,EAAKC,SACxBX,EAAMW,EAAoB,EAAbD,EAAIx0C,oBACHiR,IAAIujC,EAAKV,EAAM,MACjBU,EAAIx0C,OACf8zC,EAsEX,IAAIY,GAAwB,KAQ5B,YAA4BF,EAAKC,SACvBX,EAAMW,EAAoB,EAAbD,EAAIx0C,eAPO,OAA1B00C,IAAkCA,GAAsBX,SAAWjC,GAAKkC,OAAOD,YACvD,IAAInuB,YAAYksB,GAAKkC,OAAOD,SAEjDW,IAKYzjC,IAAIujC,EAAKV,EAAM,MAChBU,EAAIx0C,OACf8zC,EAmBJ,YAA0Ba,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAO1kC,EAAQy4B,OACrHkM,EAAOC,GAAoBb,EAAO7C,GAAK2D,mBACvCC,EAAOnB,GACPoB,EAAOH,GAAoBZ,EAAO9C,GAAK2D,mBACvCG,EAAOrB,GACPsB,EAAOL,GAAoBX,EAAO/C,GAAK2D,mBACvCK,EAAOvB,GACPwB,EAAOP,GAAoBV,EAAOhD,GAAK2D,mBACvCO,EAAOzB,GACP0B,EAAOT,GAAoBT,EAAOjD,GAAK2D,mBACvCS,EAAO3B,GACP4B,EAAOX,GAAoBR,EAAOlD,GAAK2D,mBACvCW,EAAO7B,GACP8B,EAAOb,GAAoBP,EAAOnD,GAAK2D,mBACvCa,EAAO/B,GACPgC,EAAOf,GAAoBN,EAAOpD,GAAK2D,mBACvCe,EAAOjC,GACPkC,EAAOjB,GAAoBL,EAAOrD,GAAK2D,mBACvCiB,EAAOnC,GACPoC,EAAOnB,GAAoBJ,EAAOtD,GAAK2D,mBACvCmB,EAAOrC,GACPsC,EAAQrB,GAAoBH,EAAOvD,GAAK2D,mBACxCqB,EAAQvC,GACRwC,EAAQvB,GAAoBF,EAAOxD,GAAK2D,mBACxCuB,EAAQzC,GACR0C,EAAQzB,GAAoB5kC,EAAQkhC,GAAK2D,mBACzCyB,EAAQ3C,GACR4C,EAAQC,GAAmB/N,EAAOyI,GAAK2D,mBACvC4B,EAAQ9C,GACRtrC,EAAM6oC,GAAKwF,iBAAiB/B,EAAMG,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOE,UAClME,GAAcC,OAAOvuC,GA+BzB,YAAyBm4B,EAAMqW,EAASC,EAAcC,EAASC,EAAcC,EAASC,EAAcC,EAASC,EAAcC,EAASC,EAAcC,EAASC,MACjJ,GAAKhX,QACZiX,EAAOpE,GAAW,GAClBqE,EAAQrE,GAAW,OACrB0B,EAAOH,GAAoBkC,EAAc5F,GAAK2D,mBAC9CG,EAAOrB,GACPsB,EAAOL,GAAoBoC,EAAc9F,GAAK2D,mBAC9CK,EAAOvB,GACPwB,EAAOP,GAAoBsC,EAAchG,GAAK2D,mBAC9CO,EAAOzB,GACP0B,EAAOT,GAAoBwC,EAAclG,GAAK2D,mBAC9CS,EAAO3B,GACP4B,EAAOX,GAAoB0C,EAAcpG,GAAK2D,mBAC9CW,EAAO7B,GACP8B,EAAOb,GAAoB4C,EAActG,GAAK2D,mBAC9Ca,EAAO/B,GACPtrC,EAAM6oC,GAAKyG,gBAAgBF,EAAMC,EAAOb,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,UAC7JkC,GAAQhB,OAAOvuC,GAG1B,YAAsBwvC,EAAUC,qBACFA,SAChB,IAAI7lB,MAAM,wBAAwB6lB,EAAMzxC,eAE3CwxC,EAAS3E,IAgCb,YAAqBxM,EAAYuJ,EAAS8H,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,aAE7FC,EAAStH,GAAKuH,wCACP/R,EAAYiQ,OACZ1G,EAAS2H,OACjBc,YAAYF,EAAQ9R,EAAWwM,IAAKjD,EAAQiD,IAAK6E,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,OAC5GI,EAAKC,KAAkBJ,EAAS,EAAI,GACpCK,EAAKD,KAAkBJ,EAAS,EAAI,GACpCM,GAzBkB5F,EAyBQyF,EAzBH17B,EAyBO47B,EAxB/BD,KAAkBh2B,SAASswB,EAAM,EAAGA,EAAM,EAAIj2B,IAwBX1Z,kBACjCw1C,gBAAgBJ,EAAS,EAALE,GAClBC,aAEFL,gCAAgC,IA7B7C,IAA8BvF,EAAKj2B,EA8C5B,YAAuBgzB,EAAS8H,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,aAEnFC,EAAStH,GAAKuH,wCACPxI,EAAS2H,OACjBoB,cAAcR,EAAQvI,EAAQiD,IAAK6E,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,OAC9FI,EAAKC,KAAkBJ,EAAS,EAAI,GACpCK,EAAKD,KAAkBJ,EAAS,EAAI,GACpCM,GArSkB5F,EAqSQyF,EArSH17B,EAqSO47B,EApS/BI,KAAoBr2B,SAASswB,EAAM,EAAGA,EAAM,EAAIj2B,IAoSb1Z,kBACjCw1C,gBAAgBJ,EAAS,EAALE,GAClBC,aAEFL,gCAAgC,IAzS7C,IAA8BvF,EAAKj2B,EAyY5B,uBAEWi2B,SACJjrC,EAAMmE,OAAOC,OAAOsqC,GAAcryC,oBACpC4uC,IAAMA,EAEHjrC,EAGXgH,2BACUikC,EAAM3yC,KAAK2yC,gBACZA,IAAM,EAEJA,EAGXjkC,aACUikC,EAAM3yC,KAAK24C,wBACZC,yBAAyBjG,IAqB/B,uBAEWA,SACJjrC,EAAMmE,OAAOC,OAAOurC,GAAQtzC,oBAC9B4uC,IAAMA,EAEHjrC,EAGXgH,2BACUikC,EAAM3yC,KAAK2yC,gBACZA,IAAM,EAEJA,EAGXjkC,aACUikC,EAAM3yC,KAAK24C,wBACZE,mBAAmBlG,IA0DhCmG,kBAAoBvvB,QACK,IAAVA,MACC,IAAIwvB,IAAI,uBAAwBC,EAAYrxC,YAElDsxC,EAAU,KACF,MACNC,IAAIC,iBAAmB,SAASC,EAAMC,SACpC,IAAI3nB,MAAM4nB,GAAmBF,EAAMC,MAGxB,iBAAV9vB,GAA0C,mBAAZgwB,SAA0BhwB,aAAiBgwB,SAA4B,mBAARR,KAAsBxvB,aAAiBwvB,SACnIS,MAAMjwB,UAKZ+tB,SAAEA,SAAUmC,SA/CtBX,eAAoBW,EAAQR,MACA,mBAAbS,UAA2BD,aAAkBC,SAAU,IACd,mBAArCC,YAAYC,sCAEFD,YAAYC,qBAAqBH,EAAQR,SAEjD/3C,MACqC,oBAAtCu4C,EAAOI,QAAQhqC,IAAI,sBAIb3O,UAHEma,KAAK,oMAAqMna,SAQxNg4B,QAAcugB,EAAOK,2BACdH,YAAYI,YAAY7gB,EAAO+f,GAEzC,OACG3B,QAAiBqC,YAAYI,YAAYN,EAAQR,UAEnD3B,aAAoBqC,YAAYK,SACzB,CAAE1C,SAAAA,EAAUmC,OAAAA,GAGZnC,GAqBoB2C,OAAW1wB,EAAO0vB,aAE9C3B,EAAStjC,WACXkmC,uBAAyBT,EAEvB9I,GCxjBX,OAAe,wCCCfwJ,GAUA,SAAetyC,YACNA,GAAQ,IAENuyC,QA4EX,SAAsBvyC,OAChBwyC,EAAO,GACPC,EAAU,UAEPzyC,EAAK0yC,iBA8DS97C,MACF,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAa+7C,YAAa,IAAIA,KAAK/7C,MACnCsD,MAAMC,QAAQvD,UAAWg8C,EAAWh8C,EAAGi8C,MACvCj8C,aAAaitC,WAAY,IAAIA,IAAI+O,EAAW14C,MAAMsP,KAAK5S,GAAIi8C,OAC3Dj8C,aAAasb,WAAY,IAAIA,IAAI0gC,EAAW14C,MAAMsP,KAAK5S,GAAIi8C,QAC3DC,EAAK,WAGAl5C,OAFJ3C,KAAKL,KACFK,KAAK67C,GACCl8C,EAAG,KACXm8C,EAAMn8C,EAAEgD,MACO,iBAARm5C,GAA4B,OAARA,IAC1Bn5C,GAAKm5C,UACCA,aAAeJ,OACrB/4C,GAAK,IAAI+4C,KAAKI,WACRA,aAAelP,MACrBjqC,GAAK,IAAIiqC,IAAI+O,EAAW14C,MAAMsP,KAAKupC,GAAMF,YACnCE,aAAe7gC,MACrBtY,GAAK,IAAIsY,IAAI0gC,EAAW14C,MAAMsP,KAAKupC,GAAMF,YACnCG,YAAYC,OAAOF,KACzBn5C,GAAKs5C,GAAWH,OACd,KACDr8C,EAAI87C,EAAKl6C,QAAQy6C,KAEhBn5C,QADDlD,EACM+7C,EAAQ/7C,GAERm8C,EAAWE,aAIpBnsC,QACGA,MACDksC,cApEOl8C,MACG,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAa+7C,YAAa,IAAIA,KAAK/7C,MACnCsD,MAAMC,QAAQvD,UAAWg8C,EAAWh8C,EAAGu8C,MACvCv8C,aAAaitC,WAAY,IAAIA,IAAI+O,EAAW14C,MAAMsP,KAAK5S,GAAIu8C,OAC3Dv8C,aAAasb,WAAY,IAAIA,IAAI0gC,EAAW14C,MAAMsP,KAAK5S,GAAIu8C,QAC3DL,EAAK,WAGAl5C,OAFJ3C,KAAKL,KACFK,KAAK67C,GACCl8C,MAC6B,IAArCoN,OAAOgQ,eAAenW,KAAKjH,EAAGgD,QAC9Bm5C,EAAMn8C,EAAEgD,MACO,iBAARm5C,GAA4B,OAARA,IAC1Bn5C,GAAKm5C,UACCA,aAAeJ,OACrB/4C,GAAK,IAAI+4C,KAAKI,WACRA,aAAelP,MACrBjqC,GAAK,IAAIiqC,IAAI+O,EAAW14C,MAAMsP,KAAKupC,GAAMI,YACnCJ,aAAe7gC,MACrBtY,GAAK,IAAIsY,IAAI0gC,EAAW14C,MAAMsP,KAAKupC,GAAMI,YACnCH,YAAYC,OAAOF,KACzBn5C,GAAKs5C,GAAWH,OACd,KACDr8C,EAAI87C,EAAKl6C,QAAQy6C,KAEhBn5C,QADDlD,EACM+7C,EAAQ/7C,GAERy8C,EAAMJ,aAIfnsC,QACGA,MACDksC,cAzDYt5C,EAAGqO,WAClB2H,EAAOxL,OAAOwL,KAAKhW,GACnB45C,EAAK,IAAIl5C,MAAMsV,EAAKxY,QACfN,EAAI,EAAGA,EAAI8Y,EAAKxY,OAAQN,IAAK,KAChCkD,EAAI4V,EAAK9Y,GACTq8C,EAAMv5C,EAAEI,MACO,iBAARm5C,GAA4B,OAARA,IAC1Bn5C,GAAKm5C,UACCA,aAAeJ,OACrB/4C,GAAK,IAAI+4C,KAAKI,WACRC,YAAYC,OAAOF,KACzBn5C,GAAKs5C,GAAWH,OACd,KACD1xC,EAAQmxC,EAAKl6C,QAAQy6C,KAEpBn5C,QADDyH,EACMoxC,EAAQpxC,GAERwG,EAAGkrC,WAIVK,GAvGgBC,CAAYrzC,GAC9BA,EAAK0yC,iBAgDS97C,MACF,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAa+7C,YAAa,IAAIA,KAAK/7C,MACnCsD,MAAMC,QAAQvD,UAAWg8C,EAAWh8C,EAAGi8C,MACvCj8C,aAAaitC,WAAY,IAAIA,IAAI+O,EAAW14C,MAAMsP,KAAK5S,GAAIi8C,OAC3Dj8C,aAAasb,WAAY,IAAIA,IAAI0gC,EAAW14C,MAAMsP,KAAK5S,GAAIi8C,QAC3DC,EAAK,WACAl5C,KAAKhD,EAAG,KACXm8C,EAAMn8C,EAAEgD,GACO,iBAARm5C,GAA4B,OAARA,IAC1Bn5C,GAAKm5C,EACCA,aAAeJ,OACrB/4C,GAAK,IAAI+4C,KAAKI,GACRA,aAAelP,MACrBjqC,GAAK,IAAIiqC,IAAI+O,EAAW14C,MAAMsP,KAAKupC,GAAMF,IACnCE,aAAe7gC,MACrBtY,GAAK,IAAIsY,IAAI0gC,EAAW14C,MAAMsP,KAAKupC,GAAMF,IACnCG,YAAYC,OAAOF,KACzBn5C,GAAKs5C,GAAWH,KAEhBn5C,GAAKi5C,EAAWE,UAGhBD,cAlDOl8C,MACG,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAa+7C,YAAa,IAAIA,KAAK/7C,MACnCsD,MAAMC,QAAQvD,UAAWg8C,EAAWh8C,EAAGu8C,MACvCv8C,aAAaitC,WAAY,IAAIA,IAAI+O,EAAW14C,MAAMsP,KAAK5S,GAAIu8C,OAC3Dv8C,aAAasb,WAAY,IAAIA,IAAI0gC,EAAW14C,MAAMsP,KAAK5S,GAAIu8C,QAC3DL,EAAK,WACAl5C,KAAKhD,MAC6B,IAArCoN,OAAOgQ,eAAenW,KAAKjH,EAAGgD,QAC9Bm5C,EAAMn8C,EAAEgD,GACO,iBAARm5C,GAA4B,OAARA,IAC1Bn5C,GAAKm5C,EACCA,aAAeJ,OACrB/4C,GAAK,IAAI+4C,KAAKI,GACRA,aAAelP,MACrBjqC,GAAK,IAAIiqC,IAAI+O,EAAW14C,MAAMsP,KAAKupC,GAAMI,IACnCJ,aAAe7gC,MACrBtY,GAAK,IAAIsY,IAAI0gC,EAAW14C,MAAMsP,KAAKupC,GAAMI,IACnCH,YAAYC,OAAOF,KACzBn5C,GAAKs5C,GAAWH,KAEhBn5C,GAAKu5C,EAAMJ,UAGXD,cA3CYt5C,EAAGqO,WAClB2H,EAAOxL,OAAOwL,KAAKhW,GACnB45C,EAAK,IAAIl5C,MAAMsV,EAAKxY,QACfN,EAAI,EAAGA,EAAI8Y,EAAKxY,OAAQN,IAAK,KAChCkD,EAAI4V,EAAK9Y,GACTq8C,EAAMv5C,EAAEI,GACO,iBAARm5C,GAA4B,OAARA,IAC1Bn5C,GAAKm5C,EACCA,aAAeJ,OACrB/4C,GAAK,IAAI+4C,KAAKI,GACRC,YAAYC,OAAOF,KACzBn5C,GAAKs5C,GAAWH,KAEhBn5C,GAAKiO,EAAGkrC,UAGRK,IA9BX,YAAqBL,UACfA,aAAeO,OACVA,OAAO9pC,KAAKupC,GAGd,IAAIA,EAAI/6C,YAAY+6C,EAAIhI,OAAO5vC,QAAS43C,EAAIQ,WAAYR,EAAI/7C,wBCPrEgN,OAAOuC,eAAeitC,GAAS,aAAc,CAAEj5C,OAAO,4BAC5B,qBAC1B,SAAyBsY,KACT4gC,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,uBACA,qBACA,0BACA,yBACA,+BACA,iCACA,4BACA,0BACA,iCACA,yBACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,gCAEQA,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,wBAEQA,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,mCAEQA,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,gCAEQA,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,iCAEQA,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,cAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cA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A,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,C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CA,gCAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,iBAAkB,CACnC,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,2BCpkBRzvC,OAAOuC,eAAeszC,GAAS,aAAc,CAAEt/C,OAAO,mCACrB,EACjC,MAAMu/C,GAASpwC,6BACf,SAAgC4I,EAASO,SAC/B+gC,EAAYkG,GAAOznC,UAAU5S,UAAK,EAAW6S,GAC7CqhC,EAAamG,GAAOtnC,WAAW/S,UAAK,EAAWoT,GAC/Cw3C,EAAkBvQ,GAAO3qC,WAAW,CACtC,CACI9X,KAAM,SACNiL,KAAMw3C,GAAOhG,IAAIF,EAAU,qBAC3BxkC,eAAmBrH,EAAIiC,SAAoF,UAAnD,UAAVpO,EAAE,UAAuB,IAAPmM,OAAgB,EAASA,EAAGysC,iBAA8B,IAAPxqC,EAAgBA,EAAM,KAE7I,CACI3S,KAAM,OACNiL,KAAMw3C,GAAOvsC,SAA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,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,0BC1WRzvC,OAAOuC,eAAeszC,GAAS,aAAc,CAAEt/C,OAAO,mCACrB,EACjC,MAAMu/C,GAASpwC,6BACf,SAAgC4I,EAASO,SAC/B+gC,EAAYkG,GAAOznC,UAAU5S,UAAK,EAAW6S,GAC7CqhC,EAAamG,GAAOtnC,WAAW/S,UAAK,EAAWoT,GAC/Cw3C,EAAkBvQ,GAAO3qC,WAAW,CACtC,CACI9X,KAAM,SACNiL,KAAMw3C,GAAOhG,IAAIF,EAAU,qBAC3BxkC,eAAmBrH,EAAIiC,SAAoF,UAAnD,UAAVpO,EAAE,UAAuB,IAAPmM,OAAgB,EAASA,EAAGysC,iBAA8B,IAAPxqC,EAAgBA,EAAM,KAE7I,CACI3S,KAAM,OACNiL,KAAMw3C,GAAOvsC,SAASqmC,EAAU,cAChCxkC,UAAa,CAAC,CACNwvC,UAAW,8BACXpK,UA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"}
\ No newline at end of file
diff --git a/assets/vendor.55c4a90d.js b/assets/vendor.58fc945f.js
similarity index 58%
rename from assets/vendor.55c4a90d.js
rename to assets/vendor.58fc945f.js
index 72e909af..26486451 100644
--- a/assets/vendor.55c4a90d.js
+++ b/assets/vendor.58fc945f.js
@@ -1,4 +1,4 @@
-var e=Object.defineProperty,t=Object.defineProperties,r=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,a=(t,r,n)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n,s=(e,t)=>{for(var r in t||(t={}))o.call(t,r)&&a(e,r,t[r]);if(n)for(var r of n(t))i.call(t,r)&&a(e,r,t[r]);return e},c=(e,n)=>t(e,r(n)),l=e=>"symbol"==typeof e?e:e+"";const d={};var m,_,p,u,f={},h=[],g=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function b(e,t){for(var r in t)e[r]=t[r];return e}function v(e){var t=e.parentNode;t&&t.removeChild(e)}function y(e,t,r){var n,o,i,a=arguments,s={};for(i in t)"key"==i?n=t[i]:"ref"==i?o=t[i]:s[i]=t[i];if(arguments.length>3)for(r=[r],i=3;i0?N(p.type,p.props,p.key,null,p.__v):p)){if(p.__=r,p.__b=r.__b+1,null===(_=v[d])||_&&p.key==_.key&&p.type===_.type)v[d]=void 0;else for(m=0;mt.rank?-1:e.index-t.index}function W(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,X(t).map(G).join(""));var t}(e),e.props}function X(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function G(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var V=null,J=[],Y=[],K={};function Q(){var e;return""+((e=V&&V.location?V.location:V&&V.getCurrentLocation?V.getCurrentLocation():"undefined"!=typeof location?location:K).pathname||"")+(e.search||"")}function ee(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=J.length;t--;)if(J[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),V&&V[t]?V[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),te(e)}function te(e){for(var t=!1,r=0;r0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){J.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;V&&(this.unlisten=V.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),J.splice(J.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(e,t,r){return e.filter(W).sort(H).map((function(e){var n=Z(t,e.props.path,e.props);if(n){if(!1!==r){var o={url:t,matches:n};return U(o,n),delete o.ref,delete o.key,function(e,t,r){var n,o,i,a=arguments,s=b({},e.props);for(i in t)"key"==i?n=t[i]:"ref"==i?o=t[i]:s[i]=t[i];if(arguments.length>3)for(r=[r],i=3;i=r.__.length&&r.__.push({}),r.__[e]}function ye(e){return _e=1,function(e,t,r){var n=ve(le++,2);return n.t=e,n.__c||(n.__=[r?r(t):Le(void 0,t),function(e){var t=n.t(n.__[0],e);n.__[0]!==t&&(n.__=[t,n.__[1]],n.__c.setState({}))}],n.__c=de),n.__}(Le,e)}function Ne(e,t){var r=ve(le++,3);!m.__s&&Pe(r.__H,t)&&(r.__=e,r.__H=t,de.__H.__h.push(r))}function ke(e){return _e=5,we((function(){return{current:e}}),[])}function we(e,t){var r=ve(le++,7);return Pe(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function Oe(e,t){return _e=8,we((function(){return e}),t)}function xe(e){var t=ve(le++,10),r=ye();return t.__=e,de.componentDidCatch||(de.componentDidCatch=function(e){t.__&&t.__(e),r[1](e)}),[r[0],function(){r[1](void 0)}]}function Se(){pe.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(Me),e.__H.__h.forEach(Ae),e.__H.__h=[]}catch(t){e.__H.__h=[],m.__e(t,e.__v)}})),pe=[]}m.__b=function(e){de=null,ue&&ue(e)},m.__r=function(e){fe&&fe(e),le=0;var t=(de=e.__c).__H;t&&(t.__h.forEach(Me),t.__h.forEach(Ae),t.__h=[])},m.diffed=function(e){he&&he(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==pe.push(t)&&me===m.requestAnimationFrame||((me=m.requestAnimationFrame)||function(e){var t,r=function(){clearTimeout(n),je&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);je&&(t=requestAnimationFrame(r))})(Se)),de=void 0},m.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Me),e.__h=e.__h.filter((function(e){return!e.__||Ae(e)}))}catch(r){t.some((function(e){e.__h&&(e.__h=[])})),t=[],m.__e(r,e.__v)}})),ge&&ge(e,t)},m.unmount=function(e){be&&be(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Me)}catch(r){m.__e(r,t.__v)}};var je="function"==typeof requestAnimationFrame;function Me(e){var t=de;"function"==typeof e.__c&&e.__c(),de=t}function Ae(e){var t=de;e.__c=e.__(),de=t}function Pe(e,t){return!e||e.length!==t.length||t.some((function(t,r){return t!==e[r]}))}function Le(e,t){return"function"==typeof t?t(e):t}var Be="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Ce={},ze={},Te={};Object.defineProperty(Te,"__esModule",{value:!0}),Te.ModelPath=Te.Path=Te.relativePath=void 0,Te.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class Ie{constructor(e,t){this.modelArr=null!=e?e:[],this.contextArr=null!=t?t:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(e,t){return new Ie(this.modelArr.slice(e,t),this.contextArr)}shift(){return new Ie(this.modelArr.slice(1),this.contextArr)}pop(){return new Ie(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Ie([...this.modelArr,e],[...this.contextArr])}contextPush(e){if("number"==typeof e)return this.copy();const t=e.startsWith("minecraft:")?e.slice(10):e;return new Ie([...this.modelArr],[...this.contextArr,t])}copy(){return new Ie([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new Re(e,this)}getContext(){return this.contextArr}equals(e){return e.modelArr.length===this.modelArr.length&&e.modelArr.every(((e,t)=>e===this.modelArr[t]))}startsWith(e){return!(this.modelArr.lengthe===this.modelArr[t]))}endsWith(e){const t=this.modelArr.length-e.modelArr.length;return!(t<0)&&e.modelArr.every(((e,r)=>e===this.modelArr[t+r]))}toString(){return this.modelArr.map((e=>"string"==typeof e?`.${e}`:`[${e}]`)).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}Te.Path=Ie;class Re extends Ie{constructor(e,t){super(null==t?void 0:t.modelArr,null==t?void 0:t.contextArr),this.model=e}getModel(){return this.model}get(){var e;return null===(e=this.model)||void 0===e?void 0:e.get(this)}set(e){var t;null===(t=this.model)||void 0===t||t.set(this,e)}slice(e,t){return new Re(this.model,super.slice(e,t))}shift(){return new Re(this.model,super.shift())}pop(){return new Re(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Re(this.model,super.modelPush(e))}contextPush(e){return new Re(this.model,super.contextPush(e))}copy(){return new Re(this.model,super.copy())}}Te.ModelPath=Re;var Fe={};Object.defineProperty(Fe,"__esModule",{value:!0}),Fe.Errors=void 0;class Ee{constructor(){this.errors=[]}add(e,t,...r){return this.errors.push({path:e,error:t,params:r}),!1}get(e,t=!1){return t?this.errors.filter((t=>t.path.equals(e))):this.errors.filter((t=>t.path.startsWith(e)))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const e of this.errors)yield e}}Fe.Errors=Ee;var De={};function $e(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(De,"__esModule",{value:!0}),De.hexId=De.quoteString=De.escapeString=void 0,De.escapeString=$e,De.quoteString=function(e){return`"${$e(e)}"`};const qe=e=>("0"+e.toString(16)).substr(-2);De.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,qe).join("")},Object.defineProperty(ze,"__esModule",{value:!0}),ze.DataModel=void 0;const Ue=Te,Ze=Fe,He=De;class We{constructor(e,t){var r,n,o,i;this.historyMax=null!==(r=null==t?void 0:t.historyMax)&&void 0!==r?r:50,this.verbose=null!==(n=null==t?void 0:t.verbose)&&void 0!==n&&n,this.wrapLists=null!==(o=null==t?void 0:t.wrapLists)&&void 0!==o&&o,this.schema=e;const a=null!==(i=null==t?void 0:t.initialData)&&void 0!==i?i:e.default();this.data=this.wrapLists?We.wrapLists(a):a,this.listeners=[],this.errors=new Ze.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0}addListener(e){this.listeners.push(e)}removeListener(e){const t=this.listeners.indexOf(e);t>-1&&this.listeners.splice(t,1)}invalidate(){const e=JSON.stringify(this.data);this.history[this.historyIndex]!==e&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,e),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach((e=>{e.invalidated&&e.invalidated(this),e.errors&&e.errors(this.errors)}))}reset(e,t){this.data=e,this.validate(t),this.invalidate()}get(e){let t=this.data;return e.forEach((e=>{if(void 0===t)return t;t=this.wrapLists&&"number"==typeof e?t[e].node:t[e]})),t}set(e,t,r){if(0===e.getArray().length)return void this.reset(t,!0);let n=this.data;e.pop().forEach((e=>{void 0!==n[e]&&"string"!=typeof n[e]&&"number"!=typeof n[e]||(this.wrapLists&&"number"==typeof e?n[e]={node:{},id:He.hexId()}:n[e]={}),n=this.wrapLists&&"number"==typeof e?n[e].node:n[e]})),null!==n&&(void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?n.splice(e.last(),1):delete n[e.last()]:this.wrapLists&&"number"==typeof e.last()?n[e.last()]={node:t,id:He.hexId()}:n[e.last()]=t,r||(this.verbose&&console.log("Set",e.toString(),JSON.stringify(t)),this.validate(!0),this.invalidate()))}undo(){this.historyIndex>0&&(this.historyIndex-=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}redo(){this.historyIndex{e.errors&&e.errors(n)}))}static wrapLists(e){if(Array.isArray(e))return e.map((e=>({node:this.wrapLists(e),id:He.hexId()})));if("object"==typeof e&&null!==e){const t={};return Object.entries(e).map((([e,r])=>{t[e]=this.wrapLists(r)})),t}return e}static unwrapLists(e){if(Array.isArray(e))return e.map((e=>this.unwrapLists(e.node)));if("object"==typeof e&&null!==e){const t={};return Object.entries(e).map((([e,r])=>{t[e]=this.unwrapLists(r)})),t}return e}}ze.DataModel=We;var Xe,Ge={};Xe=Ge,Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.Keep=Xe.Opt=Xe.Has=Xe.Mod=Xe.Base=void 0,Xe.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:e=>e,suggest:()=>[],validate:(e,t)=>t,validationOption:()=>{},hook(e,t,...r){return e.base({node:this},t,...r)},canUpdate:()=>!1,update:()=>[]},Xe.Mod=(e,t)=>s(s({},e),"function"==typeof t?t(e):t),Xe.Has=(e,t)=>Xe.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),Xe.Opt=function(e){return c(s({},e),{optional:()=>!0})},Xe.Keep=function(e){return c(s({},e),{keep:()=>!0})};var Ve={};Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.BooleanNode=void 0;const Je=ze,Ye=Ge;Ve.BooleanNode=()=>c(s({},Ye.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,r,n){return n.loose&&"boolean"!=typeof t&&(t=n.wrapLists?Je.DataModel.wrapLists(this.default()):this.default()),"boolean"==typeof t&&void 0!==t||r.add(e,"error.expected_boolean"),t},hook(e,t,...r){var n;return(null!==(n=e.boolean)&&void 0!==n?n:e.base).call(e,{node:this},t,...r)}});var Ke={},Qe={};Object.defineProperty(Qe,"__esModule",{value:!0}),Qe.ListNode=void 0;const et=ze,tt=Ge;Qe.ListNode=(e,t)=>{var r,n;const o=null!==(r=null==t?void 0:t.minLength)&&void 0!==r?r:0,i=null!==(n=null==t?void 0:t.maxLength)&&void 0!==n?n:1/0,a=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return c(s({},tt.Base),{type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(o)].map((t=>e.default())):[],navigate(t,r){const n=r+1;return t.getArray().length<=n?this:e.navigate(t,n)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,r,n,s){return s.loose&&!Array.isArray(r)&&(r=s.wrapLists?et.DataModel.wrapLists(this.default()):this.default()),Array.isArray(r)?(a&&(r.lengthi)?o===i?n.add(t,"error.invalid_list_range.exact",r.length,o):n.add(t,"error.invalid_list_range.between",r.length,o,i):r.lengthi&&n.add(t,"error.invalid_list_range.larger",r.length,i),r.map(((r,o)=>{const i=e.validate(t.push(o),s.wrapLists?r.node:r,n,s);return s.wrapLists?{node:i,id:r.id}:i}))):(n.add(t,"error.expected_list"),r)},hook(r,n,...o){var i;return(null!==(i=r.list)&&void 0!==i?i:r.base).call(r,{node:this,children:e,config:null!=t?t:{}},n,...o)}})};var rt={};Object.defineProperty(rt,"__esModule",{value:!0}),rt.SwitchNode=void 0;const nt=Ge;rt.SwitchNode=e=>c(s({},nt.Base),{type(e){return this.activeCase(e,!0).node.type(e)},category(e){return this.activeCase(e,!0).node.category(e)},default:()=>e[0].node.default(),navigate(e,t){var r;const n=t+1;return null===(r=this.activeCase(e.slice(0,n)))||void 0===r?void 0:r.node.navigate(e,t)},pathPush(e,t){var r,n;return null!==(n=null===(r=this.activeCase(e))||void 0===r?void 0:r.node.pathPush(e,t))&&void 0!==n?n:e},suggest(t,r){var n,o;return null!==(o=null===(n=this.activeCase(t))||void 0===n?void 0:n.node.suggest(t,r))&&void 0!==o?o:e.filter((e=>e.match(t))).map((e=>e.node.suggest(t,r))).reduce(((e,t)=>e.concat(t)))},validate(e,t,r,n){let o=this.activeCase(e);return void 0===o?t:o.node.validate(e,t,r,n)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,r){const n=(e,t)=>{var r,n;return(null!==(r=t.priority)&&void 0!==r?r:0)-(null!==(n=e.priority)&&void 0!==n?n:0)},o=e.filter((e=>e.match(t))).sort(n);return r&&0===o.length?e.sort(n)[0]:o.length>0?o[0]:void 0},hook(e,t,...r){return this.activeCase(t,!0).node.hook(e,t,...r)}}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=Qe,r=rt;e.ChoiceNode=(e,t)=>{const n=r.SwitchNode(e.map((e=>({type:e.type,priority:e.priority,match:t=>((e,t)=>{if(e.match)return e.match(t);switch(e.type){case"list":return Array.isArray(t);case"object":return"object"==typeof t&&!Array.isArray(t);default:return typeof t===e.type}})(e,t.get()),node:e.node}))));return c(s({},n),{validate(e,t,r,o){let i=n.activeCase(e,!0);return i.node.optional()?t:i.node.validate(e,t,r,o)},hook(r,o,...i){var a;return(null!==(a=r.choice)&&void 0!==a?a:r.base).call(r,{node:this,choices:e,config:null!=t?t:{},switchNode:n},o,...i)}})};const n=r=>(n,o)=>e.ChoiceNode([{type:r,node:n,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:n.default()}},{type:"list",node:t.ListNode(n),change:e=>e?[e]:[]}],o);e.ObjectOrList=n("object"),e.StringOrList=n("string"),e.ObjectOrPreset=(t,r,n)=>e.ChoiceNode([{type:"string",priority:1,node:t,change:e=>Object.keys(n)[0]},{type:"object",node:r,change:e=>{var t;return null!==(t=n[e])&&void 0!==t?t:n[Object.keys(n)[0]]}}])}(Ke);var ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.MapNode=void 0;const it=Ge,at=ze;ot.MapNode=(e,t,r)=>c(s({},it.Base),{type:()=>"map",default:()=>({}),navigate(e,r){const n=r+1;return e.getArray().length<=n?this:t.navigate(e,n)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(r,n,o,i){if(i.loose&&"object"!=typeof n&&(n=i.wrapLists?at.DataModel.wrapLists(this.default()):this.default()),null===n||"object"!=typeof n)return o.add(r,"error.expected_object"),n;let a={};return Object.keys(n).forEach((s=>{e.validate(r,s,o,i),a[s]=t.validate(r.push(s),n[s],o,i)})),a},validationOption(t){var n;return null!==(n=null==r?void 0:r.validation)&&void 0!==n?n:e.validationOption(t.push(""))},hook(n,o,...i){var a;return(null!==(a=n.map)&&void 0!==a?a:n.base).call(n,{node:this,keys:e,children:t,config:null!=r?r:{}},o,...i)}});var st={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=Ce,r=ze,n=Ge;e.NumberNode=e=>{var t,o,i;const a=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,l=(null==e?void 0:e.color)?0:null!==(o=null==e?void 0:e.min)&&void 0!==o?o:-1/0,d=(null==e?void 0:e.color)?16777215:null!==(i=null==e?void 0:e.max)&&void 0!==i?i:1/0,m=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return c(s({},n.Base),{type:()=>"number",default:()=>l>0?l:0,validate(e,t,n,o){return o.loose&&"number"!=typeof t&&(t=o.wrapLists?r.DataModel.wrapLists(this.default()):this.default()),"number"!=typeof t?n.add(e,"error.expected_number"):a&&!Number.isInteger(t)?n.add(e,"error.expected_integer"):m&&(td)?n.add(e,"error.invalid_number_range.between",t,l,d):td&&n.add(e,"error.invalid_number_range.larger",t,d),t},hook(t,r,...n){var o;return(null!==(o=t.number)&&void 0!==o?o:t.base).call(t,{node:this,integer:a,min:l,max:d,between:m,config:null!=e?e:{}},r,...n)}})},e.NumberEnum=({integer:r,values:n})=>t.Mod(e.NumberNode({integer:r}),(e=>({validate:(t,r,o,i)=>(r=e.validate(t,r,o,i),n.includes(r)||o.add(t,"error.invalid_number_enum",n.join(", ")),r)})))}(st);var ct={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=Ge,r=Te,a=Fe,d=De,m=ze;e.Switch=Symbol("switch"),e.Case=Symbol("case"),e.ObjectNode=(_,p)=>{var u,f;const h=_,{[u=e.Switch]:g,[f=e.Case]:b}=h,v=((e,t)=>{var r={};for(var a in e)o.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(null!=e&&n)for(var a of n(e))t.indexOf(a)<0&&i.call(e,a)&&(r[a]=e[a]);return r})(h,[l(u),l(f)]),y=e=>{if(void 0===g)return v;const t=r.relativePath(e,g).get(),n=b[t];return s(s({},v),n)},N=(e,t)=>{var n;const o=g?r.relativePath(e,g).get():void 0,i=g&&null!==(n=b[o])&&void 0!==n?n:{},a=Object.keys(i),s=(null==p?void 0:p.context)?new r.ModelPath(e.getModel(),new r.Path(e.getArray(),[p.context])):e;return(!(null==p?void 0:p.disableSwitchContext)&&o&&a.includes(t)?s.contextPush(o):s).push(t)};return c(s({},t.Base),{type:()=>"object",category:()=>null==p?void 0:p.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const r=t+1,n=e.getArray();if(n.length<=r)return this;const o=y(e.slice(0,r))[n[r]];return null==o?void 0:o.navigate(e,r)},pathPush:(e,t)=>N(e,t.toString()),suggest(e,t){const r=y(e),n=Object.keys("object"==typeof t?t:{});return Object.keys(r).filter((t=>r[t].enabled(e))).filter((e=>!n.includes(e))).map(d.quoteString)},validate(e,t,n,o){if(o.loose&&"object"!=typeof t&&(t=o.wrapLists?m.DataModel.wrapLists(this.default()):this.default()),"object"!=typeof t||null===t)return n.add(e,"error.expected_object"),t;let i=v;if(g){const n=r.relativePath(e,g);let c=n.get();if(e.equals(n.pop())){const r=n.last();c=v[r].validate(e.push(r),t[r],new a.Errors,o)}i=s(s({},i),b[c])}const c=Object.keys(i),l=c.filter((e=>!i[e].optional())),d=new Set([...l,...Object.keys(t)]);let _={};return d.forEach((r=>{if(c.includes(r)){if(!i[r].enabled(e))return;const a=i[r].validate(e.push(r),t[r],n,o);!i[r].keep()&&i[r].optional()&&(void 0===a||Array.isArray(a)&&0===a.length||a.constructor===Object&&0===Object.keys(a).length)?delete _[r]:(_[r]=a,e.getModel().set(e.push(r),a,!0))}else _[r]=t[r]})),_},hook(e,t,...r){var n;return(null!==(n=e.object)&&void 0!==n?n:e.base).call(e,{node:this,fields:v,config:null!=p?p:{},filter:g,cases:b,getActiveFields:y,getChildModelPath:N},t,...r)}})}}(ct);var lt={};Object.defineProperty(lt,"__esModule",{value:!0}),lt.Reference=void 0,lt.Reference=(e,t)=>({type(r){return e.get(t).type.bind(this)(r)},category(r){return e.get(t).category.bind(this)(r)},default(){return e.get(t).default.bind(this)()},transform:(r,n)=>e.get(t).transform(r,n),enabled(r){return e.get(t).enabled.bind(this)(r)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(r,n){return e.get(t).navigate.bind(this)(r,n)},pathPush(r,n){return e.get(t).pathPush.bind(this)(r,n)},suggest(r,n){return e.get(t).suggest.bind(this)(r,n)},validate(r,n,o,i){return e.get(t).validate.bind(this)(r,n,o,i)},validationOption(r){return e.get(t).validationOption.bind(this)(r)},hook(r,n,...o){return e.get(t).hook.bind(this)(r,n,...o)},activeCase(r,n){return e.get(t).activeCase.bind(this)(r,n)},canUpdate(r,n){return e.get(t).canUpdate.bind(this)(r,n)},update(r,n){return e.get(t).update.bind(this)(r,n)}});var dt={};Object.defineProperty(dt,"__esModule",{value:!0}),dt.StringNode=void 0;const mt=Ge,_t=De,pt=ze,ut=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},ft=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};dt.StringNode=(e,t)=>{const r=ut(t)?"string"==typeof t.enum?()=>{var r;return null!==(r=null==e?void 0:e.get(t.enum))&&void 0!==r?r:[]}:()=>t.enum:"resource"===(null==t?void 0:t.validator)?"string"==typeof t.params.pool?t.params.pool.startsWith("$")?()=>{var r;return null!==(r=null==e?void 0:e.get(t.params.pool.slice(1)))&&void 0!==r?r:[]}:()=>{var r;return null!==(r=null==e?void 0:e.get(t.params.pool))&&void 0!==r?r:[]}:()=>t.params.pool:()=>[];return c(s({},mt.Base),{type:()=>"string",default:()=>"",validate(e,n,o,i){if(i.loose&&"string"!=typeof n&&(n=(i.wrapLists?pt.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof n)return o.add(e,"error.expected_string"),n;if(ft(t)&&("resource"===t.validator&&n.length>0&&!n.includes(":")&&(n="#"===n[0]?"#minecraft:"+n.slice(1):"minecraft:"+n),"resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||t.params.allowTag&&"#"===n[0]||t.params.isDefinition||t.params.allowUnknown)))return n;if(ut(t)&&t.additional)return n;const a=r();return a.length>0&&!a.includes(n)&&o.add(e,"error.invalid_enum_option",n),n},suggest:()=>r().map(_t.quoteString),validationOption:()=>ft(t)?t:void 0,hook(e,n,...o){var i;return(null!==(i=e.string)&&void 0!==i?i:e.base).call(e,{node:this,getValues:r,config:t},n,...o)}})};var ht={};Object.defineProperty(ht,"__esModule",{value:!0});var gt={};Object.defineProperty(gt,"__esModule",{value:!0}),gt.CollectionRegistry=gt.SchemaRegistry=void 0;gt.SchemaRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.error(`Tried to access schema "${e}", but that doesn't exist.`),t}};gt.CollectionRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.warn(`Tried to access collection "${e}", but that doesn't exist.`),null!=t?t:[]}};var bt={};Object.defineProperty(bt,"__esModule",{value:!0}),function(e){var t=Be&&Be.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),r=Be&&Be.__exportStar||function(e,r){for(var n in e)"default"===n||r.hasOwnProperty(n)||t(r,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),r(ze,e),r(Te,e),r(Fe,e),r(Ge,e),r(Ve,e),r(Ke,e),r(Qe,e),r(ot,e),r(st,e),r(ct,e),r(lt,e),r(dt,e),r(rt,e),r(ht,e),r(gt,e),r(bt,e)}(Ce);function vt(e){let t=e.length;for(;--t>=0;)e[t]=0}const yt=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Nt=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),kt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),wt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ot=new Array(576);vt(Ot);const xt=new Array(60);vt(xt);const St=new Array(512);vt(St);const jt=new Array(256);vt(jt);const Mt=new Array(29);vt(Mt);const At=new Array(30);function Pt(e,t,r,n,o){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=o,this.has_stree=e&&e.length}let Lt,Bt,Ct;function zt(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}vt(At);const Tt=e=>e<256?St[e]:St[256+(e>>>7)],It=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Rt=(e,t,r)=>{e.bi_valid>16-r?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<