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.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\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;\r\n this.schema = schema;\r\n this.data = schema.default();\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 this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\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 node = node[e];\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 node[e] = {};\r\n }\r\n node = node[e];\r\n });\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 {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n console.log('Set', path.toString(), JSON.stringify(value));\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 })) !== 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}\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 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 = 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 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 = 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) => children.validate(path.push(index), obj, errors, options));\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\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 = 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.NumberNode = void 0;\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 = 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\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.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\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\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 = this.default();\r\n }\r\n if (typeof value !== 'object') {\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 res[k] = undefined;\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, 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 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 = 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","\"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:requirements': {\r\n terms: core_1.ListNode(Reference('condition')),\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' } }), core_1.ObjectNode({\r\n amplifier: Common_1.Range(),\r\n duration: Common_1.Range()\r\n })))\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 '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 ...conditions\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode,\r\n ...conditions\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 ...conditions\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 ...conditions\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }))),\r\n ...conditions\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 ...conditions\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 ...conditions\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true }),\r\n ...conditions\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 ...conditions\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier')),\r\n ...conditions\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...conditions\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true }),\r\n ...conditions\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 ...conditions\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 ...conditions\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } }),\r\n ...conditions\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 ...conditions\r\n }\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' }), {\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: 'single', 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.prototype.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 = exports.lootContext = 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' }), {\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: 'single', 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, 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: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 ]);\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' }), {\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.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: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: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('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}\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.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 random_density_offset: true,\r\n simplex_surface_noise: 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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 0, 1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 2, 1, 0, 0, 0]\r\n },\r\n shift: {\r\n firstOctave: -3,\r\n amplitudes: [1, 1, 1, 0]\r\n },\r\n temperature: {\r\n firstOctave: -9,\r\n amplitudes: [1.5, 0, 1, 0, 0, 0]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1, 0, 0, 0, 0]\r\n },\r\n continentalness: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1]\r\n }\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 });\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_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 simplex_surface_noise: false,\r\n use_legacy_random: true,\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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n continentalness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n }\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 simplex_surface_noise: true,\r\n use_legacy_random: 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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n weirdness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n humidity: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n continentalness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n }\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 random_density_offset: true,\r\n simplex_surface_noise: true,\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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 0, 1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 2, 1, 0, 0, 0]\r\n },\r\n shift: {\r\n firstOctave: -3,\r\n amplitudes: [1, 1, 1, 0]\r\n },\r\n temperature: {\r\n firstOctave: -9,\r\n amplitudes: [1.5, 0, 1, 0, 0, 0]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1, 0, 0, 0, 0]\r\n },\r\n continentalness: {\r\n firstOctave: -9,\r\n amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1]\r\n }\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 simplex_surface_noise: false,\r\n use_legacy_random: true,\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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n weirdness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n humidity: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n },\r\n continentalness: {\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n }\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 simplex_surface_noise: true,\r\n use_legacy_random: 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 },\r\n octaves: {\r\n erosion: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n weirdness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n shift: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n temperature: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n humidity: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n },\r\n continentalness: {\r\n firstOctave: 0,\r\n amplitudes: [0]\r\n }\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' }), {\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 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: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\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: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 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 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_2d_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_2d_cutoff_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_2d_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_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 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 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 use_legacy_random: 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 }),\r\n octaves: core_1.ObjectNode({\r\n temperature: Reference('noise_parameters'),\r\n humidity: Reference('noise_parameters'),\r\n continentalness: Reference('noise_parameters'),\r\n erosion: Reference('noise_parameters'),\r\n weirdness: Reference('noise_parameters'),\r\n shift: Reference('noise_parameters'),\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('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}\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 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'\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","\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","import t from\"pako\";import{vec3 as e,mat4 as s,glMatrix as i}from\"gl-matrix\";var n;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(n||(n={}));const r={[n.UP]:[0,1,0],[n.DOWN]:[0,-1,0],[n.NORTH]:[0,0,-1],[n.EAST]:[1,0,0],[n.SOUTH]:[0,0,1],[n.WEST]:[-1,0,0]};var o;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return r[t]}}(n||(n={})),function(t){t.create=function(t,e,s){return[t,e,s]},t.offset=function(t,e,s,i){return[t[0]+e,t[1]+s,t[2]+i]},t.towards=function(e,s){return t.offset(e,...n.normal(s))}}(o||(o={}));const a={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},l=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class h{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 s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s=e)return;let s=this.buffer.byteLength;for(;sthis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=i,this.dataView=new DataView(i),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,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),i.push(128|63&s)):s<65536?(i.push(224|s>>12),i.push(128|s>>6&63),i.push(128|63&s)):(i.push(240|s>>18&7),i.push(128|s>>12&63),i.push(128|s>>6&63),i.push(128|63&s));return i}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(a[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),i.setInt16(t+1,65535&n),i.setInt8(t+3,r),i.setInt32(t+4096,e.timestamp);const o=4096*n;i.setInt32(o,e.data.length+1),i.setInt8(o+4,e.compression),s.set(e.data,o+5),n+=r}return s}function P(t,e,s,i){const n=x(t,e,s);switch(n.compression){case 1:n.data=v(i);break;case 2:n.data=v(i,!1,!0);break;case 3:n.data=m(i);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function x(t,e,s){const i=t.find((t=>t.x===e&&t.z===s));if(void 0===i)throw new Error(`Cannot find chunk [${e}, ${s}]`);return i}function y(t,e,s){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==s)throw new Error(`Expected ${e} to be of type ${s}, but found ${t[e].type}`);return t[e].value}function A(t,e,s,i){const n=y(t,e,\"list\");if(n.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${n.type}s`);if(i&&n.value.length!==i)throw new Error(`Expected ${e} to be a list of length ${i}, but found length ${n.value.length}`);return n.value}function S(t,e){try{return t()}catch(t){return e}}class B{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=y(t.value,\"Name\",\"string\"),s=S((()=>y(t.value,\"Properties\",\"compound\")),{}),i=Object.keys(s).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:y(s,e,\"string\")})),{});return new B(e,i)}static fromJson(t){var e,s;const i=null!==(e=k.readObject(t))&&void 0!==e?e:{},n=null!==(s=k.readString(i.Name))&&void 0!==s?s:\"minecraft:stone\",r=k.readMap(i.Properties,(t=>{var e;return null!==(e=k.readString(t))&&void 0!==e?e:\"\"}));return new B(n,r)}}B.AIR=new B(\"minecraft:air\");class E{constructor(t){this.minY=t,this.storage=Array(E.SIZE),this.palette=[B.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var i;const n=this.storage[this.index(t,e,s)];return null!==(i=this.palette[n])&&void 0!==i?i:B.AIR}setBlockState(t,e,s,i){let n=this.palette.findIndex((t=>t.equals(i)));-1===n&&(n=this.palette.length,this.palette.push(i)),this.storage[this.index(t,e,s)]=n}}E.WIDTH=16,E.SIZE=E.WIDTH*E.WIDTH*E.WIDTH;class C{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,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[s,i,n]=t,r=this.sections[this.getSectionIndex(i)];return null!==(e=null==r?void 0:r.getBlockState(15&s,15&i,15&n))&&void 0!==e?e:B.AIR}setBlockState(t,e){const[s,i,n]=t,r=this.getSectionIndex(i);let o=this.sections[r];if(null===o){if(e.equals(B.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&s,15&i,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new E(this.minSection+t)),this.sections[t]}}var I,k,R;!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}}(I||(I={})),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,s){var i;const n=null!==(i=e(t))&&void 0!==i?i:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const i=e(t);return i?s(i):void 0}}(k||(k={}));class _{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.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,s,i){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new B(e,s);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:i}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:i},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]B.fromNbt({name:\"\",value:t}))),i=A(t.value,\"blocks\",\"compound\").map((t=>({pos:A(t,\"pos\",\"int\",3),state:y(t,\"state\",\"int\"),nbt:S((()=>y(t,\"nbt\",\"compound\")),void 0)})));return new _(e,s,i)}}function F(t){return t*t}function M(t,e,s){return Math.max(e,Math.min(s,t))}function N(t,e,s){return e+t*(s-e)}function T(t,e,s,i,n,r){return N(e,N(t,s,i),N(t,n,r))}function O(t,e,s,i,n,r,o,a,l,h,u){return N(s,T(t,e,i,n,r,o),T(t,e,a,l,h,u))}function U(t,e,s){return s<0?t:s>1?e:N(s,t,e)}function D(t){return t*t*t*(t*(6*t-15)+10)}function L(t,e,s){let i=e-t;for(;i>0;){const e=Math.floor(i/2),n=t+e;s(n)?i=e:(t=n+1,i-=e+1)}return t}class z{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 s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample2D(t,e){let s,i,n;const r=(t+e)*z.F2,o=Math.floor(t+r),a=t-(o-(s=(o+(i=Math.floor(e+r)))*z.G2));let l,h;a>(n=e-(i-s))?(l=1,h=0):(l=0,h=1);const u=a-l+z.G2,c=n-h+z.G2,d=a-1+2*z.G2,f=n-1+2*z.G2,g=255&o,p=255&i,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,s){const i=.3333333333333333*(t+e+s),n=Math.floor(t+i),r=Math.floor(e+i),o=Math.floor(s+i),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=s-(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 s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample(t,e,s,i=0,n=0){const r=t+this.xo,o=e+this.yo,a=s+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!==i){const t=n>=0&&n=0;i-=1)i0&&(a=this.maxLimitNoise.getOctaveNoise(r))&&(c+=a.sample(f,g,p,d,e*d)/h),h/=2}return U(u/512,c/512,l)}}class X{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new j(t,e,s),this.second=new j(t,e,s);let i=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=k.readNumber(t))&&void 0!==e?e:0})))&&void 0!==i?i:[]}}}(R||(R={}));class H{constructor(t,e){const s=e[e.length-1],i=-e[0]+s+1,n=new Set(e),r=new z(t);this.noiseLevels=Array(i),s>=0&&s=0&&n.has(s-e)?this.noiseLevels[e]=new z(t):t.consume(262);if(s>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,i)-1)}sample(t,e,s){let i=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o>BigInt(W.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,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<ee:e.apply.bind(e)),this.derivatives.push(s),this}}const $=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],G=[124/256,189/256,107/256],q=$(6396257),K=$(8431445),Q=$(4764952),tt=$(4159204),et=$(8431445),st=$(2129968),it=t=>[t/8,1-t/32,64*t],nt={large_fern:()=>G,tall_grass:()=>G,grass_block:()=>G,fern:()=>G,grass:()=>G,potted_fern:()=>G,spruce_leaves:()=>q,birch_leaves:()=>K,oak_leaves:()=>Q,jungle_leaves:()=>Q,acacia_leaves:()=>Q,dark_oak_leaves:()=>Q,vine:()=>Q,water:()=>tt,bubble_column:()=>tt,cauldron:()=>tt,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:()=>G,attached_melon_stem:()=>et,attached_pumpkin_stem:()=>et,melon_stem:t=>{var e;return it(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return it(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>st};var rt;function ot(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let i=0;for(const e of t)s.set(e,i),i+=e.length;return s}function at(t,s){const i=e.create();for(let n=0;nthis.matchesVariant(e,t)));if(0===e.length)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}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,n,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=rt.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,n,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,-i.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-i.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),at(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=ot(...f);return at(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,i]=t.split(\"=\");return e[s]===i}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const s=t;return Object.keys(s).every((t=>s[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new lt(t,e.variants,e.multipart)}}const ht={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]},ut={x:[1,0,0],y:[0,1,0],z:[0,0,1]},ct=1.41421356237,dt={x:[1,ct,ct],y:[ct,1,ct],z:[ct,ct,1]};class ft{constructor(t,e,s,i){this.id=t,this.parent=e,this.textures=s,this.elements=i,this.flattened=!1}getBuffers(t,e,s,i,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,i,s,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),i+=r.texCoord.length/2}return{position:ot(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,n,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,w,P;const x=r.from[0],y=r.from[1],A=r.from[2],S=r.to[0],B=r.to[1],E=r.to[2],C=[],I=[],k=[],R=[],_=(e,s,i)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[w,P,x,y]=a.getTextureUV(this.getTexture(e.texture)),A=(x-w)/16,S=(y-P)/16,B=A/16,E=S/16;s[0]=(null!==(l=null===(r=e.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+B,s[1]=(null!==(u=null===(h=e.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*S+E,s[2]=(null!==(d=null===(c=e.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-B,s[3]=(null!==(g=null===(f=e.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*S-E;const _=ht[null!==(p=e.rotation)&&void 0!==p?p:0];I.push(w+s[_[0]],P+s[_[1]],w+s[_[2]],P+s[_[3]],w+s[_[4]],P+s[_[5]],w+s[_[6]],P+s[_[7]]);const F=(null!==(m=e.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=nt[t.slice(10)])||void 0===v?void 0:v.call(nt,n))&&void 0!==b?b:[1,1,1];k.push(...F,...F,...F,...F),C.push(...i),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]||_(r.faces.up,[x,16-E,S,16-A],[x,B,E,S,B,E,S,B,A,x,B,A]),!(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]||_(r.faces.down,[16-E,16-S,16-A,16-x],[x,y,A,S,y,A,S,y,E,x,y,E]),!(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]||_(r.faces.south,[x,16-B,S,16-y],[x,y,E,S,y,E,S,B,E,x,B,E]),!(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]||_(r.faces.north,[16-S,16-B,16-x,16-y],[S,y,A,x,y,A,x,B,A,S,B,A]),!(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]||_(r.faces.east,[16-E,16-B,16-A,16-y],[S,y,E,S,y,A,S,B,A,S,B,E]),!(null===(P=null===(w=r.faces)||void 0===w?void 0:w.west)||void 0===P?void 0:P.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||_(r.faces.west,[A,16-B,E,16-y],[x,y,A,x,y,E,x,B,E,x,B,A]);const F=s.create();if(s.identity(F),r.rotation){const t=e.fromValues(...r.rotation.origin);s.translate(F,F,t),s.rotate(F,F,i.toRadian(r.rotation.angle),ut[r.rotation.axis]),r.rotation.rescale&&s.scale(F,F,dt[r.rotation.axis]),e.negate(t,t),s.translate(F,F,t)}const M=new Float32Array(C);return at(M,F),{position:M,texCoord:I,tintColor:k,index:R}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!==(s=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==s?s:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys(null!==(e=s.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=s.textures[t])})),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith(\"minecraft:\")&&(s=\"minecraft:\"+s),new ft(t,s,e.textures,e.elements)}}class gt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),i=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,s),this.gl.attachShader(n,i),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 s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),e}return s}}function pt(t,e,s,i,n){const r=new lt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,s,i)}function mt(t,e,s,i,r,o){const a=r.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][s];return pt(`minecraft:${t}`,i,e,r,new ft(\"\",\"\",{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:n.UP},down:{texture:\"#still\",tintindex:o,cullface:n.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:n.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:n.EAST},south:{texture:\"#flow\",tintindex:o,cullface:n.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:n.WEST}}}]))}const vt={\"minecraft:water\":(t,e,s,i)=>mt(\"water\",t,parseInt(e.level),s,i,0),\"minecraft:lava\":(t,e,s,i)=>mt(\"lava\",t,parseInt(e.level),s,i),\"minecraft:chest\":(t,e,s)=>function(t,e,s,i){return pt(\"minecraft:chest\",i,t,{},new ft(\"\",\"\",{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,s)},bt=new Set(Object.keys(vt));class wt{constructor(t,e,s,i){var n,r;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==i?void 0:i.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==i?void 0:i.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==i?void 0:i.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new gt(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 gt(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 gt(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),s=2*Math.abs(t[1])+(t[1]<0?1:0),i=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][s]||(this.chunks[e][s]=[]),this.chunks[e][s][i]||(this.chunks[e][s][i]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][i]}updateStructureBuffers(t){var i;const r=(t,i,n)=>{const r=s.create();s.translate(r,r,i),at(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let s=0;s{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,ot(...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,ot(...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!==(i=this.resources.getDefaultBlockProperties(o))&&void 0!==i?i:{};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=>e.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,n.UP),down:this.needsCull(s,n.DOWN),west:this.needsCull(s,n.WEST),east:this.needsCull(s,n.EAST),north:this.needsCull(s,n.NORTH),south:this.needsCull(s,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),r(l,s.pos,c)),bt.has(o)&&(l=vt[o](c.indexOffset,a,this.resources,e),r(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 s,i;const r=null===(s=this.structure.getBlock(o.towards(t.pos,e)))||void 0===s?void 0:s.state;return!!r&&((null===(i=this.resources.getBlockFlags(r.getName()))||void 0===i?void 0:i.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&r.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),i=[],n=[];i.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),i.push(0,0,0,0,0,s),n.push(0,0,1,0,0,1),i.push(0,0,0,0,e,0),i.push(t,0,0,t,e,0),i.push(0,0,s,0,e,s),i.push(t,0,s,t,e,s),i.push(0,e,0,0,e,s),i.push(t,e,0,t,e,s),i.push(0,e,0,t,e,0),i.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)i.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)i.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:i.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=[],s=[];for(let i=0;i{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,s,i){this.gl.viewport(t,e,s,i),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const i=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(i,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(i)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!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 Pt(t,e,s,i){return new(s||(s=Promise))((function(n,r){function o(t){try{l(i.next(t))}catch(t){r(t)}}function a(t){try{l(i.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(o,a)}l((i=i.apply(t,e||[])).next())}))}class xt{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 Pt(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),i=16*s,n=1/s,r=document.createElement(\"canvas\");r.width=i,r.height=i;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Pt(this,void 0,void 0,(function*(){const i=l%s,r=Math.floor(l/s);l+=1,a[e]=[n*i,n*r,n*i+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*i,16*r,16,16)}))))),new xt(o.getImageData(0,0,i,i),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return xt.drawInvalidTexture(e),new xt(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 yt,At,St,Bt,Et,Ct,It,kt;!function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,i,r,o){return new n(t,e,s,i,r,o)},t.parameters=function(t,s,n,r,o,a,l){return new i(e(t),e(s),e(n),e(r),e(o),e(a),l)},t.param=e;class s{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,s=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(s,0)}union(t){return new s(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new s(t,t);const[i,n]=null!==(e=k.readArray(t,(t=>k.readNumber(t))))&&void 0!==e?e:[];return new s(null!=i?i:0,null!=n?n:0)}}t.Param=s;class i{constructor(t,e,s,i,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=i,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return F(this.temperature.distance(t.temperature))+F(this.humidity.distance(t.humidity))+F(this.continentalness.distance(t.continentalness))+F(this.erosion.distance(t.erosion))+F(this.depth.distance(t.depth))+F(this.weirdness.distance(t.weirdness))+F(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new s(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=k.readObject(t))&&void 0!==e?e:{};return new i(s.fromJson(r.temperature),s.fromJson(r.humidity),s.fromJson(r.continentalness),s.fromJson(r.erosion),s.fromJson(r.depth),s.fromJson(r.weirdness),null!==(n=k.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=i;class n{constructor(t,e,s,i,n,r){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=i,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 s=0;s<7;s+=1){const i=t.space[s];e+=Math.abs((i.min+i.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,s=-1,i=[];for(let n=0;n<7;++n){r.sort(t,n,!1),i=r.bucketize(t);let o=0;for(const t of i)o+=r.area(t.space);e>o&&(e=o,s=n)}return t=r.sort(t,s,!1),i=r.bucketize(t),i=r.sort(i,s,!0),new a(i.map((t=>r.build(t.children))))}static sort(t,e,s){return t.map((t=>{const i=t.space[e],n=(i.min+i.max)/2;return{key:s?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const i=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)s.push(n),s.lengthnew s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,i)=>e[i].union(s.space[i])));return e}search(t,e){let s=1/0,i=null;for(const n of this.children){const r=e(n,t);if(s<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);s<=a||(s=a,i=o)}return i}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(yt||(yt={}));class Rt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const i=null!==(e=k.readObject(t))&&void 0!==e?e:{},n=null!==(s=k.readString(i.biome))&&void 0!==s?s:\"minecraft:the_void\";return new Rt(n)}}class _t{constructor(t){this.parameters=t}getBiome(t,e,s,i){const n=i(t,e,s);return this.parameters.find(n)}static fromJson(t){var e,s;const i=null!==(e=k.readObject(t))&&void 0!==e?e:{},n=(null!==(s=k.readArray(i.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=k.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:yt.ParamPoint.fromJson(t.parameters)}})(null!==(e=k.readObject(t))&&void 0!==e?e:{})})))&&void 0!==s?s:[]).map((t=>[t.parameters,()=>t.biome]));return new _t(new yt.Parameters(n))}}!function(t){function e(t){return h.apply(t)+.015}function s(t){return u.apply(t)}function i(t){return c.apply(t)}function n(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}t.offset=e,t.factor=s,t.peaks=i,t.peaksAndValleys=n,t.point=function(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:n(s)}},t.nearWater=function(t,e){return!(t<-.2)&&(t<-.05||Math.abs(e)<.15)},t.shape=function(t,n){return{offset:e(t),factor:s(t),peaks:i(t),nearWater:n}};const r=f(\"beachSpline\",-.15,-.05,0,0,.1,0,-.03,!1,!1),o=f(\"lowSpline\",-.1,-.1,.03,.1,.1,.01,-.03,!1,!1),a=f(\"midSpline\",-.1,-.1,.03,.1,.7,.01,-.03,!0,!0),l=f(\"highSpline\",-.05,.3,.03,.1,1,.01,.01,!0,!0),h=new Z(\"offsetSampler\",(t=>t.continents)).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,r).addPoint(-.15,r).addPoint(-.1,o).addPoint(.25,a).addPoint(1,l),u=new Z(\"Factor-Continents\",(t=>t.continents)).addPoint(-.19,505).addPoint(-.15,d(\"erosionCoast\",800,!0,\"ridgeCoast-OldMountains\")).addPoint(-.1,d(\"erosionInland\",700,!0,\"ridgeInland-OldMountains\")).addPoint(.03,d(\"erosionMidInland\",650,!0,\"ridgeMidInland-OldMountains\")).addPoint(.06,d(\"erosionFarInland\",600,!1,\"ridgeFarInland-OldMountains\")),c=new Z(\"Peaks\",(t=>t.continents)).addPoint(.1,0).addPoint(.2,new Z(\"Peaks-erosion\",(t=>t.erosion)).addPoint(-.8,new Z(\"Peaks-erosion-ridges\",(t=>t.ridges)).addPoint(-1,0).addPoint(.2,0).addPoint(1,new Z(\"Peaks-erosion-ridges-weirdness\",(t=>t.weirdness)).addPoint(-.01,80).addPoint(.01,20))).addPoint(-.4,0));function d(t,e,s,i){const n=new Z(t,(t=>t.erosion)).addPoint(-.6,e).addPoint(-.5,342).addPoint(-.35,e).addPoint(-.25,e).addPoint(-.1,342).addPoint(.03,e);if(s){const t=new Z(\"weirdnessShattered\",(t=>t.weirdness)).addPoint(0,e).addPoint(.1,80),s=new Z(\"ridgesShattered\",(t=>t.ridges)).addPoint(-.9,e).addPoint(-.69,t);n.addPoint(.35,e).addPoint(.45,s).addPoint(.55,s).addPoint(.62,e)}else{const t=new Z(i,(t=>t.ridges)).addPoint(-.7,e).addPoint(-.15,175),s=new Z(i,(t=>t.ridges)).addPoint(.45,e).addPoint(.7,200);n.addPoint(.05,s).addPoint(.4,s).addPoint(.45,t).addPoint(.55,t).addPoint(.58,e)}return n}function f(t,e,s,i,n,r,o,a,l,h){const u=g(N(r,.6,1.5),h),c=g(N(r,.6,1),h),d=g(r,h),f=v(t+\"-widePlateau\",e-.15,.5*r,N(.5,.5,.5)*r,.5*r,.6*r,.5),p=v(t+\"-narrowPlateau\",e,o*r,i*r,.5*r,.6*r,.5),m=v(t+\"-plains\",e,o,o,i,n,.5),b=v(t+\"-plainsFarInland\",e,o,o,i,n,.5),w=new Z(t,(t=>t.ridges)).addPoint(-1,e).addPoint(-.4,m).addPoint(0,n+.07),P=v(t+\"-swamps\",-.02,a,a,i,n,0),x=new Z(t,(t=>t.erosion)).addPoint(-.85,u).addPoint(-.7,c).addPoint(-.4,d).addPoint(-.35,f).addPoint(-.1,p).addPoint(.2,m);return l&&x.addPoint(.4,b).addPoint(.45,w).addPoint(.55,w).addPoint(.58,b),x.addPoint(.7,P),x}function g(t,e){const s=new Z(`M-spline for continentalness: ${t} ${e}`,(t=>t.ridges)),i=p(-1,t,-.7),n=p(1,t,-.7),r=function(t){return.5*(1-t)/(.46082947*(1-.5*(1-t)))-1.17}(t);if(-.65t.ridges)).addPoint(-1,e,a).addPoint(-.4,s,Math.min(a,l)).addPoint(0,i,l).addPoint(.4,n,2*(n-i)).addPoint(1,r,.7*(r-n))}}(At||(At={}));class Ft{constructor(t,e,s,i,n,r){this.cellCountY=e,this.cellCountZ=s,this.cellMinY=n,this.filler=r,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.minCellX=i[0]*t,this.minCellZ=i[1]*s,this.slice0=Ft.allocateSlice(e,s),this.slice1=Ft.allocateSlice(e,s)}static allocateSlice(t,e){const s=Array(e+1);for(let i=0;i>2,o=s*this.cellWidth>>2,{offset:a,factor:l,peaks:h}=this.getTerrainShape(r,o),u=684.412*this.settings.sampling.xzScale,c=684.412*this.settings.sampling.yScale,d=u/this.settings.sampling.xzFactor,f=c/this.settings.sampling.yFactor;for(let r=0;r<=n;r+=1){const n=r+i,o=this.blendedNoise.sample(e,n,s,u,c,d,f),g=this.samplePeakNoise(h,e*this.cellHeight,s*this.cellHeight)/128,p=this.computeInitialDensity(n*this.cellHeight,a,l,0,g)+o;t[r]=this.applySlide(p,n)}}samplePeakNoise(t,e,s){if(0===t)return 0;const i=3e3/this.cellWidth,n=this.mountainPeakNoise.sample(e*i,0,s*i);return n>0?t*n:t/2*n}computeInitialDensity(t,e,s,i,n){const r=(Mt.computeDimensionDensity(this.settings.densityFactor,this.settings.densityOffset,t,i)+e+n)*s;return r*(r>0?4:1)}applySlide(t,e){const s=e-Math.floor(this.settings.minY/this.cellHeight);if(this.settings.topSlide.size>0){const e=(this.cellCountY-s-this.settings.topSlide.offset)/this.settings.topSlide.size;t=U(this.settings.topSlide.target,t,e)}if(this.settings.bottomSlide.size>0){const e=(s-this.settings.bottomSlide.offset)/this.settings.bottomSlide.size;t=U(this.settings.bottomSlide.target,t,e)}return t}static computeDimensionDensity(t,e,s,i=0){return t*(1-s/128+i)+e}}class Nt{constructor(t,e,s,i){this.seed=t,this.biomeSource=e,this.settings=s,this.cellHeight=s.noise.ySize<<2,this.cellWidth=s.noise.xzSize<<2,this.cellCountXZ=Math.floor(16/this.cellWidth),this.cellCountY=Math.floor(s.noise.height/this.cellHeight),this.sampler=new Mt(this.cellWidth,this.cellHeight,this.cellCountY,e,s.noise,s.octaves,t,i)}fill(t){const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),i=Math.floor(e/this.cellHeight),n=Math.floor((s-e)/this.cellHeight),r=I.minBlockX(t.pos),o=I.minBlockZ(t.pos),a=new Ft(this.cellCountXZ,n,this.cellCountXZ,t.pos,i,this.sampler.fillNoiseColumn.bind(this.sampler)),l=Array(a);l.forEach((t=>t.initializeForFirstCellX()));for(let e=0;et.advanceCellX(e)));for(let s=0;s=0;u-=1){l.forEach((t=>t.selectCellYZ(u,s)));for(let n=this.cellHeight-1;n>=0;n-=1){const c=(i+u)*this.cellHeight+n,d=15&c,f=t.getSectionIndex(c);t.getSectionIndex(h.minBlockY)!==f&&(h=t.getOrCreateSection(f));const g=n/this.cellHeight;l.forEach((t=>t.updateForY(g)));for(let t=0;tt.updateForX(u)));for(let t=0;tt.swapSlices()))}}baseState(t,e,s,i){return(i=(i=M(i/200,-1,1))/2-i*i*i/24)>0?this.settings.defaultBlock:e{var e,s,i;return{distance:null!==(e=k.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(s=k.readInt(t.spread))&&void 0!==s?s:0,count:null!==(i=k.readInt(t.count))&&void 0!==i?i:0}})),structures:k.readMap(s.structures,(t=>{var e;return(t=>{var e,s,i;return{spacing:null!==(e=k.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(s=k.readInt(t.separation))&&void 0!==s?s:0,salt:null!==(i=k.readInt(t.salt))&&void 0!==i?i:0}})(null!==(e=k.readObject(t))&&void 0!==e?e:{})}))}}}(It||(It={})),function(t){t.fromJson=function(t){var e;const s=null!==(e=k.readObject(t))&&void 0!==e?e:{};return{temperature:R.fromJson(s.temperature),humidity:R.fromJson(s.humidity),continentalness:R.fromJson(s.continentalness),erosion:R.fromJson(s.erosion),weirdness:R.fromJson(s.weirdness),shift:R.fromJson(s.shift)}}}(kt||(kt={}));export{Y as BlendedNoise,nt as BlockColors,lt as BlockDefinition,ft as BlockModel,o as BlockPos,B as BlockState,C as Chunk,I as ChunkPos,E as ChunkSection,yt as Climate,n as Direction,Rt as FixedBiome,V as ImprovedNoise,k as Json,_t as MultiNoise,h as NbtReader,u as NbtWriter,Nt as NoiseChunkGenerator,Ct as NoiseGeneratorSettings,Ft as NoiseInterpolator,kt as NoiseOctaves,R as NoiseParameters,Mt as NoiseSampler,Bt as NoiseSamplingSettings,St as NoiseSettings,Et as NoiseSlideSettings,X as NormalNoise,j as PerlinNoise,H as PerlinSimplexNoise,W as Random,z as SimplexNoise,Z as Spline,_ as Structure,wt as StructureRenderer,It as StructureSettings,At as TerrainShaper,xt as TextureAtlas,J as WorldgenRandom,L as binarySearch,M as clamp,U as clampedLerp,A as getListTag,S as getOptional,y as getTag,N as lerp,T as lerp2,O as lerp3,f as read,p as readChunk,d as readCompressed,g as readRegion,c as readUncompressed,D as smoothstep,F as square,l as tagNames,a as tagTypes,b as write,P as writeChunk,v as writeCompressed,w as writeRegion,m as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\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","n$1","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","DataModel_1","require$$0","require$$1","schema","options","listeners","JSON","stringify","historyIndex","historyMax","listener","newHistory","silentInvalidate","invalidated","loose","validate","invalidate","silent","getArray","reset","isNaN","last","log","toString","parse","withModel","clear","tempErrors","add","exports","category","enabled","keep","optional","pathPush","suggest","validationOption","hook","args","canUpdate","update","mods","__spreadValues","Mod","__spreadProps","BooleanNode","Node_1","Base","boolean","ListNode","config","_b","min","minLength","maxLength","Infinity","between","nextIndex","navigate","parseInt","_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","res","validation","NumberNode","_c","integer","color","Number","isInteger","number","str","utils","escapeString","Node_12","Path_12","Errors_12","require$$2","utils_12","require$$3","fields","Switch","Case","defaultFields","__restKey","getActiveFields","switchValue","relativePath","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","disableSwitchContext","includes","pathElements","activeFields","existingKeys","quoteString","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","object","Reference","schemas2","transform","StringNode","utils_1","isEnum","enum","isValidator","validator","collections","getValues","pool","allowTag","isDefinition","allowUnknown","additional","values","string","Hook","Registries","registry","id","warn","ValidationOption","__createBinding2","__createBinding","k22","enumerable","__exportStar","exports2","hasOwnProperty","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","Collections","register","core_12","StringNode2","Reference2","ObjectNode","Name","Properties","Opt","level","forceRange","bounds","allowBinomial","choiceContext","minecraft:alternative","terms","minecraft:block_state_property","block","properties","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:requirements","minecraft:reference","minecraft:table_bonus","enchantment","chances","minecraft:time_check","period","minecraft:weather_check","raining","thundering","Common_12","StateChoice","item","tag","count","durability","potion","nbt","enchantments","levels","fluid","position","biome","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","distance","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","from","to","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","Map","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","entries","weightMod","weight","quality","minecraft:alternatives","minecraft:dynamic","minecraft:group","minecraft:item","minecraft:loot_table","minecraft:sequence","minecraft:tag","expand","minecraft:apply_bonus","formula","parameters","bonusMultiplier","extra","probability","minecraft:copy_name","source","minecraft:copy_nbt","ops","getter","op","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","limit","minecraft:looting_enchant","minecraft:set_attributes","modifiers","minecraft:set_contents","minecraft:set_count","minecraft:set_damage","minecraft:set_loot_table","seed","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","result","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","text","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","module","show_entity","translate","with","score","isScoreHolder","objective","selector","keybind","storage","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","bedrock_roof_position","bedrock_floor_position","sea_level","disable_mob_generation","noise","density_factor","density_offset","simplex_surface_noise","random_density_offset","size_horizontal","size_vertical","height","sampling","xz_scale","y_scale","xz_factor","y_factor","top_slide","size","bottom_slide","default_block","default_fluid","spread","maxSpread","ObjectOrPreset","minecraft:overworld","DefaultDimensionType","minecraft:the_nether","shrunk","fixed_time","minecraft:the_end","DefaultNoiseSettings","minecraft:nether","minecraft:end","island_noise_override","minecraft:amplified","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","settings","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","structures","floor","random","altitude","temperature","humidity","weirdness","firstOctave","amplitudes","DimensionType","Predicates","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome","surface_builder","depth","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","stronghold","spacing","separation","salt","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","min_y","noise_caves_enabled","aquifers_enabled","deepslate_enabled","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","yScale","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","noodle_caves_enabled","ore_veins_enabled","_d","minecraft:nether_fossil","ItemModifier_1","initItemModifierSchemas","DefaultStructureSettings","minecraft:igloo","minecraft:mansion","minecraft:jungle_pyramid","minecraft:stronghold","minecraft:desert_pyramid","minecraft:fortress","minecraft:endcity","minecraft:swamp_hut","minecraft:monument","octaves","erosion","continentalness","use_legacy_random","ClimateParameter","minecraft:surface_relative_threshold","NoiseProvider","MIN_VALUE","minecraft:dual_noise_2d_provider","variety","InclusiveRange","slow_noise","slow_scale","states","minecraft:noise_2d_cutoff_provider","threshold","high_chance","default_state","low_states","high_states","minecraft:noise_2d_provider","rfdc_1","circles","refs","refsNew","proto","Date","cloneArray","cloneProto","o22","cur","ArrayBuffer","isView","copyBuffer","clone","a22","rfdcCircles","Buffer","buffer","byteOffset","buf","len","extra_lbits","Uint8Array","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","_n2","_m2","pqdownheap","heap","j2","heap_len","compress_block","ltree","dtree","lc","lx","d_buf","l_buf","build_tree","desc","stree","heap_max","xbits","overflow","scan_tree","curlen","prevlen","nextlen","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","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","avail_in","input","next_in","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","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","hcrc","comment","time","os","level_flags","charCodeAt","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","dictLength","tmpDict","avail","next","deflateInfo","_has","common","sources","TypeError","chunks","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","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","Inflate$1","last_avail_out","next_out_utf8","tail","utf8str","UP","DOWN","NORTH","EAST","SOUTH","WEST","R","rt","yt","At","St","Bt","Et","Ct","It","kt","ALL","normal","towards","S","e3","B","readObject","readString","readMap","AIR","minY","E","SIZE","palette","findIndex","WIDTH","sections","sectionsCount","maxY","maxSection","minSection","getSectionIndex","getBlockState","getOrCreateSection","setBlockState","N","fromBlockPos","fromLong","BigInt","minBlockX","minBlockZ","maxBlockX","maxBlockZ","readNumber","readInt","readBoolean","readArray","t4","fromEntries","compose","xo","nextDouble","yo","zo","nextInt","F2","G2","getCornerNoise3D","S2","B2","E2","C2","I2","R2","gradDot","GRADIENT","sqrt","sampleAndLerp","O","D","noiseLevels","V","consume","lowestFreqInputFactor","pow","lowestFreqValueFactor","sample","minLimitNoise","maxLimitNoise","mainNoise","i3","getOctaveNoise","i4","c3","r3","o3","U","first","second","valueFactor","X","INPUT_FACTOR","fromJson","setSeed","W","nextLong","MULTIPLIER","MODULUS_MASK","INCREMENT","advance","MODULUS_BITS","FLOAT_MULTIPLIER","DOUBLE_MULTIPLIER","coordinate","locations","derivatives","rotate","up","down","north","east","south","west","s3","a3","Param","F","ParamPoint","TargetPoint","Parameters","things","build","CHILDREN_PER_NODE","e4","e5","s4","space","abs","bucketize","area","toArray","thing","RTree","RNode","buildSpace","union","RSubTree","RLeaf","Rt","find","_t","factor","peaks","peaksAndValleys","point","continents","ridges","nearWater","Z","addPoint","t5","h2","d3","f3","p3","m3","cellCountY","cellCountZ","cellMinY","filler","noise000","noise001","noise100","noise101","noise010","noise011","noise110","noise111","valueXZ00","valueXZ10","valueXZ01","valueXZ11","valueZ0","valueZ1","minCellX","minCellZ","slice0","Ft","allocateSlice","slice1","fillSlice","cellWidth","cellHeight","biomeSource","shapeOverride","useLegacyRandom","fork","blendedNoise","Y","temperatureNoise","J","humidityNoise","continentalnessNoise","erosionNoise","weirdnessNoise","offsetNoise","mountainPeakNoise","getOffset","Mt","computeDimensionDensity","getTerrainShape","xzScale","xzFactor","yFactor","samplePeakNoise","computeInitialDensity","applySlide","densityFactor","densityOffset","topSlide","bottomSlide","ySize","xzSize","cellCountXZ","sampler","fillNoiseColumn","initializeForFirstCellX","advanceCellX","selectCellYZ","minBlockY","updateForY","n4","updateForX","u4","calculateValue","baseState","swapSlices","defaultBlock","seaLevel","defaultFluid","useSimplexSurfaceNoise","randomDensityOffset","islandNoiseOverride","isAmplified","bedrockRoofPosition","bedrockFloorPosition","disableMobGeneration","aquifersEnabled","noiseCavesEnabled","deepslateEnabled","oreVeinsEnabled","noodleCavesEnabled"],"mappings":"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S,aAAc,CAAElZ,OAAO,4BAC5B,qBAC1B,SAAyBgX,KACTmC,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,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sBAAsBua,GAAara,IAMnC,yBALA,iBACUqC,EAAc,IAAIgJ,GAAOsP,6BACjBC,gBAAgBvY,GACvBA,GAsBXwY,iBALA,SAAoBxY,SACVR,EAAU,IAAIwJ,GAAOyP,yBACjBC,YAAYlZ,EAASQ,GACxBR,+MChDX/M,OAAOuC,eAAekN,GAAS,aAAc,CAAElZ,OAAO,4BAC5B,qBAC1B,SAAyBgX,KACTmC,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,2BACA,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,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,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,cAEQA,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,+DCngBDnN,iBAAwB,aAAc,CAAEhM,OAAO,wBAC1BmQ,aAAqBA,QAAgBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,sBAAyB,QAChNiJ,EAAS7K,0BACgB,CAC3BohB,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,yDAEe,CAC3B5sB,KAA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CA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,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,cAEQA,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,2BCnkBR1P,OAAOuC,eAAe+T,GAAS,aAAc,CAAE/f,OAAO,mCACrB,EACjC,MAAMggB,GAASzR,6BACf,SAAgCiI,EAASQ,SAC/BsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/C8b,EAAkB9S,GAAO7M,WAAW,CACtC,CACItW,KAAM,SACNkL,KAAMiY,GA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E,UAAsB5vB,KAAK4vB,EAAe,YAAN5vB,GAAmBoK,OAAO4O,eAAe/U,KAAK2rB,EAAK5vB,OAAoBsrB,EAAQsE,EAAK5vB,aACzGsrB,EAAQsE,GACpBtE,GAEXlhB,OAAOuC,eAAemjB,GAAS,aAAc,CAAEnvB,OAAO,IACtD,4CAA8C,EAC9C,MAAMggB,GAASzR,GACT6gB,GAAgB5gB,GAChB6gB,GAAY5a,GAClB,sBAAsBua,GAAara,IAMnC,yBALA,iBACUqC,EAAc,IAAIgJ,GAAOsP,6BACjBC,gBAAgBvY,GACvBA,GAsBXwY,iBALA,SAAoBxY,SACVR,EAAU,IAAIwJ,GAAOyP,yBACjBC,YAAYlZ,EAASQ,GACxBR,iMChDX/M,OAAOuC,eAAekN,GAAS,aAAc,CAAElZ,OAAO,4BAC5B,qBAC1B,SAAyBgX,KACTmC,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,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,2BCxTR1P,OAAOuC,eAAe+T,GAAS,aAAc,CAAE/f,OAAO,mCACrB,EACjC,MAAMggB,GAASzR,6BACf,SAAgCiI,EAASQ,SAC/BsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/C8b,EAAkB9S,GAAO7M,WAAW,CACtC,CACItW,KAAM,SACNkL,KAAMiY,GAAOtG,IAAIJ,EAAU,qBAC3BlG,eAAmB5F,EAAIiE,SAAoF,UAAnD,UAAVpQ,EAAE,UAAuB,IAAPmM,OAAgB,EAASA,EAAG8M,iBAA8B,IAAP7I,EAAgBA,EAAM,KAE7I,CACI5U,KAAM,OACNkL,KAAMiY,GAAOzO,SAAS+H,EAAU,cAChClG,UAAa,CAAC,CACN4R,UAAW,8BACX1K,UAAWjZ,MAGxB,CAAExD,QAAS,iBACNsb,SAAS,cAAe6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACzD4G,QAASH,GAAOtG,IAAIsG,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC7C6G,KAAMJ,GAAOzG,WAAW,CACpB8C,KAAMhD,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,UAC1DwF,IAAKsD,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,MAAO/I,OAAQ,CAAE2J,SAAU,CAAEvH,SAAU,iBAAkBwH,GAAI,CAAC,MAAO,CAAEnb,KAAM,gBAEzH4jB,MAAO/G,EAAU,kBACjBgH,YAAahH,EAAU,kBACvBiH,WAAYP,GAAOtG,IAAIL,KACvBmH,MAAOR,GAAOtG,IAAIL,EAAW,CAAExC,KAAM,CAAC,OAAQ,YAAa,WAC3D4J,WAAYT,GAAOtG,IAAIsG,GAAO7O,eAC9BuP,iBAAkBV,GAAOtG,IAAIsG,GAAO7O,eACpCwP,OAAQX,GAAOtG,IAAIsG,GAAO7O,iBAC1B,CACAvK,QAAS,KAAO,CACZwZ,KAAM,CACF/D,KAAM,mBAEVgE,MAAO,GACPC,YAAa,QAGrBM,OAAQZ,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,mBACvE2J,SAAUb,GAAOvM,QAAQ4F,IAAcC,EAAU,yBACjDwH,aAAcd,GAAOtG,IAAIsG,GAAOzO,SAASyO,GAAOzO,SAAS8H,OAEzD0H,QAASf,GAAOtG,IAAIsG,GAAOzG,WAAW,CAClCyH,SAAUhB,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBACzE+J,KAAMjB,GAAOtG,IAAIsG,GAAOzO,SAAS8H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,mBACrF8G,QAASgC,GAAOtG,IAAIsG,GAAOzO,SAAS8H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,eACxFgK,WAAYlB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,SAEzD,CAAEjW,QAAS,gBAAkB,CAC5B+I,QAAS,KAAO,CACZia,SAAU,CACNM,YAAa,CACTC,QAAS,8BAKjBjI,SAAS,uBAAwB6G,GAAOzG,WAAW,CACvD6H,QAAS/H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAMF,EAAYvJ,IAAI,0BAC7E4T,WAAYrB,GAAOtG,IAAIsG,GAAOzG,WAAW,CACrCyF,OAAQgB,GAAO/O,IAAI6hB,EAAiB,CAChCziB,WAAsD,yBAArCtJ,EAAKsF,MAAM5P,KAAK,WAAWgR,SAE/CuS,GAAOnL,QAAS,CAAC,MAAO,CAAEpY,KAAM,aAChCujB,GAAOlL,MAAO,CACXwM,+BAAgC,CAC5BnH,MAAO6F,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,YACtEqK,gBAAiBvB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,KACzDuI,KAAM2D,GAAOtG,IAAIJ,EAAU,oBAE/BkI,yBAA0B,CACtBZ,OAAQkS,EACRrR,QAASqR,EACTpR,MAAOoR,GAEXnR,0BAA2B,CACvBlF,OAAQuD,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,cAE3E0K,8BAA+B,CAC3BC,KAAM7B,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBACrE4K,GAAI9B,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,kBAEvE6K,gCAAiC,CAC7BC,QAAShC,GAAOtG,IAAIsG,GAAOzO,SAASuhB,KAExC7Q,6BAA8B,CAC1BtI,MAAOL,EAAU,eAErB4I,yBAA0B,CACtB7F,KAAM2D,GAAOtG,IAAIJ,EAAU,oBAE/B6I,kCAAmC,CAC/BC,SAAU0Q,EACVzQ,OAAQyQ,GAEZxQ,4BAA6B,CACzBrD,QAASe,GAAOtG,IAAIsG,GAAOvM,QAAQ4F,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBAAmB8I,GAAOzG,WAAW,CACxH2E,UAAW5E,EAAU,cACrB6E,SAAU7E,EAAU,kBAExB0O,OAAQhI,GAAOtG,IAAIoZ,IAEvBvQ,wBAAyB,CACrBpI,MAAO6F,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,YACtElV,MAAOge,GAAOtG,IAAIsG,GAAOvM,QAAQ4F,IAAcA,IAAc,CAAE1F,WAAY,CAAEoD,UAAW,kBAAmB/I,OAAQ,CAAE4J,GAAI,CAAC,MAAO,CAAEnb,KAAM,gBAE7I+lB,2BAA4B,CACxB5F,OAAQtD,EAAU,cAClB+C,KAAM2D,GAAOtG,IAAIJ,EAAU,oBAE/BmJ,+BAAgC,CAC5BC,OAAQ1C,GAAOtG,IAAIJ,EAAU,sBAEjCqJ,iCAAkC,CAC9BnI,OAAQsY,EACRlQ,aAAc5C,GAAOtG,IAAIJ,EAAU,6BAEvCuJ,0BAA2B,CACvBxG,KAAM2D,GAAOtG,IAAIJ,EAAU,oBAE/BwJ,+BAAgC,CAC5BtI,OAAQsY,EACRzW,KAAM2D,GAAOtG,IAAIJ,EAAU,oBAE/ByJ,gCAAiC,CAC7Bxb,SAAUyY,GAAOtG,IAAIJ,EAAU,wBAEnC0J,8BAA+B,CAC3BC,MAAOjD,GAAOtG,IAAIsG,GAAOzG,WAAW,CAChC2J,MAAO5J,EAAU,cACjB6J,SAAU7J,EAAU,cACpB8J,KAAM9J,EAAU,iBAEpB+J,MAAOrD,GAAOtG,IAAIsG,GAAOzO,SAAS+H,EAAU,qBAEhDgK,oCAAqC,CACjCC,MAAOjK,EAAU,cACjBkD,WAAYlD,EAAU,cACtB+C,KAAM2D,GAAOtG,IAAIJ,EAAU,oBAE/ByZ,+BAAgC,CAC5B1W,KAAM2D,GAAOtG,IAAIJ,EAAU,mBAC3B/R,SAAUyY,GAAOtG,IAAIJ,EAAU,wBAEnCkK,+BAAgC,CAC5BC,oBAAqBnK,EAAU,cAC/B0I,QAAShC,GAAOtG,IAAIsG,GAAOzO,SAASuhB,KAExCpP,uBAAwB,CACpBjF,SAAUnF,EAAU,sBACpB6E,SAAU7E,EAAU,eAExB6uB,6BAA8B,CAC1BC,UAAWtV,EACXuV,UAAWvV,GAEfnP,qBAAsB,CAClBpc,SAAUyY,GAAOtG,IAAIJ,EAAU,wBAEnCsK,0BAA2B,CACvBnF,SAAUnF,EAAU,sBACpBuK,QAAS7D,GAAOtG,IAAIJ,EAAU,uBAC9BwK,OAAQ9D,GAAOtG,IAAIJ,EAAU,wBAEjCyK,yBAA0B,CACtB5J,MAAO6F,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,YACtElV,MAAOge,GAAOtG,IAAIsG,GAAOvM,QAAQ4F,IAAcA,IAAc,CAAE1F,WAAY,CAAEoD,UAAW,kBAAmB/I,OAAQ,CAAE4J,GAAI,CAAC,MAAO,CAAEnb,KAAM,eACzI4f,KAAM2D,GAAOtG,IAAIJ,EAAU,mBAC3B/R,SAAUyY,GAAOtG,IAAIJ,EAAU,wBAEnC0Z,4CAA6C,CACzCC,WAAY5Z,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,kBAEpE8M,+BAAgC,CAC5BtB,OAAQ1C,GAAOtG,IAAIJ,EAAU,qBAC7BkB,OAAQsY,GAEZI,0CAA2C,CACvC7W,KAAM2D,GAAOtG,IAAIJ,EAAU,mBAC3BkB,OAAQsY,GAEZ7O,iCAAkC,CAC9BzJ,OAAQsY,EACRlQ,aAAc5C,GAAOtG,IAAIJ,EAAU,6BAEvC4K,4BAA6B,CACzBC,OAAQ9K,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,cAEhEmN,yBAA0B,CACtB9c,SAAUyY,GAAOtG,IAAIJ,EAAU,wBAEnCgL,6BAA8B,CAC1BnK,MAAO6F,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,aAE1EqN,0BAA2B,CACvBlI,KAAM2D,GAAOtG,IAAIJ,EAAU,oBAE/BkL,4BAA6B,CACzBhK,OAAQsY,GAEZrO,wBAAyB,CACrBjK,OAAQsY,GAEZK,uBAAwB,CACpBC,WAAYN,EACZO,QAASP,EACTQ,gBAAiBha,EAAU,eAE/Bia,4CAA6C,CACzC/Y,OAAQwF,GAAOtG,IAAIJ,EAAU,qBAC7B+C,KAAM2D,GAAOtG,IAAIJ,EAAU,oBAE/BoL,2BAA4B,CACxBjG,SAAUnF,EAAU,iBAExBqL,uBAAwB,CACpBtI,KAAM2D,GAAOtG,IAAIJ,EAAU,oBAE/BgvB,uBAAwB,CACpBjsB,KAAM2D,GAAOtG,IAAIJ,EAAU,oBAE/BsL,2BAA4B,CACxBxC,SAAUpC,GAAOtG,IAAIJ,EAAU,qBAC/B+C,KAAM2D,GAAOtG,IAAIJ,EAAU,oBAE/BuL,4BAA6B,CACzBtd,SAAU+R,EAAU,yBAG7B,CAAEzb,QAAS,gBACf,CAAEuS,SAAU,YAAavS,QAAS,8CC3OlCmO,iBAAwB,aAAc,CAAEhM,OAAO,wBAC1BmQ,iBAAyBA,cAAsBA,gBAAwBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,gBAAwBA,sBAAyB,QAC1QiJ,EAAS7K,0BACgB,CAC3BohB,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,iCACZiY,MAAO,EACPrX,OAAQ,WAENgkB,EAA2B,CAC7BC,kBAAmB,CACfhR,QAAS,GACTC,WAAY,EACZC,KAAM,UAEV+Q,oBAAqB,CACjBjR,QAAS,GACTC,WAAY,GACZC,KAAM,UAEVgR,2BAA4B,CACxBlR,QAAS,GACTC,WAAY,EACZC,KAAM,UAEV0Q,0BAA2B,CACvB5Q,QAAS,EACTC,WAAY,EACZC,KAAM,UAEViR,uBAAwB,CACpBnR,QAAS,EACTC,WAAY,EACZC,KAAM,GAEVc,sBAAuB,CACnBhB,QAAS,GACTC,WAAY,EACZC,KAAM,WAEVM,sBAAuB,CACnBR,QAAS,EACTC,WAAY,EACZC,KAAM,GAEVkR,2BAA4B,CACxBpR,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVY,0BAA2B,CACvBd,QAAS,GACTC,WAAY,GACZC,KAAM,UAEVmR,qBAAsB,CAClBrR,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVW,6BAA8B,CAC1Bb,QAAS,GACTC,WAAY,EACZC,KAAM,WAEVgB,oBAAqB,CACjBlB,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVoR,oBAAqB,CACjBtR,QAAS,GACTC,WAAY,GACZC,KAAM,UAEVK,4BAA6B,CACzBP,QAAS,EACTC,WAAY,EACZC,KAAM,GAEVO,uBAAwB,CACpBT,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVI,4BAA6B,CACzBN,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVqR,sBAAuB,CACnBvR,QAAS,GACTC,WAAY,EACZC,KAAM,UAEVsR,qBAAsB,CAClBxR,QAAS,GACTC,WAAY,EACZC,KAAM,kCAGiB,CAC3B9T,kCACAC,uBAAwB,EACxBC,UAAW,GACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXnY,KAAM,mBAEVoY,cAAe,CACXnY,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVmX,MAAO,CACH4X,UACArX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,uBACAE,uBAAuB,EACvBD,uBAAuB,EACvBU,UAAW,CACPtpB,gBACAupB,KAAM,EACNpkB,OAAQ,GAEZqkB,aAAc,CACVxpB,OAAQ,SACRupB,KAAM,EACNpkB,OAAQ,GAEZ8jB,SAAU,CACNC,SAAU,kBACVC,QAAS,kBACTC,UAAW,GACXC,SAAU,MAGlBqkB,QAAS,CACLC,QAAS,CACLrgB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,IAE7BF,UAAW,CACPC,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAEhC7nB,MAAO,CACH4nB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,IAE1BJ,YAAa,CACTG,eACAC,WAAY,CAAC,IAAK,EAAG,EAAG,EAAG,EAAG,IAElCH,SAAU,CACNE,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAEhCqgB,gBAAiB,CACbtgB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAG7CR,WAAY,CACRiP,WAAY,CACRzlB,SAAU,GACVoT,OAAQ,EACRtV,MAAO,KAEX0Y,WAAYigB,iCAGO1+B,EAASQ,SAC1BqC,EAAaD,EAAO1C,WAAWxR,UAAK,EAAW8R,GAC/CsC,EAAYF,EAAO7C,UAAUrR,UAAK,EAAWsR,KAC3C2C,SAAS,cAAeC,EAAOnI,IAAImI,EAAOG,WAAW,CACzDC,KAAMH,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WAC1DuC,WAAYL,EAAOM,IAAIN,EAAO3F,QAAQ4F,IAAcA,IAAc,CAAE1F,WAAY,CAAEoD,UAAW,kBAAmB/I,OAAQ,CAAE4J,GAAI,CAAC,MAAO,CAAEnb,KAAM,eAC/I,CAAEoB,QAAS,gBAAkB,CAC5B+I,QAAS,KAAO,CACZ4S,KAAM,yBAGNL,SAAS,cAAeC,EAAOnI,IAAImI,EAAOG,WAAW,CACzDC,KAAMH,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WAC1DuC,WAAYL,EAAOM,IAAIN,EAAO3F,QAAQ4F,IAAcA,OACrD,CAAExb,QAAS,gBAAkB,CAC5B+I,QAAS,KAAO,CACZ4S,KAAM,kBACNC,WAAY,CACRE,MAAS,YAIbR,SAAS,YAAaC,EAAOnI,IAAImI,EAAO7H,SAAS6H,EAAOxF,WAAW,CAAEE,SAAS,IAAS,CAAEnC,UAAW,EAAGC,UAAW,IAAM,CAC5HhL,QAAS,IAAM,CAAC,EAAG,EAAG,YAEpB+hC,EAAU70B,GAAYsF,EAAOM,IAAIN,EAAOjG,WAAW,CACrD,CACItW,KAAM,SACNkL,KAAMqR,EAAOxF,WAAW,CAAEE,QAAAA,IAC1BV,OAAS/R,QAAYmM,EAAIiE,cAAiB,IAANpQ,EAAkB,EAAmE,UAAxC,UAAXA,EAAEqQ,WAAwB,IAAPlE,EAAgBA,EAAKnM,EAAE6E,WAAwB,IAAPuL,EAAgBA,EAAK,IAE1J,CACI5U,KAAM,SACNkL,KAAMqR,EAAOG,WAAW,CACpB7H,IAAK0H,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,QAAAA,KACpC5N,IAAKkT,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,QAAAA,MACrC,CAAEjW,QAAS,UACduV,OAAS/R,IAAO,CACZqQ,IAAKrQ,MAAAA,EAA6BA,EAAI,EACtC6E,IAAK7E,MAAAA,EAA6BA,EAAI,UAI1C8X,SAAS,aAAcwvB,GAAO,MAC9BxvB,SAAS,eAAgBwvB,OACzBxvB,SAAS,YAAaC,EAAOjG,WAAW,CAC5C,CACItW,KAAM,SACNkL,KAAMqR,EAAOG,WAAW,CACpB7H,IAAK0H,EAAOM,IAAIJ,EAAU,oBAC1BpT,IAAKkT,EAAOM,IAAIJ,EAAU,uBAGlC,CACIzc,KAAM,SACNkL,KAAMqR,EAAOxF,WAAW,CAAEE,SAAS,MAExC,CAAEjW,QAAS,iBACR+qC,EAAiB,CAAC1xB,EAAM2xB,EAAYC,EAAYC,EAAeC,EAAenrC,EAASwU,SACrF42B,EAAc,GACdD,UACOx1B,KAAKnB,EAAM22B,IAAgBzmC,eAClBlD,GAAK+Z,EAAOnI,IAAIoB,EAAM22B,GAAe3pC,GAAI,CACjDgR,gBAA6C,IAA5BtJ,EAAKtK,KAAK,QAAQgR,iBAIzCw1B,EAAW7pB,EAAOG,WAAWvI,GAC/BnU,KAAMuc,EAAOnI,IAAImI,EAAOM,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAAA,MAAY,CAClFyJ,OAAQ,KAAM,KAEjBvH,EAAOvE,QAAS,CAAC,CAAEpY,KAAM,UACzB2c,EAAOtE,MAAOzC,GACZ42B,GACJ,CAAEprC,QAAAA,EAAS6X,sBAAsB,IAC9B5C,EAAU,CAAC,CACTjW,KAAMgsC,EACN9gC,KAAMsK,EAAM02B,GAAeD,YAE/BE,KACQvsC,KAAK,CACTI,KAAM,SACN6V,YACA3K,KAAMk7B,WAGPzvB,KAAKnB,GAAO9P,eACP9F,KAAK,CACTI,KAAMwC,EACNuG,MAAQvE,QACAmM,KACS,cAAwE,UAAlDnM,MAAAA,OAA6B,EAASA,EAAExE,YAAyB,IAAP2Q,OAAgB,EAASA,EAAG9M,QAAQ,cAAe,OACnIrB,SACF,QACLmU,EAAOnS,EAAIoI,OAAO+J,KAAKnS,GAAK,SACd,iBAANA,IAAiF,kBAA1B,EAASmS,EAAKhX,SAAgF,kBAA1B,EAASgX,EAAKhX,SAA2E,uBAAtB,EAASgX,EAAK,MAE9NzL,KAAMk7B,EACN7vB,OAAS/R,IAAO,CAAExE,KAAMwC,SAGzB+Z,EAAOjG,WAAWL,EAAS,CAAEjV,QAAAA,EAASkc,cAAe,GAAGlc,cAE3Dsb,SAAS,kBAAmByvB,EAAe,4BAA6B,SAAU,QAAS,qBAAsB,oBAAqB,kBAAmB,CAC7JM,qBAAsB,CAClBlpC,MAAOoZ,EAAOxF,cAElBu1B,oBAAqB,CACjBz3B,IAAK4H,EAAU,mBACfpT,IAAKoT,EAAU,oBAEnB8vB,qBAAsB,CAClB9tC,EAAGge,EAAU,mBACbzX,EAAGyX,EAAU,oBAEjB+vB,kBAAmB,CACfnhC,OAAQoR,EAAU,4BAClBiU,MAAOlU,EAAW,CAAEtC,UAAW,cAC/B0d,MAAOrb,EAAOM,IAAIN,EAAOxF,oBAGzBuF,SAAS,2BAA4ByvB,EAAe,2BAA4B,SAAU,SAAU,oBAAqB,KAAM,iBAAkB,CACrJ5U,kBAAmB,CACftwB,KAAM2V,EAAW,CAAEtC,UAAW,SAAU/I,OAAQ,CAAEgc,OAAQ,WAAYntB,KAAM,WAAY2wB,eAAe,MAE3G8b,oBAAqB,CACjBphC,OAAQkR,EAAOnI,IAAIoI,EAAW,CAAExC,KAAM,kBAAoB,CAAEjQ,QAAS,IAAM,eAG3EuS,SAAS,eAAgByvB,EAAe,yBAA0B,SAAU,SAAU,oBAAqB,KAAM,eAAgB,CACrIW,oBAAqB,CACjBvhB,OAAQ3O,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,eAEhEoyB,oBAAqB,CACjBphC,OAAQkR,EAAOnI,IAAIoI,EAAW,CAAExC,KAAM,gBAAkB,CAAEjQ,QAAS,IAAM,6BAGxD4K,GAAWo3B,EAAe,sBAAuB,SAAU,QAAS,qBAAsB,KAAM,iBAAkB,CACvIM,qBAAsB,CAClBlpC,MAAOoZ,EAAOxF,WAAWpC,IAE7B23B,oBAAqB,CACjBnpC,MAAOoZ,EAAOG,WAAW,CACrBiwB,cAAepwB,EAAOxF,WAAWpC,GACjCi4B,cAAerwB,EAAOxF,WAAWpC,MAGzCk4B,2BAA4B,CACxB1pC,MAAOoZ,EAAOG,WAAW,CACrB7H,IAAK0H,EAAOxF,aACZ1N,IAAKkT,EAAOxF,aACZ+1B,KAAMvwB,EAAOxF,aACbg2B,UAAWxwB,EAAOxF,gBAG1Bi2B,sBAAuB,CACnB7pC,MAAOoZ,EAAOG,WAAW,CACrB7H,IAAK0H,EAAOxF,aACZ1N,IAAKkT,EAAOxF,aACZk2B,QAAS1wB,EAAOxF,oBAIpBuF,SAAS,iBAAkBhJ,EAAQ45B,+BACpBv4B,GAAWo3B,EAAe,oBAAqB,SAAU,QAAS,qBAAsB,KAAM,eAAgB,CACjIM,qBAAsB,CAClBlpC,MAAOoZ,EAAOxF,WAAW5C,GAAE8C,SAAS,GAAStC,KAEjD23B,oBAAqB,CACjBnpC,MAAOoZ,EAAOG,WAAW,CACrBiwB,cAAepwB,EAAOxF,WAAW5C,GAAE8C,SAAS,GAAStC,IACrDw4B,cAAe5wB,EAAOxF,WAAW5C,GAAE8C,SAAS,GAAStC,OAG7Dy4B,6BAA8B,CAC1BjqC,MAAOoZ,EAAOG,WAAW,CACrBiwB,cAAepwB,EAAOxF,WAAW5C,GAAE8C,SAAS,GAAStC,IACrDw4B,cAAe5wB,EAAOxF,WAAW5C,GAAE8C,SAAS,GAAStC,OAG7D04B,oBAAqB,CACjBlqC,MAAOoZ,EAAOG,WAAW,CACrBiwB,cAAepwB,EAAOxF,WAAW5C,GAAE8C,SAAS,GAAStC,IACrDw4B,cAAe5wB,EAAOxF,WAAW5C,GAAE8C,SAAS,GAAStC,IACrDwW,OAAQ1O,EAAU,uBAItBH,SAAS,eAAgBhJ,EAAQg6B,iBACjChxB,SAAS,kBAAmBC,EAAOjG,WAAW,CAAC,WAAY,eAAgB,aAAaxM,SAAU,CACtG9J,KAAMV,EACNyJ,cAA6D,kBAAnB,EAASvE,EAAElF,IACrDiX,eAAmB5F,EAAIiE,EAAIoC,QAAY,EAAG1X,GAAqI,UAA9C,UAAjD,UAAhBkF,EAAEid,gBAA6B,IAAP9Q,EAAgBA,EAAKnM,EAAE+oC,oBAAiC,IAAP34B,EAAgBA,EAAKpQ,EAAEgpC,iBAA8B,IAAPx2B,EAAgBA,EAAK,IAC5M9L,KAAMqR,EAAOG,WAAW,EACnBpd,GAAIid,EAAOxF,WAAW,CAAEE,SAAS,EAAMpC,UAAYxL,IAAK,aAE5D,CAAErI,QAAS,uBACRsb,SAAS,kBAAmByvB,EAAe,uBAAwB,SAAU,QAAS,qBAAsB,KAAM,kBAAmB,CACzIM,qBAAsB,CAClBlpC,MAAOsZ,EAAU,oBAErB6vB,oBAAqB,CACjBK,cAAelwB,EAAU,mBACzB0wB,cAAe1wB,EAAU,oBAE7B2wB,6BAA8B,CAC1BT,cAAelwB,EAAU,mBACzB0wB,cAAe1wB,EAAU,mBACzB2gB,MAAO7gB,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,SAAS,EAAMpC,IAAK,MAE9D44B,kCAAmC,CAC/Bd,cAAelwB,EAAU,mBACzB0wB,cAAe1wB,EAAU,mBACzB2gB,MAAO7gB,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,SAAS,EAAMpC,IAAK,MAE9Dm4B,sBAAuB,CACnBL,cAAelwB,EAAU,mBACzB0wB,cAAe1wB,EAAU,mBACzBwwB,QAAS1wB,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,SAAS,0BAG/BtC,GAAW4H,EAAOG,WAAW,CACnDiwB,cAAepwB,EAAOxF,WAAWpC,GACjCw4B,cAAe5wB,EAAOxF,WAAWpC,IAClC,CAAE3T,QAAS,YACNsb,SAAS,mBAAoBC,EAAOnI,IAAImI,EAAOG,WAAW,CAC9Dic,YAAapc,EAAOxF,WAAW,CAAEE,SAAS,IAC1C2hB,WAAYrc,EAAO7H,SAAS6H,EAAOxF,eACpC,CAAE/V,QAAS,qBAAuB,CACjC+I,QAAS,KAAO,CACZ4uB,eACAC,WAAY,CAAC,EAAG,yBAGC,CAAC8U,EAAmBlxB,EAAW,CAAExC,KAAM,qBAAwB,CACpFmD,wBAAyB,CACrBC,MAAOb,EAAO7H,SAAS+H,EAAU,eAErCY,iCAAkC,CAC9BC,MAAOd,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WAC3DkD,WAAYhB,EAAO3F,QAAQ4F,IAAcA,IAAc,CAAE1F,WAAY,CAAEoD,UAAW,kBAAmB/I,OAAQ,CAAE4J,GAAI,CAAC,MAAO,CAAEnb,KAAM,eAEvI4d,qCAAsC,CAClCC,UAAWhB,EAAU,4BAEzBiB,8BAA+B,CAC3BC,OAAQ+vB,EACRjwB,UAAWhB,EAAU,qBAEzBmB,0BAA2B,CACvBD,OAAQ+vB,EACR7vB,OAAQtB,EAAO3F,QAAQ4F,EAAW,CAAEtC,UAAW,cAAgBuC,EAAU,eAE7EsB,qBAAsB,CAClBC,KAAMvB,EAAU,cAEpBwB,6BAA8B,CAC1BC,QAAS3B,EAAOM,IAAIN,EAAOjI,gBAE/B6J,2BAA4B,CACxBC,QAAS7B,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,SAAS,KACjDoH,QAAS9B,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,SAAS,KACjDqH,QAAS/B,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,SAAS,KACjDwG,UAAWhB,EAAU,uBAEzB8B,uBAAwB,CACpBd,UAAWhB,EAAU,mBAEzB+B,0BAA2B,CACvBC,OAAQlC,EAAOxF,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAE7CqV,uCAAwC,CACpCD,OAAQlC,EAAOxF,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IACzCsV,mBAAoBpC,EAAOxF,cAE/B8H,sBAAuB,CACnBhY,KAAM2V,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBAE9DyE,wBAAyB,CACrBC,YAAavC,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBACjE2E,QAASzC,EAAO7H,SAAS6H,EAAOxF,WAAW,CAAElC,IAAK,EAAGxL,IAAK,MAE9D4V,uBAAwB,CACpB9b,MAAOsZ,EAAU,aACjByC,OAAQ3C,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,SAAS,MAEpD02B,wBAAyB,CACrBxqC,MAAOsZ,EAAU,mBACjBmxB,MAAOnxB,EAAU,cAErB0C,0BAA2B,CACvBC,QAAS7C,EAAOM,IAAIN,EAAOjI,eAC3B+K,WAAY9C,EAAOM,IAAIN,EAAOjI,kCAGd,CAACkQ,EAAYqpB,EAAiBrxB,EAAW,CAAExC,KAAM,gBAAkB0zB,EAAmBlxB,EAAW,CAAExC,KAAM,2BACvHxE,EAAQ,CACVoV,wBAAyB,CACrB7L,YAAavC,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBACjEwQ,QAASrO,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAMF,EAAYvJ,IAAI,qCAC7Eka,WAAYvO,EAAOnI,IAAImI,EAAOG,WAAW,CACrCqO,gBAAiBxO,EAAOnI,IAAImI,EAAOxF,aAAc,CAC7CvD,WAAsD,kCAArCtJ,EAAKsF,MAAM5P,KAAK,WAAWgR,QAEhDoa,MAAOzO,EAAOnI,IAAImI,EAAOxF,aAAc,CACnCvD,WAAsD,wCAArCtJ,EAAKsF,MAAM5P,KAAK,WAAWgR,QAEhDqa,YAAa1O,EAAOnI,IAAImI,EAAOxF,aAAc,CACzCvD,WAAsD,wCAArCtJ,EAAKsF,MAAM5P,KAAK,WAAWgR,UAEhD,CACA4C,WAAgD,wBAA/BtJ,EAAKtK,KAAK,WAAWgR,SAG9Csa,sBAAuB,CACnBC,OAAQ0iB,GAEZziB,qBAAsB,CAClBD,OAAQ1O,EAAU,gBAClB4O,IAAK9O,EAAO7H,SAAS6H,EAAOG,WAAW,CACnCyO,OAAQ3O,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEoC,SAAU,CAAE+X,OAAQ,cAAephB,KAAM,CAAC,MAAO,MAAO,MAAO,CAAEtK,KAAM,eAC7HyL,OAAQmR,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEoC,SAAU,oBAChEgY,GAAI/O,EAAW,CAAExC,KAAM,CAAC,UAAW,SAAU,YAC9C,CAAEhZ,QAAS,oBAElBwqB,uBAAwB,CACpBlO,MAAOd,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WAC3DkD,WAAYhB,EAAO7H,SAAS8H,EAAW,CAAEtC,UAAW,kBAAmB/I,OAAQ,CAAE4J,GAAI,CAAC,MAAO,MAAO,CAAEnb,KAAM,eAEhH6rB,6BAA8B,CAC1B3L,aAAcvD,EAAOM,IAAIN,EAAO7H,SAAS8H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,oBAEjGqR,gCAAiC,CAC7B3L,OAAQtD,EAAU,mBAClBkP,SAAUpP,EAAOM,IAAIN,EAAOjI,gBAEhCsX,4BAA6B,CACzBC,YAAatP,EAAOM,IAAIL,EAAW,CAAExC,KAAM,iBAC3C8R,WAAYvP,EAAOM,IAAIL,EAAW,CAAExC,KAAM,oBAC1C+R,KAAMxP,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,SAAS,KAC9C+U,cAAezP,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,SAAS,KACvDgV,qBAAsB1P,EAAOM,IAAIN,EAAOjI,gBAE5C4X,6BAA8B,CAC1BvO,OAAQ+vB,GAEZvhB,wBAAyB,CACrBC,MAAO3P,EAAU,cAErB4P,4BAA6B,CACzB3M,MAAOjD,EAAU,mBACjB2P,MAAO7P,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,SAAS,MAEnDqV,2BAA4B,CACxBC,UAAWhQ,EAAO7H,SAAS+H,EAAU,wBAEzCqxB,+BAAgC,CAC5BC,SAAUxxB,EAAO7H,SAAS6H,EAAOG,WAAW,CACxCmR,QAASrR,EAAW,CAAExC,KAAM,mBAC5B9C,MAAOsF,EAAW,CAAExC,KAAM,iBAE9Bg0B,OAAQzxB,EAAOM,IAAIN,EAAOjI,gBAE9BkY,yBAA0B,CACtBxC,QAASzN,EAAO7H,SAAS+H,EAAU,gBAEvCgQ,sBAAuB,CACnB/M,MAAOjD,EAAU,mBACjBpJ,IAAKkJ,EAAOM,IAAIN,EAAOjI,gBAE3BoY,uBAAwB,CACpB7G,OAAQpJ,EAAU,mBAClBpJ,IAAKkJ,EAAOM,IAAIN,EAAOjI,gBAE3B25B,6BAA8B,CAC1BnuB,aAAcvD,EAAO3F,QAAQ4F,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBAAoBoC,EAAU,oBAC/GpJ,IAAKkJ,EAAOM,IAAIN,EAAOjI,gBAE3BqY,2BAA4B,CACxB9lB,KAAM2V,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBAC1DuS,KAAMrQ,EAAOM,IAAIN,EAAOxF,WAAW,CAAEE,SAAS,MAElD4V,qBAAsB,CAClBlP,OAAQpB,EAAOM,IAAI6wB,GACnB5gB,KAAMvQ,EAAO7H,SAAS+H,EAAU,mBAChC5Y,QAAS0Y,EAAOM,IAAIN,EAAOjI,gBAE/ByY,qBAAsB,CAClBpP,OAAQpB,EAAOM,IAAI6wB,GACnB7mC,KAAM0V,EAAOM,IAAIJ,EAAU,oBAE/BuQ,oBAAqB,CACjBvN,IAAKjD,EAAW,CAAEtC,UAAW,MAAO/I,OAAQ,CAAE2J,SAAU,CAAEvH,SAAU,sBAExE0Z,4BAA6B,CACzB7K,QAAS7F,EAAOM,IAAIN,EAAO7H,SAAS6H,EAAOG,WAAW,CAClD1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBAC1DiH,SAAU7E,EAAU,yBAI1B5F,EAAM,YACAjG,IAAI,sBAAsBlL,eAC9BhG,GAAKyU,OAAKqB,EAAM9V,IAAO8kB,MAExB3N,0BAEqB3L,GAASqR,EAAO2Y,eAAe1Y,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,qBAAwBnP,EAAM,CAC7IiqB,sBAAuB7hB,EAAQ8hB,qBAC/BC,uBAAwB,CACpBxuB,KAAM,uBACNisB,WAAW,EACXC,SAAS,EACTuC,QAAQ,EACRtC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,GACfgC,WAAY,KACZ/B,eAAgB,IAChBpR,QAAS,uBACTqR,WAAY,8BACZiY,MAAO,EACPrX,OAAQ,KAEZmB,oBAAqB,CACjB3uB,KAAM,oBACNisB,WAAW,EACXC,SAAS,EACTuC,QAAQ,EACRtC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,EACfgC,WAAY,IACZ/B,eAAgB,IAChBpR,QAAS,oBACTqR,WAAY,2BACZiY,MAAO,EACPrX,OAAQ,8BAGgBnpB,GAASqR,EAAO2Y,eAAe1Y,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,8BAAiCnP,EAAM,CACtJiqB,sBAAuB7hB,EAAQmiB,qBAC/BC,mBAAoB,CAChBhC,sBAAuB,EACvBC,uBAAwB,EACxBC,UAAW,GACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXnY,KAAM,wBAEVoY,cAAe,CACXnY,WAAY,CACRE,MAAO,KAEXH,KAAM,kBAEVmX,MAAO,CACH4X,MAAO,EACPrX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,2BACAC,uBAAuB,EACvBilB,mBAAmB,EACnBvkB,UAAW,CACPtpB,OAAQ,MACRupB,KAAM,EACNpkB,OAAQ,GAEZqkB,aAAc,CACVxpB,OAAQ,IACRupB,KAAM,EACNpkB,WAEJ8jB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAGlBqkB,QAAS,CACLC,QAAS,CACLrgB,eACAC,WAAY,CAAC,EAAG,IAEpBF,UAAW,CACPC,eACAC,WAAY,CAAC,EAAG,IAEpB7nB,MAAO,CACH4nB,YAAa,EACbC,WAAY,CAAC,IAEjBJ,YAAa,CACTG,eACAC,WAAY,CAAC,EAAG,IAEpBH,SAAU,CACNE,eACAC,WAAY,CAAC,EAAG,IAEpBqgB,gBAAiB,CACbtgB,eACAC,WAAY,CAAC,EAAG,KAGxBR,WAAY,CACRA,WAAYigB,IAGpB1iB,gBAAiB,CACbjC,kCACAC,mCACAC,UAAW,EACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXnY,KAAM,uBAEVoY,cAAe,CACXpY,KAAM,iBAEVmX,MAAO,CACH4X,MAAO,EACPrX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,eAAgB,EAChB4B,uBAAuB,EACvB3B,uBAAuB,EACvBilB,mBAAmB,EACnBvkB,UAAW,CACPtpB,gBACAupB,KAAM,GACNpkB,YAEJqkB,aAAc,CACVxpB,gBACAupB,KAAM,EACNpkB,OAAQ,GAEZ8jB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,MAGlBqkB,QAAS,CACLC,QAAS,CACLrgB,YAAa,EACbC,WAAY,CAAC,IAEjBF,UAAW,CACPC,YAAa,EACbC,WAAY,CAAC,IAEjB7nB,MAAO,CACH4nB,YAAa,EACbC,WAAY,CAAC,IAEjBJ,YAAa,CACTG,YAAa,EACbC,WAAY,CAAC,IAEjBH,SAAU,CACNE,YAAa,EACbC,WAAY,CAAC,IAEjBqgB,gBAAiB,CACbtgB,YAAa,EACbC,WAAY,CAAC,KAGrBR,WAAY,CACRA,WAAYigB,IAGpBxiB,sBAAuB,CACnBnC,kCACAC,uBAAwB,EACxBC,UAAW,GACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXnY,KAAM,mBAEVoY,cAAe,CACXnY,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVmX,MAAO,CACH4X,UACArX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,uBACAE,uBAAuB,EACvBD,uBAAuB,EACvB6B,WAAW,EACXnB,UAAW,CACPtpB,gBACAupB,KAAM,EACNpkB,OAAQ,GAEZqkB,aAAc,CACVxpB,OAAQ,SACRupB,KAAM,EACNpkB,OAAQ,GAEZ8jB,SAAU,CACNC,SAAU,kBACVC,QAAS,kBACTC,UAAW,GACXC,SAAU,MAGlBqkB,QAAS,CACLC,QAAS,CACLrgB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,IAE7BF,UAAW,CACPC,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAEhC7nB,MAAO,CACH4nB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,IAE1BJ,YAAa,CACTG,eACAC,WAAY,CAAC,IAAK,EAAG,EAAG,EAAG,EAAG,IAElCH,SAAU,CACNE,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAEhCqgB,gBAAiB,CACbtgB,eACAC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAG7CR,WAAY,CACRiP,WAAY,CACRzlB,SAAU,GACVoT,OAAQ,EACRtV,MAAO,KAEX0Y,WAAYigB,IAGpBtiB,kBAAmB,CACfrC,sBAAuB,EACvBC,uBAAwB,EACxBC,UAAW,GACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXnY,KAAM,mBAEVoY,cAAe,CACXnY,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVmX,MAAO,CACH4X,MAAO,EACPrX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,2BACAC,uBAAuB,EACvBilB,mBAAmB,EACnBvkB,UAAW,CACPtpB,OAAQ,MACRupB,KAAM,EACNpkB,OAAQ,GAEZqkB,aAAc,CACVxpB,OAAQ,IACRupB,KAAM,EACNpkB,WAEJ8jB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAGlBqkB,QAAS,CACLC,QAAS,CACLrgB,eACAC,WAAY,CAAC,EAAG,IAEpBF,UAAW,CACPC,eACAC,WAAY,CAAC,EAAG,IAEpB7nB,MAAO,CACH4nB,YAAa,EACbC,WAAY,CAAC,IAEjBJ,YAAa,CACTG,eACAC,WAAY,CAAC,EAAG,IAEpBH,SAAU,CACNE,eACAC,WAAY,CAAC,EAAG,IAEpBqgB,gBAAiB,CACbtgB,eACAC,WAAY,CAAC,EAAG,KAGxBR,WAAY,CACRiP,WAAY,CACRzlB,SAAU,GACVoT,OAAQ,EACRtV,MAAO,KAEX0Y,WAAYigB,IAGpBriB,6BAA8B,CAC1BtC,kCACAC,mCACAC,UAAW,EACX+X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtBlkB,wBAAwB,EACxB+X,kBAAkB,EAClB9W,cAAe,CACXnY,KAAM,mBAEVoY,cAAe,CACXnY,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVmX,MAAO,CACH4X,MAAO,EACPrX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,eAAgB,EAChB4B,uBAAuB,EACvB3B,uBAAuB,EACvBilB,mBAAmB,EACnBvkB,UAAW,CACPtpB,gBACAupB,KAAM,GACNpkB,YAEJqkB,aAAc,CACVxpB,gBACAupB,KAAM,EACNpkB,OAAQ,GAEZ8jB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,MAGlBqkB,QAAS,CACLC,QAAS,CACLrgB,YAAa,EACbC,WAAY,CAAC,IAEjBF,UAAW,CACPC,YAAa,EACbC,WAAY,CAAC,IAEjB7nB,MAAO,CACH4nB,YAAa,EACbC,WAAY,CAAC,IAEjBJ,YAAa,CACTG,YAAa,EACbC,WAAY,CAAC,IAEjBH,SAAU,CACNE,YAAa,EACbC,WAAY,CAAC,IAEjBqgB,gBAAiB,CACbtgB,YAAa,EACbC,WAAY,CAAC,KAGrBR,WAAY,CACRiP,WAAY,CACRzlB,SAAU,GACVoT,OAAQ,EACRtV,MAAO,KAEX0Y,WAAYigB,sBCpgC5BzrC,OAAOuC,eAAe8Y,GAAS,aAAc,CAAE9kB,OAAO,iCACvB,EAC/B,MAAMggB,GAASzR,GACT0R,GAAWzR,2BACjB,SAA8BgI,EAASQ,SAC7BsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,KAC7CmC,SAAS,YAAa6G,GAAO+E,aAAazL,EAAU,aAAc,CAAES,cAAe,iBACnFZ,SAAS,YAAa6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACvDyL,UAAW3L,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,0BAC9D8I,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,eACzBujB,GAAOlL,MAAOmL,GAASgF,kBACzB,CAAE7U,SAAU,YAAavS,QAAS,cAAgB,CACjD+I,QAAS,KAAO,CACZoe,UAAW,8BACXxK,OAAQ,uBCfpB/Q,OAAOuC,eAAewnB,GAAS,aAAc,CAAExzB,OAAO,iCACvB,EAC/B,MAAMggB,GAASzR,GACT0R,GAAWzR,2BACjB,SAA8BgI,EAASQ,SAC7BsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,KAC7CmC,SAAS,YAAa6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACvD1c,KAAMojB,GAASyT,qBAAqBpa,EAAU,mBAC9Cqa,UAAW3T,GAAOzG,WAAW,CACzB1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,+BACzD8I,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,UACzBujB,GAAOlL,MAAO,CACX8e,kBAAmB,CACfnK,KAAMzJ,GAAOpM,WAAW,CAAEE,SAAS,IACnC+f,SAAU5T,GAAS6T,qBAAqBxa,EAAU,mBAClDya,aAAc/T,GAAOzG,WAAW,CAC5B1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,4BACzD8I,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,UACzBujB,GAAOlL,MAAO,CACXkf,kBAAmB,CACfjX,MAAO1D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,sBAE/D+c,wBAAyB,CACrBC,OAAQlU,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,CAAC,sBAAuB,wBAC/Fqd,OAAQvU,GAAO/O,IAAI+O,GAAOzO,SAAS+H,EAAU,oBAAqB,CAC9DjJ,gBAA+C,IAA9BtJ,EAAKtK,KAAK,UAAUgR,MACrC7G,QAAS,IAAM,CAAC,CACRmW,MAAO,wBAIvByX,yBAA0B,CACtBC,MAAOzU,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MAClEquB,OAAQvU,GAAOzO,SAAS8H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,uBAEhFmb,oBAAqB,CACjB5I,KAAMzJ,GAAOpM,WAAW,CAAEE,SAAS,OAG5C,CAAE1D,SAAU,YAAasF,sBAAsB,KAEtDmf,iBAAkB,CACdhB,SAAU7T,GAAOzG,WAAW,CACxBwD,MAAOiD,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,sBACtE4d,MAAO9U,GAAOtG,IAAIsG,GAAO7O,eACzB4jB,SAAU/U,GAAOtG,IAAIsG,GAAO7O,eAC5B6jB,OAAQhV,GAAOzO,SAAS+H,EAAU,oBAClC2b,WAAY3b,EAAU,6BAInC,CAAE5D,sBAAsB,KAC5B,CAAEtF,SAAU,OAAQvS,QAAS,cAAgB,CAC5C+I,QAAS,WACC6iB,EAAOtjB,KAAK+uB,MAAuB,WAAjB/uB,KAAKgvB,UAA2B,iBACjD,CACHt4B,KAAM,sBACN82B,UAAW,CACP92B,KAAM,kBACN4sB,KAAAA,EACAsK,aAAc,CACVl3B,KAAM,kBACN4sB,KAAAA,EACA1M,MAAO,oBAEX8W,SAAU,kCAKpBmiB,EAAmBh2B,GAAO7M,WAAW,CACvC,CACItW,KAAM,SACNkL,KAAMiY,GAAOpM,WAAW,CAAElC,OAASxL,IAAK,IACxCkN,OAAS/R,QAAYmM,SAA2B,UAAVnM,EAAE,UAAuB,IAAPmM,EAAgBA,EAAK,IAEjF,CACI3Q,KAAM,OACNkL,KAAMiY,GAAOzO,SAASyO,GAAOpM,WAAW,CAAElC,OAASxL,IAAK,IAAM,CAAEyL,UAAW,EAAGC,UAAW,IACzFwB,OAAS/R,GAAM,CAACA,MAAAA,EAA6BA,EAAI,EAAGA,MAAAA,EAA6BA,EAAI,QAGrF8X,SAAS,kBAAmB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC7DwD,MAAO1D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,qBAC3DyQ,WAAY3H,GAAOzG,WAAW,CAC1B8b,YAAa2gB,EACb1gB,SAAU0gB,EACVF,gBAAiBE,EACjBH,QAASG,EACTzgB,UAAWygB,EACX3f,MAAO2f,EACP3oC,OAAQ2S,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,OAE9C,CAAErI,QAAS,oBAAsB,CAChC+I,QAAS,KAAO,CACZmW,MAAO,mBACP4K,WAAY,CACRyN,SAAU,EACVC,YAAa,EACbC,SAAU,EACVC,UAAW,EACXloB,OAAQ,mBCtGxB5D,OAAOuC,eAAe0pB,GAAS,aAAc,CAAE11B,OAAO,qCACnB,EACnC,MAAMggB,GAASzR,GACT0R,GAAWzR,+BACjB,SAAkCgI,EAASQ,SACjCqC,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,KAC7CmC,SAAS,iBAAkB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC5DoW,UAAW3P,GAAO7O,cAClBye,QAAS5P,GAAO7O,cAChB0e,YAAa7P,GAAO7O,cACpB2e,qBAAsB9P,GAAO7O,cAC7B4e,UAAW/P,GAAO7O,cAClB6e,UAAWhQ,GAAO7O,cAClB8e,aAAcjQ,GAAO7O,cACrB+e,YAAalQ,GAAO7O,cACpBgf,iBAAkBnQ,GAAOpM,WAAW,CAAElC,IAAK,KAASxL,IAAK,MACzDkqB,cAAepQ,GAAOpM,aACtBwe,WAAYpS,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,KACpDuc,eAAgBrQ,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,OAChE+Y,QAASe,GAAOtG,IAAIL,EAAW,CAAExC,KAAM,CAAC,sBAAuB,uBAAwB,wBACvFyZ,WAAYjX,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBAChEqxB,MAAOvoB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,UAAYxL,IAAK,OAC3DgrB,OAAQlR,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,QACzD,CAAErI,QAAS,wBAA8B,CACxC+I,QAAS,IAAMqZ,GAASgS,qBACxB5iB,SAAU,CAACtI,EAAM/G,EAAO8N,EAAQY,eACpB3G,EAAKsH,SAAStI,EAAM/G,EAAO8N,EAAQY,SACD,EAAS1O,EAAMuoC,qBAA+C,EAASvoC,EAAMkxB,QAAU,QACtHhhB,IAAInJ,EAAKtK,KAAK,UAAW,0BAA2B,oBAErB,EAASuD,EAAMqwB,8BAAwD,EAASrwB,EAAMkxB,WACrHhhB,IAAInJ,EAAKtK,KAAK,kBAAmB,sCAEF,EAASuD,EAAMkxB,QAAU,IAAO,KAC/DhhB,IAAInJ,EAAKtK,KAAK,UAAW,wBAAyB,kBAEnB,EAASuD,EAAMuoC,OAAS,IAAO,KAC9Dr4B,IAAInJ,EAAKtK,KAAK,SAAU,uBAAwB,IAEpDuD,mBCvCnByJ,OAAOuC,eAAe++B,GAAS,aAAc,CAAE/qC,OAAO,oCACpB,EAClC,MAAMggB,GAASzR,GACT0R,GAAWzR,8BACjB,SAAiCgI,EAASQ,SAChCsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,KAC7CmC,SAAS,gBAAiB6G,GAAO+E,aAAazL,EAAU,YAAa,CAAES,cAAe,oBACxFsH,EAAa,CACfA,WAAYrB,GAAOtG,IAAIsG,GAAOzO,SAAS+H,EAAU,kBAE7CH,SAAS,WAAY6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACtDyH,SAAU3H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,yBAC7D8I,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,cACzBujB,GAAOlL,MAAOmL,GAAS+qB,cAAc3pB,IACvC,CAAEjR,SAAU,WAAYvS,QAAS,aAAe,CAC/C+I,QAAS,IAAM,CAAC,CACRoa,SAAU,sBACVzE,MAAO,wBClBvB9S,OAAOuC,eAAekZ,GAAS,aAAc,CAAEllB,OAAO,sGAC0E,oBACvG,IAAImlB,IAAI,CAC7B,CAAC,+BAAgC,CAAEC,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC3F,CAAC,+BAAgC,CAAED,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC3F,CAAC,mBAAoB,CAAED,SAAU,CAAC,GAAqBC,OAAQ,KAC/D,CAAC,kBAAmB,CAAED,SAAU,CAAC,EAAoB,EAAgB,GAAeC,OAAQ,CAAC,EAAqB,EAAyB,KAC3I,CAAC,kBAAmB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,KAC3D,CAAC,oBAAqB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,KAC7D,CAAC,kBAAmB,CAAED,SAAU,GAAIC,OAAQ,KAC5C,CAAC,mBAAoB,CAAED,SAAU,CAAC,EAAsB,EAAgB,GAAqBC,OAAQ,CAAC,EAA4B,EAAsB,KACxJ,CAAC,oBAAqB,CAAED,SAAU,CAAC,EAAgB,GAAeC,OAAQ,CAAC,KAC3E,CAAC,oBAAqB,CAAED,SAAU,CAAC,EAAsB,EAAqB,EAAoB,EAA4B,EAAyB,EAAsB,EAA0B,EAAgB,EAAoB,GAAeC,OAAQ,KAClQ,CAAC,iBAAkB,CAAED,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC7E,CAAC,qBAAsB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,4BAKtC,IAAIF,IAAI,CAChC,CAAC,gBAAiB,CAAC,IACnB,CAAC,SAAU,CAAC,IACZ,CAAC,gBAAiB,CAAC,IACnB,CAAC,OAAQ,CAAC,yBAKY,IAAIA,IAAI,CAC9B,CAAC,eAAgB,CAAC,IAClB,CAAC,SAAU,CAAC,IACZ,CAAC,gBAAiB,CAAC,IACnB,CAAC,OAAQ,CAAC,wBAKW,IAAIA,IAAI,CAC7B,CAAC,wBAAyB,IAC1B,CAAC,iCAAkC,CAAC,IACpC,CAAC,qCAAsC,CAAC,IACxC,CAAC,8BAA+B,CAAC,IACjC,CAAC,0BAA2B,IAC5B,CAAC,qBAAsB,IACvB,CAAC,6BAA8B,CAAC,IAChC,CAAC,2BAA4B,IAC7B,CAAC,uBAAwB,CAAC,IAC1B,CAAC,0BAA2B,IAC5B,CAAC,uCAAwC,CAAC,IAC1C,CAAC,sBAAuB,IACxB,CAAC,+BAAgC,CAAC,IAClC,CAAC,wBAAyB,CAAC,IAC3B,CAAC,uBAAwB,IACzB,CAAC,0BAA2B,uBAKR,IAAIA,IAAI,CAC5B,CAAC,wBAAyB,CAAC,IAC3B,CAAC,sBAAuB,IACxB,CAAC,qBAAsB,IACvB,CAAC,uBAAwB,CAAC,IAC1B,CAAC,6BAA8B,IAC/B,CAAC,gCAAiC,IAClC,CAAC,4BAA6B,CAAC,IAC/B,CAAC,4BAA6B,IAC9B,CAAC,6BAA8B,IAC/B,CAAC,0BAA2B,IAC5B,CAAC,wBAAyB,IAC1B,CAAC,4BAA6B,CAAC,IAC/B,CAAC,2BAA4B,IAC7B,CAAC,+BAAgC,IACjC,CAAC,yBAA0B,IAC3B,CAAC,sBAAuB,IACxB,CAAC,uBAAwB,IACzB,CAAC,2BAA4B,IAC7B,CAAC,qBAAsB,IACvB,CAAC,qBAAsB,IACvB,CAAC,oBAAqB,IACtB,CAAC,4BAA6B,MChFlC1b,OAAOuC,eAAesZ,GAAS,aAAc,CAAEtlB,OAAO,iCACvB,EAC/B,MAAMggB,GAASzR,GACTgX,GAAgB/W,GAChByR,GAAWxL,2BACjB,SAA8B+B,EAASQ,SAC7BsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/CqK,EAAa,CACfA,WAAYrB,GAAOtG,IAAIsG,GAAOzO,SAAS+H,EAAU,qBAE/CkM,EAAyBxU,GAC3ByU,UAAWzF,GAAOtG,IAAIsG,GAAOzO,SAAS+H,EAAU,oBAC7C+H,cAEoBqE,EAAYC,EAAcC,SAC3CvT,EAAQ,GACRwT,EAAuBC,GAAoB9O,EAC5CvJ,IAAIkY,GACJpb,gBACGiD,SACiD,UAAvBkY,EAAWjY,IAAItR,UAAuB,IAAPqR,EAAgBA,EAAK,IAC3DJ,UAAW0Y,EAAgBnQ,SAAS5W,kBAEnDgnB,GAAWV,OAAEA,WAAQD,MAAeG,GAAcS,eAAgB,OACpEF,EAAkB,IAAIT,KAAWD,KACjC3oB,KAAK,CACPmJ,SAAemB,EAAK0O,WAAWhI,IAAI,IAAIuS,GAAOtT,KAAK,CAAC,YAAcqZ,EAClEhe,KAAM6d,EAAQC,EAAoBC,eAGpCrpB,KAAK,CAAEmJ,UAAY,EAAMmC,KAAM6d,EAAQD,KACtC3F,GAAO5N,WAAWC,SAEvB44B,EAAwB/kB,EAAkBX,GAAcY,eAAgB,0BAA+B9M,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAMra,aAAgB8C,MAAQ9C,EAAO,2BAC1LquC,EAAuBhlB,EAAkBX,GAAcc,cAAe,yBAA8BhN,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAMra,aAAgB8C,MAAQ9C,EAAO,0BACvLypB,EAAyBJ,EAAkBX,GAAcgB,kBAAmB,oBAAyBlN,EAAW,CAAExC,KAAMha,MACxH2pB,EAAuBN,EAAkBX,GAAckB,gBAAiB,kBAAuBpN,EAAW,CAAExC,KAAMha,QAChHsc,SAAS,aAAc6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACxD1c,KAAMmjB,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAMF,EAAYvJ,IAAI,yBACrFiZ,MAAO1G,GAAOtG,IAAIsG,GAAOzO,SAASyO,GAAO/O,IAAI+O,GAAOzG,WAAWvI,GAC3D2V,MAAOrN,EAAU,mBACjBsN,YAAa5G,GAAOtG,IAAIJ,EAAU,oBAClCuN,QAAS7G,GAAOzO,SAAS+H,EAAU,gBAChCkM,GACJ,CAAEpV,SAAU,OAAQvS,QAAS,cAAgB,CAC5C+I,QAAS,KAAO,CACZ+f,MAAO,EACPE,QAAS,CAAC,CACFhqB,KAAM,iBACN6G,KAAM,0BAItB+hB,UAAWzF,GAAOtG,IAAIsG,GAAOzO,SAAS+H,EAAU,oBACjD,CAAEzb,QAAS,eAAiB,CAC3B+I,QAAS,KAAO,CACZ8f,MAAO,CAAC,CACAC,MAAO,EACPE,QAAS,CAAC,CACFhqB,KAAM,iBACN6G,KAAM,iCAKxBojB,EAAY,CACdzW,gBACQ7C,SACgC,UAAtBzG,EAAKsF,MAAMoB,aAA0B,IAAPD,OAAgB,EAASA,EAAGhR,QAAU,IAC1E,CAAC,yBAA0B,kBAAmB,sBAAsBmZ,SAAS5O,EAAKtK,KAAK,QAAQgR,WAGvG0L,SAAS,aAAc6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACxD1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,0BAC1D6P,OAAQ/G,GAAOtG,IAAIsG,GAAO/O,IAAI+O,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,IAAMoV,IAC5EE,QAAShH,GAAOtG,IAAIsG,GAAO/O,IAAI+O,GAAOpM,WAAW,CAAEE,SAAS,IAASgT,KACpE9G,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,UACzBujB,GAAOlL,MAAO,CACXmS,yBAA0BjW,GACtBtU,SAAUsjB,GAAOzO,SAAS+H,EAAU,gBACjCkM,GAEP0B,oBAAqBlW,GACjBtN,KAAM2V,KACHmM,GAEP2B,kBAAmBnW,GACftU,SAAUsjB,GAAOzO,SAAS+H,EAAU,gBACjCkM,GAEP4B,iBAAkBpW,GACdtN,KAAM2V,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WACvDsO,GAEP6B,uBAAwBrW,GACpBtN,KAAM2V,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,kBACvDsO,GAEP8B,qBAAsBtW,GAClBtU,SAAUsjB,GAAOzO,SAAS+H,EAAU,gBACjCkM,GAEP+B,gBAAiBvW,GACbtN,KAAM2V,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,eAC1DsQ,OAAQxH,GAAOtG,IAAIsG,GAAO7O,gBACvBqU,KAGZ,CAAE3nB,QAAS,eAAiB,CAC3B+I,QAAS,KAAO,CACZ/J,KAAM,iBACN6G,KAAM,yBAGNyV,SAAS,gBAAiB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC3DyH,SAAUkqB,GACTlrB,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,cACzBujB,GAAOlL,MAAOmL,GAAS+qB,cAAc3pB,EAAYmF,EAAsBF,IACzE,CAAElW,SAAU,WAAYvS,QAAS,aAAe,CAC/C+I,QAAS,KAAO,CACZoa,SAAU,sBACVzE,MAAO,SAGPpD,SAAS,iBAAkB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC5DyL,UAAWimB,GACVjrB,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,eACzBujB,GAAOlL,MAAOmL,GAASgF,eAAeqB,IACxC,CAAElW,SAAU,YAAavS,QAAS,cAAgB,CACjD+I,QAAS,KAAO,CACZoe,UAAW,0BACX1J,OAAQ,UAGRnC,SAAS,qBAAsB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAChEwQ,UAAW1Q,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,eAC/DxT,KAAM2V,IACN2Q,OAAQ1Q,EAAU,mBAClB2Q,UAAW5Q,EAAW,CAAExC,KAAM,CAAC,WAAY,gBAAiB,oBAC5DqT,KAAMlK,GAAOmK,aAAa9Q,EAAW,CAAExC,KAAM,WAC9C,CAAEhZ,QAAS,uBAAyB,CACnC+I,QAAS,KAAO,CACZmjB,UAAW,+BACXrmB,KAAM,GACNsmB,OAAQ,EACRC,UAAW,WACXC,KAAM,2BCnJlBzgB,OAAOuC,eAAeoe,GAAS,aAAc,CAAEpqB,OAAO,kCACtB,EAChC,MAAMggB,GAASzR,4BAEf,SAA+BiI,EAASpX,KAE5B+Z,SAAS,cAAe6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACzD8Q,KAAMrK,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC/B+Q,YAAatK,GAAO/O,IAAI+O,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAL3C,EAKqExL,IALrE,IAKkG,CAC9GU,QAAS,IANG,EAOZiK,UAAW,CAACs6B,EAAI9pC,IAPJ,IAOUA,EACtByP,OAAQ,IAAM,CAAC,CAAEpN,KAAM,cAAesK,OAAQ,CARlC,GAQyDqI,SARzD,MAUhBiK,YAAaN,GAAOzJ,UAAUC,EAAS,oBACvC,CACA5P,QAAS,KAAO,CACZ0jB,YAbY,EAcZhK,YAAa,SAGrB,CACA1Z,QAAS,KAAO,CACZyjB,KAAM,CACFC,YApBY,EAqBZhK,YAAa,oBCxB7B7W,OAAOuC,eAAe2pB,GAAS,aAAc,CAAE31B,OAAO,kCACtB,EAChC,MAAMggB,GAASzR,4BACf,SAA+BiI,EAASQ,SAC9BsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/CoF,EAAc4D,GAAO7M,WAAW,CAClC,CACItW,KAAM,SACNkL,KAAMsR,IACNjG,UAA2B,kBAAN/R,GAAgC,iBAANA,EAAkBA,EAAEwO,WAAa,IAEpF,CACIhT,KAAM,SACNkL,KAAMiY,GAAOpM,aACbR,UAA2B,iBAAN/R,EAAkB4Q,SAAS5Q,GAAK,GAEzD,CACIxE,KAAM,SACNkL,KAAMiY,GAAOzG,WAAW,CACpB7H,IAAKsO,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,KAC7C5N,IAAK8Z,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,OAEjDV,UAA2B,iBAAN/R,EAAmB,CAAEqQ,IAAKrQ,EAAG6E,IAAK7E,GAAQ,IAEnE,CACIxE,KAAM,UACNkL,KAAMiY,GAAO7O,cACbiC,UAAmB,SAAN/R,GAAsB,IAANA,OAG7B8X,SAAS,iBAAkB6G,GAAOzG,WAAW,CACjD8J,MAAOrD,GAAOtG,IAAIsG,GAAOzO,SAAS8H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,YACtFoF,IAAK0D,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBACpEqF,MAAOjD,EAAU,cACjBkD,WAAYlD,EAAU,cACtBmD,OAAQuD,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,aACvEwF,IAAKsD,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,MAAO/I,OAAQ,CAAE2J,SAAU,CAAEvH,SAAU,iBAAkBwH,GAAI,CAAC,MAAO,CAAEnb,KAAM,cACrHkgB,aAAcqD,GAAOtG,IAAIsG,GAAOzO,SAAS+H,EAAU,4BACpD,CAAEzb,QAAS,YACNsb,SAAS,wBAAyB6G,GAAOzG,WAAW,CACxDqC,YAAaoE,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,kBAC5E0F,OAAQtD,EAAU,eACnB,CAAEzb,QAAS,mBACNsb,SAAS,kBAAmB6G,GAAOzG,WAAW,CAClD8hB,OAAQrb,GAAOtG,IAAIsG,GAAOzO,SAAS8H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,aACvFoF,IAAK0D,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBACpEwF,IAAKsD,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,MAAO/I,OAAQ,CAAE2J,SAAU,CAAEvH,SAAU,kBAAmBwH,GAAI,CAAC,MAAO,CAAEnb,KAAM,eACtHuF,MAAOge,GAAOtG,IAAIsG,GAAOvM,QAAQ4F,IAAc+C,EAAa,CAAEzI,WAAY,CAAEoD,UAAW,kBAAmB/I,OAAQ,CAAE4J,GAAI,CAAC,MAAO,CAAEnb,KAAM,gBACzI,CAAEoB,QAAS,aACNsb,SAAS,kBAAmB6G,GAAOzG,WAAW,CAClDsD,MAAOmD,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,YACtEoF,IAAK0D,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBACpElV,MAAOge,GAAOtG,IAAIsG,GAAOvM,QAAQ4F,IAAc+C,KAChD,CAAEve,QAAS,aACNsb,SAAS,qBAAsB6G,GAAOzG,WAAW,CACrDuD,SAAUkD,GAAOtG,IAAIsG,GAAOzG,WAAW,CACnCxZ,EAAGuZ,EAAU,gBACbzZ,EAAGyZ,EAAU,gBACb9U,EAAG8U,EAAU,mBAEjByD,MAAOiD,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,sBACtE8F,QAASgD,GAAOtG,IAAIL,EAAW,CAAExC,KAAMG,EAAYvJ,IAAI,8BAA8B9G,QAAStF,EAAET,MAAM,SACtGqc,UAAW+C,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBAC1EgG,MAAO8C,GAAOtG,IAAIsG,GAAOzG,WAAW,CAChC2D,MAAO5D,EAAU,iBAErBsc,OAAQ5V,GAAOtG,IAAIsG,GAAO7O,eAC1BgJ,MAAO6F,GAAOtG,IAAIJ,EAAU,oBAC5BuD,MAAOmD,GAAOtG,IAAIJ,EAAU,qBAC7B,CAAEzb,QAAS,gBACNsb,SAAS,sBAAuB6G,GAAOzG,WAAW,CACtD1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,eAC1DkG,KAAM/D,IACNrZ,MAAOsZ,EAAU,eAChB0G,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,UACzBujB,GAAOlL,MAAO,CACXuI,kBAAmB,CACfD,KAAM/D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,YAE9DoG,oBAAqB,CACjBF,KAAM/D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WAE9DqG,iBAAkB,CACdH,KAAM/D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WAE9DsG,mBAAoB,CAChBJ,KAAM/D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WAE9DuG,sBAAuB,CACnBL,KAAM/D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WAE9DwG,oBAAqB,CACjBN,KAAM/D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WAE9DyG,mBAAoB,CAChBP,KAAM/D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,kBAE9D0G,sBAAuB,CACnBR,KAAM/D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,kBAE9D2G,mBAAoB,CAChBT,KAAM/D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,wBAI9DiC,SAAS,mBAAoB6G,GAAOzG,WAAW,CACnDuE,SAAUkC,GAAOtG,IAAIL,EAAW,CAAExC,KAAM,cACxC8C,MAAOL,EAAU,cACjByE,aAAciC,GAAOtG,IAAIsG,GAAOvM,QAAQ4F,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,kBAAqB8I,GAAO7M,WAAW,CAC/H,CAAEtW,KAAM,UAAWkL,KAAMiY,GAAO7O,cAAeiC,WAAa,GAC5D,CACIvW,KAAM,SAAUkL,KAAMiY,GAAOvM,QAAQ4F,IAAc2G,GAAO7O,oBAGlE6M,QAASgC,GAAOtG,IAAIsG,GAAOvM,QAAQ4F,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,aAAgB8I,GAAO7O,gBAC9G8M,MAAO+B,GAAOtG,IAAIsG,GAAOzO,SAAS+H,EAAU,yBAC5C8xB,WAAYprB,GAAOtG,IAAIJ,EAAU,sBAClC,CAAEzb,QAAS,cACNsb,SAAS,0BAA2B6G,GAAOzG,WAAW,CAC1D2E,UAAW5E,EAAU,cACrB6E,SAAU7E,EAAU,cACpB8E,QAAS4B,GAAOtG,IAAIsG,GAAO7O,eAC3BkN,QAAS2B,GAAOtG,IAAIsG,GAAO7O,gBAC5B,CAAEtT,QAAS,qBACNsb,SAAS,qBAAsB6G,GAAOzG,WAAW,CACrDxZ,EAAGuZ,EAAU,gBACbzZ,EAAGyZ,EAAU,gBACb9U,EAAG8U,EAAU,gBACbgF,SAAUhF,EAAU,gBACpBiF,WAAYjF,EAAU,iBACvB,CAAEzb,QAAS,gBACNsb,SAAS,mBAAoB6G,GAAOzG,WAAW,CACnD1c,KAAMmjB,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,cAAeC,UAAU,MAC9FuF,IAAKsD,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,MAAO/I,OAAQ,CAAE2J,SAAU,CAAEvH,SAAU,mBAAoBwH,GAAI,CAAC,MAAO,CAAEnb,KAAM,cACvH+hB,KAAMwB,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,UACzCxP,SAAUyY,GAAOtG,IAAIJ,EAAU,uBAC/B+xB,YAAarrB,GAAOtG,IAAIJ,EAAU,uBAClCmF,SAAUuB,GAAOtG,IAAIJ,EAAU,uBAC/B/S,MAAOyZ,GAAOtG,IAAIsG,GAAOzG,WAAW,CAChCmF,WAAYsB,GAAOtG,IAAIsG,GAAO7O,eAC9BwN,YAAaqB,GAAOtG,IAAIsG,GAAO7O,eAC/ByN,aAAcoB,GAAOtG,IAAIsG,GAAO7O,eAChC0N,YAAamB,GAAOtG,IAAIsG,GAAO7O,eAC/B2N,QAASkB,GAAOtG,IAAIsG,GAAO7O,kBAE/B4N,UAAWiB,GAAOtG,IAAIsG,GAAOvM,QAAQ4F,EAAW,CAAExC,KAAM,SAAWyC,EAAU,oBAC7E0F,OAAQgB,GAAOtG,IAAIJ,EAAU,qBAC7Buc,QAAS7V,GAAOtG,IAAIJ,EAAU,qBAC9BgyB,UAAWtrB,GAAOtG,IAAIJ,EAAU,qBAChCwc,gBAAiB9V,GAAOtG,IAAIJ,EAAU,qBACtCiyB,eAAgBvrB,GAAOtG,IAAIsG,GAAOzG,WAAW,CACzCiyB,mBAAoBxrB,GAAOtG,IAAIJ,EAAU,eACzCmyB,cAAezrB,GAAOtG,IAAIJ,EAAU,wBAExCyc,aAAc/V,GAAOtG,IAAIsG,GAAOzG,WAAW,CACvCyc,cAAehW,GAAOtG,IAAIsG,GAAO7O,kBAErC8N,QAASe,GAAOtG,IAAIsG,GAAOvM,QAAQ4F,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBAAmBoC,EAAU,8BACrH,CAAEzb,QAAS,cACNsb,SAAS,0BAA2B6G,GAAOzG,WAAW,CAC1D2F,aAAcc,GAAOtG,IAAIsG,GAAO7O,eAChCgO,QAASa,GAAOtG,IAAIsG,GAAO7O,eAC3BiO,SAAUY,GAAOtG,IAAIsG,GAAO7O,eAC5BkO,cAAeW,GAAOtG,IAAIsG,GAAO7O,eACjCmO,aAAcU,GAAOtG,IAAIsG,GAAO7O,eAChCoO,eAAgBS,GAAOtG,IAAIsG,GAAO7O,eAClCqO,yBAA0BQ,GAAOtG,IAAIsG,GAAO7O,eAC5CsO,eAAgBO,GAAOtG,IAAIsG,GAAO7O,eAClCuO,cAAeM,GAAOtG,IAAIJ,EAAU,qBACpCqG,cAAeK,GAAOtG,IAAIJ,EAAU,sBACrC,CAAEzb,QAAS,qBACNsb,SAAS,mBAAoB6G,GAAOzG,WAAW,CACnDqG,MAAOtG,EAAU,gBACjBuG,MAAOvG,EAAU,gBACjBwG,QAASE,GAAOtG,IAAIsG,GAAO7O,eAC3BuO,cAAeM,GAAOtG,IAAIJ,EAAU,qBACpCzc,KAAMmjB,GAAOtG,IAAIJ,EAAU,6BAC5B,CAAEzb,QAAS,uBClLlB4L,OAAOuC,eAAeue,GAAS,aAAc,CAAEvqB,OAAO,8BAC1B,EAC5B,MAAMggB,GAASzR,wBACf,SAA2BiI,EAASQ,SAC1BsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,KAC7CmC,SAAS,SAAU6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACpD1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,wBACzD8I,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,UACzBujB,GAAOlL,MAAO,CACX0V,4BAA6B,CACzBC,MAAOzK,GAAOtG,IAAIL,EAAW,CAAExC,KAAM,eAAgBS,YAAY,KACjEoT,QAAS1K,GAAOzO,SAAS8H,KACzBtc,IAAKijB,GAAOvM,QAAQ4F,IACpBC,EAAU,sBACVqR,OAAQrR,EAAU,kBAEtBsR,+BAAgC,CAC5BH,MAAOzK,GAAOtG,IAAIL,KAClBwR,YAAa7K,GAAOzO,SAAS+H,EAAU,sBACvCqR,OAAQrR,EAAU,kBAEtBwR,qBAAsB,CAClBL,MAAOzK,GAAOtG,IAAIL,KAClB0R,WAAYzR,EAAU,qBACtBqR,OAAQtR,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,UAC5DgK,WAAYlB,GAAOtG,IAAIsG,GAAOpM,cAC9BoX,YAAahL,GAAOtG,IAAIsG,GAAO/O,IAAI+O,GAAOpM,WAAW,CAAEE,SAAS,IAAS,CAAElN,QAAS,IAAM,QAE9FqkB,qBAAsB,CAClBR,MAAOzK,GAAOtG,IAAIL,KAClB0R,WAAYzR,EAAU,qBACtBqR,OAAQtR,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,UAC5DgK,WAAYlB,GAAOtG,IAAIsG,GAAOpM,cAC9BoX,YAAahL,GAAOtG,IAAIsG,GAAO/O,IAAI+O,GAAOpM,WAAW,CAAEE,SAAS,IAAS,CAAElN,QAAS,IAAM,QAE9FskB,oBAAqB,CACjBT,MAAOzK,GAAOtG,IAAIL,KAClB0R,WAAYzR,EAAU,qBACtBqR,OAAQtR,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,UAC5DgK,WAAYlB,GAAOtG,IAAIsG,GAAOpM,cAC9BoX,YAAahL,GAAOtG,IAAIsG,GAAO/O,IAAI+O,GAAOpM,WAAW,CAAEE,SAAS,IAAS,CAAElN,QAAS,IAAM,QAE9FukB,6BAA8B,CAC1BV,MAAOzK,GAAOtG,IAAIL,KAClB0R,WAAYzR,EAAU,qBACtBqR,OAAQtR,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,UAC5DgK,WAAYlB,GAAOtG,IAAIsG,GAAOpM,cAC9BoX,YAAahL,GAAOtG,IAAIsG,GAAO/O,IAAI+O,GAAOpM,WAAW,CAAEE,SAAS,IAAS,CAAElN,QAAS,IAAM,QAE9FwkB,yBAA0B,CACtBX,MAAOzK,GAAOtG,IAAIL,KAClB0R,WAAYzR,EAAU,qBACtBqR,OAAQtR,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,UAC5DqF,MAAOyD,GAAOpM,WAAW,CAAEE,SAAS,KAExCuX,qBAAsB,CAClBZ,MAAOzK,GAAOtG,IAAIL,KAClBrb,KAAMsb,EAAU,4BAChBgS,SAAUhS,EAAU,4BACpBqR,OAAQrR,EAAU,oBAG3B,CAAEzb,QAAS,WAAa,CACvB+I,QAAS,KAAO,CACZ/J,KAAM,mCAGNsc,SAAS,oBAAqB6G,GAAO/O,IAAI+O,GAAO7M,WAAW,CAC/D,CACItW,KAAM,SACNkL,KAAMuR,EAAU,4BAChBlG,UAAa/R,EAAE,IAEnB,CACIxE,KAAM,OACNkL,KAAMiY,GAAOzO,SAAS+H,EAAU,6BAChClG,UAAa,CAAC/R,MAElB,CACAuF,QAAS,KAAO,CACZyV,KAAM,yBAGNlD,SAAS,2BAA4B6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACtE8C,KAAM2D,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WACrEoF,IAAK0D,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,kBACpE,CACAtQ,QAAS,KAAO,CACZyV,KAAM,yBAGNlD,SAAS,gBAAiB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC3D8C,KAAMhD,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,UAC1DqF,MAAOyD,GAAOtG,IAAIsG,GAAO/O,IAAI+O,GAAOpM,WAAW,CAAEE,SAAS,IAAS,CAAElN,QAAS,IAAM,OACpF,CACAA,QAAS,KAAO,CACZyV,KAAM,kCCjGlB5S,OAAOuC,eAAeuf,GAAS,aAAc,CAAEvrB,OAAO,4BAC5B,EAC1B,MAAMggB,GAASzR,sBACf,SAAyBiI,EAASQ,SACxBqC,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/CwU,EAAW3uB,GAASmjB,GAAO/O,IAAI+O,GAAOzG,WAAW,CACnD7Y,QAASsf,GAAOtG,IAAIsG,GAAO7O,eAC3BoG,OAAQyI,GAAOzO,SAASyO,GAAO7M,WAAW,CACtC,CACItW,KAAM,SACNkL,KAAMsR,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAMra,EAAMsa,UAAU,KAC1E/D,UAAa/R,EAAEuW,IAEnB,CACI/a,KAAM,SACNkL,KAAMiY,GAAOzG,WAAW,CACpB3B,GAAIyB,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAMra,EAAMsa,UAAU,EAAME,cAAc,KAC5FoU,SAAUzL,GAAO7O,gBAErBiC,WAAc,CAAEwE,GAAIvW,SAG7B,CAAExD,QAAS,QAAU,CACpB+I,QAAS,KAAO,CACZ2Q,OAAQ,SAGR4B,SAAS,YAAaqS,EAAQ,YAC9BrS,SAAS,kBAAmBqS,EAAQ,kBACpCrS,SAAS,YAAaqS,EAAQ,YAC9BrS,SAAS,eAAgBqS,EAAQ,gBACjCrS,SAAS,iBAAkBqS,EAAQ,iBACnCrS,SAAS,WAAYqS,EAAQ,oBChCzC/hB,OAAOuC,eAAe0f,GAAS,aAAc,CAAE1rB,OAAO,qCACnB,EACnC,MAAMggB,GAASzR,+BACf,SAAkCiI,EAASQ,SACjCsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/C2U,EAAmBtqB,QAAYmM,SAAWnM,aAAa1B,MAAQgsB,EAAgBtqB,EAAE,IAA8D,UAAlDA,MAAAA,OAA6B,EAASA,EAAEuqB,YAAyB,IAAPpe,EAAgBA,EAAmB,iBAANnM,EAAiB,GAAKA,MAAAA,OAA6B,EAASA,EAAEwO,cAChPsJ,SAAS,iBAAkB6G,GAAO/O,IAAI+O,GAAO7M,WAAW,CAC5D,CACItW,KAAM,SACNkL,KAAMuR,EAAU,yBAChBlG,UAAa/R,aAAa1B,MAAyB,iBAAT0B,EAAE,GAAkBA,EAAE,GAAK,CAAEuqB,KAAMD,EAAgBtqB,EAAE,KAAsB,iBAANA,EAAiBA,EAAI,CAAEuqB,KAAMD,EAAgBtqB,KAEhK,CACIxE,KAAM,OACNkL,KAAMuR,EAAU,uBAChBlG,UAAa,CAAC/R,IAElB,CACIxE,KAAM,SACN6V,SAAU,EACV3K,KAAMsR,IACNjG,OAAQuY,GAEZ,CACI9uB,KAAM,SACNkL,KAAMiY,GAAOpM,aACbR,iBACUvX,EAAIgwB,WAAWF,EAAgBtqB,WAC9ByqB,SAASjwB,GAAKA,EAAOwF,EAAI,EAAI,IAG5C,CACIxE,KAAM,UACNkL,KAAMiY,GAAO7O,cACbiC,iBACUpU,EAAI2sB,EAAgBtqB,SACb,SAANrC,GAAsB,UAANA,EAAsB,SAANA,IAAiBA,KAGjE,CAAEnB,QAAS,mBAAqB,CAC/B+I,QAAS,KAAO,CACZglB,KAAM,cAGRG,EAAe,CACjBhY,MAAOiM,GAAOtG,IAAIL,KAClB4c,KAAMjW,GAAOtG,IAAIL,KACjB2S,KAAMhM,GAAOtG,IAAIsG,GAAO7O,eACxB8a,OAAQjM,GAAOtG,IAAIsG,GAAO7O,eAC1B+a,WAAYlM,GAAOtG,IAAIsG,GAAO7O,eAC9Bgb,cAAenM,GAAOtG,IAAIsG,GAAO7O,eACjCib,WAAYpM,GAAOtG,IAAIsG,GAAO7O,eAC9Bkb,UAAWrM,GAAOtG,IAAIL,KACtBiT,WAAYtM,GAAOtG,IAAIsG,GAAOzG,WAAW,CACrCgT,OAAQlT,EAAW,CAAExC,KAAM,CAAC,WAAY,YAAa,cAAe,kBAAmB,cAAe,wBACrGmJ,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,YACzBujB,GAAOlL,MAAO,CACX0X,YAAe,CACXxsB,MAAOqZ,KAEXoT,kBAAqB,CACjBzsB,MAAOqZ,KAEXqT,UAAa,CACT1sB,MAAOqZ,KAEXsT,SAAY,CACR3sB,MAAOqZ,KAEXuT,YAAe,CACX5sB,MAAOqZ,EAAW,CAAEtC,UAAW,UAAW/I,OAAQ,CAAE6e,cAAc,EAAMC,cAAc,MAE1FC,gBAAmB,CACf/sB,MAAOqZ,EAAW,CAAEtC,UAAW,UAAW/I,OAAQ,CAAE6e,cAAc,EAAMC,cAAc,UAIlGE,WAAYhN,GAAOtG,IAAIsG,GAAOzG,WAAW,CACrCgT,OAAQlT,EAAW,CAAExC,KAAM,CAAC,YAAa,YAAa,kBACrDmJ,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,YACzBujB,GAAOlL,MAAO,CACXmY,UAAa,CACTjtB,MAAOggB,GAAOtG,IAAIJ,EAAU,mBAC5B4c,SAAUlW,GAAOtG,IAAIJ,EAAU,oBAEnC4T,UAAa,CACTltB,MAAOggB,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,MAAO/I,OAAQ,CAAEmf,OAAQ,0BACnE+I,SAAUlW,GAAOtG,IAAIsG,GAAOzG,WAAW,CACnC3B,GAAIyB,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,UACxDqF,MAAOyD,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,KAC/CwI,IAAK0D,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,MAAO/I,OAAQ,CAAE2J,SAAU,CAAEvH,SAAU,iBAAkBwH,GAAI,CAAC,MAAO,CAAEnb,KAAM,gBAG7H2wB,YAAe,CACXptB,MAAOggB,GAAOtG,IAAIsG,GAAOzG,WAAW,CAChC7V,KAAMsc,GAAOtG,IAAIL,KACjBxc,KAAMmjB,GAAOtG,IAAIL,KACjBzB,GAAIoI,GAAOtG,IAAIL,QAEnB6c,SAAUlW,GAAOtG,IAAIsG,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC9C7V,KAAMsc,GAAOtG,IAAIJ,EAAU,mBAC3Bzc,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBAC1DU,GAAIyB,EAAW,CAAEtC,UAAW,WAC5B,CACAnQ,QAAS,KAAO,CACZ/J,KAAM,gBACN+a,GAAI,iDAMxBiQ,MAAO7H,GAAOtG,IAAIJ,EAAU,2BAExBH,SAAS,wBAAyB6G,GAAO/O,IAAI+O,GAAO7M,WAAW,CACnE,CACItW,KAAM,OACN+I,SAAyB,iBAANvE,EACnB+R,WAAc,CAAEwY,KAAM,KACtBlZ,YACA3K,KAAMiY,GAAOzG,WAAWvI,GACpB4a,KAAMvS,KACH0S,KAGX,CACIlvB,KAAM,cACN+I,cAAoE,kBAA1B,EAASvE,EAAEgsB,WACrDja,WAAc,CAAEia,UAAW,KAC3BtlB,KAAMiY,GAAOzG,WAAWvI,GACpBqc,UAAWhU,IACXiU,KAAMtN,GAAOtG,IAAIJ,EAAU,yBACxByS,KAGX,CACIlvB,KAAM,QACN+I,cAAgE,kBAAtB,EAASvE,EAAEksB,OACrDna,WAAc,CAAEma,MAAO,KACvBxlB,KAAMiY,GAAOzG,WAAWvI,GACpBuc,MAAOvN,GAAOzG,WAAW,CACrB7V,KAAM2V,EAAW,CAAEtC,UAAW,SAAU/I,OAAQ,CAAEgc,OAAQ,SAAUntB,KAAM,WAAY2wB,eAAe,KACrGC,UAAWpU,EAAW,CAAEtC,UAAW,cACnC/W,MAAOggB,GAAOtG,IAAIL,QAEnB0S,KAGX,CACIlvB,KAAM,WACN+I,cAAmE,kBAAzB,EAASvE,EAAEqsB,UACrDta,WAAc,CAAEsa,SAAU,KAC1B3lB,KAAMiY,GAAOzG,WAAWvI,GACpB0c,SAAUrU,EAAW,CAAEtC,UAAW,SAAU/I,OAAQ,CAAEgc,OAAQ,WAAYntB,KAAM,cAChF6uC,UAAW1rB,GAAOtG,IAAIJ,EAAU,oBAC7ByS,KAGX,CACIlvB,KAAM,UACN+I,cAAkE,kBAAxB,EAASvE,EAAEssB,SACrDva,WAAc,CAAEua,QAAS,KACzB5lB,KAAMiY,GAAOzG,WAAWvI,GACpB2c,QAAStU,EAAW,CAAExC,KAAM,UAAWS,YAAY,KAChDyU,KAGX,CACIlvB,KAAM,MACN+I,cAA8D,kBAApB,EAASvE,EAAEqb,KACrDtJ,WAAc,CAAEsJ,IAAK,KACrB3U,KAAMiY,GAAOzG,WAAWvI,GACpB0L,IAAKrD,EAAW,CAAEtC,UAAW,aAC7BoD,MAAO6F,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,SAAU/I,OAAQ,CAAEiP,UAAW,EAAGhJ,WAAW,MACvFuG,OAAQwF,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,SAAU/I,OAAQ,CAAEgc,OAAQ,WAAYntB,KAAM,eACzF+wB,QAAS5N,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,eACxE2W,UAAW7N,GAAOtG,IAAIsG,GAAO7O,eAC7Bu6B,UAAW1rB,GAAOtG,IAAIJ,EAAU,oBAC7ByS,MAGZ,CAAEluB,QAAS,wBAAyBkc,cAAe,0BAA4B,CAC9EnT,QAAS,KAAO,CACZglB,KAAM,UAGNzS,SAAS,sBAAuB6G,GAAO/O,IAAI+O,GAAOzO,SAAS+H,EAAU,mBAAoB,CAC7F1S,QAAS,IAAM,CAAC,CACRglB,KAAM,yBC7LtBniB,OAAOuC,eAAemqB,GAAS,aAAc,CAAEn2B,OAAO,6BAC3B,EAC3B,MAAMggB,GAASzR,uBACf,SAA0BiI,EAASQ,SACzBqC,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,KAC7CmC,SAAS,QAAS6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACnD6c,gBAAiB/c,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,0CACrEme,YAAarV,GAAOpM,aACpB0iB,SAAUtW,GAAOpM,aACjB2iB,cAAeld,EAAW,CAAExC,KAAM,CAAC,OAAQ,OAAQ,UACnD2f,qBAAsBxW,GAAOtG,IAAIL,EAAW,CAAExC,KAAM,CAAC,OAAQ,aAC7DzG,SAAUiJ,EAAW,CAAExC,KAAM,mBAC7B4f,sBAAuBzW,GAAOtG,IAAIsG,GAAO7O,eACzCulB,2BAA4B1W,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KACxE+Y,QAASe,GAAOzG,WAAW,CACvBod,UAAW3W,GAAOpM,WAAW,CAAEG,OAAO,IACtC6iB,UAAW5W,GAAOpM,WAAW,CAAEG,OAAO,IACtC8iB,YAAa7W,GAAOpM,WAAW,CAAEG,OAAO,IACxC+iB,gBAAiB9W,GAAOpM,WAAW,CAAEG,OAAO,IAC5CgjB,YAAa/W,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEG,OAAO,KACnDijB,cAAehX,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEG,OAAO,KACrDkjB,qBAAsBjX,GAAOtG,IAAIL,EAAW,CAAExC,KAAM,CAAC,OAAQ,cAAe,YAC5EqgB,cAAelX,GAAOtG,IAAIL,KAC1B8d,WAAYnX,GAAOtG,IAAIsG,GAAOzG,WAAW,CACrC6d,MAAO/d,IACPge,WAAYrX,GAAOpM,WAAW,CAAEE,SAAS,IACzCwjB,oBAAqBtX,GAAOpM,WAAW,CAAEE,SAAS,IAClDzG,OAAQ2S,GAAOpM,gBAEnB2jB,gBAAiBvX,GAAOtG,IAAIsG,GAAOzG,WAAW,CAC1C6d,MAAO/d,IACPme,YAAaxX,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,OAElDuxB,MAAOzX,GAAOtG,IAAIsG,GAAOzG,WAAW,CAChC6d,MAAO/d,IACPqe,UAAW1X,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,IACnDimB,UAAW3X,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,IACnDkmB,sBAAuB5X,GAAO7O,iBAElC0mB,SAAU7X,GAAOtG,IAAIsG,GAAOzG,WAAW,CACnC7K,QAASsR,GAAOzG,WAAW,CACvB1c,KAAMwc,MAEVyO,YAAa9H,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,SAGtD6xB,SAAU/X,GAAOvM,QAAQ4F,EAAW,CAAExC,KAAM,CACpC,UACA,WACA,UACA,WACA,6BACA,iBACA,gBACA,UACEmJ,GAAO/O,IAAI+O,GAAOzO,SAASyO,GAAOzG,WAAW,CACnD1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBAC1D6P,OAAQ/G,GAAOpM,WAAW,CAAEE,SAAS,IACrCkkB,SAAUhY,GAAOpM,WAAW,CAAEE,SAAS,IACvCmkB,SAAUjY,GAAOpM,WAAW,CAAEE,SAAS,OACtC,CACD1D,SAAU,IAAM,OAChBxJ,QAAS,IAAM,CAAC,CACR/J,KAAM,gBACNkqB,OAAQ,OAGpBmR,YAAalY,GAAOvM,QAAQ4F,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBAAoB8I,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC7H4e,cAAenY,GAAOpM,aACtBwkB,OAAQpY,GAAOpM,cAChB,CAAExD,SAAU,aAAe,CAC1BxJ,QAAS,KAAO,CACZuxB,cAAe,IACfC,OAAQ,OAGhBC,QAASrY,GAAOvM,QAAQ4F,EAAW,CAAExC,KAAM,CAAC,MAAO,YAAcmJ,GAAO/O,IAAI+O,GAAOzO,SAAS8H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,kCAAqC,CACjLtQ,QAAS,IAAM,CAAC,qBAEpBmuB,SAAU/U,GAAOzO,SAASyO,GAAO/O,IAAI+O,GAAOzO,SAAS8H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,mCAAsC,CAAE9G,SAAU,IAAM,cAAgB,CAAEwB,UAAW,MAC/L,CAAE/T,QAAS,UAAY,CACtB+I,QAAS,KAAO,CACZwvB,gBAAiB,kBACjBf,YAAa,GACbiB,SAAU,GACVC,cAAe,OACfnmB,SAAU,SACV6O,QAAS,CACL0X,UAAW,QACXC,UAAW,SACXC,YAAa,QACbC,gBAAiB,wBC3FjCrtB,OAAOuC,eAAessB,GAAS,aAAc,CAAEt4B,OAAO,8BAC1B,EAC5B,MAAMggB,GAASzR,GACT0R,GAAWzR,wBACjB,SAA2BgI,EAASQ,SAC1BsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/C20B,EAAe,CACjBC,kBAAmB3rB,GAAS8pB,gBAC5B8B,MAAO7rB,GAAOzG,WAAW,CACrBuyB,gBAAiB7rB,GAAS8pB,gBAC1BgC,UAAW9rB,GAAS8pB,gBACpBiC,iBAAkBhsB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,IAC1Du6B,yBAA0BhsB,GAAS8pB,gBACnCmC,+BAAgClsB,GAAOpM,aACvCu4B,8BAA+BnsB,GAAOpM,gBAGxCw4B,EAAa,CACfC,6BAA8BpsB,GAAS8pB,gBACvCuC,2BAA4BrsB,GAAS8pB,gBACrCwC,YAAatsB,GAAS8pB,cAAc,CAAEr4B,OAASxL,IAAK,OAEhDiT,SAAS,oBAAqB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC/D1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,qBAC1D1F,OAAQwO,GAAOzG,WAAW,CACtBuO,YAAa9H,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IAC9CrG,EAAGyZ,EAAU,mBACbkzB,OAAQvsB,GAAS8pB,gBACjB0C,WAAYnzB,EAAU,mBACtBmvB,iBAAkBzoB,GAAO7O,cACzBu7B,eAAgB1sB,GAAOtG,IAAIsG,GAAOzG,WAAW,CACzCozB,WAAY3sB,GAAOtG,IAAIsG,GAAO7O,eAC9By7B,UAAW5sB,GAAOtG,IAAIJ,EAAU,gBAChCuzB,YAAa7sB,GAAOtG,IAAIJ,EAAU,gBAClCwzB,WAAY9sB,GAAOtG,IAAIJ,EAAU,gBACjCyzB,cAAe/sB,GAAOtG,IAAIJ,EAAU,oBAEvC0G,GAAOnL,QAAS,CAAC,MAAO,CAAEpY,KAAM,UAChCujB,GAAOlL,MAAO,CACXk4B,mBAAoBrB,EACpBsB,iBAAkBb,EAClBc,wBAAyBd,MAGlC,CAAEvuC,QAAS,WAAa,CACvB+I,QAAS,KAAO,CACZ/J,KAAM,iBACN2U,OAAQ,CACJsW,YAAa,oBCjD7Bre,OAAOuC,eAAeusB,GAAS,aAAc,CAAEv4B,OAAO,iCACvB,EAC/B,MAAMggB,GAASzR,GACT0R,GAAWzR,2BACjB,SAA8BgI,EAASQ,SAC7BsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/C6hB,EAAc,CAChBtc,MAAO0D,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,SAEvCiT,SAAS,uBAAwB6G,GAAOzG,WAAW,CACvD1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,wBAC1D1F,OAAQwO,GAAOzG,WAAW,EACrByG,GAAOnL,QAAS,CAAC,MAAO,CAAEpY,KAAM,UAChCujB,GAAOlL,MAAO,CACXikB,yBAA0B,CACtBC,KAAM3f,EAAW,CAAExC,KAAM,qBAE7Bs2B,yBAA0B,CACtBC,QAAS/zB,EAAW,CAAExC,KAAM,CAAC,QAAS,aACtCw2B,8BAA+BrtB,GAAOpM,WAAW,CAAEE,SAAS,KAEhEmlB,mBAAoB,CAChB3d,OAAQ0E,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,KAEpDwnB,kBAAmBL,EACnBM,wBAAyB,CACrB5c,MAAOyD,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,IAC/C0nB,YAAapZ,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,IACrD2nB,aAAcrZ,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAEnDozB,6BAA8BT,EAC9BU,wBAAyB,CACrBC,YAAaxZ,GAAOpM,aACpB6lB,YAAazZ,GAAOpM,WAAW,CAAEE,SAAS,IAC1C4lB,YAAa1Z,GAAOpM,WAAW,CAAEE,SAAS,KAE9C6lB,+BAAgC,CAC5BC,qBAAsB5Z,GAAOpM,WAAW,CAAEE,SAAS,IACnD+lB,aAAc7Z,GAAOpM,aACrBkmB,aAAc9Z,GAAOtG,IAAIsG,GAAOpM,eAEpCmmB,sBAAuB,CACnBC,MAAO1gB,EAAU,wBACjB2gB,MAAO3gB,EAAU,yBAErBg0B,sBAAuB,CACnB7R,UAAWpiB,EAAW,CAAExC,KAAM,oBAElC02B,oCAAqC,CACjC9R,UAAWpiB,EAAW,CAAExC,KAAM,oBAElCyjB,sBAAuB,CACnBhf,OAAQ0E,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,KAEpD6oB,kBAAmB,CACfrJ,OAAQ5X,EAAU,oBAEtB28B,uCAAwC,CACpCxa,UAAWpiB,EAAW,CAAExC,KAAM,mBAC9B2yB,cAAexpB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,KACvDk2B,cAAehqB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,MAE3D05B,kCAAmC,CAC/B5L,gBAAiB5hB,GAAOpM,WAAW,CAAEE,SAAS,OAGvD,CAAEjW,QAAS,YAAauS,SAAU,eACtC,CAAEvS,QAAS,YAAauS,SAAU,gCCpEzC3G,OAAOuC,eAAe2uB,GAAS,aAAc,CAAE36B,OAAO,mDACE,EACxD,MAAMggB,GAASzR,+BACf,SAAkCiI,EAASQ,SACjCsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,iBAChCgJ,GAAO7M,WAAW,CACnC,CACItW,KAAM,SACNkL,KAAMsR,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,8BAC1D9D,cAEJ,CACIvW,KAAM,SACNkL,KAAMuR,EAAU,kBAChBlG,WAAc,CACVwnB,WAAY,CAAC,CACLC,eAAkB,yBAK9B1hB,SAAS,iBAAkB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC5DqhB,WAAY5a,GAAOzO,SAAS+H,EAAU,eACvC,CAAEzb,QAAS,mBAAqB,CAC/B+I,QAAS,KAAO,CACZg0B,WAAY,CAAC,CACLC,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAMpC7hB,SAAS,YAAa6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACvDshB,eAAgBxhB,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,mCACnE8I,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,oBACzBujB,GAAOlL,MAAO,CACXomB,sBAAuB,CACnBC,UAAWnb,GAAOpM,cAEtBwnB,yBAA0B,CACtBC,OAAQrb,GAAOzO,SAAS+H,EAAU,iBAEtCgiB,sBAAuB,CACnBC,UAAWvb,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAEhDs1B,oBAAqB,CACjBC,UAAWpiB,EAAW,CAAExC,KAAM,mBAC9BxJ,OAAQ2S,GAAOpM,WAAW,CAAEE,SAAS,KAEzC25B,6BAA8B,CAC1BztC,MAAOqZ,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBAE/DwkB,iBAAkB,CACdZ,MAAO9a,GAAOzO,SAAS+H,EAAU,sBAG1C,CAAElJ,SAAU,WAAYvS,QAAS,cAAgB,CAChD+I,QAAS,KAAO,CACZi0B,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,kCAK5B7hB,SAAS,iBAAkB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC5DoiB,mBAAoB3b,GAAOtG,IAAIJ,EAAU,kBACzCyhB,mBAAoBzhB,EAAU,aAC9B2hB,gBAAiB3hB,EAAU,aAC3BsiB,aAActiB,EAAU,eACxBuiB,WAAY7b,GAAOtG,IAAIL,EAAW,CAAEtC,UAAW,MAAO/I,OAAQ,CAAE2J,SAAU,CAAEvH,SAAU,wBACvF,CAAEA,SAAU,YAAavS,QAAS,mBAAqB,CACtD+I,QAAS,KAAO,CACZm0B,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAItBc,EAAgB,CAClBC,SAAU/b,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IAAK4N,SAAS,KACpEkoB,SAAUhc,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IAAK4N,SAAS,KACpEmoB,WAAYjc,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KACxDg2B,WAAYlc,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,QAEpDiT,SAAS,gBAAiB6G,GAAOzG,WAAW,CAChDyhB,eAAgB3hB,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,oBACnE8I,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,oBACzBujB,GAAOlL,MAAO,CACXqnB,oCAAqCnrB,GACjCorB,KAAM/iB,EAAW,CAAExC,KAAM,CAAC,IAAK,IAAK,QACjCilB,GAEPO,uBAAwBP,IAE7B,CAAEj+B,QAAS,gBAAiB6X,sBAAsB,OAC7CyD,SAAS,YAAa6G,GAAOzG,WAAW,CAC5CyhB,eAAgB3hB,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBACnE8I,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,oBACzBujB,GAAOlL,MAAO,CACXwnB,wBAAyB,CACrBniB,MAAOd,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,YAE/DqlB,6BAA8B,CAC1BC,YAAaljB,EAAU,gBAE3BmjB,+BAAgC,CAC5BtiB,MAAOd,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WAC3D4Q,YAAa9H,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAElDw2B,oCAAqC,CACjCF,YAAaljB,EAAU,eACvBwO,YAAa9H,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAElDy2B,sBAAuB,CACnBrgB,IAAKjD,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,mBAGlE,CAAErZ,QAAS,YAAa6X,sBAAsB,MCnIrDjM,OAAOuC,eAAe4wB,GAAS,aAAc,CAAE58B,OAAO,+BACzB,EAC7B,MAAMggB,GAASzR,GACT0R,GAAWzR,GAGXk4B,GAAkBjyB,yBACxB,SAA4B+B,EAASQ,SAC3BsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/C6lB,EAAoB,CACtBC,YAAa9c,GAAOtG,IAAIsG,GAAO7O,eAC/B4rB,QAAS/c,GAAOtG,IAAIsG,GAAO7O,eAC3B6rB,WAAYhd,GAAOtG,IAAIsG,GAAO7O,eAC9B8rB,QAASjd,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,KAC5DwrB,QAASld,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,KAC5DyrB,QAASnd,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,KAC5D0rB,MAAOpd,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,KAC1D2rB,eAAgB/jB,EAAU,wBAC1BgkB,aAAchkB,EAAU,gBACxBikB,UAAWvd,GAAOzO,SAAS+H,EAAU,gBACrCkkB,UAAWxd,GAAOzO,SAAS+H,EAAU,iBAEnCmkB,EAAa,CACfz7B,MAAOsX,EAAU,eACjBokB,OAAQzd,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,IAC5Cy3B,YAAa3d,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,IAC7D03B,QAAS5d,GAAOzO,SAAS+H,EAAU,iBAEjCukB,EAAqB,CACvBC,aAAcxkB,EAAU,wBACxBykB,cAAezkB,EAAU,wBACzB0kB,eAAgBhe,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,MAEtD45B,EAAmB1tB,GAAOzG,WAAW,CACvCrR,OAAQoR,EAAU,aAClBtX,MAAOsX,EAAU,iBAEf2kB,EAAY,CACdxM,KAAMzR,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KACtDynC,+BAAgC3tB,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IACjE03B,QAAS5d,GAAOzO,SAASm8B,IAEvBxP,EAAUle,GAAO7M,WAAW,CAC9B,CACItW,KAAM,SACNkL,KAAMsR,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,mCAE9D,CACIra,KAAM,SACNkL,KAAMuR,EAAU,wBAErB,CAAES,cAAe,YACd6zB,EAAwB,CAC1BR,QAAS/zB,EAAW,CAAExC,KAAM,CAAC,QAAS,aACtCwf,MAAOpW,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MAC3C2nC,eAAgB7tB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MAChE4nC,0BAA2B9tB,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IAC5D6nC,yBAA0B/tB,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IAC3D8nC,kBAAmBhuB,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IACpD+nC,UAAWhuB,GAASkqB,cACpB+D,YAAa70B,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBACjEi3B,aAAc70B,EAAU,wBACxB80B,mBAAoBlQ,KAEhB/kB,SAAS,qBAAsB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAChE1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,sBAC1D1F,OAAQwO,GAAOzG,WAAW,EACrByG,GAAOnL,QAAS,CAAC,MAAO,CAAEpY,KAAM,UAChCujB,GAAOlL,MAAO,CACXqpB,mBAAoB,CAChBrW,YAAa9H,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAElDk4B,2BAA4B,CACxBC,MAAOpe,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,IAC3CgrB,OAAQjR,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MAEhDo4B,uBAAwB,CACpBjB,eAAgB/jB,EAAU,yBAE9BygB,sBAAuB,CACnBwE,UAAWjlB,EAAU,wBACrB0D,QAASkhB,GAEbmQ,6BAA8B,CAC1B9P,UAAWjlB,EAAU,wBACrB0D,QAASkhB,GAEbM,0BAA2B,CACvBtI,SAAU5c,EAAU,eACpBmlB,IAAKnlB,EAAU,eACfmY,KAAMxR,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,KAC1Cw4B,SAAUze,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MAElDy4B,iBAAkBlB,EAClB6Q,8BAA+B,CAC3BjB,8BAA+BrtB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MAC/EgrB,OAAQjR,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MAC5Cw3B,OAAQzd,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MAC5CqoC,sCAAuCvuB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KACvFsoC,iBAAkBxuB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KAClEuoC,gCAAiCxuB,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MACrEwoC,QAASzuB,GAAS8pB,cAAc,CAAEr4B,IAAK,EAAGxL,IAAK,IAC/CyoC,QAAS1uB,GAAS8pB,cAAc,CAAEr4B,IAAK,EAAGxL,IAAK,IAC/C0oC,uDAAwD5uB,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IACzF2oC,4DAA6D7uB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KAC7G4oC,+CAAgD9uB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MAEpG24B,wBAAyB,CACrB5wB,MAAO+R,GAAO7O,cACd2tB,KAAM9e,GAAOtG,IAAIJ,EAAU,eAE/BylB,sBAAuB,CACnBC,qBAAsBhf,GAAOtG,IAAIsG,GAAO7O,eACxC8tB,oBAAqBjf,GAAOtG,IAAIJ,EAAU,cAC1C4lB,OAAQlf,GAAOzO,SAASyO,GAAOzG,WAAW,CACtC4lB,QAASnf,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,KACjDsrB,QAASpf,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,KACjD4pB,OAAQ1d,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,KAChDod,OAAQlR,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,KAChDurB,QAASrf,GAAOtG,IAAIsG,GAAO7O,mBAGnCmuB,uBAAwB,CACpBt9B,MAAOsX,EAAU,eACjB4X,OAAQlR,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,OAE5Dq5B,mBAAoB1C,EACpB2C,wBAAyB,CACrBx9B,MAAOsX,EAAU,gBAErBy1B,mBAAoB,CAChBC,0BAA2BhvB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,IAC3E+oC,kBAAmBjvB,GAAOzO,SAAS8H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBACvFg4B,mBAAoBlvB,GAAOzO,SAAS8H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iBACxFi4B,kBAAmBzI,GAAgBd,WACnCwJ,mBAAoB1I,GAAgBd,YAExCyJ,kBAAmB,CACfhU,OAAQrb,GAAOzG,WAAW,CACtB+1B,iBAAkBh2B,EAAU,wBAC5Bi2B,qBAAsBj2B,EAAU,wBAChCk2B,+BAAgCl2B,EAAU,wBAC1Cm2B,sBAAuBn2B,EAAU,wBACjCo2B,qBAAsBp2B,EAAU,wBAChCq2B,iBAAkB3vB,GAAOzO,SAAS+H,EAAU,gBAC5Cs2B,eAAgBv2B,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBACpE24B,eAAgBx2B,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,kBAExE8d,OAAQhV,GAAOzG,WAAW,CACtBu2B,QAAS9vB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,IAAMxL,IAAK,MACxD6pC,YAAa/vB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,IAAMxL,IAAK,MAC5D8pC,aAAchwB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,IAAMxL,IAAK,MAC7D+pC,YAAajwB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,IAAMxL,IAAK,QAEhEgqC,MAAOlwB,GAAOzG,WAAW,CACrB42B,sBAAuBnwB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KACnEkqC,gBAAiBpwB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAC7DmqC,mBAAoBrwB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,GAAI4N,SAAS,OAEjFw8B,iBAAkBtwB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAC9DqqC,gCAAiCvwB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAC7EsqC,4BAA6BxwB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KACzEuqC,oCAAqCzwB,GAAOtG,IAAIsG,GAAO7O,eACvDu/B,oBAAqB1wB,GAAOtG,IAAIuG,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MACpEyqC,oBAAqB3wB,GAAOtG,IAAIuG,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MACpE0qC,aAAc5wB,GAAOtG,IAAIuG,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MAC7D2qC,eAAgB7wB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,KACxDg9B,eAAgB9wB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,KACxDi9B,yBAA0B/wB,GAAOpM,WAAW,CAAEE,SAAS,KAE3Dk9B,wBAAyB,CACrBC,aAAcjxB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,GAAI4N,SAAS,KACvEo9B,oBAAqBlxB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KACjEirC,mBAAoBnxB,GAAOtG,IAAIsG,GAAO7O,eACtCigC,qBAAsBpxB,GAAOtG,IAAIsG,GAAO7O,eACxCkgC,kBAAmBrxB,GAAOtG,IAAIsG,GAAO7O,eACrCmgC,iBAAkBtxB,GAAOzO,SAAS+H,EAAU,iBAEhDi4B,0BAA2B,CACvBC,UAAWn4B,EAAW,CAAExC,KAAM,CAAC,KAAM,OAAQ,QAAS,OAAQ,QAAS,UACvE46B,YAAazxB,GAAO7O,cACpBugC,oBAAqB1xB,GAAOzO,SAASyO,GAAOzG,WAAW,CACnDwN,OAAQ/G,GAAOpM,WAAW,CAAEE,SAAS,IACrCzQ,KAAM4c,GAASkqB,iBAEnBwH,cAAer4B,EAAU,wBACzBs4B,cAAet4B,EAAU,yBAE7BmmB,gCAAiC5B,EACjC6B,wBAAyB,CACrBC,UAAWrmB,EAAU,eACrBsmB,YAAatmB,EAAU,eACvBumB,WAAYvmB,EAAU,eACtBwmB,iBAAkBxmB,EAAU,eAC5BymB,QAAS/f,GAAOtG,IAAIsG,GAAO7O,gBAE/B6uB,8BAA+BnC,EAC/BoC,sBAAuBxC,EACvByC,oBAAqB,CACjBl+B,MAAOsX,EAAU,gBAErB6mB,iBAAkB,CACdn+B,MAAOsX,EAAU,gBAErBu4B,4BAA6B,CACzBxE,8BAA+BrtB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,OAC1F4rC,cAAe7xB,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,KACnD6rC,aAAc9xB,GAAS8pB,cAAc,CAAEr4B,IAAK,EAAGxL,IAAK,KACpD8rC,uCAAwChyB,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IACzE+rC,qBAAsBhyB,GAAS8pB,cAAc,CAAEr4B,IAAK,GAAKxL,IAAK,KAC9DgsC,qBAAsBjyB,GAAS8pB,cAAc,CAAEr4B,IAAK,GAAKxL,IAAK,KAC9DisC,WAAYlyB,GAAS8pB,cAAc,CAAEr4B,IAAK,EAAGxL,IAAK,IAClDksC,oBAAqBpyB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MACrEmsC,uBAAwBryB,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAE7Dk6B,qCAAsC,CAClC/C,eAAgB/jB,EAAU,yBAE9B+mB,qCAAsC,CAClCr+B,MAAOsX,EAAU,eACjBpR,OAAQoR,EAAU,eAClBokB,OAAQzd,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MAEhDo6B,+BAAgCzD,EAChC2D,gBAAiBvC,EACjBwC,yBAA0B5D,EAC1B6D,oCAAqC,CACjCC,cAAezC,EACf0C,aAAc1C,GAElB2C,4BAA6B,CACzB9L,SAAU/U,GAAOzO,SAASyO,GAAOzG,WAAW,CACxC+B,OAAQ0E,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IACzC8W,QAASkhB,KAEbt3B,QAASs3B,GAEboU,iCAAkC,CAC9B1U,QAAS5d,GAAOzO,SAASm8B,IAE7B6E,wBAAyB,CACrBC,iCAAkCxyB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KAClFusC,YAAazyB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KAC7DwsC,wBAAyB1yB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MACzEysC,uBAAwB3yB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,OACxE0sC,oBAAqB5yB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KACrE2sC,4BAA6B7yB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KAC7E4sC,gCAAiC9yB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MACjF6sC,gCAAiC/yB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KACjF8sC,iBAAkB35B,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBACtE+7B,oBAAqB35B,EAAU,wBAC/B45B,4BAA6B55B,EAAU,wBACvC0D,QAASkhB,GAEbiV,0BAA2BlV,EAC3B6C,uBAAwB,CACpBvkB,MAAO0D,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,OAE/C66B,qBAAsB,CAClBjZ,YAAa9H,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAElD86B,yBAA0B,CACtBC,SAAU3nB,EAAU,wBACpB4nB,SAAUlhB,GAAOtG,IAAIsG,GAAOzO,SAAS+H,EAAU,iBAC/C6nB,SAAUnhB,GAAOtG,IAAIsG,GAAOzO,SAAS+H,EAAU,iBAC/C8nB,YAAaphB,GAAOtG,IAAIsG,GAAOzO,SAAS+H,EAAU,kBAEtD+nB,mCAAoC,CAChCtM,SAAU/U,GAAOzO,SAAS2sB,IAE9BkV,4BAA6B,CACzBC,eAAgBrzB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,OAC3EotC,0BAA2BtzB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MACtFqtC,uBAAwBvzB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MACnFstC,2BAA4BxzB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,MAE5Eo7B,2BAA4B,CACxBt/B,MAAOsX,EAAU,eACjBioB,WAAYvhB,GAAOpM,WAAW,CAAEE,SAAS,IACzC0tB,WAAYxhB,GAAOpM,WAAW,CAAEE,SAAS,IACzC2tB,qBAAsBzhB,GAAO7O,cAC7BuwB,aAAc1hB,GAAOzO,SAAS8H,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,aAEtFyqB,iBAAkB,CACdE,aAAc7hB,GAAOtG,IAAIsG,GAAO7O,eAChCsiC,WAAYzzB,GAAOtG,IAAIsG,GAAO7O,eAC9B2wB,aAAcxoB,EAAU,gBACxBo6B,cAAep6B,EAAU,wBACzBq6B,iBAAkBr6B,EAAU,wBAC5ByoB,eAAgBzoB,EAAU,wBAC1Bs6B,iBAAkBt6B,EAAU,wBAC5B2oB,aAAcjiB,GAAOzG,WAAW,CAC5B1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gCAC1DgrB,YAAaliB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KAC7Di8B,cAAeniB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KAC/Dk8B,cAAepiB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MAC9D8Z,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,UACzBujB,GAAOlL,MAAO,CACX++B,iCAAkC,CAC9BC,YAAa7zB,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,KACjD6tC,sBAAuB/zB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,QAGnF,CAAE7T,QAAS,iBACdwkC,eAAgBriB,GAAOzG,WAAW,CAC9B1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,kCAC1DwmB,OAAQzd,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,KAC5CmH,OAAQ4S,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MAC3C8Z,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,UACzBujB,GAAOlL,MAAO,CACXwtB,gCAAiC,CAC7BpR,OAAQlR,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MAE5Dq8B,gCAAiC,CAC7BrR,OAAQlR,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MAE5Ds8B,iCAAkC,CAC9BtR,OAAQlR,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MAE5Du8B,kCAAmC,CAC/BvR,OAAQlR,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MAE5Dw8B,qCAAsC,CAClCC,aAAc1iB,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MAEtD08B,gCAAiC,CAC7B1R,OAAQjR,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MAEhD8tC,yCAA0C,CACtCC,eAAgBh0B,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,MACpDguC,wBAAyBl0B,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,OAE7E28B,kCAAmC,CAC/BC,aAAc7iB,GAASkqB,YAAY,CAAEz4B,IAAK,EAAGxL,IAAK,QAG3D,CAAErI,QAAS,iBAAkB6X,sBAAsB,IACtDqtB,WAAY/iB,GAAOzO,SAASyO,GAAOzG,WAAW,CAC1C1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,mCACzD8I,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,UACzBujB,GAAOlL,MAAO,CACXkuB,yBAA0B,CACtBC,SAAU3pB,EAAU,yBAExB4pB,oBAAqB,CACjBpb,YAAa9H,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAElDi9B,kBAAmB,CACfrb,YAAa9H,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,OAGvD,CAAErI,QAAS,qBAElBs2C,6BAA8B,CAC1BC,mBAAoBp0B,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MACpEmuC,8BAA+Br0B,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KAC/EouC,yCAA0Ct0B,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAE/EquC,6BAA8B3G,EAC9B4G,yCAA0C5G,IAE/C,CAAE/vC,QAAS,aACf,CAAEA,QAAS,YAAc,CACxB+I,QAAS,KAAO,CACZ/J,KAAM,sBACN2U,OAAQ,CACJ+sB,UAAW,CACP1hC,KAAM,kBACN2U,OAAQ,CACJ+K,MAAO,IAGfS,QAAS,CACLngB,KAAM,iBACN2U,OAAQ,CACJowB,gBAAiB,EACjBC,cAAc,EACdC,aAAc,GACdG,aAAc,CACVC,YAAa,EACbC,cAAe,EACfC,cAAe,GAEnBC,eAAgB,CACZ3E,OAAQ,EACRrwB,OAAQ,EACR6jB,OAAQ,aAOxB/X,SAAS,eAAgB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC1D1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gCAC1DksB,mBAAoBpjB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,OAC/D8Z,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,UACzBujB,GAAOlL,MAAO,CACXuuB,oCAAqC,CACjCpa,MAAOjJ,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MAClEo9B,WAAYtjB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MACvEq9B,WAAYvjB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,OAE3Es9B,sCAAuC,CACnCva,MAAOjJ,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MAClEu9B,YAAazjB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MACxEo9B,WAAYtjB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MACvEw9B,YAAa1jB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,MACxEq9B,WAAYvjB,GAAOtG,IAAIsG,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,SAGhF,CAAEwP,sBAAsB,IAAS,CAChC9O,QAAS,KAAO,CACZ/J,KAAM,+CAGRq5C,EAAgB,CAClBzsB,KAAMzJ,GAAOpM,WAAW,CAAEE,SAAS,IACnC6c,MAAOrX,EAAU,oBACjBmb,MAAOzU,GAAO/O,IAAI+O,GAAOpM,WAAW,CAAElC,IAAKsC,OAAOmiC,YAAc,CAAEvvC,QAAS,IAAM,OAE7EuS,SAAS,uBAAwB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAClE1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,yCACzD8I,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,UACzBujB,GAAOlL,MAAO,CACXshC,mCAAoCllC,OAC7BglC,GAD6B,CAEhCG,QAASp2B,GAASq2B,eAAe,CAAExiC,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,KAC/DqwC,WAAYj9B,EAAU,oBACtBk9B,WAAYx2B,GAAO/O,IAAI+O,GAAOpM,WAAW,CAAElC,IAAKsC,OAAOmiC,YAAc,CAAEvvC,QAAS,IAAM,IACtF6vC,OAAQz2B,GAAOzO,SAAS+H,EAAU,kBAEtCo9B,qCAAsCxlC,OAC/BglC,GAD+B,CAElCS,UAAW32B,GAAOpM,WAAW,CAAElC,OAASxL,IAAK,IAC7C0wC,YAAa52B,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IAC9C2wC,cAAev9B,EAAU,eACzBw9B,WAAY92B,GAAOzO,SAAS+H,EAAU,gBACtCy9B,YAAa/2B,GAAOzO,SAAS+H,EAAU,kBAE3C09B,8BAA+B9lC,OACxBglC,GADwB,CAE3BO,OAAQz2B,GAAOzO,SAAS+H,EAAU,kBAEtCm7B,0CAA2C,CACvCC,SAAUr7B,IACV9B,OAAQ0I,GAASkqB,cACjBniB,OAAQ1O,EAAU,yBAEtBqqB,mCAAoC,CAChC3hC,MAAOsX,EAAU,gBAErBsqB,kCAAmC,CAC/B5hC,MAAOsX,EAAU,gBAErBuqB,oCAAqC,CACjChd,QAAS7G,GAAOzO,SAASyO,GAAO/O,IAAI+O,GAAOzG,WAAW,CAClDwN,OAAQ/G,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,IAChDrO,KAAMiW,EAAU,iBAChB,CACA1S,QAAS,KAAO,CACZvD,KAAM,WAKvB,CAAExF,QAAS,yBAA2B,CACrC+I,QAAS,KAAO,CACZ/J,KAAM,yCAGNsc,SAAS,eAAgB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC1D1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,iCACzD8I,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,UACzBujB,GAAOlL,MAAO,CACXgvB,0BAA2B,CACvBrS,KAAMxR,GAASkqB,YAAY,CAAEz4B,IAAK,OAG3C,CAAE7T,QAAS,iBAAmB,CAC7B+I,QAAS,KAAO,CACZ/J,KAAM,gDClelB4M,OAAOuC,eAAei4B,GAAS,aAAc,CAAEjkC,OAAO,qCACnB,EACnC,MAAMggB,GAASzR,GACT0R,GAAWzR,+BACjB,SAAkCgI,EAASQ,SACjCsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,KAC7CmC,SAAS,iBAAkB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC5DgX,sBAAuBvQ,GAAOpM,WAAW,CAAEE,SAAS,IACpD0c,uBAAwBxQ,GAAOpM,WAAW,CAAEE,SAAS,IACrD2c,UAAWzQ,GAAOpM,WAAW,CAAEE,SAAS,IACxC4c,uBAAwB1Q,GAAO7O,cAC/Bq3B,oBAAqBxoB,GAAO7O,cAC5ByjC,qBAAsB50B,GAAO7O,cAC7Bs3B,iBAAkBzoB,GAAO7O,cACzBu3B,kBAAmB1oB,GAAO7O,cAC1B0jC,kBAAmB70B,GAAO7O,cAC1BwgB,cAAerY,EAAU,eACzBsY,cAAetY,EAAU,eACzBqX,MAAO3Q,GAAOzG,WAAW,CACrBgvB,MAAOvoB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,UAAYxL,IAAK,OAC3DgrB,OAAQlR,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,OACxD0qB,eAAgB5Q,GAAOpM,aACvBid,eAAgB7Q,GAAOpM,aACvBod,gBAAiBhR,GAAOpM,WAAW,CAAEE,SAAS,IAC9Cmd,cAAejR,GAAOpM,WAAW,CAAEE,SAAS,IAC5Cgd,sBAAuB9Q,GAAO7O,cAC9B4f,sBAAuB/Q,GAAOtG,IAAIsG,GAAO7O,eACzCshB,sBAAuBzS,GAAOtG,IAAIsG,GAAO7O,eACzCwhB,UAAW3S,GAAOtG,IAAIsG,GAAO7O,eAC7B4kC,kBAAmB/1B,GAAOtG,IAAIsG,GAAO7O,eACrCggB,SAAUnR,GAAOzG,WAAW,CACxB6X,SAAUpR,GAAOpM,aACjByd,QAASrR,GAAOpM,aAChB0d,UAAWtR,GAAOpM,aAClB2d,SAAUvR,GAAOpM,eAErB8d,aAAcpY,EAAU,gBACxBkY,UAAWlY,EAAU,kBAEzBs8B,QAAS51B,GAAOzG,WAAW,CACvB8b,YAAa/b,EAAU,oBACvBgc,SAAUhc,EAAU,oBACpBw8B,gBAAiBx8B,EAAU,oBAC3Bu8B,QAASv8B,EAAU,oBACnBic,UAAWjc,EAAU,oBACrB1L,MAAO0L,EAAU,sBAErB2b,WAAY3b,EAAU,yBACvB,CAAEzb,QAAS,wBAA8B,CACxC+I,QAAS,IAAMqZ,GAASqS,qBACxBjjB,SAAU,CAACtI,EAAM/G,EAAO8N,EAAQY,SACxBlB,EAAIiE,EAAIoC,EAAIihC,SAE0D,UAA/D90C,SADH+H,EAAKsH,SAAStI,EAAM/G,EAAO8N,EAAQY,SACK,EAAS1O,EAAM2wB,aAA0B,IAAPnjB,OAAgB,EAASA,EAAG+6B,QAA+E,UAA/DvoC,MAAAA,OAAqC,EAASA,EAAM2wB,aAA0B,IAAPlf,OAAgB,EAASA,EAAGyf,QAAU,QAChOhhB,IAAInJ,EAAKtK,KAAK,SAASA,KAAK,UAAW,0BAA2B,OAEH,UAA/DuD,MAAAA,OAAqC,EAASA,EAAM2wB,aAA0B,IAAP9c,OAAgB,EAASA,EAAGqd,QAAU,IAAO,KACpHhhB,IAAInJ,EAAKtK,KAAK,SAASA,KAAK,UAAW,wBAAyB,KAED,UAA/DuD,MAAAA,OAAqC,EAASA,EAAM2wB,aAA0B,IAAPmkB,OAAgB,EAASA,EAAGvM,OAAS,IAAO,KACnHr4B,IAAInJ,EAAKtK,KAAK,SAASA,KAAK,SAAU,uBAAwB,IAElEuD,UAGPmZ,SAAS,eAAgB6G,GAAOzG,WAAW,CAC/CrR,OAAQ8X,GAAOpM,aACf6d,KAAMzR,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,IAC9CrE,OAAQ2S,GAAOpM,WAAW,CAAEE,SAAS,SAEjCqF,SAAS,uBAAwB6G,GAAOzG,WAAW,CACvD2qB,WAAYlkB,GAAOtG,IAAIsG,GAAOzG,WAAW,CACrCkF,SAAUuB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,OAC1D2rB,OAAQ7R,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,OACxDqW,MAAOyD,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,UAE3D+uB,WAAYjV,GAAOvM,QAAQ4F,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gCAAmC8I,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC3I4qB,QAASnkB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,OACzDk+B,WAAYpkB,GAAO/O,IAAI+O,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,EAAGxL,IAAK,QAAU6B,IAAU,CACvFsH,SAAU,CAACtI,EAAM/G,EAAO8N,EAAQY,KACxB3H,EAAKsF,MAAM5P,KAAK,WAAWgR,OAASzN,KAC7BkQ,IAAInJ,EAAM,oCAEdgB,EAAKsH,SAAStI,EAAM/G,EAAO8N,EAAQY,QAGlD21B,KAAMrkB,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,KAC/C,CAAE7T,QAAS,wBAA0B,CACpC+I,QAAS,KAAO,CACZu9B,QAAS,GACTC,WAAY,EACZC,KAAM,YAIVlrB,SAAS,kBAAmB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC7DY,MAAOd,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,WAC3Dga,OAAQlR,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,MAChD,CACA9K,QAAS,KAAO,CACZuT,MAAO,kBACP+W,OAAQ,kBCtGpBznB,OAAOuC,eAAes4B,GAAS,aAAc,CAAEtkC,OAAO,wCAChB,EACtC,MAAMggB,GAASzR,kCACf,SAAqCiI,EAASQ,SACpCqC,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/CsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C+tB,EAAqB,CACvBC,WAAYnrB,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,6BAChEua,KAAMzR,GAAOpM,WAAW,CAAEE,SAAS,OAE/BqF,SAAS,+BAAgC6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC1E1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gCAC1D1F,OAAQwO,GAAOzG,WAAW,EACrByG,GAAOnL,QAAS,CAAC,MAAO,CAAEpY,KAAM,UAChCujB,GAAOlL,MAAO,CACX2vB,4BAA6BF,EAC7BG,4BAA6B,CACzB5c,YAAa9H,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAElDy+B,sBAAuB,CACnB9nC,KAAMwc,EAAW,CAAExC,KAAM,CAAC,SAAU,UACpCiR,YAAa9H,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAElD6uC,0BAA2B,CACvB7jB,OAAQ5X,EAAU,oBAEtBsrB,uBAAwB,CACpBC,WAAYxrB,EAAW,CAAExC,KAAM,CAAC,OAAQ,UACxCiuB,kBAAmB9kB,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,IACpD6+B,oBAAqB/kB,GAAOpM,WAAW,CAAElC,IAAK,EAAGxL,IAAK,KAE1D8+B,6BAA8BT,EAC9BU,0BAA2B,CACvBC,YAAa7rB,EAAW,CAAExC,KAAM,CAAC,WAAY,SAAU,SAAU,WAAY,SAAU,QAAS,YAEpGsuB,sBAAuB,CACnBC,WAAYplB,GAAOtG,IAAIsG,GAAO7O,gBAElCk0B,oBAAqBd,IAE1B,CAAE1mC,QAAS,oBAAqB6X,sBAAsB,KAC1D,CAAE7X,QAAS,sBAAwB,CAClC+I,QAAS,KAAO,CACZ/J,KAAM,4BACN2U,OAAQ,CACJgzB,WAAY,2BACZ/S,KAAM,mBC9CtBhoB,OAAOuC,eAAes5B,GAAS,aAAc,CAAEtlC,OAAO,sCAClB,EACpC,MAAMggB,GAASzR,gCACf,SAAmCiI,EAASQ,SAClCqC,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/CsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,KAC3C2C,SAAS,6BAA8B6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACxE1c,KAAMwc,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,8BAC1D1F,OAAQwO,GAAOzG,WAAW,CACtBgsB,aAAcjsB,EAAU,eACxBksB,eAAgBlsB,EAAU,eAC1BmsB,oBAAqBnsB,EAAU,gBAChC,CAAEzb,QAAS,qBACf,CAAEA,QAAS,oBAAsB,CAChC+I,QAAS,KAAO,CACZ/J,KAAM,oBACN2U,OAAQ,CACJ+zB,aAAc,CACV/rB,KAAM,wBACNC,WAAY,CACRisB,MAAO,UAGfF,eAAgB,CACZhsB,KAAM,kBAEVisB,oBAAqB,CACjBjsB,KAAM,qCC3B1B/P,OAAOuC,eAAe25B,GAAS,aAAc,CAAE3lC,OAAO,oCACpB,EAClC,MAAMggB,GAASzR,GAETm4B,GAAkBl4B,8BACxB,SAAiCgI,EAASQ,SAChCsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,KAC7CmC,SAAS,gBAAiB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC3D/G,SAAU6G,IACVwsB,SAAU7lB,GAAOzO,SAAS+H,EAAU,+BACrC,CAAEzb,QAAS,kBAAoB,CAC9B+I,QAAS,KAAO,CACZ4L,SAAU,kBACVqzB,SAAU,CACN,CACI9e,OAAQ,EACRpa,QAAS,CACLm5B,aAAc,gCACdC,WAAY,QACZnL,WAAY,4BAMxBzhB,SAAS,4BAA6B6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CACvEwN,OAAQ/G,GAAOpM,WAAW,CAAEE,SAAS,EAAMpC,IAAK,IAChD/E,QAAS2M,EAAU,qBACpB,CAAElJ,SAAU,SAAW,CACtBxJ,QAAS,KAAO,CACZmgB,OAAQ,EACRpa,QAAS,CACLm5B,aAAc,gCACdC,WAAY,QACZnL,WAAY,0BAIhBzhB,SAAS,mBAAoB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC9DusB,aAAczsB,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,qCAClE6uB,WAAY1sB,EAAW,CAAExC,KAAM,CAAC,QAAS,uBACxCmJ,GAAOnL,QAAS,CAAC,CAAEpY,KAAM,kBACzBujB,GAAOlL,MAAO,CACXkxB,iCAAkC,CAC9BhpB,QAAS3D,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,mCAEjE+uB,uCAAwC,CACpC1+B,SAAU8R,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBAC9D0jB,WAAY8L,GAAgBd,YAEhCM,8BAA+B,CAC3BL,SAAU7lB,GAAOzO,SAAS+H,EAAU,sBAExC6sB,gCAAiC,CAC7B5+B,SAAU8R,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBAC9D0jB,WAAY8L,GAAgBd,cAGrC,CAAE/nC,QAAS,mBAAoB6X,sBAAsB,IAAS,CAC7D9O,QAAS,KAAO,CACZk/B,aAAc,gCACdC,WAAY,QACZnL,WAAY,wBC/DxBnxB,OAAOuC,eAAeo6B,GAAS,aAAc,CAAEpmC,OAAO,gCACxB,EAC9B,MAAMqmC,GAAU93B,GACV+3B,GAAW93B,GACX+3B,GAAc9xB,GACd+xB,GAAY7xB,GACZ8xB,GAAkBnuB,GAClBouB,GAAkBnuB,GAClBouB,GAAqBnuB,GACrBouB,GAAmBnuB,GACnBouB,GAAiBnuB,0BACvB,SAA6BlC,EAASQ,MAElBmwB,yBAAyB3wB,EAASQ,MAC1C8vB,iBAAiBtwB,EAASQ,MACzB+vB,kBAAkBvwB,EAASQ,MACxBgwB,qBAAqBxwB,EAASQ,MAChCiwB,mBAAmBzwB,EAASQ,MACtBkwB,yBAAyB1wB,EAASQ,MAC/BowB,4BAA4B5wB,EAASQ,MACvCqwB,0BAA0B7wB,EAASQ,MACrCswB,wBAAwB9wB,EAASQ,cCrBpDvN,OAAOuC,eAAeu7B,GAAS,aAAc,CAAEvnC,OAAO,qCACnB,EACnC,MAAMggB,GAASzR,+BACf,SAAkCiI,EAASQ,SACjCsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,KAC7CmC,SAAS,iBAAkB6G,GAAO/O,IAAI+O,GAAOzG,WAAW,CAC5DiuB,kBAAmBxnB,GAAO7O,cAC1Bs2B,YAAaznB,GAAO7O,cACpBsY,KAAMzJ,GAAOpM,WAAW,CAAEE,SAAS,IACnC4zB,WAAY1nB,GAAOvM,QAAQ4F,EAAW,CAAEtC,UAAW,WAAY/I,OAAQ,CAAEkJ,KAAM,gBAAmBoC,EAAU,eAC7G,CAAEzb,QAAS,mBAAqB,CAC/B+I,QAAS,WACC6iB,EAAOtjB,KAAK+uB,MAAuB,WAAjB/uB,KAAKgvB,UAA2B,iBACjD,CACHqS,mBAAmB,EACnBC,aAAa,EACbhe,KAAAA,EACAie,WAAY,CACR1V,sBAAuB,CACnBn1B,KAAM,sBACN82B,UAAW,CACP92B,KAAM,kBACN4sB,KAAAA,EACAsK,aAAc,CACVl3B,KAAM,4BACN4sB,KAAAA,GAEJoK,SAAU,wBAGlB3B,uBAAwB,CACpBr1B,KAAM,uBACN82B,UAAW,CACP92B,KAAM,kBACN4sB,KAAAA,EACAsK,aAAc,CACVl3B,KAAM,wBACN4sB,KAAAA,EACA4K,eAAgB,CACZmB,eACAC,WAAY,CAAC,EAAK,IAEtBtB,eAAgB,CACZqB,eACAC,WAAY,CAAC,EAAK,IAEtBnB,gBAAiB,CACbkB,eACAC,WAAY,CAAC,EAAK,IAEtBrB,kBAAmB,CACfoB,eACAC,WAAY,CAAC,EAAK,IAEtBlB,OAAQ,CACJ,CACI5M,WAAY,CAAEyN,SAAU,EAAKG,UAAW,EAAKloB,OAAQ,EAAKgoB,YAAa,EAAKC,SAAU,GACtFvY,MAAO,2BAEX,CACI4K,WAAY,CAAEyN,SAAU,EAAKG,UAAW,EAAKloB,OAAQ,EAAKgoB,YAAa,EAAKC,cAC5EvY,MAAO,8BAEX,CACI4K,WAAY,CAAEyN,SAAU,EAAKG,UAAW,EAAKloB,OAAQ,EAAKgoB,YAAa,GAAKC,SAAU,GACtFvY,MAAO,4BAEX,CACI4K,WAAY,CAAEyN,SAAU,EAAKG,UAAW,EAAKloB,OAAQ,KAAOgoB,YAAa,EAAKC,SAAU,IACxFvY,MAAO,2BAEX,CACI4K,WAAY,CAAEyN,SAAU,EAAKG,UAAW,EAAKloB,OAAQ,KAAOgoB,gBAAmBC,SAAU,GACzFvY,MAAO,6BAInB8W,SAAU,qBAGlBxB,oBAAqB,CACjBx1B,KAAM,oBACN82B,UAAW,CACP92B,KAAM,kBACN4sB,KAAAA,EACAsK,aAAc,CACVl3B,KAAM,oBACN4sB,KAAAA,GAEJoK,SAAU,yBC1FtCpqB,OAAOuC,eAAe8hB,GAAS,aAAc,CAAE9tB,OAAO,wBAChC,EACtB,MAAM+tB,GAAgBxf,GAChB0R,GAAWzR,GACXwf,GAAcvZ,GACdkzB,GAAchzB,GACdizB,GAAkBtvB,GAClB08B,GAAiBz8B,GACjB0V,GAAczV,GACd0V,GAAezV,GACfyH,GAAexH,GACfyV,GAAWxV,GACXyV,GAASxV,GACTyV,GAAkBxV,GAClBgvB,GAAa/uB,GACbgvB,GAAkB/uB,kBACxB,SAAqBvC,EAASQ,MAEjBsX,kBAAkB9X,EAASQ,MACtBwX,uBAAuBhY,EAASQ,MAClCyX,qBAAqBjY,EAASQ,MAC1B+wB,yBAAyBvxB,EAASQ,MACtCgxB,qBAAqBxxB,EAASQ,MAC3Bi+B,wBAAwBz+B,EAASQ,MACpC0X,qBAAqBlY,EAASQ,MAC7B2X,sBAAsBnY,EAASQ,MAC/BuX,sBAAsB/X,EAASQ,MACnC4X,kBAAkBpY,EAASQ,MAC7B6X,gBAAgBrY,EAASQ,MAChB8X,yBAAyBtY,EAASQ,MACvCixB,oBAAoBzxB,EAASQ,MACxBkxB,yBAAyB1xB,EAASQ,IC/BtD,IAAIgB,GAAmBpa,IAAQA,GAAKoa,yBAA4BtO,OAAU,SAAStN,EAAGmD,EAAGF,EAAG4Y,QAC7E,IAAPA,MAAuB5Y,UACpB2M,eAAe5P,EAAG6b,EAAI,CAAEC,YAAY,EAAMzK,IAAK,kBAAoBlO,EAAEF,OAC1E,SAASjD,EAAGmD,EAAGF,EAAG4Y,QACT,IAAPA,MAAuB5Y,KACzB4Y,GAAM1Y,EAAEF,KAEV0vB,GAAsBnxB,IAAQA,GAAKmxB,4BAA+BrlB,OAAU,SAAStN,EAAGiF,UACjF2K,eAAe5P,EAAG,UAAW,CAAE8b,YAAY,EAAMlY,MAAOqB,KAC9D,SAASjF,EAAGiF,aACEA,IAEf2tB,GAAgBpxB,IAAQA,GAAKoxB,cAAiB,SAAUC,MACpDA,GAAOA,EAAIC,kBAAmBD,MAC9BtE,EAAS,MACF,MAAPsE,UAAsB5vB,KAAK4vB,EAAe,YAAN5vB,GAAmBoK,OAAO4O,eAAe/U,KAAK2rB,EAAK5vB,OAAoBsrB,EAAQsE,EAAK5vB,aACzGsrB,EAAQsE,GACpBtE,GAEXlhB,OAAOuC,eAAemjB,GAAS,aAAc,CAAEnvB,OAAO,IACtD,4CAA8C,EAC9C,MAAMggB,GAASzR,GACT6gB,GAAgB5gB,GAChB6gB,GAAY5a,GAClB,sBAAsBua,GAAara,IAMnC,yBALA,iBACUqC,EAAc,IAAIgJ,GAAOsP,6BACjBC,gBAAgBvY,GACvBA,GAsBXwY,iBALA,SAAoBxY,SACVR,EAAU,IAAIwJ,GAAOyP,yBACjBC,YAAYlZ,EAASQ,GACxBR,qLChDXygC,GAUA,SAAexxC,YACNA,GAAQ,IAENyxC,QA4EX,SAAsBzxC,OAChB0xC,EAAO,GACPC,EAAU,UAEP3xC,EAAK4xC,iBA8DSj7C,MACF,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAak7C,YAAa,IAAIA,KAAKl7C,MACnCuD,MAAMC,QAAQxD,UAAWm7C,EAAWn7C,EAAGo7C,MACvCp7C,aAAa+oB,WAAY,IAAIA,IAAIoyB,EAAW53C,MAAMkiB,KAAKzlB,GAAIo7C,OAC3Dp7C,aAAaga,WAAY,IAAIA,IAAImhC,EAAW53C,MAAMkiB,KAAKzlB,GAAIo7C,QAC3DC,EAAK,WAGAp4C,OAFJ5C,KAAKL,KACFK,KAAKg7C,GACCr7C,EAAG,KACXs7C,EAAMt7C,EAAEiD,MACO,iBAARq4C,GAA4B,OAARA,IAC1Br4C,GAAKq4C,UACCA,aAAeJ,OACrBj4C,GAAK,IAAIi4C,KAAKI,WACRA,aAAevyB,MACrB9lB,GAAK,IAAI8lB,IAAIoyB,EAAW53C,MAAMkiB,KAAK61B,GAAMF,YACnCE,aAAethC,MACrB/W,GAAK,IAAI+W,IAAImhC,EAAW53C,MAAMkiB,KAAK61B,GAAMF,YACnCG,YAAYC,OAAOF,KACzBr4C,GAAKw4C,GAAWH,OACd,KACDx7C,EAAIi7C,EAAKp5C,QAAQ25C,KAEhBr4C,QADDnD,EACMk7C,EAAQl7C,GAERs7C,EAAWE,aAIpBrrC,QACGA,MACDorC,cApEOr7C,MACG,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAak7C,YAAa,IAAIA,KAAKl7C,MACnCuD,MAAMC,QAAQxD,UAAWm7C,EAAWn7C,EAAG07C,MACvC17C,aAAa+oB,WAAY,IAAIA,IAAIoyB,EAAW53C,MAAMkiB,KAAKzlB,GAAI07C,OAC3D17C,aAAaga,WAAY,IAAIA,IAAImhC,EAAW53C,MAAMkiB,KAAKzlB,GAAI07C,QAC3DL,EAAK,WAGAp4C,OAFJ5C,KAAKL,KACFK,KAAKg7C,GACCr7C,MAC6B,IAArCqN,OAAO4O,eAAe/U,KAAKlH,EAAGiD,QAC9Bq4C,EAAMt7C,EAAEiD,MACO,iBAARq4C,GAA4B,OAARA,IAC1Br4C,GAAKq4C,UACCA,aAAeJ,OACrBj4C,GAAK,IAAIi4C,KAAKI,WACRA,aAAevyB,MACrB9lB,GAAK,IAAI8lB,IAAIoyB,EAAW53C,MAAMkiB,KAAK61B,GAAMI,YACnCJ,aAAethC,MACrB/W,GAAK,IAAI+W,IAAImhC,EAAW53C,MAAMkiB,KAAK61B,GAAMI,YACnCH,YAAYC,OAAOF,KACzBr4C,GAAKw4C,GAAWH,OACd,KACDx7C,EAAIi7C,EAAKp5C,QAAQ25C,KAEhBr4C,QADDnD,EACMk7C,EAAQl7C,GAER47C,EAAMJ,aAIfrrC,QACGA,MACDorC,cAzDYx4C,EAAGqO,WAClBkG,EAAO/J,OAAO+J,KAAKvU,GACnB84C,EAAK,IAAIp4C,MAAM6T,EAAKhX,QACfN,EAAI,EAAGA,EAAIsX,EAAKhX,OAAQN,IAAK,KAChCmD,EAAImU,EAAKtX,GACTw7C,EAAMz4C,EAAEI,MACO,iBAARq4C,GAA4B,OAARA,IAC1Br4C,GAAKq4C,UACCA,aAAeJ,OACrBj4C,GAAK,IAAIi4C,KAAKI,WACRC,YAAYC,OAAOF,KACzBr4C,GAAKw4C,GAAWH,OACd,KACD5wC,EAAQqwC,EAAKp5C,QAAQ25C,KAEpBr4C,QADDyH,EACMswC,EAAQtwC,GAERwG,EAAGoqC,WAIVK;wEAvGgBC,CAAYvyC,GAC9BA,EAAK4xC,iBAgDSj7C,MACF,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAak7C,YAAa,IAAIA,KAAKl7C,MACnCuD,MAAMC,QAAQxD,UAAWm7C,EAAWn7C,EAAGo7C,MACvCp7C,aAAa+oB,WAAY,IAAIA,IAAIoyB,EAAW53C,MAAMkiB,KAAKzlB,GAAIo7C,OAC3Dp7C,aAAaga,WAAY,IAAIA,IAAImhC,EAAW53C,MAAMkiB,KAAKzlB,GAAIo7C,QAC3DC,EAAK,WACAp4C,KAAKjD,EAAG,KACXs7C,EAAMt7C,EAAEiD,GACO,iBAARq4C,GAA4B,OAARA,IAC1Br4C,GAAKq4C,EACCA,aAAeJ,OACrBj4C,GAAK,IAAIi4C,KAAKI,GACRA,aAAevyB,MACrB9lB,GAAK,IAAI8lB,IAAIoyB,EAAW53C,MAAMkiB,KAAK61B,GAAMF,IACnCE,aAAethC,MACrB/W,GAAK,IAAI+W,IAAImhC,EAAW53C,MAAMkiB,KAAK61B,GAAMF,IACnCG,YAAYC,OAAOF,KACzBr4C,GAAKw4C,GAAWH,KAEhBr4C,GAAKm4C,EAAWE,UAGhBD,cAlDOr7C,MACG,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAak7C,YAAa,IAAIA,KAAKl7C,MACnCuD,MAAMC,QAAQxD,UAAWm7C,EAAWn7C,EAAG07C,MACvC17C,aAAa+oB,WAAY,IAAIA,IAAIoyB,EAAW53C,MAAMkiB,KAAKzlB,GAAI07C,OAC3D17C,aAAaga,WAAY,IAAIA,IAAImhC,EAAW53C,MAAMkiB,KAAKzlB,GAAI07C,QAC3DL,EAAK,WACAp4C,KAAKjD,MAC6B,IAArCqN,OAAO4O,eAAe/U,KAAKlH,EAAGiD,QAC9Bq4C,EAAMt7C,EAAEiD,GACO,iBAARq4C,GAA4B,OAARA,IAC1Br4C,GAAKq4C,EACCA,aAAeJ,OACrBj4C,GAAK,IAAIi4C,KAAKI,GACRA,aAAevyB,MACrB9lB,GAAK,IAAI8lB,IAAIoyB,EAAW53C,MAAMkiB,KAAK61B,GAAMI,IACnCJ,aAAethC,MACrB/W,GAAK,IAAI+W,IAAImhC,EAAW53C,MAAMkiB,KAAK61B,GAAMI,IACnCH,YAAYC,OAAOF,KACzBr4C,GAAKw4C,GAAWH,KAEhBr4C,GAAKy4C,EAAMJ,UAGXD,cA3CYx4C,EAAGqO,WAClBkG,EAAO/J,OAAO+J,KAAKvU,GACnB84C,EAAK,IAAIp4C,MAAM6T,EAAKhX,QACfN,EAAI,EAAGA,EAAIsX,EAAKhX,OAAQN,IAAK,KAChCmD,EAAImU,EAAKtX,GACTw7C,EAAMz4C,EAAEI,GACO,iBAARq4C,GAA4B,OAARA,IAC1Br4C,GAAKq4C,EACCA,aAAeJ,OACrBj4C,GAAK,IAAIi4C,KAAKI,GACRC,YAAYC,OAAOF,KACzBr4C,GAAKw4C,GAAWH,KAEhBr4C,GAAKiO,EAAGoqC,UAGRK,IA9BX,YAAqBL,UACfA,aAAeO,OACVA,OAAOp2B,KAAK61B,GAGd,IAAIA,EAAIl6C,YAAYk6C,EAAIQ,OAAOt3C,QAAS82C,EAAIS,WAAYT,EAAIl7C,QCkCrE,YAAgB47C,OAAWC,EAAMD,EAAI57C,cAAiB67C,GAAO,KAASA,GAAO,EAI7E,MA2DMC,GACJ,IAAIC,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,IAEpEC,GACJ,IAAID,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,KAE7EE,GACJ,IAAIF,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAEhDG,GACJ,IAAIH,WAAW,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAgBxDI,GAAgB,IAAIh5C,MAAO,KACjCi5C,GAAOD,IAOP,MAAME,GAAgB,IAAIl5C,MAAMm5C,IAChCF,GAAOC,IAKP,MAAME,GAAgB,IAAIp5C,MAjBJ,KAkBtBi5C,GAAOG,IAMP,MAAMC,GAAgB,IAAIr5C,MAAMs5C,KAChCL,GAAOI,IAGP,MAAME,GAAgB,IAAIv5C,MAhGF,IAiGxBi5C,GAAOM,IAGP,MAAMC,GAAgB,IAAIx5C,MA3FF,IAgGxB,YAAwBy5C,EAAaC,EAAYC,EAAYC,EAAOC,QAE7DJ,YAAeA,OACfC,WAAeA,OACfC,WAAeA,OACfC,MAAeA,OACfC,WAAeA,OAGfC,UAAeL,GAAeA,EAAY58C,OAIjD,IAAIk9C,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,CAACl7C,EAAGQ,OAGlB26C,YAAYn7C,EAAEo7C,WAAmB,IAAL56C,IAC5B26C,YAAYn7C,EAAEo7C,WAAc56C,IAAM,EAAK,KAQrC66C,GAAY,CAACr7C,EAAGgB,EAAOxD,KAEvBwC,EAAEs7C,SAtIc,GAsIS99C,KACzB+9C,QAAWv6C,GAAShB,EAAEs7C,SAAY,SAC1Bt7C,EAAGA,EAAEu7C,UACbA,OAASv6C,GAzIO,GAyIchB,EAAEs7C,WAChCA,UAAY99C,EA1II,OA4IhB+9C,QAAWv6C,GAAShB,EAAEs7C,SAAY,QAClCA,UAAY99C,IAKZg+C,GAAY,CAACx7C,EAAGD,EAAG07C,QAEbz7C,EAAGy7C,EAAS,EAAJ17C,GAAiB07C,EAAS,EAAJ17C,EAAQ,KAS5C27C,GAAa,CAACC,EAAMtC,SAEpB3kC,EAAM,QAEM,EAAPinC,OACG,MACF,UACCtC,EAAM,UACV3kC,IAAQ,GAiIXknC,GAAY,CAACH,EAAMV,EAAUc,WAK3BC,EAAY,IAAIn7C,MAAMo7C,QAExBC,EACAn/C,EAFA8+C,EAAO,MAONK,EAAO,EAAGA,GAtTO,GAsTaA,MACvBA,GAAQL,EAAQA,EAAOE,EAASG,EAAO,IAAO,MASrDn/C,EAAI,EAAIA,GAAKk+C,EAAUl+C,IAAK,KAC3Bw8C,EAAMoC,EAAS,EAAJ5+C,EAAQ,GACX,IAARw8C,MAEK,EAAJx8C,GAAkB6+C,GAAWI,EAAUzC,KAAQA,MAoHlD4C,GAAcj8C,QAEdnD,MAGCA,EAAI,EAAGA,EAzcUq/C,IAycMr/C,MAASs/C,UAAc,EAAJt/C,GAAkB,MAC5DA,EAAI,EAAGA,EAvcU,GAucMA,MAASu/C,UAAc,EAAJv/C,GAAkB,MAC5DA,EAAI,EAAGA,EArcU,GAqcMA,MAASw/C,QAAY,EAAJx/C,GAAkB,IAE7Ds/C,UAAUG,KAA0B,IACpCC,QAAUv8C,EAAEw8C,WAAa,IACzBC,SAAWz8C,EAAE6G,QAAU,GAOrB61C,GAAa18C,IAEbA,EAAEs7C,SAAW,KACLt7C,EAAGA,EAAEu7C,QACNv7C,EAAEs7C,SAAW,MAEpBH,YAAYn7C,EAAEo7C,WAAap7C,EAAEu7C,UAE/BA,OAAS,IACTD,SAAW,GA8BTqB,GAAU,CAAClB,EAAM5+C,EAAG0D,EAAG82B,WAErBulB,EAAU,EAAJ//C,EACNggD,EAAU,EAAJt8C,SACJk7C,EAAKmB,GAAgBnB,EAAKoB,IAC1BpB,EAAKmB,KAAkBnB,EAAKoB,IAAiBxlB,EAAMx6B,IAAMw6B,EAAM92B,IASnEu8C,GAAa,CAAC98C,EAAGy7C,EAAMp7C,WAKrBgC,EAAIrC,EAAE+8C,KAAK18C,OACb28C,EAAI38C,GAAK,OACN28C,GAAKh9C,EAAEi9C,WAERD,EAAIh9C,EAAEi9C,UACRN,GAAQlB,EAAMz7C,EAAE+8C,KAAKC,EAAI,GAAIh9C,EAAE+8C,KAAKC,GAAIh9C,EAAEq3B,aAIxCslB,GAAQlB,EAAMp5C,EAAGrC,EAAE+8C,KAAKC,GAAIh9C,EAAEq3B,WAGhC0lB,KAAK18C,GAAKL,EAAE+8C,KAAKC,KACfA,MAGE,IAEND,KAAK18C,GAAKgC,GAUR66C,GAAiB,CAACl9C,EAAGm9C,EAAOC,SAK5BnC,EACAoC,EAEA1B,EACA9yB,EAFAy0B,EAAK,KAIU,IAAft9C,EAAEy8C,cAEMz8C,EAAEm7C,YAAYn7C,EAAEu9C,MAAa,EAALD,IAAW,EAAMt9C,EAAEm7C,YAAYn7C,EAAEu9C,MAAa,EAALD,EAAS,KAC7Et9C,EAAEm7C,YAAYn7C,EAAEw9C,MAAQF,OAGhB,IAATrC,KACQj7C,EAAGq9C,EAAIF,MAIVnD,GAAaqD,MACVr9C,EAAG27C,EAtkBG,IAskBiB,EAAGwB,KAC5B7D,GAAYqC,GACN,IAAV9yB,OACIqxB,GAAYyB,MACR37C,EAAGq9C,EAAIx0B,UAGZmyB,GAAOC,MAGJj7C,EAAG27C,EAAMyB,KACX5D,GAAYmC,GACN,IAAV9yB,OACMsxB,GAAUwB,MACR37C,EAAGi7C,EAAMpyB,WAQhBy0B,EAAKt9C,EAAEy8C,aAGRz8C,EAlkBQ,IAkkBMm9C,IAYpBM,GAAa,CAACz9C,EAAG09C,WAIfjC,EAAWiC,EAAK7C,SAChB8C,EAAWD,EAAK5C,UAAUV,YAC1BK,EAAYiD,EAAK5C,UAAUL,UAC3BF,EAAWmD,EAAK5C,UAAUP,UAC5B19C,EAAG0D,EAEHwI,EADAgyC,WAOFkC,SAAW,IACXW,SAhnBoB,IAknBjB/gD,EAAI,EAAGA,EAAI09C,EAAO19C,IACQ,IAAzB4+C,EAAS,EAAJ5+C,MACLkgD,OAAO/8C,EAAEi9C,UAAYlC,EAAWl+C,IAChCw6B,MAAMx6B,GAAK,KAGJ,EAAJA,EAAQ,GAAa,OASvBmD,EAAEi9C,SAAW,KACXj9C,EAAE+8C,OAAO/8C,EAAEi9C,UAAalC,EAAW,IAAMA,EAAW,IAC/C,EAAPhyC,GAAqB,IACxBsuB,MAAMtuB,GAAQ,IACdwzC,UAEE9B,MACA+B,YAAcmB,EAAa,EAAP50C,EAAW,UAIhCgyC,SAAWA,EAKXl+C,EAAKmD,EAAEi9C,UAAY,EAAcpgD,GAAK,EAAGA,OAAkBmD,EAAGy7C,EAAM5+C,KAKlE09C,OAIDv6C,EAAE+8C,KAAK,KACTA,KAAK,GAAiB/8C,EAAE+8C,KAAK/8C,EAAEi9C,eACtBj9C,EAAGy7C,EAAM,KAGhBz7C,EAAE+8C,KAAK,KAETA,OAAO/8C,EAAE49C,UAAY/gD,IACrBkgD,OAAO/8C,EAAE49C,UAAYr9C,IAGX,EAAPwI,GAAqB0yC,EAAS,EAAJ5+C,GAAkB4+C,EAAS,EAAJl7C,KACpD82B,MAAMtuB,MAAWsuB,MAAMx6B,IAAMmD,EAAEq3B,MAAM92B,GAAKP,EAAEq3B,MAAMx6B,GAAKmD,EAAEq3B,MAAM92B,IAAM,IAC9D,EAAJ1D,EAAQ,GAAa4+C,EAAS,EAAJl7C,EAAQ,GAAawI,IAGlDg0C,KAAK,GAAiBh0C,OACb/I,EAAGy7C,EAAM,SAEbz7C,EAAEi9C,UAAY,KAErBF,OAAO/8C,EAAE49C,UAAY59C,EAAE+8C,KAAK,GApeb,EAAC/8C,EAAG09C,WAIfjC,EAAkBiC,EAAK7C,SACvBE,EAAkB2C,EAAK3C,SACvB4C,EAAkBD,EAAK5C,UAAUV,YACjCK,EAAkBiD,EAAK5C,UAAUL,UACjC5xB,EAAkB60B,EAAK5C,UAAUT,WACjCr7C,EAAkB0+C,EAAK5C,UAAUR,WACjCE,EAAkBkD,EAAK5C,UAAUN,eACnCt6C,EACArD,EAAG0D,EACHy7C,EACA6B,EACAtgD,EACAugD,EAAW,MAEV9B,EAAO,EAAGA,GA1NO,GA0NaA,MAC/BH,SAASG,GAAQ,QAMK,EAArBh8C,EAAE+8C,KAAK/8C,EAAE49C,UAAgB,GAAa,EAEtC19C,EAAIF,EAAE49C,SAAW,EAAG19C,EAtOH,IAsOoBA,MACpCF,EAAE+8C,KAAK78C,KACJu7C,EAA+B,EAA1BA,EAAS,EAAJ5+C,EAAQ,GAAiB,GAAa,EACnDm/C,EAAOxB,MACFA,SAGA,EAAJ39C,EAAQ,GAAam/C,EAGtBn/C,EAAIk+C,MAENc,SAASG,OACH,EACJn/C,GAAKmC,MACC6pB,EAAMhsB,EAAImC,MAEhBy8C,EAAS,EAAJ5+C,KACP0/C,SAAWh/C,KAAYsgD,GACrBpD,MACA+B,YAAcj/C,KAAe,EAAJV,EAAQ,GAAaghD,QAGnC,IAAbC,KAMD,OACMtD,EAAa,EACQ,IAArBx6C,EAAE67C,SAASG,UAChBH,SAASG,OACTH,SAASG,EAAO,IAAM,IACtBH,SAASrB,QAIC,QACLsD,EAAW,OAOf9B,EAAOxB,EAAqB,IAATwB,EAAYA,UAC9Bh8C,EAAE67C,SAASG,GACF,IAANn/C,KACDmD,EAAE+8C,OAAO78C,GACTK,EAAIw6C,IACJU,EAAS,EAAJl7C,EAAQ,KAAey7C,MAE5BO,YAAmBd,EAAS,EAAJl7C,EAAQ,IAAck7C,EAAS,EAAJl7C,KAC5C,EAAJA,EAAQ,GAAay7C,WAwZrBh8C,EAAG09C,MAGJjC,EAAMV,EAAU/6C,EAAE67C,WAQxBkC,GAAY,CAAC/9C,EAAGy7C,EAAMV,SAKtBl+C,EAEAmhD,EADAC,KAGAC,EAAUzC,EAAK,GAEfl+B,EAAQ,EACR4gC,EAAY,EACZC,EAAY,MAEA,IAAZF,MACU,MACA,KAEQ,KAAL,GAAS,GAAa,MAElCrhD,EAAI,EAAGA,GAAKk+C,EAAUl+C,MAChBqhD,IACCzC,EAAe,KAAL,GAAS,KAEvBl+B,EAAQ4gC,GAAaH,IAAWE,IAG3B3gC,EAAQ6gC,IACf/B,QAAiB,EAAT2B,IAAwBzgC,EAEd,IAAXygC,GAELA,IAAWC,KAAa5B,QAAiB,EAAT2B,OAClC3B,QAAQgC,OAED9gC,GAAS,KAChB8+B,QAAQiC,QAGRjC,QAAQkC,QAGJ,IACEP,EAEM,IAAZE,KACU,MACA,GAEHF,IAAWE,KACR,IACA,MAGA,IACA,KAUZM,GAAY,CAACx+C,EAAGy7C,EAAMV,SAKtBl+C,EAEAmhD,EADAC,KAGAC,EAAUzC,EAAK,GAEfl+B,EAAQ,EACR4gC,EAAY,EACZC,EAAY,MAGA,IAAZF,MACU,MACA,GAGTrhD,EAAI,EAAGA,GAAKk+C,EAAUl+C,SAChBqhD,IACCzC,EAAe,KAAL,GAAS,OAEvBl+B,EAAQ4gC,GAAaH,IAAWE,OAG3B3gC,EAAQ6gC,QACFp+C,EAAGg+C,EAAQh+C,EAAEq8C,eAA+B,KAAV9+B,QAE7B,IAAXygC,GACLA,IAAWC,OACHj+C,EAAGg+C,EAAQh+C,EAAEq8C,iBAIfr8C,EAlxBI,GAkxBQA,EAAEq8C,YACdr8C,EAAGud,EAAQ,EAAG,IAEfA,GAAS,OACRvd,EAnxBI,GAmxBUA,EAAEq8C,YAChBr8C,EAAGud,EAAQ,EAAG,QAGdvd,EApxBI,GAoxBYA,EAAEq8C,YAClBr8C,EAAGud,EAAQ,GAAI,MAGnB,IACEygC,EACM,IAAZE,KACU,MACA,GAEHF,IAAWE,KACR,IACA,MAGA,IACA,KAwHlB,IAAIO,IAAmB,EAKvB,MAuBMC,GAAqB,CAAC1+C,EAAGo5C,EAAKuF,EAAYhuC,QAMpC3Q,EAAI,KAA6B,EAAI,GAAI,GA3flC,EAACA,EAAGo5C,EAAKC,EAAKuF,QAMrB5+C,GAEN4+C,OACQ5+C,EAAGq5C,MACHr5C,GAAIq5C,MAKd8B,YAAYzsC,IAAI1O,EAAE6+C,OAAOC,SAAS1F,EAAKA,EAAMC,GAAMr5C,EAAEo7C,WACrDA,SAAW/B,IA4eFr5C,EAAGo5C,EAAKuF,GAAY,IAoKjC,IAMII,GAAQ,CACXC,SAzMmBh/C,IAGby+C,KA5mBgB,UAEjB5hD,EACAm/C,EACAx+C,EACAm+C,EACAV,QACEY,EAAW,IAAIl7C,MAAMo7C,UAgBlB,EACJJ,EAAO,EAAGA,EAAOsD,GAAoBtD,WAC5BA,GAAQn+C,EACfX,EAAI,EAAGA,EAAK,GAAKy8C,GAAYqC,GAAQ9+C,OAC3BW,KAAYm+C,SAQhBn+C,EAAS,GAAKm+C,IAGpB,EACFA,EAAO,EAAGA,EAAO,GAAIA,WACdA,GAAQV,EACbp+C,EAAI,EAAGA,EAAK,GAAK28C,GAAYmC,GAAQ9+C,OAC7Bo+C,KAAUU,UAIhB,EACFA,EAvYe,GAuYGA,WACbA,GAAQV,GAAQ,EACrBp+C,EAAI,EAAGA,EAAK,GAAM28C,GAAYmC,GAAQ,EAAK9+C,OACnC,IAAMo+C,KAAUU,MAM1BK,EAAO,EAAGA,GAvYO,GAuYaA,MACxBA,GAAQ,QAGf,EACGn/C,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,YAMD88C,GAAcuF,IAAerD,GAGlCh/C,EAAI,EAAGA,EAhbU,GAgbKA,OACR,EAAJA,EAAQ,GAAa,KACjB,EAAJA,GAAkB6+C,GAAW7+C,EAAG,MAI/B,IAAIsiD,GAAexF,GAAcL,GAAa4C,IAzbxCA,IAYA,OA8aN,IAAIiD,GAAetF,GAAcL,GAAa,EAvbxC,GASA,OA+aL,IAAI2F,GAAe,IAAIx+C,MAAM,GAAI84C,GAAc,EArb1C,GAiBJ,WAk7BG,KAGnB2F,OAAU,IAAIC,GAASr/C,EAAEm8C,UAAWzB,MACpC4E,OAAU,IAAID,GAASr/C,EAAEo8C,UAAWzB,MACpC4E,QAAU,IAAIF,GAASr/C,EAAEq8C,QAASzB,MAElCW,OAAS,IACTD,SAAW,KAGFt7C,IA0LZw/C,iBAPwBd,GAQxBe,gBA1JyB,CAACz/C,EAAGo5C,EAAKuF,EAAYhuC,SAMzC+uC,EAAUC,EACVC,EAAc,EAGd5/C,EAAE2a,MAAQ,GA5hCgB,IA+hCxB3a,EAAE6/C,KAAKC,cACPD,KAAKC,UArGY,CAAC9/C,QAMpBnD,EADAkjD,EAAa,eAIZljD,EAAI,EAAGA,GAAK,GAAIA,IAAKkjD,KAAgB,KACtB,EAAbA,GAAoD,IAAhC//C,EAAEm8C,UAAc,EAAJt/C,UAx8BX,KA88BQ,IAAhCmD,EAAEm8C,UAAU,KAA0D,IAAjCn8C,EAAEm8C,UAAU,KAChB,IAAjCn8C,EAAEm8C,UAAU,WA98BY,MAi9BvBt/C,EAAI,GAAIA,EAr7BS,IAq7BOA,OACS,IAAhCmD,EAAEm8C,UAAc,EAAJt/C,UAl9BU,SADA,GAmiCLmjD,CAAiBhgD,OAI3BA,EAAGA,EAAEo/C,WAILp/C,EAAGA,EAAEs/C,UA1LE,CAACt/C,QAEjB4/C,SAGM5/C,EAAGA,EAAEm8C,UAAWn8C,EAAEo/C,OAAOrE,aACzB/6C,EAAGA,EAAEo8C,UAAWp8C,EAAEs/C,OAAOvE,aAGxB/6C,EAAGA,EAAEu/C,SASXK,EAAcK,GAAgBL,GAAe,GACS,IAArD5/C,EAAEq8C,QAAgC,EAAxB3C,GAASkG,GAAmB,GADSA,cAMnDrD,SAAW,KAAmB,GAAK,EAAI,EAAI,EAItCqD,GAwKSM,CAAclgD,KAGhBA,EAAEu8C,QAAU,EAAI,IAAO,IACpBv8C,EAAEw8C,WAAa,EAAI,IAAO,EAMrCmD,GAAeD,MAAuBC,MAI/BA,EAAchB,EAAa,EAGnCA,EAAa,GAAKe,QAActG,KAShBp5C,EAAGo5C,EAAKuF,EAAYhuC,GAnlCX,IAqlCnB3Q,EAAEmgD,UAA0BR,IAAgBD,MAE3C1/C,EAAI,KAA6B,EAAI,GAAI,MACpCA,EAAG25C,GAAcE,SAGtB75C,EAAI,KAA0B,EAAI,GAAI,GAjM7B,EAACA,EAAGogD,EAAQC,EAAQC,SAIrCC,SAMMvgD,EAAGogD,EAAS,IAAK,MACjBpgD,EAAGqgD,EAAS,EAAK,MACjBrgD,EAAGsgD,EAAU,EAAI,GACtBC,EAAO,EAAGA,EAAOD,EAASC,OAEnBvgD,EAAGA,EAAEq8C,QAAyB,EAAjB3C,GAAS6G,GAAY,GAAY,MAIhDvgD,EAAGA,EAAEm8C,UAAWiE,EAAS,MAGzBpgD,EAAGA,EAAEo8C,UAAWiE,EAAS,KA4KlBrgD,EAAGA,EAAEo/C,OAAOrE,SAAW,EAAG/6C,EAAEs/C,OAAOvE,SAAW,EAAG6E,EAAc,MAC/D5/C,EAAGA,EAAEm8C,UAAWn8C,EAAEo8C,eAMxBp8C,GAEP2Q,MACQ3Q,IA8EbwgD,UApEmB,CAACxgD,EAAGi7C,EAAMoC,OAO1BlC,YAAYn7C,EAAEu9C,MAAqB,EAAbv9C,EAAEy8C,UAAqBxB,IAAS,EAAK,MAC3DE,YAAYn7C,EAAEu9C,MAAqB,EAAbv9C,EAAEy8C,SAAe,GAAY,IAAPxB,IAE5CE,YAAYn7C,EAAEw9C,MAAQx9C,EAAEy8C,UAAiB,IAALY,IACpCZ,WAEW,IAATxB,IAEAkB,UAAe,EAALkB,QAEVx2C,gBAOAs1C,UAAgD,MAAxBkB,GAvmCN,IAumCyB,QAC3CjB,UAAyB,EAAfpB,GAAOC,OA0Bbj7C,EAAEy8C,WAAaz8C,EAAEygD,YAAc,GAkBxCC,UAvKoB1gD,OACTA,EAAG2gD,EAAmB,MACtB3gD,EAl9BQ,IAk9BM25C,IAjzBT,CAAC35C,IAEG,KAAfA,EAAEs7C,aACMt7C,EAAGA,EAAEu7C,UACbA,OAAS,IACTD,SAAW,GAEJt7C,EAAEs7C,UAAY,MACrBH,YAAYn7C,EAAEo7C,WAAwB,IAAXp7C,EAAEu7C,SAC7BA,SAAW,IACXD,UAAY,KAwyBPt7C,KAuNX,IAAI4gD,GAzBY,CAACC,EAAOzH,EAAKC,EAAKyH,SAC5BC,EAAc,MAARF,EAAiB,EACvB7gD,EAAO6gD,IAAU,GAAM,MAAS,EAChChkD,EAAI,OAEO,IAARw8C,GAAW,GAIZA,EAAM,IAAO,IAAOA,KACjBx8C,OAGCkkD,EAAK3H,EAAI0H,KAAS,IAClB9gD,EAAK+gD,EAAK,UACPlkD,MAEL,SACA,aAGAkkD,EAAM/gD,GAAM,GAAM,GA8B5B,MAeMghD,GAAW,IAAIC,YAfH,UACZlhD,EAAGmhD,EAAQ,WAENrkD,EAAI,EAAGA,EAAI,IAAKA,IAAK,GACxBA,UACKwD,EAAI,EAAGA,EAAI,EAAGA,MACX,EAAJN,EAAU,WAAcA,IAAM,EAAOA,IAAM,IAE7ClD,GAAKkD,SAGNmhD,GAIwBC,IAiBjC,IAAIC,GAdU,CAACC,EAAKjI,EAAKC,EAAKyH,WACtB3jD,EAAI6jD,GACJvzC,EAAMqzC,EAAMzH,gBAITn8C,EAAI4jD,EAAK5jD,EAAIuQ,EAAKvQ,MAClBmkD,IAAQ,EAAKlkD,EAAmB,OAAVi8C,EAAIl8C,cAG3BmkD,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,MAAM5E,SAAEA,oBAAUQ,mBAAkBC,aAAiBe,aAAWE,IAAc3B,IAS5EkD,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,GAGH78C,GAAQtK,OACG,MAAY,EAAI,EAAI,GAG/BqnD,GAAQxL,QACRC,EAAMD,EAAI57C,cAAiB67C,GAAO,KAASA,GAAO,GAKxD,IAIIwL,GAJY,CAAC7kD,EAAG8kD,EAAMzgD,QAAmBrE,EAAE+kD,WAAc1gD,GAAQrE,EAAEglD,UAYvE,MAAMC,GAAiBpF,UACf7/C,EAAI6/C,EAAK78C,UAGXq2C,EAAMr5C,EAAEo7C,QACR/B,EAAMwG,EAAKqF,cACPrF,EAAKqF,WAED,IAAR7L,MAEC8L,OAAOz2C,IAAI1O,EAAEm7C,YAAY2D,SAAS9+C,EAAEolD,YAAaplD,EAAEolD,YAAc/L,GAAMwG,EAAKwF,YAC5EA,UAAYhM,IACf+L,aAAe/L,IACZiM,WAAajM,IACb6L,WAAa7L,IAChB+B,SAAW/B,EACK,IAAdr5C,EAAEo7C,YACFgK,YAAc,KAKdG,GAAmB,CAACvlD,EAAG2Q,QACX3Q,EAAIA,EAAEwlD,aAAe,EAAIxlD,EAAEwlD,eAAmBxlD,EAAEylD,SAAWzlD,EAAEwlD,YAAa70C,KACxF60C,YAAcxlD,EAAEylD,YACJzlD,EAAE6/C,OAIZ6F,GAAW,CAAC1lD,EAAGM,OACjB66C,YAAYn7C,EAAEo7C,WAAa96C,GASzBqlD,GAAc,CAAC3lD,EAAGM,OAIpB66C,YAAYn7C,EAAEo7C,WAAc96C,IAAM,EAAK,MACvC66C,YAAYn7C,EAAEo7C,WAAiB,IAAJ96C,GAWzBslD,GAAW,CAAC/F,EAAMzG,EAAKlsC,EAAOulB,SAE9B4mB,EAAMwG,EAAKgG,gBAEXxM,EAAM5mB,MAAcA,GACZ,IAAR4mB,EAAoB,KAEnBwM,UAAYxM,IAGb3qC,IAAImxC,EAAKiG,MAAMhH,SAASe,EAAKkG,QAASlG,EAAKkG,QAAU1M,GAAMnsC,GACvC,IAApB2yC,EAAK78C,MAAMgjD,OACRnF,MAAQD,GAAUf,EAAKgB,MAAOzH,EAAKC,EAAKnsC,GAGlB,IAApB2yC,EAAK78C,MAAMgjD,SACbnF,MAAQO,GAAQvB,EAAKgB,MAAOzH,EAAKC,EAAKnsC,MAGxC64C,SAAW1M,IACX4M,UAAY5M,EAEVA,IAaH6M,GAAgB,CAAClmD,EAAGmmD,SAIpBv/C,EACAyyC,EAHA+M,EAAepmD,EAAEqmD,iBACjBC,EAAOtmD,EAAEylD,SAGTc,EAAWvmD,EAAEwmD,YACbC,EAAazmD,EAAEymD,iBACbx8B,EAASjqB,EAAEylD,SAAYzlD,EAAE0mD,OAhJVC,IAiJjB3mD,EAAEylD,YAAciB,OAjJCC,KAiJyB,EAExCC,EAAO5mD,EAAE6+C,OAETgI,EAAQ7mD,EAAE8mD,OACVhC,EAAQ9kD,EAAE8kD,KAMViC,EAAS/mD,EAAEylD,SA7JD,QA8JZuB,EAAaJ,EAAKN,EAAOC,EAAW,GACpCU,EAAaL,EAAKN,EAAOC,GAQzBvmD,EAAEwmD,aAAexmD,EAAEknD,iBACJ,GAKfT,EAAazmD,EAAEmnD,cAA0BnnD,EAAEmnD,mBAMrChB,EAWJS,EAAKhgD,EAAQ2/C,KAAkBU,GAC/BL,EAAKhgD,EAAQ2/C,EAAW,KAAOS,GAC/BJ,EAAKhgD,KAA0BggD,EAAKN,IACpCM,IAAOhgD,KAAwBggD,EAAKN,EAAO,OAUvC,gBASCM,IAAON,KAAUM,IAAOhgD,IAAUggD,IAAON,KAAUM,IAAOhgD,IAC1DggD,IAAON,KAAUM,IAAOhgD,IAAUggD,IAAON,KAAUM,IAAOhgD,IAC1DggD,IAAON,KAAUM,IAAOhgD,IAAUggD,IAAON,KAAUM,IAAOhgD,IAC1DggD,IAAON,KAAUM,IAAOhgD,IAAUggD,IAAON,KAAUM,IAAOhgD,IAC1D0/C,EAAOS,QAxNF,OA4NcT,KACrBS,EA7NO,IA+NV1N,EAAMkN,EAAU,MAChBa,YAAcjB,IACL9M,EACPA,GAAOoN,UAGEG,EAAKN,EAAOC,EAAW,KACvBK,EAAKN,EAAOC,cAEPzB,EAAKqB,EAAYU,IAAU58B,GAA4B,KAAjBm8B,UAExDG,GAAYvmD,EAAEmnD,UACTZ,EAEFvmD,EAAEmnD,WAcLE,GAAernD,UAEbsnD,EAAUtnD,EAAE0mD,WACdvmD,EAAGtD,EAAG0D,EAAGgnD,EAAMpyC,IAIhB,MACMnV,EAAEwnD,YAAcxnD,EAAEmnD,UAAYnnD,EAAEylD,SAoBnCzlD,EAAEylD,UAAY6B,KAtRCX,KAsRoC,GAEnD9H,OAAOnwC,IAAI1O,EAAE6+C,OAAOC,SAASwI,EAASA,EAAUA,GAAU,KAC1DF,aAAeE,IACf7B,UAAY6B,IAEZ9B,aAAe8B,IASbtnD,EAAEynD,YACF5qD,OAGEmD,EAAE0nD,OAAOvnD,KACXunD,KAAKvnD,GAAMI,GAAK+mD,EAAU/mD,EAAI+mD,EAAU,UACjCzqD,KAEPyqD,IACAzqD,OAGEmD,EAAE8kD,OAAO3kD,KACX2kD,KAAK3kD,GAAMI,GAAK+mD,EAAU/mD,EAAI+mD,EAAU,UAIjCzqD,MAEHyqD,KAEc,IAApBtnD,EAAE6/C,KAAKgG,oBAgBPD,GAAS5lD,EAAE6/C,KAAM7/C,EAAE6+C,OAAQ7+C,EAAEylD,SAAWzlD,EAAEmnD,UAAWI,KACvDJ,WAAatqD,EAGXmD,EAAEmnD,UAAYnnD,EAAE2nD,QAhVN,QAiVN3nD,EAAEylD,SAAWzlD,EAAE2nD,SACnBC,MAAQ5nD,EAAE6+C,OAAO1pC,KAGjByyC,MAAQ/C,GAAK7kD,EAAGA,EAAE4nD,MAAO5nD,EAAE6+C,OAAO1pC,EAAM,IAInCnV,EAAE2nD,WAELC,MAAQ/C,GAAK7kD,EAAGA,EAAE4nD,MAAO5nD,EAAE6+C,OAAO1pC,EA3V1B,EA2V4C,MAEpD2vC,KAAK3vC,EAAMnV,EAAE8mD,QAAU9mD,EAAE0nD,KAAK1nD,EAAE4nD,SAChCF,KAAK1nD,EAAE4nD,OAASzyC,QAEhBwyC,WACE3nD,EAAEmnD,UAAYnnD,EAAE2nD,OAjWV,aA0WP3nD,EAAEmnD,UAxWUR,KAwWuC,IAApB3mD,EAAE6/C,KAAKgG,WAoJ3CgC,GAAe,CAAC7nD,EAAG8nD,SAEnBC,EACAC,SAEK,IAMHhoD,EAAEmnD,UAvgBaR,IAugBc,OACnB3mD,GACRA,EAAEmnD,UAzgBWR,KAygBkBmB,IAAUjE,UA7fzB,KAggBA,IAAhB7jD,EAAEmnD,qBAQI,EACRnnD,EAAEmnD,WAvhBQ,MAyhBVS,MAAQ/C,GAAK7kD,EAAGA,EAAE4nD,MAAO5nD,EAAE6+C,OAAO7+C,EAAEylD,SAzhB1B,EAyhBiD,MACjDzlD,EAAE8kD,KAAK9kD,EAAEylD,SAAWzlD,EAAE8mD,QAAU9mD,EAAE0nD,KAAK1nD,EAAE4nD,SACnDF,KAAK1nD,EAAE4nD,OAAS5nD,EAAEylD,UAOJ,IAAdsC,GAA4B/nD,EAAEylD,SAAWsC,GAAe/nD,EAAE0mD,OAhiB3CC,QAqiBfsB,aAAe/B,GAAclmD,EAAG+nD,IAGhC/nD,EAAEioD,cA1iBQ,OA+iBHzH,GAAUxgD,EAAGA,EAAEylD,SAAWzlD,EAAEonD,YAAapnD,EAAEioD,aA/iBxC,KAijBVd,WAAannD,EAAEioD,aAKbjoD,EAAEioD,cAAgBjoD,EAAEkoD,gBAAuCloD,EAAEmnD,WAtjBrD,EAsjB6E,GACrFc,oBAEExC,aAEAmC,MAAQ/C,GAAK7kD,EAAGA,EAAE4nD,MAAO5nD,EAAE6+C,OAAO7+C,EAAEylD,SA3jB9B,EA2jBqD,MACjDzlD,EAAE8kD,KAAK9kD,EAAEylD,SAAWzlD,EAAE8mD,QAAU9mD,EAAE0nD,KAAK1nD,EAAE4nD,SACnDF,KAAK1nD,EAAE4nD,OAAS5nD,EAAEylD,eAKQ,KAAnBzlD,EAAEioD,gBACXxC,kBAGAA,UAAYzlD,EAAEioD,eACdA,aAAe,IACfL,MAAQ5nD,EAAE6+C,OAAO7+C,EAAEylD,YAEnBmC,MAAQ/C,GAAK7kD,EAAGA,EAAE4nD,MAAO5nD,EAAE6+C,OAAO7+C,EAAEylD,SAAW,WAa1CjF,GAAUxgD,EAAG,EAAGA,EAAE6+C,OAAO7+C,EAAEylD,aAElC0B,cACA1B,cAEAuC,OAEehoD,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,kBAjlBS,WAulBtByC,OAAW3nD,EAAEylD,SAAY0C,EAAkBnoD,EAAEylD,SAAW0C,EACtDL,IAAU/D,OAEK/jD,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,UAzlBW,EACA,GA8lBpBllD,EAAEy8C,cAEaz8C,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,WApmBW,EACA,GAgnBpBkD,GAAe,CAACpoD,EAAG8nD,SAEnBC,EACAC,EAEAK,SAGK,IAMHroD,EAAEmnD,UA3oBaR,IA2oBc,OACnB3mD,GACRA,EAAEmnD,UA7oBWR,KA6oBkBmB,IAAUjE,UAjoBzB,KAooBA,IAAhB7jD,EAAEmnD,qBAMI,EACRnnD,EAAEmnD,WAzpBQ,MA2pBVS,MAAQ/C,GAAK7kD,EAAGA,EAAE4nD,MAAO5nD,EAAE6+C,OAAO7+C,EAAEylD,SA3pB1B,EA2pBiD,MACjDzlD,EAAE8kD,KAAK9kD,EAAEylD,SAAWzlD,EAAE8mD,QAAU9mD,EAAE0nD,KAAK1nD,EAAE4nD,SACnDF,KAAK1nD,EAAE4nD,OAAS5nD,EAAEylD,YAMpBe,YAAcxmD,EAAEioD,eAChBK,WAAatoD,EAAEonD,cACfa,aAAeE,EAEC,IAAdJ,GAA0B/nD,EAAEwmD,YAAcxmD,EAAEkoD,gBAC5CloD,EAAEylD,SAAWsC,GAAc/nD,EAAE0mD,OAtqBdC,QA2qBfsB,aAAe/B,GAAclmD,EAAG+nD,GAG9B/nD,EAAEioD,cAAgB,MAChB9H,WAAaiD,IAjrBP,IAirBsBpjD,EAAEioD,cAA8BjoD,EAAEylD,SAAWzlD,EAAEonD,YAAc,UAK3Fa,aAAeE,IAMjBnoD,EAAEwmD,aA5rBQ,GA4rBoBxmD,EAAEioD,cAAgBjoD,EAAEwmD,YAAa,GACpDxmD,EAAEylD,SAAWzlD,EAAEmnD,UA7rBhB,IAosBH3G,GAAUxgD,EAAGA,EAAEylD,SAAW,EAAIzlD,EAAEsoD,WAAYtoD,EAAEwmD,YApsB3C,KA0sBVW,WAAannD,EAAEwmD,YAAc,IAC7BA,aAAe,OAETxmD,EAAEylD,UAAY4C,MAEhBT,MAAQ/C,GAAK7kD,EAAGA,EAAE4nD,MAAO5nD,EAAE6+C,OAAO7+C,EAAEylD,SA/sB9B,EA+sBqD,MACjDzlD,EAAE8kD,KAAK9kD,EAAEylD,SAAWzlD,EAAE8mD,QAAU9mD,EAAE0nD,KAAK1nD,EAAE4nD,SACnDF,KAAK1nD,EAAE4nD,OAAS5nD,EAAEylD,gBAGK,KAAlBzlD,EAAEwmD,kBACX+B,gBAAkB,IAClBN,aAAeE,IACf1C,WAEEuC,OAEehoD,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,kBA9sBO,UAotBXllD,EAAEuoD,sBAOF/H,GAAUxgD,EAAG,EAAGA,EAAE6+C,OAAO7+C,EAAEylD,SAAW,IAE3CuC,MAEehoD,GAAG,KAGpBylD,aACA0B,YACuB,IAArBnnD,EAAE6/C,KAAKqF,iBApuBS,SA2uBlBqD,gBAAkB,IAClB9C,aACA0B,mBAIFnnD,EAAEuoD,oBAGK/H,GAAUxgD,EAAG,EAAGA,EAAE6+C,OAAO7+C,EAAEylD,SAAW,MAE7C8C,gBAAkB,KAEpBZ,OAAS3nD,EAAEylD,SAAW0C,EAAgBnoD,EAAEylD,SAAW0C,EACjDL,IAAU/D,OAEK/jD,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,UA1vBW,EACA,GA+vBpBllD,EAAEy8C,cAEaz8C,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,WArwBW,EACA,GA66B1B,YAAgBsD,EAAaC,EAAUC,EAAaC,EAAWC,QAExDJ,YAAcA,OACdC,SAAWA,OACXC,YAAcA,OACdC,UAAYA,OACZC,KAAOA,EAGd,MAAMC,GAAsB,CAE1B,IAAIC,GAAO,EAAG,EAAG,EAAG,GA5iBC,CAAC9oD,EAAG8nD,SAKrBiB,EAAiB,UAEjBA,EAAiB/oD,EAAEgpD,iBAAmB,MACvBhpD,EAAEgpD,iBAAmB,KAI/B,IAEHhpD,EAAEmnD,WAAa,EAAG,OASRnnD,GACQ,IAAhBA,EAAEmnD,WAAmBW,IAAUjE,UAraf,KAyaA,IAAhB7jD,EAAEmnD,kBAQN1B,UAAYzlD,EAAEmnD,YACdA,UAAY,QAGR8B,EAAYjpD,EAAEwlD,YAAcuD,MAEf,IAAf/oD,EAAEylD,UAAkBzlD,EAAEylD,UAAYwD,OAElC9B,UAAYnnD,EAAEylD,SAAWwD,IACzBxD,SAAWwD,KAEIjpD,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,kBA7bS,KAuclBllD,EAAEylD,SAAWzlD,EAAEwlD,aAAgBxlD,EAAE0mD,OAndlBC,SAqdA3mD,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,kBA1cS,WAidtByC,OAAS,EAEPG,IAAU/D,OAEK/jD,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,UApdW,EACA,IA0dpBllD,EAAEylD,SAAWzlD,EAAEwlD,iBAEAxlD,GAAG,GAChBA,EAAE6/C,KAAKqF,WAheW,MA07BxB,IAAI4D,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,mBACOvI,KAAO,UACPqJ,OAAS,OACT/N,YAAc,UACd6N,iBAAmB,OACnB5D,YAAc,OACdhK,QAAU,OACV4K,KAAO,OACPmD,OAAS,UACTC,QAAU,OACVC,OAAS7E,QACT8E,mBAEA5C,OAAS,OACT6C,OAAS,OACTzC,OAAS,OAETjI,OAAS,UAQT2I,YAAc,OAKd1C,KAAO,UAMP4C,KAAO,UAEPE,MAAQ,OACRH,UAAY,OACZ+B,UAAY,OACZxE,UAAY,OAEZD,WAAa,OAObS,YAAc,OAKdyC,aAAe,OACfK,WAAa,OACbC,gBAAkB,OAClB9C,SAAW,OACX2B,YAAc,OACdD,UAAY,OAEZX,YAAc,OAKdH,iBAAmB,OAMnB6B,eAAiB,OAYjBvtC,MAAQ,OACRwlC,SAAW,OAEX+G,WAAa,OAGbT,WAAa,OAYbtK,UAAa,IAAIsN,YAAYC,WAC7BtN,UAAa,IAAIqN,YAAa,UAC9BpN,QAAa,IAAIoN,YAAa,OAC9B7qD,KAAKu9C,cACLv9C,KAAKw9C,cACLx9C,KAAKy9C,cAEL+C,OAAW,UACXE,OAAW,UACXC,QAAW,UAGX1D,SAAW,IAAI4N,YAAYE,SAI3B5M,KAAO,IAAI0M,YAAY,QACvB7qD,KAAKm+C,WAELE,SAAW,OACXW,SAAW,OAKXvmB,MAAQ,IAAIoyB,YAAY,QACxB7qD,KAAKy4B,YAILmmB,MAAQ,OAERiD,YAAc,OAoBdhE,SAAW,OAEXc,MAAQ,OAMRhB,QAAU,OACVC,WAAa,OACb31C,QAAU,OACV8gD,OAAS,OAGTpM,OAAS,OAITD,SAAW,EAgBlB,MAAMsO,GAAoB/J,QAEnBA,IAASA,EAAK78C,aACVyhD,GAAI5E,EAAMsE,MAGd8B,SAAWpG,EAAKyF,UAAY,IAC5BxF,UAAY6D,SAEX3jD,EAAI6/C,EAAK78C,eACbo4C,QAAU,IACVgK,YAAc,EAEZplD,EAAEgmD,KAAO,MACTA,MAAQhmD,EAAEgmD,QAGZkD,OAAUlpD,EAAEgmD,KAxrCG,GAKA,MAorCZnF,MAAoB,IAAX7gD,EAAEgmD,KACd,EAEA,IACAsD,WAAazF,MACN7jD,GACFikD,IAIH4F,GAAgBhK,UAEdn5C,EAAMkjD,GAAiB/J,GAnPf,IAAC7/C,SAoPX0G,IAAQu9C,MApPGjkD,EAqPL6/C,EAAK78C,OAnPbwkD,YAAc,EAAIxnD,EAAE0mD,UAGjB1mD,EAAE0nD,QAILQ,eAAiBW,GAAoB7oD,EAAE2a,OAAO8tC,WAC9CvB,WAAa2B,GAAoB7oD,EAAE2a,OAAO6tC,cAC1C/B,WAAaoC,GAAoB7oD,EAAE2a,OAAO+tC,cAC1CrC,iBAAmBwC,GAAoB7oD,EAAE2a,OAAOguC,YAEhDlD,SAAW,IACXD,YAAc,IACd2B,UAAY,IACZQ,OAAS,IACTM,aAAejoD,EAAEwmD,YAAc2B,IAC/BI,gBAAkB,IAClBX,MAAQ,GAmOHlhD,GAaHojD,GAAe,CAACjK,EAAMllC,EAAO0uC,EAAQU,EAAYC,EAAU7J,SAE1DN,SACIsE,OAEL6B,EAAO,KAEPrrC,IAAU2pC,OACJ,GAGNyF,EAAa,KACR,KACOA,GAGPA,EAAa,OACb,KACO,IAIZC,EAAW,GAAKA,EAxwCA,GAwwC4BX,IAAW7E,IACzDuF,EAAa,GAAKA,EAAa,IAAMpvC,EAAQ,GAAKA,EAAQ,GAC1DwlC,EAAW,GAAKA,EAAWoD,UACpBkB,GAAI5E,EAAMsE,IAIA,IAAf4F,MACW,SAIT/pD,EAAI,IAAIiqD,YAETjnD,MAAQhD,IACX6/C,KAAOA,IAEPmG,KAAOA,IACPmD,OAAS,OACTI,OAASQ,IACTrD,OAAS,GAAK1mD,EAAEupD,SAChBzC,OAAS9mD,EAAE0mD,OAAS,IAEpB8C,UAAYQ,EAAW,IACvBvC,UAAY,GAAKznD,EAAEwpD,YACnBxE,UAAYhlD,EAAEynD,UAAY,IAC1B1C,iBAAmByE,UA5wCL,EA4wC6B,GA5wC7B,KA8wCd3K,OAAS,IAAItF,WAAsB,EAAXv5C,EAAE0mD,UAC1BgB,KAAO,IAAI+B,YAAYzpD,EAAEynD,aACzB3C,KAAO,IAAI2E,YAAYzpD,EAAE0mD,UAKzBjG,YAAc,GAAMuJ,EAAW,IAE/BhB,iBAAmC,EAAhBhpD,EAAEygD,cAIrBtF,YAAc,IAAI5B,WAAWv5C,EAAEgpD,oBAI/BzL,MAAQ,EAAIv9C,EAAEygD,cAGdjD,MAAS,EAASx9C,EAAEygD,cAEpB9lC,MAAQA,IACRwlC,SAAWA,IACXkJ,OAASA,EAEJQ,GAAahK,IAictB,IAmBIqK,GAAc,CACjBC,YAldmB,CAACtK,EAAMllC,IAElBmvC,GAAajK,EAAMllC,EAAO6pC,GAj0Cf,GAEE,EA+zCuDD,IAid5EuF,aApBoBA,GAqBpBD,aApBoBA,GAqBpBD,iBApBwBA,GAqBxBQ,iBA9iBwB,CAACvK,EAAM6H,IAEzB7H,GAASA,EAAK78C,MACK,IAApB68C,EAAK78C,MAAMgjD,KAAqB7B,MAC/BnhD,MAAMmmD,OAASzB,EACbzD,IAH4BE,GA6iBpCkG,QAjdiB,CAACxK,EAAMiI,SAEnBwC,EAAK5iD,MAEJm4C,IAASA,EAAK78C,OACjB8kD,EAAQ9D,IAAa8D,EAAQ,SACtBjI,EAAO4E,GAAI5E,EAAMsE,IAAoBA,SAGxCnkD,EAAI6/C,EAAK78C,UAEV68C,EAAKsF,SACJtF,EAAKiG,OAA2B,IAAlBjG,EAAKgG,UAjzCN,MAkzCd7lD,EAAEkpD,QAA2BpB,IAAU/D,UACnCU,GAAI5E,EAA0B,IAAnBA,EAAKqF,UAAmBb,GAAgBF,MAG1DtE,KAAOA,QACH0K,EAAYvqD,EAAEspD,gBAClBA,WAAaxB,EA9zCE,KAi0Cb9nD,EAAEkpD,UAEW,IAAXlpD,EAAEgmD,OACCnF,MAAQ,KACJ7gD,EAAG,OACHA,EAAG,QACHA,EAAG,GACPA,EAAEmpD,WAaInpD,KAAMmpD,OAAOv8B,KAAO,EAAI,MAClBu8B,OAAOqB,KAAO,EAAI,IACnBxqD,EAAEmpD,OAAOtgC,MAAY,EAAJ,IACjB7oB,EAAEmpD,OAAOzkD,KAAW,EAAJ,IAChB1E,EAAEmpD,OAAOsB,QAAc,GAAJ,OAExBzqD,EAAmB,IAAhBA,EAAEmpD,OAAOuB,SACZ1qD,EAAIA,EAAEmpD,OAAOuB,MAAQ,EAAK,QAC1B1qD,EAAIA,EAAEmpD,OAAOuB,MAAQ,GAAM,QAC3B1qD,EAAIA,EAAEmpD,OAAOuB,MAAQ,GAAM,QAC3B1qD,EAAe,IAAZA,EAAE2a,MAAc,EACf3a,EAAEmgD,UAAYkD,IAAkBrjD,EAAE2a,MAAQ,EAC1C,EAAI,MACR3a,EAAiB,IAAdA,EAAEmpD,OAAOwB,IACjB3qD,EAAEmpD,OAAOtgC,OAAS7oB,EAAEmpD,OAAOtgC,MAAMrrB,YAC1BwC,EAA2B,IAAxBA,EAAEmpD,OAAOtgC,MAAMrrB,WAClBwC,EAAIA,EAAEmpD,OAAOtgC,MAAMrrB,QAAU,EAAK,MAEzCwC,EAAEmpD,OAAOqB,SACN3J,MAAQO,GAAQvB,EAAKgB,MAAO7gD,EAAEm7C,YAAan7C,EAAEo7C,QAAS,MAE3DgO,QAAU,IACVF,OA12CU,QAw0CHlpD,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAe,IAAZA,EAAE2a,MAAc,EACf3a,EAAEmgD,UAAYkD,IAAkBrjD,EAAE2a,MAAQ,EAC1C,EAAI,MACR3a,EAp0CD,KAq0CNkpD,OA70CS,SA02Cf,KACMtK,EAAU4F,MAAmB+E,OAAS,GAAM,IAAO,EACnDqB,OAEA5qD,EAAEmgD,UAAYkD,IAAkBrjD,EAAE2a,MAAQ,EAC9B,EACL3a,EAAE2a,MAAQ,EACL,EACO,IAAZ3a,EAAE2a,MACG,EAEA,KAELiwC,GAAe,EACP,IAAf5qD,EAAEylD,cA/3CQ,OAg4CJ,GAAM7G,EAAS,KAEvBsK,OA33CW,OA43CDlpD,EAAG4+C,GAGI,IAAf5+C,EAAEylD,cACQzlD,EAAG6/C,EAAKgB,QAAU,OAClB7gD,EAAgB,MAAb6/C,EAAKgB,UAEjBA,MAAQ,KAv4CC,KA44Cd7gD,EAAEkpD,UACAlpD,EAAEmpD,OAAOtgC,MAAqB,OAC1B7oB,EAAEo7C,QAEDp7C,EAAEopD,SAAmC,QAAtBD,OAAOtgC,MAAMrrB,UAC7BwC,EAAEo7C,UAAYp7C,EAAEgpD,mBACdhpD,EAAEmpD,OAAOqB,MAAQxqD,EAAEo7C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAO7gD,EAAEm7C,YAAan7C,EAAEo7C,QAAUkP,EAAKA,OAErDzK,KACR7/C,EAAEo7C,QACJp7C,EAAEo7C,UAAYp7C,EAAEgpD,uBAIbhpD,EAA+B,IAA5BA,EAAEmpD,OAAOtgC,MAAM7oB,EAAEopD,YAC3BA,UAEAppD,EAAEmpD,OAAOqB,MAAQxqD,EAAEo7C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAO7gD,EAAEm7C,YAAan7C,EAAEo7C,QAAUkP,EAAKA,IAE/DtqD,EAAEopD,UAAYppD,EAAEmpD,OAAOtgC,MAAMrrB,WAC7B4rD,QAAU,IACVF,OAl6CS,WAs6CXA,OAt6CW,MAAA,KAy6CblpD,EAAEkpD,UACAlpD,EAAEmpD,OAAOzkD,KAAoB,GACzB1E,EAAEo7C,UAGL,IACGp7C,EAAEo7C,UAAYp7C,EAAEgpD,mBACdhpD,EAAEmpD,OAAOqB,MAAQxqD,EAAEo7C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAO7gD,EAAEm7C,YAAan7C,EAAEo7C,QAAUkP,EAAKA,OAErDzK,KACR7/C,EAAEo7C,QACJp7C,EAAEo7C,UAAYp7C,EAAEgpD,kBAAkB,GAC9B,UAKNhpD,EAAEopD,QAAUppD,EAAEmpD,OAAOzkD,KAAKlH,OACkB,IAAxCwC,EAAEmpD,OAAOzkD,KAAKmmD,WAAW7qD,EAAEopD,WAE3B,KAECppD,EAAG0H,SACG,IAARA,GAEL1H,EAAEmpD,OAAOqB,MAAQxqD,EAAEo7C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAO7gD,EAAEm7C,YAAan7C,EAAEo7C,QAAUkP,EAAKA,IAEvD,IAAR5iD,MACA0hD,QAAU,IACVF,OAv8CY,WA28CdA,OA38Cc,MAAA,KA88ChBlpD,EAAEkpD,UACAlpD,EAAEmpD,OAAOsB,QAAuB,GAC5BzqD,EAAEo7C,UAGL,IACGp7C,EAAEo7C,UAAYp7C,EAAEgpD,mBACdhpD,EAAEmpD,OAAOqB,MAAQxqD,EAAEo7C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAO7gD,EAAEm7C,YAAan7C,EAAEo7C,QAAUkP,EAAKA,OAErDzK,KACR7/C,EAAEo7C,QACJp7C,EAAEo7C,UAAYp7C,EAAEgpD,kBAAkB,GAC9B,UAKNhpD,EAAEopD,QAAUppD,EAAEmpD,OAAOsB,QAAQjtD,OACkB,IAA3CwC,EAAEmpD,OAAOsB,QAAQI,WAAW7qD,EAAEopD,WAE9B,KAECppD,EAAG0H,SACG,IAARA,GAEL1H,EAAEmpD,OAAOqB,MAAQxqD,EAAEo7C,QAAUkP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAO7gD,EAAEm7C,YAAan7C,EAAEo7C,QAAUkP,EAAKA,IAEvD,IAAR5iD,MACAwhD,OA3+CS,YA++CXA,OA/+CW,OAAA,MAk/CblpD,EAAEkpD,SACAlpD,EAAEmpD,OAAOqB,MACPxqD,EAAEo7C,QAAU,EAAIp7C,EAAEgpD,qBACNnJ,GAEZ7/C,EAAEo7C,QAAU,GAAKp7C,EAAEgpD,sBACZhpD,EAAgB,IAAb6/C,EAAKgB,UACR7gD,EAAI6/C,EAAKgB,OAAS,EAAK,OAC3BA,MAAQ,IACXqI,OA1/CS,QA8/CXA,OA9/CW,KAogDC,IAAdlpD,EAAEo7C,eACUyE,GACS,IAAnBA,EAAKqF,mBAOLoE,cACKrF,WAOkB,IAAlBpE,EAAKgG,UAAkBh+C,GAAKigD,IAAUjgD,GAAK0iD,IACpDzC,IAAU/D,UACHU,GAAI5E,EAAMwE,OAthDA,MA0hDfrkD,EAAEkpD,QAA6C,IAAlBrJ,EAAKgG,gBAC7BpB,GAAI5E,EAAMwE,OAKG,IAAlBxE,EAAKgG,UAAkC,IAAhB7lD,EAAEmnD,WAC1BW,IAAUjE,IAjiDM,MAiiDU7jD,EAAEkpD,OAA0B,KACnD4B,EAAU9qD,EAAEmgD,WAAakD,GA5qBZ,EAACrjD,EAAG8nD,SAEnBE,SAEK,IAEa,IAAhBhoD,EAAEmnD,eACQnnD,GACQ,IAAhBA,EAAEmnD,WAAiB,IACjBW,IAAUjE,UA73BI,aAq4BpBoE,aAAe,IAGRzH,GAAUxgD,EAAG,EAAGA,EAAE6+C,OAAO7+C,EAAEylD,aAClC0B,cACA1B,WACEuC,OAEehoD,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,kBA94BS,WAo5BtByC,OAAS,EACPG,IAAU/D,OAEK/jD,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,UAt5BW,EACA,GA25BpBllD,EAAEy8C,cAEaz8C,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,WAj6BW,EACA,GA+hDyB6F,CAAa/qD,EAAG8nD,GAC5D9nD,EAAEmgD,WAAamD,GA7wBF,EAACtjD,EAAG8nD,SAElBE,EACAlD,EACAwB,EAAMS,QAEJH,EAAO5mD,EAAE6+C,cAEN,IAKH7+C,EAAEmnD,WA9yBQ,IA8yBgB,OAChBnnD,GACRA,EAAEmnD,WAhzBM,KAgzBoBW,IAAUjE,UAnyBtB,KAsyBA,IAAhB7jD,EAAEmnD,qBAINc,aAAe,EACbjoD,EAAEmnD,WAzzBQ,GAyzBkBnnD,EAAEylD,SAAW,MACpCzlD,EAAEylD,SAAW,IACbmB,EAAKN,GACRxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IAAO,GAClEtmD,EAAEylD,SA5zBD,cA+zBDX,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCA,EAAOS,KACdkB,aAp0BQ,OAo0B6B3B,GACnCtmD,EAAEioD,aAAejoD,EAAEmnD,cACnBc,aAAejoD,EAAEmnD,cAOrBnnD,EAAEioD,cA90BQ,KAk1BHzH,GAAUxgD,EAAG,EAAGA,EAAEioD,aAl1Bf,KAo1BVd,WAAannD,EAAEioD,eACfxC,UAAYzlD,EAAEioD,eACdA,aAAe,MAKRzH,GAAUxgD,EAAG,EAAGA,EAAE6+C,OAAO7+C,EAAEylD,aAElC0B,cACA1B,YAEAuC,OAEehoD,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,kBAr1BS,WA21BtByC,OAAS,EACPG,IAAU/D,OAEK/jD,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,UA71BW,EACA,GAk2BpBllD,EAAEy8C,cAEaz8C,GAAG,GACK,IAArBA,EAAE6/C,KAAKqF,WAx2BW,EACA,GAgiDI8F,CAAYhrD,EAAG8nD,GACrCe,GAAoB7oD,EAAE2a,OAAOiuC,KAAK5oD,EAAG8nD,MAhiDnB,IAkiDlBgD,GAjiDkB,IAiiDcA,MAChC5B,OAviDa,KAEK,IAuiDlB4B,GAriDkB,IAqiDSA,SACN,IAAnBjL,EAAKqF,cACLoE,eAGGrF,MA3iDa,IAojDlB6G,IACEhD,IAAU5F,MACFliD,GAEH8nD,IAAU9D,QAEAhkD,EAAG,EAAG,GAAG,GAItB8nD,IAAUhE,QAEP9jD,EAAE0nD,MAEa,IAAhB1nD,EAAEmnD,cACF1B,SAAW,IACXD,YAAc,IACdmC,OAAS,QAIH9H,GACS,IAAnBA,EAAKqF,oBACLoE,cACKrF,UAOT6D,IAAU/D,GAAqBE,GAC/BjkD,EAAEgmD,MAAQ,EAAY9B,IAGX,IAAXlkD,EAAEgmD,SACKhmD,EAAgB,IAAb6/C,EAAKgB,UACR7gD,EAAI6/C,EAAKgB,OAAS,EAAK,QACvB7gD,EAAI6/C,EAAKgB,OAAS,GAAM,QACxB7gD,EAAI6/C,EAAKgB,OAAS,GAAM,QACxB7gD,EAAmB,IAAhB6/C,EAAKoG,aACRjmD,EAAI6/C,EAAKoG,UAAY,EAAK,QAC1BjmD,EAAI6/C,EAAKoG,UAAY,GAAM,QAC3BjmD,EAAI6/C,EAAKoG,UAAY,GAAM,UAIxBjmD,EAAG6/C,EAAKgB,QAAU,OAClB7gD,EAAgB,MAAb6/C,EAAKgB,WAGRhB,GAIV7/C,EAAEgmD,KAAO,MAAOA,MAAQhmD,EAAEgmD,MAET,IAAdhmD,EAAEo7C,QAAgB6I,GAASC,KAuInC+G,WAnImBpL,QAEbA,IAAsBA,EAAK78C,aACvBmhD,SAGH+E,EAASrJ,EAAK78C,MAAMkmD,cAhoDT,KAioDbA,GAhoDc,KAioDhBA,GAhoDe,KAioDfA,GAhoDkB,KAioDlBA,GAhoDe,MAioDfA,GAhoDe,MAioDfA,GAhoDiB,MAioDjBA,EAEOzE,GAAI5E,EAAMsE,OAGdnhD,MAAQ,KAvoDI,MAyoDVkmD,EAAwBzE,GAAI5E,EAAMuE,IAAkBH,KAgH5DiH,qBAxG4B,CAACrL,EAAMsL,SAE9BC,EAAaD,EAAW3tD,WAEvBqiD,IAAsBA,EAAK78C,aACvBmhD,SAGHnkD,EAAI6/C,EAAK78C,MACTgjD,EAAOhmD,EAAEgmD,QAEF,IAATA,GAAwB,IAATA,GAjqDF,KAiqDgBhmD,EAAEkpD,QAA0BlpD,EAAEmnD,iBACtDhD,MAII,IAAT6B,MAEGnF,MAAQD,GAAUf,EAAKgB,MAAOsK,EAAYC,EAAY,MAG3DpF,KAAO,EAGLoF,GAAcprD,EAAE0mD,OAAQ,CACb,IAATV,OAEGhmD,EAAE0nD,QACLjC,SAAW,IACXD,YAAc,IACdmC,OAAS,OAIT0D,EAAU,IAAI9R,WAAWv5C,EAAE0mD,UACvBh4C,IAAIy8C,EAAWrM,SAASsM,EAAaprD,EAAE0mD,OAAQ0E,GAAa,KACvDC,IACArrD,EAAE0mD,aAGX4E,EAAQzL,EAAKgG,SACb0F,EAAO1L,EAAKkG,QACZD,EAAQjG,EAAKiG,YACdD,SAAWuF,IACXrF,QAAU,IACVD,MAAQqF,KACDnrD,GACLA,EAAEmnD,WA3sDO,GA2sDiB,KAC3BhyC,EAAMnV,EAAEylD,SACR5oD,EAAImD,EAAEmnD,UAAa,OAGnBS,MAAQ/C,GAAK7kD,EAAGA,EAAE4nD,MAAO5nD,EAAE6+C,OAAO1pC,EAhtDxB,EAgtD0C,MAEpD2vC,KAAK3vC,EAAMnV,EAAE8mD,QAAU9mD,EAAE0nD,KAAK1nD,EAAE4nD,SAEhCF,KAAK1nD,EAAE4nD,OAASzyC,cAETtY,KACT4oD,SAAWtwC,IACXgyC,UAAYgB,KACFnoD,YAEZylD,UAAYzlD,EAAEmnD,YACd3B,YAAcxlD,EAAEylD,WAChBkC,OAAS3nD,EAAEmnD,YACXA,UAAY,IACZc,aAAejoD,EAAEwmD,YAAc2B,IAC/BI,gBAAkB,IACfxC,QAAUwF,IACVzF,MAAQA,IACRD,SAAWyF,IACdtF,KAAOA,EACF/B,IAgCRuH,YApBiB,sCAuBlB,MAAMC,GAAO,CAACnlD,EAAKvI,IACV0M,OAAO9H,UAAU0W,eAAe/U,KAAKgC,EAAKvI,GAGnD,IA0CI2tD,GA1CS,SAAUplD,SACfqlD,EAAUhrD,MAAMgC,UAAUf,MAAM0C,KAAKhH,UAAW,QAC/CquD,EAAQnuD,QAAQ,OACfwrB,EAAS2iC,EAAQ/8C,WAClBoa,MAEiB,iBAAXA,QACH,IAAI4iC,UAAU5iC,EAAS,gCAGpB7oB,KAAK6oB,EACVyiC,GAAKziC,EAAQ7oB,OACXA,GAAK6oB,EAAO7oB,YAKfmG,GAyBLolD,GApBiBG,QAEfxS,EAAM,UAEDn8C,EAAI,EAAGJ,EAAI+uD,EAAOruD,OAAQN,EAAIJ,EAAGI,OACjC2uD,EAAO3uD,GAAGM,aAIbmuB,EAAS,IAAI4tB,WAAWF,WAErBn8C,EAAI,EAAG4jD,EAAM,EAAGhkD,EAAI+uD,EAAOruD,OAAQN,EAAIJ,EAAGI,IAAK,KAClD4uD,EAAQD,EAAO3uD,KACZwR,IAAIo9C,EAAOhL,MACXgL,EAAMtuD,cAGRmuB,GAgBT,IAAIogC,IAAmB,EAEvB,WAAaC,aAAaC,MAAM,KAAM,IAAI1S,WAAW,UAAcr7C,QAAyB,EAM5F,MAAMguD,GAAW,IAAI3S,WAAW,KAChC,QAAS4S,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,GAtJcj3C,OACW,mBAAhBk3C,aAA8BA,YAAY1pD,UAAU2pD,cACtD,IAAID,aAAcC,OAAOn3C,OAG9BikC,EAAKr5C,EAAGwsD,EAAIC,EAAOtvD,EAAGuvD,EAAUt3C,EAAI3X,OAAQkvD,EAAU,MAGrDF,EAAQ,EAAGA,EAAQC,EAASD,MAC3Br3C,EAAI01C,WAAW2B,GACE,QAAZ,UAAuBA,EAAQ,EAAIC,MACrCt3C,EAAI01C,WAAW2B,EAAQ,GACN,QAAZ,aACJ,SAAgB,OAAW,OAAY,gBAIpCzsD,EAAI,IAAO,EAAIA,EAAI,KAAQ,EAAIA,EAAI,MAAU,EAAI,QAIxD,IAAIw5C,WAAWmT,GAGhBxvD,EAAI,EAAGsvD,EAAQ,EAAGtvD,EAAIwvD,EAASF,MAC9Br3C,EAAI01C,WAAW2B,GACE,QAAZ,UAAuBA,EAAQ,EAAIC,MACrCt3C,EAAI01C,WAAW2B,EAAQ,GACN,QAAZ,aACJ,SAAgB,OAAW,OAAY,aAI3CzsD,EAAI,MAEF7C,KAAO6C,EACFA,EAAI,QAET7C,KAAO,IAAQ6C,IAAM,IACrB7C,KAAO,IAAY,GAAJ6C,GACVA,EAAI,SAET7C,KAAO,IAAQ6C,IAAM,KACrB7C,KAAO,IAAQ6C,IAAM,EAAI,KACzB7C,KAAO,IAAY,GAAJ6C,MAGf7C,KAAO,IAAQ6C,IAAM,KACrB7C,KAAO,IAAQ6C,IAAM,GAAK,KAC1B7C,KAAO,IAAQ6C,IAAM,EAAI,KACzB7C,KAAO,IAAY,GAAJ6C,UAIhBq5C,GAgGLgT,GAzEa,CAAChT,EAAKlyC,WACfmyC,EAAMnyC,GAAOkyC,EAAI57C,UAEI,mBAAhBmvD,aAA8BA,YAAYhqD,UAAUiqD,cACtD,IAAID,aAAcC,OAAOxT,EAAI0F,SAAS,EAAG53C,QAG9ChK,EAAG2vD,QAKDC,EAAW,IAAInsD,MAAY,EAAN04C,OAEtBwT,EAAM,EAAG3vD,EAAI,EAAGA,EAAIm8C,GAAM,KACzBt5C,EAAIq5C,EAAIl8C,QAER6C,EAAI,IAAM,GAAW8sD,KAAS9sD,eAE9BgtD,EAAQb,GAASnsD,MAEjBgtD,EAAQ,IAAcF,KAAS,SAAaE,EAAQ,cAGzC,IAAVA,EAAc,GAAiB,IAAVA,EAAc,GAAO,EAExCA,EAAQ,GAAK7vD,EAAIm8C,KACjBt5C,GAAK,EAAiB,GAAXq5C,EAAIl8C,SAKlB6vD,EAAQ,IAAcF,KAAS,MAE/B9sD,EAAI,QACG8sD,KAAS9sD,MAEb,QACI8sD,KAAS,MAAW9sD,GAAK,GAAM,OAC/B8sD,KAAS,MAAc,KAAJ9sD,UA1DZ,EAACq5C,EAAKC,QAItBA,EAAM,OACJD,EAAI0F,UAAYiN,UACXjiD,OAAOkiD,aAAaC,MAAM,KAAM7S,EAAI57C,SAAW67C,EAAMD,EAAMA,EAAI0F,SAAS,EAAGzF,QAIlF1tB,EAAS,WACJzuB,EAAI,EAAGA,EAAIm8C,EAAKn8C,OACb4M,OAAOkiD,aAAa5S,EAAIl8C,WAE7ByuB,GAgDAqhC,CAAcF,EAAUD,IA8B7BT,GApBa,CAAChT,EAAKlyC,QAEfA,GAAOkyC,EAAI57C,QACP47C,EAAI57C,WAAgB47C,EAAI57C,YAG9BsjD,EAAM55C,EAAM,OACT45C,GAAO,GAA2B,MAAV,MAAPA,gBAIpBA,EAAM,GAIE,IAARA,EAJkB55C,EAMd45C,EAAMoL,GAAS9S,EAAI0H,IAAQ55C,EAAO45C,EAAM55C,GAqDlD,IAAI+lD,GAzBJ,gBAEOnH,MAAQ,UACRC,QAAU,OAEVF,SAAW,OAEXI,SAAW,OAEXd,OAAS,UACTE,SAAW,OAEXH,UAAY,OAEZI,UAAY,OAEZX,IAAM,QAEN3hD,MAAQ,UAER88C,UAAY,OAEZe,MAAQ,GAKf,MAAMqM,GAAaziD,OAAO9H,UAAUkO,UAMlCoxC,WAAYkL,gBAAchL,gBAAcC,GAAcC,SAAU+K,GAChE5K,KAAM6K,GAAQ5K,aAAc6K,yBAC5BnK,sBACAK,GACAI,WAAY2J,IACVvL,GA0FJ,YAAmBtyC,QACZA,QAAUg8C,GAAc,CAC3B/wC,MAAOwoC,GACPkG,OAAQkE,GACRC,UAAW,MACXzD,WAAY,GACZC,SAAU,EACV7J,SAAUqD,IACT9zC,GAAW,QAEV+9C,EAAM7uD,KAAK8Q,QAEX+9C,EAAIC,KAAQD,EAAI1D,WAAa,IAC3BA,YAAc0D,EAAI1D,WAGf0D,EAAIE,MAASF,EAAI1D,WAAa,GAAO0D,EAAI1D,WAAa,OACzDA,YAAc,SAGftF,IAAS,OACTE,IAAS,QACTiJ,OAAS,OACT/B,OAAS,QAEThM,KAAO,IAAIoN,QACXpN,KAAKqF,UAAY,MAElBgE,EAASgB,GAAYJ,aACvBlrD,KAAKihD,KACL4N,EAAI9yC,MACJ8yC,EAAIpE,OACJoE,EAAI1D,WACJ0D,EAAIzD,SACJyD,EAAItN,aAGF+I,IAAWmE,SACP,IAAIQ,MAAMvM,GAAS4H,OAGvBuE,EAAI7O,WACMwL,iBAAiBxrD,KAAKihD,KAAM4N,EAAI7O,QAG1C6O,EAAItC,WAAY,KACd2C,OAE0B,iBAAnBL,EAAItC,WAENiB,GAAmBqB,EAAItC,YACe,yBAApC+B,GAAW5oD,KAAKmpD,EAAItC,YACtB,IAAI5R,WAAWkU,EAAItC,YAEnBsC,EAAItC,aAGJjB,GAAYgB,qBAAqBtsD,KAAKihD,KAAMiO,GAEjD5E,IAAWmE,SACP,IAAIQ,MAAMvM,GAAS4H,SAGtB6E,WAAY,GA0BrBC,GAAUrrD,UAAUlF,KAAO,SAAU4G,EAAM4pD,SACnCpO,EAAOjhD,KAAKihD,KACZ2N,EAAY5uD,KAAK8Q,QAAQ89C,cAC3BtE,EAAQgF,KAERtvD,KAAKgvD,aAAgB,QAErBK,MAAiBA,EAA0BA,GACb,IAAfA,EAAsBb,GAAaD,GAGlC,iBAAT9oD,IAEJyhD,MAAQsG,GAAmB/nD,GACG,yBAA1B6oD,GAAW5oD,KAAKD,KACpByhD,MAAQ,IAAIvM,WAAWl1C,KAEvByhD,MAAQzhD,IAGV0hD,QAAU,IACVF,SAAWhG,EAAKiG,MAAMtoD,YAGF,IAAnBqiD,EAAKqF,cACFC,OAAS,IAAI5L,WAAWiU,KACxBnI,SAAW,IACXH,UAAYsI,QAIErL,IAAgB+L,IAAgB9L,KAAiBvC,EAAKqF,WAAa,OACjFiJ,OAAOtO,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,aACpCH,UAAY,YAIVgF,GAAYG,QAAQxK,EAAMqO,GAG/BhF,IAAWoE,UACTzN,EAAKwF,SAAW,QACb8I,OAAOtO,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,aAElC6E,GAAYe,WAAWrsD,KAAKihD,WAChCuO,MAAMlF,QACN0E,OAAQ,EACN1E,IAAWmE,MAIG,IAAnBxN,EAAKqF,cAMLgJ,EAAc,GAAKrO,EAAKwF,SAAW,OAChC8I,OAAOtO,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,aACpCH,UAAY,UAIG,IAAlBrF,EAAKgG,yBAXFsI,OAAOtO,EAAKsF,eAcd,GAWT6I,GAAUrrD,UAAUwrD,OAAS,SAAUrC,QAChCD,OAAOpuD,KAAKquD,IAanBkC,GAAUrrD,UAAUyrD,MAAQ,SAAUlF,GAEhCA,IAAWmE,UACR1hC,OAAS+/B,GAAqB9sD,KAAKitD,cAErCA,OAAS,QACTpH,IAAMyE,OACNvE,IAAM/lD,KAAKihD,KAAK8E,KAsJvB,IAAI0J,GAAU,SAAsBxO,EAAM3yC,OACpCohD,EACA39C,EACA49C,EACAjE,EACA78C,EAEA+gD,EAEAC,EACAC,EACAC,EAEAC,EACAC,EACA7S,EACA8S,EACAC,EACAC,EACAC,EACAC,EACA9lC,EAEAiwB,EACA4B,EACAp4B,EACAssC,EAGArJ,EAAOX,QAGLniD,EAAQ68C,EAAK78C,QAEb68C,EAAKkG,UACHlG,EAAKiG,QACNwI,KAAYzI,SAAW,KACvBhG,EAAKwF,WACHxF,EAAKsF,SACRoJ,KAAgB1O,EAAKqF,aACrBqJ,KAAarJ,UAAY,OAExBliD,EAAMwrD,OAELxrD,EAAMyrD,QACNzrD,EAAM0rD,QACN1rD,EAAM2rD,QACH3rD,EAAM67C,SACV77C,EAAM6rD,OACN7rD,EAAMg5C,OACLh5C,EAAMosD,UACNpsD,EAAMqsD,eACArsD,EAAMssD,SAAW,QACjBtsD,EAAMusD,UAAY,MAO7B,CACGvT,EAAO,QACD8J,EAAMwI,MAAUtS,KAChB,KACA8J,EAAMwI,MAAUtS,KAChB,KAGH8S,EAAMD,EAAOG,YAGX,MACFE,IAAS,QACJ9lC,KACFA,IACF8lC,IAAS,GAAM,IACV,IAAP9lC,IAIKmlC,KAAiB,MAAPW,YAEL,GAAL9lC,OAwKc,IAAR,MAAW,GACjB0lC,GAAc,gBAAqC1lC,GAAM,kBAGpD,GAALA,EAAS,GAEVomC,KArSC,aAySF7K,IAAM,gCACL6K,KA3SA,aAyHO,MAAPN,KACA,GACF9lC,IACE4yB,EAAO5yB,OACD08B,EAAMwI,MAAUtS,KAChB,MAEH6S,MAAczlC,GAAM,OACjBA,KACFA,GAGN4yB,EAAO,QACD8J,EAAMwI,MAAUtS,KAChB,KACA8J,EAAMwI,MAAUtS,KAChB,KAEH+S,EAAMF,EAAOI,YAGX,MACFC,IAAS,QACJ9lC,KACFA,IACF8lC,IAAS,GAAM,MAEZ,GAAL9lC,OA+HmB,IAAR,MAAW,GACjB2lC,GAAc,gBAAqC3lC,GAAM,iBAI3Du7B,IAAM,0BACL6K,KAzRJ,gBAqJY,MAAPN,KACD,GACFlT,EAAO5yB,OACD08B,EAAMwI,MAAUtS,KAChB,EACJA,EAAO5yB,OACD08B,EAAMwI,MAAUtS,KAChB,OAGJ6S,MAAczlC,GAAM,EAExB6xB,EAAOuT,EAAM,GACV7J,IAAM,kCACL6K,KAnKN,mBAuKQpmC,KACFA,IAEHmlC,EAAOjE,EACRrP,EAAO7xB,EAAI,MACR6xB,EAAO7xB,EACRA,EAAKslC,GACH1rD,EAAMysD,KAAM,GACT9K,IAAM,kCACL6K,KAhLV,gBA0MO,IACOZ,EACA,IAAVD,SACMF,EAAQrlC,EACZA,EAAKiwB,EAAK,IACLjwB,OAEEmlC,KAAUK,EAAS/rC,aACjBuG,KACJmlC,EAAOtT,IACAkK,WAGTwJ,EAAQvlC,SACPqlC,EAAQE,EAAQvlC,KAClBulC,EACFvlC,EAAKiwB,EAAK,IACLjwB,OAEEmlC,KAAUK,EAAS/rC,aACjBuG,QACJ,EACHulC,EAAQtV,EAAK,GACVsV,KACEvlC,OAEEmlC,KAAUK,EAAS/rC,aACjBuG,KACJmlC,EAAOtT,IACAkK,eAKVwJ,EAAQvlC,EACZA,EAAKiwB,EAAK,IACLjwB,OAEEmlC,KAAUK,EAAS/rC,aACjBuG,KACJmlC,EAAOtT,IACAkK,OAGX9L,EAAM,KACJkV,KAAUY,EAAYtsC,OACtB0rC,KAAUY,EAAYtsC,OACtB0rC,KAAUY,EAAYtsC,QACtB,EAELw2B,MACKkV,KAAUY,EAAYtsC,KACzBw2B,EAAM,MACDkV,KAAUY,EAAYtsC,WAI9B,GACI0rC,EAAOtT,OAELsT,KAAUpJ,EAAOtiC,OACjB0rC,KAAUpJ,EAAOtiC,OACjB0rC,KAAUpJ,EAAOtiC,QACjB,QACAw2B,EAAM,GACXA,MACKkV,KAAUpJ,EAAOtiC,KACpBw2B,EAAM,MACDkV,KAAUpJ,EAAOtiC,2BAmC/ByrC,EAAM39C,GAAQ49C,EAAO9gD,KAGxBuuC,GAAQ,KACP3C,KACCA,GAAO,SACD2C,GAAQ,IAGjB+J,QAAUuI,IACVjJ,SAAWkJ,IACX1I,SAAYyI,EAAM39C,IAAmB29C,EAAZ,EAAmB,KAAW39C,KACvDu0C,UAAaqJ,EAAO9gD,IAAmB8gD,EAAb,IAAqB,OAAc9gD,KAC5DohD,KAAOA,IACP7S,KAAOA,GAuBf,MASM0T,GAAQ,IAAIjG,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,IAGzDkG,GAAO,IAAIpW,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,KAGpDqW,GAAQ,IAAInG,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,IAG1BoG,GAAO,IAAItW,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,IAAIuW,GAnSkB,CAACjyD,EAAMkyD,EAAMC,EAAYC,EAAO/O,EAAOgP,EAAaC,EAAM1pD,WAExEu1C,EAAOv1C,EAAKu1C,SAYdoU,EACAC,EACAC,EACAC,EACAhF,EAIA99C,EAjBA4rC,EAAM,EACNmX,EAAM,EACN99C,EAAM,EAAGxL,EAAM,EACfupD,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EAMP9xD,EAAO,KACP+xD,EAAa,QAGXxzC,EAAQ,IAAIksC,YAAYuH,IACxBC,EAAO,IAAIxH,YAAYuH,QAIzBE,EAAWC,EAASC,EAHpBvoC,EAAQ,KACRwoC,EAAc,MAoCbhY,EAAM,EAAGA,GA7FA,GA6FgBA,MACtBA,GAAO,MAEVmX,EAAM,EAAGA,EAAMP,EAAOO,MACnBT,EAAKC,EAAaQ,YAInBxU,EACF90C,EAtGS,GAsGMA,GAAO,GACN,IAAfqW,EAAMrW,GADkBA,QAG1BupD,EAAOvpD,MACFA,GAEG,IAARA,WAIIgpD,KAAkB,WAMlBA,KAAkB,WAEnBlU,KAAO,EACL,MAEJtpC,EAAM,EAAGA,EAAMxL,GACC,IAAfqW,EAAM7K,GADaA,SAGrB+9C,EAAO/9C,MACFA,KAIF,EACF2mC,EAAM,EAAGA,GApIA,GAoIgBA,WACnB,KACD97B,EAAM87B,GACVuX,EAAO,cAITA,EAAO,IAtIG,OAsI+B,IAAR1pD,kBAKhC,GAAK,EACLmyC,EAAM,EAAGA,EAjJA,GAiJeA,MACtBA,EAAM,GAAK4X,EAAK5X,GAAO97B,EAAM87B,OAI/BmX,EAAM,EAAGA,EAAMP,EAAOO,IACM,IAA3BT,EAAKC,EAAaQ,OACfS,EAAKlB,EAAKC,EAAaQ,OAAWA,MAnJ7B,IAyLV3yD,KACKgrB,EAAQsnC,IACT,IA1LK,IA4LFtyD,KACF6xD,MACO,MACNC,MACO,MACT,QAGCC,KACCC,WAKH,IACD,IACAn9C,IACCw9C,IACAO,IACA,SAEA,GAAKA,IACLI,EAAO,EAlND,IAqNRhzD,GAAmBgzD,EA1NJ,KAMN,IAqNXhzD,GAAoBgzD,EA1NF,WA2NZ,SAIA,GAEKxX,EAAMsX,EACdR,EAAKK,GAAO/iD,KACJ,IACC0iD,EAAKK,IAETL,EAAKK,GAAO/iD,KACTob,EAAMwoC,EAAclB,EAAKK,MACxBxxD,EAAK+xD,EAAaZ,EAAKK,QAGxB,KACC,KAIN,GAAMnX,EAAMsX,IACZ,GAAKD,IACNL,QAEID,IACF7E,MAAgBoF,GAAQN,GAASa,GAAa,GAAOC,GAAW,GAAMC,EAAU,QACtE,IAATf,SAGF,GAAMhX,EAAM,EACZyX,EAAOV,OACH,KAEE,IAATA,MACMA,EAAO,KACPA,KAED,MAKY,KAAf7yC,EAAM87B,GAAY,IAClBA,IAAQnyC,UACN6oD,EAAKC,EAAaG,EAAKK,OAI3BnX,EAAMoX,MAAgBF,KAAUD,EAAK,KAE1B,IAATK,MACKF,MAID/9C,IAGD2mC,EAAMsX,IACN,GAAKD,EACLA,EAAOC,EAAOzpD,OACXqW,EAAMmzC,EAAOC,KACjBC,GAAQ,aAEH,QAIH,GAAKF,EA5RJ,IA6RJ7yD,GAAmBgzD,EAlSR,KAMN,IA6RPhzD,GAAoBgzD,EAlSN,WAmSR,IAIHC,EAAOP,IAIPD,GAAQG,GAAQ,GAAOC,GAAQ,GAAOnF,EAAO2E,EAAc,UAOxD,IAATY,MAIIvF,EAAOuF,GAAUzX,EAAMsX,GAAS,GAAO,IAAM,GAAK,KAKrD3U,KAAOyU,EACL,GA8BT,MAQEpO,SAAUiP,WAAYhP,WAASC,GAC/BC,KAAM+O,GAAQ9O,aAAc+O,GAAgB9O,YAAa+O,GAAe7O,eAAgB8O,GAAkB7O,aAAc8O,GAAgB7O,YAAa8O,eAAe7O,cACpKa,IACE5B,GAqDE6P,GAAW1F,QAEE,GAAM,UACP,EAAK,SACP,UAAW,KACX,QAAS,IAIzB,mBACOqD,KAAO,OACP7+C,MAAO,OACPq1C,KAAO,OACP8L,UAAW,OACXvqD,MAAQ,OACRinD,KAAO,OACPuD,MAAQ,OACRC,MAAQ,OAERtK,KAAO,UAGPuK,MAAQ,OACRxD,MAAQ,OACRC,MAAQ,OACRC,MAAQ,OACR9P,OAAS,UAGTgQ,KAAO,OACP7S,KAAO,OAGPx+C,OAAS,OACT6Q,OAAS,OAGTwa,MAAQ,OAGRumC,QAAU,UACVC,SAAW,UACXC,QAAU,OACVC,SAAW,OAGX2C,MAAQ,OACRC,KAAO,OACPC,MAAQ,OACRC,KAAO,OACP9G,KAAO,UAEPwE,KAAO,IAAItG,YAAY,UACvB0G,KAAO,IAAI1G,YAAY,UAOvB6I,OAAS,UACTC,QAAU,UACV9C,KAAO,OACP+C,KAAO,OACPC,IAAM,EAIb,MAAMC,GAAoB7S,QAEnBA,IAASA,EAAK78C,aAAgB0uD,SAC7B1uD,EAAQ68C,EAAK78C,eACdijD,SAAWpG,EAAKyF,UAAYtiD,EAAMgvD,MAAQ,IAC1CrN,IAAM,GACP3hD,EAAMgjD,SACHnF,MAAqB,EAAb79C,EAAMgjD,QAEfwJ,KA3HQ,IA4HR7+C,KAAO,IACPmhD,SAAW,IACXtD,KAAO,QACP9G,KAAO,OACPmH,KAAO,IACP7S,KAAO,IAEPoT,QAAUpsD,EAAMsvD,OAAS,IAAIK,WA9FjB,OA+FZtD,SAAWrsD,EAAMuvD,QAAU,IAAII,WA9FlB,OAgGblD,KAAO,IACP+C,QAECjB,IAIHqB,GAAgB/S,QAEfA,IAASA,EAAK78C,aAAgB0uD,SAC7B1uD,EAAQ68C,EAAK78C,eACbyrD,MAAQ,IACRC,MAAQ,IACRC,MAAQ,EACP+D,GAAiB7S,IAKpBgT,GAAgB,CAAChT,EAAMkK,SACvB/D,MAGCnG,IAASA,EAAK78C,aAAgB0uD,SAC7B1uD,EAAQ68C,EAAK78C,aAGf+mD,EAAa,KACR,KACOA,MAGa,MAAL,GAClBA,EAAa,QACD,KAKdA,MAA4B,GAAKA,EAAa,IACzC2H,IAEY,OAAjB1uD,EAAM67C,QAAmB77C,EAAMivD,QAAUlI,MACrClL,OAAS,QAIXmH,KAAOA,IACPiM,MAAQlI,EACP6I,GAAa/S,KAIhBiT,GAAe,CAACjT,EAAMkK,SAErBlK,SAAe6R,SAGd1uD,EAAQ,IAAI+vD,KAIb/vD,MAAQA,IACP67C,OAAS,WACTn4C,EAAMmsD,GAAchT,EAAMkK,UAC5BrjD,IAAQ6qD,OACLvuD,MAAQ,MAER0D,GAoBT,IAEIssD,GAAQC,GAFRC,IAAS,EAKb,MAAMC,GAAenwD,OAGfkwD,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,EAkQOxtD,EAAM+sD,KAAM,EAAG,IAAKiD,GAAU,EAAGhwD,EAAMmtD,KAAM,CAAEnU,KAAM,MAG/D,EACCwU,EAAM,MAAYT,KAAKS,KAAS,KArQ7B,EAuQMxtD,EAAM+sD,KAAM,EAAG,GAAMkD,GAAS,EAAGjwD,EAAMmtD,KAAM,CAAEnU,KAAM,QAG5D,IAGLoT,QAAU4D,KACV1D,QAAU,IACVD,SAAW4D,KACX1D,SAAW,GAkBb6D,GAAe,CAACvT,EAAMwT,EAAK5lD,EAAKK,SAEhCmtC,QACEj4C,EAAQ68C,EAAK78C,aAGE,OAAjBA,EAAM67C,WACF4P,MAAQ,GAAKzrD,EAAMivD,QACnBtD,MAAQ,IACRD,MAAQ,IAER7P,OAAS,IAAItF,WAAWv2C,EAAMyrD,QAIlC3gD,GAAQ9K,EAAMyrD,SACV5P,OAAOnwC,IAAI2kD,EAAIvU,SAASrxC,EAAMzK,EAAMyrD,MAAOhhD,GAAM,KACjDkhD,MAAQ,IACRD,MAAQ1rD,EAAMyrD,UAGbzrD,EAAMyrD,MAAQzrD,EAAM2rD,MACvB1T,EAAOntC,MACFA,KAGH+wC,OAAOnwC,IAAI2kD,EAAIvU,SAASrxC,EAAMK,EAAML,EAAMK,EAAOmtC,GAAOj4C,EAAM2rD,WAC5D1T,MAGA4D,OAAOnwC,IAAI2kD,EAAIvU,SAASrxC,EAAMK,EAAML,GAAM,KAC1CkhD,MAAQ7gD,IACR4gD,MAAQ1rD,EAAMyrD,UAGdE,OAAS1T,EACXj4C,EAAM2rD,QAAU3rD,EAAMyrD,UAAeE,MAAQ,GAC7C3rD,EAAM0rD,MAAQ1rD,EAAMyrD,UAAeC,OAASzT,KAG7C,GA8oCT,IAqBIqY,GAAc,CACjBV,aAtBoBA,GAuBpBC,cAtBqBA,GAuBrBH,iBAtBwBA,GAuBxBa,YAnxCoB1T,GAEZiT,GAAajT,EAvKJ,IAy7CjBiT,aAtBoBA,GAuBpBU,QArqCiB,CAAC3T,EAAMiI,SAEnB9kD,EACA8iD,EAAOX,EACPoG,EACAkI,EACApB,EAAMzB,EACN/B,EACA7S,EACAsS,EAAKC,EACLzgD,EACA+U,EACAssC,EAEA+B,EAAWC,EAASC,EAEpBsC,EAAWC,EAASC,EACpBva,EACA3yC,EALAwoD,EAAO,QAML2E,EAAO,IAAIta,WAAW,OACxB9yC,EAEA5J,QAEEi3D,EACJ,IAAIva,WAAW,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,SAG5EsG,IAASA,EAAK78C,QAAU68C,EAAKsF,SAC5BtF,EAAKiG,OAA2B,IAAlBjG,EAAKgG,gBAChB6L,KAGD7R,EAAK78C,MApVK,KAqVdA,EAAMwsD,SAAuBA,KApVb,MAwVd3P,EAAKwF,WACFxF,EAAKsF,SACPtF,EAAKqF,YACLrF,EAAKkG,UACJlG,EAAKiG,QACNjG,EAAKgG,WACL7iD,EAAM6rD,OACN7rD,EAAMg5C,OAGPqW,IACCzB,IACDW,mBAIIvuD,EAAMwsD,WApXF,KAsXW,IAAfxsD,EAAMgjD,KAAY,GACdwJ,KA3WM,cA+WPxT,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGQ,EAAbh5C,EAAMgjD,MAAsB,QAAT6I,EAAiB,GACjCkD,MAAQ,IAET,GAAY,IAAPlD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ3Q,GAAQp+C,EAAM+uD,MAAO8B,EAAM,EAAG,KAIrC,IACA,IAEDrE,KA7YC,aAgZHjoD,MAAQ,EACVvE,EAAM0kD,SACFA,KAAKqM,MAAO,KAED,IAAP/N,UACA,QAAoB,OAAc,IAAM,GAAI,GACjDrB,IAAM,2BACL6K,KA3XD,aA8XK,QAAqB5L,GAAY,GACtCe,IAAM,+BACL6K,KAhYD,iBAoYG,KACF,IAEyB,GAAnB,MACM,IAAhBxsD,EAAMivD,QACFA,MAAQ5Y,UAEPA,EAAMr2C,EAAMivD,MAAO,GACrBtN,IAAM,wBACL6K,KA7YD,WAmZDhB,KAAO,GAAKxrD,EAAMivD,QAInBpR,MAAQ79C,EAAM+uD,MAAQ,IACrBvC,KAAc,IAAPX,EA5aH,GAEE,KA4aL,IACA,aAvbE,OA4bF7S,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAGJz0C,MAAQsnD,GACK,MAARtnD,SAAkBq8C,GAAY,GAClCe,IAAM,+BACL6K,KA1aD,YA6aW,MAAdxsD,EAAMuE,MAAgB,GACnBo9C,IAAM,6BACL6K,KA/aD,SAkbHxsD,EAAM0kD,SACFA,KAAK96B,KAASiiC,GAAQ,EAAK,GAEjB,IAAd7rD,EAAMuE,UAEH,GAAY,IAAPsnD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ3Q,GAAQp+C,EAAM+uD,MAAO8B,EAAM,EAAG,MAIvC,IACA,IAEDrE,KA3dE,OAAA,OA+dDxT,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,EAGNh5C,EAAM0kD,SACFA,KAAKgD,KAAOmE,GAEF,IAAd7rD,EAAMuE,UAEH,GAAY,IAAPsnD,IACL,GAAMA,IAAS,EAAK,MACpB,GAAMA,IAAS,GAAM,MACrB,GAAMA,IAAS,GAAM,MACpBkD,MAAQ3Q,GAAQp+C,EAAM+uD,MAAO8B,EAAM,EAAG,MAIvC,IACA,IAEDrE,KArfA,OAAA,OAyfCxT,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,EAGNh5C,EAAM0kD,SACFA,KAAKsM,OAAiB,IAAPnF,IACfnH,KAAKiD,GAAMkE,GAAQ,GAET,IAAd7rD,EAAMuE,UAEH,GAAY,IAAPsnD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ3Q,GAAQp+C,EAAM+uD,MAAO8B,EAAM,EAAG,MAIvC,IACA,IAEDrE,KA9gBG,OAAA,KAihBS,KAAdxsD,EAAMuE,MAAgB,MAEjBy0C,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,IAGJx+C,OAASqxD,EACX7rD,EAAM0kD,SACFA,KAAKuM,UAAYpF,GAEP,IAAd7rD,EAAMuE,UAEH,GAAY,IAAPsnD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ3Q,GAAQp+C,EAAM+uD,MAAO8B,EAAM,EAAG,MAIvC,IACA,OAGA7wD,EAAM0kD,SACPA,KAAK7+B,MAAQ,QAEf2mC,KA5iBG,OAAA,KA+iBS,KAAdxsD,EAAMuE,UACDvE,EAAMxF,OACTsQ,EAAOukD,MAAeA,GACtBvkD,IACE9K,EAAM0kD,SACF1kD,EAAM0kD,KAAKuM,UAAYjxD,EAAMxF,OAC9BwF,EAAM0kD,KAAK7+B,UAER6+B,KAAK7+B,MAAQ,IAAI0wB,WAAWv2C,EAAM0kD,KAAKuM,cAEzCvM,KAAK7+B,MAAMna,IACfo3C,EAAMhH,SACJyM,EAGAA,EAAOz9C,GAGTurC,IAMc,IAAdr2C,EAAMuE,UACFwqD,MAAQ3Q,GAAQp+C,EAAM+uD,MAAOjM,EAAOh4C,EAAMy9C,OAE1Cz9C,KACAA,IACFtQ,QAAUsQ,GAEd9K,EAAMxF,kBAENA,OAAS,IACTgyD,KAhlBE,OAAA,KAmlBU,KAAdxsD,EAAMuE,MAAgB,IACX,IAAT8qD,YACG,OAGCvM,EAAMyF,EAAOz9C,KAEf9K,EAAM0kD,MAAQrO,GACbr2C,EAAMxF,OAAS,UACZkqD,KAAKhjD,MAAQoF,OAAOkiD,aAAa3S,UAElCA,GAAOvrC,EAAOukD,MAEL,IAAdrvD,EAAMuE,UACFwqD,MAAQ3Q,GAAQp+C,EAAM+uD,MAAOjM,EAAOh4C,EAAMy9C,OAE1Cz9C,KACAA,EACJurC,eAEGr2C,EAAM0kD,SACPA,KAAKhjD,KAAO,QAEdlH,OAAS,IACTgyD,KA1mBK,OAAA,KA6mBO,KAAdxsD,EAAMuE,MAAgB,IACX,IAAT8qD,YACG,OAECvM,EAAMyF,EAAOz9C,KAEf9K,EAAM0kD,MAAQrO,GACbr2C,EAAMxF,OAAS,UACZkqD,KAAK+C,SAAW3gD,OAAOkiD,aAAa3S,UAErCA,GAAOvrC,EAAOukD,MACL,IAAdrvD,EAAMuE,UACFwqD,MAAQ3Q,GAAQp+C,EAAM+uD,MAAOjM,EAAOh4C,EAAMy9C,OAE1Cz9C,KACAA,EACJurC,eAEGr2C,EAAM0kD,SACPA,KAAK+C,QAAU,QAEjB+E,KAjoBE,OAAA,KAooBU,IAAdxsD,EAAMuE,MAAgB,MAEjBy0C,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGN6S,KAAwB,QAARkD,OAAiB,GAC9BpN,IAAM,wBACL6K,KA1nBH,WA8nBE,IACA,EAGLxsD,EAAM0kD,SACFA,KAAK8C,KAASxnD,EAAMuE,OAAS,EAAK,IAClCmgD,KAAKqM,MAAO,KAEflT,MAAQ79C,EAAM+uD,MAAQ,IACrBvC,KAzpBM,cAFF,QA+pBHxT,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,IAGL6E,MAAQ79C,EAAM+uD,MAAQF,GAAQhD,KAE5B,IACA,IAEDW,KA1qBE,QAAA,MA6qBe,IAAnBxsD,EAAM8uD,kBAEHzM,SAAWoO,IACXvO,UAAY0L,IACZ7K,QAAUwF,IACV1F,SAAWwM,IACVxD,KAAOA,IACP7S,KAAOA,EAENyV,KAEJ5Q,MAAQ79C,EAAM+uD,MAAQ,IACrBvC,KAxrBM,QAAA,MA2rBR1H,IAAUxF,IAAWwF,IAAUvF,gBA1rBrB,MA6rBVv/C,EAAM2N,KAAM,MAEG,EAAPqrC,KACK,EAAPA,IAEFwT,KAprBC,cAwrBFxT,EAAO,GAAG,IACF,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,WAGJrrC,KAAe,EAAPk+C,OAEJ,KACF,EAGQ,EAAPA,QACF,IAGGW,KAttBI,cAwtBP,QACSxsD,KAGNwsD,KAttBM,GAutBR1H,IAAUvF,GAAS,MAEX,KACF,qBAKP,IAGGiN,KAruBG,cAuuBN,IACE7K,IAAM,uBACL6K,KA5tBH,QA+tBG,KACF,aAhvBM,YAqvBG,EAAPxT,KACK,EAAPA,EAGDA,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,MAGE,eAAuB,GAAM,OAAS,GAC3C2I,IAAM,iCACL6K,KAlvBD,cAqvBDhyD,OAAgB,MAAPqxD,IAIR,IACA,IAEDW,KA3wBO,GA4wBT1H,IAAUvF,gBA5wBD,KA+wBPiN,KA9wBM,QAAA,QAixBLxsD,EAAMxF,OACTsQ,EAAM,IACJA,EAAOukD,MAAeA,GACtBvkD,EAAO8iD,MAAeA,GACb,IAAT9iD,YAEGY,IAAIo3C,EAAMhH,SAASyM,EAAMA,EAAOz9C,GAAO2lD,MAEtC3lD,KACAA,KACAA,KACDA,IACDtQ,QAAUsQ,UAIZ0hD,KAryBM,cAKC,QAoyBNxT,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAGJmW,KAAkC,KAAnB,WAEX,KACF,IAEFC,MAAmC,GAAnB,WAEZ,KACF,IAEFF,MAAmC,GAAnB,WAEZ,KACF,EAGJlvD,EAAMmvD,KAAO,KAAOnvD,EAAMovD,MAAQ,GAAI,GACnCzN,IAAM,wCACL6K,KAhzBD,WAqzBD6C,KAAO,IACP7C,KAl0BS,QAAA,QAq0BRxsD,EAAMqvD,KAAOrvD,EAAMkvD,OAAO,MAExBlW,EAAO,GAAG,IACF,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,IAGJ+T,KAAK+D,EAAM9wD,EAAMqvD,SAAmB,EAAPxD,OAEzB,KACF,OAGH7rD,EAAMqvD,KAAO,MACZtC,KAAK+D,EAAM9wD,EAAMqvD,SAAW,OAM9BjD,QAAUpsD,EAAMsvD,SAChBhD,QAAU,IAET,CAAEtT,KAAMh5C,EAAMssD,WACfQ,GAl4BA,EAk4BgB9sD,EAAM+sD,KAAM,EAAG,GAAI/sD,EAAMosD,QAAS,EAAGpsD,EAAMmtD,KAAM1pD,KACjE6oD,QAAU7oD,EAAKu1C,KAEjBt1C,EAAK,GACFi+C,IAAM,6BACL6K,KAx1BD,WA41BD6C,KAAO,IACP7C,KAx2BU,QAAA,QA22BTxsD,EAAMqvD,KAAOrvD,EAAMmvD,KAAOnvD,EAAMovD,OAAO,QAEnCpvD,EAAMosD,QAAQP,MAAc7rD,EAAMssD,SAAW,KACxCJ,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENgC,GAAclV,IANZ,IAQM,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGNoV,EAAW,QAEHF,KACFA,IAEFnB,KAAK/sD,EAAMqvD,QAAUjB,MAExB,IACc,KAAbA,EAAiB,OAEfF,EAAY,EACTlV,EAAOn/C,GAAG,IACF,IAATw1D,iBAEIvM,EAAMyF,MAAWvP,KACjB,UAIAkV,KACFA,EAEW,IAAfluD,EAAMqvD,KAAY,GACf1N,IAAM,8BACL6K,KAv4BP,WA04BKxsD,EAAM+sD,KAAK/sD,EAAMqvD,KAAO,KACvB,GAAY,UAET,KACF,UAGY,KAAbjB,EAAiB,OAEpBF,EAAY,EACTlV,EAAOn/C,GAAG,IACF,IAATw1D,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAIAkV,KACFA,IAEF,IACC,GAAY,UAET,KACF,MAGL,OAECA,EAAY,EACTlV,EAAOn/C,GAAG,IACF,IAATw1D,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAIAkV,KACFA,IAEF,IACC,IAAa,YAEV,KACF,KAGNluD,EAAMqvD,KAAOvkD,EAAO9K,EAAMmvD,KAAOnvD,EAAMovD,MAAO,GAC3CzN,IAAM,8BACL6K,KA77BL,cAg8BI1hD,OACCiiD,KAAK/sD,EAAMqvD,QAAUhZ,MAj8B1B,KAu8BHr2C,EAAMwsD,cAGc,IAApBxsD,EAAM+sD,KAAK,KAAY,GACpBpL,IAAM,yCACL6K,KA58BD,cAm9BDF,QAAU,IAET,CAAEtT,KAAMh5C,EAAMssD,WACfQ,GApgCD,EAogCgB9sD,EAAM+sD,KAAM,EAAG/sD,EAAMmvD,KAAMnvD,EAAMosD,QAAS,EAAGpsD,EAAMmtD,KAAM1pD,KAGxE6oD,QAAU7oD,EAAKu1C,KAGjBt1C,EAAK,GACFi+C,IAAM,gCACL6K,KA99BD,cAk+BDD,SAAW,IAGXF,SAAWrsD,EAAMuvD,UAChB,CAAEvW,KAAMh5C,EAAMusD,YACfO,GAphCA,EAohCgB9sD,EAAM+sD,KAAM/sD,EAAMmvD,KAAMnvD,EAAMovD,MAAOpvD,EAAMqsD,SAAU,EAAGrsD,EAAMmtD,KAAM1pD,KAGpF8oD,SAAW9oD,EAAKu1C,KAGlBt1C,EAAK,GACFi+C,IAAM,0BACL6K,KA/+BD,cAm/BDA,KA7/BU,GA8/BZ1H,IAAUvF,gBA9/BE,KAigCViN,KAhgCS,QAAA,MAmgCX6C,GAAQ,GAAKzB,GAAQ,IAAK,GAEvBvL,SAAWoO,IACXvO,UAAY0L,IACZ7K,QAAUwF,IACV1F,SAAWwM,IACVxD,KAAOA,IACP7S,KAAOA,KAEL6D,EAAM0O,KAER1O,EAAKwF,WACFxF,EAAKsF,SACPtF,EAAKqF,YACLrF,EAAKkG,UACJlG,EAAKiG,QACNjG,EAAKgG,WACL7iD,EAAM6rD,OACN7rD,EAAMg5C,KA9hCH,KAiiCNh5C,EAAMwsD,SACFgD,qBAIJA,KAAO,IAEJxvD,EAAMosD,QAAQP,MAAc7rD,EAAMssD,SAAW,KACxCJ,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAEPgC,GAAalV,IANV,IAQM,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGNmV,GAAgC,IAAV,OAAa,OACzBD,IACFC,IACCC,IAEFpuD,EAAMosD,QAAQwE,UACIF,EAAYC,GAAY,IAAoCD,MACzExE,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENwE,EAAYxC,GAAclV,IAPxB,IASM,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAIA0X,KACFA,IAEFlB,MAAQkB,UAGNxC,KACFA,IAEFsB,MAAQtB,IACR1zD,OAAS4zD,EACC,IAAZD,EAAe,GAIX3B,KA1kCO,YA6kCD,GAAV2B,EAAc,GAEVqB,UACAhD,KA9lCI,YAimCE,GAAV2B,EAAc,GACXxM,IAAM,gCACL6K,KAjlCD,WAolCD3mC,MAAkB,GAAVsoC,IACR3B,KA7lCY,QAAA,MAgmCdxsD,EAAM6lB,MAAO,OAEX7lB,EAAM6lB,MACHmzB,EAAOn/C,GAAG,IACF,IAATw1D,iBAEIvM,EAAMyF,MAAWvP,KACjB,IAGJx+C,QAAUqxD,MAAc7rD,EAAM6lB,OAAS,OAEnC7lB,EAAM6lB,SACR7lB,EAAM6lB,QAER2pC,MAAQxvD,EAAM6lB,QAGhB4pC,IAAMzvD,EAAMxF,SACZgyD,KAlnCU,QAAA,UAsnCPxsD,EAAMqsD,SAASR,MAAc7rD,EAAMusD,UAAY,KAC1CL,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENgC,GAAclV,IANZ,IAQM,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGe,IAAV,OAAa,OACdkV,IACFC,IACCC,IAEFpuD,EAAMqsD,SAASuE,UACGF,EAAYC,GAAY,IAAoCD,MACzExE,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENwE,EAAYxC,GAAclV,IAPxB,IASM,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,OAIA0X,KACFA,IAEFlB,MAAQkB,UAGNxC,KACFA,IAEFsB,MAAQtB,EACA,GAAVC,EAAc,GACXxM,IAAM,0BACL6K,KA5pCD,WA+pCDnhD,OAAS+iD,IACTvoC,MAAoB,GAAXsoC,IACT3B,KAvqCa,QAAA,MA0qCfxsD,EAAM6lB,MAAO,OAEX7lB,EAAM6lB,MACHmzB,EAAOn/C,GAAG,IACF,IAATw1D,iBAEIvM,EAAMyF,MAAWvP,KACjB,IAGJ3tC,QAAUwgD,MAAc7rD,EAAM6lB,OAAS,OAEnC7lB,EAAM6lB,SACR7lB,EAAM6lB,QAER2pC,MAAQxvD,EAAM6lB,SAGlB7lB,EAAMqL,OAASrL,EAAMwrD,KAAM,GACxB7J,IAAM,kCACL6K,KAxrCD,WA6rCDA,KAlsCW,QAAA,MAqsCJ,IAAToB,eACGrC,EAAOqC,EACV5tD,EAAMqL,OAASP,EAAM,MAChB9K,EAAMqL,OAASP,EAClBA,EAAO9K,EAAM0rD,OACX1rD,EAAMysD,KAAM,GACT9K,IAAM,kCACL6K,KAvsCL,SA0tCD1hD,EAAO9K,EAAM2rD,UACP3rD,EAAM2rD,QACP3rD,EAAMyrD,MAAQ3gD,KAGd9K,EAAM2rD,MAAQ7gD,EAEnBA,EAAO9K,EAAMxF,WAAiBwF,EAAMxF,UAC1BwF,EAAM67C,cAGNsG,IACPsO,EAAMzwD,EAAMqL,SACZrL,EAAMxF,OAEXsQ,EAAO8iD,MAAeA,MAClB9iD,IACFtQ,QAAUsQ,OAEP2lD,KAAStE,EAAYtsC,aACnB/U,GACU,IAAjB9K,EAAMxF,WAAsBgyD,KAxvCjB,eAKA,MAsvCF,IAAToB,YACG6C,KAASzwD,EAAMxF,aAEhBgyD,KA9vCS,cAMN,MA2vCLxsD,EAAMgjD,KAAM,MAEPhK,EAAO,IAAI,IACH,IAATqW,iBAGIvM,EAAMyF,MAAWvP,KACjB,QAGF4U,IACHtL,WAAaiJ,IACZyD,OAASzD,EACXA,MACG1N,MAAQ79C,EAAM+uD,MAEd/uD,EAAMuE,MAAQ65C,GAAQp+C,EAAM+uD,MAAO5M,EAAQoJ,EAAMkF,EAAMlF,GAAQ3N,GAAU59C,EAAM+uD,MAAO5M,EAAQoJ,EAAMkF,EAAMlF,MAG1GqC,KAEIrpD,MAAQsnD,EAAOgD,GAAQhD,MAAW7rD,EAAM+uD,MAAO,GACnDpN,IAAM,yBACL6K,KA/wCH,WAmxCE,IACA,IAIHA,KA1xCI,QAAA,MA6xCNxsD,EAAMgjD,MAAQhjD,EAAMuE,MAAO,MAEtBy0C,EAAO,IAAI,IACH,IAATqW,iBAEIvM,EAAMyF,MAAWvP,KACjB,KAGN6S,KAAwB,aAARmD,OAAqB,GAClCrN,IAAM,2BACL6K,KAtyCH,WA0yCE,IACA,IAIHA,KAhzCE,QAAA,KAmzCFgC,gBAlzCC,KAqzCDG,gBApzCC,UAuzCAC,QAtzCC,kBA0zCDF,YAcRrM,SAAWoO,IACXvO,UAAY0L,IACZ7K,QAAUwF,IACV1F,SAAWwM,IACVxD,KAAOA,IACP7S,KAAOA,GAGTh5C,EAAMyrD,OAAUF,IAAS1O,EAAKqF,WAAaliD,EAAMwsD,KAl1CxC,OAm1CcA,KAt1CZ,IAs1C4B1H,IAAUwJ,MAC/C8B,GAAavT,EAAMA,EAAKsF,OAAQtF,EAAKwF,SAAUkJ,EAAO1O,EAAKqF,cAE1DrF,EAAKgG,YACJhG,EAAKqF,YACRe,UAAYqI,IACZhJ,WAAaiJ,IACZyD,OAASzD,EACXvrD,EAAMgjD,MAAQuI,MACX1N,MAAQ79C,EAAM+uD,MAChB/uD,EAAMuE,MAAQ65C,GAAQp+C,EAAM+uD,MAAO5M,EAAQoJ,EAAM1O,EAAKwF,SAAWkJ,GAAQ3N,GAAU59C,EAAM+uD,MAAO5M,EAAQoJ,EAAM1O,EAAKwF,SAAWkJ,MAE9HzO,UAAY98C,EAAMg5C,QAAcrrC,KAAO,GAAK,IAj3C/B,OAk3CO6+C,KAAgB,IAAM,IA12CzB,OA22CGA,MAh3CN,KAg3CuBxsD,EAAMwsD,KAAiB,IAAM,IACzD,OAAc,IAATjB,GAAezG,IAAUwJ,KAAe5qD,IAAQ6qD,OAC3DxO,IAEDr8C,GAkGRwtD,WA9FmBrU,QAEbA,IAASA,EAAK78C,aACV0uD,OAGL1uD,EAAQ68C,EAAK78C,aACbA,EAAM67C,WACFA,OAAS,QAEZ77C,MAAQ,KACNuuD,IAoFR4C,iBAhFwB,CAACtU,EAAM6H,SAGzB7H,IAASA,EAAK78C,aAAgB0uD,SAC7B1uD,EAAQ68C,EAAK78C,aACM,IAAP,IAAPgjD,MAA0B0L,MAG/BhK,KAAOA,IACRqM,MAAO,EACLxC,KAuER6C,qBAnE4B,CAACvU,EAAMsL,WAC5BC,EAAaD,EAAW3tD,WAE1BwF,EACAqxD,EACA3tD,SAGCm5C,GAAyBA,EAAK78C,SAC3B68C,EAAK78C,MAEM,IAAfA,EAAMgjD,MAp6CI,KAo6CUhjD,EAAMwsD,KACrBkC,GAr6CK,KAy6CV1uD,EAAMwsD,SACC,IAEA5O,GAAUyT,EAAQlJ,EAAYC,EAAY,GAC/CiJ,IAAWrxD,EAAM+uD,OACZJ,MAKLyB,GAAavT,EAAMsL,EAAYC,EAAYA,GAC7C1kD,KACI8oD,KAj6CK,GAk6CJoC,OAEHE,SAAW,EAEVP,MAzB4DG,IA4DpE4C,YAtBiB,sCAgFlB,IAAIC,GApCJ,gBAEO3nC,KAAa,OAEb89B,KAAa,OAEbsJ,OAAa,OAEbrJ,GAAa,OAEb9hC,MAAa,UAEborC,UAAa,OAWbvvD,KAAa,QAIb+lD,QAAa,QAIbD,KAAa,OAEbuJ,MAAa,GAKpB,MAAMljD,GAAWpG,OAAO9H,UAAUkO,UAK5BoxC,WACJA,YAAYI,QACZG,gBAAMC,eAAcC,kBAAaE,gBAAgBC,eAAcC,IAC7Dd,GAkFJ,YAAmBtyC,QACZA,QAAUg8C,GAAc,CAC3B8B,UAAW,MACXzD,WAAY,GACZjnC,GAAI,IACHpT,GAAW,UAER+9C,EAAM7uD,KAAK8Q,QAIb+9C,EAAIC,KAAQD,EAAI1D,YAAc,GAAO0D,EAAI1D,WAAa,OACpDA,YAAc0D,EAAI1D,WACC,IAAnB0D,EAAI1D,eAAwBA,mBAI7B0D,EAAI1D,YAAc,GAAO0D,EAAI1D,WAAa,QAC9Br6C,EAAQq6C,eACnBA,YAAc,IAKf0D,EAAI1D,WAAa,IAAQ0D,EAAI1D,WAAa,IAGf,IAAR,KAAbA,gBACHA,YAAc,SAIjBtF,IAAS,OACTE,IAAS,QACTiJ,OAAS,OACT/B,OAAS,QAEThM,KAAS,IAAIoN,QACbpN,KAAKqF,UAAY,MAElBgE,EAAUoK,GAAYR,aACxBl0D,KAAKihD,KACL4N,EAAI1D,eAGFb,IAAW1G,SACP,IAAIqL,MAAMvM,GAAS4H,YAGtBtK,OAAS,IAAI2V,MAENJ,iBAAiBv1D,KAAKihD,KAAMjhD,KAAKggD,QAGzC6O,EAAItC,aAEwB,iBAAnBsC,EAAItC,aACTA,WAAaiB,GAAmBqB,EAAItC,YACG,yBAAlCt6C,GAASvM,KAAKmpD,EAAItC,gBACvBA,WAAa,IAAI5R,WAAWkU,EAAItC,aAElCsC,EAAIC,QACG4F,GAAYc,qBAAqBx1D,KAAKihD,KAAM4N,EAAItC,YACrDjC,IAAW1G,WACP,IAAIqL,MAAMvM,GAAS4H,IC/wM4C,IAAI5sD,GAAYa,GD8yM7Fq3D,GAAU7xD,UAAUlF,KAAO,SAAU4G,EAAM4pD,SACnCpO,EAAOjhD,KAAKihD,KACZ2N,EAAY5uD,KAAK8Q,QAAQ89C,UACzBrC,EAAavsD,KAAK8Q,QAAQy7C,eAC5BjC,EAAQgF,EAAauG,KAErB71D,KAAKgvD,aAAc,QAEnBK,MAAiBA,EAA0BA,GACb,IAAfA,EAAsB5L,GAAWJ,GAGxB,yBAAxBpxC,GAASvM,KAAKD,KACXyhD,MAAQ,IAAIvM,WAAWl1C,KAEvByhD,MAAQzhD,IAGV0hD,QAAU,IACVF,SAAWhG,EAAKiG,MAAMtoD,SAElB,KACgB,IAAnBqiD,EAAKqF,cACFC,OAAS,IAAI5L,WAAWiU,KACxBnI,SAAW,IACXH,UAAYsI,KAGV8F,GAAYE,QAAQ3T,EAAMqO,GAE/BhF,IAAWxG,IAAeyI,MACnBmI,GAAYc,qBAAqBvU,EAAMsL,GAE5CjC,IAAW1G,KACJ8Q,GAAYE,QAAQ3T,EAAMqO,GAC1BhF,IAAWrG,OAEXH,KAKN7C,EAAKgG,SAAW,GAChBqD,IAAWzG,IACX5C,EAAK78C,MAAMgjD,KAAO,GACK,IAAvB3hD,EAAKw7C,EAAKkG,aAEH6M,aAAa/S,KAChByT,GAAYE,QAAQ3T,EAAMqO,UAG7BhF,QACDtG,QACAC,QACAH,QACAI,eACEsL,MAAMlF,QACN0E,OAAQ,GACN,OAKM/N,EAAKqF,UAElBrF,EAAKwF,WACgB,IAAnBxF,EAAKqF,WAAmBgE,IAAWzG,OAEb,WAApB7jD,KAAK8Q,QAAQoT,GAAiB,KAE5B4xC,EAAgBtI,GAAmBvM,EAAKsF,OAAQtF,EAAKwF,UAErDsP,EAAO9U,EAAKwF,SAAWqP,EACvBE,EAAUxI,GAAmBvM,EAAKsF,OAAQuP,KAGzCrP,SAAWsP,IACXzP,UAAYsI,EAAYmH,EACzBA,KAAWxP,OAAOz2C,IAAImxC,EAAKsF,OAAOrG,SAAS4V,EAAeA,EAAgBC,GAAO,QAEhFxG,OAAOyG,aAGPzG,OAAOtO,EAAKsF,OAAO3nD,SAAWqiD,EAAKwF,SAAWxF,EAAKsF,OAAStF,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,cAMhG6D,IAAW1G,IAA2B,IAAnBiS,MAGnBvL,IAAWzG,YACJ6Q,GAAYY,WAAWt1D,KAAKihD,WAChCuO,MAAMlF,QACN0E,OAAQ,GACN,KAGa,IAAlB/N,EAAKgG,uBAGJ,GAYT2O,GAAU7xD,UAAUwrD,OAAS,SAAUrC,QAChCD,OAAOpuD,KAAKquD,IAanB0I,GAAU7xD,UAAUyrD,MAAQ,SAAUlF,GAEhCA,IAAW1G,KACW,WAApB5jD,KAAK8Q,QAAQoT,QACV6I,OAAS/sB,KAAKitD,OAAO7kD,KAAK,SAE1B2kB,OAAS+/B,GAAqB9sD,KAAKitD,cAGvCA,OAAS,QACTpH,IAAMyE,OACNvE,IAAM/lD,KAAKihD,KAAK8E,MCz7MsExnD,GAAwFb,QAAM,KAAzFu4D,GAAG,KAAK13D,GAAE23D,KAAK,OAAO33D,GAAE43D,MAAM,QAAQ53D,GAAE63D,KAAK,OAAO73D,GAAE83D,MAAM,QAAQ93D,GAAE+3D,KAAK,OAAmB,MAAMx4D,GAAE,EAAEJ,GAAEu4D,IAAI,CAAC,EAAE,EAAE,IAAIv4D,GAAEw4D,MAAM,CAAC,KAAK,IAAIx4D,GAAEy4D,OAAO,CAAC,EAAE,OAAOz4D,GAAE04D,MAAM,CAAC,EAAE,EAAE,IAAI14D,GAAE24D,OAAO,CAAC,EAAE,EAAE,IAAI34D,GAAE44D,MAAM,IAAI,EAAE,IAAI,IAAIxoD,GAAg+QhN,GAAEoG,GAAEqvD,GAAw7VC,GAc1ykBC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAdwnJ,YAAWz4D,EAAE2C,EAAEE,OAAO7C,EAAE2C,SAAS,IAAI+tD,MAAM,WAAW/tD,YAAY3C,EAAE2C,GAAGjC,OAAOmC,QAAQ,IAAI6tD,MAAM,YAAY/tD,mBAAmBE,gBAAgB7C,EAAE2C,GAAGjC,eAAeV,EAAE2C,GAAGkB,OAAp6L,SAAS7D,KAAK04D,IAAI,CAAC14D,EAAE03D,GAAG13D,EAAE23D,KAAK33D,EAAE43D,MAAM53D,EAAE63D,KAAK73D,EAAE83D,MAAM93D,EAAE+3D,MAAM/3D,EAAE24D,OAAO,SAAShpD,UAAUpQ,GAAEoQ,IAA5F,CAAiGxQ,QAAM,KAAK,SAASa,KAAKuN,OAAO,SAASoC,EAAEhN,EAAEE,SAAS,CAAC8M,EAAEhN,EAAEE,IAAI7C,EAAEkR,OAAO,SAASvB,EAAEhN,EAAEE,EAAE9C,SAAS,CAAC4P,EAAE,GAAGhN,EAAEgN,EAAE,GAAG9M,EAAE8M,EAAE,GAAG5P,IAAIC,EAAE44D,QAAQ,SAASj2D,EAAEE,UAAU7C,EAAEkR,OAAOvO,KAAKxD,GAAEw5D,OAAO91D,KAAnK,CAAyK0M,QAAM,KAA+8L,SAAQY,YAAYnQ,EAAE2C,EAAE,SAAS4E,KAAKvH,EAAEyB,KAAKwc,WAAWtb,EAAEwN,iBAAiB1O,KAAK8F,KAAK4I,uBAAuB1O,KAAKwc,WAAW9N,YAAYnQ,UAAUyB,KAAKwc,WAAWje,GAAGmQ,gBAAgB,oBAAA1O,KAAyB8F,MAAM,mBAAmB9F,KAAK8F,KAAK4I,OAAOnQ,UAAUyB,KAAK8F,OAAOvH,EAAEuH,MAAM+F,OAAO+J,KAAK5V,KAAKwc,YAAYhN,UAAUjR,EAAEie,WAAWtb,KAAKlB,KAAKwc,WAAWtb,KAAKwN,kBAAkB,IAAI7C,OAAO+J,KAAK5V,KAAKwc,YAAY5d,OAAOoB,KAAK8F,KAAK,GAAG9F,KAAK8F,QAAQ+F,OAAOod,QAAQjpB,KAAKwc,YAAYzT,KAAK,EAAExK,EAAE2C,KAAK3C,EAAE,IAAI2C,IAAIkH,KAAK,uBAAuB7J,SAAS2C,EAAEe,GAAE1D,EAAE6D,MAAM,OAAO,UAAUhB,EAApmB,SAAW7C,EAAE2C,cAAc3C,UAAU2P,UAAUhN,GAAujBk2D,EAAG,IAAIn1D,GAAE1D,EAAE6D,MAAM,aAAa,aAAa,IAAI9D,EAAEuN,OAAO+J,KAAKxU,GAAGoN,QAAQ,CAACN,EAAEmpD,IAAIxrD,OAAO4B,OAAO5B,OAAO4B,OAAO,GAAGS,GAAG,EAAEmpD,GAAGp1D,GAAEb,EAAEi2D,EAAE,aAAa,WAAW,IAAIC,GAAEp2D,EAAE5C,mBAAmBC,OAAO2C,EAAEE,QAAQ9C,EAAE,UAAU4I,GAAEqwD,WAAWh5D,UAAK,IAAS2C,EAAEA,EAAE,GAAGjD,EAAE,UAAUiJ,GAAEswD,WAAWl5D,EAAEsd,aAAQ,IAASxa,EAAEA,EAAE,kBAAkB3C,EAAEyI,GAAEuwD,QAAQn5D,EAAEud,oBAAoBw7C,SAAS,UAAUnwD,GAAEswD,WAAWtpD,UAAK,IAASmpD,EAAEA,EAAE,aAAa,IAAIC,GAAEr5D,EAAEQ,IAAI64D,GAAEI,IAAI,IAAIJ,GAAE,iBAAiB,SAAQ5oD,YAAYnQ,QAAQo5D,KAAKp5D,EAAEyB,KAAKgwB,QAAQjuB,MAAM61D,GAAEC,MAAM73D,KAAK83D,QAAQ,CAACR,GAAEI,4BAA4B13D,KAAK23D,MAAM,EAAEjpD,MAAMnQ,EAAE2C,EAAEE,aAAa,OAAO,GAAGA,EAAEsN,cAAcnQ,EAAE2C,EAAEE,OAAO9C,QAAQL,EAAE+B,KAAKgwB,QAAQhwB,KAAKkJ,MAAM3K,EAAE2C,EAAEE,WAAW,UAAUpB,KAAK83D,QAAQ75D,UAAK,IAAAK,EAAWA,EAAEg5D,GAAEI,IAAIhpD,cAAcnQ,EAAE2C,EAAEE,EAAE9C,OAAOL,EAAE+B,KAAK83D,QAAQC,cAAc7pD,EAAEoC,OAAOhS,UAAUL,MAAM+B,KAAK83D,QAAQl5D,OAAOoB,KAAK83D,QAAQj5D,KAAKP,IAAI0B,KAAKgwB,QAAQhwB,KAAKkJ,MAAM3K,EAAE2C,EAAEE,IAAInD,GAAG25D,GAAEI,MAAM,GAAGJ,GAAEC,KAAKD,GAAEI,MAAMJ,GAAEI,MAAMJ,GAAEI,MAAM,SAAQtpD,YAAYnQ,EAAE2C,EAAEE,QAAQu2D,KAAKp5D,EAAEyB,KAAKszB,OAAOpyB,EAAElB,KAAKkiD,IAAI9gD,EAAEpB,KAAKi4D,SAASl2D,MAAM/B,KAAKk4D,eAAezG,KAAK,wBAAwBzxD,KAAK23D,KAAK33D,KAAKszB,+BAA+BtzB,KAAK23D,MAAM,0BAA0B,QAAQQ,KAAK,GAAG,8BAA8Bn4D,KAAKo4D,WAAWp4D,KAAKq4D,WAAW3pD,gBAAgBnQ,aAAa,GAAGyB,KAAKq4D,WAAW3pD,cAAcnQ,OAAO2C,QAAQE,EAAE9C,EAAEL,GAAGM,EAAEE,EAAEuB,KAAKi4D,SAASj4D,KAAKs4D,gBAAgBh6D,WAAW,UAAU,MAAMG,OAAE,EAAOA,EAAE85D,cAAc,GAAGn3D,EAAE,GAAG9C,EAAE,GAAGL,UAAK,IAAAiD,EAAWA,EAAEo2D,GAAEI,IAAIhpD,cAAcnQ,EAAE2C,SAASE,EAAE9C,EAAEL,GAAGM,EAAEE,EAAEuB,KAAKs4D,gBAAgBh6D,OAAOE,EAAEwB,KAAKi4D,SAASx5D,MAAM,OAAOD,EAAE,IAAI0C,EAAEoP,OAAOgnD,GAAEI,cAAc13D,KAAKw4D,mBAAmB/5D,KAAKg6D,cAAc,GAAGr3D,EAAE,GAAG9C,EAAE,GAAGL,EAAEiD,GAAGwN,mBAAmBnQ,UAAU,MAAAyB,KAAWi4D,SAAS15D,UAAU05D,SAAS15D,GAAG,IAAIq5D,GAAE53D,KAAKq4D,WAAW95D,IAAIyB,KAAKi4D,SAAS15D,IAA4zE,YAAWA,UAAUA,EAAEA,EAAqD,YAAWA,EAAE2C,EAAEE,UAAUF,EAAE3C,KAAK2C,GAAG,YAAW3C,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,UAAUi6D,GAAEx3D,EAAEw3D,GAAEn6D,EAAE6C,EAAE9C,GAAGo6D,GAAEn6D,EAAEN,EAAEQ,IAAgF,YAAWF,EAAE2C,EAAEE,UAAUA,EAAE,EAAE7C,EAAE6C,EAAE,EAAEF,EAAEw3D,GAAEt3D,EAAE7C,EAAE2C,GAAG,YAAW3C,UAAUA,EAAEA,EAAEA,QAAQA,EAAE,IAAI,KAAnnF,SAASA,KAAKuN,OAAO,SAASoC,EAAEhN,SAAS,CAACgN,EAAEhN,IAAI3C,EAAEo6D,aAAa,SAASzqD,SAAS,CAACA,EAAE,IAAI,EAAEA,EAAE,IAAI,IAAI3P,EAAEq6D,SAAS,SAAS1qD,SAAS,CAAC,WAAWkI,OAAOlI,GAAGkI,OAAOlI,GAAG2qD,OAAO,OAAOt6D,EAAEu6D,UAAU,SAAS5qD,UAAUA,EAAE,IAAI,GAAG3P,EAAEw6D,UAAU,SAAS7qD,UAAUA,EAAE,IAAI,GAAG3P,EAAEy6D,UAAU,SAAS9qD,UAAUA,EAAE,IAAI,IAAI3P,EAAE06D,UAAU,SAAS/qD,UAAUA,EAAE,IAAI,IAA7U,CAAkVpN,QAAM,KAAK,SAASvC,cAAc2P,SAAS,iBAAiBA,GAAG,OAAAA,EAASA,OAAE,IAASgrD,WAAW,SAAShrD,SAAS,iBAAiBA,EAAEA,OAAE,GAAQ3P,EAAE46D,QAAQ,SAASjrD,SAAS,iBAAiBA,EAAE3F,KAAK+uB,MAAMppB,QAAG,GAAQ3P,EAAEi5D,WAAW,SAAStpD,SAAS,iBAAiBA,EAAEA,OAAE,GAAQ3P,EAAE66D,YAAY,SAASlrD,SAAS,kBAAkBA,EAAEA,OAAE,GAAQ3P,EAAEg5D,WAAWr2D,EAAE3C,EAAE86D,UAAU,SAASnrD,EAAEmpD,MAAMt1D,MAAMC,QAAQkM,UAAUA,EAAEnF,QAAQsuD,EAAEiC,MAAM/6D,EAAEk5D,QAAQ,SAASvpD,EAAE9M,OAAO9C,QAAQL,EAAE,UAAUiD,EAAEgN,UAAK,IAAS5P,EAAEA,EAAE,UAAUuN,OAAO0tD,YAAY1tD,OAAOod,QAAQhrB,GAAG8K,KAAK,EAAEuwD,EAAEjC,KAAK,CAACiC,EAAEl4D,EAAEi2D,QAAQ94D,EAAEi7D,QAAQ,SAAStrD,EAAEmpD,EAAEj2D,SAAS9C,EAAE+4D,EAAEnpD,UAAU5P,EAAE8C,EAAE9C,QAAG,GAA1lB,CAAmmB4I,QAAM,KAAuxD,SAAQwH,YAAYnQ,QAAQk7D,GAAG,IAAIl7D,EAAEm7D,aAAa15D,KAAK25D,GAAG,IAAIp7D,EAAEm7D,aAAa15D,KAAK45D,GAAG,IAAIr7D,EAAEm7D,aAAa15D,KAAKiE,EAAElC,MAAM,aAAamM,EAAE,EAAEA,EAAE,IAAIA,GAAG,OAAOjK,EAAEiK,GAAGA,UAAUhN,EAAE,EAAEA,EAAE,IAAIA,GAAG,EAAE,OAAOE,EAAE7C,EAAEs7D,QAAQ,IAAI34D,GAAG5C,EAAE0B,KAAKiE,EAAE/C,QAAQ+C,EAAE/C,GAAGlB,KAAKiE,EAAE/C,EAAEE,GAAGpB,KAAKiE,EAAE/C,EAAEE,GAAG9C,GAAGoQ,SAASnQ,EAAE2C,OAAOE,EAAE9C,EAAEL,QAAQQ,KAAKyC,GAAG0F,GAAEkzD,GAAGt7D,EAAE+J,KAAK+uB,MAAM/4B,EAAEE,GAAG4C,EAAE9C,cAAcgK,KAAK+uB,MAAMp2B,EAAEzC,KAAKmI,GAAEmzD,SAAS77D,EAAEoD,OAAOJ,KAAKE,OAAO,EAAEE,EAAE,MAAM,EAAEA,EAAE,SAASnD,EAAEkD,EAAEnD,EAAE0I,GAAEmzD,GAAG54D,EAAElD,EAAEqD,EAAEsF,GAAEmzD,GAAGr2D,EAAErC,EAAE,EAAE,EAAEuF,GAAEmzD,GAAGp7D,EAAEV,EAAE,EAAE,EAAE2I,GAAEmzD,GAAGp2D,EAAE,IAAInF,EAAE+C,EAAE,IAAIjD,EAAEqD,EAAE3B,KAAK6C,EAAEc,EAAE3D,KAAK6C,EAAEtB,IAAI,GAAGkC,EAAEzD,KAAK6C,EAAEc,EAAEzF,EAAE8B,KAAK6C,EAAEtB,EAAED,IAAI,GAAGI,EAAE1B,KAAK6C,EAAEc,EAAE,EAAE3D,KAAK6C,EAAEtB,EAAE,IAAI,UAAU,SAASy4D,iBAAiBr4D,EAAEN,EAAEpD,EAAE,EAAE,IAAI+B,KAAKg6D,iBAAiBv2D,EAAEtF,EAAEgD,EAAE,EAAE,IAAInB,KAAKg6D,iBAAiBt4D,EAAEgC,EAAE/E,EAAE,EAAE,KAAK+P,OAAOnQ,EAAE2C,EAAEE,SAAS9C,EAAE,qBAAqB4C,EAAEE,GAAGnD,EAAEsK,KAAK+uB,MAAM/4B,EAAED,GAAGG,EAAE8J,KAAK+uB,MAAMp2B,EAAE5C,GAAGE,EAAE+J,KAAK+uB,MAAMl2B,EAAE9C,GAAG+C,EAAE,sBAAsB5C,EAAED,GAAGN,EAAEK,KAAK8C,GAAGC,EAAEJ,KAAKG,GAAGlD,EAAEiD,KAAKC,OAAOF,EAAEuC,EAAE/E,EAAEgF,EAAEpC,EAAEI,KAAKL,EAAEA,GAAGnD,KAAK,EAAEuF,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGzD,GAAGC,KAAK,EAAEuF,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,MAAM,EAAE+B,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGL,EAAEnD,KAAK,EAAEuF,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGzD,EAAEC,KAAK,EAAEuF,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,MAAM,EAAE+B,EAAE,EAAE/E,EAAE,EAAEgF,EAAE,EAAEpC,EAAE,EAAEI,EAAE,SAAS8B,EAAEvF,EAAEiD,EAAE,mBAAmBO,EAAEJ,EAAEoC,EAAE,mBAAmB9B,EAAEzD,EAAEQ,EAAE,mBAAmBmD,EAAE5D,EAAEyF,EAAE,kBAAkBC,EAAEtC,EAAEC,EAAE,kBAAkB0D,EAAE9G,EAAEwD,EAAE,kBAAkBE,EAAE3D,EAAE,GAAG+7D,EAAE34D,EAAE,GAAG44D,EAAE/7D,EAAE,GAAGg8D,EAAE,IAAIl8D,EAAEm8D,EAAE,IAAI37D,EAAE47D,EAAE,IAAI77D,EAAEiD,EAAEzB,KAAK6C,EAAEs3D,EAAEn6D,KAAK6C,EAAEu3D,EAAEp6D,KAAK6C,EAAEw3D,KAAK,GAAGC,EAAEt6D,KAAK6C,EAAEs3D,EAAEh5D,EAAEnB,KAAK6C,EAAEu3D,EAAE12D,EAAE1D,KAAK6C,EAAEw3D,EAAE17D,KAAK,GAAG6C,EAAExB,KAAK6C,EAAEs3D,EAAEx2D,EAAE3D,KAAK6C,EAAEu3D,EAAE74D,EAAEvB,KAAK6C,EAAEw3D,EAAE14D,KAAK,GAAGm4D,EAAE95D,KAAK6C,EAAEs3D,EAAE,EAAEn6D,KAAK6C,EAAEu3D,EAAE,EAAEp6D,KAAK6C,EAAEw3D,EAAE,KAAK,UAAU,SAASL,iBAAiBv4D,EAAEvD,EAAEoD,EAAEnD,EAAE,IAAI6B,KAAKg6D,iBAAiBM,EAAE72D,EAAE/B,EAAEE,EAAE,IAAI5B,KAAKg6D,iBAAiBx4D,EAAEM,EAAE8B,EAAEqB,EAAE,IAAIjF,KAAKg6D,iBAAiBF,EAAEj4D,EAAEo4D,EAAEC,EAAE,KAAKxrD,EAAEnQ,UAAUyB,KAAKiE,EAAE,IAAI1F,GAAGmQ,iBAAiBnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,OAAOQ,EAAED,EAAEP,EAAEiD,EAAEA,EAAEE,EAAEA,EAAE9C,EAAEA,SAASE,EAAE,EAAEC,EAAE,MAAMD,EAAEC,EAAED,EAAEA,EAAEoI,GAAE2zD,QAAQh8D,EAAE2C,EAAEE,EAAE9C,IAAIG,iBAAiBF,EAAE2C,EAAEE,EAAE9C,SAASL,EAAE2I,GAAE4zD,SAAS,GAAGj8D,UAAUN,EAAE,GAAGiD,EAAEjD,EAAE,GAAGmD,EAAEnD,EAAE,GAAGK,GAAGsI,GAAE4zD,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,UAAU5zD,GAAEkzD,GAAG,SAASW,KAAK,GAAG,GAAG7zD,GAAEmzD,MAAMxxD,KAAKkyD,KAAK,IAAI,EAAE,SAAQ/rD,YAAYnQ,QAAQk7D,GAAG,IAAIl7D,EAAEm7D,aAAa15D,KAAK25D,GAAG,IAAIp7D,EAAEm7D,aAAa15D,KAAK45D,GAAG,IAAIr7D,EAAEm7D,aAAa15D,KAAKiE,EAAElC,MAAM,aAAamM,EAAE,EAAEA,EAAE,IAAIA,GAAG,OAAOjK,EAAEiK,GAAGA,EAAE,IAAIA,EAAE,IAAIA,UAAUhN,EAAE,EAAEA,EAAE,IAAIA,GAAG,EAAE,OAAOE,EAAE7C,EAAEs7D,QAAQ,IAAI34D,GAAG5C,EAAE0B,KAAKiE,EAAE/C,QAAQ+C,EAAE/C,GAAGlB,KAAKiE,EAAE/C,EAAEE,GAAGpB,KAAKiE,EAAE/C,EAAEE,GAAG9C,GAAGoQ,OAAOnQ,EAAE2C,EAAEE,EAAE9C,EAAE,EAAEL,EAAE,SAASQ,EAAEF,EAAEyB,KAAKy5D,GAAGj7D,EAAE0C,EAAElB,KAAK25D,GAAGt4D,EAAED,EAAEpB,KAAK45D,GAAG17D,EAAEqK,KAAK+uB,MAAM74B,GAAG6C,EAAEiH,KAAK+uB,MAAM94B,GAAGL,EAAEoK,KAAK+uB,MAAMj2B,GAAGF,EAAE1C,EAAEP,EAAEwF,EAAElF,EAAE8C,EAAE3C,EAAE0C,EAAElD,MAAMwF,EAAE,KAAK,IAAIrF,EAAE,OAAO4P,EAAEjQ,GAAG,GAAGA,EAAEyF,EAAEzF,EAAEyF,IAAI6E,KAAK+uB,MAAMppB,EAAE5P,EAAE,MAAMA,SAAS0B,KAAK06D,cAAcx8D,EAAEoD,EAAEnD,EAAEgD,EAAEuC,EAAEC,EAAEhF,EAAE+E,GAAGgL,cAAcnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,SAAS6C,EAAErB,KAAK6C,EAAEtE,GAAGL,EAAE8B,KAAK6C,EAAEtE,EAAE,GAAG+C,EAAEtB,KAAK6C,EAAExB,EAAEH,GAAG/C,EAAE6B,KAAK6C,EAAExB,EAAEH,EAAE,GAAGC,EAAEnB,KAAK6C,EAAE3E,EAAEgD,GAAGwC,EAAE1D,KAAK6C,EAAE3E,EAAEgD,EAAE,GAAGvC,EAAEiI,GAAE2zD,QAAQv6D,KAAK6C,EAAEvB,EAAEF,GAAG9C,EAAEL,EAAEQ,GAAGkF,EAAEiD,GAAE2zD,QAAQv6D,KAAK6C,EAAE1B,EAAEC,GAAG9C,EAAE,EAAEL,EAAEQ,GAAG8C,EAAEqF,GAAE2zD,QAAQv6D,KAAK6C,EAAE1E,EAAEiD,GAAG9C,EAAEL,EAAE,EAAEQ,GAAGkD,EAAEiF,GAAE2zD,QAAQv6D,KAAK6C,EAAEa,EAAEtC,GAAG9C,EAAE,EAAEL,EAAE,EAAEQ,GAAGgF,EAAEmD,GAAE2zD,QAAQv6D,KAAK6C,EAAEvB,EAAEF,EAAE,GAAG9C,EAAEL,EAAEQ,EAAE,GAAGiD,EAAEkF,GAAE2zD,QAAQv6D,KAAK6C,EAAE1B,EAAEC,EAAE,GAAG9C,EAAE,EAAEL,EAAEQ,EAAE,GAAGmD,EAAEgF,GAAE2zD,QAAQv6D,KAAK6C,EAAE1E,EAAEiD,EAAE,GAAG9C,EAAEL,EAAE,EAAEQ,EAAE,GAAGqD,EAAE8E,GAAE2zD,QAAQv6D,KAAK6C,EAAEa,EAAEtC,EAAE,GAAG9C,EAAE,EAAEL,EAAE,EAAEQ,EAAE,UAAjiG,SAAWF,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,EAAE6C,EAAEnD,EAAEoD,EAAEnD,UAAUu6D,GAAEt3D,EAAEH,GAAE1C,EAAE2C,EAAE5C,EAAEL,EAAEQ,EAAED,GAAGyC,GAAE1C,EAAE2C,EAAEG,EAAEnD,EAAEoD,EAAEnD,IAAm+Fw8D,CAAEC,GAAEt8D,GAAGs8D,GAAEp8D,GAAGo8D,GAAEn8D,GAAGE,EAAEgF,EAAEpC,EAAEI,EAAE8B,EAAE/B,EAAEE,EAAEE,GAAG4M,EAAEnQ,UAAU,IAAIyB,KAAKiE,EAAE,IAAI1F,IAAI,SAAQmQ,YAAYnQ,EAAE2C,EAAEE,MAAM,EAAEF,EAAEE,EAAExC,aAAa,IAAIqwD,MAAM,yCAAyC4L,YAAY94D,MAAMX,EAAExC,gBAAgBN,GAAG4C,EAAE5C,GAAG,EAAEA,GAAG,IAAI8C,EAAExC,QAAQ,IAAAwC,EAAM9C,GAAG0B,KAAK66D,YAAYv8D,GAAG,IAAIw8D,GAAEv8D,GAAGA,EAAEw8D,QAAQ,UAAUljC,WAAWz2B,EAAEpB,KAAKg7D,sBAAsBzyD,KAAK0yD,IAAI,EAAE/5D,GAAGlB,KAAKk7D,sBAAsB3yD,KAAK0yD,IAAI,EAAE75D,EAAExC,OAAO,SAASq8D,IAAI,EAAE75D,EAAExC,QAAQ,GAAG8P,OAAOnQ,EAAE2C,EAAEE,EAAE9C,EAAE,EAAEL,EAAE,EAAEQ,GAAE,OAAQD,EAAE,EAAE6C,EAAErB,KAAKg7D,sBAAsB98D,EAAE8B,KAAKk7D,8BAA8B55D,EAAE,EAAEA,EAAEtB,KAAK66D,YAAYj8D,OAAO0C,GAAG,EAAE,OAAOnD,EAAE6B,KAAK66D,YAAYv5D,UAAUtB,KAAK63B,WAAWv2B,GAAGpD,EAAEC,EAAEg9D,OAAO70D,GAAE8gD,KAAK7oD,EAAE8C,GAAG5C,GAAGN,EAAEw7D,GAAGrzD,GAAE8gD,KAAKlmD,EAAEG,GAAGiF,GAAE8gD,KAAKhmD,EAAEC,GAAG/C,EAAE+C,EAAEpD,EAAEoD,IAAIA,GAAG,EAAEnD,GAAG,SAASM,EAAEkQ,eAAenQ,UAAUyB,KAAK66D,YAAY76D,KAAK66D,YAAYj8D,OAAO,EAAEL,eAAeA,UAAUA,EAAE,SAASgK,KAAK+uB,MAAM/4B,EAAE,SAAS,KAAK,SAAQmQ,YAAYnQ,QAAQ68D,cAAc,IAAI90D,GAAE/H,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIyB,KAAKq7D,cAAc,IAAI/0D,GAAE/H,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIyB,KAAKs7D,UAAU,IAAIh1D,GAAE/H,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAImQ,OAAOnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,OAAO6C,EAAEnD,EAAE,EAAEoD,EAAE,UAAUi6D,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,IAAIl6D,EAAErB,KAAKs7D,UAAUE,eAAeD,GAAGl6D,EAAE,OAAOo6D,EAAEh9D,EAAE6C,EAAEZ,EAAElC,EAAE8C,EAAEmF,EAAEH,GAAE8gD,KAAK7oD,EAAEk9D,GAAGC,EAAEp1D,GAAE8gD,KAAKlmD,EAAER,GAAGgD,EAAE4C,GAAE8gD,KAAKhmD,EAAEq6D,MAAMp6D,EAAE85D,OAAO10D,EAAEi1D,EAAEh4D,EAAEhD,EAAEQ,EAAER,GAAGY,KAAK,OAAO,GAAG,GAAG,EAAEA,EAAE,MAAMnD,EAAE,EAAEgD,EAAE,UAAUw6D,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAE,OAAOC,EAAEt9D,EAAEgD,EAAEoC,EAAEzF,EAAEqD,EAAE3C,EAAE2H,GAAE8gD,KAAK7oD,EAAEq9D,GAAGj4D,EAAE2C,GAAE8gD,KAAKlmD,EAAEwC,GAAGnC,EAAE+E,GAAE8gD,KAAKhmD,EAAEw6D,KAAK,MAAM57D,KAAKo7D,cAAcI,eAAeG,SAASt6D,EAAE85D,OAAOx8D,EAAEgF,EAAEpC,EAAEmC,EAAExC,EAAEwC,GAAGpC,GAAGpD,EAAE,MAAM8B,KAAKq7D,cAAcG,eAAeG,SAASt6D,EAAE85D,OAAOx8D,EAAEgF,EAAEpC,EAAEmC,EAAExC,EAAEwC,GAAGpC,GAAGA,GAAG,SAASu6D,GAAE19D,EAAE,IAAIgD,EAAE,IAAIjD,IAAI,SAAQwQ,YAAYnQ,GAAGq5B,YAAY12B,EAAE22B,WAAWz2B,SAAS06D,MAAM,IAAIx1D,GAAE/H,EAAE2C,EAAEE,GAAGpB,KAAK+7D,OAAO,IAAIz1D,GAAE/H,EAAE2C,EAAEE,OAAO9C,EAAE,EAAA,EAAIL,GAAE,EAAA,UAAaiQ,EAAE,EAAEA,EAAE9M,EAAExC,OAAOsP,GAAG,EAAE,IAAI9M,EAAE8M,OAAO3F,KAAKuL,IAAIxV,EAAE4P,GAAGjQ,EAAEsK,KAAKD,IAAIrK,EAAEiQ,UAAUzP,EAAE,MAAM,KAAKH,EAAE,SAAS09D,YAAY,EAAE,EAAEv9D,EAAEiQ,OAAOnQ,EAAE2C,EAAEE,SAAS9C,EAAEC,EAAE09D,GAAEC,aAAaj+D,EAAEiD,EAAE+6D,GAAEC,aAAaz9D,EAAE2C,EAAE66D,GAAEC,yBAAyBJ,MAAMX,OAAO58D,EAAE2C,EAAEE,GAAGpB,KAAK+7D,OAAOZ,OAAO78D,EAAEL,EAAEQ,IAAIuB,KAAKg8D,aAAaC,GAAEC,aAAa,oBAA8T3F,QAAM,KAAnS4F,SAAS,SAASjuD,OAAOhN,EAAEE,EAAE9C,QAAQL,EAAE,UAAUiJ,GAAEqwD,WAAWrpD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAAC02B,YAAY,UAAU1wB,GAAEiyD,QAAQl7D,EAAE25B,oBAAe,IAASx2B,EAAEA,EAAE,EAAEy2B,WAAW,UAAU3wB,GAAEmyD,UAAUp7D,EAAE45B,oBAAoBw/B,SAAS,UAAUnwD,GAAEgyD,WAAWI,UAAK,IAASjC,EAAEA,EAAE,YAAO,IAAS/4D,EAAEA,EAAE,KAAsnB,SAAQoQ,YAAYnQ,QAAQstB,KAAKgtC,OAAO,GAAG74D,KAAKo8D,QAAQ79D,GAAGmQ,cAAc,IAAI2tD,GAAEr8D,KAAKs8D,YAAY5tD,QAAQnQ,QAAQstB,KAAKttB,EAAE89D,GAAEE,WAAWF,GAAEG,aAAa9tD,eAAemd,KAAK7rB,KAAK6rB,KAAKwwC,GAAEE,WAAWF,GAAEI,UAAUJ,GAAEG,aAAa9tD,QAAQnQ,WAAW2C,EAAE,EAAEA,EAAE3C,EAAE2C,GAAG,OAAOw7D,UAAUhuD,KAAKnQ,QAAQm+D,gBAAgBx7D,EAAEkV,OAAOpW,KAAK6rB,MAAMgtC,OAAOwD,GAAEM,aAAap+D,WAAW2C,EAAE,WAAWA,EAAE,WAAWA,EAAEwN,QAAQnQ,WAAM,IAAAA,SAAkByB,KAAK2sD,KAAK,OAAO,MAAMpuD,EAAE,UAAU6X,OAAOyiD,OAAOt6D,GAAGs6D,OAAO74D,KAAK2sD,KAAK,MAAMkM,OAAO,SAAS33D,EAAEE,UAAUpB,KAAK2sD,KAAK,QAAQzrD,EAAE3C,MAAM,GAAG,WAAW6C,EAAEsN,yBAAyB1O,KAAK2sD,KAAK,MAAMkM,OAAO,KAAKA,OAAO74D,KAAK2sD,KAAK,KAAKj+C,mBAAmB1O,KAAK2sD,KAAK,IAAI0P,GAAEO,iBAAiBluD,mBAAmBnQ,EAAEyB,KAAK2sD,KAAK,WAAW3sD,KAAK08D,UAAUn+D,EAAE89D,GAAEQ,mBAAmBR,GAAEM,aAAa,GAAGN,GAAEG,aAAa3D,OAAO,mBAAmBwD,GAAEE,WAAW1D,OAAO,eAAewD,GAAEI,UAAU5D,OAAO,MAAMwD,GAAEO,iBAAiB,EAAEr0D,KAAK0yD,IAAI,EAAE,IAAIoB,GAAEQ,kBAAkB,EAAEt0D,KAAK0yD,IAAI,EAAE,IAAI,iBAAgBoB,GAAE3tD,uBAAuBhQ,WAAWsB,KAAK2e,MAAM,EAAEjQ,kBAAkB1O,KAAK2e,MAAMjQ,KAAKnQ,UAAUyB,KAAK2e,OAAO,EAAE5O,MAAM48C,KAAKpuD,IAAI,SAAQmQ,YAAYnQ,EAAE2C,EAAEE,EAAE,GAAG9C,EAAE,GAAGL,EAAE,SAAS6H,KAAKvH,EAAEyB,KAAK88D,WAAW57D,EAAElB,KAAK+8D,UAAU37D,EAAEpB,KAAK2Z,OAAOrb,EAAE0B,KAAKg9D,YAAY/+D,EAAEyQ,MAAMnQ,SAAS2C,EAAElB,KAAK88D,WAAWv+D,GAAG6C,EAAz4N,SAAW7C,EAAE2C,EAAEE,OAAO9C,EAAE4C,EAAE3C,OAAOD,EAAE,GAAG,OAAO+4D,EAAE9uD,KAAK+uB,MAAMh5B,EAAE,GAAGL,EAAEM,EAAE84D,IAAIp5D,GAAGK,EAAE+4D,KAAKp5D,EAAE,EAAEK,GAAG+4D,EAAE,UAAU94D,EAAuyN8D,CAAE,EAAErC,KAAK+8D,UAAUn+D,WAAWsC,EAAElB,KAAK+8D,UAAU7uD,KAAK,EAAE5P,EAAE0B,KAAK+8D,UAAUn+D,OAAO,KAAKwC,EAAE,SAASpB,KAAK2Z,OAAO,GAAGpb,GAAGyB,KAAKg9D,YAAY,MAAMh9D,KAAK+8D,UAAU,OAAO37D,IAAI9C,SAAS0B,KAAK2Z,OAAOrb,GAAGC,GAAGyB,KAAKg9D,YAAY1+D,MAAM0B,KAAK+8D,UAAUz+D,UAAUL,EAAE+B,KAAK+8D,UAAU37D,GAAG3C,EAAEuB,KAAK+8D,UAAU37D,EAAE,GAAG5C,EAAEwB,KAAKg9D,YAAY57D,GAAGC,EAAErB,KAAKg9D,YAAY57D,EAAE,GAAGlD,KAAKD,MAAMA,GAAGqD,EAAEtB,KAAK2Z,OAAOvY,GAAG7C,GAAGJ,EAAE6B,KAAK2Z,OAAOvY,EAAE,GAAG7C,GAAG4C,EAAE3C,KAAKP,MAAMqD,GAAGoC,GAAGrC,KAAKpD,MAAMqD,UAAUo3D,GAAEx6D,EAAEoD,EAAEnD,GAAGD,KAAKA,GAAGw6D,GAAEx6D,EAAEiD,EAAEuC,GAAGgL,SAASnQ,EAAE2C,EAAEE,EAAE,UAAUpB,KAAK+8D,UAAUl+D,KAAKN,GAAGyB,KAAK2Z,OAAO9a,KAAK,iBAAiBqC,EAAE,IAAIA,EAAEA,EAAEmsD,MAAM/lD,KAAKpG,IAAIlB,KAAKg9D,YAAYn+D,KAAKuC,GAAGpB,OAA8/Cw2D,QAAQ,KAA5VyG,OAAO,SAAS/uD,EAAEhN,EAAEE,OAAO87D,GAAG5+D,EAAE6+D,KAAKl/D,EAAEm/D,MAAM3+D,EAAE4+D,KAAK7+D,EAAE8+D,MAAMj8D,EAAEk8D,KAAKr/D,GAAGgQ,SAAS9M,QAAQ,IAAI3C,EAAED,EAAE6C,EAAEnD,GAAG,CAACM,EAAE6C,EAAEnD,EAAEO,cAAc,KAAKA,EAAED,EAAE6C,EAAEnD,GAAG,CAACmD,EAAEnD,EAAEO,EAAED,cAAc,KAAKC,EAAED,EAAE6C,EAAEnD,GAAG,CAACA,EAAEO,EAAED,EAAE6C,UAAUH,QAAQ,IAAI5C,EAAEG,EAAER,EAAEoD,GAAG,CAAC5C,EAAER,EAAEoD,EAAE/C,cAAc,KAAKA,EAAEG,EAAER,EAAEoD,GAAG,CAACpD,EAAEoD,EAAE/C,EAAEG,cAAc,KAAKH,EAAEG,EAAER,EAAEoD,GAAG,CAACA,EAAE/C,EAAEG,EAAER,SAAS,CAACi/D,GAAG5+D,EAAE6+D,KAAKl/D,EAAEm/D,MAAM3+D,EAAE4+D,KAAK7+D,EAAE8+D,MAAMj8D,EAAEk8D,KAAKr/D,IAcz5lB,SAASK,cAAc2P,EAAEmpD,SAAS,iBAAiBnpD,EAAE,IAAI9M,EAAE8M,EAAE,MAAAmpD,EAAQA,EAAEnpD,GAAGA,IAAI5D,OAAO,SAAS4D,EAAEmpD,EAAEmG,EAAEjC,EAAEI,EAAEC,UAAU,IAAI39D,EAAEiQ,EAAEmpD,EAAEmG,EAAEjC,EAAEI,EAAEC,IAAIr9D,EAAEwrB,WAAW,SAAS7b,EAAEsvD,EAAE98D,EAAEi7D,EAAEC,EAAE6B,EAAEj3D,UAAU,IAAIlI,EAAE4C,EAAEgN,GAAGhN,EAAEs8D,GAAGt8D,EAAER,GAAGQ,EAAEy6D,GAAGz6D,EAAE06D,GAAG16D,EAAEu8D,GAAGj3D,IAAIjI,EAAEmK,MAAMxH,UAAUwN,YAAYR,EAAEmpD,QAAQvjD,IAAI5F,EAAElO,KAAKsI,IAAI+uD,EAAE3oD,SAASR,SAASmpD,GAAG,iBAAiBnpD,EAAEA,EAAEA,EAAE4F,KAAK9T,KAAKsI,IAAIk1D,EAAEx9D,KAAK8T,KAAK,iBAAiB5F,EAAEA,EAAEA,EAAE5F,YAAY+uD,EAAE,EAAEA,EAAE9uD,KAAKD,IAAIk1D,EAAE,GAAG9uD,MAAMR,UAAU,IAAI9M,EAAEmH,KAAKuL,IAAI9T,KAAK8T,IAAI5F,EAAE4F,KAAKvL,KAAKD,IAAItI,KAAKsI,IAAI4F,EAAE5F,sBAAsB4F,OAAOmpD,KAAK,iBAAiBnpD,SAAS,IAAI9M,EAAE8M,EAAEA,SAASqtD,EAAE76D,GAAG,UAAUwG,GAAEmyD,UAAUnrD,MAAMhH,GAAEgyD,WAAWI,YAAO,IAAAjC,EAAWA,EAAE,UAAU,IAAIj2D,EAAE,MAAMm6D,EAAEA,EAAE,EAAE,MAAM76D,EAAEA,EAAE,MAAMg9D,MAAMt8D,UAAUsN,YAAYR,EAAEmpD,EAAEmG,EAAEjC,EAAE76D,EAAEi7D,EAAEC,QAAQnkC,YAAYvpB,EAAElO,KAAK03B,SAAS2/B,EAAEr3D,KAAKk4C,gBAAgBslB,EAAEx9D,KAAKi4C,QAAQsjB,EAAEv7D,KAAKy4B,MAAM/3B,EAAEV,KAAK23B,UAAUgkC,EAAE37D,KAAKyP,OAAOmsD,EAAEltD,SAASR,UAAUyvD,GAAE39D,KAAKy3B,YAAY5W,SAAS3S,EAAEupB,cAAckmC,GAAE39D,KAAK03B,SAAS7W,SAAS3S,EAAEwpB,WAAWimC,GAAE39D,KAAKk4C,gBAAgBr3B,SAAS3S,EAAEgqC,kBAAkBylB,GAAE39D,KAAKi4C,QAAQp3B,SAAS3S,EAAE+pC,UAAU0lB,GAAE39D,KAAKy4B,MAAM5X,SAAS3S,EAAEuqB,QAAQklC,GAAE39D,KAAK23B,UAAU9W,SAAS3S,EAAEypB,YAAYgmC,GAAE39D,KAAKyP,OAAOvB,EAAEuB,QAAQf,cAAc,CAAC1O,KAAKy3B,YAAYz3B,KAAK03B,SAAS13B,KAAKk4C,gBAAgBl4C,KAAKi4C,QAAQj4C,KAAKy4B,MAAMz4B,KAAK23B,UAAU,IAAIv2B,EAAEpB,KAAKyP,OAAOzP,KAAKyP,yBAAyBvB,OAAOmpD,EAAE32D,QAAQi7D,EAAE,UAAUz0D,GAAEqwD,WAAWrpD,UAAK,IAASmpD,EAAEA,EAAE,UAAU,IAAI/4D,EAAE8C,EAAE+6D,SAASR,EAAElkC,aAAar2B,EAAE+6D,SAASR,EAAEjkC,UAAUt2B,EAAE+6D,SAASR,EAAEzjB,iBAAiB92C,EAAE+6D,SAASR,EAAE1jB,SAAS72C,EAAE+6D,SAASR,EAAEljC,OAAOr3B,EAAE+6D,SAASR,EAAEhkC,WAAW,UAAUzwB,GAAEiyD,QAAQwC,EAAElsD,eAAU,IAAA/O,EAAWA,EAAE,MAAMk9D,WAAWt/D,UAAUoQ,YAAYR,EAAEmpD,EAAEmG,EAAEjC,EAAE76D,EAAEi7D,QAAQlkC,YAAYvpB,EAAElO,KAAK03B,SAAS2/B,EAAEr3D,KAAKk4C,gBAAgBslB,EAAEx9D,KAAKi4C,QAAQsjB,EAAEv7D,KAAKy4B,MAAM/3B,EAAEV,KAAK23B,UAAUgkC,sBAAsB,EAAEjtD,gBAAgB,CAAC1O,KAAKy3B,YAAYz3B,KAAK03B,SAAS13B,KAAKk4C,gBAAgBl4C,KAAKi4C,QAAQj4C,KAAKy4B,MAAMz4B,KAAK23B,UAAU33B,KAAKyP,WAAWouD,YAAY5/D,IAAI6/D,WAAW,MAAMpvD,YAAYR,QAAQ6vD,OAAO7vD,EAAElO,KAAKkJ,MAAM,IAAIzK,EAAEyP,GAAGQ,KAAKR,UAAUlO,KAAKkJ,MAAMY,OAAOoE,GAAG,CAACorD,EAAEjC,IAAIiC,EAAEz4C,SAASw2C,eAAe3oD,YAAYR,QAAQ2jD,KAAKpzD,EAAEu/D,MAAM9vD,EAAEnF,KAAK,EAAEuwD,EAAEjC,KAAK,IAAIn5D,EAAEo7D,EAAEjC,mBAAmBnpD,MAAM,IAAIA,EAAEtP,cAAcsP,EAAE,MAAMA,EAAEtP,QAAQH,EAAEw/D,kBAAkB,OAAOC,EAAEhwD,EAAEnF,aAAao1D,EAAE,UAAUC,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,OAAO3C,EAAEnC,EAAE+E,MAAMD,MAAM71D,KAAK+1D,OAAOxqD,IAAI2nD,EAAEnzD,KAAK,SAAS,CAACnJ,IAAIg/D,EAAEh0D,KAAKmvD,MAAM74D,MAAM,CAAC64D,EAAE6E,IAAI7E,EAAEn6D,IAAIg/D,EAAEh/D,MAAM4J,KAAK,EAAEoB,KAAKmvD,KAAKA,WAAW,IAAIj4D,EAAE68D,OAAO7G,EAAE,EAAA,EAAImG,KAAKjC,EAAE,WAAW76D,EAAE,EAAEA,EAAE,IAAIA,EAAE,GAAGD,KAAKyN,EAAExN,GAAE,GAAI66D,EAAE98D,EAAE8/D,UAAUrwD,OAAO0tD,EAAE,YAAYtC,KAAKiC,KAAK98D,EAAE+/D,KAAKlF,EAAE+E,SAASzC,MAAMA,EAAE4B,EAAE98D,UAAUwN,EAAEzP,EAAEgC,KAAKyN,EAAEsvD,GAAE,GAAIjC,EAAE98D,EAAE8/D,UAAUrwD,GAAGqtD,EAAE98D,EAAEgC,KAAK86D,EAAEiC,GAAE,GAAI,IAAIn8D,EAAEk6D,EAAExyD,QAAQtK,EAAEu/D,MAAM1E,EAAEx6D,yBAAyBoP,EAAEmpD,EAAEmG,UAAUtvD,EAAEnF,eAAewyD,EAAEjC,EAAE+E,MAAMhH,GAAG32D,KAAKoT,IAAIynD,EAAEjzD,KAAK,QAAQ,CAACnJ,IAAIq+D,EAAEj1D,KAAK+1D,IAAI59D,GAAGA,EAAEyJ,KAAKmvD,MAAM74D,MAAM,CAAC64D,EAAE4E,IAAI5E,EAAEn6D,IAAI++D,EAAE/+D,MAAM4J,KAAK,EAAEoB,KAAKmvD,KAAKA,qBAAqBprD,SAASmpD,EAAE,OAAOmG,EAAE,SAASjC,EAAEhzD,KAAK0yD,IAAI,GAAG1yD,KAAK+uB,MAAM/uB,KAAKyJ,IAAI9D,EAAEtP,OAAO,KAAK2J,KAAKyJ,IAAI,gBAAgBtR,KAAKwN,IAAIrP,KAAK6B,GAAG88D,EAAE5+D,OAAO28D,MAAM18D,KAAK,IAAIwC,EAAEm8D,IAAIA,EAAE,WAAW,IAAIA,EAAE5+D,QAAQy4D,EAAEx4D,KAAK,IAAIwC,EAAEm8D,IAAInG,cAAcnpD,OAAOmpD,EAAE,YAAYmG,KAAKtvD,KAAK3F,KAAK+1D,IAAId,EAAEl1D,IAAIk1D,EAAE1pD,YAAYujD,EAAE3oD,OAAOR,EAAEmpD,UAAUr3D,KAAK6xD,KAAK/nD,OAAOoE,EAAEuwD,UAAUpH,GAAGqH,WAAWT,kBAAkB,GAAG1/D,EAAEogE,MAAMlgE,UAAUiQ,YAAYR,QAAQmwD,MAAMnwD,EAAEQ,SAASR,OAAOmpD,EAAE,UAAUmG,EAAE,EAAEA,EAAE,EAAEA,GAAG,KAAKG,GAAE39D,KAAKq+D,MAAMb,GAAG38C,SAAS3S,EAAEsvD,YAAYnG,KAAKuH,MAAMpgE,kBAAkBA,EAAEkQ,YAAYR,SAAS7M,EAAEw9D,WAAW3wD,IAAIlO,KAAKlB,SAASoP,oBAAoBA,OAAOmpD,EAAE,IAAIt1D,MAAM,IAAIgH,KAAK,IAAI,IAAI3H,EAAE,EAAA,GAAI,EAAA,eAAkBo8D,KAAKtvD,IAAI,IAAInM,MAAM,IAAIgH,KAAK,CAACuwD,EAAEiC,IAAIlE,EAAEkE,GAAGuD,MAAMtB,EAAEa,MAAM9C,aAAalE,EAAE3oD,OAAOR,EAAEmpD,OAAOmG,EAAE,EAAA,EAAIjC,EAAE,eAAe76D,KAAKV,KAAKlB,SAAS,OAAO68D,EAAEtE,EAAE32D,EAAEwN,MAAMsvD,GAAG7B,iBAAiBC,EAAEl7D,EAAEoJ,OAAOoE,EAAEmpD,GAAGoG,EAAE/8D,GAAGk7D,EAAED,EAAEtE,EAAEuE,EAAE1tD,MAAMuvD,MAAMA,EAAElC,EAAEK,UAAUL,KAAKwD,SAAS19D,kBAAkB7C,EAAEkQ,YAAYR,EAAEmpD,SAASnpD,EAAEmwD,SAASr+D,KAAK0+D,MAAMrH,EAAE3oD,gBAAgB1O,QAAQg/D,MAAM9gE,EAA/lH,CAAkmHu4D,QAAQ,KAAK,SAAS/nD,YAAYnQ,QAAQ4gB,MAAM5gB,EAAEmQ,kBAAkB1O,KAAKmf,sBAAsB5gB,OAAO2C,EAAEE,QAAQ9C,EAAE,UAAU4I,GAAEqwD,WAAWh5D,UAAK,IAAA2C,EAAWA,EAAE,GAAGjD,EAAE,UAAUiJ,GAAEswD,WAAWl5D,EAAE6gB,cAAS,IAAS/d,EAAEA,EAAE,4BAA4B,IAAI69D,GAAGhhE,IAAI,SAASyQ,YAAYnQ,QAAQwrB,WAAWxrB,EAAEmQ,SAASnQ,EAAE2C,EAAEE,EAAE9C,SAASL,EAAEK,EAAEC,EAAE2C,EAAEE,UAAUpB,KAAK+pB,WAAWm1C,KAAKjhE,mBAAmBM,OAAO2C,EAAEE,QAAQ9C,EAAE,UAAU4I,GAAEqwD,WAAWh5D,UAAK,IAAA2C,EAAWA,EAAE,GAAGjD,GAAG,UAAUiJ,GAAEmyD,UAAU/6D,EAAEq4B,gBAAgB0gC,IAAiB6G,WAAsI,UAAUh3D,GAAEqwD,WAAWrpD,UAAK,IAASmpD,EAAEA,EAAE,GAAvK,CAACl4C,MAAM,UAAUjY,GAAEswD,WAAW8B,EAAEn6C,cAAS,IAAA++C,EAAWA,EAAE,qBAAqBn0C,WAAW0sC,GAAGmH,WAAWzB,SAAS7C,EAAEvvC,uBAAiE,IAAS3oB,EAAEA,EAAE,IAAI2H,QAAQ,CAACmF,EAAE6b,WAAW,IAAI7b,EAAEiR,gBAAgB,IAAIggD,GAAG,IAAI1I,GAAGqH,WAAW7/D,MAAM,SAASM,cAAc2P,UAAU5M,EAAE+rD,MAAMn/C,GAAG,gBAAgBA,UAAU/P,EAAEkvD,MAAMn/C,cAAcA,UAAU/M,EAAEksD,MAAMn/C,cAAcA,UAAU,SAASowD,IAAI/1D,KAAK+1D,IAAIpwD,GAAG,UAAU,aAAauB,OAAOvO,EAAE3C,EAAE6gE,OAAOh+D,EAAE7C,EAAE8gE,MAAM/gE,EAAEC,EAAE+gE,gBAAgBrhE,EAAEM,EAAEghE,MAAM,SAASrxD,EAAEmpD,EAAEmG,SAAS,CAACgC,WAAWtxD,EAAE+pC,QAAQof,EAAE1/B,UAAU6lC,EAAEiC,OAAOxhE,EAAEu/D,KAAKj/D,EAAEmhE,UAAU,SAASxxD,EAAEmpD,4BAA4B9uD,KAAK+1D,IAAIjH,GAAG,MAAM94D,EAAE0vC,MAAM,SAAS//B,EAAExN,SAAS,CAAC+O,OAAOvO,EAAEgN,GAAGkxD,OAAOh+D,EAAE8M,GAAGmxD,MAAM/gE,EAAE4P,GAAGwxD,UAAUh/D,UAAUjC,EAAEE,EAAE,wBAAwB,EAAE,EAAE,GAAG,QAAO,GAAG,GAAIH,EAAEG,EAAE,oBAAoB,IAAI,GAAG,GAAG,UAAS,GAAG,GAAI0C,EAAE1C,EAAE,oBAAoB,IAAI,GAAG,GAAG,UAAS,GAAG,GAAIT,EAAES,EAAE,kBAAkB,GAAG,IAAI,GAAG,EAAE,IAAI,KAAI,GAAG,GAAI2C,EAAE,IAAIq+D,GAAE,oBAAoBzxD,EAAEsxD,aAAaI,cAAc,MAAMA,uBAAuBA,sBAAsBA,oBAAoBA,oBAAoBA,cAAcnhE,GAAGmhE,cAAcnhE,GAAGmhE,aAAaphE,GAAGohE,SAAS,IAAIv+D,GAAGu+D,SAAS,EAAE1hE,GAAGC,EAAE,IAAIwhE,GAAE,wBAAwBzxD,EAAEsxD,aAAaI,cAAc,KAAKA,cAAcl8D,EAAE,eAAe,KAAI,EAAG,4BAA4Bk8D,aAAal8D,EAAE,gBAAgB,KAAI,EAAG,6BAA6Bk8D,SAAS,IAAIl8D,EAAE,mBAAmB,KAAI,EAAG,gCAAgCk8D,SAAS,IAAIl8D,EAAE,mBAAmB,KAAI,EAAG,gCAAgCvC,EAAE,IAAIw+D,GAAE,YAAYzxD,EAAEsxD,aAAaI,SAAS,GAAG,GAAGA,SAAS,GAAG,IAAID,GAAE,oBAAoBzxD,EAAE+pC,UAAU2nB,aAAa,IAAID,GAAE,2BAA2BzxD,EAAEuxD,SAASG,YAAY,GAAGA,SAAS,GAAG,GAAGA,SAAS,EAAE,IAAID,GAAE,qCAAqCzxD,EAAEypB,YAAYioC,cAAc,IAAIA,SAAS,IAAI,MAAMA,aAAa,eAAe1xD,EAAEmpD,EAAEmG,EAAEjC,SAAS76D,EAAE,IAAIi/D,GAAEzxD,MAAMorD,EAAErhB,UAAU2nB,aAAavI,GAAGuI,aAAa,KAAKA,cAAcvI,GAAGuI,cAAcvI,GAAGuI,aAAa,KAAKA,SAAS,IAAIvI,MAAMmG,EAAE,OAAOlE,EAAE,IAAIqG,GAAE,yBAAyBE,EAAEloC,YAAYioC,SAAS,EAAEvI,GAAGuI,SAAS,GAAG,IAAIxB,EAAE,IAAIuB,GAAE,sBAAsBE,EAAEJ,SAASG,aAAavI,GAAGuI,cAActG,KAAKsG,SAAS,IAAIvI,GAAGuI,SAAS,IAAIxB,GAAGwB,SAAS,IAAIxB,GAAGwB,SAAS,IAAIvI,OAAO,OAAOiC,EAAE,IAAIqG,GAAEpE,MAAMsE,EAAEJ,SAASG,aAAavI,GAAGuI,cAAc,KAAKxB,EAAE,IAAIuB,GAAEpE,MAAMsE,EAAEJ,SAASG,SAAS,IAAIvI,GAAGuI,SAAS,GAAG,OAAOA,SAAS,IAAIxB,GAAGwB,SAAS,GAAGxB,GAAGwB,SAAS,IAAItG,GAAGsG,SAAS,IAAItG,GAAGsG,SAAS,IAAIvI,UAAU32D,aAAawN,EAAEmpD,EAAEmG,EAAEjC,EAAE76D,EAAEi7D,EAAEC,EAAE6B,EAAEj3D,EAAEs5D,SAASr5D,EAAE9C,EAAE+0D,GAAEiD,EAAE,GAAG,KAAKmE,GAAGpE,EAAE/3D,EAAE+0D,GAAEiD,EAAE,GAAG,GAAGmE,GAAGC,EAAEp8D,EAAEg4D,EAAEmE,GAAGE,EAAEv8D,EAAEyK,EAAE,eAAempD,EAAE,IAAI,GAAGsE,EAAEjD,GAAE,GAAG,GAAG,IAAIiD,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIsE,EAAEx8D,EAAEyK,EAAE,iBAAiBmpD,EAAEuE,EAAED,EAAEJ,EAAEI,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIuE,EAAEz8D,EAAEyK,EAAE,UAAUmpD,EAAEuE,EAAEA,EAAEL,EAAE76D,EAAE,IAAIgB,EAAE+B,EAAEyK,EAAE,mBAAmBmpD,EAAEuE,EAAEA,EAAEL,EAAE76D,EAAE,IAAIkB,EAAE,IAAI+9D,GAAEzxD,MAAMorD,EAAEmG,SAASG,YAAYvI,GAAGuI,aAAaM,GAAGN,SAAS,EAAEl/D,EAAE,KAAKoB,EAAE2B,EAAEyK,EAAE,eAAeuvD,EAAEA,EAAElC,EAAE76D,EAAE,GAAGkD,EAAE,IAAI+7D,GAAEzxD,MAAMorD,EAAErhB,UAAU2nB,cAAcn5D,GAAGm5D,aAAalE,GAAGkE,aAAaG,GAAGH,cAAcI,GAAGJ,aAAaK,GAAGL,SAAS,GAAGM,UAAU15D,GAAG5C,EAAEg8D,SAAS,GAAGl+D,GAAGk+D,SAAS,IAAIh+D,GAAGg+D,SAAS,IAAIh+D,GAAGg+D,SAAS,IAAIl+D,GAAGkC,EAAEg8D,SAAS,GAAG99D,GAAG8B,aAAasK,EAAEmpD,SAASmG,EAAE,IAAImC,GAAE,iCAAiCzxD,KAAKmpD,QAAQiC,EAAEmG,SAASlE,EAAEh6D,KAAK2M,OAAOxN,EAAEa,EAAE,EAAE2M,OAAOytD,EAAoB,OAATrC,EAAiDprD,kBAAjB,MAAMorD,KAAK,KAApD,IAASA,UAA4DqC,GAAGA,EAAE,EAAE,OAAOuC,EAAE38D,OAAO2M,OAAO0tD,EAAEr6D,OAAO2M,OAAOuvD,EAAE97D,EAAE45D,EAAEK,aAAagE,YAAYrE,EAAEkC,GAAGD,EAAEoC,cAAchE,GAAG4B,EAAEoC,cAAc1B,SAAS13D,EAAEjF,EAAEo6D,EAAEztD,OAAO4xD,EAAEn+D,EAAE6E,EAAE9F,EAAEi7D,EAAE,KAAKiE,SAASjE,EAAE,IAAIn1D,GAAGg3D,EAAEoC,SAASjE,EAAEn1D,EAAEs5D,GAAGtC,EAAEoC,SAAS,EAAEl/D,EAAEo/D,OAAO,OAAOxG,EAAE33D,EAAE45D,EAAE76D,KAAK,QAAQk/D,YAAYr3D,KAAKD,IAAI,GAAGizD,IAAIiC,EAAEoC,SAAS,EAAElH,GAAE,GAAG6C,EAAE76D,GAAG44D,IAAIkE,EAAEoC,YAAYrE,EAAEjC,GAAGkE,EAAEoC,SAAS,EAAEl/D,EAAE44D,UAAUkE,aAAatvD,EAAEmpD,EAAEmG,SAASjC,EAAE,aAAa,SAAS,MAAMlE,IAAI,MAAMA,UAAUnpD,EAAEsvD,EAAEj1D,KAAKD,IAAIizD,UAAUhzD,KAAKD,IAAIizD,EAAE,cAAcrtD,EAAEmpD,EAAEmG,EAAEjC,YAAYrtD,MAAMsvD,cAActvD,EAAEmpD,EAAEmG,EAAEjC,EAAE76D,EAAEi7D,EAAEC,SAAS6B,EAAEl1D,KAAKD,IAAI,MAAM+uD,GAAGuE,GAAGp1D,EAAE,KAAKg3D,UAAU,IAAImC,GAAEzxD,MAAMorD,EAAEmG,SAASG,YAAYvI,EAAEoG,GAAGmC,aAAapC,EAAEj1D,KAAKuL,IAAI2pD,EAAEj3D,IAAIo5D,SAAS,EAAErE,EAAE/0D,GAAGo5D,SAAS,GAAGl/D,EAAE,KAAK66D,IAAIqE,SAAS,EAAEjE,EAAE,MAAMj7D,KAAlhH,CAAwhHg2D,QAAQ,KAAK,SAAShoD,YAAYnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,QAAQ0hE,WAAWj/D,EAAElB,KAAKogE,WAAWh/D,EAAEpB,KAAKqgE,SAASpiE,EAAE+B,KAAKsgE,OAAO7hE,EAAEuB,KAAKugE,SAAS,EAAEvgE,KAAKwgE,SAAS,EAAExgE,KAAKygE,SAAS,EAAEzgE,KAAK0gE,SAAS,EAAE1gE,KAAK2gE,SAAS,EAAE3gE,KAAK4gE,SAAS,EAAE5gE,KAAK6gE,SAAS,EAAE7gE,KAAK8gE,SAAS,EAAE9gE,KAAK+gE,UAAU,EAAE/gE,KAAKghE,UAAU,EAAEhhE,KAAKihE,UAAU,EAAEjhE,KAAKkhE,UAAU,EAAElhE,KAAKmhE,QAAQ,EAAEnhE,KAAKohE,QAAQ,EAAEphE,KAAKqhE,SAAS/iE,EAAE,GAAGC,EAAEyB,KAAKshE,SAAShjE,EAAE,GAAG8C,EAAEpB,KAAKuhE,OAAOC,GAAGC,cAAcvgE,EAAEE,GAAGpB,KAAK0hE,OAAOF,GAAGC,cAAcvgE,EAAEE,wBAAwB7C,EAAE2C,SAASE,EAAEW,MAAMb,EAAE,WAAW5C,EAAE,EAAEA,EAAE4C,EAAE,EAAE5C,GAAG,IAAIA,GAAGyD,MAAMxD,EAAE,UAAU6C,EAAEsN,+BAA+BizD,UAAU3hE,KAAKuhE,OAAOvhE,KAAKqhE,UAAU3yD,aAAanQ,QAAQojE,UAAU3hE,KAAK0hE,OAAO1hE,KAAKqhE,SAAS9iE,EAAE,GAAGmQ,UAAUnQ,EAAE2C,WAAWE,EAAE,EAAEA,EAAEpB,KAAKogE,WAAW,EAAEh/D,GAAG,OAAOk/D,OAAO/hE,EAAE6C,GAAGF,EAAElB,KAAKshE,SAASlgE,EAAEpB,KAAKqgE,SAASrgE,KAAKmgE,YAAYzxD,aAAanQ,EAAE2C,QAAQq/D,SAASvgE,KAAKuhE,OAAOrgE,GAAG3C,GAAGyB,KAAKwgE,SAASxgE,KAAKuhE,OAAOrgE,EAAE,GAAG3C,GAAGyB,KAAKygE,SAASzgE,KAAK0hE,OAAOxgE,GAAG3C,GAAGyB,KAAK0gE,SAAS1gE,KAAK0hE,OAAOxgE,EAAE,GAAG3C,GAAGyB,KAAK2gE,SAAS3gE,KAAKuhE,OAAOrgE,GAAG3C,EAAE,GAAGyB,KAAK4gE,SAAS5gE,KAAKuhE,OAAOrgE,EAAE,GAAG3C,EAAE,GAAGyB,KAAK6gE,SAAS7gE,KAAK0hE,OAAOxgE,GAAG3C,EAAE,GAAGyB,KAAK8gE,SAAS9gE,KAAK0hE,OAAOxgE,EAAE,GAAG3C,EAAE,GAAGmQ,WAAWnQ,QAAQwiE,UAAUrI,GAAEn6D,EAAEyB,KAAKugE,SAASvgE,KAAK2gE,UAAU3gE,KAAKghE,UAAUtI,GAAEn6D,EAAEyB,KAAKygE,SAASzgE,KAAK6gE,UAAU7gE,KAAKihE,UAAUvI,GAAEn6D,EAAEyB,KAAKwgE,SAASxgE,KAAK4gE,UAAU5gE,KAAKkhE,UAAUxI,GAAEn6D,EAAEyB,KAAK0gE,SAAS1gE,KAAK8gE,UAAUpyD,WAAWnQ,QAAQ4iE,QAAQzI,GAAEn6D,EAAEyB,KAAK+gE,UAAU/gE,KAAKghE,WAAWhhE,KAAKohE,QAAQ1I,GAAEn6D,EAAEyB,KAAKihE,UAAUjhE,KAAKkhE,WAAWxyD,eAAenQ,UAAUm6D,GAAEn6D,EAAEyB,KAAKmhE,QAAQnhE,KAAKohE,SAAS1yD,cAAc1O,KAAKuhE,OAAOvhE,KAAK0hE,QAAQ,CAAC1hE,KAAK0hE,OAAO1hE,KAAKuhE,SAAS,SAAS7yD,YAAYnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,EAAE6C,QAAQugE,UAAUrjE,EAAEyB,KAAK6hE,WAAW3gE,EAAElB,KAAKmgE,WAAW/+D,EAAEpB,KAAK8hE,YAAYxjE,EAAE0B,KAAKi2B,SAASh4B,EAAE+B,KAAK+hE,cAAc1gE,QAAQnD,EAAE,IAAIm+D,GAAE79D,GAAG8C,EAAErD,EAAE+jE,gBAAgB,IAAI3F,GAAE79D,GAAGN,EAAE+jE,YAAYC,aAAa,IAAIC,GAAE7gE,GAAGpD,EAAE68D,QAAQ,GAAG/6D,KAAKoiE,iBAAiB,IAAInG,GAAE,IAAIoG,GAAE7jE,GAAGC,EAAEg5B,aAAaz3B,KAAKsiE,cAAc,IAAIrG,GAAE,IAAIoG,GAAE7jE,EAAEq6D,OAAO,IAAIp6D,EAAEi5B,UAAU13B,KAAKuiE,qBAAqB,IAAItG,GAAE,IAAIoG,GAAE7jE,EAAEq6D,OAAO,IAAIp6D,EAAEy5C,iBAAiBl4C,KAAKwiE,aAAa,IAAIvG,GAAE,IAAIoG,GAAE7jE,EAAEq6D,OAAO,IAAIp6D,EAAEw5C,SAASj4C,KAAKyiE,eAAe,IAAIxG,GAAE,IAAIoG,GAAE7jE,EAAEq6D,OAAO,IAAIp6D,EAAEk5B,WAAW33B,KAAK0iE,YAAY,IAAIzG,GAAE,IAAIoG,GAAE7jE,EAAEq6D,OAAO,IAAIp6D,EAAEuR,OAAOhQ,KAAK2iE,kBAAkB,IAAI1G,GAAE/9D,EAAE+jE,OAAO,CAACrqC,gBAAgBC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAKnpB,WAAWnQ,EAAE2C,EAAEE,SAAS9C,EAAEC,EAAEyB,KAAK4iE,UAAUrkE,EAAE,EAAE6C,GAAGnD,EAAEiD,EAAElB,KAAK4iE,UAAU1hE,EAAEE,EAAE7C,GAAGE,EAAE2C,EAAEpB,KAAK4iE,UAAUxhE,EAAE7C,EAAE,GAAGC,EAAEwB,KAAKoiE,iBAAiBjH,OAAO78D,EAAEL,EAAEQ,GAAG4C,EAAErB,KAAKsiE,cAAcnH,OAAO78D,EAAEL,EAAEQ,GAAGP,EAAE8B,KAAKuiE,qBAAqBpH,OAAO78D,EAAE,EAAEG,GAAG6C,EAAEtB,KAAKwiE,aAAarH,OAAO78D,EAAE,EAAEG,GAAGN,EAAE6B,KAAKyiE,eAAetH,OAAO78D,EAAE,EAAEG,GAAG0C,EAAEu1D,GAAGjnD,OAAOinD,GAAG6I,MAAMrhE,EAAEoD,EAAEnD,IAAIuF,EAAEm/D,GAAGC,wBAAwB,UAAU,EAAE5hE,GAAGC,SAAS,IAAIs1D,GAAGoH,YAAYr/D,EAAE6C,EAAEnD,EAAEoD,EAAEoC,EAAEvF,GAAGuQ,gBAAgBnQ,EAAE2C,MAAMlB,KAAK+hE,qBAAqB/hE,KAAK+hE,oBAAoB3gE,EAAE7C,EAAEyB,KAAK4iE,UAAUrkE,EAAE,EAAE2C,GAAG5C,EAAE4C,EAAElB,KAAK4iE,UAAU1hE,EAAE3C,EAAE,GAAGN,EAAE+B,KAAKuiE,qBAAqBpH,OAAO/5D,EAAE,EAAE9C,GAAGG,EAAEuB,KAAKwiE,aAAarH,OAAO/5D,EAAE,EAAE9C,GAAGE,EAAEwB,KAAKyiE,eAAetH,OAAO/5D,EAAE,EAAE9C,GAAG+C,EAAEq1D,GAAG6I,MAAMthE,EAAEQ,EAAED,GAAGN,EAAEw4D,GAAGgJ,UAAUzhE,EAAEO,UAAUk4D,GAAGzoB,MAAM5sC,EAAEnD,GAAGwQ,UAAUnQ,EAAE2C,EAAEE,UAAU,EAAEpB,KAAK0iE,YAAYvH,OAAO58D,EAAE2C,EAAEE,GAAGsN,gBAAgBnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,SAASQ,EAAEyC,EAAElB,KAAK4hE,WAAW,EAAEpjE,EAAE4C,EAAEpB,KAAK4hE,WAAW,GAAGnyD,OAAOpO,EAAE+9D,OAAOlhE,EAAEmhE,MAAM/9D,GAAGtB,KAAK+iE,gBAAgBtkE,EAAED,GAAGL,EAAE,QAAQ6B,KAAKi2B,SAAS1C,SAASyvC,QAAQ7hE,EAAE,QAAQnB,KAAKi2B,SAAS1C,SAASqb,OAAOlrC,EAAEvF,EAAE6B,KAAKi2B,SAAS1C,SAAS0vC,SAAStkE,EAAEwC,EAAEnB,KAAKi2B,SAAS1C,SAAS2vC,gBAAgBvH,EAAE,EAAEA,GAAG19D,EAAE09D,GAAG,EAAE,OAAOj7D,EAAEi7D,EAAEr9D,EAAEs9D,EAAE57D,KAAKkiE,aAAa/G,OAAOj6D,EAAER,EAAEU,EAAEjD,EAAEgD,EAAEuC,EAAE/E,GAAGgF,EAAE3D,KAAKmjE,gBAAgB7hE,EAAEJ,EAAElB,KAAK6hE,WAAWzgE,EAAEpB,KAAK6hE,YAAY,IAAItgE,EAAEvB,KAAKojE,sBAAsB1iE,EAAEV,KAAK6hE,WAAWxgE,EAAEnD,EAAE,EAAEyF,GAAGi4D,IAAID,GAAG37D,KAAKqjE,WAAW9hE,EAAEb,IAAIgO,gBAAgBnQ,EAAE2C,EAAEE,MAAM,IAAA7C,SAAa,QAAQD,EAAE,IAAI0B,KAAK4hE,UAAU3jE,EAAE+B,KAAK2iE,kBAAkBxH,OAAOj6D,EAAE5C,EAAE,EAAE8C,EAAE9C,UAAUL,EAAE,EAAEM,EAAEN,EAAEM,EAAE,EAAEN,EAAEyQ,sBAAsBnQ,EAAE2C,EAAEE,EAAE9C,EAAEL,SAASQ,MAAMqkE,wBAAwB9iE,KAAKi2B,SAASqtC,cAActjE,KAAKi2B,SAASstC,cAAchlE,EAAED,GAAG4C,EAAEjD,GAAGmD,SAAS3C,KAAK,EAAE,EAAE,GAAGiQ,WAAWnQ,EAAE2C,SAASE,EAAEF,EAAEqH,KAAK+uB,MAAMt3B,KAAKi2B,SAAS0hC,KAAK33D,KAAK6hE,eAAe7hE,KAAKi2B,SAASutC,SAAS3vC,KAAK,EAAE,OAAOwjC,QAAQ8I,WAAW/+D,EAAEpB,KAAKi2B,SAASutC,SAAS/zD,QAAQzP,KAAKi2B,SAASutC,SAAS3vC,OAAOgoC,GAAE77D,KAAKi2B,SAASutC,SAASl5D,OAAO/L,EAAE84D,MAAMr3D,KAAKi2B,SAASwtC,YAAY5vC,KAAK,EAAE,OAAOwjC,KAAKr3D,KAAKi2B,SAASwtC,YAAYh0D,QAAQzP,KAAKi2B,SAASwtC,YAAY5vC,OAAOgoC,GAAE77D,KAAKi2B,SAASwtC,YAAYn5D,OAAO/L,EAAE84D,UAAU94D,iCAAiCA,EAAE2C,EAAEE,EAAE9C,EAAE,UAAUC,KAAK6C,EAAE,IAAI9C,GAAG4C,GAAG,SAASwN,YAAYnQ,EAAE2C,EAAEE,EAAE9C,QAAQutB,KAAKttB,EAAEyB,KAAK8hE,YAAY5gE,EAAElB,KAAKi2B,SAAS70B,EAAEpB,KAAK6hE,WAAWzgE,EAAE2xB,MAAM2wC,OAAO,EAAE1jE,KAAK4hE,UAAUxgE,EAAE2xB,MAAM4wC,QAAQ,EAAE3jE,KAAK4jE,YAAYr7D,KAAK+uB,MAAM,GAAGt3B,KAAK4hE,WAAW5hE,KAAKmgE,WAAW53D,KAAK+uB,MAAMl2B,EAAE2xB,MAAMO,OAAOtzB,KAAK6hE,YAAY7hE,KAAK6jE,QAAQ,IAAIhB,GAAG7iE,KAAK4hE,UAAU5hE,KAAK6hE,WAAW7hE,KAAKmgE,WAAWj/D,EAAEE,EAAE2xB,MAAM3xB,EAAE42C,QAAQz5C,EAAED,GAAGoQ,KAAKnQ,SAAS2C,EAAEqH,KAAKD,IAAI/J,EAAEo5D,KAAK33D,KAAKi2B,SAASlD,MAAM4kC,MAAMv2D,EAAEmH,KAAKuL,IAAIvV,EAAE45D,KAAKn4D,KAAKi2B,SAASlD,MAAM4kC,KAAK33D,KAAKi2B,SAASlD,MAAMO,QAAQh1B,EAAEiK,KAAK+uB,MAAMp2B,EAAElB,KAAK6hE,YAAY5jE,EAAEsK,KAAK+uB,SAASp2B,GAAGlB,KAAK6hE,YAAYpjE,EAAEqC,GAAEg4D,UAAUv6D,EAAE2jD,KAAK1jD,EAAEsC,GAAEi4D,UAAUx6D,EAAE2jD,KAAK7gD,EAAE,IAAImgE,GAAGxhE,KAAK4jE,YAAY3lE,EAAE+B,KAAK4jE,YAAYrlE,EAAE2jD,IAAI5jD,EAAE0B,KAAK6jE,QAAQC,gBAAgBx8D,KAAKtH,KAAK6jE,UAAU3lE,EAAE6D,MAAMV,KAAKsD,YAAYuJ,EAAE61D,oCAAoC1M,EAAE,EAAEA,EAAEr3D,KAAK4jE,YAAYvM,GAAG,EAAE,GAAG1yD,YAAYuJ,EAAE81D,aAAa3M,aAAamG,EAAE,EAAEA,EAAEx9D,KAAK4jE,YAAYpG,GAAG,EAAE,KAAKl8D,EAAE/C,EAAEi6D,mBAAmBj6D,EAAE25D,cAAc,WAAW/5D,EAAEF,EAAE,EAAEE,GAAG,EAAEA,GAAG,EAAE,GAAGwG,YAAYuJ,EAAE+1D,aAAa9lE,EAAEq/D,aAAa98D,EAAEV,KAAK6hE,WAAW,EAAEnhE,GAAG,EAAEA,GAAG,EAAE,OAAOS,KAAKhD,GAAG6B,KAAK6hE,WAAWnhE,EAAEgD,EAAE,GAAGvC,EAAExC,EAAEJ,EAAE+5D,gBAAgBn3D,KAAKm3D,gBAAgBh3D,EAAE4iE,aAAavlE,MAAMJ,EAAEi6D,mBAAmB75D,UAAUgF,EAAEjD,EAAEV,KAAK6hE,aAAal9D,YAAYuJ,EAAEi2D,WAAWxgE,aAAauK,EAAE,EAAEA,EAAElO,KAAK4hE,UAAU1zD,GAAG,EAAE,OAAOqtD,EAAE98D,EAAE44D,EAAEr3D,KAAK4hE,UAAU1zD,EAAEk2D,EAAE,GAAG7I,EAAE90D,EAAEyH,EAAElO,KAAK4hE,YAAYj9D,YAAY20D,EAAE+K,WAAW59D,aAAa6yD,EAAE,EAAEA,EAAEt5D,KAAK4hE,UAAUtI,GAAG,EAAE,OAAO4E,EAAE1/D,EAAEg/D,EAAEx9D,KAAK4hE,UAAUtI,EAAEqC,EAAE,GAAGuC,EAAE13D,EAAE8yD,EAAEt5D,KAAK4hE,UAAU0C,EAAEjjE,EAAEkjE,eAAe/9D,GAAGw5D,EAAEhgE,KAAKwkE,UAAUjJ,EAAEp6D,EAAE+8D,EAAEoG,KAAKh0D,OAAOgnD,GAAEI,MAAMp2D,EAAEm3D,cAAc2L,EAAE1gE,EAAEi4D,EAAEqE,SAASr7D,YAAYuJ,EAAEu2D,gBAAgB/1D,UAAUnQ,EAAE2C,EAAEE,EAAE9C,eAd90H,SAAWC,EAAE2C,EAAEE,UAAUmH,KAAKD,IAAIpH,EAAEqH,KAAKuL,IAAI1S,EAAE7C,IAc8yH2F,CAAE5F,EAAE,OAAO,IAAI,EAAEA,EAAEA,EAAEA,EAAE,IAAI,EAAE0B,KAAKi2B,SAASyuC,aAAaxjE,EAAElB,KAAKi2B,SAAS0uC,SAAS3kE,KAAKi2B,SAAS2uC,aAAatN,GAAEI,MAAo/Bf,QAAQ,KAAx+BwF,SAAS,SAASjuD,OAAOhN,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,EAAE6C,EAAEnD,EAAEoD,EAAEnD,EAAEgD,EAAEuC,QAAQ/E,EAAE,UAAUuI,GAAEqwD,WAAWrpD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACy2D,KAAK,UAAUzwD,GAAEiyD,QAAQx6D,EAAEgsC,cAAS,IAAAvpC,EAAWA,EAAE,EAAEkyB,OAAO,UAAUpsB,GAAEiyD,QAAQx6D,EAAE20B,eAAU,IAAAh1B,EAAWA,EAAE,IAAIqlE,OAAO,UAAUz8D,GAAEiyD,QAAQx6D,EAAEy0B,wBAAmB,IAAAn1B,EAAWA,EAAE,EAAEylE,MAAM,UAAUx8D,GAAEiyD,QAAQx6D,EAAE00B,sBAAiB,IAAA50B,EAAWA,EAAE,EAAE6kE,cAAc,UAAUp8D,GAAEgyD,WAAWv6D,EAAEq0B,uBAAkB,IAAAx0B,EAAWA,EAAE,EAAE+kE,cAAc,UAAUr8D,GAAEgyD,WAAWv6D,EAAEs0B,uBAAkB,IAAA5xB,EAAWA,EAAE,EAAEkyB,SAASqjC,GAAGuF,SAASx9D,EAAE40B,UAAUiwC,SAAS3M,GAAGsF,SAASx9D,EAAEi1B,WAAW6vC,YAAY5M,GAAGsF,SAASx9D,EAAEm1B,cAAc+wC,uBAAuB,UAAU39D,GAAEkyD,YAAYz6D,EAAEu0B,8BAAyB,IAAAh1B,GAAYA,EAAE4mE,oBAAoB,UAAU59D,GAAEkyD,YAAYz6D,EAAEw0B,8BAAyB,IAAS7xB,GAAGA,EAAEyjE,oBAAoB,UAAU79D,GAAEkyD,YAAYz6D,EAAEk2B,8BAAyB,IAAA12B,GAAYA,EAAE6mE,YAAY,UAAU99D,GAAEkyD,YAAYz6D,EAAEo2B,kBAAa,IAAS5zB,GAAGA,EAAE6gE,gBAAgB,UAAU96D,GAAEkyD,YAAYz6D,EAAEw5C,0BAAqB,IAASz0C,GAAGA,KAAmXkzD,QAAQ,KAA3VuF,SAAS,SAASjuD,OAAOhN,EAAEE,EAAE9C,EAAEL,EAAEQ,QAAQD,EAAE,UAAU0I,GAAEqwD,WAAWrpD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAAC8hE,QAAQ,UAAU97D,GAAEgyD,WAAW16D,EAAEg1B,iBAAY,IAAApyB,EAAWA,EAAE,EAAEwtC,OAAO,UAAU1nC,GAAEgyD,WAAW16D,EAAEi1B,gBAAW,IAASn1B,EAAEA,EAAE,EAAE2kE,SAAS,UAAU/7D,GAAEgyD,WAAW16D,EAAEk1B,kBAAa,IAAAz1B,EAAWA,EAAE,GAAGilE,QAAQ,UAAUh8D,GAAEgyD,WAAW16D,EAAEm1B,iBAAY,IAASl1B,EAAEA,EAAE,MAAiSo4D,QAAQ,KAAxQsF,SAAS,SAASjuD,OAAOhN,EAAEE,EAAE9C,EAAEL,QAAQQ,EAAE,UAAUyI,GAAEqwD,WAAWrpD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACoJ,OAAO,UAAUpD,GAAEgyD,WAAWz6D,EAAE6L,eAAU,IAASlJ,EAAEA,EAAE,EAAEyyB,KAAK,UAAU3sB,GAAEiyD,QAAQ16D,EAAEo1B,aAAQ,IAAAv1B,EAAWA,EAAE,EAAEmR,OAAO,UAAUvI,GAAEiyD,QAAQ16D,EAAEgR,eAAU,IAAAxR,EAAWA,EAAE,KAA+/B64D,QAAQ,KAAv+BqF,SAAS,SAASjuD,OAAOhN,EAAEE,EAAE9C,EAAEL,EAAEQ,EAAED,EAAE6C,EAAEnD,EAAEoD,EAAEnD,QAAQgD,EAAE,UAAU+F,GAAEqwD,WAAWrpD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACm2B,WAAW0/B,GAAGoF,SAASh7D,EAAEk2B,YAAYtE,MAAM4jC,GAAGwF,SAASh7D,EAAE4xB,OAAOilB,QAAQgf,GAAGmF,SAASh7D,EAAE62C,SAAS0sB,aAAapN,GAAE6E,SAASh7D,EAAE4yB,eAAe6wC,aAAatN,GAAE6E,SAASh7D,EAAE6yB,eAAeixC,oBAAoB,UAAU/9D,GAAEiyD,QAAQh4D,EAAEwxB,8BAAyB,IAAAvxB,EAAWA,EAAE,EAAE8jE,qBAAqB,UAAUh+D,GAAEiyD,QAAQh4D,EAAEyxB,+BAA0B,IAAAt0B,EAAWA,EAAE,EAAEqmE,SAAS,UAAUz9D,GAAEiyD,QAAQh4D,EAAE0xB,kBAAa,IAAA50B,EAAWA,EAAE,EAAEknE,qBAAqB,UAAUj+D,GAAEkyD,YAAYj4D,EAAE2xB,+BAA0B,IAAAr0B,GAAYA,EAAE2mE,gBAAgB,UAAUl+D,GAAEkyD,YAAYj4D,EAAE0pC,yBAAoB,IAASrsC,GAAGA,EAAE6mE,kBAAkB,UAAUn+D,GAAEkyD,YAAYj4D,EAAEypC,4BAAuB,IAAAvpC,GAAYA,EAAEikE,iBAAiB,UAAUp+D,GAAEkyD,YAAYj4D,EAAE2pC,0BAAqB,IAAS5sC,GAAGA,EAAEqnE,gBAAgB,UAAUr+D,GAAEkyD,YAAYj4D,EAAE81C,0BAAqB,IAAA31C,GAAYA,EAAEkkE,mBAAmB,UAAUt+D,GAAEkyD,YAAYj4D,EAAE61C,6BAAwB,IAAS74C,GAAGA,KAA0oB44D,QAAQ,KAAlnBoF,SAAS,SAASjuD,OAAOhN,QAAQE,EAAE,UAAU8F,GAAEqwD,WAAWrpD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAAColC,WAAWp/B,GAAEsyD,QAAQp4D,EAAEklC,WAAWp/B,GAAEqwD,oBAAoBF,EAAEmG,EAAEl/D,QAAQ,CAACuiB,SAAS,UAAU3Z,GAAEiyD,QAAQG,EAAEz4C,iBAAY,IAASw2C,EAAEA,EAAE,EAAEpjC,OAAO,UAAU/sB,GAAEiyD,QAAQG,EAAErlC,eAAU,IAAAupC,EAAWA,EAAE,EAAE7+C,MAAM,UAAUzX,GAAEiyD,QAAQG,EAAE36C,cAAS,IAAArgB,EAAWA,EAAE,MAAM+4B,WAAWnwB,GAAEuwD,QAAQr2D,EAAEi2B,oBAAoBggC,IAAiB6G,EAAEV,EAAEl/D,WAAoL,UAAU4I,GAAEqwD,WAAW+B,UAAK,IAASjC,EAAEA,EAAE,GAArN,CAAC9wB,QAAQ,UAAUr/B,GAAEiyD,QAAQ0G,EAAEt5B,gBAAW,IAAS23B,EAAEA,EAAE,EAAE13B,WAAW,UAAUt/B,GAAEiyD,QAAQ0G,EAAEr5B,mBAAc,IAAAg3B,EAAWA,EAAE,EAAE/2B,KAAK,UAAUv/B,GAAEiyD,QAAQ0G,EAAEp5B,aAAQ,IAAAnoC,EAAWA,EAAE,SAA0X04D,QAAQ,KAA/SmF,SAAS,SAASjuD,OAAOhN,QAAQE,EAAE,UAAU8F,GAAEqwD,WAAWrpD,UAAK,IAAShN,EAAEA,EAAE,SAAS,CAACu2B,YAAY8+B,GAAE4F,SAAS/6D,EAAEq2B,aAAaC,SAAS6+B,GAAE4F,SAAS/6D,EAAEs2B,UAAUwgB,gBAAgBqe,GAAE4F,SAAS/6D,EAAE82C,iBAAiBD,QAAQse,GAAE4F,SAAS/6D,EAAE62C,SAAStgB,UAAU4+B,GAAE4F,SAAS/6D,EAAEu2B,WAAW3nB,MAAMumD,GAAE4F,SAAS/6D,EAAE4O"}
\ No newline at end of file
diff --git a/assets/vendor.f4c463d9.js b/assets/vendor.f4c463d9.js
deleted file mode 100644
index ef0db338..00000000
--- a/assets/vendor.f4c463d9.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var e,t,r,o,i=Object.defineProperty,a=Object.defineProperties,n=Object.getOwnPropertyDescriptors,c=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,d=(e,t,r)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,m=(e,t)=>{for(var r in t||(t={}))s.call(t,r)&&d(e,r,t[r]);if(c)for(var r of c(t))l.call(t,r)&&d(e,r,t[r]);return e},_=(e,t)=>a(e,n(t)),p=e=>"symbol"==typeof e?e:e+"",u={},f=[],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 h(e){var t=e.parentNode;t&&t.removeChild(e)}function y(e,t,r){var o,i,a,n=arguments,c={};for(a in t)"key"==a?o=t[a]:"ref"==a?i=t[a]:c[a]=t[a];if(arguments.length>3)for(r=[r],a=3;a0?v(p.type,p.props,p.key,null,p.__v):p)){if(p.__=r,p.__b=r.__b+1,null===(_=y[d])||_&&p.key==_.key&&p.type===_.type)y[d]=void 0;else for(m=0;mt.rank?-1:e.index-t.index}function H(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,K(t).map(V).join(""));var t}(e),e.props}function K(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function V(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var G=null,X=[],J=[],Z={};function Y(){var e;return""+((e=G&&G.location?G.location:G&&G.getCurrentLocation?G.getCurrentLocation():"undefined"!=typeof location?location:Z).pathname||"")+(e.search||"")}function Q(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=X.length;t--;)if(X[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),G&&G[t]?G[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),ee(e)}function ee(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(){X.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;G&&(this.unlisten=G.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),X.splice(X.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(H).sort(W).map((function(e){var o=U(t,e.props.path,e.props);if(o){if(!1!==r){var i={url:t,matches:o};return E(i,o),delete i.ref,delete i.key,function(e,t,r){var o,i,a,n=arguments,c=b({},e.props);for(a in t)"key"==a?o=t[a]:"ref"==a?i=t[a]:c[a]=t[a];if(arguments.length>3)for(r=[r],a=3;a=o.__.length&&o.__.push({}),o.__[t]}function ye(e){return me=1,function(e,t,r){var o=he(se++,2);return o.t=e,o.__c||(o.__=[r?r(t):Ce(void 0,t),function(e){var t=o.t(o.__[0],e);o.__[0]!==t&&(o.__=[t,o.__[1]],o.__c.setState({}))}],o.__c=le),o.__}(Ce,e)}function ve(t,r){var o=he(se++,3);!e.__s&&Me(o.__H,r)&&(o.__=t,o.__H=r,le.__H.__h.push(o))}function Ne(e){return me=5,Oe((function(){return{current:e}}),[])}function Oe(e,t){var r=he(se++,7);return Me(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function ke(e){var t=he(se++,10),r=ye();return t.__=e,le.componentDidCatch||(le.componentDidCatch=function(e){t.__&&t.__(e),r[1](e)}),[r[0],function(){r[1](void 0)}]}function xe(){_e.forEach((function(t){if(t.__P)try{t.__H.__h.forEach(je),t.__H.__h.forEach(Se),t.__H.__h=[]}catch(r){t.__H.__h=[],e.__e(r,t.__v)}})),_e=[]}e.__b=function(e){le=null,pe&&pe(e)},e.__r=function(e){ue&&ue(e),se=0;var t=(le=e.__c).__H;t&&(t.__h.forEach(je),t.__h.forEach(Se),t.__h=[])},e.diffed=function(t){fe&&fe(t);var r=t.__c;r&&r.__H&&r.__H.__h.length&&(1!==_e.push(r)&&de===e.requestAnimationFrame||((de=e.requestAnimationFrame)||function(e){var t,r=function(){clearTimeout(o),we&&cancelAnimationFrame(t),setTimeout(e)},o=setTimeout(r,100);we&&(t=requestAnimationFrame(r))})(xe)),le=void 0},e.__c=function(t,r){r.some((function(t){try{t.__h.forEach(je),t.__h=t.__h.filter((function(e){return!e.__||Se(e)}))}catch(o){r.some((function(e){e.__h&&(e.__h=[])})),r=[],e.__e(o,t.__v)}})),ge&&ge(t,r)},e.unmount=function(t){be&&be(t);var r=t.__c;if(r&&r.__H)try{r.__H.__.forEach(je)}catch(o){e.__e(o,r.__v)}};var we="function"==typeof requestAnimationFrame;function je(e){var t=le;"function"==typeof e.__c&&e.__c(),le=t}function Se(e){var t=le;e.__c=e.__(),le=t}function Me(e,t){return!e||e.length!==t.length||t.some((function(t,r){return t!==e[r]}))}function Ce(e,t){return"function"==typeof t?t(e):t}var Pe="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Le(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})})),t}var Be={},ze={},Re={};Object.defineProperty(Re,"__esModule",{value:!0}),Re.ModelPath=Re.Path=Re.relativePath=void 0,Re.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class Ae{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 Ae(this.modelArr.slice(e,t),this.contextArr)}shift(){return new Ae(this.modelArr.slice(1),this.contextArr)}pop(){return new Ae(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Ae([...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 Ae([...this.modelArr],[...this.contextArr,t])}copy(){return new Ae([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new $e(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)}}Re.Path=Ae;class $e extends Ae{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 $e(this.model,super.slice(e,t))}shift(){return new $e(this.model,super.shift())}pop(){return new $e(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new $e(this.model,super.modelPush(e))}contextPush(e){return new $e(this.model,super.contextPush(e))}copy(){return new $e(this.model,super.copy())}}Re.ModelPath=$e;var Te={};Object.defineProperty(Te,"__esModule",{value:!0}),Te.Errors=void 0;class qe{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}}Te.Errors=qe,Object.defineProperty(ze,"__esModule",{value:!0}),ze.DataModel=void 0;const De=Re,Ie=Te;ze.DataModel=class{constructor(e,t){var r;this.schema=e,this.data=e.default(),this.listeners=[],this.errors=new Ie.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0,this.historyMax=null!==(r=null==t?void 0:t.historyMax)&&void 0!==r?r:50}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=t[e]})),t}set(e,t,r){if(0===e.getArray().length)return void this.reset(t,!0);let o=this.data;e.pop().forEach((e=>{void 0!==o[e]&&"string"!=typeof o[e]&&"number"!=typeof o[e]||(o[e]={}),o=o[e]})),void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?o.splice(e.last(),1):delete o[e.last()]:o[e.last()]=t,r||(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(o)}))}};var Fe,Ee={};Fe=Ee,Object.defineProperty(Fe,"__esModule",{value:!0}),Fe.Keep=Fe.Opt=Fe.Has=Fe.Mod=Fe.Base=void 0,Fe.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:()=>[]},Fe.Mod=(e,t)=>m(m({},e),"function"==typeof t?t(e):t),Fe.Has=(e,t)=>Fe.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),Fe.Opt=function(e){return _(m({},e),{optional:()=>!0})},Fe.Keep=function(e){return _(m({},e),{keep:()=>!0})};var Ue={};Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.BooleanNode=void 0;const We=Ee;Ue.BooleanNode=()=>_(m({},We.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,r,o){return o.loose&&"boolean"!=typeof t&&(t=this.default()),"boolean"==typeof t&&void 0!==t||r.add(e,"error.expected_boolean"),t},hook(e,t,...r){var o;return(null!==(o=e.boolean)&&void 0!==o?o:e.base).call(e,{node:this},t,...r)}});var He={},Ke={};Object.defineProperty(Ke,"__esModule",{value:!0}),Ke.ListNode=void 0;const Ve=Ee;Ke.ListNode=(e,t)=>{var r,o;const i=null!==(r=null==t?void 0:t.minLength)&&void 0!==r?r:0,a=null!==(o=null==t?void 0:t.maxLength)&&void 0!==o?o:1/0,n=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return _(m({},Ve.Base),{type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(i)].map((t=>e.default())):[],navigate(t,r){const o=r+1;return t.getArray().length<=o?this:e.navigate(t,o)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,r,o,c){return c.loose&&!Array.isArray(r)&&(r=this.default()),Array.isArray(r)?(n&&(r.lengtha)?i===a?o.add(t,"error.invalid_list_range.exact",r.length,i):o.add(t,"error.invalid_list_range.between",r.length,i,a):r.lengtha&&o.add(t,"error.invalid_list_range.larger",r.length,a),r.map(((r,i)=>e.validate(t.push(i),r,o,c)))):(o.add(t,"error.expected_list"),r)},hook(r,o,...i){var a;return(null!==(a=r.list)&&void 0!==a?a:r.base).call(r,{node:this,children:e,config:null!=t?t:{}},o,...i)}})};var Ge={};Object.defineProperty(Ge,"__esModule",{value:!0}),Ge.SwitchNode=void 0;const Xe=Ee;Ge.SwitchNode=e=>_(m({},Xe.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 o=t+1;return null===(r=this.activeCase(e.slice(0,o)))||void 0===r?void 0:r.node.navigate(e,t)},pathPush(e,t){var r,o;return null!==(o=null===(r=this.activeCase(e))||void 0===r?void 0:r.node.pathPush(e,t))&&void 0!==o?o:e},suggest(t,r){var o,i;return null!==(i=null===(o=this.activeCase(t))||void 0===o?void 0:o.node.suggest(t,r))&&void 0!==i?i:e.filter((e=>e.match(t))).map((e=>e.node.suggest(t,r))).reduce(((e,t)=>e.concat(t)))},validate(e,t,r,o){let i=this.activeCase(e);return void 0===i?t:i.node.validate(e,t,r,o)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,r){const o=(e,t)=>{var r,o;return(null!==(r=t.priority)&&void 0!==r?r:0)-(null!==(o=e.priority)&&void 0!==o?o:0)},i=e.filter((e=>e.match(t))).sort(o);return r&&0===i.length?e.sort(o)[0]:i.length>0?i[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=Ke,r=Ge;e.ChoiceNode=(e,t)=>{const o=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 _(m({},o),{validate(e,t,r,i){let a=o.activeCase(e,!0);return a.node.optional()?t:a.node.validate(e,t,r,i)},hook(r,i,...a){var n;return(null!==(n=r.choice)&&void 0!==n?n:r.base).call(r,{node:this,choices:e,config:null!=t?t:{},switchNode:o},i,...a)}})};const o=r=>(o,i)=>e.ChoiceNode([{type:r,node:o,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:o.default()}},{type:"list",node:t.ListNode(o),change:e=>e?[e]:[]}],i);e.ObjectOrList=o("object"),e.StringOrList=o("string"),e.ObjectOrPreset=(t,r,o)=>e.ChoiceNode([{type:"string",priority:1,node:t,change:e=>Object.keys(o)[0]},{type:"object",node:r,change:e=>{var t;return null!==(t=o[e])&&void 0!==t?t:o[Object.keys(o)[0]]}}])}(He);var Je={};Object.defineProperty(Je,"__esModule",{value:!0}),Je.MapNode=void 0;const Ze=Ee;Je.MapNode=(e,t,r)=>_(m({},Ze.Base),{type:()=>"map",default:()=>({}),navigate(e,r){const o=r+1;return e.getArray().length<=o?this:t.navigate(e,o)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(r,o,i,a){if(a.loose&&"object"!=typeof o&&(o=this.default()),null===o||"object"!=typeof o)return i.add(r,"error.expected_object"),o;let n={};return Object.keys(o).forEach((c=>{e.validate(r,c,i,a),n[c]=t.validate(r.push(c),o[c],i,a)})),n},validationOption(t){var o;return null!==(o=null==r?void 0:r.validation)&&void 0!==o?o:e.validationOption(t.push(""))},hook(o,i,...a){var n;return(null!==(n=o.map)&&void 0!==n?n:o.base).call(o,{node:this,keys:e,children:t,config:null!=r?r:{}},i,...a)}});var Ye={};Object.defineProperty(Ye,"__esModule",{value:!0}),Ye.NumberNode=void 0;const Qe=Ee;Ye.NumberNode=e=>{var t,r,o;const i=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,a=(null==e?void 0:e.color)?0:null!==(r=null==e?void 0:e.min)&&void 0!==r?r:-1/0,n=(null==e?void 0:e.color)?16777215:null!==(o=null==e?void 0:e.max)&&void 0!==o?o:1/0,c=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return _(m({},Qe.Base),{type:()=>"number",default:()=>a>0?a:0,validate(e,t,r,o){return o.loose&&"number"!=typeof t&&(t=this.default()),"number"!=typeof t?r.add(e,"error.expected_number"):i&&!Number.isInteger(t)?r.add(e,"error.expected_integer"):c&&(tn)?r.add(e,"error.invalid_number_range.between",t,a,n):t n&&r.add(e,"error.invalid_number_range.larger",t,n),t},hook(t,r,...o){var s;return(null!==(s=t.number)&&void 0!==s?s:t.base).call(t,{node:this,integer:i,min:a,max:n,between:c,config:null!=e?e:{}},r,...o)}})};var et={},tt={};function rt(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(tt,"__esModule",{value:!0}),tt.quoteString=tt.escapeString=void 0,tt.escapeString=rt,tt.quoteString=function(e){return`"${rt(e)}"`},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=Ee,r=Re,o=Te,i=tt;e.Switch=Symbol("switch"),e.Case=Symbol("case"),e.ObjectNode=(a,n)=>{var d,u;const f=a,{[d=e.Switch]:g,[u=e.Case]:b}=f,h=((e,t)=>{var r={};for(var o in e)s.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&c)for(var o of c(e))t.indexOf(o)<0&&l.call(e,o)&&(r[o]=e[o]);return r})(f,[p(d),p(u)]),y=e=>{if(void 0===g)return h;const t=r.relativePath(e,g).get(),o=b[t];return m(m({},h),o)},v=(e,t)=>{var o;const i=g?r.relativePath(e,g).get():void 0,a=g&&null!==(o=b[i])&&void 0!==o?o:{},c=Object.keys(a),s=(null==n?void 0:n.context)?new r.ModelPath(e.getModel(),new r.Path(e.getArray(),[n.context])):e;return(!(null==n?void 0:n.disableSwitchContext)&&i&&c.includes(t)?s.contextPush(i):s).push(t)};return _(m({},t.Base),{type:()=>"object",category:()=>null==n?void 0:n.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const r=t+1,o=e.getArray();if(o.length<=r)return this;const i=y(e.slice(0,r))[o[r]];return null==i?void 0:i.navigate(e,r)},pathPush:(e,t)=>v(e,t.toString()),suggest(e,t){const r=y(e),o=Object.keys("object"==typeof t?t:{});return Object.keys(r).filter((t=>r[t].enabled(e))).filter((e=>!o.includes(e))).map(i.quoteString)},validate(e,t,i,a){if(a.loose&&"object"!=typeof t&&(t=this.default()),"object"!=typeof t)return i.add(e,"error.expected_object"),t;let n=h;if(g){const i=r.relativePath(e,g);let c=i.get();if(e.equals(i.pop())){const r=i.last();c=h[r].validate(e.push(r),t[r],new o.Errors,a)}n=m(m({},n),b[c])}const c=Object.keys(n),s=c.filter((e=>!n[e].optional())),l=new Set([...s,...Object.keys(t)]);let d={};return l.forEach((r=>{if(c.includes(r)){if(!n[r].enabled(e))return;const o=n[r].validate(e.push(r),t[r],i,a);!n[r].keep()&&n[r].optional()&&(void 0===o||Array.isArray(o)&&0===o.length||o.constructor===Object&&0===Object.keys(o).length)?d[r]=void 0:(d[r]=o,e.getModel().set(e.push(r),o,!0))}else d[r]=t[r]})),d},hook(e,t,...r){var o;return(null!==(o=e.object)&&void 0!==o?o:e.base).call(e,{node:this,fields:h,filter:g,cases:b,getActiveFields:y,getChildModelPath:v},t,...r)}})}}(et);var ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.Reference=void 0,ot.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,o)=>e.get(t).transform(r,o),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,o){return e.get(t).navigate.bind(this)(r,o)},pathPush(r,o){return e.get(t).pathPush.bind(this)(r,o)},suggest(r,o){return e.get(t).suggest.bind(this)(r,o)},validate(r,o,i,a){return e.get(t).validate.bind(this)(r,o,i,a)},validationOption(r){return e.get(t).validationOption.bind(this)(r)},hook(r,o,...i){return e.get(t).hook.bind(this)(r,o,...i)},activeCase(r,o){return e.get(t).activeCase.bind(this)(r,o)},canUpdate(r,o){return e.get(t).canUpdate.bind(this)(r,o)},update(r,o){return e.get(t).update.bind(this)(r,o)}});var it={};Object.defineProperty(it,"__esModule",{value:!0}),it.StringNode=void 0;const at=Ee,nt=tt,ct=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},st=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};it.StringNode=(e,t)=>{const r=ct(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 _(m({},at.Base),{type:()=>"string",default:()=>"",validate(e,o,i,a){if(a.loose&&"string"!=typeof o&&(o=this.default()||void 0),"string"!=typeof o)return i.add(e,"error.expected_string"),o;if(st(t)&&("resource"===t.validator&&o.length>0&&!o.includes(":")&&(o="#"===o[0]?"#minecraft:"+o.slice(1):"minecraft:"+o),"resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||t.params.allowTag&&"#"===o[0]||t.params.isDefinition||t.params.allowUnknown)))return o;if(ct(t)&&t.additional)return o;const n=r();return n.length>0&&!n.includes(o)&&i.add(e,"error.invalid_enum_option",o),o},suggest:()=>r().map(nt.quoteString),validationOption:()=>st(t)?t:void 0,hook(e,o,...i){var a;return(null!==(a=e.string)&&void 0!==a?a:e.base).call(e,{node:this,getValues:r,config:t},o,...i)}})};var lt={};Object.defineProperty(lt,"__esModule",{value:!0});var dt={};Object.defineProperty(dt,"__esModule",{value:!0}),dt.CollectionRegistry=dt.SchemaRegistry=void 0;dt.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}};dt.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 mt={};Object.defineProperty(mt,"__esModule",{value:!0}),function(e){var t=Pe&&Pe.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=Pe&&Pe.__exportStar||function(e,r){for(var o in e)"default"===o||r.hasOwnProperty(o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),r(ze,e),r(Re,e),r(Te,e),r(Ee,e),r(Ue,e),r(He,e),r(Ke,e),r(Je,e),r(Ye,e),r(et,e),r(ot,e),r(it,e),r(Ge,e),r(lt,e),r(dt,e),r(mt,e)}(Be);var _t={},pt={};Object.defineProperty(pt,"__esModule",{value:!0}),pt.initCollections=void 0,pt.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:tick","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),e.register("loot_condition_type",["minecraft:alternative","minecraft:inverted","minecraft:reference","minecraft:entity_properties","minecraft:block_state_property","minecraft:match_tool","minecraft:damage_source_properties","minecraft:location_check","minecraft:weather_check","minecraft:time_check","minecraft:entity_scores","minecraft:random_chance","minecraft:random_chance_with_looting","minecraft:table_bonus","minecraft:killed_by_player","minecraft:survives_explosion"]),e.register("loot_function_type",["minecraft:set_count","minecraft:set_damage","minecraft:set_name","minecraft:set_lore","minecraft:set_nbt","minecraft:set_attributes","minecraft:set_contents","minecraft:enchant_randomly","minecraft:enchant_with_levels","minecraft:looting_enchant","minecraft:limit_count","minecraft:furnace_smelt","minecraft:explosion_decay","minecraft:fill_player_head","minecraft:copy_name","minecraft:copy_nbt","minecraft:copy_state","minecraft:apply_bonus","minecraft:exploration_map","minecraft:set_stew_effect"]),e.register("attribute",["generic.maxHealth","generic.followRange","generic.knockbackResistance","generic.movementSpeed","generic.attackDamage","generic.armor","generic.armorToughness","generic.attackSpeed","generic.luck","horse.jumpStrength","generic.attackKnockback","generic.flyingSpeed","zombie.spawnReinforcements"]),e.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])};var ut={},ft={},gt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.Range=e.ConditionCases=void 0;const t=Be;e.initCommonSchemas=function(r,o){const i=t.StringNode.bind(void 0,o),a=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0})),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,r,o;return void 0===e?0:null!==(o=null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:e.n)&&void 0!==o?o:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:i({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,r;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:1,p:.5}}}]:[]],{choiceContext:"range"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:i({enum:"entity_source"}),predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:i({enum:"entity_source"}),scores:t.MapNode(i({validator:"objective"}),e.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:requirements":{terms:t.ListNode(a("condition"))},"minecraft:reference":{name:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}}}(gt);var bt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Be,r=gt;e.initPredicatesSchemas=function(o,i){const a=t.Reference.bind(void 0,o),n=t.StringNode.bind(void 0,i),c=t.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:t.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:!0})),max:t.Opt(t.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:t.BooleanNode(),change:e=>"true"===e||1===e}]);o.register("item_predicate",t.ObjectNode({item:t.Opt(n({validator:"resource",params:{pool:"item"}})),tag:t.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:t.Opt(r.Range()),durability:t.Opt(r.Range()),potion:t.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:t.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:t.Opt(t.ListNode(a("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",t.ObjectNode({enchantment:t.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:t.Opt(r.Range())},{context:"enchantment"})),o.register("block_predicate",t.ObjectNode({block:t.Opt(n({validator:"resource",params:{pool:"block"}})),tag:t.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:t.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:t.Opt(t.MapNode(n(),c,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",t.ObjectNode({fluid:t.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:t.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:t.Opt(t.MapNode(n(),c))},{context:"fluid"})),e.LocationFields={position:t.Opt(t.ObjectNode({x:t.Opt(r.Range()),y:t.Opt(r.Range()),z:t.Opt(r.Range())})),biome:t.Opt(n({enum:"biome"})),feature:t.Opt(n({enum:"structure_feature"})),dimension:t.Opt(n({enum:"dimension"})),light:t.Opt(t.ObjectNode({light:t.Opt(r.Range({integer:!0,min:0,max:15}))})),block:t.Opt(a("block_predicate")),fluid:t.Opt(a("fluid_predicate"))},o.register("location_predicate",t.ObjectNode(e.LocationFields,{context:"location"})),o.register("statistic_predicate",t.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r.Range(),[t.Switch]:[{push:"type"}],[t.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),o.register("player_predicate",t.ObjectNode({gamemode:t.Opt(n({enum:"gamemode"})),level:t.Opt(r.Range()),advancements:t.Opt(t.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),t.ChoiceNode([{type:"boolean",node:t.BooleanNode(),change:e=>!0},{type:"object",node:t.MapNode(n(),t.BooleanNode())}]))),recipes:t.Opt(t.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),t.BooleanNode())),stats:t.Opt(t.ListNode(a("statistic_predicate")))},{context:"player"})),o.register("status_effect_predicate",t.ObjectNode({amplifier:t.Opt(r.Range()),duration:t.Opt(r.Range()),ambient:t.Opt(t.BooleanNode()),visible:t.Opt(t.BooleanNode())},{context:"status_effect"})),o.register("distance_predicate",t.ObjectNode({x:t.Opt(r.Range()),y:t.Opt(r.Range()),z:t.Opt(r.Range()),absolute:t.Opt(r.Range()),horizontal:t.Opt(r.Range())},{context:"distance"})),o.register("entity_predicate",t.ObjectNode({type:t.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:t.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:t.Opt(n({validator:"team"})),location:t.Opt(a("location_predicate")),distance:t.Opt(a("distance_predicate")),flags:t.Opt(t.ObjectNode({is_on_fire:t.Opt(t.BooleanNode()),is_sneaking:t.Opt(t.BooleanNode()),is_sprinting:t.Opt(t.BooleanNode()),is_swimming:t.Opt(t.BooleanNode()),is_baby:t.Opt(t.BooleanNode())})),equipment:t.Opt(t.MapNode(n({enum:"slot"}),a("item_predicate"))),player:t.Opt(a("player_predicate")),effects:t.Opt(t.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),a("status_effect_predicate")))},{context:"entity"})),o.register("damage_source_predicate",t.ObjectNode({is_explosion:t.Opt(t.BooleanNode()),is_fire:t.Opt(t.BooleanNode()),is_magic:t.Opt(t.BooleanNode()),is_projectile:t.Opt(t.BooleanNode()),is_lightning:t.Opt(t.BooleanNode()),bypasses_armor:t.Opt(t.BooleanNode()),bypasses_invulnerability:t.Opt(t.BooleanNode()),bypasses_magic:t.Opt(t.BooleanNode()),source_entity:t.Opt(a("entity_predicate")),direct_entity:t.Opt(a("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",t.ObjectNode({dealt:t.Opt(r.Range()),taken:t.Opt(r.Range()),blocked:t.Opt(t.BooleanNode()),source_entity:t.Opt(a("entity_predicate")),type:t.Opt(a("damage_source_predicate"))},{context:"damage"}))}}(bt),Object.defineProperty(ft,"__esModule",{value:!0}),ft.initAdvancementSchemas=void 0;const ht=Be,yt=gt,vt=bt;ft.initAdvancementSchemas=function(e,t){const r=ht.Reference.bind(void 0,e),o=ht.StringNode.bind(void 0,t);e.register("advancement",ht.Mod(ht.ObjectNode({display:ht.Opt(ht.Mod(ht.ObjectNode({icon:ht.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:ht.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:ht.Opt(o()),frame:ht.Opt(o({enum:["task","challenge","goal"]})),show_toast:ht.Opt(ht.BooleanNode()),announce_to_chat:ht.Opt(ht.BooleanNode()),hidden:ht.Opt(ht.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:ht.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:ht.MapNode(o(),r("advancement_criteria")),requirements:ht.Opt(ht.ListNode(ht.ListNode(o()))),rewards:ht.Opt(ht.ObjectNode({function:ht.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:ht.Opt(ht.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:ht.Opt(ht.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:ht.Opt(ht.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",ht.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:ht.Opt(ht.ObjectNode({[ht.Switch]:["pop",{push:"trigger"}],[ht.Case]:{"minecraft:bee_nest_destroyed":{block:ht.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:ht.Opt(ht.NumberNode({integer:!0})),item:ht.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:ht.Opt(r("entity_predicate")),partner:ht.Opt(r("entity_predicate")),child:ht.Opt(r("entity_predicate"))},"minecraft:brewed_potion":{potion:ht.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:ht.Opt(o({enum:"dimension"})),to:ht.Opt(o({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:ht.Opt(ht.ListNode(ht.Opt(r("entity_predicate"))))},"minecraft:construct_beacon":{level:ht.Opt(yt.Range())},"minecraft:consume_item":{item:ht.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:ht.Opt(r("entity_predicate")),zombie:ht.Opt(r("entity_predicate"))},"minecraft:effects_changed":{effects:ht.Opt(ht.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),ht.ObjectNode({amplifier:yt.Range(),duration:yt.Range()})))},"minecraft:enter_block":{block:ht.Opt(o({validator:"resource",params:{pool:"block"}})),state:ht.Opt(ht.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:ht.Opt(yt.Range()),item:ht.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:ht.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:ht.Opt(r("entity_predicate")),killing_blow:ht.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:ht.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:ht.Opt(r("entity_predicate")),item:ht.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":vt.LocationFields,"minecraft:inventory_changed":{slots:ht.Opt(ht.ObjectNode({empty:ht.Opt(yt.Range()),occupied:ht.Opt(yt.Range()),full:ht.Opt(yt.Range())})),items:ht.Opt(ht.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:ht.Opt(yt.Range()),durability:ht.Opt(yt.Range()),item:ht.Opt(r("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:ht.Opt(yt.Range()),victims:ht.Opt(ht.ListNode(ht.Opt(r("entity_predicate"))))},"minecraft:levitation":{distance:ht.Opt(yt.Range()),duration:ht.Opt(yt.Range())},"minecraft:location":vt.LocationFields,"minecraft:nether_travel":{distance:ht.Opt(yt.Range()),entered:ht.Opt(r("location_predicate")),exited:ht.Opt(r("location_predicate"))},"minecraft:placed_block":{block:ht.Opt(o({validator:"resource",params:{pool:"block"}})),state:ht.Opt(ht.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:ht.Opt(r("item_predicate")),location:ht.Opt(r("location_predicate"))},"minecraft:player_hurt_entity":{damage:ht.Opt(r("damage_predicate")),entity:ht.Opt(r("entity_predicate"))},"minecraft:player_killed_entity":{entity:ht.Opt(r("entity_predicate")),killing_blow:ht.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:ht.Opt(ht.ObjectNode({block:ht.Opt(o({validator:"resource",params:{pool:"block"}})),tag:ht.Opt(o({validator:"resource",params:{pool:"$tag/block"}}))})),item:ht.Opt(r("item_predicate"))},"minecraft:slept_in_bed":vt.LocationFields,"minecraft:slide_down_block":{block:ht.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:ht.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:ht.Opt(r("entity_predicate"))},"minecraft:tame_animal":{entity:ht.Opt(r("entity_predicate"))},"minecraft:used_ender_eye":{distance:ht.Opt(yt.Range())},"minecraft:used_totem":{item:ht.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:ht.Opt(r("entity_predicate")),item:ht.Opt(r("item_predicate"))},"minecraft:voluntary_exile":vt.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Nt={};Object.defineProperty(Nt,"__esModule",{value:!0}),Nt.initConditionSchemas=void 0;const Ot=Be,kt=gt;Nt.initConditionSchemas=function(e,t){const r=Ot.Reference.bind(void 0,e),o=Ot.StringNode.bind(void 0,t);e.register("predicate",Ot.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Ot.Mod(Ot.ObjectNode({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[Ot.Switch]:[{push:"condition"}],[Ot.Case]:kt.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var xt={},wt={};Object.defineProperty(wt,"__esModule",{value:!0}),wt.LootFunctions=wt.LootConditions=wt.LootCopySources=wt.LootEntitySources=wt.LootTableTypes=void 0,wt.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),wt.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),wt.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),wt.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),wt.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(xt,"__esModule",{value:!0}),xt.initLootTableSchemas=void 0;const jt=Be,St=wt,Mt=gt;xt.initLootTableSchemas=function(e,t){const r=jt.Reference.bind(void 0,e),o=jt.StringNode.bind(void 0,t),i={conditions:jt.Opt(jt.ListNode(r("loot_condition")))},a=m({functions:jt.Opt(jt.ListNode(r("loot_function")))},i);function n(e,r,o){const i=[],a=o=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>o.includes(e)))}));for(const[t,{allows:n,requires:c}]of St.LootTableTypes){const e=[...n,...c];i.push({match:e=>e.getModel().get(new jt.Path(["type"]))===t,node:o(a(e))})}return i.push({match:e=>!0,node:o(r)}),jt.SwitchNode(i)}const c=n(St.LootConditions,"loot_condition_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),s=n(St.LootFunctions,"loot_function_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),l=n(St.LootEntitySources,"entity_source",(e=>o({enum:e}))),d=n(St.LootCopySources,"copy_source",(e=>o({enum:e})));e.register("loot_table",jt.Mod(jt.ObjectNode({type:jt.Opt(o({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:jt.Opt(jt.ListNode(jt.Mod(jt.ObjectNode(m({rolls:Mt.Range({allowBinomial:!0,integer:!0}),bonus_rolls:jt.Opt(Mt.Range({integer:!0})),entries:jt.ListNode(r("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:jt.Opt(jt.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",jt.Mod(jt.ObjectNode({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:jt.Opt(jt.Mod(jt.NumberNode({integer:!0,min:1}),p)),quality:jt.Opt(jt.Mod(jt.NumberNode({integer:!0}),p)),[jt.Switch]:[{push:"type"}],[jt.Case]:{"minecraft:alternatives":m({children:jt.ListNode(r("loot_entry"))},a),"minecraft:dynamic":m({name:o()},a),"minecraft:group":m({children:jt.ListNode(r("loot_entry"))},a),"minecraft:item":m({name:o({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":m({name:o({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":m({children:jt.ListNode(r("loot_entry"))},a),"minecraft:tag":m({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:jt.Opt(jt.BooleanNode())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",jt.Mod(jt.ObjectNode({function:s,[jt.Switch]:[{push:"function"}],[jt.Case]:{"minecraft:apply_bonus":m({enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:jt.Mod(jt.ObjectNode({bonusMultiplier:jt.Mod(jt.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:jt.Mod(jt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:jt.Mod(jt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},i),"minecraft:copy_name":m({source:d},i),"minecraft:copy_nbt":m({source:d,ops:jt.ListNode(jt.ObjectNode({source:o({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:o({validator:"nbt_path",params:{category:"minecraft:item"}}),op:o({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},i),"minecraft:copy_state":m({block:o({validator:"resource",params:{pool:"block"}}),properties:jt.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},i),"minecraft:enchant_randomly":m({enchantments:jt.Opt(jt.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},i),"minecraft:enchant_with_levels":m({levels:Mt.Range({allowBinomial:!0}),treasure:jt.Opt(jt.BooleanNode())},i),"minecraft:exploration_map":m({destination:jt.Opt(o({enum:"structure_feature"})),decoration:jt.Opt(o({enum:"map_decoration"})),zoom:jt.Opt(jt.NumberNode({integer:!0})),search_radius:jt.Opt(jt.NumberNode({integer:!0})),skip_existing_chunks:jt.Opt(jt.BooleanNode())},i),"minecraft:fill_player_head":m({entity:l},i),"minecraft:limit_count":m({limit:Mt.Range({bounds:!0})},i),"minecraft:looting_enchant":m({count:Mt.Range({bounds:!0}),limit:jt.Opt(jt.NumberNode({integer:!0}))},i),"minecraft:set_attributes":m({modifiers:jt.ListNode(r("attribute_modifier"))},i),"minecraft:set_contents":m({entries:jt.ListNode(r("loot_entry"))},i),"minecraft:set_count":m({count:Mt.Range({allowBinomial:!0})},i),"minecraft:set_damage":m({damage:Mt.Range({forceRange:!0})},i),"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:jt.Opt(jt.NumberNode({integer:!0}))},"minecraft:set_lore":m({entity:jt.Opt(l),lore:jt.ListNode(r("text_component")),replace:jt.Opt(jt.BooleanNode())},i),"minecraft:set_name":m({entity:jt.Opt(l),name:jt.Opt(r("text_component"))},i),"minecraft:set_nbt":m({tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},i),"minecraft:set_stew_effect":m({effects:jt.Opt(jt.ListNode(jt.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:Mt.Range()})))},i)}},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",jt.Mod(jt.ObjectNode({condition:c,[jt.Switch]:[{push:"condition"}],[jt.Case]:_(m({},Mt.ConditionCases),{"minecraft:entity_properties":{entity:l,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:l,scores:jt.MapNode(o({validator:"objective"}),Mt.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",jt.Mod(jt.ObjectNode({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:Mt.Range({bounds:!0}),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:jt.StringOrList(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Ct={};Object.defineProperty(Ct,"__esModule",{value:!0}),Ct.initPackMcmetaSchemas=void 0;const Pt=Be;Ct.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Pt.Mod(Pt.ObjectNode({pack:Pt.Mod(Pt.ObjectNode({pack_format:Pt.Mod(Pt.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:Pt.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var Lt={};Object.defineProperty(Lt,"__esModule",{value:!0}),Lt.initRecipeSchemas=void 0;const Bt=Be;Lt.initRecipeSchemas=function(e,t){const r=Bt.Reference.bind(void 0,e),o=Bt.StringNode.bind(void 0,t);e.register("recipe",Bt.Mod(Bt.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[Bt.Switch]:[{push:"type"}],[Bt.Case]:{"minecraft:crafting_shaped":{group:Bt.Opt(o({enum:"recipe_group",additional:!0})),pattern:Bt.ListNode(o()),key:Bt.MapNode(o(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Bt.Opt(o()),ingredients:Bt.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Bt.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Bt.Opt(Bt.NumberNode()),cookingtime:Bt.Opt(Bt.Mod(Bt.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Bt.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Bt.Opt(Bt.NumberNode()),cookingtime:Bt.Opt(Bt.Mod(Bt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Bt.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Bt.Opt(Bt.NumberNode()),cookingtime:Bt.Opt(Bt.Mod(Bt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Bt.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Bt.Opt(Bt.NumberNode()),cookingtime:Bt.Opt(Bt.Mod(Bt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Bt.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:Bt.NumberNode({integer:!0})},"minecraft:smithing":{group:Bt.Opt(o()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Bt.Mod(Bt.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Bt.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Bt.Mod(Bt.ObjectNode({item:Bt.Opt(o({validator:"resource",params:{pool:"item"}})),tag:Bt.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Bt.Mod(Bt.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:Bt.Opt(Bt.Mod(Bt.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.initTagsSchemas=void 0;const Rt=Be;zt.initTagsSchemas=function(e,t){const r=Rt.StringNode.bind(void 0,t),o=e=>Rt.Mod(Rt.ObjectNode({replace:Rt.Opt(Rt.BooleanNode()),values:Rt.ListNode(Rt.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Rt.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Rt.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("item_tag",o("item"))};var At={};Object.defineProperty(At,"__esModule",{value:!0}),At.initTextComponentSchemas=void 0;const $t=Be;At.initTextComponentSchemas=function(e,t){const r=$t.Reference.bind(void 0,e),o=$t.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",$t.Mod($t.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:o(),change:i},{type:"number",node:$t.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:$t.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={bold:$t.Opt($t.BooleanNode()),italic:$t.Opt($t.BooleanNode()),underlined:$t.Opt($t.BooleanNode()),strikethrough:$t.Opt($t.BooleanNode()),obfuscated:$t.Opt($t.BooleanNode()),insertion:$t.Opt(o()),clickEvent:$t.Opt($t.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[$t.Switch]:[{push:"action"}],[$t.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:$t.Opt($t.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[$t.Switch]:[{push:"action"}],[$t.Case]:{show_text:{value:$t.Opt(r("text_component"))},show_item:{value:$t.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:$t.Opt($t.ObjectNode({name:$t.Opt(o()),type:$t.Opt(o()),id:$t.Opt(o())}))}}})),extra:$t.Opt(r("text_component_list"))};e.register("text_component_object",$t.Mod($t.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:$t.ObjectNode(m({text:o()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:$t.ObjectNode(m({translate:o(),with:$t.Opt(r("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:$t.ObjectNode(m({score:$t.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:$t.Opt(o())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:$t.ObjectNode(m({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}})},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:$t.ObjectNode(m({keybind:o({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:$t.ObjectNode(m({nbt:o({validator:"nbt_path"}),block:$t.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:$t.Opt(o({validator:"entity",params:{amount:"single",type:"entities"}})),storage:$t.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:$t.Opt($t.BooleanNode())},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",$t.Mod($t.ListNode(r("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(ut,"__esModule",{value:!0}),ut.initSchemas=void 0;const Tt=ft,qt=gt,Dt=Nt,It=xt,Ft=Ct,Et=bt,Ut=Lt,Wt=zt,Ht=At;ut.initSchemas=function(e,t){qt.initCommonSchemas(e,t),Et.initPredicatesSchemas(e,t),Tt.initAdvancementSchemas(e,t),Dt.initConditionSchemas(e,t),It.initLootTableSchemas(e,t),Ft.initPackMcmetaSchemas(e,t),Ut.initRecipeSchemas(e,t),Wt.initTagsSchemas(e,t),Ht.initTextComponentSchemas(e,t)};var Kt=Pe&&Pe.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),Vt=Pe&&Pe.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Gt=Pe&&Pe.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&Kt(t,e,r);return Vt(t,e),t};Object.defineProperty(_t,"__esModule",{value:!0});var Xt=_t.getSchemas=_t.getCollections=_t.lootContext=void 0;const Jt=Be,Zt=pt,Yt=ut;var Qt=_t.lootContext=Gt(wt);var er=_t.getCollections=function(){const e=new Jt.CollectionRegistry;return Zt.initCollections(e),e};Xt=_t.getSchemas=function(e){const t=new Jt.SchemaRegistry;return Yt.initSchemas(t,e),t};var tr=Object.freeze(Object.assign(Object.create(null),_t,{[Symbol.toStringTag]:"Module",get getSchemas(){return Xt},get getCollections(){return er},get lootContext(){return Qt},default:_t})),rr={},or={};Object.defineProperty(or,"__esModule",{value:!0}),or.initCollections=void 0,or.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])};var ir={},ar={},nr={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.UniformInt=e.Range=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.ConditionCases=void 0;const t=Be;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld"},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(r,o){const i=t.StringNode.bind(void 0,o),a=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,r,o;return void 0===e?0:null!==(o=null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:e.n)&&void 0!==o?o:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:i({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,r;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:1,p:.5}}}]:[]],{choiceContext:"range"}),e.UniformInt=e=>t.ChoiceNode([{type:"number",node:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:t.ObjectNode({base:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:t.NumberNode({integer:!0,min:0,max:null==e?void 0:e.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:i({enum:"entity_source"}),predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:i({enum:"entity_source"}),scores:t.MapNode(i({validator:"objective"}),e.Range({forceRange:!0}))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}},e.DimensionTypePresets=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$dimension_type"}}),r,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether"},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end"}}),e.NoiseSettingsPresets=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),r,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(nr),Object.defineProperty(ar,"__esModule",{value:!0}),ar.initAdvancementSchemas=void 0;const cr=Be,sr=nr;ar.initAdvancementSchemas=function(e,t){const r=cr.Reference.bind(void 0,e),o=cr.StringNode.bind(void 0,t),i=cr.ChoiceNode([{type:"object",node:cr.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:cr.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",cr.Mod(cr.ObjectNode({display:cr.Opt(cr.Mod(cr.ObjectNode({icon:cr.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:cr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:cr.Opt(o()),frame:cr.Opt(o({enum:["task","challenge","goal"]})),show_toast:cr.Opt(cr.BooleanNode()),announce_to_chat:cr.Opt(cr.BooleanNode()),hidden:cr.Opt(cr.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:cr.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:cr.MapNode(o(),r("advancement_criteria")),requirements:cr.Opt(cr.ListNode(cr.ListNode(o()))),rewards:cr.Opt(cr.ObjectNode({function:cr.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:cr.Opt(cr.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:cr.Opt(cr.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:cr.Opt(cr.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",cr.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:cr.Opt(cr.ObjectNode({player:cr.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[cr.Switch]:["pop",{push:"trigger"}],[cr.Case]:{"minecraft:bee_nest_destroyed":{block:cr.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:cr.Opt(cr.NumberNode({integer:!0})),item:cr.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:cr.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:cr.Opt(o({validator:"resource",params:{pool:"$dimension"}})),to:cr.Opt(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:cr.Opt(cr.ListNode(i))},"minecraft:construct_beacon":{level:cr.Opt(sr.Range())},"minecraft:consume_item":{item:cr.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:cr.Opt(cr.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:cr.Opt(o({validator:"resource",params:{pool:"block"}})),state:cr.Opt(cr.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:cr.Opt(sr.Range()),item:cr.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:cr.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:cr.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:cr.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:cr.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:cr.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:cr.Opt(cr.ObjectNode({empty:cr.Opt(sr.Range()),occupied:cr.Opt(sr.Range()),full:cr.Opt(sr.Range())})),items:cr.Opt(cr.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:cr.Opt(sr.Range()),durability:cr.Opt(sr.Range()),item:cr.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:cr.Opt(r("item_predicate")),location:cr.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:cr.Opt(sr.Range()),victims:cr.Opt(cr.ListNode(i))},"minecraft:levitation":{distance:cr.Opt(sr.Range()),duration:cr.Opt(sr.Range())},"minecraft:location":{location:cr.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:cr.Opt(sr.Range()),entered:cr.Opt(r("location_predicate")),exited:cr.Opt(r("location_predicate"))},"minecraft:placed_block":{block:cr.Opt(o({validator:"resource",params:{pool:"block"}})),state:cr.Opt(cr.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:cr.Opt(r("item_predicate")),location:cr.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:cr.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:cr.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:cr.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:cr.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:cr.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:cr.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:cr.Opt(sr.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:cr.Opt(r("entity_predicate")),item:cr.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:cr.Opt(sr.Range())},"minecraft:used_totem":{item:cr.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:cr.Opt(r("entity_predicate")),item:cr.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var lr={};Object.defineProperty(lr,"__esModule",{value:!0}),lr.initConditionSchemas=void 0;const dr=Be,mr=nr;lr.initConditionSchemas=function(e,t){const r=dr.Reference.bind(void 0,e),o=dr.StringNode.bind(void 0,t);e.register("predicate",dr.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",dr.Mod(dr.ObjectNode({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[dr.Switch]:[{push:"condition"}],[dr.Case]:mr.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var _r={};Object.defineProperty(_r,"__esModule",{value:!0}),_r.initDimensionSchemas=void 0;const pr=Be,ur=nr;_r.initDimensionSchemas=function(e,t){const r=pr.Reference.bind(void 0,e),o=pr.StringNode.bind(void 0,t),i=e=>pr.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",pr.Mod(pr.ObjectNode({type:ur.DimensionTypePresets(r("dimension_type")),generator:pr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[pr.Switch]:[{push:"type"}],[pr.Case]:{"minecraft:noise":{seed:pr.NumberNode({integer:!0}),settings:ur.NoiseSettingsPresets(r("noise_settings")),biome_source:pr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[pr.Switch]:[{push:"type"}],[pr.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:pr.NumberNode({integer:!0}),preset:pr.Opt(o({enum:["nether"]})),altitude_noise:i(r("generator_biome_noise")),temperature_noise:i(r("generator_biome_noise")),humidity_noise:i(r("generator_biome_noise")),weirdness_noise:i(r("generator_biome_noise")),biomes:i(pr.Mod(pr.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:pr.Opt(pr.NumberNode({integer:!0,min:0,max:62})),biomes:pr.ListNode(o({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:pr.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:pr.NumberNode({integer:!0}),large_biomes:pr.Opt(pr.BooleanNode()),legacy_biome_init_layer:pr.Opt(pr.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:pr.ObjectNode({biome:pr.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:pr.Opt(pr.BooleanNode()),features:pr.Opt(pr.BooleanNode()),layers:pr.ListNode(r("generator_layer")),structures:r("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",pr.Mod(pr.ObjectNode({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:pr.ObjectNode({altitude:pr.NumberNode(),temperature:pr.NumberNode(),humidity:pr.NumberNode(),weirdness:pr.NumberNode(),offset:pr.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",pr.Mod(pr.ObjectNode({firstOctave:pr.NumberNode({integer:!0}),amplitudes:pr.ListNode(pr.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var fr={};Object.defineProperty(fr,"__esModule",{value:!0}),fr.initDimensionTypeSchemas=void 0;const gr=Be,br=nr;fr.initDimensionTypeSchemas=function(e,t){const r=gr.StringNode.bind(void 0,t);e.register("dimension_type",gr.Mod(gr.ObjectNode({name:gr.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:gr.BooleanNode(),natural:gr.BooleanNode(),piglin_safe:gr.BooleanNode(),respawn_anchor_works:gr.BooleanNode(),bed_works:gr.BooleanNode(),has_raids:gr.BooleanNode(),has_skylight:gr.BooleanNode(),has_ceiling:gr.BooleanNode(),coordinate_scale:gr.NumberNode({min:1e-5,max:3e7}),ambient_light:gr.NumberNode(),fixed_time:gr.Opt(gr.NumberNode({integer:!0})),logical_height:gr.NumberNode({integer:!0,min:0,max:256}),effects:gr.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>br.DefaultDimensionType}))};var hr={},yr={};Object.defineProperty(yr,"__esModule",{value:!0}),yr.LootFunctions=yr.LootConditions=yr.LootCopySources=yr.LootEntitySources=yr.LootTableTypes=void 0,yr.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),yr.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),yr.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),yr.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),yr.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(hr,"__esModule",{value:!0}),hr.initLootTableSchemas=void 0;const vr=Be,Nr=yr,Or=nr;hr.initLootTableSchemas=function(e,t){const r=vr.Reference.bind(void 0,e),o=vr.StringNode.bind(void 0,t),i={conditions:vr.Opt(vr.ListNode(r("loot_condition")))},a=m({functions:vr.Opt(vr.ListNode(r("loot_function")))},i);function n(e,r,o){const i=[],a=o=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>o.includes(e)))}));for(const[t,{allows:n,requires:c}]of Nr.LootTableTypes){const e=[...n,...c];i.push({match:e=>e.getModel().get(new vr.Path(["type"]))===t,node:o(a(e))})}return i.push({match:e=>!0,node:o(r)}),vr.SwitchNode(i)}const c=n(Nr.LootConditions,"loot_condition_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),s=n(Nr.LootFunctions,"loot_function_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),l=n(Nr.LootEntitySources,"entity_source",(e=>o({enum:e}))),d=n(Nr.LootCopySources,"copy_source",(e=>o({enum:e})));e.register("loot_table",vr.Mod(vr.ObjectNode({type:vr.Opt(o({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:vr.Opt(vr.ListNode(vr.Mod(vr.ObjectNode(m({rolls:Or.Range({allowBinomial:!0,integer:!0}),bonus_rolls:vr.Opt(Or.Range({integer:!0})),entries:vr.ListNode(r("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:vr.Opt(vr.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",vr.Mod(vr.ObjectNode({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:vr.Opt(vr.Mod(vr.NumberNode({integer:!0,min:1}),p)),quality:vr.Opt(vr.Mod(vr.NumberNode({integer:!0}),p)),[vr.Switch]:[{push:"type"}],[vr.Case]:{"minecraft:alternatives":m({children:vr.ListNode(r("loot_entry"))},a),"minecraft:dynamic":m({name:o()},a),"minecraft:group":m({children:vr.ListNode(r("loot_entry"))},a),"minecraft:item":m({name:o({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":m({name:o({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":m({children:vr.ListNode(r("loot_entry"))},a),"minecraft:tag":m({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:vr.Opt(vr.BooleanNode())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",vr.Mod(vr.ObjectNode({function:s,[vr.Switch]:[{push:"function"}],[vr.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:vr.Mod(vr.ObjectNode({bonusMultiplier:vr.Mod(vr.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:vr.Mod(vr.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:vr.Mod(vr.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:d},"minecraft:copy_nbt":{source:d,ops:vr.ListNode(vr.ObjectNode({source:o({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:o({validator:"nbt_path",params:{category:"minecraft:item"}}),op:o({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:o({validator:"resource",params:{pool:"block"}}),properties:vr.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:vr.Opt(vr.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Or.Range({allowBinomial:!0}),treasure:vr.Opt(vr.BooleanNode())},"minecraft:exploration_map":{destination:vr.Opt(o({enum:"map_feature"})),decoration:vr.Opt(o({enum:"map_decoration"})),zoom:vr.Opt(vr.NumberNode({integer:!0})),search_radius:vr.Opt(vr.NumberNode({integer:!0})),skip_existing_chunks:vr.Opt(vr.BooleanNode())},"minecraft:fill_player_head":{entity:l},"minecraft:limit_count":{limit:Or.Range({bounds:!0})},"minecraft:looting_enchant":{count:Or.Range({bounds:!0}),limit:vr.Opt(vr.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:vr.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:vr.ListNode(r("loot_entry"))},"minecraft:set_count":{count:Or.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Or.Range({forceRange:!0})},"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:vr.Opt(vr.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:vr.Opt(l),lore:vr.ListNode(r("text_component")),replace:vr.Opt(vr.BooleanNode())},"minecraft:set_name":{entity:vr.Opt(l),name:vr.Opt(r("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:vr.Opt(vr.ListNode(vr.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:Or.Range()})))}},a={};return t.get("loot_function_type").forEach((t=>{a[t]=m(m({},e[t]),i)})),a})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",vr.Mod(vr.ObjectNode({condition:c,[vr.Switch]:[{push:"condition"}],[vr.Case]:_(m({},Or.ConditionCases),{"minecraft:entity_properties":{entity:l,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:l,scores:vr.MapNode(o({validator:"objective"}),Or.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",vr.Mod(vr.ObjectNode({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:Or.Range({bounds:!0}),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:vr.StringOrList(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var kr={};Object.defineProperty(kr,"__esModule",{value:!0}),kr.initPackMcmetaSchemas=void 0;const xr=Be;kr.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",xr.Mod(xr.ObjectNode({pack:xr.Mod(xr.ObjectNode({pack_format:xr.Mod(xr.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:xr.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var wr={};Object.defineProperty(wr,"__esModule",{value:!0}),wr.initPredicatesSchemas=void 0;const jr=Be,Sr=nr;wr.initPredicatesSchemas=function(e,t){const r=jr.Reference.bind(void 0,e),o=jr.StringNode.bind(void 0,t),i=jr.ChoiceNode([{type:"string",node:o(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:jr.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:jr.ObjectNode({min:jr.Opt(jr.NumberNode({integer:!0})),max:jr.Opt(jr.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:jr.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",jr.ObjectNode({item:jr.Opt(o({validator:"resource",params:{pool:"item"}})),tag:jr.Opt(o({validator:"resource",params:{pool:"$tag/item"}})),count:jr.Opt(Sr.Range()),durability:jr.Opt(Sr.Range()),potion:jr.Opt(o({validator:"resource",params:{pool:"potion"}})),nbt:jr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:jr.Opt(jr.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",jr.ObjectNode({enchantment:jr.Opt(o({validator:"resource",params:{pool:"enchantment"}})),levels:jr.Opt(Sr.Range())},{context:"enchantment"})),e.register("block_predicate",jr.ObjectNode({block:jr.Opt(o({validator:"resource",params:{pool:"block"}})),tag:jr.Opt(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:jr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:jr.Opt(jr.MapNode(o(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",jr.ObjectNode({fluid:jr.Opt(o({validator:"resource",params:{pool:"fluid"}})),tag:jr.Opt(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:jr.Opt(jr.MapNode(o(),i))},{context:"fluid"})),e.register("location_predicate",jr.ObjectNode({position:jr.Opt(jr.ObjectNode({x:jr.Opt(Sr.Range()),y:jr.Opt(Sr.Range()),z:jr.Opt(Sr.Range())})),biome:jr.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:jr.Opt(o({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:jr.Opt(o({validator:"resource",params:{pool:"$dimension"}})),light:jr.Opt(jr.ObjectNode({light:jr.Opt(Sr.Range({integer:!0,min:0,max:15}))})),smokey:jr.Opt(jr.BooleanNode()),block:jr.Opt(r("block_predicate")),fluid:jr.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",jr.ObjectNode({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:Sr.Range(),[jr.Switch]:[{push:"type"}],[jr.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",jr.ObjectNode({gamemode:jr.Opt(o({enum:"gamemode"})),level:jr.Opt(Sr.Range()),advancements:jr.Opt(jr.MapNode(o({validator:"resource",params:{pool:"$advancement"}}),jr.ChoiceNode([{type:"boolean",node:jr.BooleanNode(),change:e=>!0},{type:"object",node:jr.MapNode(o(),jr.BooleanNode())}]))),recipes:jr.Opt(jr.MapNode(o({validator:"resource",params:{pool:"$recipe"}}),jr.BooleanNode())),stats:jr.Opt(jr.ListNode(r("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",jr.ObjectNode({amplifier:jr.Opt(Sr.Range()),duration:jr.Opt(Sr.Range()),ambient:jr.Opt(jr.BooleanNode()),visible:jr.Opt(jr.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",jr.ObjectNode({x:jr.Opt(Sr.Range()),y:jr.Opt(Sr.Range()),z:jr.Opt(Sr.Range()),absolute:jr.Opt(Sr.Range()),horizontal:jr.Opt(Sr.Range())},{context:"distance"})),e.register("entity_predicate",jr.ObjectNode({type:jr.Opt(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:jr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:jr.Opt(o({validator:"team"})),location:jr.Opt(r("location_predicate")),distance:jr.Opt(r("distance_predicate")),flags:jr.Opt(jr.ObjectNode({is_on_fire:jr.Opt(jr.BooleanNode()),is_sneaking:jr.Opt(jr.BooleanNode()),is_sprinting:jr.Opt(jr.BooleanNode()),is_swimming:jr.Opt(jr.BooleanNode()),is_baby:jr.Opt(jr.BooleanNode())})),equipment:jr.Opt(jr.MapNode(o({enum:"slot"}),r("item_predicate"))),vehicle:jr.Opt(r("entity_predicate")),targeted_entity:jr.Opt(r("entity_predicate")),player:jr.Opt(r("player_predicate")),fishing_hook:jr.Opt(jr.ObjectNode({in_open_water:jr.Opt(jr.BooleanNode())})),effects:jr.Opt(jr.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",jr.ObjectNode({is_explosion:jr.Opt(jr.BooleanNode()),is_fire:jr.Opt(jr.BooleanNode()),is_magic:jr.Opt(jr.BooleanNode()),is_projectile:jr.Opt(jr.BooleanNode()),is_lightning:jr.Opt(jr.BooleanNode()),bypasses_armor:jr.Opt(jr.BooleanNode()),bypasses_invulnerability:jr.Opt(jr.BooleanNode()),bypasses_magic:jr.Opt(jr.BooleanNode()),source_entity:jr.Opt(r("entity_predicate")),direct_entity:jr.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",jr.ObjectNode({dealt:jr.Opt(Sr.Range()),taken:jr.Opt(Sr.Range()),blocked:jr.Opt(jr.BooleanNode()),source_entity:jr.Opt(r("entity_predicate")),type:jr.Opt(r("damage_source_predicate"))},{context:"damage"}))};var Mr={};Object.defineProperty(Mr,"__esModule",{value:!0}),Mr.initRecipeSchemas=void 0;const Cr=Be;Mr.initRecipeSchemas=function(e,t){const r=Cr.Reference.bind(void 0,e),o=Cr.StringNode.bind(void 0,t);e.register("recipe",Cr.Mod(Cr.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[Cr.Switch]:[{push:"type"}],[Cr.Case]:{"minecraft:crafting_shaped":{group:Cr.Opt(o({enum:"recipe_group",additional:!0})),pattern:Cr.ListNode(o()),key:Cr.MapNode(o(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Cr.Opt(o()),ingredients:Cr.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Cr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Cr.Opt(Cr.NumberNode()),cookingtime:Cr.Opt(Cr.Mod(Cr.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Cr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Cr.Opt(Cr.NumberNode()),cookingtime:Cr.Opt(Cr.Mod(Cr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Cr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Cr.Opt(Cr.NumberNode()),cookingtime:Cr.Opt(Cr.Mod(Cr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Cr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:Cr.Opt(Cr.NumberNode()),cookingtime:Cr.Opt(Cr.Mod(Cr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Cr.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:Cr.NumberNode({integer:!0})},"minecraft:smithing":{group:Cr.Opt(o()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Cr.Mod(Cr.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Cr.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Cr.Mod(Cr.ObjectNode({item:Cr.Opt(o({validator:"resource",params:{pool:"item"}})),tag:Cr.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Cr.Mod(Cr.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:Cr.Opt(Cr.Mod(Cr.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Pr={};Object.defineProperty(Pr,"__esModule",{value:!0}),Pr.initTagsSchemas=void 0;const Lr=Be;Pr.initTagsSchemas=function(e,t){const r=Lr.StringNode.bind(void 0,t),o=e=>Lr.Mod(Lr.ObjectNode({replace:Lr.Opt(Lr.BooleanNode()),values:Lr.ListNode(Lr.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Lr.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Lr.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("item_tag",o("item"))};var Br={};Object.defineProperty(Br,"__esModule",{value:!0}),Br.initTextComponentSchemas=void 0;const zr=Be;Br.initTextComponentSchemas=function(e,t){const r=zr.Reference.bind(void 0,e),o=zr.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",zr.Mod(zr.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:o(),change:i},{type:"number",node:zr.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:zr.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:zr.Opt(o()),font:zr.Opt(o()),bold:zr.Opt(zr.BooleanNode()),italic:zr.Opt(zr.BooleanNode()),underlined:zr.Opt(zr.BooleanNode()),strikethrough:zr.Opt(zr.BooleanNode()),obfuscated:zr.Opt(zr.BooleanNode()),insertion:zr.Opt(o()),clickEvent:zr.Opt(zr.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[zr.Switch]:[{push:"action"}],[zr.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:zr.Opt(zr.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[zr.Switch]:[{push:"action"}],[zr.Case]:{show_text:{value:zr.Opt(r("text_component")),contents:zr.Opt(r("text_component"))},show_item:{value:zr.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:zr.Opt(zr.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:zr.Opt(zr.NumberNode({integer:!0})),tag:zr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:zr.Opt(zr.ObjectNode({name:zr.Opt(o()),type:zr.Opt(o()),id:zr.Opt(o())})),contents:zr.Opt(zr.Mod(zr.ObjectNode({name:zr.Opt(r("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:zr.Opt(r("text_component_list"))};e.register("text_component_object",zr.Mod(zr.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:zr.ObjectNode(m({text:o()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:zr.ObjectNode(m({translate:o(),with:zr.Opt(r("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:zr.ObjectNode(m({score:zr.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:zr.Opt(o())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:zr.ObjectNode(m({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}})},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:zr.ObjectNode(m({keybind:o({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:zr.ObjectNode(m({nbt:o({validator:"nbt_path"}),block:zr.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:zr.Opt(o({validator:"entity",params:{amount:"single",type:"entities"}})),storage:zr.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:zr.Opt(zr.BooleanNode())},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",zr.Mod(zr.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var Rr={},Ar={};Object.defineProperty(Ar,"__esModule",{value:!0}),Ar.initBiomeSchemas=void 0;const $r=Be;Ar.initBiomeSchemas=function(e,t){const r=$r.StringNode.bind(void 0,t);e.register("biome",$r.Mod($r.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:$r.NumberNode(),scale:$r.NumberNode(),temperature:$r.NumberNode(),downfall:$r.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:$r.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:$r.Opt($r.BooleanNode()),creature_spawn_probability:$r.Opt($r.NumberNode({min:0,max:1})),effects:$r.ObjectNode({sky_color:$r.NumberNode({color:!0}),fog_color:$r.NumberNode({color:!0}),water_color:$r.NumberNode({color:!0}),water_fog_color:$r.NumberNode({color:!0}),grass_color:$r.Opt($r.NumberNode({color:!0})),foliage_color:$r.Opt($r.NumberNode({color:!0})),grass_color_modifier:$r.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:$r.Opt(r()),mood_sound:$r.Opt($r.ObjectNode({sound:r(),tick_delay:$r.NumberNode({integer:!0}),block_search_extent:$r.NumberNode({integer:!0}),offset:$r.NumberNode()})),additions_sound:$r.Opt($r.ObjectNode({sound:r(),tick_chance:$r.NumberNode({min:0,max:1})})),music:$r.Opt($r.ObjectNode({sound:r(),min_delay:$r.NumberNode({integer:!0,min:0}),max_delay:$r.NumberNode({integer:!0,min:0}),replace_current_music:$r.BooleanNode()})),particle:$r.Opt($r.ObjectNode({options:$r.ObjectNode({type:r()}),probability:$r.NumberNode({min:0,max:1})}))}),starts:$r.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:$r.MapNode(r({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),$r.Mod($r.ListNode($r.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:$r.NumberNode({integer:!0}),minCount:$r.NumberNode({integer:!0}),maxCount:$r.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:$r.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),$r.Mod($r.ObjectNode({energy_budget:$r.NumberNode(),charge:$r.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:$r.MapNode(r({enum:["air","liquid"]}),$r.Mod($r.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:$r.ListNode($r.Mod($r.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var Tr={};Object.defineProperty(Tr,"__esModule",{value:!0}),Tr.initCarverSchemas=void 0;const qr=Be;Tr.initCarverSchemas=function(e,t){const r=qr.StringNode.bind(void 0,t);e.register("configured_carver",qr.Mod(qr.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:qr.ObjectNode({probability:qr.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Dr={};Object.defineProperty(Dr,"__esModule",{value:!0}),Dr.initDecoratorSchemas=void 0;const Ir=Be,Fr=nr;Dr.initDecoratorSchemas=function(e,t){const r=Ir.Reference.bind(void 0,e),o=Ir.StringNode.bind(void 0,t),i={maximum:Ir.NumberNode({integer:!0}),bottom_offset:Ir.NumberNode({integer:!0}),top_offset:Ir.NumberNode({integer:!0})},a={chance:Ir.NumberNode({integer:!0,min:0})},n={count:Fr.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",Ir.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/decorator"}}),config:Ir.ObjectNode({[Ir.Switch]:["pop",{push:"type"}],[Ir.Case]:{"minecraft:carving_mask":{step:o({enum:"generation_step"}),probability:Ir.NumberNode({min:0,max:1})},"minecraft:chance":a,"minecraft:count":n,"minecraft:count_extra":{count:Ir.NumberNode({integer:!0,min:0}),extra_count:Ir.NumberNode({integer:!0,min:0}),extra_chance:Ir.NumberNode({min:0,max:1})},"minecraft:count_multilayer":n,"minecraft:count_noise":{noise_level:Ir.NumberNode(),below_noise:Ir.NumberNode({integer:!0}),above_noise:Ir.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:Ir.NumberNode({integer:!0}),noise_factor:Ir.NumberNode(),noise_offset:Ir.Opt(Ir.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:depth_average":{baseline:Ir.NumberNode({integer:!0}),spread:Ir.NumberNode({integer:!0})},"minecraft:fire":n,"minecraft:glowstone":n,"minecraft:lava_lake":a,"minecraft:range":i,"minecraft:range_biased":i,"minecraft:range_very_biased":i,"minecraft:water_lake":a}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var Er={},Ur={};Object.defineProperty(Ur,"__esModule",{value:!0}),Ur.initProcessorListSchemas=void 0;const Wr=Be;Ur.initProcessorListSchemas=function(e,t){const r=Wr.Reference.bind(void 0,e),o=Wr.StringNode.bind(void 0,t);e.register("processor_list",Wr.Mod(Wr.ObjectNode({processors:Wr.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",Wr.Mod(Wr.ObjectNode({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Wr.Switch]:[{push:"processor_type"}],[Wr.Case]:{"minecraft:block_age":{mossiness:Wr.NumberNode()},"minecraft:block_ignore":{blocks:Wr.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:Wr.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:Wr.NumberNode({integer:!0})},"minecraft:rule":{rules:Wr.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",Wr.Mod(Wr.ObjectNode({position_predicate:Wr.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Wr.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const i={min_dist:Wr.NumberNode({min:0,max:255,integer:!0}),max_dist:Wr.NumberNode({min:0,max:255,integer:!0}),min_chance:Wr.NumberNode({min:0,max:1}),max_chance:Wr.NumberNode({min:0,max:1})};e.register("pos_rule_test",Wr.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[Wr.Switch]:[{push:"predicate_type"}],[Wr.Case]:{"minecraft:axis_aligned_linear_pos":m({axis:o({enum:["x","y","z"]})},i),"minecraft:linear_pos":i}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Wr.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[Wr.Switch]:[{push:"predicate_type"}],[Wr.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:Wr.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Wr.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Er,"__esModule",{value:!0}),Er.initFeatureSchemas=void 0;const Hr=Be,Kr=nr;Er.initFeatureSchemas=function(e,t){const r=Hr.Reference.bind(void 0,e),o=Hr.StringNode.bind(void 0,t),i={can_replace:Hr.BooleanNode(),project:Hr.BooleanNode(),need_water:Hr.BooleanNode(),xspread:Hr.NumberNode({integer:!0}),yspread:Hr.NumberNode({integer:!0}),zspread:Hr.NumberNode({integer:!0}),tries:Hr.NumberNode({integer:!0}),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:Hr.ListNode(r("block_state")),blacklist:Hr.ListNode(r("block_state"))},a={state:r("block_state"),radius:Kr.UniformInt({min:0,max:4,maxSpread:4}),half_height:Hr.NumberNode({integer:!0,min:0,max:4}),targets:Hr.ListNode(r("block_state"))},n={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:Hr.Opt(Hr.NumberNode({integer:!0}))},c={state:r("block_state"),size:Hr.NumberNode({integer:!0,min:0,max:64}),target:r("rule_test")},s={count:Kr.UniformInt({min:-10,max:128,maxSpread:128})},l=Hr.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",Hr.Mod(Hr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:Hr.ObjectNode({[Hr.Switch]:["pop",{push:"type"}],[Hr.Case]:{"minecraft:bamboo":{probability:Hr.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:Kr.UniformInt({min:0,max:2,maxSpread:1}),height:Kr.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:Kr.UniformInt({min:0,max:8,maxSpread:8}),rim_size:Kr.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":a,"minecraft:emerald_ore":{state:r("block_state"),target:r("block_state")},"minecraft:end_gateway":{exact:Hr.BooleanNode(),exit:Hr.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Hr.Opt(Hr.BooleanNode()),crystal_beam_target:Hr.Opt(r("block_pos")),spikes:Hr.ListNode(Hr.ObjectNode({centerX:Hr.Opt(Hr.NumberNode({integer:!0})),centerZ:Hr.Opt(Hr.NumberNode({integer:!0})),radius:Hr.Opt(Hr.NumberNode({integer:!0})),height:Hr.Opt(Hr.NumberNode({integer:!0})),guarded:Hr.Opt(Hr.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:Hr.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":i,"minecraft:forest_rock":{state:r("block_state")},"minecraft:huge_brown_mushroom":n,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:Hr.Opt(Hr.BooleanNode())},"minecraft:huge_red_mushroom":n,"minecraft:ice_patch":a,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:Kr.UniformInt()},"minecraft:no_bonemeal_flower":i,"minecraft:no_surface_ore":c,"minecraft:ore":c,"minecraft:random_patch":i,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:Hr.ListNode(Hr.ObjectNode({chance:Hr.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":s,"minecraft:seagrass":{probability:Hr.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state"),place_on:Hr.ListNode(r("block_state")),place_in:Hr.ListNode(r("block_state")),place_under:Hr.ListNode(r("block_state"))},"minecraft:simple_random_selector":{features:Hr.ListNode(l)},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:Hr.NumberNode({integer:!0}),hole_count:Hr.NumberNode({integer:!0}),requires_block_below:Hr.BooleanNode(),valid_blocks:Hr.ListNode(o({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:Hr.NumberNode({integer:!0}),ignore_vines:Hr.BooleanNode(),heightmap:o({enum:"heightmap_type"}),minimum_size:r("feature_size"),trunk_provider:r("block_state_provider"),leaves_provider:r("block_state_provider"),trunk_placer:Hr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Hr.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Hr.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Hr.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:Hr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:Kr.UniformInt({min:0,max:8,maxSpread:8}),offset:Kr.UniformInt({min:0,max:8,maxSpread:8}),[Hr.Switch]:[{push:"type"}],[Hr.Case]:{"minecraft:blob_foliage_placer":{height:Hr.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Hr.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Hr.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Hr.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:Kr.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:Kr.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:Kr.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Hr.ListNode(Hr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Hr.Switch]:[{push:"type"}],[Hr.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:Hr.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Hr.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))}}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",Hr.Mod(Hr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Hr.Opt(Hr.NumberNode({min:0,max:80})),[Hr.Switch]:[{push:"type"}],[Hr.Case]:{"minecraft:two_layers_feature_size":{limit:Hr.Opt(Hr.NumberNode({integer:!0,min:0,max:81})),lower_size:Hr.Opt(Hr.NumberNode({integer:!0,min:0,max:16})),upper_size:Hr.Opt(Hr.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Hr.Opt(Hr.NumberNode({integer:!0,min:0,max:80})),upper_limit:Hr.Opt(Hr.NumberNode({integer:!0,min:0,max:80})),lower_size:Hr.Opt(Hr.NumberNode({integer:!0,min:0,max:16})),middle_size:Hr.Opt(Hr.NumberNode({integer:!0,min:0,max:16})),upper_size:Hr.Opt(Hr.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",Hr.Mod(Hr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Hr.Switch]:[{push:"type"}],[Hr.Case]:{"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:Hr.ListNode(Hr.Mod(Hr.ObjectNode({weight:Hr.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",Hr.Mod(Hr.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[Hr.Switch]:[{push:"type"}],[Hr.Case]:{"minecraft:column_placer":{min_size:Hr.NumberNode({integer:!0}),extra_size:Hr.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var Vr={};Object.defineProperty(Vr,"__esModule",{value:!0}),Vr.initNoiseSettingsSchemas=void 0;const Gr=Be,Xr=nr;Vr.initNoiseSettingsSchemas=function(e,t){const r=Gr.Reference.bind(void 0,e),o=Gr.StringNode.bind(void 0,t);e.register("noise_settings",Gr.Mod(Gr.ObjectNode({name:Gr.Mod(o({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:Gr.NumberNode({integer:!0}),bedrock_floor_position:Gr.NumberNode({integer:!0}),sea_level:Gr.NumberNode({integer:!0}),disable_mob_generation:Gr.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:Gr.ObjectNode({height:Gr.NumberNode({integer:!0}),density_factor:Gr.NumberNode(),density_offset:Gr.NumberNode(),size_horizontal:Gr.NumberNode({integer:!0}),size_vertical:Gr.NumberNode({integer:!0}),simplex_surface_noise:Gr.BooleanNode(),random_density_offset:Gr.Opt(Gr.BooleanNode()),island_noise_override:Gr.Opt(Gr.BooleanNode()),amplified:Gr.Opt(Gr.BooleanNode()),sampling:Gr.ObjectNode({xz_scale:Gr.NumberNode(),y_scale:Gr.NumberNode(),xz_factor:Gr.NumberNode(),y_factor:Gr.NumberNode()}),bottom_slide:Gr.ObjectNode({target:Gr.NumberNode({integer:!0}),size:Gr.NumberNode({integer:!0}),offset:Gr.NumberNode({integer:!0})}),top_slide:Gr.ObjectNode({target:Gr.NumberNode({integer:!0}),size:Gr.NumberNode({integer:!0}),offset:Gr.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),{default:()=>Xr.DefaultNoiseSettings})),e.register("generator_structures",Gr.ObjectNode({stronghold:Gr.Opt(Gr.ObjectNode({distance:Gr.NumberNode({integer:!0,min:0,max:1023}),spread:Gr.NumberNode({integer:!0,min:0,max:1023}),count:Gr.NumberNode({integer:!0,min:1,max:4095})})),structures:Gr.MapNode(o({validator:"resource",params:{pool:"worldgen/structure_feature"}}),Gr.Mod(Gr.ObjectNode({spacing:Gr.NumberNode({integer:!0,min:0,max:4096}),separation:Gr.Mod(Gr.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,o,i)=>(t.pop().push("spacing").get()<=r&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,r,o,i))}))),salt:Gr.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",Gr.Mod(Gr.ObjectNode({block:o({validator:"resource",params:{pool:"block"}}),height:Gr.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var Jr={};Object.defineProperty(Jr,"__esModule",{value:!0}),Jr.initStructureFeatureSchemas=void 0;const Zr=Be;Jr.initStructureFeatureSchemas=function(e,t){const r=Zr.StringNode.bind(void 0,t),o={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:Zr.NumberNode({integer:!0})};e.register("configured_structure_feature",Zr.Mod(Zr.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:Zr.ObjectNode({[Zr.Switch]:["pop",{push:"type"}],[Zr.Case]:{"minecraft:bastion_remnant":o,"minecraft:buried_treasure":{probability:Zr.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:Zr.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:Zr.NumberNode({min:0,max:1}),cluster_probability:Zr.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":o,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:Zr.Opt(Zr.BooleanNode())},"minecraft:village":o}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var Yr={};Object.defineProperty(Yr,"__esModule",{value:!0}),Yr.initSurfaceBuilderSchemas=void 0;const Qr=Be;Yr.initSurfaceBuilderSchemas=function(e,t){const r=Qr.StringNode.bind(void 0,t),o=Qr.Reference.bind(void 0,e);e.register("configured_surface_builder",Qr.Mod(Qr.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:Qr.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var eo={};Object.defineProperty(eo,"__esModule",{value:!0}),eo.initTemplatePoolSchemas=void 0;const to=Be;eo.initTemplatePoolSchemas=function(e,t){const r=to.Reference.bind(void 0,e),o=to.StringNode.bind(void 0,t),i=to.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",to.Mod(to.ObjectNode({name:o(),fallback:o(),elements:to.ListNode(r("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",to.Mod(to.ObjectNode({weight:to.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",to.Mod(to.ObjectNode({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[to.Switch]:[{push:"element_type"}],[to.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:i},"minecraft:list_pool_element":{elements:to.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:i}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Rr,"__esModule",{value:!0}),Rr.initWorldgenSchemas=void 0;const ro=Ar,oo=Tr,io=Dr,ao=Er,no=Vr,co=Ur,so=Jr,lo=Yr,mo=eo;Rr.initWorldgenSchemas=function(e,t){ro.initBiomeSchemas(e,t),oo.initCarverSchemas(e,t),io.initDecoratorSchemas(e,t),ao.initFeatureSchemas(e,t),no.initNoiseSettingsSchemas(e,t),co.initProcessorListSchemas(e,t),so.initStructureFeatureSchemas(e,t),lo.initSurfaceBuilderSchemas(e,t),mo.initTemplatePoolSchemas(e,t)};var _o={};Object.defineProperty(_o,"__esModule",{value:!0}),_o.initWorldSettingsSchemas=void 0;const po=Be;_o.initWorldSettingsSchemas=function(e,t){const r=po.Reference.bind(void 0,e),o=po.StringNode.bind(void 0,t);e.register("world_settings",po.Mod(po.ObjectNode({generate_features:po.BooleanNode(),bonus_chest:po.BooleanNode(),seed:po.NumberNode({integer:!0}),dimensions:po.MapNode(o({validator:"resource",params:{pool:"$dimension"}}),r("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(ir,"__esModule",{value:!0}),ir.initSchemas=void 0;const uo=ar,fo=nr,go=lr,bo=_r,ho=fr,yo=hr,vo=kr,No=wr,Oo=Mr,ko=Pr,xo=Br,wo=Rr,jo=_o;ir.initSchemas=function(e,t){fo.initCommonSchemas(e,t),uo.initAdvancementSchemas(e,t),go.initConditionSchemas(e,t),ho.initDimensionTypeSchemas(e,t),bo.initDimensionSchemas(e,t),yo.initLootTableSchemas(e,t),vo.initPackMcmetaSchemas(e,t),No.initPredicatesSchemas(e,t),Oo.initRecipeSchemas(e,t),ko.initTagsSchemas(e,t),xo.initTextComponentSchemas(e,t),wo.initWorldgenSchemas(e,t),jo.initWorldSettingsSchemas(e,t)};var So=Pe&&Pe.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),Mo=Pe&&Pe.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Co=Pe&&Pe.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&So(t,e,r);return Mo(t,e),t};Object.defineProperty(rr,"__esModule",{value:!0});var Po=rr.getSchemas=rr.getCollections=void 0;const Lo=Be,Bo=or,zo=ir;var Ro=rr.lootContext=Co(yr);var Ao=rr.getCollections=function(){const e=new Lo.CollectionRegistry;return Bo.initCollections(e),e};Po=rr.getSchemas=function(e){const t=new Lo.SchemaRegistry;return zo.initSchemas(t,e),t};var $o=Object.freeze(Object.assign(Object.create(null),rr,{[Symbol.toStringTag]:"Module",get getSchemas(){return Po},get getCollections(){return Ao},lootContext:Ro,default:rr})),To={},qo={};Object.defineProperty(qo,"__esModule",{value:!0}),qo.initCollections=void 0,qo.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"])};var Do={},Io={};Object.defineProperty(Io,"__esModule",{value:!0}),Io.initAdvancementSchemas=void 0;const Fo=Be;Io.initAdvancementSchemas=function(e,t){const r=Fo.Reference.bind(void 0,e),o=Fo.StringNode.bind(void 0,t),i=Fo.ChoiceNode([{type:"object",node:Fo.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:Fo.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Fo.Mod(Fo.ObjectNode({display:Fo.Opt(Fo.Mod(Fo.ObjectNode({icon:Fo.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:Fo.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Fo.Opt(o()),frame:Fo.Opt(o({enum:["task","challenge","goal"]})),show_toast:Fo.Opt(Fo.BooleanNode()),announce_to_chat:Fo.Opt(Fo.BooleanNode()),hidden:Fo.Opt(Fo.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Fo.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:Fo.MapNode(o(),r("advancement_criteria")),requirements:Fo.Opt(Fo.ListNode(Fo.ListNode(o()))),rewards:Fo.Opt(Fo.ObjectNode({function:Fo.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:Fo.Opt(Fo.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Fo.Opt(Fo.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:Fo.Opt(Fo.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Fo.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Fo.Opt(Fo.ObjectNode({player:Fo.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Fo.Switch]:["pop",{push:"trigger"}],[Fo.Case]:{"minecraft:bee_nest_destroyed":{block:Fo.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:Fo.Opt(Fo.NumberNode({integer:!0})),item:Fo.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:Fo.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Fo.Opt(o({validator:"resource",params:{pool:"$dimension"}})),to:Fo.Opt(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Fo.Opt(Fo.ListNode(i))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:Fo.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:Fo.Opt(Fo.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),Fo.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:Fo.Opt(i)},"minecraft:enter_block":{block:Fo.Opt(o({validator:"resource",params:{pool:"block"}})),state:Fo.Opt(Fo.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:Fo.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Fo.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:Fo.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:Fo.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:Fo.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:Fo.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:Fo.Opt(Fo.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:Fo.Opt(Fo.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:Fo.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:Fo.Opt(r("item_predicate")),location:Fo.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:Fo.Opt(Fo.ListNode(i))},"minecraft:levitation":{distance:r("distance_predicate"),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:i,bystander:i},"minecraft:location":{location:Fo.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:r("distance_predicate"),entered:Fo.Opt(r("location_predicate")),exited:Fo.Opt(r("location_predicate"))},"minecraft:placed_block":{block:Fo.Opt(o({validator:"resource",params:{pool:"block"}})),state:Fo.Opt(Fo.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Fo.Opt(r("item_predicate")),location:Fo.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Fo.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:Fo.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:Fo.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:Fo.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:Fo.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Fo.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:r("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:Fo.Opt(r("entity_predicate")),item:Fo.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:r("float_bounds")},"minecraft:used_totem":{item:Fo.Opt(r("item_predicate"))},"minecraft:using_item":{item:Fo.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Fo.Opt(r("entity_predicate")),item:Fo.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Eo={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Be;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(r,o){const i=t.StringNode.bind(void 0,o),a=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const n=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,r;return void 0===e?0:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));r.register("int_bounds",n(!0)),r.register("float_bounds",n()),r.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(a("number_provider")),max:t.Opt(a("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,r,o,a,n,c,s)=>{let l={};n&&Object.keys(s[n]).forEach((e=>{l[e]=t.Mod(s[n][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(m({type:t.Mod(t.Opt(i({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:s},l),{context:c,disableSwitchContext:!0}),_=[{type:r,node:s[a][o]}];return n&&_.push({type:"object",priority:-1,node:d}),Object.keys(s).forEach((e=>{_.push({type:e,match:t=>{var r;if("minecraft:"+(null===(r=null==t?void 0:t.type)||void 0===r?void 0:r.replace(/^minecraft:/,""))===e)return!0;const o=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==o?void 0:o.length)||1===(null==o?void 0:o.length)&&"type"===(null==o?void 0:o[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(_,{context:c,choiceContext:`${c}.type`})};r.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:a("number_provider"),max:a("number_provider")},"minecraft:binomial":{n:a("number_provider"),p:a("number_provider")},"minecraft:score":{target:a("scoreboard_name_provider"),score:i({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),r.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:i({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(i({enum:"entity_source"}),{default:()=>"this"})}})),r.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:i({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(i({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),r.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(m({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(m({integer:!0},e)),max_inclusive:t.NumberNode(m({integer:!0},e)),source:a("int_provider")})}}),r.register("int_provider",e.IntProvider()),r.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var r,o,i;return{[e]:null!==(i=null!==(o=null!==(r=t.absolute)&&void 0!==r?r:t.above_bottom)&&void 0!==o?o:t.below_top)&&void 0!==i?i:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),r.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:a("vertical_anchor")},"minecraft:uniform":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.ConditionCases=(e=i({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(i({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,r=i({enum:"copy_source"}),n=i({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),formula:i({validator:"resource",params:{pool:o.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:r},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:i({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:i({validator:"nbt_path",params:{category:"minecraft:item"}}),op:i({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(i({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(i({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(i({enum:"map_feature"})),decoration:t.Opt(i({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:n},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:i({enum:"banner_pattern"}),color:i({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{entries:t.ListNode(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(i({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{name:i({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(n),lore:t.ListNode(a("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(n),name:t.Opt(a("text_component"))},"minecraft:set_nbt":{tag:i({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:i({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},s={};return o.get("loot_function_type").forEach((t=>{s[t]=m(m({},c[t]),e)})),s},e.DimensionTypePresets=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$dimension_type"}}),r,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),r,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(Eo);var Uo={};Object.defineProperty(Uo,"__esModule",{value:!0}),Uo.initConditionSchemas=void 0;const Wo=Be,Ho=Eo;Uo.initConditionSchemas=function(e,t){const r=Wo.Reference.bind(void 0,e),o=Wo.StringNode.bind(void 0,t);e.register("predicate",Wo.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Wo.Mod(Wo.ObjectNode({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[Wo.Switch]:[{push:"condition"}],[Wo.Case]:Ho.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Ko={};Object.defineProperty(Ko,"__esModule",{value:!0}),Ko.initDimensionSchemas=void 0;const Vo=Be,Go=Eo;Ko.initDimensionSchemas=function(e,t){const r=Vo.Reference.bind(void 0,e),o=Vo.StringNode.bind(void 0,t),i=e=>Vo.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Vo.Mod(Vo.ObjectNode({type:Go.DimensionTypePresets(r("dimension_type")),generator:Vo.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Vo.Switch]:[{push:"type"}],[Vo.Case]:{"minecraft:noise":{seed:Vo.NumberNode({integer:!0}),settings:Go.NoiseSettingsPresets(r("noise_settings")),biome_source:Vo.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Vo.Switch]:[{push:"type"}],[Vo.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Vo.NumberNode({integer:!0}),preset:Vo.Opt(o({enum:["nether"]})),altitude_noise:i(r("generator_biome_noise")),temperature_noise:i(r("generator_biome_noise")),humidity_noise:i(r("generator_biome_noise")),weirdness_noise:i(r("generator_biome_noise")),biomes:i(Vo.Mod(Vo.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Vo.Opt(Vo.NumberNode({integer:!0,min:0,max:62})),biomes:Vo.ListNode(o({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Vo.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Vo.NumberNode({integer:!0}),large_biomes:Vo.Opt(Vo.BooleanNode()),legacy_biome_init_layer:Vo.Opt(Vo.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Vo.ObjectNode({biome:Vo.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Vo.Opt(Vo.BooleanNode()),features:Vo.Opt(Vo.BooleanNode()),layers:Vo.ListNode(r("generator_layer")),structures:r("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",Vo.Mod(Vo.ObjectNode({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Vo.ObjectNode({altitude:Vo.NumberNode(),temperature:Vo.NumberNode(),humidity:Vo.NumberNode(),weirdness:Vo.NumberNode(),offset:Vo.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Vo.Mod(Vo.ObjectNode({firstOctave:Vo.NumberNode({integer:!0}),amplitudes:Vo.ListNode(Vo.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Xo={};Object.defineProperty(Xo,"__esModule",{value:!0}),Xo.initDimensionTypeSchemas=void 0;const Jo=Be,Zo=Eo;Xo.initDimensionTypeSchemas=function(e,t){const r=Jo.StringNode.bind(void 0,t);e.register("dimension_type",Jo.Mod(Jo.ObjectNode({name:Jo.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Jo.BooleanNode(),natural:Jo.BooleanNode(),piglin_safe:Jo.BooleanNode(),respawn_anchor_works:Jo.BooleanNode(),bed_works:Jo.BooleanNode(),has_raids:Jo.BooleanNode(),has_skylight:Jo.BooleanNode(),has_ceiling:Jo.BooleanNode(),coordinate_scale:Jo.NumberNode({min:1e-5,max:3e7}),ambient_light:Jo.NumberNode(),fixed_time:Jo.Opt(Jo.NumberNode({integer:!0})),logical_height:Jo.NumberNode({integer:!0,min:0,max:4096}),effects:Jo.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:Jo.NumberNode({integer:!0,min:-2048,max:2047}),height:Jo.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Zo.DefaultDimensionType,validate:(t,r,o,i)=>((null==(r=e.validate(t,r,o,i))?void 0:r.min_y)+(null==r?void 0:r.height)>2047&&o.add(t.push("height"),"error.min_y_plus_height",2047),(null==r?void 0:r.logical_height)>(null==r?void 0:r.height)&&o.add(t.push("logical_height"),"error.logical_height"),(null==r?void 0:r.height)%16!=0&&o.add(t.push("height"),"error.height_multiple",16),(null==r?void 0:r.min_y)%16!=0&&o.add(t.push("min_y"),"error.min_y_multiple",16),r)}))))};var Yo={};Object.defineProperty(Yo,"__esModule",{value:!0}),Yo.initItemModifierSchemas=void 0;const Qo=Be,ei=Eo;Yo.initItemModifierSchemas=function(e,t){const r=Qo.Reference.bind(void 0,e),o=Qo.StringNode.bind(void 0,t);e.register("item_modifier",Qo.ObjectOrList(r("function"),{choiceContext:"function"}));const i={conditions:Qo.Opt(Qo.ListNode(r("condition")))};e.register("function",Qo.Mod(Qo.ObjectNode({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[Qo.Switch]:[{push:"function"}],[Qo.Case]:ei.FunctionCases(i)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var ti={},ri={};Object.defineProperty(ri,"__esModule",{value:!0}),ri.LootFunctions=ri.LootConditions=ri.LootCopySources=ri.LootEntitySources=ri.LootTableTypes=void 0,ri.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),ri.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),ri.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),ri.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),ri.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(ti,"__esModule",{value:!0}),ti.initLootTableSchemas=void 0;const oi=Be,ii=ri,ai=Eo;ti.initLootTableSchemas=function(e,t){const r=oi.Reference.bind(void 0,e),o=oi.StringNode.bind(void 0,t),i={conditions:oi.Opt(oi.ListNode(r("loot_condition")))},a=m({functions:oi.Opt(oi.ListNode(r("loot_function")))},i);function n(e,r,o){const i=[],a=o=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>o.includes(e)))}));for(const[t,{allows:n,requires:c}]of ii.LootTableTypes){const e=[...n,...c];i.push({match:e=>e.getModel().get(new oi.Path(["type"]))===t,node:o(a(e))})}return i.push({match:e=>!0,node:o(r)}),oi.SwitchNode(i)}const c=n(ii.LootConditions,"loot_condition_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),s=n(ii.LootFunctions,"loot_function_type",(e=>o({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),l=n(ii.LootEntitySources,"entity_source",(e=>o({enum:e}))),d=n(ii.LootCopySources,"copy_source",(e=>o({enum:e})));e.register("loot_table",oi.Mod(oi.ObjectNode({type:oi.Opt(o({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:oi.Opt(oi.ListNode(oi.Mod(oi.ObjectNode(m({rolls:r("number_provider"),bonus_rolls:oi.Opt(r("number_provider")),entries:oi.ListNode(r("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:oi.Opt(oi.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",oi.Mod(oi.ObjectNode({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:oi.Opt(oi.Mod(oi.NumberNode({integer:!0,min:1}),_)),quality:oi.Opt(oi.Mod(oi.NumberNode({integer:!0}),_)),[oi.Switch]:[{push:"type"}],[oi.Case]:{"minecraft:alternatives":m({children:oi.ListNode(r("loot_entry"))},a),"minecraft:dynamic":m({name:o()},a),"minecraft:group":m({children:oi.ListNode(r("loot_entry"))},a),"minecraft:item":m({name:o({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":m({name:o({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":m({children:oi.ListNode(r("loot_entry"))},a),"minecraft:tag":m({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:oi.Opt(oi.BooleanNode())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",oi.Mod(oi.ObjectNode({function:s,[oi.Switch]:[{push:"function"}],[oi.Case]:ai.FunctionCases(i,d,l)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",oi.Mod(oi.ObjectNode({condition:c,[oi.Switch]:[{push:"condition"}],[oi.Case]:ai.ConditionCases(l)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",oi.Mod(oi.ObjectNode({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:r("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),slot:oi.StringOrList(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var ni={};Object.defineProperty(ni,"__esModule",{value:!0}),ni.initPackMcmetaSchemas=void 0;const ci=Be;ni.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",ci.Mod(ci.ObjectNode({pack:ci.Mod(ci.ObjectNode({pack_format:ci.Mod(ci.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:ci.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var si={};Object.defineProperty(si,"__esModule",{value:!0}),si.initPredicatesSchemas=void 0;const li=Be;si.initPredicatesSchemas=function(e,t){const r=li.Reference.bind(void 0,e),o=li.StringNode.bind(void 0,t),i=li.ChoiceNode([{type:"string",node:o(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:li.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:li.ObjectNode({min:li.Opt(li.NumberNode({integer:!0})),max:li.Opt(li.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:li.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",li.ObjectNode({items:li.Opt(li.ListNode(o({validator:"resource",params:{pool:"item"}}))),tag:li.Opt(o({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:li.Opt(o({validator:"resource",params:{pool:"potion"}})),nbt:li.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:li.Opt(li.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",li.ObjectNode({enchantment:li.Opt(o({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",li.ObjectNode({blocks:li.Opt(li.ListNode(o({validator:"resource",params:{pool:"block"}}))),tag:li.Opt(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:li.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:li.Opt(li.MapNode(o(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",li.ObjectNode({fluid:li.Opt(o({validator:"resource",params:{pool:"fluid"}})),tag:li.Opt(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:li.Opt(li.MapNode(o(),i))},{context:"fluid"})),e.register("location_predicate",li.ObjectNode({position:li.Opt(li.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:li.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:li.Opt(o({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:li.Opt(o({validator:"resource",params:{pool:"$dimension"}})),light:li.Opt(li.ObjectNode({light:r("int_bounds")})),smokey:li.Opt(li.BooleanNode()),block:li.Opt(r("block_predicate")),fluid:li.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",li.ObjectNode({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:r("int_bounds"),[li.Switch]:[{push:"type"}],[li.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",li.ObjectNode({gamemode:li.Opt(o({enum:"gamemode"})),level:r("int_bounds"),advancements:li.Opt(li.MapNode(o({validator:"resource",params:{pool:"$advancement"}}),li.ChoiceNode([{type:"boolean",node:li.BooleanNode(),change:e=>!0},{type:"object",node:li.MapNode(o(),li.BooleanNode())}]))),recipes:li.Opt(li.MapNode(o({validator:"resource",params:{pool:"$recipe"}}),li.BooleanNode())),stats:li.Opt(li.ListNode(r("statistic_predicate"))),looking_at:li.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",li.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:li.Opt(li.BooleanNode()),visible:li.Opt(li.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",li.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds"),absolute:r("float_bounds"),horizontal:r("float_bounds")},{context:"distance"})),e.register("entity_predicate",li.ObjectNode({type:li.Opt(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:li.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:li.Opt(o({validator:"team"})),location:li.Opt(r("location_predicate")),stepping_on:li.Opt(r("location_predicate")),distance:li.Opt(r("distance_predicate")),flags:li.Opt(li.ObjectNode({is_on_fire:li.Opt(li.BooleanNode()),is_sneaking:li.Opt(li.BooleanNode()),is_sprinting:li.Opt(li.BooleanNode()),is_swimming:li.Opt(li.BooleanNode()),is_baby:li.Opt(li.BooleanNode())})),equipment:li.Opt(li.MapNode(o({enum:"slot"}),r("item_predicate"))),player:li.Opt(r("player_predicate")),vehicle:li.Opt(r("entity_predicate")),passenger:li.Opt(r("entity_predicate")),targeted_entity:li.Opt(r("entity_predicate")),lightning_bolt:li.Opt(li.ObjectNode({blocks_set_on_fire:li.Opt(r("int_bounds")),entity_struck:li.Opt(r("entity_predicate"))})),fishing_hook:li.Opt(li.ObjectNode({in_open_water:li.Opt(li.BooleanNode())})),effects:li.Opt(li.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",li.ObjectNode({is_explosion:li.Opt(li.BooleanNode()),is_fire:li.Opt(li.BooleanNode()),is_magic:li.Opt(li.BooleanNode()),is_projectile:li.Opt(li.BooleanNode()),is_lightning:li.Opt(li.BooleanNode()),bypasses_armor:li.Opt(li.BooleanNode()),bypasses_invulnerability:li.Opt(li.BooleanNode()),bypasses_magic:li.Opt(li.BooleanNode()),source_entity:li.Opt(r("entity_predicate")),direct_entity:li.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",li.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:li.Opt(li.BooleanNode()),source_entity:li.Opt(r("entity_predicate")),type:li.Opt(r("damage_source_predicate"))},{context:"damage"}))};var di={};Object.defineProperty(di,"__esModule",{value:!0}),di.initRecipeSchemas=void 0;const mi=Be;di.initRecipeSchemas=function(e,t){const r=mi.Reference.bind(void 0,e),o=mi.StringNode.bind(void 0,t);e.register("recipe",mi.Mod(mi.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[mi.Switch]:[{push:"type"}],[mi.Case]:{"minecraft:crafting_shaped":{group:mi.Opt(o({enum:"recipe_group",additional:!0})),pattern:mi.ListNode(o()),key:mi.MapNode(o(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:mi.Opt(o()),ingredients:mi.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:mi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:mi.Opt(mi.NumberNode()),cookingtime:mi.Opt(mi.Mod(mi.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:mi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:mi.Opt(mi.NumberNode()),cookingtime:mi.Opt(mi.Mod(mi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:mi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:mi.Opt(mi.NumberNode()),cookingtime:mi.Opt(mi.Mod(mi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:mi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:mi.Opt(mi.NumberNode()),cookingtime:mi.Opt(mi.Mod(mi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:mi.Opt(o()),ingredient:r("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:mi.NumberNode({integer:!0})},"minecraft:smithing":{group:mi.Opt(o()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",mi.Mod(mi.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:mi.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",mi.Mod(mi.ObjectNode({item:mi.Opt(o({validator:"resource",params:{pool:"item"}})),tag:mi.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",mi.Mod(mi.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:mi.Opt(mi.Mod(mi.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var _i={};Object.defineProperty(_i,"__esModule",{value:!0}),_i.initTagsSchemas=void 0;const pi=Be;_i.initTagsSchemas=function(e,t){const r=pi.StringNode.bind(void 0,t),o=e=>pi.Mod(pi.ObjectNode({replace:pi.Opt(pi.BooleanNode()),values:pi.ListNode(pi.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:pi.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:pi.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("game_event_tag",o("game_event")),e.register("item_tag",o("item"))};var ui={};Object.defineProperty(ui,"__esModule",{value:!0}),ui.initTextComponentSchemas=void 0;const fi=Be;ui.initTextComponentSchemas=function(e,t){const r=fi.Reference.bind(void 0,e),o=fi.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",fi.Mod(fi.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:o(),change:i},{type:"number",node:fi.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:fi.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:fi.Opt(o()),font:fi.Opt(o()),bold:fi.Opt(fi.BooleanNode()),italic:fi.Opt(fi.BooleanNode()),underlined:fi.Opt(fi.BooleanNode()),strikethrough:fi.Opt(fi.BooleanNode()),obfuscated:fi.Opt(fi.BooleanNode()),insertion:fi.Opt(o()),clickEvent:fi.Opt(fi.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[fi.Switch]:[{push:"action"}],[fi.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:fi.Opt(fi.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[fi.Switch]:[{push:"action"}],[fi.Case]:{show_text:{value:fi.Opt(r("text_component")),contents:fi.Opt(r("text_component"))},show_item:{value:fi.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:fi.Opt(fi.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:fi.Opt(fi.NumberNode({integer:!0})),tag:fi.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:fi.Opt(fi.ObjectNode({name:fi.Opt(o()),type:fi.Opt(o()),id:fi.Opt(o())})),contents:fi.Opt(fi.Mod(fi.ObjectNode({name:fi.Opt(r("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:fi.Opt(r("text_component_list"))};e.register("text_component_object",fi.Mod(fi.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:fi.ObjectNode(m({text:o()},a))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:fi.ObjectNode(m({translate:o(),with:fi.Opt(r("text_component_list"))},a))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:fi.ObjectNode(m({score:fi.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:fi.Opt(o())})},a))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:fi.ObjectNode(m({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:fi.Opt(r("text_component"))},a))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:fi.ObjectNode(m({keybind:o({enum:"keybind",additional:!0})},a))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:fi.ObjectNode(m({nbt:o({validator:"nbt_path"}),block:fi.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:fi.Opt(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:fi.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:fi.Opt(fi.BooleanNode()),separator:fi.Opt(r("text_component"))},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",fi.Mod(fi.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var gi={},bi={};Object.defineProperty(bi,"__esModule",{value:!0}),bi.initBiomeSchemas=void 0;const hi=Be;bi.initBiomeSchemas=function(e,t){const r=hi.StringNode.bind(void 0,t);e.register("biome",hi.Mod(hi.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:hi.NumberNode(),scale:hi.NumberNode(),temperature:hi.NumberNode(),downfall:hi.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:hi.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:hi.Opt(hi.BooleanNode()),creature_spawn_probability:hi.Opt(hi.NumberNode({min:0,max:1})),effects:hi.ObjectNode({sky_color:hi.NumberNode({color:!0}),fog_color:hi.NumberNode({color:!0}),water_color:hi.NumberNode({color:!0}),water_fog_color:hi.NumberNode({color:!0}),grass_color:hi.Opt(hi.NumberNode({color:!0})),foliage_color:hi.Opt(hi.NumberNode({color:!0})),grass_color_modifier:hi.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:hi.Opt(r()),mood_sound:hi.Opt(hi.ObjectNode({sound:r(),tick_delay:hi.NumberNode({integer:!0}),block_search_extent:hi.NumberNode({integer:!0}),offset:hi.NumberNode()})),additions_sound:hi.Opt(hi.ObjectNode({sound:r(),tick_chance:hi.NumberNode({min:0,max:1})})),music:hi.Opt(hi.ObjectNode({sound:r(),min_delay:hi.NumberNode({integer:!0,min:0}),max_delay:hi.NumberNode({integer:!0,min:0}),replace_current_music:hi.BooleanNode()})),particle:hi.Opt(hi.ObjectNode({options:hi.ObjectNode({type:r()}),probability:hi.NumberNode({min:0,max:1})}))}),starts:hi.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:hi.MapNode(r({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),hi.Mod(hi.ListNode(hi.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:hi.NumberNode({integer:!0}),minCount:hi.NumberNode({integer:!0}),maxCount:hi.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:hi.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),hi.Mod(hi.ObjectNode({energy_budget:hi.NumberNode(),charge:hi.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:hi.MapNode(r({enum:["air","liquid"]}),hi.Mod(hi.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:hi.ListNode(hi.Mod(hi.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var yi={};Object.defineProperty(yi,"__esModule",{value:!0}),yi.initCarverSchemas=void 0;const vi=Be,Ni=Eo;yi.initCarverSchemas=function(e,t){const r=vi.Reference.bind(void 0,e),o=vi.StringNode.bind(void 0,t),i={vertical_rotation:Ni.FloatProvider(),shape:vi.ObjectNode({distance_factor:Ni.FloatProvider(),thickness:Ni.FloatProvider(),width_smoothness:vi.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Ni.FloatProvider(),vertical_radius_default_factor:vi.NumberNode(),vertical_radius_center_factor:vi.NumberNode()})},a={horizontal_radius_multiplier:Ni.FloatProvider(),vertical_radius_multiplier:Ni.FloatProvider(),floor_level:Ni.FloatProvider({min:-1,max:1})};e.register("configured_carver",vi.Mod(vi.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:vi.ObjectNode({probability:vi.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:Ni.FloatProvider(),lava_level:r("vertical_anchor"),aquifers_enabled:vi.BooleanNode(),debug_settings:vi.Opt(vi.ObjectNode({debug_mode:vi.Opt(vi.BooleanNode()),air_state:vi.Opt(r("block_state")),water_state:vi.Opt(r("block_state")),lava_state:vi.Opt(r("block_state")),barrier_state:vi.Opt(r("block_state"))})),[vi.Switch]:["pop",{push:"type"}],[vi.Case]:{"minecraft:canyon":i,"minecraft:cave":a,"minecraft:nether_cave":a}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Oi={};Object.defineProperty(Oi,"__esModule",{value:!0}),Oi.initDecoratorSchemas=void 0;const ki=Be,xi=Eo;Oi.initDecoratorSchemas=function(e,t){const r=ki.Reference.bind(void 0,e),o=ki.StringNode.bind(void 0,t),i={count:xi.IntProvider({min:0,max:256})};e.register("configured_decorator",ki.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/decorator"}}),config:ki.ObjectNode({[ki.Switch]:["pop",{push:"type"}],[ki.Case]:{"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:cave_surface":{surface:o({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:ki.NumberNode({integer:!0})},"minecraft:chance":{chance:ki.NumberNode({integer:!0,min:0})},"minecraft:count":i,"minecraft:count_extra":{count:ki.NumberNode({integer:!0,min:0}),extra_count:ki.NumberNode({integer:!0,min:0}),extra_chance:ki.NumberNode({min:0,max:1})},"minecraft:count_multilayer":i,"minecraft:count_noise":{noise_level:ki.NumberNode(),below_noise:ki.NumberNode({integer:!0}),above_noise:ki.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:ki.NumberNode({integer:!0}),noise_factor:ki.NumberNode(),noise_offset:ki.Opt(ki.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:o({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:ki.NumberNode({integer:!0,min:0})},"minecraft:range":{height:r("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:ki.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var wi={},ji={};Object.defineProperty(ji,"__esModule",{value:!0}),ji.initProcessorListSchemas=ji.Processors=void 0;const Si=Be;ji.initProcessorListSchemas=function(e,t){const r=Si.Reference.bind(void 0,e),o=Si.StringNode.bind(void 0,t);ji.Processors=Si.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",Si.Mod(Si.ObjectNode({processors:Si.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",Si.Mod(Si.ObjectNode({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Si.Switch]:[{push:"processor_type"}],[Si.Case]:{"minecraft:block_age":{mossiness:Si.NumberNode()},"minecraft:block_ignore":{blocks:Si.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:Si.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:Si.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:Si.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",Si.Mod(Si.ObjectNode({position_predicate:Si.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Si.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const i={min_dist:Si.Opt(Si.NumberNode({min:0,max:255,integer:!0})),max_dist:Si.Opt(Si.NumberNode({min:0,max:255,integer:!0})),min_chance:Si.Opt(Si.NumberNode({min:0,max:1})),max_chance:Si.Opt(Si.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Si.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[Si.Switch]:[{push:"predicate_type"}],[Si.Case]:{"minecraft:axis_aligned_linear_pos":m({axis:o({enum:["x","y","z"]})},i),"minecraft:linear_pos":i}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Si.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[Si.Switch]:[{push:"predicate_type"}],[Si.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:Si.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Si.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(wi,"__esModule",{value:!0}),wi.initFeatureSchemas=void 0;const Mi=Be,Ci=Eo,Pi=ji;wi.initFeatureSchemas=function(e,t){const r=Mi.Reference.bind(void 0,e),o=Mi.StringNode.bind(void 0,t),i={can_replace:Mi.Opt(Mi.BooleanNode()),project:Mi.Opt(Mi.BooleanNode()),need_water:Mi.Opt(Mi.BooleanNode()),xspread:Mi.Opt(Mi.NumberNode({integer:!0,min:0})),yspread:Mi.Opt(Mi.NumberNode({integer:!0,min:0})),zspread:Mi.Opt(Mi.NumberNode({integer:!0,min:0})),tries:Mi.Opt(Mi.NumberNode({integer:!0,min:1})),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:Mi.ListNode(r("block_state")),blacklist:Mi.ListNode(r("block_state"))},a={state:r("block_state"),radius:Ci.IntProvider({min:0,max:8}),half_height:Mi.NumberNode({integer:!0,min:0,max:4}),targets:Mi.ListNode(r("block_state"))},n={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:Mi.Opt(Mi.NumberNode({integer:!0}))},c=Mi.ObjectNode({target:r("rule_test"),state:r("block_state")}),s={size:Mi.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:Mi.NumberNode({min:0,max:1}),targets:Mi.ListNode(c)},l=Mi.ChoiceNode([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),d={surface:o({enum:["floor","ceiling"]}),depth:Ci.IntProvider({min:1,max:128}),vertical_range:Mi.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:Mi.NumberNode({min:0,max:1}),extra_edge_column_chance:Mi.NumberNode({min:0,max:1}),vegetation_chance:Mi.NumberNode({min:0,max:1}),xz_radius:Ci.IntProvider(),replaceable:o({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:l};e.register("configured_feature",Mi.Mod(Mi.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:Mi.ObjectNode({[Mi.Switch]:["pop",{push:"type"}],[Mi.Case]:{"minecraft:bamboo":{probability:Mi.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:Ci.IntProvider({min:0,max:3}),height:Ci.IntProvider({min:1,max:10})},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:l},"minecraft:decorated_flower":{decorator:r("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:Ci.IntProvider({min:0,max:16}),rim_size:Ci.IntProvider({min:0,max:16})},"minecraft:disk":a,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:Mi.NumberNode({integer:!0,min:1,max:512}),height:Ci.IntProvider({min:0,max:128}),radius:Ci.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:Mi.NumberNode({integer:!0,min:0,max:64}),height_deviation:Mi.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:Ci.IntProvider({min:0,max:128}),density:Ci.FloatProvider({min:0,max:2}),wetness:Ci.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:Mi.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:Mi.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:Mi.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:Mi.BooleanNode(),exit:Mi.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Mi.Opt(Mi.BooleanNode()),crystal_beam_target:Mi.Opt(r("block_pos")),spikes:Mi.ListNode(Mi.ObjectNode({centerX:Mi.Opt(Mi.NumberNode({integer:!0})),centerZ:Mi.Opt(Mi.NumberNode({integer:!0})),radius:Mi.Opt(Mi.NumberNode({integer:!0})),height:Mi.Opt(Mi.NumberNode({integer:!0})),guarded:Mi.Opt(Mi.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:Mi.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":i,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:Mi.NumberNode({integer:!0,min:0,max:7}),fossil_structures:Mi.ListNode(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:Mi.ListNode(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Pi.Processors,overlay_processors:Pi.Processors},"minecraft:geode":{blocks:Mi.ObjectNode({filling_provider:r("block_state_provider"),inner_layer_provider:r("block_state_provider"),alternate_inner_layer_provider:r("block_state_provider"),middle_layer_provider:r("block_state_provider"),outer_layer_provider:r("block_state_provider"),inner_placements:Mi.ListNode(r("block_state")),cannot_replace:o({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:o({validator:"resource",params:{pool:"$tag/block"}})}),layers:Mi.ObjectNode({filling:Mi.Opt(Mi.NumberNode({min:.01,max:50})),inner_layer:Mi.Opt(Mi.NumberNode({min:.01,max:50})),middle_layer:Mi.Opt(Mi.NumberNode({min:.01,max:50})),outer_layer:Mi.Opt(Mi.NumberNode({min:.01,max:50}))}),crack:Mi.ObjectNode({generate_crack_chance:Mi.Opt(Mi.NumberNode({min:0,max:1})),base_crack_size:Mi.Opt(Mi.NumberNode({min:0,max:5})),crack_point_offset:Mi.Opt(Mi.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:Mi.Opt(Mi.NumberNode({min:0,max:1})),use_potential_placements_chance:Mi.Opt(Mi.NumberNode({min:0,max:1})),use_alternate_layer0_chance:Mi.Opt(Mi.NumberNode({min:0,max:1})),placements_require_layer0_alternate:Mi.Opt(Mi.BooleanNode()),outer_wall_distance:Mi.Opt(Ci.IntProvider({min:1,max:20})),distribution_points:Mi.Opt(Ci.IntProvider({min:1,max:20})),point_offset:Mi.Opt(Ci.IntProvider({min:0,max:10})),min_gen_offset:Mi.Opt(Mi.NumberNode({integer:!0})),max_gen_offset:Mi.Opt(Mi.NumberNode({integer:!0})),invalid_blocks_threshold:Mi.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:Mi.Opt(Mi.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:Mi.Opt(Mi.NumberNode({min:0,max:1})),can_place_on_floor:Mi.Opt(Mi.BooleanNode()),can_place_on_ceiling:Mi.Opt(Mi.BooleanNode()),can_place_on_wall:Mi.Opt(Mi.BooleanNode()),can_be_placed_on:Mi.ListNode(r("block_state"))},"minecraft:growing_plant":{direction:o({enum:["up","down","north","east","south","west"]}),allow_water:Mi.BooleanNode(),height_distribution:Mi.ListNode(Mi.ObjectNode({weight:Mi.NumberNode({integer:!0}),data:Ci.IntProvider()})),body_provider:r("block_state_provider"),head_provider:r("block_state_provider")},"minecraft:huge_brown_mushroom":n,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:Mi.Opt(Mi.BooleanNode())},"minecraft:huge_red_mushroom":n,"minecraft:ice_patch":a,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:Mi.Opt(Mi.NumberNode({integer:!0,min:1,max:512})),column_radius:Ci.IntProvider({min:0,max:60}),height_scale:Ci.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:Mi.NumberNode({min:0,max:1}),stalactite_bluntness:Ci.FloatProvider({min:.1,max:10}),stalagmite_bluntness:Ci.FloatProvider({min:.1,max:10}),wind_speed:Ci.FloatProvider({min:0,max:2}),min_radius_for_wind:Mi.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:Mi.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:Ci.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":i,"minecraft:ore":s,"minecraft:random_patch":i,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:Mi.ListNode(Mi.ObjectNode({chance:Mi.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:Mi.ListNode(c)},"minecraft:root_system":{required_vertical_space_for_tree:Mi.NumberNode({integer:!0,min:1,max:64}),root_radius:Mi.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:Mi.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:Mi.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:Mi.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:Mi.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:Mi.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:Mi.NumberNode({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:r("block_state_provider"),hanging_root_state_provider:r("block_state_provider"),feature:l},"minecraft:scattered_ore":s,"minecraft:sea_pickle":{count:Ci.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:Mi.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider"),place_on:Mi.ListNode(r("block_state")),place_in:Mi.ListNode(r("block_state")),place_under:Mi.ListNode(r("block_state"))},"minecraft:simple_random_selector":{features:Mi.ListNode(l)},"minecraft:small_dripstone":{max_placements:Mi.Opt(Mi.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:Mi.Opt(Mi.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:Mi.Opt(Mi.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:Mi.Opt(Mi.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:Mi.NumberNode({integer:!0}),hole_count:Mi.NumberNode({integer:!0}),requires_block_below:Mi.BooleanNode(),valid_blocks:Mi.ListNode(o({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:Mi.Opt(Mi.BooleanNode()),force_dirt:Mi.Opt(Mi.BooleanNode()),minimum_size:r("feature_size"),dirt_provider:r("block_state_provider"),sapling_provider:r("block_state_provider"),trunk_provider:r("block_state_provider"),foliage_provider:r("block_state_provider"),trunk_placer:Mi.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Mi.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Mi.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Mi.NumberNode({integer:!0,min:0,max:24}),[Mi.Switch]:[{push:"type"}],[Mi.Case]:{"minecraft:bending_trunk_placer":{bend_length:Ci.IntProvider({min:1,max:64}),min_height_for_leaves:Mi.Opt(Mi.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:Mi.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:Ci.IntProvider({min:0,max:16}),offset:Ci.IntProvider({min:0,max:16}),[Mi.Switch]:[{push:"type"}],[Mi.Case]:{"minecraft:blob_foliage_placer":{height:Mi.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Mi.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Mi.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Mi.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:Ci.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:Ci.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:Ci.IntProvider({min:1,max:512}),leaf_placement_attempts:Mi.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:Ci.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Mi.ListNode(Mi.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Mi.Switch]:[{push:"type"}],[Mi.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:Mi.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Mi.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:Mi.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:Mi.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:Mi.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":d,"minecraft:waterlogged_vegetation_patch":d}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",Mi.Mod(Mi.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Mi.Opt(Mi.NumberNode({min:0,max:80})),[Mi.Switch]:[{push:"type"}],[Mi.Case]:{"minecraft:two_layers_feature_size":{limit:Mi.Opt(Mi.NumberNode({integer:!0,min:0,max:81})),lower_size:Mi.Opt(Mi.NumberNode({integer:!0,min:0,max:16})),upper_size:Mi.Opt(Mi.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Mi.Opt(Mi.NumberNode({integer:!0,min:0,max:80})),upper_limit:Mi.Opt(Mi.NumberNode({integer:!0,min:0,max:80})),lower_size:Mi.Opt(Mi.NumberNode({integer:!0,min:0,max:16})),middle_size:Mi.Opt(Mi.NumberNode({integer:!0,min:0,max:16})),upper_size:Mi.Opt(Mi.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",Mi.Mod(Mi.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Mi.Switch]:[{push:"type"}],[Mi.Case]:{"minecraft:randomized_int_state_provider":{property:o(),values:Ci.IntProvider(),source:r("block_state_provider")},"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:Mi.ListNode(Mi.Mod(Mi.ObjectNode({weight:Mi.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",Mi.Mod(Mi.ObjectNode({type:o({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[Mi.Switch]:[{push:"type"}],[Mi.Case]:{"minecraft:column_placer":{size:Ci.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var Li={};Object.defineProperty(Li,"__esModule",{value:!0}),Li.initNoiseSettingsSchemas=void 0;const Bi=Be,zi=Eo;Li.initNoiseSettingsSchemas=function(e,t){const r=Bi.Reference.bind(void 0,e),o=Bi.StringNode.bind(void 0,t);e.register("noise_settings",Bi.Mod(Bi.ObjectNode({name:Bi.Mod(o({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:Bi.NumberNode({integer:!0}),bedrock_floor_position:Bi.NumberNode({integer:!0}),sea_level:Bi.NumberNode({integer:!0}),min_surface_level:Bi.NumberNode({integer:!0}),disable_mob_generation:Bi.BooleanNode(),noise_caves_enabled:Bi.BooleanNode(),noodle_caves_enabled:Bi.BooleanNode(),aquifers_enabled:Bi.BooleanNode(),deepslate_enabled:Bi.BooleanNode(),ore_veins_enabled:Bi.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:Bi.ObjectNode({min_y:Bi.NumberNode({integer:!0,min:-2048,max:2047}),height:Bi.NumberNode({integer:!0,min:0,max:4096}),density_factor:Bi.NumberNode(),density_offset:Bi.NumberNode(),size_horizontal:Bi.NumberNode({integer:!0}),size_vertical:Bi.NumberNode({integer:!0}),simplex_surface_noise:Bi.BooleanNode(),random_density_offset:Bi.Opt(Bi.BooleanNode()),island_noise_override:Bi.Opt(Bi.BooleanNode()),amplified:Bi.Opt(Bi.BooleanNode()),sampling:Bi.ObjectNode({xz_scale:Bi.NumberNode(),y_scale:Bi.NumberNode(),xz_factor:Bi.NumberNode(),y_factor:Bi.NumberNode()}),bottom_slide:Bi.ObjectNode({target:Bi.NumberNode({integer:!0}),size:Bi.NumberNode({integer:!0,min:0}),offset:Bi.NumberNode({integer:!0})}),top_slide:Bi.ObjectNode({target:Bi.NumberNode({integer:!0}),size:Bi.NumberNode({integer:!0,min:0}),offset:Bi.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>zi.DefaultNoiseSettings,validate:(t,r,o,i)=>{var a,n,c,s;return(null===(a=null==(r=e.validate(t,r,o,i))?void 0:r.noise)||void 0===a?void 0:a.min_y)+(null===(n=null==r?void 0:r.noise)||void 0===n?void 0:n.height)>2047&&o.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(c=null==r?void 0:r.noise)||void 0===c?void 0:c.height)%16!=0&&o.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(s=null==r?void 0:r.noise)||void 0===s?void 0:s.min_y)%16!=0&&o.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),r}})))),e.register("generator_structures",Bi.ObjectNode({stronghold:Bi.Opt(Bi.ObjectNode({distance:Bi.NumberNode({integer:!0,min:0,max:1023}),spread:Bi.NumberNode({integer:!0,min:0,max:1023}),count:Bi.NumberNode({integer:!0,min:1,max:4095})})),structures:Bi.MapNode(o({validator:"resource",params:{pool:"worldgen/structure_feature"}}),Bi.Mod(Bi.ObjectNode({spacing:Bi.NumberNode({integer:!0,min:0,max:4096}),separation:Bi.Mod(Bi.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,o,i)=>(t.pop().push("spacing").get()<=r&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,r,o,i))}))),salt:Bi.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",Bi.Mod(Bi.ObjectNode({block:o({validator:"resource",params:{pool:"block"}}),height:Bi.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var Ri={};Object.defineProperty(Ri,"__esModule",{value:!0}),Ri.initStructureFeatureSchemas=void 0;const Ai=Be;Ri.initStructureFeatureSchemas=function(e,t){const r=Ai.StringNode.bind(void 0,t),o=Ai.Reference.bind(void 0,e),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:Ai.NumberNode({integer:!0})};e.register("configured_structure_feature",Ai.Mod(Ai.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:Ai.ObjectNode({[Ai.Switch]:["pop",{push:"type"}],[Ai.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:Ai.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:Ai.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:Ai.NumberNode({min:0,max:1}),cluster_probability:Ai.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":i,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:Ai.Opt(Ai.BooleanNode())},"minecraft:village":i}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var $i={};Object.defineProperty($i,"__esModule",{value:!0}),$i.initSurfaceBuilderSchemas=void 0;const Ti=Be;$i.initSurfaceBuilderSchemas=function(e,t){const r=Ti.StringNode.bind(void 0,t),o=Ti.Reference.bind(void 0,e);e.register("configured_surface_builder",Ti.Mod(Ti.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:Ti.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var qi={};Object.defineProperty(qi,"__esModule",{value:!0}),qi.initTemplatePoolSchemas=void 0;const Di=Be,Ii=ji;qi.initTemplatePoolSchemas=function(e,t){const r=Di.Reference.bind(void 0,e),o=Di.StringNode.bind(void 0,t);e.register("template_pool",Di.Mod(Di.ObjectNode({name:o(),fallback:o(),elements:Di.ListNode(r("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",Di.Mod(Di.ObjectNode({weight:Di.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",Di.Mod(Di.ObjectNode({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[Di.Switch]:[{push:"element_type"}],[Di.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Ii.Processors},"minecraft:list_pool_element":{elements:Di.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Ii.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(gi,"__esModule",{value:!0}),gi.initWorldgenSchemas=void 0;const Fi=bi,Ei=yi,Ui=Oi,Wi=wi,Hi=Li,Ki=ji,Vi=Ri,Gi=$i,Xi=qi;gi.initWorldgenSchemas=function(e,t){Ki.initProcessorListSchemas(e,t),Fi.initBiomeSchemas(e,t),Ei.initCarverSchemas(e,t),Ui.initDecoratorSchemas(e,t),Wi.initFeatureSchemas(e,t),Hi.initNoiseSettingsSchemas(e,t),Vi.initStructureFeatureSchemas(e,t),Gi.initSurfaceBuilderSchemas(e,t),Xi.initTemplatePoolSchemas(e,t)};var Ji={};Object.defineProperty(Ji,"__esModule",{value:!0}),Ji.initWorldSettingsSchemas=void 0;const Zi=Be;Ji.initWorldSettingsSchemas=function(e,t){const r=Zi.Reference.bind(void 0,e),o=Zi.StringNode.bind(void 0,t);e.register("world_settings",Zi.Mod(Zi.ObjectNode({generate_features:Zi.BooleanNode(),bonus_chest:Zi.BooleanNode(),seed:Zi.NumberNode({integer:!0}),dimensions:Zi.MapNode(o({validator:"resource",params:{pool:"$dimension"}}),r("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(Do,"__esModule",{value:!0}),Do.initSchemas=void 0;const Yi=Io,Qi=Eo,ea=Uo,ta=Ko,ra=Xo,oa=Yo,ia=ti,aa=ni,na=si,ca=di,sa=_i,la=ui,da=gi,ma=Ji;Do.initSchemas=function(e,t){Qi.initCommonSchemas(e,t),Yi.initAdvancementSchemas(e,t),ea.initConditionSchemas(e,t),ra.initDimensionTypeSchemas(e,t),ta.initDimensionSchemas(e,t),oa.initItemModifierSchemas(e,t),ia.initLootTableSchemas(e,t),aa.initPackMcmetaSchemas(e,t),na.initPredicatesSchemas(e,t),ca.initRecipeSchemas(e,t),sa.initTagsSchemas(e,t),la.initTextComponentSchemas(e,t),da.initWorldgenSchemas(e,t),ma.initWorldSettingsSchemas(e,t)};var _a=Pe&&Pe.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),pa=Pe&&Pe.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ua=Pe&&Pe.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&_a(t,e,r);return pa(t,e),t};Object.defineProperty(To,"__esModule",{value:!0});var fa=To.getSchemas=To.getCollections=void 0;const ga=Be,ba=qo,ha=Do;var ya=To.lootContext=ua(ri);var va=To.getCollections=function(){const e=new ga.CollectionRegistry;return ba.initCollections(e),e};fa=To.getSchemas=function(e){const t=new ga.SchemaRegistry;return ha.initSchemas(t,e),t};var Na=Object.freeze(Object.assign(Object.create(null),To,{[Symbol.toStringTag]:"Module",get getSchemas(){return fa},get getCollections(){return va},lootContext:ya,default:To})),Oa={exports:{}};!function(e,t,r){function o(e){var t,r=this,o=(t=4022871197,function(e){e=String(e);for(var r=0;r>>0,t=(o*=t)>>>0,t+=4294967296*(o-=t)}return 2.3283064365386963e-10*(t>>>0)});r.next=function(){var e=2091639*r.s0+2.3283064365386963e-10*r.c;return r.s0=r.s1,r.s1=r.s2,r.s2=e-(r.c=0|e)},r.c=1,r.s0=o(" "),r.s1=o(" "),r.s2=o(" "),r.s0-=o(e),r.s0<0&&(r.s0+=1),r.s1-=o(e),r.s1<0&&(r.s1+=1),r.s2-=o(e),r.s2<0&&(r.s2+=1),o=null}function i(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var r=new o(e),a=t&&t.state,n=r.next;return n.int32=function(){return 4294967296*r.next()|0},n.double=function(){return n()+11102230246251565e-32*(2097152*n()|0)},n.quick=n,a&&("object"==typeof a&&i(a,r),n.state=function(){return i(r,{})}),n}t&&t.exports?t.exports=a:this.alea=a}(0,Oa);var ka={exports:{}};!function(e,t,r){function o(e){var t=this,r="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:r+=e;for(var o=0;o>>0)/4294967296};return n.double=function(){do{var e=((r.next()>>>11)+(r.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},n.int32=r.next,n.quick=n,a&&("object"==typeof a&&i(a,r),n.state=function(){return i(r,{})}),n}t&&t.exports?t.exports=a:this.xor128=a}(0,ka);var xa={exports:{}};!function(e,t,r){function o(e){var t=this,r="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:r+=e;for(var o=0;o>>4),t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var r=new o(e),a=t&&t.state,n=function(){return(r.next()>>>0)/4294967296};return n.double=function(){do{var e=((r.next()>>>11)+(r.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},n.int32=r.next,n.quick=n,a&&("object"==typeof a&&i(a,r),n.state=function(){return i(r,{})}),n}t&&t.exports?t.exports=a:this.xorwow=a}(0,xa);var wa={exports:{}};!function(e,t,r){function o(e){var t=this;t.next=function(){var e,r,o=t.x,i=t.i;return e=o[i],r=(e^=e>>>7)^e<<24,r^=(e=o[i+1&7])^e>>>10,r^=(e=o[i+3&7])^e>>>3,r^=(e=o[i+4&7])^e<<7,e=o[i+7&7],r^=(e^=e<<13)^e<<9,o[i]=r,t.i=i+1&7,r},function(e,t){var r,o=[];if(t===(0|t))o[0]=t;else for(t=""+t,r=0;r0;--r)e.next()}(t,e)}function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){null==e&&(e=+new Date);var r=new o(e),a=t&&t.state,n=function(){return(r.next()>>>0)/4294967296};return n.double=function(){do{var e=((r.next()>>>11)+(r.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},n.int32=r.next,n.quick=n,a&&(a.x&&i(a,r),n.state=function(){return i(r,{})}),n}t&&t.exports?t.exports=a:this.xorshift7=a}(0,wa);var ja={exports:{}};!function(e,t,r){function o(e){var t=this;t.next=function(){var e,r,o=t.w,i=t.X,a=t.i;return t.w=o=o+1640531527|0,r=i[a+34&127],e=i[a=a+1&127],r^=r<<13,e^=e<<17,r^=r>>>15,e^=e>>>12,r=i[a]=r^e,t.i=a,r+(o^o>>>16)|0},function(e,t){var r,o,i,a,n,c=[],s=128;for(t===(0|t)?(o=t,t=null):(t+="\0",o=0,s=Math.max(s,t.length)),i=0,a=-32;a>>15,o^=o<<4,o^=o>>>13,a>=0&&(n=n+1640531527|0,i=0==(r=c[127&a]^=o+n)?i+1:0);for(i>=128&&(c[127&(t&&t.length||0)]=-1),i=127,a=512;a>0;--a)o=c[i+34&127],r=c[i=i+1&127],o^=o<<13,r^=r<<17,o^=o>>>15,r^=r>>>12,c[i]=o^r;e.w=n,e.X=c,e.i=i}(t,e)}function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){null==e&&(e=+new Date);var r=new o(e),a=t&&t.state,n=function(){return(r.next()>>>0)/4294967296};return n.double=function(){do{var e=((r.next()>>>11)+(r.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},n.int32=r.next,n.quick=n,a&&(a.X&&i(a,r),n.state=function(){return i(r,{})}),n}t&&t.exports?t.exports=a:this.xor4096=a}(0,ja);var Sa={exports:{}};!function(e,t,r){function o(e){var t=this,r="";t.next=function(){var e=t.b,r=t.c,o=t.d,i=t.a;return e=e<<25^e>>>7^r,r=r-o|0,o=o<<24^o>>>8^i,i=i-e|0,t.b=e=e<<20^e>>>12^r,t.c=r=r-o|0,t.d=o<<16^r>>>16^i,t.a=i-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):r+=e;for(var o=0;o>>0)/4294967296};return n.double=function(){do{var e=((r.next()>>>11)+(r.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},n.int32=r.next,n.quick=n,a&&("object"==typeof a&&i(a,r),n.state=function(){return i(r,{})}),n}t&&t.exports?t.exports=a:this.tychei=a}(0,Sa);var Ma,Ca={exports:{}},Pa=Le(Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:{}}));Ma=Ca,function(e,t,r){var o,i=256,a=r.pow(i,6),n=r.pow(2,52),c=2*n,s=255;function l(s,l,f){var g=[],b=p(_((l=1==l?{entropy:!0}:l||{}).entropy?[s,u(t)]:null==s?function(){try{var r;return o&&(r=o.randomBytes)?r=r(i):(r=new Uint8Array(i),(e.crypto||e.msCrypto).getRandomValues(r)),u(r)}catch(c){var a=e.navigator,n=a&&a.plugins;return[+new Date,e,n,e.screen,u(t)]}}():s,3),g),h=new d(g),y=function(){for(var e=h.g(6),t=a,r=0;e=c;)e/=2,t/=2,r>>>=1;return(e+r)/t};return y.int32=function(){return 0|h.g(4)},y.quick=function(){return h.g(4)/4294967296},y.double=y,p(u(h.S),t),(l.pass||f||function(e,t,o,i){return i&&(i.S&&m(i,h),e.state=function(){return m(h,{})}),o?(r.random=e,t):e})(y,b,"global"in l?l.global:this==r,l.state)}function d(e){var t,r=e.length,o=this,a=0,n=o.i=o.j=0,c=o.S=[];for(r||(e=[r++]);a3)for(u=[u],o=3;o0?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.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\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;\r\n this.schema = schema;\r\n this.data = schema.default();\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 this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\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 node = node[e];\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 node[e] = {};\r\n }\r\n node = node[e];\r\n });\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 {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n console.log('Set', path.toString(), JSON.stringify(value));\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 })) !== 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}\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 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 = 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 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 = 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) => children.validate(path.push(index), obj, errors, options));\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\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 = 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.NumberNode = void 0;\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 = 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\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.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\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\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 = this.default();\r\n }\r\n if (typeof value !== 'object') {\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 res[k] = undefined;\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, 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 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 = 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","\"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:requirements': {\r\n terms: core_1.ListNode(Reference('condition')),\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' } }), core_1.ObjectNode({\r\n amplifier: Common_1.Range(),\r\n duration: Common_1.Range()\r\n })))\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 '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 ...conditions\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode,\r\n ...conditions\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 ...conditions\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 ...conditions\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }))),\r\n ...conditions\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 ...conditions\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 ...conditions\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true }),\r\n ...conditions\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 ...conditions\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier')),\r\n ...conditions\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...conditions\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true }),\r\n ...conditions\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 ...conditions\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 ...conditions\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } }),\r\n ...conditions\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 ...conditions\r\n }\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' }), {\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: 'single', 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.prototype.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 = exports.lootContext = 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' }), {\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: 'single', 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, 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: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 ]);\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' }), {\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.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: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","// A port of an algorithm by Johannes Baagøe , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baagøe \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xorshift7\" algorithm by\n// François Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n","// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n","// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","export default {}","/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n","// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by François Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n","'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"],"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","DataModel_1","require$$0","require$$1","schema","options","listeners","JSON","stringify","historyIndex","historyMax","listener","newHistory","silentInvalidate","invalidated","loose","validate","invalidate","silent","getArray","reset","isNaN","last","log","toString","parse","withModel","clear","tempErrors","add","exports","category","enabled","keep","optional","pathPush","suggest","validationOption","hook","args","canUpdate","update","mods","__spreadValues","Mod","__spreadProps","BooleanNode","Node_1","Base","boolean","ListNode","config","_b","min","minLength","maxLength","Infinity","between","nextIndex","navigate","parseInt","_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","res","validation","NumberNode","_c","integer","color","Number","isInteger","number","str","utils","escapeString","Node_12","Path_12","Errors_12","require$$2","utils_12","require$$3","fields","Switch","Case","defaultFields","__restKey","getActiveFields","switchValue","relativePath","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","disableSwitchContext","includes","pathElements","activeFields","existingKeys","quoteString","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","object","Reference","schemas2","transform","StringNode","utils_1","isEnum","enum","isValidator","validator","collections","getValues","pool","allowTag","isDefinition","allowUnknown","additional","values","string","Hook","Registries","registry","id","warn","ValidationOption","__createBinding2","__createBinding","k22","enumerable","__exportStar","exports2","hasOwnProperty","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","Collections","register","core_12","StringNode2","Reference2","ObjectNode","Name","Properties","Opt","level","forceRange","bounds","allowBinomial","choiceContext","minecraft:alternative","terms","minecraft:block_state_property","block","properties","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:requirements","minecraft:reference","minecraft:table_bonus","enchantment","chances","minecraft:time_check","period","minecraft:weather_check","raining","thundering","Common_12","StateChoice","item","tag","count","durability","potion","nbt","enchantments","levels","fluid","position","biome","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","distance","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","from","to","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","Map","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","entries","weightMod","weight","quality","minecraft:alternatives","minecraft:dynamic","minecraft:group","minecraft:item","minecraft:loot_table","minecraft:sequence","minecraft:tag","expand","minecraft:apply_bonus","formula","parameters","bonusMultiplier","extra","probability","minecraft:copy_name","source","minecraft:copy_nbt","ops","getter","op","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","limit","minecraft:looting_enchant","minecraft:set_attributes","modifiers","minecraft:set_contents","minecraft:set_count","minecraft:set_damage","minecraft:set_loot_table","seed","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","result","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","text","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","module","show_entity","translate","with","score","isScoreHolder","objective","selector","keybind","storage","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","bedrock_roof_position","bedrock_floor_position","sea_level","disable_mob_generation","noise","density_factor","density_offset","simplex_surface_noise","random_density_offset","size_horizontal","size_vertical","height","sampling","xz_scale","y_scale","xz_factor","y_factor","top_slide","size","bottom_slide","default_block","default_fluid","spread","maxSpread","ObjectOrPreset","minecraft:overworld","DefaultDimensionType","minecraft:the_nether","shrunk","fixed_time","minecraft:the_end","DefaultNoiseSettings","minecraft:nether","minecraft:end","island_noise_override","minecraft:amplified","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","settings","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","structures","floor","random","altitude","temperature","humidity","weirdness","firstOctave","amplitudes","DimensionType","Predicates","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome","surface_builder","depth","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","stronghold","spacing","separation","salt","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","min_y","noise_caves_enabled","aquifers_enabled","deepslate_enabled","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","yScale","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","noodle_caves_enabled","ore_veins_enabled","_d","minecraft:nether_fossil","ItemModifier_1","initItemModifierSchemas","global2","module2","define","me","mash","charCodeAt","next","s0","s1","xg","Alea","prng","int32","double","quick","impl","alea","strseed","XorGen","xor128","xorwow","X","me2","seed2","j2","Date","xorshift7","xor4096","tychei","math","nodecrypto","width","startdenom","pow","significance","overflow","mask","callback","shortseed","mixkey","flatten","entropy","tostring","out","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","navigator","plugins","screen","autoseed","arc4","ARC4","S","pass","prng2","is_math_call","global","keylen","i3","j3","s3","prop","typ","smear","stringseed","fromCharCode","apply","seedrandom2","ex","self","sr","seedrandom","rfdc_1","circles","refs","refsNew","proto","cloneArray","cloneProto","o22","cur","ArrayBuffer","isView","copyBuffer","clone","a22","rfdcCircles","Buffer","buffer","byteOffset"],"mappings":"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AuB,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,U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BACjBC,gBAAgBvY,GACvBA,GAsBXwY,iBALA,SAAoBxY,SACVR,EAAU,IAAIwJ,GAAOyP,yBACjBC,YAAYlZ,EAASQ,GACxBR,+MChDX/M,OAAOuC,eAAekN,GAAS,aAAc,CAAElZ,OAAO,4BAC5B,qBAC1B,SAAyBgX,KACTmC,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,2BACA,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,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,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,cAEQA,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,+DCngBDnN,iBAAwB,aAAc,CAAEhM,OAAO,wBAC1BmQ,aAAqBA,QAAgBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,sBAAyB,QAChNiJ,EAAS7K,0BACgB,CAC3BohB,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,yDAEe,CAC3B5sB,KAAM,sBACN6sB,0BACAC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBC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,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,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,cAEQA,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,2BCnkBR1P,OAAOuC,eAAe+T,GAAS,aAAc,CAAE/f,OAAO,mCACrB,EACjC,MAAMggB,GAASzR,6BACf,SAAgCiI,EAASQ,SAC/BsC,EAAY0G,GAAOzJ,UAAUrR,UAAK,EAAWsR,GAC7C6C,EAAa2G,GAAOtJ,WAAWxR,UAAK,EAAW8R,GAC/C8b,EAAkB9S,GAAO7M,WAAW,CACtC,CACIrW,KAAM,SACNiL,KAAMiY,GAAOtG,IAAIJ,EAAU,qBAC3BlG,eAAmB5F,EAAIiE,SAAoF,UAAnD,UAAV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"}
\ No newline at end of file
diff --git a/assets/zh-cn.7cd3f35b.js b/assets/zh-cn.7cd3f35b.js
new file mode 100644
index 00000000..9a6f47d5
--- /dev/null
+++ b/assets/zh-cn.7cd3f35b.js
@@ -0,0 +1,2 @@
+var e=JSON.parse('{"advancement.criteria":"判据","advancement.display":"显示","advancement.display.announce_to_chat":"在聊天栏提示","advancement.display.background":"背景","advancement.display.description":"描述","advancement.display.frame":"框架类型","advancement.display.frame.challenge":"挑战","advancement.display.frame.goal":"目标","advancement.display.frame.task":"进度","advancement.display.help":"如果存在,该进度将会在进度界面中显示。","advancement.display.hidden":"隐藏","advancement.display.icon":"图标","advancement.display.icon.item":"图标物品","advancement.display.icon.nbt":"图标物品 NBT","advancement.display.show_toast":"显示右上角提示信息","advancement.display.title":"标题","advancement.parent":"父进度","advancement.rewards":"奖励","advancement.rewards.experience":"经验","advancement.rewards.function":"函数","advancement.rewards.loot":"战利品表","advancement.rewards.recipes":"配方","advancement_trigger.bee_nest_destroyed":"摧毁蜂巢","advancement_trigger.bred_animals":"繁殖动物","advancement_trigger.brewed_potion":"酿造药水","advancement_trigger.changed_dimension":"改变维度","advancement_trigger.channeled_lightning":"引雷魔咒击杀实体","advancement_trigger.construct_beacon":"构建信标结构","advancement_trigger.consume_item":"消耗物品","advancement_trigger.cured_zombie_villager":"治愈僵尸村民","advancement_trigger.effects_changed":"状态效果改变","advancement_trigger.enchanted_item":"附魔物品","advancement_trigger.enter_block":"进入方块","advancement_trigger.entity_hurt_player":"实体伤害玩家","advancement_trigger.entity_killed_player":"实体击杀玩家","advancement_trigger.filled_bucket":"填充桶","advancement_trigger.fishing_rod_hooked":"钓鱼竿勾住东西","advancement_trigger.hero_of_the_village":"村庄英雄","advancement_trigger.impossible":"不可达成","advancement_trigger.inventory_changed":"物品栏改变","advancement_trigger.item_durability_changed":"物品耐久度改变","advancement_trigger.item_used_on_block":"对方块使用物品","advancement_trigger.killed_by_crossbow":"使用弩箭击杀","advancement_trigger.levitation":"漂浮","advancement_trigger.location":"位置","advancement_trigger.nether_travel":"下界旅行","advancement_trigger.placed_block":"放置方块","advancement_trigger.player_generates_container_loot":"玩家生成容器战利品","advancement_trigger.player_hurt_entity":"玩家伤害实体","advancement_trigger.player_killed_entity":"玩家击杀实体","advancement_trigger.recipe_unlocked":"配方解锁","advancement_trigger.safely_harvest_honey":"安全地采集蜂蜜","advancement_trigger.shot_crossbow":"使用弩","advancement_trigger.slept_in_bed":"睡觉","advancement_trigger.slide_down_block":"从蜂蜜块滑下","advancement_trigger.summoned_entity":"召唤实体","advancement_trigger.tame_animal":"驯服动物","advancement_trigger.target_hit":"击中标靶","advancement_trigger.thrown_item_picked_up_by_entity":"丢出的物品被实体捡起","advancement_trigger.tick":"刻","advancement_trigger.used_ender_eye":"使用末影之眼","advancement_trigger.used_totem":"使用不死图腾","advancement_trigger.villager_trade":"村民交易","advancement_trigger.voluntary_exile":"引发袭击","attribute.generic_armor":"盔甲防御点数","attribute.generic_armor_toughness":"盔甲韧性","attribute.generic_attack_damage":"普通攻击伤害","attribute.generic_attack_knockback":"击退距离","attribute.generic_attack_speed":"攻击速度","attribute.generic_flying_speed":"飞行速度","attribute.generic_follow_range":"追踪范围","attribute.generic_knockback_resistance":"击退抗性","attribute.generic_luck":"幸运","attribute.generic_max_health":"最大生命值","attribute.generic_movement_speed":"移动速度","attribute.horse.jump_strength":"弹跳力","attribute.zombie.spawn_reinforcements":"连带生成新僵尸的可能性","attribute_modifier.amount":"数额","attribute_modifier.attribute":"属性","attribute_modifier.name":"名称","attribute_modifier.operation":"运算模式","attribute_modifier.operation.addition":"加减数额","attribute_modifier.operation.multiply_base":"乘上数额","attribute_modifier.operation.multiply_total":"乘上(数额 + 1)","attribute_modifier.slot":"栏位","attribute_modifier.slot.list":"多个","attribute_modifier.slot.string":"单个","badge.experimental":"实验性","badge.unstable":"不稳定","biome.carvers":"地形雕刻器","biome.carvers.air":"空气","biome.carvers.liquid":"液体","biome.category":"分类","biome.creature_spawn_probability":"生物生成几率","biome.depth":"深度","biome.depth.help":"使地形抬升或下沉。正值被认为是陆地,负值被认为是海洋。","biome.downfall":"降雨(此参数用来控制草、树叶的颜色、火的蔓延速度等)","biome.effects":"环境效果","biome.effects.additions_sound":"附加音效","biome.effects.additions_sound.sound":"声音","biome.effects.additions_sound.tick_chance":"每刻播放的概率","biome.effects.ambient_sound":"环境音效","biome.effects.fog_color":"迷雾颜色","biome.effects.foliage_color":"树叶颜色","biome.effects.grass_color":"草的颜色","biome.effects.grass_color_modifier":"草颜色修饰子","biome.effects.grass_color_modifier.dark_forest":"黑森林","biome.effects.grass_color_modifier.none":"无","biome.effects.grass_color_modifier.swamp":"沼泽","biome.effects.mood_sound":"氛围音效","biome.effects.mood_sound.block_search_extent":"播放位置搜索半径","biome.effects.mood_sound.offset":"偏移","biome.effects.mood_sound.sound":"音效","biome.effects.mood_sound.tick_delay":"刻延时","biome.effects.music":"音乐","biome.effects.music.max_delay":"最大延时","biome.effects.music.min_delay":"最小延时","biome.effects.music.replace_current_music":"替换当前音乐","biome.effects.music.sound":"音效","biome.effects.particle":"粒子","biome.effects.particle.options":"选项","biome.effects.particle.options.type":"粒子类型","biome.effects.particle.probability":"概率","biome.effects.sky_color":"天空颜色","biome.effects.water_color":"水的颜色","biome.effects.water_fog_color":"水中迷雾颜色","biome.features":"地物","biome.features.entry":"步骤 %0%","biome.features.entry.entry":"地物","biome.player_spawn_friendly":"玩家生成偏好","biome.player_spawn_friendly.help":"若为 true,世界出生点会优先选定在此生物群系内。","biome.precipitation":"降雨量","biome.precipitation.none":"无","biome.precipitation.rain":"雨","biome.precipitation.snow":"雪","biome.scale":"规模","biome.scale.help":"竖直方向上拉伸地形。值越小,地形越平整。","biome.spawn_costs":"生成代价","biome.spawn_costs.charge":"电荷量","biome.spawn_costs.energy_budget":"电势预算","biome.spawners":"生成器","biome.spawners.ambient":"环境生物","biome.spawners.creature":"生物(非怪物)","biome.spawners.entry":"生成","biome.spawners.entry.maxCount":"最大数量","biome.spawners.entry.minCount":"最小数量","biome.spawners.entry.type":"类型","biome.spawners.entry.weight":"权重","biome.spawners.misc":"杂项","biome.spawners.monster":"怪物","biome.spawners.water_ambient":"水下环境生物","biome.spawners.water_creature":"水生生物","biome.starts":"起始结构","biome.starts.entry":"结构","biome.starts.help":"配置过的结构地物的列表。","biome.surface_builder":"地表生成器","biome.temperature":"温度","biome.temperature_modifier":"温度修饰子","biome.temperature_modifier.frozen":"冰冻","biome.temperature_modifier.none":"无","block.block":"方块 ID","block.nbt":"NBT","block.state":"方块状态","block.tag":"方块标签","block_placer.column_placer.extra_size":"额外尺寸","block_placer.column_placer.min_size":"最小尺寸","block_placer.type":"类型","block_state.Name":"名称","block_state.Properties":"属性","block_state_provider.rotated_block_provider.state":"状态","block_state_provider.simple_state_provider.state":"状态","block_state_provider.type":"类型","block_state_provider.weighted_state_provider.entries":"项目","block_state_provider.weighted_state_provider.entries.entry.data":"状态","block_state_provider.weighted_state_provider.entries.entry.weight":"权重","carver.config":"配置","carver.config.canyon.bottom_inclusive":"最小值(含)","carver.config.canyon.shape.distance_factor":"距离因数","carver.config.canyon.shape.horizontal_radius_factor":"水平半径因数","carver.config.canyon.shape.thickness":"厚度","carver.config.canyon.top_inclusive":"最大值(含)","carver.config.canyon.shape.vertical_radius_center_factor":"垂直半径中心因数","carver.config.canyon.shape.vertical_radius_default_factor":"垂直半径默认因数","carver.config.canyon.vertical_rotation":"垂直旋转","carver.config.canyon.shape.width_smoothness":"宽度柔和程度","carver.config.y_scale":"Y轴缩放尺度","carver.config.debug_settings":"调试设置","carver.config.debug_settings.air_state":"空气状态","carver.config.debug_settings.debug_mode":"调试模式","carver.config.probability":"概率","carver.type":"类型","children":"子","children.entry":"项目","condition.alternative.terms":"子条件","condition.block_state_property.block":"方块","condition.block_state_property.properties":"方块状态","condition.condition":"条件","condition.damage_source":"伤害源","condition.entity_properties.entity":"实体","condition.entity_scores.entity":"实体","condition.entity_scores.scores":"分数","condition.entry":"谓词","condition.inverted.term":"条件","condition.item":"物品","condition.killed_by_player.inverse":"取反","condition.list":"多个","condition.location":"位置","condition.location_check.offsetX":"X 坐标偏移","condition.location_check.offsetY":"Y 坐标偏移","condition.location_check.offsetZ":"Z 坐标偏移","condition.object":"单个","condition.random_chance.chance":"几率","condition.random_chance_with_looting.chance":"几率","condition.random_chance_with_looting.looting_multiplier":"每级抢夺魔咒增加的数","condition.reference.name":"Predicate 文件 ID","condition.table_bonus.chances":"几率","condition.table_bonus.chances.entry":"几率","condition.table_bonus.enchantment":"附魔","condition.time_check.period":"周期","condition.time_check.period.help":"可选。如果指定,在比较前会先将游戏的时间以该数取模(例如,如果设置为 24000,指定的值将会被运算为一天中的时间)。","condition.time_check.value":"值","condition.value_check.range":"范围","condition.value_check.value":"值","condition.weather_check.raining":"下雨","condition.weather_check.thundering":"雷雨","conditions":"条件","conditions.entry":"条件","conditions.list":"条件","conditions.object":"旧版","copy_source.block_entity":"方块实体","copy_source.direct_killer":"直接击杀实体","copy_source.killer":"击杀实体","copy_source.killer_player":"击杀玩家","copy_source.this":"自身","criterion.bee_nest_destroyed.block":"方块","criterion.bee_nest_destroyed.num_bees_inside":"内部蜜蜂的数量","criterion.bred_animals.child":"幼体","criterion.bred_animals.parent":"父或母","criterion.bred_animals.partner":"配偶","criterion.brewed_potion.potion":"药水 ID","criterion.changed_dimension.from":"出发维度","criterion.changed_dimension.to":"到达维度","criterion.channeled_lightning.victims":"受害实体","criterion.channeled_lightning.victims.entry":"实体","criterion.conditions":"条件","criterion.construct_beacon.beacon_level":"金字塔等级","criterion.consume_item.item":"物品","criterion.cured_zombie_villager.villager":"村民","criterion.cured_zombie_villager.zombie":"僵尸","criterion.effects_changed.effects":"状态效果","criterion.enchanted_item.item":"物品","criterion.enchanted_item.levels":"经验等级","criterion.enter_block.block":"方块","criterion.enter_block.state":"方块状态","criterion.entity_hurt_player.damage":"伤害","criterion.entity_killed_player.entity":"源实体","criterion.entity_killed_player.killing_blow":"伤害类型","criterion.filled_bucket.item":"物品","criterion.fishing_rod_hooked.entity":"被拉的实体","criterion.fishing_rod_hooked.item":"物品","criterion.hero_of_the_village.location":"位置","criterion.inventory_changed.items":"物品","criterion.inventory_changed.items.entry":"物品","criterion.inventory_changed.slots":"栏位","criterion.inventory_changed.slots.empty":"空栏位的数量","criterion.inventory_changed.slots.full":"用满栏位的数量","criterion.inventory_changed.slots.occupied":"已用栏位的数量","criterion.item_durability_changed.delta":"差值","criterion.item_durability_changed.durability":"耐久度","criterion.item_durability_changed.item":"物品","criterion.item_used_on_block.item":"物品","criterion.item_used_on_block.location":"位置","criterion.killed_by_crossbow.unique_entity_types":"实体种类的数量","criterion.killed_by_crossbow.victims":"受害实体","criterion.killed_by_crossbow.victims.entry":"实体","criterion.levitation.distance":"距离","criterion.levitation.duration":"持续时间","criterion.location.location":"位置","criterion.nether_travel.distance":"距离","criterion.nether_travel.entered":"进入位置","criterion.nether_travel.exited":"退出位置","criterion.placed_block.block":"方块","criterion.placed_block.item":"物品","criterion.placed_block.location":"位置","criterion.placed_block.state":"方块状态","criterion.player":"玩家","criterion.player_generates_container_loot.loot_table":"战利品表","criterion.player_hurt_entity.damage":"伤害","criterion.player_hurt_entity.entity":"受害实体","criterion.player_killed_entity.entity":"受害实体","criterion.player_killed_entity.killing_blow":"伤害类型","criterion.recipe_unlocked.recipe":"配方","criterion.rod":"钓鱼竿","criterion.safely_harvest_honey.block":"方块","criterion.safely_harvest_honey.item":"物品","criterion.shot_crossbow.item":"物品","criterion.slept_in_bed.location":"位置","criterion.slide_down_block.block":"方块","criterion.summoned_entity.entity":"实体","criterion.tame_animal.entity":"动物","criterion.target_hit.projectile":"弹射物","criterion.target_hit.shooter":"射击者","criterion.target_hit.signal_strength":"信号强度","criterion.thrown_item_picked_up_by_entity.entity":"实体","criterion.thrown_item_picked_up_by_entity.item":"物品","criterion.trigger":"触发器","criterion.used_ender_eye.distance":"距离","criterion.used_totem.item":"图腾物品","criterion.villager_trade.item":"购得物品","criterion.villager_trade.villager":"村民","criterion.voluntary_exile.location":"位置","damage.blocked":"是否被阻挡","damage.dealt":"应当受到伤害","damage.source_entity":"源实体","damage.taken":"实际受到伤害","damage.type":"伤害类型","damage_source.bypasses_armor":"破甲","damage_source.bypasses_invulnerability":"虚空","damage_source.bypasses_magic":"饥饿","damage_source.direct_entity":"直接来源实体","damage_source.is_explosion":"爆炸","damage_source.is_fire":"燃烧","damage_source.is_lightning":"雷击","damage_source.is_magic":"魔法","damage_source.is_projectile":"弹射物","damage_source.source_entity":"根本来源实体","decorator.carving_mask.step":"生成步骤","decorator.config":"配置","decorator.count.count":"数量","decorator.count_extra.count":"数量","decorator.count_extra.extra_chance":"额外几率","decorator.count_extra.extra_count":"额外数量","decorator.count_multilayer.count":"数量","decorator.count_noise.above_noise":"阈值上噪声","decorator.count_noise.below_noise":"阈值下噪声","decorator.count_noise.noise_level":"噪声等级","decorator.count_noise_biased.noise_factor":"噪声因子","decorator.count_noise_biased.noise_offset":"噪声偏移量","decorator.count_noise_biased.noise_to_count_ratio":"噪数比","decorator.decorated.inner":"内部","decorator.decorated.outer":"外部","decorator.depth_average.baseline":"基线","decorator.depth_average.spread":"扩散","decorator.glowstone.count":"数量","decorator.range.bottom_inclusive":"最小值(含)","decorator.range.top_inclusive":"最大值(含)","decorator.range_biased_to_bottom.bottom_inclusive":"最小值(含)","decorator.range_biased_to_bottom.cutoff":"横断","decorator.range_biased_to_bottom.top_inclusive":"最大值(含)","decorator.range_very_biased_to_bottom.bottom_inclusive":"最小值(含)","decorator.range_very_biased_to_bottom.cutoff":"横断","decorator.range_very_biased_to_bottom.top_inclusive":"最大值(含)","decorator.type":"类型","dimension":"维度","dimension.generator":"生成器","dimension.generator.biome_source":"生物群系源","dimension.overworld":"主世界","dimension.the_end":"末路之地","dimension.the_nether":"下界","dimension.type":"维度类型","dimension.type.object":"自定义","dimension.type.string":"预设","dimension_type.ambient_light":"环境光","dimension_type.ambient_light.help":"有多少环境光。应为 0.0 与 1.0 之间的值。","dimension_type.bed_works":"床有效","dimension_type.bed_works.help":"若为true,玩家可以使用床来设置重生点并跳过夜晚。若为false,则使用床会爆炸。","dimension_type.coordinate_scale":"坐标缩放","dimension_type.coordinate_scale.help":"在维度间传送时(使用下界传送门或 /execute in )对坐标使用的缩放倍数。","dimension_type.effects":"环境效果","dimension_type.effects.help":"天空效果","dimension_type.effects.overworld":"主世界","dimension_type.effects.the_end":"末路之地","dimension_type.effects.the_nether":"下界","dimension_type.fixed_time":"固定时间","dimension_type.fixed_time.help":"设定该值会导致太阳处于某一固定位置。","dimension_type.has_ceiling":"具有天花板","dimension_type.has_ceiling.help":"影响天气,地图物品和重生规则。","dimension_type.has_raids":"生成袭击","dimension_type.has_raids.help":"若为true,拥有不祥之兆效果的玩家会导致袭击。","dimension_type.has_skylight":"具有天空光照","dimension_type.has_skylight.help":"影响天气,光照引擎和重生规则。","dimension_type.height":"高度","dimension_type.height.help":"方块能够放置的总高度。Max Y = Min Y + Height。","dimension_type.infiniburn":"无限燃烧方块","dimension_type.infiniburn.help":"定义能够使火在其上永久燃烧的方块标签。","dimension_type.logical_height":"合规高度","dimension_type.logical_height.help":"在此高度以上,传送门不会生成,紫颂果也不再能传送玩家。","dimension_type.min_y":"最小高度","dimension_type.min_y.help":"方块能够放置的最小高度。","dimension_type.name":"名称","dimension_type.natural":"自然","dimension_type.natural.help":"如果设置为 true,传送门中会生成僵尸猪灵。如果设置为 false,指南针与钟会不断随机旋转。","dimension_type.piglin_safe":"猪灵不转换","dimension_type.piglin_safe.help":"若为false,猪灵会开始颤抖并转化为僵尸猪灵。","dimension_type.respawn_anchor_works":"重生锚有效","dimension_type.respawn_anchor_works.help":"若为true,玩家可以充能并使用重生锚以设置重生点。若为false,使用重生锚会爆炸。","dimension_type.ultrawarm":"极热","dimension_type.ultrawarm.help":"如果设置为 true,水会蒸发且海绵会变干。","distance.absolute":"绝对距离","distance.horizontal":"水平距离","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"水下速掘","enchantment.bane_of_arthropods":"节肢杀手","enchantment.binding_curse":"绑定诅咒","enchantment.blast_protection":"爆炸保护","enchantment.channeling":"引雷","enchantment.depth_strider":"深海探索者","enchantment.efficiency":"效率","enchantment.enchantment":"魔咒","enchantment.feather_falling":"摔落保护","enchantment.fire_aspect":"火焰附加","enchantment.fire_protection":"火焰保护","enchantment.flame":"火矢","enchantment.fortune":"时运","enchantment.frost_walker":"冰霜行者","enchantment.impaling":"穿刺","enchantment.infinity":"无限","enchantment.knockback":"击退","enchantment.levels":"等级","enchantment.looting":"抢夺","enchantment.loyalty":"忠诚","enchantment.luck_of_the_sea":"海之眷顾","enchantment.lure":"饵钓","enchantment.mending":"经验修补","enchantment.multishot":"多重射击","enchantment.piercing":"穿透","enchantment.power":"力量","enchantment.projectile_protection":"弹射物保护","enchantment.protection":"保护","enchantment.punch":"冲击","enchantment.quick_charge":"快速装填","enchantment.respiration":"水下呼吸","enchantment.riptide":"激流","enchantment.sharpness":"锋利","enchantment.silk_touch":"精准采集","enchantment.smite":"亡灵杀手","enchantment.sweeping":"横扫之刃","enchantment.thorns":"荆棘","enchantment.unbreaking":"耐久","enchantment.vanishing_curse":"消失诅咒","entity.distance":"到执行位置的距离","entity.effects":"状态效果","entity.equipment":"装备","entity.fishing_hook":"浮漂","entity.fishing_hook.in_open_water":"位于开阔水域","entity.flags":"实体特质","entity.isBaby":"是幼体","entity.isOnFire":"正在着火","entity.isSneaking":"正在潜行","entity.isSprinting":"正在疾跑","entity.isSwimming":"正在游泳","entity.location":"位置","entity.nbt":"NBT","entity.player":"玩家","entity.targeted_entity":"目标实体","entity.team":"队伍","entity.type":"实体","entity.vehicle":"载具","entity_source.direct_killer":"直接击杀实体","entity_source.killer":"击杀者","entity_source.killer_player":"击杀者玩家","entity_source.this":"自身","entry":"项目","error":"错误","error.expected_boolean":"期望一个布尔值","error.expected_integer":"期望一个整型数字","error.expected_json":"期望 JSON","error.expected_list":"期望一个数组","error.expected_number":"期望一个数字","error.expected_object":"期望一个对象","error.expected_range":"期望一个范围","error.expected_string":"期望一个字符串","error.expected_uniform_int":"期望一个均匀分布整数","error.height_multiple":"高度必须是%0%的倍数","error.invalid_binomial":"不能使用二项分布型的范围","error.invalid_empty_list":"不能使用空数组","error.invalid_empty_string":"不能使用空字符串","error.invalid_enum_option":"选项“%0%”无效","error.invalid_exact":"不能使用常数型的范围","error.invalid_list_range.exact":"期望一个长度为 %1% 的列表","error.invalid_list_range.larger":"列表的长度 %0% 比最大值 %1% 大","error.invalid_list_range.smaller":"列表的长度 %0% 比最小值 %1% 小","error.invalid_number_range.between":"期望一个位于 %0% 与 %1% 之间的数字","error.invalid_number_range.larger":"值 %0% 比最大值 %1% 大","error.invalid_number_range.smaller":"值 %0% 比最小值 %1% 小","error.invalid_pattern":"字符串无效:%0%","error.logical_height":"合规高度不能高于高度","error.min_y_multiple":"最小高度必须是%0%的倍数","error.min_y_plus_height":"最小高度 + 高度(Min Y + height)不能高于%0%","error.recipe.invalid_key":"只能使用单个字符作为键","error.separation_smaller_spacing":"间隔(separation)的值必须小于空位(spacing)","false":"否","feature.bamboo.probability":"概率","feature.basalt_columns.height":"高度","feature.basalt_columns.reach":"范围","feature.block_pile.state_provider":"状态声明","feature.config":"配置","feature.decorated.decorator":"装饰器","feature.decorated.feature":"地物","feature.delta_feature.contents":"三角洲内部方块","feature.delta_feature.rim":"三角洲边缘方块","feature.delta_feature.rim_size":"边缘尺寸","feature.delta_feature.size":"尺寸","feature.disk.half_height":"半高","feature.disk.radius":"半径","feature.disk.state":"状态","feature.disk.targets":"目标","feature.disk.targets.entry":"状态","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"远处滴水石生成几率","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"滴水石柱在离中心最大距离处的生成几率。","feature.dripstone_cluster.density":"密度","feature.dripstone_cluster.dripstone_block_layer_thickness":"方块层厚度","feature.dripstone_cluster.floor_to_ceiling_search_range":"搜索范围","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"地板至天花板的搜索范围。","feature.dripstone_cluster.height":"高度","feature.dripstone_cluster.height_deviation":"高度偏差","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column":"石柱几率距离","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"高度偏差距离","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"影响高度偏差的离中心的最大距离。","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"最大高度差","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"石笋和钟乳石的最大高度差。","feature.dripstone_cluster.radius":"半径","feature.dripstone_cluster.wetness":"湿度","feature.dripstone_cluster.wetness_deviation":"湿度偏差","feature.dripstone_cluster.wetness_mean":"湿度平均值","feature.emerald_ore.state":"状态","feature.emerald_ore.target":"目标","feature.end_gateway.exact":"精确传送","feature.end_gateway.exit":"出口位置","feature.end_spike.crystal_beam_target":"末影水晶光柱目标","feature.end_spike.crystal_invulnerable":"末影水晶无敌状态","feature.end_spike.spikes":"末地黑曜石柱","feature.end_spike.spikes.entry":"末地黑曜石柱","feature.end_spike.spikes.entry.centerX":"中心 X 坐标","feature.end_spike.spikes.entry.centerZ":"中心 Z 坐标","feature.end_spike.spikes.entry.guarded":"铁栏杆保护","feature.end_spike.spikes.entry.height":"高度","feature.end_spike.spikes.entry.radius":"半径","feature.fill_layer.height":"高度","feature.fill_layer.state":"状态","feature.flower.blacklist":"黑名单","feature.flower.block_placer":"方块放置器","feature.flower.can_replace":"可替代","feature.flower.need_water":"需要水","feature.flower.project":"投影","feature.flower.state_provider":"状态声明","feature.flower.tries":"尝试次数","feature.flower.whitelist":"白名单","feature.flower.xspread":"X轴扩散","feature.flower.yspread":"Y轴扩散","feature.flower.zspread":"Z轴扩散","feature.forest_rock.state":"状态","feature.glow_lichen.can_be_placed_on":"可放置在","feature.glow_lichen.can_be_placed_on.entry":"方块状态","feature.glow_lichen.can_place_on_ceiling":"可放置在底面","feature.glow_lichen.can_place_on_floor":"可放置在顶面","feature.glow_lichen.can_place_on_wall":"可放置在侧面","feature.glow_lichen.chance_of_spreading":"向外蔓延概率","feature.glow_lichen.search_range":"搜索范围","feature.huge_brown_mushroom.cap_provider":"菌盖声明","feature.huge_brown_mushroom.foliage_radius":"菌盖大小","feature.huge_brown_mushroom.stem_provider":"菌柄声明","feature.huge_fungus.decor_state":"装饰","feature.huge_fungus.hat_state":"顶部","feature.huge_fungus.planted":"是否已种植","feature.huge_fungus.stem_state":"菌柄","feature.huge_fungus.valid_base_block":"有效底部方块","feature.huge_red_mushroom.cap_provider":"菌盖声明","feature.huge_red_mushroom.foliage_radius":"菌盖大小","feature.huge_red_mushroom.stem_provider":"菌柄声明","feature.ice_patch.half_height":"半高","feature.ice_patch.radius":"半径","feature.ice_patch.state":"状态","feature.ice_patch.targets":"目标","feature.ice_patch.targets.entry":"状态","feature.iceberg.state":"状态","feature.lake.state":"状态","feature.large_dripstone.column_radius":"石柱半径","feature.large_dripstone.floor_to_ceiling_search_range":"搜索范围","feature.large_dripstone.floor_to_ceiling_search_range.help":"地板至天花板的搜索范围。","feature.large_dripstone.height_scale":"高度比例","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"半径与洞穴高度比","feature.large_dripstone.min_bluntness_for_wind":"风的最小钝度","feature.large_dripstone.min_radius_for_wind":"风的最小半径","feature.large_dripstone.stalactite_bluntness":"钟乳石钝度","feature.large_dripstone.stalagmite_bluntness":"石笋钝度","feature.large_dripstone.wind_speed":"风速","feature.nether_forest_vegetation.state_provider":"状态声明","feature.netherrack_replace_blobs.radius":"半径","feature.netherrack_replace_blobs.state":"状态","feature.netherrack_replace_blobs.target":"目标","feature.no_surface_ore.size":"尺寸","feature.no_surface_ore.state":"状态","feature.no_surface_ore.target":"目标","feature.object":"自定义","feature.ore.discard_chance_on_air_exposure":"暴露在空气中放弃该次生成的概率","feature.ore.size":"尺寸","feature.ore.targets":"目标","feature.ore.targets.entry.state":"状态","feature.ore.targets.entry.target":"目标","feature.random_boolean_selector.feature_false":"地物 1","feature.random_boolean_selector.feature_true":"地物 2","feature.random_patch.blacklist":"黑名单","feature.random_patch.block_placer":"方块放置器","feature.random_patch.can_replace":"可替代","feature.random_patch.need_water":"需要水","feature.random_patch.project":"投影","feature.random_patch.state_provider":"状态声明","feature.random_patch.tries":"尝试次数","feature.random_patch.whitelist":"白名单","feature.random_patch.xspread":"X轴扩散","feature.random_patch.yspread":"Y轴扩散","feature.random_patch.zspread":"Z轴扩散","feature.random_selector.default":"默认","feature.random_selector.features":"地物","feature.random_selector.features.entry":"地物","feature.random_selector.features.entry.chance":"几率","feature.random_selector.features.entry.feature":"地物","feature.scattered_ore.discard_chance_on_air_exposure":"暴露在空气中放弃该次生成的概率","feature.scattered_ore.size":"大小","feature.scattered_ore.targets":"目标","feature.scattered_ore.targets.entry.state":"状态","feature.scattered_ore.targets.entry.target":"目标","feature.sea_pickle.count":"数量","feature.seagrass.probability":"概率","feature.simple_block.place_in":"将要放置的位置的方块","feature.simple_block.place_in.entry":"状态","feature.simple_block.place_on":"下方的方块","feature.simple_block.place_on.entry":"状态","feature.simple_block.place_under":"上方的方块","feature.simple_block.place_under.entry":"状态","feature.simple_block.to_place":"将要放置的方块","feature.simple_random_selector.features":"地物","feature.simple_random_selector.features.entry":"地物","feature.small_dripstone.chance_of_taller_dripstone":"更高的滴水石的生成几率","feature.small_dripstone.empty_space_search_radius":"空域搜索半径","feature.small_dripstone.max_offset_from_origin":"距来源的最大偏移","feature.small_dripstone.max_placements":"最大放置","feature.spring_feature.hole_count":"坑洞数量","feature.spring_feature.required_block_below":"下方需要方块","feature.spring_feature.rock_count":"岩石数量","feature.spring_feature.state":"状态","feature.spring_feature.valid_blocks":"有效方块","feature.string":"引用","feature.tree.decorators":"装饰器","feature.tree.decorators.entry":"树装饰器","feature.tree.foliage_placer":"树叶放置器","feature.tree.heightmap":"高度图","feature.tree.ignore_vines":"忽略藤蔓","feature.tree.leaves_provider":"树叶方块声明","feature.tree.max_water_depth":"树生成的最大水深","feature.tree.minimum_size":"最小尺寸","feature.tree.minimum_size.limit":"限制","feature.tree.minimum_size.lower_size":"下部尺寸","feature.tree.minimum_size.middle_size":"中部尺寸","feature.tree.minimum_size.min_clipped_height":"最小剪裁高度","feature.tree.minimum_size.type":"最小尺寸","feature.tree.minimum_size.upper_limit":"上部限制","feature.tree.minimum_size.upper_size":"上部尺寸","feature.tree.trunk_placer":"树干放置器","feature.tree.trunk_provider":"树干方块声明","feature.type":"类型","float_provider.value.deviation":"离差","float_provider.value.max":"最大值","float_provider.value.mean":"算术平均数","float_provider.value.min":"最小值","float_provider.value.plateau":"上底","float_provider.type.clamped_normal":"截断正态分布","float_provider.type.constant":"常数+","float_provider.type.number":"常数","float_provider.type.trapezoid":"梯形分布","float_provider.type.uniform":"均匀分布","float_provider.value":"值","fluid.fluid":"流体 ID","fluid.state":"流体状态","fluid.tag":"流体标签","fluid_state.Name":"名称","fluid_state.Properties":"属性","foliage_placer.crown_height":"树冠高度","foliage_placer.height":"高度","foliage_placer.offset":"偏移","foliage_placer.radius":"半径","foliage_placer.trunk_height":"树干高度","foliage_placer.type":"类型","function.apply_bonus.enchantment":"附魔","function.apply_bonus.formula":"公式","function.apply_bonus.formula.binomial_with_bonus_count":"带奖励数量的二项分布","function.apply_bonus.formula.ore_drops":"矿物掉落","function.apply_bonus.formula.uniform_bonus_count":"带奖励数量的均匀分布","function.apply_bonus.parameters":"参数","function.apply_bonus.parameters.bonusMultiplier":"乘数","function.apply_bonus.parameters.extra":"额外值","function.apply_bonus.parameters.probability":"概率","function.copy_name.source":"源","function.copy_nbt.ops":"NBT 操作","function.copy_nbt.ops.entry":"操作","function.copy_nbt.source":"源","function.copy_state.block":"方块","function.copy_state.properties":"方块状态","function.copy_state.properties.entry":"属性","function.enchant_randomly.enchantments":"可选附魔","function.enchant_randomly.enchantments.entry":"魔咒","function.enchant_with_levels.levels":"等级","function.enchant_with_levels.treasure":"宝藏型魔咒","function.exploration_map.decoration":"图标","function.exploration_map.destination":"目标","function.exploration_map.search_radius":"搜寻半径","function.exploration_map.skip_existing_chunks":"跳过已生成区块","function.exploration_map.zoom":"缩放等级","function.fill_player_head.entity":"实体","function.function":"函数","function.limit_count.limit":"限额","function.list":"多个","function.looting_enchant.count":"数量","function.looting_enchant.limit":"限制","function.object":"单个","function.set_attributes.modifiers":"属性修饰符","function.set_attributes.modifiers.entry":"属性修饰符","function.set_banner_pattern.append":"添加","function.set_banner_pattern.patterns":"图案","function.set_contents.entries":"内容物","function.set_contents.entries.entry":"项目","function.set_count.add":"加上","function.set_count.add.help":"若为true,将会相对于目前的物品数量更改","function.set_count.count":"数量","function.set_damage.add":"加上","function.set_damage.add.help":"若为true,将会相对于目前的损伤值更改","function.set_damage.damage":"损伤值","function.set_data.data":"数据值","function.set_enchantments.add":"加上","function.set_enchantments.add.help":"若为true,将会相对于目前的等级更改","function.set_enchantments.enchantments":"魔咒","function.set_loot_table.name":"战利品表名","function.set_loot_table.seed":"种子","function.set_lore.entity":"实体","function.set_lore.lore":"物品描述","function.set_lore.lore.entry":"一行","function.set_lore.replace":"覆盖","function.set_name.entity":"实体","function.set_name.name":"名称","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"状态效果","function.set_stew_effect.effects.entry":"效果种类","function.set_stew_effect.effects.entry.duration":"持续时间","function.set_stew_effect.effects.entry.type":"效果种类","functions":"函数","functions.entry":"函数","gamemode.adventure":"冒险模式","gamemode.creative":"创造模式","gamemode.spectator":"旁观模式","gamemode.survival":"生存模式","generation_step.air":"空气","generation_step.liquid":"液体","generator.biome_source.altitude_noise":"高度噪声","generator.biome_source.biome":"生物群系","generator.biome_source.biomes":"生物群系","generator.biome_source.humidity_noise":"湿度噪声","generator.biome_source.large_biomes":"巨型生物群系","generator.biome_source.legacy_biome_init_layer":"旧版生物群系初始层","generator.biome_source.preset":"生物群系预设","generator.biome_source.preset.nether":"下界","generator.biome_source.scale":"缩放","generator.biome_source.seed":"生物群系种子","generator.biome_source.temperature_noise":"温度噪声","generator.biome_source.type":"生物群系源","generator.biome_source.weirdness_noise":"奇异度噪声","generator.seed":"维度种子","generator.settings":"生成器设置","generator.settings.biome":"生物群系","generator.settings.lakes":"湖","generator.settings.layers":"层","generator.settings.layers.entry":"层","generator.settings.layers.entry.block":"方块 ID","generator.settings.layers.entry.height":"高度","generator.settings.object":"自定义","generator.settings.presets.amplified":"放大化","generator.settings.presets.caves":"洞穴","generator.settings.presets.end":"末地","generator.settings.presets.floating_islands":"浮岛","generator.settings.presets.nether":"下界","generator.settings.presets.overworld":"主世界","generator.settings.string":"预设","generator.settings.structures":"结构","generator.settings.structures.stronghold":"要塞","generator.settings.structures.stronghold.count":"数量","generator.settings.structures.stronghold.distance":"距离","generator.settings.structures.stronghold.spread":"扩散度","generator.settings.structures.structures":"结构","generator.type":"生成器类型","generator_biome.biome":"生物群系","generator_biome.parameters":"参数","generator_biome.parameters.altitude":"海拔","generator_biome.parameters.help":"这些参数决定了该生物群系被生成时的位置。每个生物群系都必须拥有不同的设置组合。设置相近的生物群系会生成在一起。","generator_biome.parameters.humidity":"湿度","generator_biome.parameters.offset":"偏移","generator_biome.parameters.temperature":"温度","generator_biome.parameters.weirdness":"奇异度","generator_biome_noise.amplitudes":"振幅","generator_biome_noise.amplitudes.entry":"倍频 %0%","generator_biome_noise.firstOctave":"主倍频","generator_structure.salt":"盐值","generator_structure.separation":"间隔","generator_structure.separation.help":"以区块为单位该种类的两种结构之间的最小距离。","generator_structure.spacing":"空位","generator_structure.spacing.help":"该种类的两种结构间的平均距离。","heightmap_type.MOTION_BLOCKING":"阻止实体移动层","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"阻止实体移动层(不含树叶)","heightmap_type.OCEAN_FLOOR":"海床层","heightmap_type.OCEAN_FLOOR_WG":"海床层(世界生成)","heightmap_type.WORLD_SURFACE":"地表层","heightmap_type.WORLD_SURFACE_WG":"地表层(世界生成)","hide_source":"隐藏源代码","item.count":"数量","item.durability":"耐久度","item.enchantments":"魔咒","item.enchantments.entry":"附魔","item.item":"名称","item.nbt":"NBT","item.potion":"药水","item.tag":"标签","key.advancements":"进度","key.attack":"攻击/摧毁","key.back":"向后移动","key.chat":"打开聊天栏","key.command":"输入命令","key.drop":"丢弃所选物品","key.forward":"向前移动","key.fullscreen":"全屏显示切换","key.hotbar.1":"快捷栏 1","key.hotbar.2":"快捷栏 2","key.hotbar.3":"快捷栏 3","key.hotbar.4":"快捷栏 4","key.hotbar.5":"快捷栏 5","key.hotbar.6":"快捷栏 6","key.hotbar.7":"快捷栏 7","key.hotbar.8":"快捷栏 8","key.hotbar.9":"快捷栏 9","key.inventory":"开启/关闭物品栏","key.jump":"跳跃","key.left":"向左","key.loadToolbarActivator":"加载物品工具栏","key.pickItem":"选取方块","key.playerlist":"玩家列表","key.right":"向右","key.saveToolbarActivator":"保存物品工具栏","key.screenshot":"截图","key.smoothCamera":"切换电影视角","key.sneak":"潜行","key.spectatorOutlines":"高亮玩家(旁观者)","key.sprint":"疾跑","key.swapOffhand":"与副手交换物品","key.togglePerspective":"切换视角","key.use":"使用物品/放置方块","location.biome":"生物群系","location.block":"方块","location.dimension":"维度","location.feature":"地物","location.fluid":"流体","location.light":"光照","location.light.light":"可见光等级","location.position":"位置","location.position.x":"X 坐标","location.position.y":"Y 坐标","location.position.z":"Z 坐标","location.smokey":"烟熏","loot_condition_type.alternative":"析取范式(或)","loot_condition_type.block_state_property":"方块状态属性","loot_condition_type.damage_source_properties":"伤害源属性","loot_condition_type.entity_properties":"实体属性","loot_condition_type.entity_scores":"实体分数","loot_condition_type.inverted":"取反(非)","loot_condition_type.killed_by_player":"被玩家击杀","loot_condition_type.location_check":"检查位置","loot_condition_type.match_tool":"匹配工具","loot_condition_type.random_chance":"随机概率","loot_condition_type.random_chance_with_looting":"受抢夺魔咒影响的随机概率","loot_condition_type.reference":"引用 predicate 文件","loot_condition_type.survives_explosion":"未被爆炸破坏","loot_condition_type.table_bonus":"附魔奖励","loot_condition_type.time_check":"检查时间","loot_condition_type.value_check":"检查值","loot_condition_type.weather_check":"检查天气","loot_entry.dynamic.name":"名称","loot_entry.item.name":"名称","loot_entry.loot_table.name":"战利品表名","loot_entry.quality":"每级幸运对权重的影响","loot_entry.tag.expand":"展开","loot_entry.tag.expand.help":"如果为 false,该项目将返回指定物品标签的全部内容;否则将会从中随机抽取一个返回。","loot_entry.tag.name":"物品标签名","loot_entry.type":"类型","loot_entry.weight":"权重","loot_function_type.apply_bonus":"应用奖励公式","loot_function_type.copy_name":"复制方块实体显示名","loot_function_type.copy_nbt":"复制 NBT","loot_function_type.copy_state":"复制方块状态","loot_function_type.enchant_randomly":"随机附魔","loot_function_type.enchant_with_levels":"给予等价于经验等级的随机魔咒","loot_function_type.exploration_map":"设置探险家地图","loot_function_type.explosion_decay":"爆炸损耗","loot_function_type.fill_player_head":"填充玩家头颅","loot_function_type.furnace_smelt":"熔炉熔炼","loot_function_type.limit_count":"限制堆叠数量","loot_function_type.looting_enchant":"根据抢夺魔咒调整物品数量","loot_function_type.set_attributes":"设置属性","loot_function_type.set_banner_pattern":"设置旗帜图案","loot_function_type.set_contents":"设置内容物","loot_function_type.set_count":"设置物品数量","loot_function_type.set_damage":"设置损伤值","loot_function_type.set_data":"设置数据值","loot_function_type.set_enchantments":"设置魔咒","loot_function_type.set_loot_table":"设置战利品表","loot_function_type.set_lore":"设置物品描述","loot_function_type.set_name":"设置物品名","loot_function_type.set_nbt":"设置 NBT","loot_function_type.set_stew_effect":"设置迷之炖菜状态效果","loot_pool.bonus_rolls":"每级幸运增加的抽取次数","loot_pool.entries":"项目","loot_pool.entries.entry":"项目","loot_pool.rolls":"抽取次数","loot_pool.rolls.help":"随机抽取的项目数。","loot_pool_entry_type.alternatives":"析取范式","loot_pool_entry_type.alternatives.help":"获取第一个满足条件的子项目。","loot_pool_entry_type.dynamic":"动态","loot_pool_entry_type.dynamic.help":"获取特定方块的特定掉落物。","loot_pool_entry_type.empty":"空","loot_pool_entry_type.empty.help":"不向随机池中加入任何物品。","loot_pool_entry_type.group":"组","loot_pool_entry_type.group.help":"从所有满足条件的子项目中随机抽取一个。","loot_pool_entry_type.item":"物品","loot_pool_entry_type.item.help":"加入一种物品。","loot_pool_entry_type.loot_table":"战利品表","loot_pool_entry_type.loot_table.help":"加入另一个战利品表的内容。","loot_pool_entry_type.sequence":"序列","loot_pool_entry_type.sequence.help":"从第一个不满足条件的子项目之前的所有子项目中随机抽取一个。","loot_pool_entry_type.tag":"物品标签","loot_pool_entry_type.tag.help":"添加一个物品标签的内容。","loot_table.pools":"随机池","loot_table.pools.entry":"随机池","loot_table.type":"类型","luck_based":"受幸运等级影响","nbt_operation.op":"操作类型","nbt_operation.op.append":"追加","nbt_operation.op.merge":"合并","nbt_operation.op.replace":"替换","nbt_operation.source":"复制源","nbt_operation.target":"复制目标","nbt_provider.source":"来源","nbt_provider.target":"目标","nbt_provider.type":"类型","nbt_provider.type.context":"上下文+","nbt_provider.type.storage":"命令存储","nbt_provider.type.string":"上下文","noise_settings.aquifers_enabled":"是否生成含水层","noise_settings.bedrock_floor_position":"基岩地板位置","noise_settings.bedrock_floor_position.help":"基岩地板的位置。数字越大地板越靠上。","noise_settings.bedrock_roof_position":"基岩天花板位置","noise_settings.bedrock_roof_position.help":"基岩天花板从世界高度开始计算的相对位置。数字越大天花板越靠下。","noise_settings.biome":"生物群系","noise_settings.deepslate_enabled":"生成深板岩","noise_settings.default_block":"默认方块","noise_settings.default_fluid":"默认流体","noise_settings.disable_mob_generation":"禁用生物生成","noise_settings.disable_mob_generation.help":"如果设置为 true,生成世界时不会生成生物。","noise_settings.name":"名称","noise_settings.noise":"噪声选项","noise_settings.noise.amplified":"放大化","noise_settings.noise.bottom_slide":"底部曲线","noise_settings.noise.bottom_slide.help":"改变世界底部曲线。底部曲线大小(size)为0时没有效果。","noise_settings.noise.bottom_slide.offset":"偏移","noise_settings.noise.bottom_slide.offset.help":"用于生成世界底部的方块,在方块密度已设置为“目标”的值后,为“偏差 * 水平大小 * 4”定义一个允许的偏差范围。","noise_settings.noise.bottom_slide.size":"大小","noise_settings.noise.bottom_slide.size.help":"用于生成世界底部的方块,在已有的方块密度和目标被插值后,为“偏差 * 水平大小 * 4”定义一个允许范围。","noise_settings.noise.bottom_slide.target":"目标","noise_settings.noise.bottom_slide.target.help":"目标方块密度。正值增加地形起伏,负值则反之。","noise_settings.noise.density_factor":"密度因子","noise_settings.noise.density_factor.help":"决定高度影响地形的程度。正值在底部产生陆地。接近0的值产生均匀的类洞穴地形。","noise_settings.noise.density_offset":"密度偏移","noise_settings.noise.density_offset.help":"影响平均地形高度。设为0将使地形高度变为高度(height)的一半。设为正值将抬升高度。","noise_settings.noise.height":"高度","noise_settings.noise.height.help":"方块可以生成的总高度。Max X = Min Y + Height。","noise_settings.noise.island_noise_override":"岛屿噪声覆盖","noise_settings.noise.island_noise_override.help":"如果设置为 true,生成的地形形状会像末地岛屿一样。","noise_settings.noise.min_y":"最小高度","noise_settings.noise.min_y.help":"方块开始生成的最小高度。","noise_settings.noise.random_density_offset":"随机密度偏移","noise_settings.noise.sampling":"采样","noise_settings.noise.sampling.xz_factor":"XZ 因子","noise_settings.noise.sampling.xz_scale":"XZ 缩放","noise_settings.noise.sampling.y_factor":"Y 因子","noise_settings.noise.sampling.y_scale":"Y 缩放","noise_settings.noise.simplex_surface_noise":"单纯形表面噪声","noise_settings.noise.size_horizontal":"水平大小","noise_settings.noise.size_vertical":"垂直大小","noise_settings.noise.top_slide":"顶部曲线","noise_settings.noise.top_slide.help":"改变世界顶部曲线。顶部曲线大小(Size)为0时没有效果。","noise_settings.noise.top_slide.offset":"偏移","noise_settings.noise.top_slide.offset.help":"用于生成世界顶部的方块,在方块密度已设置为“目标”的值后,为“偏差 * 水平大小 * 4”定义一个允许的偏差范围。","noise_settings.noise.top_slide.size":"大小","noise_settings.noise.top_slide.size.help":"用于生成世界顶部的方块,在已有的方块密度和目标被插值后,为“偏差 * 水平大小 * 4”定义一个允许范围。","noise_settings.noise.top_slide.target":"目标","noise_settings.noise.top_slide.target.help":"目标方块密度。正值增加地形起伏,负值则反之。","noise_settings.noise_caves_enabled":"生成噪声洞穴","noise_settings.sea_level":"海平面","noise_settings.structures":"结构","noise_settings.structures.stronghold":"要塞","noise_settings.structures.stronghold.count":"数量","noise_settings.structures.stronghold.distance":"距离","noise_settings.structures.stronghold.spread":"分散","noise_settings.structures.structures":"结构","number_provider.max":"最大值","number_provider.min":"最小值","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"缩放","number_provider.score":"记分项","number_provider.target":"目标","number_provider.type":"类型","number_provider.type.binomial":"二项分布","number_provider.type.constant":"常数+","number_provider.type.number":"常数","number_provider.type.object":"均匀分布","number_provider.type.score":"分数","number_provider.type.uniform":"均匀分布+","number_provider.value":"数字","player.advancements":"进度","player.advancements.entry":"进度","player.gamemode":"游戏模式","player.level":"经验等级","player.recipes":"配方","player.stats":"统计","player.stats.entry":"统计","pos_rule_test.always_true":"总是为真","pos_rule_test.axis":"轴","pos_rule_test.axis.x":"X 轴","pos_rule_test.axis.y":"Y 轴","pos_rule_test.axis.z":"Z 轴","pos_rule_test.axis_aligned_linear_pos":"轴对齐线性插值坐标","pos_rule_test.linear_pos":"线性插值坐标","pos_rule_test.max_chance":"最大几率","pos_rule_test.max_dist":"最大距离","pos_rule_test.min_chance":"最小几率","pos_rule_test.min_dist":"最小距离","pos_rule_test.predicate_type":"类型","processor.block_age.mossiness":"苔藓度","processor.block_ignore.blocks":"方块","processor.block_ignore.blocks.entry":"状态","processor.block_rot.integrity":"完整性","processor.gravity.heightmap":"高度图","processor.gravity.offset":"偏移","processor.processor_type":"类型","processor.rule.rules":"规则","processor.rule.rules.entry":"规则","processor_list.processors":"处理器","processor_list.processors.entry":"处理器","processor_rule.input_predicate":"输入方块处理谓词","processor_rule.location_predicate":"结构生成前位置方块处理谓词","processor_rule.output_nbt":"输出 NBT","processor_rule.output_state":"输出方块状态","processor_rule.position_predicate":"位置方块处理谓词","processors.object":"自定义","processors.string":"引用","range.binomial":"二项分布","range.max":"最大值","range.min":"最小值","range.n":"N","range.number":"精确值","range.object":"范围","range.p":"P","range.type":"类型","range.uniform":"均匀分布","requirements":"应当达成","rule_test.always_true":"总是为真","rule_test.block":"方块","rule_test.block_match":"方块匹配","rule_test.block_state":"状态","rule_test.blockstate_match":"方块状态匹配","rule_test.predicate_type":"类型","rule_test.probability":"概率","rule_test.random_block_match":"方块随机匹配","rule_test.random_blockstate_match":"方块状态随机匹配","rule_test.tag":"标签","rule_test.tag_match":"标签匹配","score_provider.name":"名称","score_provider.target":"目标","score_provider.type":"类型","score_provider.type.context":"上下文+","score_provider.type.fixed":"固定","score_provider.type.string":"上下文","slot.chest":"胸部","slot.feet":"脚部","slot.head":"头部","slot.legs":"腿部","slot.mainhand":"主手","slot.offhand":"副手","statistic.stat":"统计","statistic.type":"类型","statistic.type.broken":"用坏","statistic.type.crafted":"合成","statistic.type.custom":"Custom(其他)","statistic.type.dropped":"掉落","statistic.type.killed":"击杀","statistic.type.killedByTeam":"被队伍击杀","statistic.type.killed_by":"被击杀","statistic.type.mined":"挖掘","statistic.type.picked_up":"捡起","statistic.type.teamkill":"击杀队伍","statistic.type.used":"使用","statistic.value":"值","status_effect.ambient":"是否为信标施加","status_effect.amplifier":"等级","status_effect.duration":"持续时间","status_effect.visible":"是否可见","structure_feature.biome_temp":"生物群系温度","structure_feature.biome_temp.cold":"寒冷","structure_feature.biome_temp.warm":"温暖","structure_feature.cluster_probability":"成簇概率","structure_feature.config":"配置","structure_feature.is_beached":"是否搁浅","structure_feature.large_probability":"大型概率","structure_feature.portal_type":"传送门类型","structure_feature.portal_type.desert":"沙漠","structure_feature.portal_type.jungle":"丛林","structure_feature.portal_type.mountain":"山","structure_feature.portal_type.nether":"下界","structure_feature.portal_type.ocean":"海洋","structure_feature.portal_type.standard":"基本","structure_feature.portal_type.swamp":"沼泽","structure_feature.probability":"概率","structure_feature.size":"尺寸","structure_feature.start_pool":"起始池","structure_feature.type":"类型","structure_feature.type.mesa":"恶地","structure_feature.type.normal":"普通","surface_builder.config":"配置","surface_builder.top_material":"顶部材料","surface_builder.type":"类型","surface_builder.under_material":"下层材料","surface_builder.underwater_material":"水下材料","table.type":"战利品表类型","table.type.block":"方块","table.type.chest":"箱子","table.type.empty":"空","table.type.entity":"实体","table.type.fishing":"钓鱼","table.type.generic":"通用","tag.replace":"覆盖","tag.values":"值","template_element.element_type":"类型","template_element.elements":"元素","template_element.feature":"地物","template_element.location":"结构的命名空间 ID","template_element.processors":"处理器","template_element.projection":"投影","template_element.projection.rigid":"直接生成","template_element.projection.terrain_matching":"匹配地形","template_pool.elements":"元素","template_pool.elements.entry":"元素","template_pool.elements.entry.element":"元素","template_pool.elements.entry.weight":"权重","template_pool.fallback":"回落池","template_pool.name":"名称","text_component":"文本组件","text_component.boolean":"布尔值","text_component.list":"数组","text_component.number":"数字","text_component.object":"对象","text_component.object.keybind":"键位绑定","text_component.object.nbt":"NBT值","text_component.object.score":"分数值","text_component.object.selector":"实体名称","text_component.object.text":"纯文本","text_component.object.translation":"翻译文本","text_component.string":"字符串","text_component_object.block":"方块","text_component_object.bold":"粗体","text_component_object.clickEvent":"点击事件","text_component_object.clickEvent.action":"行为","text_component_object.clickEvent.action.change_page":"翻页","text_component_object.clickEvent.action.copy_to_clipboard":"复制到剪贴板","text_component_object.clickEvent.action.open_file":"打开文件","text_component_object.clickEvent.action.open_url":"打开链接","text_component_object.clickEvent.action.run_command":"运行命令","text_component_object.clickEvent.action.suggest_command":"建议命令","text_component_object.clickEvent.value":"值","text_component_object.color":"颜色","text_component_object.entity":"实体","text_component_object.extra":"附加","text_component_object.font":"字体","text_component_object.hoverEvent":"悬浮事件","text_component_object.hoverEvent.action":"行为","text_component_object.hoverEvent.action.show_entity":"显示实体","text_component_object.hoverEvent.action.show_item":"显示物品","text_component_object.hoverEvent.action.show_text":"显示文字","text_component_object.hoverEvent.contents":"内容","text_component_object.hoverEvent.value":"值","text_component_object.insertion":"插入","text_component_object.interpret":"解析","text_component_object.italic":"斜体","text_component_object.keybind":"键位","text_component_object.nbt":"NBT","text_component_object.obfuscated":"混淆","text_component_object.score":"分数","text_component_object.score.name":"名称","text_component_object.score.objective":"记分项","text_component_object.score.value":"值","text_component_object.selector":"选择器","text_component_object.storage":"储存","text_component_object.strikethrough":"删除线","text_component_object.text":"文本","text_component_object.translate":"可翻译文本","text_component_object.underlined":"下划线","text_component_object.with":"以之翻译","tree_decorator.alter_ground.provider":"状态声明","tree_decorator.beehive.probability":"概率","tree_decorator.cocoa.probability":"概率","tree_decorator.type":"类型","true":"是","trunk_placer.base_height":"基础高度","trunk_placer.height_rand_a":"水平随机高度","trunk_placer.height_rand_b":"竖直随机高度","trunk_placer.type":"类型","uniform_int.base":"基值","uniform_int.number":"常数","uniform_int.object":"均匀分布","uniform_int.spread":"扩散","unset":"未指定","update.pack_format":"将pack_format升级到%0%","vertical_anchor.above_bottom":"比底部高","vertical_anchor.absolute":"指定特定层","vertical_anchor.below_top":"比顶部低","world.bonus_chest":"生成奖励箱","world.generate_features":"生成结构","world.seed":"种子","world_settings.bonus_chest":"生成奖励箱","world_settings.dimensions":"维度","world_settings.generate_features":"生成地物","world_settings.seed":"世界种子","worldgen.warning":"本特性为高度实验性的特性,很不稳定,在未来的版本中随时会有变动。请做好游戏在创建世界时崩溃的准备。","worldgen/biome_source.checkerboard":"棋盘","worldgen/biome_source.checkerboard.help":"以棋盘状区块图案生成的生物群系。","worldgen/biome_source.fixed":"固定","worldgen/biome_source.fixed.help":"整个世界只有单一生物群系。","worldgen/biome_source.multi_noise":"多重噪声","worldgen/biome_source.multi_noise.help":"可配置参数的自定义生物群系分布。","worldgen/biome_source.the_end":"末地","worldgen/biome_source.the_end.help":"末地的生物群系分布。","worldgen/biome_source.vanilla_layered":"原版分层","worldgen/biome_source.vanilla_layered.help":"主世界的生物群系分布。","worldgen/block_placer_type.column_placer":"柱状","worldgen/block_placer_type.double_plant_placer":"双层植物","worldgen/block_placer_type.simple_block_placer":"简单","worldgen/block_state_provider_type.forest_flower_provider":"繁花森林方块状态声明","worldgen/block_state_provider_type.plain_flower_provider":"平原花方块状态声明","worldgen/block_state_provider_type.rotated_block_provider":"旋转方块状态声明","worldgen/block_state_provider_type.simple_state_provider":"简单方块状态声明","worldgen/block_state_provider_type.weighted_state_provider":"加权方块状态声明","worldgen/carver.canyon":"峡谷","worldgen/carver.cave":"洞穴","worldgen/carver.nether_cave":"下界洞穴","worldgen/carver.underwater_canyon":"水下峡谷","worldgen/carver.underwater_cave":"水下洞穴","worldgen/chunk_generator.debug":"调试世界","worldgen/chunk_generator.flat":"超平坦","worldgen/chunk_generator.noise":"默认","worldgen/feature_size_type.three_layers_feature_size":"三层","worldgen/feature_size_type.two_layers_feature_size":"两层","worldgen/foliage_placer_type.acacia_foliage_placer":"金合欢","worldgen/foliage_placer_type.blob_foliage_placer":"橡树/白桦","worldgen/foliage_placer_type.bush_foliage_placer":"金字塔形","worldgen/foliage_placer_type.dark_oak_foliage_placer":"深色橡树","worldgen/foliage_placer_type.fancy_foliage_placer":"球形","worldgen/foliage_placer_type.jungle_foliage_placer":"丛林","worldgen/foliage_placer_type.mega_pine_foliage_placer":"双层稀疏云杉","worldgen/foliage_placer_type.pine_foliage_placer":"稀疏云杉","worldgen/foliage_placer_type.spruce_foliage_placer":"云杉","worldgen/structure_pool_element.empty_pool_element":"空","worldgen/structure_pool_element.feature_pool_element":"地物","worldgen/structure_pool_element.legacy_single_pool_element":"单个(旧版)","worldgen/structure_pool_element.list_pool_element":"列表","worldgen/structure_pool_element.single_pool_element":"单个","worldgen/structure_processor.blackstone_replace":"替代黑石","worldgen/structure_processor.block_age":"做旧方块","worldgen/structure_processor.block_ignore":"忽略方块","worldgen/structure_processor.block_rot":"随机移除方块","worldgen/structure_processor.gravity":"重力","worldgen/structure_processor.jigsaw_replacement":"拼图替换","worldgen/structure_processor.lava_submerged_block":"熔岩湮没方块","worldgen/structure_processor.nop":"无","worldgen/structure_processor.rule":"规则","worldgen/tree_decorator_type.alter_ground":"地面方块替换","worldgen/tree_decorator_type.beehive":"蜂箱","worldgen/tree_decorator_type.cocoa":"可可果","worldgen/tree_decorator_type.leave_vine":"树叶藤蔓","worldgen/tree_decorator_type.trunk_vine":"树干藤蔓","worldgen/trunk_placer_type.dark_oak_trunk_placer":"深色橡木型","worldgen/trunk_placer_type.fancy_trunk_placer":"多分叉型","worldgen/trunk_placer_type.forking_trunk_placer":"单分叉型","worldgen/trunk_placer_type.giant_trunk_placer":"2×2竖直型","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"大丛林木型","worldgen/trunk_placer_type.straight_trunk_placer":"竖直型"}');export default e;
+//# sourceMappingURL=zh-cn.7cd3f35b.js.map
diff --git a/assets/zh-cn.7cd3f35b.js.map b/assets/zh-cn.7cd3f35b.js.map
new file mode 100644
index 00000000..5b5148e0
--- /dev/null
+++ b/assets/zh-cn.7cd3f35b.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"zh-cn.7cd3f35b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/assets/zh-cn.fd769298.js b/assets/zh-cn.fd769298.js
deleted file mode 100644
index 5b4474e9..00000000
--- a/assets/zh-cn.fd769298.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var e=JSON.parse('{"advancement.criteria":"判据","advancement.display":"显示","advancement.display.announce_to_chat":"在聊天栏提示","advancement.display.background":"背景","advancement.display.description":"描述","advancement.display.frame":"框架类型","advancement.display.frame.challenge":"挑战","advancement.display.frame.goal":"目标","advancement.display.frame.task":"进度","advancement.display.help":"如果存在,该进度将会在进度界面中显示。","advancement.display.hidden":"隐藏","advancement.display.icon":"图标","advancement.display.icon.item":"图标物品","advancement.display.icon.nbt":"图标物品 NBT","advancement.display.show_toast":"显示右上角提示信息","advancement.display.title":"标题","advancement.parent":"父进度","advancement.rewards":"奖励","advancement.rewards.experience":"经验","advancement.rewards.function":"函数","advancement.rewards.loot":"战利品表","advancement.rewards.recipes":"配方","advancement_trigger.bee_nest_destroyed":"摧毁蜂巢","advancement_trigger.bred_animals":"繁殖动物","advancement_trigger.brewed_potion":"酿造药水","advancement_trigger.changed_dimension":"改变维度","advancement_trigger.channeled_lightning":"引雷魔咒击杀实体","advancement_trigger.construct_beacon":"构建信标结构","advancement_trigger.consume_item":"消耗物品","advancement_trigger.cured_zombie_villager":"治愈僵尸村民","advancement_trigger.effects_changed":"状态效果改变","advancement_trigger.enchanted_item":"附魔物品","advancement_trigger.enter_block":"进入方块","advancement_trigger.entity_hurt_player":"实体伤害玩家","advancement_trigger.entity_killed_player":"实体击杀玩家","advancement_trigger.filled_bucket":"填充桶","advancement_trigger.fishing_rod_hooked":"钓鱼竿勾住东西","advancement_trigger.hero_of_the_village":"村庄英雄","advancement_trigger.impossible":"不可达成","advancement_trigger.inventory_changed":"物品栏改变","advancement_trigger.item_durability_changed":"物品耐久度改变","advancement_trigger.item_used_on_block":"对方块使用物品","advancement_trigger.killed_by_crossbow":"使用弩箭击杀","advancement_trigger.levitation":"漂浮","advancement_trigger.location":"位置","advancement_trigger.nether_travel":"下界旅行","advancement_trigger.placed_block":"放置方块","advancement_trigger.player_generates_container_loot":"玩家生成容器战利品","advancement_trigger.player_hurt_entity":"玩家伤害实体","advancement_trigger.player_killed_entity":"玩家击杀实体","advancement_trigger.recipe_unlocked":"配方解锁","advancement_trigger.safely_harvest_honey":"安全地采集蜂蜜","advancement_trigger.shot_crossbow":"使用弩","advancement_trigger.slept_in_bed":"睡觉","advancement_trigger.slide_down_block":"从蜂蜜块滑下","advancement_trigger.summoned_entity":"召唤实体","advancement_trigger.tame_animal":"驯服动物","advancement_trigger.target_hit":"击中标靶","advancement_trigger.thrown_item_picked_up_by_entity":"丢出的物品被实体捡起","advancement_trigger.tick":"刻","advancement_trigger.used_ender_eye":"使用末影之眼","advancement_trigger.used_totem":"使用不死图腾","advancement_trigger.villager_trade":"村民交易","advancement_trigger.voluntary_exile":"引发袭击","attribute.generic_armor":"盔甲防御点数","attribute.generic_armor_toughness":"盔甲韧性","attribute.generic_attack_damage":"普通攻击伤害","attribute.generic_attack_knockback":"击退距离","attribute.generic_attack_speed":"攻击速度","attribute.generic_flying_speed":"飞行速度","attribute.generic_follow_range":"追踪范围","attribute.generic_knockback_resistance":"击退抗性","attribute.generic_luck":"幸运","attribute.generic_max_health":"最大生命值","attribute.generic_movement_speed":"移动速度","attribute.horse.jump_strength":"弹跳力","attribute.zombie.spawn_reinforcements":"连带生成新僵尸的可能性","attribute_modifier.amount":"数额","attribute_modifier.attribute":"属性","attribute_modifier.name":"名称","attribute_modifier.operation":"运算模式","attribute_modifier.operation.addition":"加减数额","attribute_modifier.operation.multiply_base":"乘上数额","attribute_modifier.operation.multiply_total":"乘上(数额 + 1)","attribute_modifier.slot":"栏位","attribute_modifier.slot.list":"多个","attribute_modifier.slot.string":"单个","badge.experimental":"实验性","badge.unstable":"不稳定","biome.carvers":"地形雕刻器","biome.carvers.air":"空气","biome.carvers.liquid":"液体","biome.category":"分类","biome.creature_spawn_probability":"生物生成几率","biome.depth":"深度","biome.depth.help":"使地形抬升或下沉。正值被认为是陆地,负值被认为是海洋。","biome.downfall":"降雨(此参数用来控制草、树叶的颜色、火的蔓延速度等)","biome.effects":"环境效果","biome.effects.additions_sound":"附加音效","biome.effects.additions_sound.sound":"声音","biome.effects.additions_sound.tick_chance":"每刻播放的概率","biome.effects.ambient_sound":"环境音效","biome.effects.fog_color":"迷雾颜色","biome.effects.foliage_color":"树叶颜色","biome.effects.grass_color":"草的颜色","biome.effects.grass_color_modifier":"草颜色修饰子","biome.effects.grass_color_modifier.dark_forest":"黑森林","biome.effects.grass_color_modifier.none":"无","biome.effects.grass_color_modifier.swamp":"沼泽","biome.effects.mood_sound":"氛围音效","biome.effects.mood_sound.block_search_extent":"播放位置搜索半径","biome.effects.mood_sound.offset":"偏移","biome.effects.mood_sound.sound":"音效","biome.effects.mood_sound.tick_delay":"刻延时","biome.effects.music":"音乐","biome.effects.music.max_delay":"最大延时","biome.effects.music.min_delay":"最小延时","biome.effects.music.replace_current_music":"替换当前音乐","biome.effects.music.sound":"音效","biome.effects.particle":"粒子","biome.effects.particle.options":"选项","biome.effects.particle.options.type":"粒子类型","biome.effects.particle.probability":"概率","biome.effects.sky_color":"天空颜色","biome.effects.water_color":"水的颜色","biome.effects.water_fog_color":"水中迷雾颜色","biome.features":"地物","biome.features.entry":"步骤 %0%","biome.features.entry.entry":"地物","biome.player_spawn_friendly":"玩家生成偏好","biome.player_spawn_friendly.help":"若为 true,世界出生点会优先选定在此生物群系内。","biome.precipitation":"降雨量","biome.precipitation.none":"无","biome.precipitation.rain":"雨","biome.precipitation.snow":"雪","biome.scale":"规模","biome.scale.help":"竖直方向上拉伸地形。值越小,地形越平整。","biome.spawn_costs":"生成代价","biome.spawn_costs.charge":"电荷量","biome.spawn_costs.energy_budget":"电势预算","biome.spawners":"生成器","biome.spawners.ambient":"环境生物","biome.spawners.creature":"生物(非怪物)","biome.spawners.entry":"生成","biome.spawners.entry.maxCount":"最大数量","biome.spawners.entry.minCount":"最小数量","biome.spawners.entry.type":"类型","biome.spawners.entry.weight":"权重","biome.spawners.misc":"杂项","biome.spawners.monster":"怪物","biome.spawners.water_ambient":"水下环境生物","biome.spawners.water_creature":"水生生物","biome.starts":"起始结构","biome.starts.entry":"结构","biome.starts.help":"配置过的结构地物的列表。","biome.surface_builder":"地表生成器","biome.temperature":"温度","biome.temperature_modifier":"温度修饰子","biome.temperature_modifier.frozen":"冰冻","biome.temperature_modifier.none":"无","block.block":"方块 ID","block.nbt":"NBT","block.state":"方块状态","block.tag":"方块标签","block_placer.column_placer.extra_size":"额外尺寸","block_placer.column_placer.min_size":"最小尺寸","block_placer.type":"类型","block_state.Name":"名称","block_state.Properties":"属性","block_state_provider.rotated_block_provider.state":"状态","block_state_provider.simple_state_provider.state":"状态","block_state_provider.type":"类型","block_state_provider.weighted_state_provider.entries":"项目","block_state_provider.weighted_state_provider.entries.entry.data":"状态","block_state_provider.weighted_state_provider.entries.entry.weight":"权重","carver.config":"配置","carver.config.canyon.bottom_inclusive":"最小值(含)","carver.config.canyon.distanceFactor":"距离因数","carver.config.canyon.horizontal_radius_factor":"水平半径因数","carver.config.canyon.thickness":"厚度","carver.config.canyon.top_inclusive":"最大值(含)","carver.config.canyon.vertical_radius_center_factor":"垂直半径中心因数","carver.config.canyon.vertical_radius_default_factor":"垂直半径默认因数","carver.config.canyon.vertical_rotation":"垂直旋转","carver.config.canyon.width_smoothness":"宽度柔和程度","carver.config.canyon.y_scale":"Y轴缩放尺度","carver.config.debug_settings":"调试设置","carver.config.debug_settings.air_state":"空气状态","carver.config.debug_settings.debug_mode":"调试模式","carver.config.probability":"概率","carver.type":"类型","children":"子","children.entry":"项目","condition.alternative.terms":"子条件","condition.block_state_property.block":"方块","condition.block_state_property.properties":"方块状态","condition.condition":"条件","condition.damage_source":"伤害源","condition.entity_properties.entity":"实体","condition.entity_scores.entity":"实体","condition.entity_scores.scores":"分数","condition.entry":"谓词","condition.inverted.term":"条件","condition.item":"物品","condition.killed_by_player.inverse":"取反","condition.list":"多个","condition.location":"位置","condition.location_check.offsetX":"X 坐标偏移","condition.location_check.offsetY":"Y 坐标偏移","condition.location_check.offsetZ":"Z 坐标偏移","condition.object":"单个","condition.random_chance.chance":"几率","condition.random_chance_with_looting.chance":"几率","condition.random_chance_with_looting.looting_multiplier":"每级抢夺魔咒增加的数","condition.reference.name":"Predicate 文件 ID","condition.table_bonus.chances":"几率","condition.table_bonus.chances.entry":"几率","condition.table_bonus.enchantment":"附魔","condition.time_check.period":"周期","condition.time_check.period.help":"可选。如果指定,在比较前会先将游戏的时间以该数取模(例如,如果设置为 24000,指定的值将会被运算为一天中的时间)。","condition.time_check.value":"值","condition.value_check.range":"范围","condition.value_check.value":"值","condition.weather_check.raining":"下雨","condition.weather_check.thundering":"雷雨","conditions":"条件","conditions.entry":"条件","conditions.list":"条件","conditions.object":"旧版","copy_source.block_entity":"方块实体","copy_source.direct_killer":"直接击杀实体","copy_source.killer":"击杀实体","copy_source.killer_player":"击杀玩家","copy_source.this":"自身","criterion.bee_nest_destroyed.block":"方块","criterion.bee_nest_destroyed.num_bees_inside":"内部蜜蜂的数量","criterion.bred_animals.child":"幼体","criterion.bred_animals.parent":"父或母","criterion.bred_animals.partner":"配偶","criterion.brewed_potion.potion":"药水 ID","criterion.changed_dimension.from":"出发维度","criterion.changed_dimension.to":"到达维度","criterion.channeled_lightning.victims":"受害实体","criterion.channeled_lightning.victims.entry":"实体","criterion.conditions":"条件","criterion.construct_beacon.beacon_level":"金字塔等级","criterion.consume_item.item":"物品","criterion.cured_zombie_villager.villager":"村民","criterion.cured_zombie_villager.zombie":"僵尸","criterion.effects_changed.effects":"状态效果","criterion.enchanted_item.item":"物品","criterion.enchanted_item.levels":"经验等级","criterion.enter_block.block":"方块","criterion.enter_block.state":"方块状态","criterion.entity_hurt_player.damage":"伤害","criterion.entity_killed_player.entity":"源实体","criterion.entity_killed_player.killing_blow":"伤害类型","criterion.filled_bucket.item":"物品","criterion.fishing_rod_hooked.entity":"被拉的实体","criterion.fishing_rod_hooked.item":"物品","criterion.hero_of_the_village.location":"位置","criterion.inventory_changed.items":"物品","criterion.inventory_changed.items.entry":"物品","criterion.inventory_changed.slots":"栏位","criterion.inventory_changed.slots.empty":"空栏位的数量","criterion.inventory_changed.slots.full":"用满栏位的数量","criterion.inventory_changed.slots.occupied":"已用栏位的数量","criterion.item_durability_changed.delta":"差值","criterion.item_durability_changed.durability":"耐久度","criterion.item_durability_changed.item":"物品","criterion.item_used_on_block.item":"物品","criterion.item_used_on_block.location":"位置","criterion.killed_by_crossbow.unique_entity_types":"实体种类的数量","criterion.killed_by_crossbow.victims":"受害实体","criterion.killed_by_crossbow.victims.entry":"实体","criterion.levitation.distance":"距离","criterion.levitation.duration":"持续时间","criterion.location.location":"位置","criterion.nether_travel.distance":"距离","criterion.nether_travel.entered":"进入位置","criterion.nether_travel.exited":"退出位置","criterion.placed_block.block":"方块","criterion.placed_block.item":"物品","criterion.placed_block.location":"位置","criterion.placed_block.state":"方块状态","criterion.player":"玩家","criterion.player_generates_container_loot.loot_table":"战利品表","criterion.player_hurt_entity.damage":"伤害","criterion.player_hurt_entity.entity":"受害实体","criterion.player_killed_entity.entity":"受害实体","criterion.player_killed_entity.killing_blow":"伤害类型","criterion.recipe_unlocked.recipe":"配方","criterion.rod":"钓鱼竿","criterion.safely_harvest_honey.block":"方块","criterion.safely_harvest_honey.item":"物品","criterion.shot_crossbow.item":"物品","criterion.slept_in_bed.location":"位置","criterion.slide_down_block.block":"方块","criterion.summoned_entity.entity":"实体","criterion.tame_animal.entity":"动物","criterion.target_hit.projectile":"弹射物","criterion.target_hit.shooter":"射击者","criterion.target_hit.signal_strength":"信号强度","criterion.thrown_item_picked_up_by_entity.entity":"实体","criterion.thrown_item_picked_up_by_entity.item":"物品","criterion.trigger":"触发器","criterion.used_ender_eye.distance":"距离","criterion.used_totem.item":"图腾物品","criterion.villager_trade.item":"购得物品","criterion.villager_trade.villager":"村民","criterion.voluntary_exile.location":"位置","damage.blocked":"是否被阻挡","damage.dealt":"应当受到伤害","damage.source_entity":"源实体","damage.taken":"实际受到伤害","damage.type":"伤害类型","damage_source.bypasses_armor":"破甲","damage_source.bypasses_invulnerability":"虚空","damage_source.bypasses_magic":"饥饿","damage_source.direct_entity":"直接来源实体","damage_source.is_explosion":"爆炸","damage_source.is_fire":"燃烧","damage_source.is_lightning":"雷击","damage_source.is_magic":"魔法","damage_source.is_projectile":"弹射物","damage_source.source_entity":"根本来源实体","decorator.carving_mask.step":"生成步骤","decorator.config":"配置","decorator.count.count":"数量","decorator.count_extra.count":"数量","decorator.count_extra.extra_chance":"额外几率","decorator.count_extra.extra_count":"额外数量","decorator.count_multilayer.count":"数量","decorator.count_noise.above_noise":"阈值上噪声","decorator.count_noise.below_noise":"阈值下噪声","decorator.count_noise.noise_level":"噪声等级","decorator.count_noise_biased.noise_factor":"噪声因子","decorator.count_noise_biased.noise_offset":"噪声偏移量","decorator.count_noise_biased.noise_to_count_ratio":"噪数比","decorator.decorated.inner":"内部","decorator.decorated.outer":"外部","decorator.depth_average.baseline":"基线","decorator.depth_average.spread":"扩散","decorator.glowstone.count":"数量","decorator.range.bottom_inclusive":"最小值(含)","decorator.range.top_inclusive":"最大值(含)","decorator.range_biased_to_bottom.bottom_inclusive":"最小值(含)","decorator.range_biased_to_bottom.cutoff":"横断","decorator.range_biased_to_bottom.top_inclusive":"最大值(含)","decorator.range_very_biased_to_bottom.bottom_inclusive":"最小值(含)","decorator.range_very_biased_to_bottom.cutoff":"横断","decorator.range_very_biased_to_bottom.top_inclusive":"最大值(含)","decorator.type":"类型","dimension":"维度","dimension.generator":"生成器","dimension.generator.biome_source":"生物群系源","dimension.overworld":"主世界","dimension.the_end":"末路之地","dimension.the_nether":"下界","dimension.type":"维度类型","dimension.type.object":"自定义","dimension.type.string":"预设","dimension_type.ambient_light":"环境光","dimension_type.ambient_light.help":"有多少环境光。应为 0.0 与 1.0 之间的值。","dimension_type.bed_works":"床有效","dimension_type.bed_works.help":"若为true,玩家可以使用床来设置重生点并跳过夜晚。若为false,则使用床会爆炸。","dimension_type.coordinate_scale":"坐标缩放","dimension_type.coordinate_scale.help":"在维度间传送时(使用下界传送门或 /execute in )对坐标使用的缩放倍数。","dimension_type.effects":"环境效果","dimension_type.effects.help":"天空效果","dimension_type.effects.overworld":"主世界","dimension_type.effects.the_end":"末路之地","dimension_type.effects.the_nether":"下界","dimension_type.fixed_time":"固定时间","dimension_type.fixed_time.help":"设定该值会导致太阳处于某一固定位置。","dimension_type.has_ceiling":"具有天花板","dimension_type.has_ceiling.help":"影响天气,地图物品和重生规则。","dimension_type.has_raids":"生成袭击","dimension_type.has_raids.help":"若为true,拥有不祥之兆效果的玩家会导致袭击。","dimension_type.has_skylight":"具有天空光照","dimension_type.has_skylight.help":"影响天气,光照引擎和重生规则。","dimension_type.height":"高度","dimension_type.height.help":"方块能够放置的总高度。Max Y = Min Y + Height。","dimension_type.infiniburn":"无限燃烧方块","dimension_type.infiniburn.help":"定义能够使火在其上永久燃烧的方块标签。","dimension_type.logical_height":"合规高度","dimension_type.logical_height.help":"在此高度以上,传送门不会生成,紫颂果也不再能传送玩家。","dimension_type.min_y":"最小高度","dimension_type.min_y.help":"方块能够放置的最小高度。","dimension_type.name":"名称","dimension_type.natural":"自然","dimension_type.natural.help":"如果设置为 true,传送门中会生成僵尸猪灵。如果设置为 false,指南针与钟会不断随机旋转。","dimension_type.piglin_safe":"猪灵不转换","dimension_type.piglin_safe.help":"若为false,猪灵会开始颤抖并转化为僵尸猪灵。","dimension_type.respawn_anchor_works":"重生锚有效","dimension_type.respawn_anchor_works.help":"若为true,玩家可以充能并使用重生锚以设置重生点。若为false,使用重生锚会爆炸。","dimension_type.ultrawarm":"极热","dimension_type.ultrawarm.help":"如果设置为 true,水会蒸发且海绵会变干。","distance.absolute":"绝对距离","distance.horizontal":"水平距离","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"水下速掘","enchantment.bane_of_arthropods":"节肢杀手","enchantment.binding_curse":"绑定诅咒","enchantment.blast_protection":"爆炸保护","enchantment.channeling":"引雷","enchantment.depth_strider":"深海探索者","enchantment.efficiency":"效率","enchantment.enchantment":"魔咒","enchantment.feather_falling":"摔落保护","enchantment.fire_aspect":"火焰附加","enchantment.fire_protection":"火焰保护","enchantment.flame":"火矢","enchantment.fortune":"时运","enchantment.frost_walker":"冰霜行者","enchantment.impaling":"穿刺","enchantment.infinity":"无限","enchantment.knockback":"击退","enchantment.levels":"等级","enchantment.looting":"抢夺","enchantment.loyalty":"忠诚","enchantment.luck_of_the_sea":"海之眷顾","enchantment.lure":"饵钓","enchantment.mending":"经验修补","enchantment.multishot":"多重射击","enchantment.piercing":"穿透","enchantment.power":"力量","enchantment.projectile_protection":"弹射物保护","enchantment.protection":"保护","enchantment.punch":"冲击","enchantment.quick_charge":"快速装填","enchantment.respiration":"水下呼吸","enchantment.riptide":"激流","enchantment.sharpness":"锋利","enchantment.silk_touch":"精准采集","enchantment.smite":"亡灵杀手","enchantment.sweeping":"横扫之刃","enchantment.thorns":"荆棘","enchantment.unbreaking":"耐久","enchantment.vanishing_curse":"消失诅咒","entity.distance":"到执行位置的距离","entity.effects":"状态效果","entity.equipment":"装备","entity.fishing_hook":"浮漂","entity.fishing_hook.in_open_water":"位于开阔水域","entity.flags":"实体特质","entity.isBaby":"是幼体","entity.isOnFire":"正在着火","entity.isSneaking":"正在潜行","entity.isSprinting":"正在疾跑","entity.isSwimming":"正在游泳","entity.location":"位置","entity.nbt":"NBT","entity.player":"玩家","entity.targeted_entity":"目标实体","entity.team":"队伍","entity.type":"实体","entity.vehicle":"载具","entity_source.direct_killer":"直接击杀实体","entity_source.killer":"击杀者","entity_source.killer_player":"击杀者玩家","entity_source.this":"自身","entry":"项目","error":"错误","error.expected_boolean":"期望一个布尔值","error.expected_integer":"期望一个整型数字","error.expected_json":"期望 JSON","error.expected_list":"期望一个数组","error.expected_number":"期望一个数字","error.expected_object":"期望一个对象","error.expected_range":"期望一个范围","error.expected_string":"期望一个字符串","error.expected_uniform_int":"期望一个均匀分布整数","error.height_multiple":"高度必须是%0%的倍数","error.invalid_binomial":"不能使用二项分布型的范围","error.invalid_empty_list":"不能使用空数组","error.invalid_empty_string":"不能使用空字符串","error.invalid_enum_option":"选项“%0%”无效","error.invalid_exact":"不能使用常数型的范围","error.invalid_list_range.exact":"期望一个长度为 %1% 的列表","error.invalid_list_range.larger":"列表的长度 %0% 比最大值 %1% 大","error.invalid_list_range.smaller":"列表的长度 %0% 比最小值 %1% 小","error.invalid_number_range.between":"期望一个位于 %0% 与 %1% 之间的数字","error.invalid_number_range.larger":"值 %0% 比最大值 %1% 大","error.invalid_number_range.smaller":"值 %0% 比最小值 %1% 小","error.invalid_pattern":"字符串无效:%0%","error.logical_height":"合规高度不能高于高度","error.min_y_multiple":"最小高度必须是%0%的倍数","error.min_y_plus_height":"最小高度 + 高度(Min Y + height)不能高于%0%","error.recipe.invalid_key":"只能使用单个字符作为键","error.separation_smaller_spacing":"间隔(separation)的值必须小于空位(spacing)","false":"否","feature.bamboo.probability":"概率","feature.basalt_columns.height":"高度","feature.basalt_columns.reach":"范围","feature.block_pile.state_provider":"状态声明","feature.config":"配置","feature.decorated.decorator":"装饰器","feature.decorated.feature":"地物","feature.delta_feature.contents":"三角洲内部方块","feature.delta_feature.rim":"三角洲边缘方块","feature.delta_feature.rim_size":"边缘尺寸","feature.delta_feature.size":"尺寸","feature.disk.half_height":"半高","feature.disk.radius":"半径","feature.disk.state":"状态","feature.disk.targets":"目标","feature.disk.targets.entry":"状态","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"远处滴水石生成几率","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"滴水石柱在离中心最大距离处的生成几率。","feature.dripstone_cluster.density":"密度","feature.dripstone_cluster.dripstone_block_layer_thickness":"方块层厚度","feature.dripstone_cluster.floor_to_ceiling_search_range":"搜索范围","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"地板至天花板的搜索范围。","feature.dripstone_cluster.height":"高度","feature.dripstone_cluster.height_deviation":"高度偏差","feature.dripstone_cluster.max_distance_from_center_affecting_chance_of_dripstone_column":"石柱几率距离","feature.dripstone_cluster.max_distance_from_center_affecting_chance_of_dripstone_column.help":"影响滴水石柱生成几率的离中心的最大距离。","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"高度偏差距离","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"影响高度偏差的离中心的最大距离。","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"最大高度差","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"石笋和钟乳石的最大高度差。","feature.dripstone_cluster.radius":"半径","feature.dripstone_cluster.wetness":"湿度","feature.dripstone_cluster.wetness_deviation":"湿度偏差","feature.dripstone_cluster.wetness_mean":"湿度平均值","feature.emerald_ore.state":"状态","feature.emerald_ore.target":"目标","feature.end_gateway.exact":"精确传送","feature.end_gateway.exit":"出口位置","feature.end_spike.crystal_beam_target":"末影水晶光柱目标","feature.end_spike.crystal_invulnerable":"末影水晶无敌状态","feature.end_spike.spikes":"末地黑曜石柱","feature.end_spike.spikes.entry":"末地黑曜石柱","feature.end_spike.spikes.entry.centerX":"中心 X 坐标","feature.end_spike.spikes.entry.centerZ":"中心 Z 坐标","feature.end_spike.spikes.entry.guarded":"铁栏杆保护","feature.end_spike.spikes.entry.height":"高度","feature.end_spike.spikes.entry.radius":"半径","feature.fill_layer.height":"高度","feature.fill_layer.state":"状态","feature.flower.blacklist":"黑名单","feature.flower.block_placer":"方块放置器","feature.flower.can_replace":"可替代","feature.flower.need_water":"需要水","feature.flower.project":"投影","feature.flower.state_provider":"状态声明","feature.flower.tries":"尝试次数","feature.flower.whitelist":"白名单","feature.flower.xspread":"X轴扩散","feature.flower.yspread":"Y轴扩散","feature.flower.zspread":"Z轴扩散","feature.forest_rock.state":"状态","feature.glow_lichen.can_be_placed_on":"可放置在","feature.glow_lichen.can_be_placed_on.entry":"方块状态","feature.glow_lichen.can_place_on_ceiling":"可放置在底面","feature.glow_lichen.can_place_on_floor":"可放置在顶面","feature.glow_lichen.can_place_on_wall":"可放置在侧面","feature.glow_lichen.chance_of_spreading":"向外蔓延概率","feature.glow_lichen.search_range":"搜索范围","feature.huge_brown_mushroom.cap_provider":"菌盖声明","feature.huge_brown_mushroom.foliage_radius":"菌盖大小","feature.huge_brown_mushroom.stem_provider":"菌柄声明","feature.huge_fungus.decor_state":"装饰","feature.huge_fungus.hat_state":"顶部","feature.huge_fungus.planted":"是否已种植","feature.huge_fungus.stem_state":"菌柄","feature.huge_fungus.valid_base_block":"有效底部方块","feature.huge_red_mushroom.cap_provider":"菌盖声明","feature.huge_red_mushroom.foliage_radius":"菌盖大小","feature.huge_red_mushroom.stem_provider":"菌柄声明","feature.ice_patch.half_height":"半高","feature.ice_patch.radius":"半径","feature.ice_patch.state":"状态","feature.ice_patch.targets":"目标","feature.ice_patch.targets.entry":"状态","feature.iceberg.state":"状态","feature.lake.state":"状态","feature.large_dripstone.column_radius":"石柱半径","feature.large_dripstone.floor_to_ceiling_search_range":"搜索范围","feature.large_dripstone.floor_to_ceiling_search_range.help":"地板至天花板的搜索范围。","feature.large_dripstone.height_scale":"高度比例","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"半径与洞穴高度比","feature.large_dripstone.min_bluntness_for_wind":"风的最小钝度","feature.large_dripstone.min_radius_for_wind":"风的最小半径","feature.large_dripstone.stalactite_bluntness":"钟乳石钝度","feature.large_dripstone.stalagmite_bluntness":"石笋钝度","feature.large_dripstone.wind_speed":"风速","feature.nether_forest_vegetation.state_provider":"状态声明","feature.netherrack_replace_blobs.radius":"半径","feature.netherrack_replace_blobs.state":"状态","feature.netherrack_replace_blobs.target":"目标","feature.no_surface_ore.size":"尺寸","feature.no_surface_ore.state":"状态","feature.no_surface_ore.target":"目标","feature.object":"自定义","feature.ore.discard_chance_on_air_exposure":"暴露在空气中放弃该次生成的概率","feature.ore.size":"尺寸","feature.ore.targets":"目标","feature.ore.targets.entry.state":"状态","feature.ore.targets.entry.target":"目标","feature.random_boolean_selector.feature_false":"地物 1","feature.random_boolean_selector.feature_true":"地物 2","feature.random_patch.blacklist":"黑名单","feature.random_patch.block_placer":"方块放置器","feature.random_patch.can_replace":"可替代","feature.random_patch.need_water":"需要水","feature.random_patch.project":"投影","feature.random_patch.state_provider":"状态声明","feature.random_patch.tries":"尝试次数","feature.random_patch.whitelist":"白名单","feature.random_patch.xspread":"X轴扩散","feature.random_patch.yspread":"Y轴扩散","feature.random_patch.zspread":"Z轴扩散","feature.random_selector.default":"默认","feature.random_selector.features":"地物","feature.random_selector.features.entry":"地物","feature.random_selector.features.entry.chance":"几率","feature.random_selector.features.entry.feature":"地物","feature.scattered_ore.discard_chance_on_air_exposure":"暴露在空气中放弃该次生成的概率","feature.scattered_ore.size":"大小","feature.scattered_ore.targets":"目标","feature.scattered_ore.targets.entry.state":"状态","feature.scattered_ore.targets.entry.target":"目标","feature.sea_pickle.count":"数量","feature.seegrass.probability":"概率","feature.simple_block.place_in":"将要放置的位置的方块","feature.simple_block.place_in.entry":"状态","feature.simple_block.place_on":"下方的方块","feature.simple_block.place_on.entry":"状态","feature.simple_block.place_under":"上方的方块","feature.simple_block.place_under.entry":"状态","feature.simple_block.to_place":"将要放置的方块","feature.simple_random_selector.features":"地物","feature.simple_random_selector.features.entry":"地物","feature.small_dripstone.chance_of_taller_dripstone":"更高的滴水石的生成几率","feature.small_dripstone.empty_space_search_radius":"空域搜索半径","feature.small_dripstone.max_offset_from_origin":"距来源的最大偏移","feature.small_dripstone.max_placements":"最大放置","feature.spring_feature.hole_count":"坑洞数量","feature.spring_feature.required_block_below":"下方需要方块","feature.spring_feature.rock_count":"岩石数量","feature.spring_feature.state":"状态","feature.spring_feature.valid_blocks":"有效方块","feature.string":"引用","feature.tree.decorators":"装饰器","feature.tree.decorators.entry":"树装饰器","feature.tree.foliage_placer":"树叶放置器","feature.tree.heightmap":"高度图","feature.tree.ignore_vines":"忽略藤蔓","feature.tree.leaves_provider":"树叶方块声明","feature.tree.max_water_depth":"树生成的最大水深","feature.tree.minimum_size":"最小尺寸","feature.tree.minimum_size.limit":"限制","feature.tree.minimum_size.lower_size":"下部尺寸","feature.tree.minimum_size.middle_size":"中部尺寸","feature.tree.minimum_size.min_clipped_height":"最小剪裁高度","feature.tree.minimum_size.type":"最小尺寸","feature.tree.minimum_size.upper_limit":"上部限制","feature.tree.minimum_size.upper_size":"上部尺寸","feature.tree.trunk_placer":"树干放置器","feature.tree.trunk_provider":"树干方块声明","feature.type":"类型","float_provider.base":"基值","float_provider.deviation":"离差","float_provider.max":"最大值","float_provider.mean":"算术平均数","float_provider.min":"最小值","float_provider.plateau":"上底","float_provider.spread":"离散程度","float_provider.type.clamped_normal":"截断正态分布","float_provider.type.constant":"常数+","float_provider.type.number":"常数","float_provider.type.trapezoid":"梯形分布","float_provider.type.uniform":"均匀分布","float_provider.value":"值","fluid.fluid":"流体 ID","fluid.state":"流体状态","fluid.tag":"流体标签","fluid_state.Name":"名称","fluid_state.Properties":"属性","foliage_placer.crown_height":"树冠高度","foliage_placer.height":"高度","foliage_placer.offset":"偏移","foliage_placer.radius":"半径","foliage_placer.trunk_height":"树干高度","foliage_placer.type":"类型","function.apply_bonus.enchantment":"附魔","function.apply_bonus.formula":"公式","function.apply_bonus.formula.binomial_with_bonus_count":"带奖励数量的二项分布","function.apply_bonus.formula.ore_drops":"矿物掉落","function.apply_bonus.formula.uniform_bonus_count":"带奖励数量的均匀分布","function.apply_bonus.parameters":"参数","function.apply_bonus.parameters.bonusMultiplier":"乘数","function.apply_bonus.parameters.extra":"额外值","function.apply_bonus.parameters.probability":"概率","function.copy_name.source":"源","function.copy_nbt.ops":"NBT 操作","function.copy_nbt.ops.entry":"操作","function.copy_nbt.source":"源","function.copy_state.block":"方块","function.copy_state.properties":"方块状态","function.copy_state.properties.entry":"属性","function.enchant_randomly.enchantments":"可选附魔","function.enchant_randomly.enchantments.entry":"魔咒","function.enchant_with_levels.levels":"等级","function.enchant_with_levels.treasure":"宝藏型魔咒","function.exploration_map.decoration":"图标","function.exploration_map.destination":"目标","function.exploration_map.search_radius":"搜寻半径","function.exploration_map.skip_existing_chunks":"跳过已生成区块","function.exploration_map.zoom":"缩放等级","function.fill_player_head.entity":"实体","function.function":"函数","function.limit_count.limit":"限额","function.list":"多个","function.looting_enchant.count":"数量","function.looting_enchant.limit":"限制","function.object":"单个","function.set_attributes.modifiers":"属性修饰符","function.set_attributes.modifiers.entry":"属性修饰符","function.set_banner_pattern.append":"添加","function.set_banner_pattern.patterns":"图案","function.set_contents.entries":"内容物","function.set_contents.entries.entry":"项目","function.set_count.add":"加上","function.set_count.add.help":"若为true,将会相对于目前的物品数量更改","function.set_count.count":"数量","function.set_damage.add":"加上","function.set_damage.add.help":"若为true,将会相对于目前的损伤值更改","function.set_damage.damage":"损伤值","function.set_data.data":"数据值","function.set_enchantments.add":"加上","function.set_enchantments.add.help":"若为true,将会相对于目前的等级更改","function.set_enchantments.enchantments":"魔咒","function.set_loot_table.name":"战利品表名","function.set_loot_table.seed":"种子","function.set_lore.entity":"实体","function.set_lore.lore":"物品描述","function.set_lore.lore.entry":"一行","function.set_lore.replace":"覆盖","function.set_name.entity":"实体","function.set_name.name":"名称","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"状态效果","function.set_stew_effect.effects.entry":"效果种类","function.set_stew_effect.effects.entry.duration":"持续时间","function.set_stew_effect.effects.entry.type":"效果种类","functions":"函数","functions.entry":"函数","gamemode.adventure":"冒险模式","gamemode.creative":"创造模式","gamemode.spectator":"旁观模式","gamemode.survival":"生存模式","generation_step.air":"空气","generation_step.liquid":"液体","generator.biome_source.altitude_noise":"高度噪声","generator.biome_source.biome":"生物群系","generator.biome_source.biomes":"生物群系","generator.biome_source.humidity_noise":"湿度噪声","generator.biome_source.large_biomes":"巨型生物群系","generator.biome_source.legacy_biome_init_layer":"旧版生物群系初始层","generator.biome_source.preset":"生物群系预设","generator.biome_source.preset.nether":"下界","generator.biome_source.scale":"缩放","generator.biome_source.seed":"生物群系种子","generator.biome_source.temperature_noise":"温度噪声","generator.biome_source.type":"生物群系源","generator.biome_source.weirdness_noise":"奇异度噪声","generator.seed":"维度种子","generator.settings":"生成器设置","generator.settings.biome":"生物群系","generator.settings.lakes":"湖","generator.settings.layers":"层","generator.settings.layers.entry":"层","generator.settings.layers.entry.block":"方块 ID","generator.settings.layers.entry.height":"高度","generator.settings.object":"自定义","generator.settings.presets.amplified":"放大化","generator.settings.presets.caves":"洞穴","generator.settings.presets.end":"末地","generator.settings.presets.floating_islands":"浮岛","generator.settings.presets.nether":"下界","generator.settings.presets.overworld":"主世界","generator.settings.string":"预设","generator.settings.structures":"结构","generator.settings.structures.stronghold":"要塞","generator.settings.structures.stronghold.count":"数量","generator.settings.structures.stronghold.distance":"距离","generator.settings.structures.stronghold.spread":"扩散度","generator.settings.structures.structures":"结构","generator.type":"生成器类型","generator_biome.biome":"生物群系","generator_biome.parameters":"参数","generator_biome.parameters.altitude":"海拔","generator_biome.parameters.help":"这些参数决定了该生物群系被生成时的位置。每个生物群系都必须拥有不同的设置组合。设置相近的生物群系会生成在一起。","generator_biome.parameters.humidity":"湿度","generator_biome.parameters.offset":"偏移","generator_biome.parameters.temperature":"温度","generator_biome.parameters.weirdness":"奇异度","generator_biome_noise.amplitudes":"振幅","generator_biome_noise.amplitudes.entry":"倍频 %0%","generator_biome_noise.firstOctave":"主倍频","generator_structure.salt":"盐值","generator_structure.separation":"间隔","generator_structure.separation.help":"以区块为单位该种类的两种结构之间的最小距离。","generator_structure.spacing":"空位","generator_structure.spacing.help":"该种类的两种结构间的平均距离。","heightmap_type.MOTION_BLOCKING":"阻止实体移动层","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"阻止实体移动层(不含树叶)","heightmap_type.OCEAN_FLOOR":"海床层","heightmap_type.OCEAN_FLOOR_WG":"海床层(世界生成)","heightmap_type.WORLD_SURFACE":"地表层","heightmap_type.WORLD_SURFACE_WG":"地表层(世界生成)","hide_source":"隐藏源代码","item.count":"数量","item.durability":"耐久度","item.enchantments":"魔咒","item.enchantments.entry":"附魔","item.item":"名称","item.nbt":"NBT","item.potion":"药水","item.tag":"标签","key.advancements":"进度","key.attack":"攻击/摧毁","key.back":"向后移动","key.chat":"打开聊天栏","key.command":"输入命令","key.drop":"丢弃所选物品","key.forward":"向前移动","key.fullscreen":"全屏显示切换","key.hotbar.1":"快捷栏 1","key.hotbar.2":"快捷栏 2","key.hotbar.3":"快捷栏 3","key.hotbar.4":"快捷栏 4","key.hotbar.5":"快捷栏 5","key.hotbar.6":"快捷栏 6","key.hotbar.7":"快捷栏 7","key.hotbar.8":"快捷栏 8","key.hotbar.9":"快捷栏 9","key.inventory":"开启/关闭物品栏","key.jump":"跳跃","key.left":"向左","key.loadToolbarActivator":"加载物品工具栏","key.pickItem":"选取方块","key.playerlist":"玩家列表","key.right":"向右","key.saveToolbarActivator":"保存物品工具栏","key.screenshot":"截图","key.smoothCamera":"切换电影视角","key.sneak":"潜行","key.spectatorOutlines":"高亮玩家(旁观者)","key.sprint":"疾跑","key.swapOffhand":"与副手交换物品","key.togglePerspective":"切换视角","key.use":"使用物品/放置方块","location.biome":"生物群系","location.block":"方块","location.dimension":"维度","location.feature":"地物","location.fluid":"流体","location.light":"光照","location.light.light":"可见光等级","location.position":"位置","location.position.x":"X 坐标","location.position.y":"Y 坐标","location.position.z":"Z 坐标","location.smokey":"烟熏","loot_condition_type.alternative":"析取范式(或)","loot_condition_type.block_state_property":"方块状态属性","loot_condition_type.damage_source_properties":"伤害源属性","loot_condition_type.entity_properties":"实体属性","loot_condition_type.entity_scores":"实体分数","loot_condition_type.inverted":"取反(非)","loot_condition_type.killed_by_player":"被玩家击杀","loot_condition_type.location_check":"检查位置","loot_condition_type.match_tool":"匹配工具","loot_condition_type.random_chance":"随机概率","loot_condition_type.random_chance_with_looting":"受抢夺魔咒影响的随机概率","loot_condition_type.reference":"引用 predicate 文件","loot_condition_type.survives_explosion":"未被爆炸破坏","loot_condition_type.table_bonus":"附魔奖励","loot_condition_type.time_check":"检查时间","loot_condition_type.value_check":"检查值","loot_condition_type.weather_check":"检查天气","loot_entry.dynamic.name":"名称","loot_entry.item.name":"名称","loot_entry.loot_table.name":"战利品表名","loot_entry.quality":"每级幸运对权重的影响","loot_entry.tag.expand":"展开","loot_entry.tag.expand.help":"如果为 false,该项目将返回指定物品标签的全部内容;否则将会从中随机抽取一个返回。","loot_entry.tag.name":"物品标签名","loot_entry.type":"类型","loot_entry.weight":"权重","loot_function_type.apply_bonus":"应用奖励公式","loot_function_type.copy_name":"复制方块实体显示名","loot_function_type.copy_nbt":"复制 NBT","loot_function_type.copy_state":"复制方块状态","loot_function_type.enchant_randomly":"随机附魔","loot_function_type.enchant_with_levels":"给予等价于经验等级的随机魔咒","loot_function_type.exploration_map":"设置探险家地图","loot_function_type.explosion_decay":"爆炸损耗","loot_function_type.fill_player_head":"填充玩家头颅","loot_function_type.furnace_smelt":"熔炉熔炼","loot_function_type.limit_count":"限制堆叠数量","loot_function_type.looting_enchant":"根据抢夺魔咒调整物品数量","loot_function_type.set_attributes":"设置属性","loot_function_type.set_banner_pattern":"设置旗帜图案","loot_function_type.set_contents":"设置内容物","loot_function_type.set_count":"设置物品数量","loot_function_type.set_damage":"设置损伤值","loot_function_type.set_data":"设置数据值","loot_function_type.set_enchantments":"设置魔咒","loot_function_type.set_loot_table":"设置战利品表","loot_function_type.set_lore":"设置物品描述","loot_function_type.set_name":"设置物品名","loot_function_type.set_nbt":"设置 NBT","loot_function_type.set_stew_effect":"设置迷之炖菜状态效果","loot_pool.bonus_rolls":"每级幸运增加的抽取次数","loot_pool.entries":"项目","loot_pool.entries.entry":"项目","loot_pool.rolls":"抽取次数","loot_pool.rolls.help":"随机抽取的项目数。","loot_pool_entry_type.alternatives":"析取范式","loot_pool_entry_type.alternatives.help":"获取第一个满足条件的子项目。","loot_pool_entry_type.dynamic":"动态","loot_pool_entry_type.dynamic.help":"获取特定方块的特定掉落物。","loot_pool_entry_type.empty":"空","loot_pool_entry_type.empty.help":"不向随机池中加入任何物品。","loot_pool_entry_type.group":"组","loot_pool_entry_type.group.help":"从所有满足条件的子项目中随机抽取一个。","loot_pool_entry_type.item":"物品","loot_pool_entry_type.item.help":"加入一种物品。","loot_pool_entry_type.loot_table":"战利品表","loot_pool_entry_type.loot_table.help":"加入另一个战利品表的内容。","loot_pool_entry_type.sequence":"序列","loot_pool_entry_type.sequence.help":"从第一个不满足条件的子项目之前的所有子项目中随机抽取一个。","loot_pool_entry_type.tag":"物品标签","loot_pool_entry_type.tag.help":"添加一个物品标签的内容。","loot_table.pools":"随机池","loot_table.pools.entry":"随机池","loot_table.type":"类型","luck_based":"受幸运等级影响","nbt_operation.op":"操作类型","nbt_operation.op.append":"追加","nbt_operation.op.merge":"合并","nbt_operation.op.replace":"替换","nbt_operation.source":"复制源","nbt_operation.target":"复制目标","nbt_provider.source":"来源","nbt_provider.target":"目标","nbt_provider.type":"类型","nbt_provider.type.context":"上下文+","nbt_provider.type.storage":"命令存储","nbt_provider.type.string":"上下文","noise_settings.aquifers_enabled":"是否生成含水层","noise_settings.bedrock_floor_position":"基岩地板位置","noise_settings.bedrock_floor_position.help":"基岩地板的位置。数字越大地板越靠上。","noise_settings.bedrock_roof_position":"基岩天花板位置","noise_settings.bedrock_roof_position.help":"基岩天花板从世界高度开始计算的相对位置。数字越大天花板越靠下。","noise_settings.biome":"生物群系","noise_settings.deepslate_enabled":"生成深板岩","noise_settings.default_block":"默认方块","noise_settings.default_fluid":"默认流体","noise_settings.disable_mob_generation":"禁用生物生成","noise_settings.disable_mob_generation.help":"如果设置为 true,生成世界时不会生成生物。","noise_settings.name":"名称","noise_settings.noise":"噪声选项","noise_settings.noise.amplified":"放大化","noise_settings.noise.bottom_slide":"底部曲线","noise_settings.noise.bottom_slide.help":"改变世界底部曲线。底部曲线大小(size)为0时没有效果。","noise_settings.noise.bottom_slide.offset":"偏移","noise_settings.noise.bottom_slide.offset.help":"用于生成世界底部的方块,在方块密度已设置为“目标”的值后,为“偏差 * 水平大小 * 4”定义一个允许的偏差范围。","noise_settings.noise.bottom_slide.size":"大小","noise_settings.noise.bottom_slide.size.help":"用于生成世界底部的方块,在已有的方块密度和目标被插值后,为“偏差 * 水平大小 * 4”定义一个允许范围。","noise_settings.noise.bottom_slide.target":"目标","noise_settings.noise.bottom_slide.target.help":"目标方块密度。正值增加地形起伏,负值则反之。","noise_settings.noise.density_factor":"密度因子","noise_settings.noise.density_factor.help":"决定高度影响地形的程度。正值在底部产生陆地。接近0的值产生均匀的类洞穴地形。","noise_settings.noise.density_offset":"密度偏移","noise_settings.noise.density_offset.help":"影响平均地形高度。设为0将使地形高度变为高度(height)的一半。设为正值将抬升高度。","noise_settings.noise.height":"高度","noise_settings.noise.height.help":"方块可以生成的总高度。Max X = Min Y + Height。","noise_settings.noise.island_noise_override":"岛屿噪声覆盖","noise_settings.noise.island_noise_override.help":"如果设置为 true,生成的地形形状会像末地岛屿一样。","noise_settings.noise.min_y":"最小高度","noise_settings.noise.min_y.help":"方块开始生成的最小高度。","noise_settings.noise.random_density_offset":"随机密度偏移","noise_settings.noise.sampling":"采样","noise_settings.noise.sampling.xz_factor":"XZ 因子","noise_settings.noise.sampling.xz_scale":"XZ 缩放","noise_settings.noise.sampling.y_factor":"Y 因子","noise_settings.noise.sampling.y_scale":"Y 缩放","noise_settings.noise.simplex_surface_noise":"单纯形表面噪声","noise_settings.noise.size_horizontal":"水平大小","noise_settings.noise.size_vertical":"垂直大小","noise_settings.noise.top_slide":"顶部曲线","noise_settings.noise.top_slide.help":"改变世界顶部曲线。顶部曲线大小(Size)为0时没有效果。","noise_settings.noise.top_slide.offset":"偏移","noise_settings.noise.top_slide.offset.help":"用于生成世界顶部的方块,在方块密度已设置为“目标”的值后,为“偏差 * 水平大小 * 4”定义一个允许的偏差范围。","noise_settings.noise.top_slide.size":"大小","noise_settings.noise.top_slide.size.help":"用于生成世界顶部的方块,在已有的方块密度和目标被插值后,为“偏差 * 水平大小 * 4”定义一个允许范围。","noise_settings.noise.top_slide.target":"目标","noise_settings.noise.top_slide.target.help":"目标方块密度。正值增加地形起伏,负值则反之。","noise_settings.noise_caves_enabled":"生成噪声洞穴","noise_settings.sea_level":"海平面","noise_settings.structures":"结构","noise_settings.structures.stronghold":"要塞","noise_settings.structures.stronghold.count":"数量","noise_settings.structures.stronghold.distance":"距离","noise_settings.structures.stronghold.spread":"分散","noise_settings.structures.structures":"结构","number_provider.max":"最大值","number_provider.min":"最小值","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"缩放","number_provider.score":"记分项","number_provider.target":"目标","number_provider.type":"类型","number_provider.type.binomial":"二项分布","number_provider.type.constant":"常数+","number_provider.type.number":"常数","number_provider.type.object":"均匀分布","number_provider.type.score":"分数","number_provider.type.uniform":"均匀分布+","number_provider.value":"数字","player.advancements":"进度","player.advancements.entry":"进度","player.gamemode":"游戏模式","player.level":"经验等级","player.recipes":"配方","player.stats":"统计","player.stats.entry":"统计","pos_rule_test.always_true":"总是为真","pos_rule_test.axis":"轴","pos_rule_test.axis.x":"X 轴","pos_rule_test.axis.y":"Y 轴","pos_rule_test.axis.z":"Z 轴","pos_rule_test.axis_aligned_linear_pos":"轴对齐线性插值坐标","pos_rule_test.linear_pos":"线性插值坐标","pos_rule_test.max_chance":"最大几率","pos_rule_test.max_dist":"最大距离","pos_rule_test.min_chance":"最小几率","pos_rule_test.min_dist":"最小距离","pos_rule_test.predicate_type":"类型","processor.block_age.mossiness":"苔藓度","processor.block_ignore.blocks":"方块","processor.block_ignore.blocks.entry":"状态","processor.block_rot.integrity":"完整性","processor.gravity.heightmap":"高度图","processor.gravity.offset":"偏移","processor.processor_type":"类型","processor.rule.rules":"规则","processor.rule.rules.entry":"规则","processor_list.processors":"处理器","processor_list.processors.entry":"处理器","processor_rule.input_predicate":"输入方块处理谓词","processor_rule.location_predicate":"结构生成前位置方块处理谓词","processor_rule.output_nbt":"输出 NBT","processor_rule.output_state":"输出方块状态","processor_rule.position_predicate":"位置方块处理谓词","processors.object":"自定义","processors.string":"引用","range.binomial":"二项分布","range.max":"最大值","range.min":"最小值","range.n":"N","range.number":"精确值","range.object":"范围","range.p":"P","range.type":"类型","range.uniform":"均匀分布","requirements":"应当达成","rule_test.always_true":"总是为真","rule_test.block":"方块","rule_test.block_match":"方块匹配","rule_test.block_state":"状态","rule_test.blockstate_match":"方块状态匹配","rule_test.predicate_type":"类型","rule_test.probability":"概率","rule_test.random_block_match":"方块随机匹配","rule_test.random_blockstate_match":"方块状态随机匹配","rule_test.tag":"标签","rule_test.tag_match":"标签匹配","score_provider.name":"名称","score_provider.target":"目标","score_provider.type":"类型","score_provider.type.context":"上下文+","score_provider.type.fixed":"固定","score_provider.type.string":"上下文","slot.chest":"胸部","slot.feet":"脚部","slot.head":"头部","slot.legs":"腿部","slot.mainhand":"主手","slot.offhand":"副手","statistic.stat":"统计","statistic.type":"类型","statistic.type.broken":"用坏","statistic.type.crafted":"合成","statistic.type.custom":"Custom(其他)","statistic.type.dropped":"掉落","statistic.type.killed":"击杀","statistic.type.killedByTeam":"被队伍击杀","statistic.type.killed_by":"被击杀","statistic.type.mined":"挖掘","statistic.type.picked_up":"捡起","statistic.type.teamkill":"击杀队伍","statistic.type.used":"使用","statistic.value":"值","status_effect.ambient":"是否为信标施加","status_effect.amplifier":"等级","status_effect.duration":"持续时间","status_effect.visible":"是否可见","structure_feature.biome_temp":"生物群系温度","structure_feature.biome_temp.cold":"寒冷","structure_feature.biome_temp.warm":"温暖","structure_feature.cluster_probability":"成簇概率","structure_feature.config":"配置","structure_feature.is_beached":"是否搁浅","structure_feature.large_probability":"大型概率","structure_feature.portal_type":"传送门类型","structure_feature.portal_type.desert":"沙漠","structure_feature.portal_type.jungle":"丛林","structure_feature.portal_type.mountain":"山","structure_feature.portal_type.nether":"下界","structure_feature.portal_type.ocean":"海洋","structure_feature.portal_type.standard":"基本","structure_feature.portal_type.swamp":"沼泽","structure_feature.probability":"概率","structure_feature.size":"尺寸","structure_feature.start_pool":"起始池","structure_feature.type":"类型","structure_feature.type.mesa":"恶地","structure_feature.type.normal":"普通","surface_builder.config":"配置","surface_builder.top_material":"顶部材料","surface_builder.type":"类型","surface_builder.under_material":"下层材料","surface_builder.underwater_material":"水下材料","table.type":"战利品表类型","table.type.block":"方块","table.type.chest":"箱子","table.type.empty":"空","table.type.entity":"实体","table.type.fishing":"钓鱼","table.type.generic":"通用","tag.replace":"覆盖","tag.values":"值","template_element.element_type":"类型","template_element.elements":"元素","template_element.feature":"地物","template_element.location":"结构的命名空间 ID","template_element.processors":"处理器","template_element.projection":"投影","template_element.projection.rigid":"直接生成","template_element.projection.terrain_matching":"匹配地形","template_pool.elements":"元素","template_pool.elements.entry":"元素","template_pool.elements.entry.element":"元素","template_pool.elements.entry.weight":"权重","template_pool.fallback":"回落池","template_pool.name":"名称","text_component":"文本组件","text_component.boolean":"布尔值","text_component.list":"数组","text_component.number":"数字","text_component.object":"对象","text_component.object.keybind":"键位绑定","text_component.object.nbt":"NBT值","text_component.object.score":"分数值","text_component.object.selector":"实体名称","text_component.object.text":"纯文本","text_component.object.translation":"翻译文本","text_component.string":"字符串","text_component_object.block":"方块","text_component_object.bold":"粗体","text_component_object.clickEvent":"点击事件","text_component_object.clickEvent.action":"行为","text_component_object.clickEvent.action.change_page":"翻页","text_component_object.clickEvent.action.copy_to_clipboard":"复制到剪贴板","text_component_object.clickEvent.action.open_file":"打开文件","text_component_object.clickEvent.action.open_url":"打开链接","text_component_object.clickEvent.action.run_command":"运行命令","text_component_object.clickEvent.action.suggest_command":"建议命令","text_component_object.clickEvent.value":"值","text_component_object.color":"颜色","text_component_object.entity":"实体","text_component_object.extra":"附加","text_component_object.font":"字体","text_component_object.hoverEvent":"悬浮事件","text_component_object.hoverEvent.action":"行为","text_component_object.hoverEvent.action.show_entity":"显示实体","text_component_object.hoverEvent.action.show_item":"显示物品","text_component_object.hoverEvent.action.show_text":"显示文字","text_component_object.hoverEvent.contents":"内容","text_component_object.hoverEvent.value":"值","text_component_object.insertion":"插入","text_component_object.interpret":"解析","text_component_object.italic":"斜体","text_component_object.keybind":"键位","text_component_object.nbt":"NBT","text_component_object.obfuscated":"混淆","text_component_object.score":"分数","text_component_object.score.name":"名称","text_component_object.score.objective":"记分项","text_component_object.score.value":"值","text_component_object.selector":"选择器","text_component_object.storage":"储存","text_component_object.strikethrough":"删除线","text_component_object.text":"文本","text_component_object.translate":"可翻译文本","text_component_object.underlined":"下划线","text_component_object.with":"以之翻译","tree_decorator.alter_ground.provider":"状态声明","tree_decorator.beehive.probability":"概率","tree_decorator.cocoa.probability":"概率","tree_decorator.type":"类型","true":"是","trunk_placer.base_height":"基础高度","trunk_placer.height_rand_a":"水平随机高度","trunk_placer.height_rand_b":"竖直随机高度","trunk_placer.type":"类型","uniform_int.base":"基值","uniform_int.number":"常数","uniform_int.object":"均匀分布","uniform_int.spread":"扩散","unset":"未指定","update.pack_format":"将pack_format升级到%0%","vertical_anchor.above_bottom":"比底部高","vertical_anchor.absolute":"指定特定层","vertical_anchor.below_top":"比顶部低","world.bonus_chest":"生成奖励箱","world.generate_features":"生成结构","world.seed":"种子","world_settings.bonus_chest":"生成奖励箱","world_settings.dimensions":"维度","world_settings.generate_features":"生成地物","world_settings.seed":"世界种子","worldgen.warning":"本特性为高度实验性的特性,很不稳定,在未来的版本中随时会有变动。请做好游戏在创建世界时崩溃的准备。","worldgen/biome_source.checkerboard":"棋盘","worldgen/biome_source.checkerboard.help":"以棋盘状区块图案生成的生物群系。","worldgen/biome_source.fixed":"固定","worldgen/biome_source.fixed.help":"整个世界只有单一生物群系。","worldgen/biome_source.multi_noise":"多重噪声","worldgen/biome_source.multi_noise.help":"可配置参数的自定义生物群系分布。","worldgen/biome_source.the_end":"末地","worldgen/biome_source.the_end.help":"末地的生物群系分布。","worldgen/biome_source.vanilla_layered":"原版分层","worldgen/biome_source.vanilla_layered.help":"主世界的生物群系分布。","worldgen/block_placer_type.column_placer":"柱状","worldgen/block_placer_type.double_plant_placer":"双层植物","worldgen/block_placer_type.simple_block_placer":"简单","worldgen/block_state_provider_type.forest_flower_provider":"繁花森林方块状态声明","worldgen/block_state_provider_type.plain_flower_provider":"平原花方块状态声明","worldgen/block_state_provider_type.rotated_block_provider":"旋转方块状态声明","worldgen/block_state_provider_type.simple_state_provider":"简单方块状态声明","worldgen/block_state_provider_type.weighted_state_provider":"加权方块状态声明","worldgen/carver.canyon":"峡谷","worldgen/carver.cave":"洞穴","worldgen/carver.nether_cave":"下界洞穴","worldgen/carver.underwater_canyon":"水下峡谷","worldgen/carver.underwater_cave":"水下洞穴","worldgen/chunk_generator.debug":"调试世界","worldgen/chunk_generator.flat":"超平坦","worldgen/chunk_generator.noise":"默认","worldgen/feature_size_type.three_layers_feature_size":"三层","worldgen/feature_size_type.two_layers_feature_size":"两层","worldgen/foliage_placer_type.acacia_foliage_placer":"金合欢","worldgen/foliage_placer_type.blob_foliage_placer":"橡树/白桦","worldgen/foliage_placer_type.bush_foliage_placer":"金字塔形","worldgen/foliage_placer_type.dark_oak_foliage_placer":"深色橡树","worldgen/foliage_placer_type.fancy_foliage_placer":"球形","worldgen/foliage_placer_type.jungle_foliage_placer":"丛林","worldgen/foliage_placer_type.mega_pine_foliage_placer":"双层稀疏云杉","worldgen/foliage_placer_type.pine_foliage_placer":"稀疏云杉","worldgen/foliage_placer_type.spruce_foliage_placer":"云杉","worldgen/structure_pool_element.empty_pool_element":"空","worldgen/structure_pool_element.feature_pool_element":"地物","worldgen/structure_pool_element.legacy_single_pool_element":"单个(旧版)","worldgen/structure_pool_element.list_pool_element":"列表","worldgen/structure_pool_element.single_pool_element":"单个","worldgen/structure_processor.blackstone_replace":"替代黑石","worldgen/structure_processor.block_age":"做旧方块","worldgen/structure_processor.block_ignore":"忽略方块","worldgen/structure_processor.block_rot":"随机移除方块","worldgen/structure_processor.gravity":"重力","worldgen/structure_processor.jigsaw_replacement":"拼图替换","worldgen/structure_processor.lava_submerged_block":"熔岩湮没方块","worldgen/structure_processor.nop":"无","worldgen/structure_processor.rule":"规则","worldgen/tree_decorator_type.alter_ground":"地面方块替换","worldgen/tree_decorator_type.beehive":"蜂箱","worldgen/tree_decorator_type.cocoa":"可可果","worldgen/tree_decorator_type.leave_vine":"树叶藤蔓","worldgen/tree_decorator_type.trunk_vine":"树干藤蔓","worldgen/trunk_placer_type.dark_oak_trunk_placer":"深色橡木型","worldgen/trunk_placer_type.fancy_trunk_placer":"多分叉型","worldgen/trunk_placer_type.forking_trunk_placer":"单分叉型","worldgen/trunk_placer_type.giant_trunk_placer":"2×2竖直型","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"大丛林木型","worldgen/trunk_placer_type.straight_trunk_placer":"竖直型"}');export default e;
-//# sourceMappingURL=zh-cn.fd769298.js.map
diff --git a/assets/zh-cn.fd769298.js.map b/assets/zh-cn.fd769298.js.map
deleted file mode 100644
index 19e3fa4a..00000000
--- a/assets/zh-cn.fd769298.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zh-cn.fd769298.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/assets/zh-tw.9dc297b5.js b/assets/zh-tw.9dc297b5.js
deleted file mode 100644
index 766d2d05..00000000
--- a/assets/zh-tw.9dc297b5.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var e=JSON.parse('{"advancement.criteria":"準則","advancement.display":"顯示","advancement.display.announce_to_chat":"在聊天欄提示","advancement.display.background":"背景","advancement.display.description":"描述","advancement.display.frame":"框架類型","advancement.display.frame.challenge":"挑戰","advancement.display.frame.goal":"目標","advancement.display.frame.task":"進度","advancement.display.help":"若存在,該進度會在進度介面中展示。","advancement.display.hidden":"隱藏","advancement.display.icon":"圖示","advancement.display.icon.item":"圖示物品","advancement.display.icon.nbt":"圖示物品 NBT","advancement.display.show_toast":"顯示右上角提示訊息","advancement.display.title":"標題","advancement.parent":"上游進度","advancement.rewards":"獎勵","advancement.rewards.experience":"經驗","advancement.rewards.function":"函數","advancement.rewards.loot":"戰利品表","advancement.rewards.recipes":"配方","advancement_trigger.bee_nest_destroyed":"摧毀蜂窩","advancement_trigger.bred_animals":"繁殖動物","advancement_trigger.brewed_potion":"釀製藥水","advancement_trigger.changed_dimension":"進入不同維度","advancement_trigger.channeled_lightning":"使用喚雷附魔擊殺實體","advancement_trigger.construct_beacon":"構建烽火台結構","advancement_trigger.consume_item":"消耗物品","advancement_trigger.cured_zombie_villager":"治療殭屍村民","advancement_trigger.effects_changed":"狀態效果改變","advancement_trigger.enchanted_item":"附魔物品","advancement_trigger.enter_block":"進入方塊","advancement_trigger.entity_hurt_player":"實體傷害玩家","advancement_trigger.entity_killed_player":"實體殺死玩家","advancement_trigger.filled_bucket":"填滿鐵桶","advancement_trigger.fishing_rod_hooked":"釣竿勾住東西","advancement_trigger.hero_of_the_village":"村莊英雄","advancement_trigger.impossible":"不可達成","advancement_trigger.inventory_changed":"物品欄改變","advancement_trigger.item_durability_changed":"物品耐久度改變","advancement_trigger.item_used_on_block":"對方塊使用物品","advancement_trigger.killed_by_crossbow":"使用弩擊殺","advancement_trigger.levitation":"懸浮","advancement_trigger.location":"位置","advancement_trigger.nether_travel":"地獄旅行","advancement_trigger.placed_block":"放置方塊","advancement_trigger.player_generates_container_loot":"玩家生成容器戰利品","advancement_trigger.player_hurt_entity":"玩家傷害實體","advancement_trigger.player_killed_entity":"玩家殺死實體","advancement_trigger.recipe_unlocked":"配方解鎖","advancement_trigger.safely_harvest_honey":"安全地採集蜂蜜","advancement_trigger.shot_crossbow":"使用弩","advancement_trigger.slept_in_bed":"睡覺","advancement_trigger.slide_down_block":"從蜂蜜塊上滑下","advancement_trigger.summoned_entity":"召喚實體","advancement_trigger.tame_animal":"馴服動物","advancement_trigger.target_hit":"擊中標靶","advancement_trigger.thrown_item_picked_up_by_entity":"丟出的物品被實體撿起","advancement_trigger.tick":"每刻觸發","advancement_trigger.used_ender_eye":"使用終界之眼","advancement_trigger.used_totem":"使用不死圖騰","advancement_trigger.villager_trade":"村民交易","advancement_trigger.voluntary_exile":"引發突襲","attribute.generic_armor":"盔甲防禦點數","attribute.generic_armor_toughness":"盔甲強度","attribute.generic_attack_damage":"普通攻擊傷害","attribute.generic_attack_knockback":"擊退距離","attribute.generic_attack_speed":"攻擊速度","attribute.generic_flying_speed":"飛行速度","attribute.generic_follow_range":"追蹤範圍","attribute.generic_knockback_resistance":"抗擊退","attribute.generic_luck":"幸運","attribute.generic_max_health":"最高生命值","attribute.generic_movement_speed":"移動速度","attribute.horse.jump_strength":"跳躍力","attribute.zombie.spawn_reinforcements":"殭屍呼叫增援能力","attribute_modifier.amount":"數量","attribute_modifier.attribute":"屬性","attribute_modifier.name":"名稱","attribute_modifier.operation":"運算模式","attribute_modifier.operation.addition":"加減數量","attribute_modifier.operation.multiply_base":"乘上數量","attribute_modifier.operation.multiply_total":"乘上(數量 + 1)","attribute_modifier.slot":"欄位","attribute_modifier.slot.list":"多個","attribute_modifier.slot.string":"單個","badge.experimental":"實驗性","badge.unstable":"不穩定","biome.carvers":"地形雕刻器","biome.carvers.air":"空氣","biome.carvers.liquid":"液體","biome.category":"分類","biome.creature_spawn_probability":"生物生成機率","biome.depth":"深度","biome.depth.help":"使地形抬升或下沉。正值將解析為陸地,負值解析為海洋。","biome.downfall":"降水(此引數控制草/樹葉的顏色與火的蔓延速度)","biome.effects":"環境效果","biome.effects.additions_sound":"附加音效","biome.effects.additions_sound.sound":"音效","biome.effects.additions_sound.tick_chance":"每刻播放的機率","biome.effects.ambient_sound":"環境音效","biome.effects.fog_color":"迷霧顏色","biome.effects.foliage_color":"樹葉顏色","biome.effects.grass_color":"草的顏色","biome.effects.grass_color_modifier":"草顏色修飾選項","biome.effects.grass_color_modifier.dark_forest":"黑森林","biome.effects.grass_color_modifier.none":"無","biome.effects.grass_color_modifier.swamp":"沼澤","biome.effects.mood_sound":"氛圍音效","biome.effects.mood_sound.block_search_extent":"播放位置搜尋半徑","biome.effects.mood_sound.offset":"偏移","biome.effects.mood_sound.sound":"音效","biome.effects.mood_sound.tick_delay":"刻延時","biome.effects.music":"音樂","biome.effects.music.max_delay":"最大迴響時間","biome.effects.music.min_delay":"最小迴響時間","biome.effects.music.replace_current_music":"替換當前音樂","biome.effects.music.sound":"音效","biome.effects.particle":"粒子","biome.effects.particle.options":"選項","biome.effects.particle.options.type":"粒子類型","biome.effects.particle.probability":"概率","biome.effects.sky_color":"天空顏色","biome.effects.water_color":"水的顏色","biome.effects.water_fog_color":"水中迷霧顏色","biome.features":"地景","biome.features.entry":"步驟 %0%","biome.features.entry.entry":"地景","biome.player_spawn_friendly":"玩家生成偏好","biome.player_spawn_friendly.help":"若為 true,世界出生點會優先選定在此生態域內。","biome.precipitation":"降雨量","biome.precipitation.none":"無","biome.precipitation.rain":"雨","biome.precipitation.snow":"雪","biome.scale":"規模","biome.scale.help":"垂直拉伸地形。值越小,地形越平整。","biome.spawn_costs":"生成代價","biome.spawn_costs.charge":"此次生成的電荷量","biome.spawn_costs.energy_budget":"此次生成擁有的電位能","biome.spawners":"生成器","biome.spawners.ambient":"環境生物","biome.spawners.creature":"生物(非怪物)","biome.spawners.entry":"生成","biome.spawners.entry.maxCount":"最大數量","biome.spawners.entry.minCount":"最小數量","biome.spawners.entry.type":"類型","biome.spawners.entry.weight":"權重","biome.spawners.misc":"雜項","biome.spawners.monster":"怪物","biome.spawners.water_ambient":"水下環境生物","biome.spawners.water_creature":"水生生物","biome.starts":"結構起始點","biome.starts.entry":"結構","biome.starts.help":"配置過的結構地景的列表。","biome.surface_builder":"地表生成器","biome.temperature":"溫度","biome.temperature_modifier":"溫度修飾選項","biome.temperature_modifier.frozen":"寒凍","biome.temperature_modifier.none":"無","block.block":"方塊 ID","block.nbt":"NBT","block.state":"方塊狀態","block.tag":"方塊標籤","block_placer.column_placer.extra_size":"額外尺寸","block_placer.column_placer.min_size":"最小尺寸","block_placer.type":"類型","block_state.Name":"方塊命名空間ID","block_state.Properties":"屬性","block_state.Properties.snowy":"含雪","block_state_provider.randomized_int_state_provider.property":"屬性","block_state_provider.randomized_int_state_provider.source":"參照","block_state_provider.randomized_int_state_provider.values":"取值","block_state_provider.rotated_block_provider.state":"狀態","block_state_provider.simple_state_provider.state":"狀態","block_state_provider.type":"類型","block_state_provider.weighted_state_provider.entries":"項目","block_state_provider.weighted_state_provider.entries.entry.data":"狀態","block_state_provider.weighted_state_provider.entries.entry.weight":"權重","carver.config":"組態","carver.config.aquifers_enabled":"是否使用含水層","carver.config.canyon.bottom_inclusive":"最小值(含)","carver.config.canyon.distanceFactor":"距離因數","carver.config.canyon.horizontal_radius_factor":"水平半徑因數","carver.config.canyon.thickness":"厚度","carver.config.canyon.top_inclusive":"最大值(含)","carver.config.canyon.vertical_radius_center_factor":"垂直半徑中心因數","carver.config.canyon.vertical_radius_default_factor":"垂直半徑預設因數","carver.config.canyon.vertical_rotation":"垂直旋轉","carver.config.canyon.width_smoothness":"柔邊","carver.config.canyon.y_scale":"Y軸縮放尺度","carver.config.cave.floor_level":"地板層","carver.config.cave.horizontal_radius_multiplier":"水平半徑倍化器","carver.config.cave.vertical_radius_multiplier":"垂直半徑倍化器","carver.config.debug_settings":"除錯設定","carver.config.debug_settings.air_state":"空氣狀態","carver.config.debug_settings.barrier_state":"屏障狀態","carver.config.debug_settings.debug_mode":"除錯模式","carver.config.debug_settings.lava_state":"岩漿狀態","carver.config.debug_settings.water_state":"水源狀態","carver.config.lava_level":"岩漿層","carver.config.nether_cave.floor_level":"地板層","carver.config.nether_cave.horizontal_radius_multiplier":"水平半徑倍化器","carver.config.nether_cave.vertical_radius_multiplier":"垂直半徑倍化器","carver.config.probability":"概率","carver.config.y":"y軸設定","carver.config.yScale":"y軸比例尺設定","carver.type":"類型","children":"子標籤","children.entry":"項目","condition.alternative.terms":"候選項目","condition.block_state_property.block":"方塊","condition.block_state_property.properties":"方塊狀態","condition.condition":"條件","condition.damage_source":"傷害來源","condition.entity_properties.entity":"實體","condition.entity_scores.entity":"實體","condition.entity_scores.scores":"分數","condition.entry":"述詞","condition.inverted.term":"條件","condition.item":"物品","condition.killed_by_player.inverse":"取反","condition.list":"多個","condition.location":"位置","condition.location_check.offsetX":"X 座標偏移","condition.location_check.offsetY":"Y 座標偏移","condition.location_check.offsetZ":"Z 座標偏移","condition.object":"單個","condition.random_chance.chance":"機率","condition.random_chance_with_looting.chance":"機率","condition.random_chance_with_looting.looting_multiplier":"每等級掠奪附魔增加的數","condition.reference.name":"述詞 ID","condition.table_bonus.chances":"機率","condition.table_bonus.chances.entry":"機率","condition.table_bonus.enchantment":"附魔","condition.time_check.period":"週期","condition.time_check.period.help":"可選。若指定,在比較前會先將當前遊戲的時間刻除以該數,並取餘數(例如,若設定為 24000,那麼每一Minecraft天的開始都將滿足一次這個條件)。","condition.time_check.value":"值","condition.value_check.range":"範圍","condition.value_check.value":"值","condition.weather_check.raining":"下雨","condition.weather_check.thundering":"雷雨","conditions":"條件","conditions.entry":"條件","conditions.list":"條件","conditions.object":"舊版","copy_source.block_entity":"方塊實體","copy_source.direct_killer":"直接擊殺實體","copy_source.killer":"擊殺實體","copy_source.killer_player":"擊殺玩家","copy_source.this":"自身","criterion.bee_nest_destroyed.block":"方塊","criterion.bee_nest_destroyed.num_bees_inside":"內部蜜蜂的數量","criterion.bred_animals.child":"幼體","criterion.bred_animals.parent":"父或母","criterion.bred_animals.partner":"配偶","criterion.brewed_potion.potion":"藥水 ID","criterion.changed_dimension.from":"出發維度","criterion.changed_dimension.to":"到達維度","criterion.channeled_lightning.victims":"受害實體","criterion.channeled_lightning.victims.entry":"實體","criterion.conditions":"條件","criterion.construct_beacon.beacon_level":"金字塔等級","criterion.consume_item.item":"物品","criterion.cured_zombie_villager.villager":"村民","criterion.cured_zombie_villager.zombie":"殭屍","criterion.effects_changed.effects":"狀態效果","criterion.enchanted_item.item":"物品","criterion.enchanted_item.levels":"經驗等級","criterion.enter_block.block":"方塊","criterion.enter_block.state":"方塊狀態","criterion.entity_hurt_player.damage":"傷害","criterion.entity_killed_player.entity":"源實體","criterion.entity_killed_player.killing_blow":"傷害類型","criterion.filled_bucket.item":"物品","criterion.fishing_rod_hooked.entity":"被拉的實體","criterion.fishing_rod_hooked.item":"物品","criterion.hero_of_the_village.location":"位置","criterion.inventory_changed.items":"物品","criterion.inventory_changed.items.entry":"物品","criterion.inventory_changed.slots":"欄位","criterion.inventory_changed.slots.empty":"空欄位的數量","criterion.inventory_changed.slots.full":"滿欄位的數量","criterion.inventory_changed.slots.occupied":"已用欄位的數量","criterion.item_durability_changed.delta":"差值","criterion.item_durability_changed.durability":"耐久度","criterion.item_durability_changed.item":"物品","criterion.item_used_on_block.item":"物品","criterion.item_used_on_block.location":"位置","criterion.killed_by_crossbow.unique_entity_types":"實體種類的數量","criterion.killed_by_crossbow.victims":"受害實體","criterion.killed_by_crossbow.victims.entry":"實體","criterion.levitation.distance":"距離","criterion.levitation.duration":"維持時間","criterion.location.location":"位置","criterion.nether_travel.distance":"距離","criterion.nether_travel.entered":"進入位置","criterion.nether_travel.exited":"退出位置","criterion.placed_block.block":"方塊","criterion.placed_block.item":"物品","criterion.placed_block.location":"位置","criterion.placed_block.state":"方塊狀態","criterion.player":"玩家","criterion.player_generates_container_loot.loot_table":"戰利品表","criterion.player_hurt_entity.damage":"傷害","criterion.player_hurt_entity.entity":"受害實體","criterion.player_killed_entity.entity":"受害實體","criterion.player_killed_entity.killing_blow":"傷害類型","criterion.recipe_unlocked.recipe":"配方","criterion.rod":"釣竿","criterion.safely_harvest_honey.block":"方塊","criterion.safely_harvest_honey.item":"物品","criterion.shot_crossbow.item":"物品","criterion.slept_in_bed.location":"位置","criterion.slide_down_block.block":"方塊","criterion.summoned_entity.entity":"實體","criterion.tame_animal.entity":"動物","criterion.target_hit.projectile":"投射物","criterion.target_hit.shooter":"射擊者","criterion.target_hit.signal_strength":"訊號強度","criterion.thrown_item_picked_up_by_entity.entity":"實體","criterion.thrown_item_picked_up_by_entity.item":"物品","criterion.trigger":"觸發器","criterion.used_ender_eye.distance":"距離","criterion.used_totem.item":"圖騰物品","criterion.villager_trade.item":"購得物品","criterion.villager_trade.villager":"村民","criterion.voluntary_exile.location":"位置","damage.blocked":"是否被阻擋","damage.dealt":"應當受到傷害","damage.source_entity":"源實體","damage.taken":"實際受到傷害","damage.type":"傷害類型","damage_source.bypasses_armor":"是否無視盔甲防禦","damage_source.bypasses_invulnerability":"是否無視任何無敵效果","damage_source.bypasses_magic":"是否為飢餓傷害","damage_source.direct_entity":"直接來源實體","damage_source.is_explosion":"是否為爆炸","damage_source.is_fire":"是否為燃燒","damage_source.is_lightning":"是否為雷擊","damage_source.is_magic":"是否為魔法,如藥水雲或飛濺藥水等","damage_source.is_projectile":"是否為投射物","damage_source.source_entity":"根本來源實體","decorator.carving_mask.step":"生成步驟","decorator.config":"組態","decorator.count.count":"數量","decorator.count_extra.count":"數量","decorator.count_extra.extra_chance":"額外機率","decorator.count_extra.extra_count":"額外數量","decorator.count_multilayer.count":"數量","decorator.count_noise.above_noise":"閾值上噪聲","decorator.count_noise.below_noise":"閾值下噪聲","decorator.count_noise.noise_level":"噪聲等級","decorator.count_noise_biased.noise_factor":"噪聲因子","decorator.count_noise_biased.noise_offset":"噪聲偏移量","decorator.count_noise_biased.noise_to_count_ratio":"噪數比","decorator.decorated.inner":"內部","decorator.decorated.outer":"外部","decorator.depth_average.baseline":"基準線","decorator.depth_average.spread":"擴散","decorator.glowstone.count":"數量","decorator.range.bottom_inclusive":"最小值(含)","decorator.range.top_inclusive":"最大值(含)","decorator.range_biased_to_bottom.bottom_inclusive":"最小值(含)","decorator.range_biased_to_bottom.cutoff":"橫斷","decorator.range_biased_to_bottom.top_inclusive":"最大值(含)","decorator.range_very_biased_to_bottom.bottom_inclusive":"最小值(含)","decorator.range_very_biased_to_bottom.cutoff":"橫斷","decorator.range_very_biased_to_bottom.top_inclusive":"最大值(含)","decorator.type":"類型","dimension":"維度","dimension.generator":"生成器","dimension.generator.biome_source":"生態域源","dimension.overworld":"主世界","dimension.the_end":"終末之界","dimension.the_nether":"地獄","dimension.type":"維度類型","dimension.type.object":"自訂","dimension.type.string":"預設","dimension_type.ambient_light":"環境光","dimension_type.ambient_light.help":"在無外部光源(如火把)的情況下的光亮等級。位於 0 與 1 之間的值。","dimension_type.bed_works":"床有效","dimension_type.bed_works.help":"若為 true,玩家可以使用床來設定重生點並跳過夜晚。若為 false,則使用床會爆炸。","dimension_type.coordinate_scale":"座標縮放","dimension_type.coordinate_scale.help":"在維度間傳送時(使用地獄傳送門或 /execute in)對座標使用的縮放倍數。","dimension_type.effects":"環境效果","dimension_type.effects.help":"天空效果","dimension_type.effects.overworld":"主世界","dimension_type.effects.the_end":"終末之界","dimension_type.effects.the_nether":"地獄","dimension_type.fixed_time":"固定時間","dimension_type.fixed_time.help":"設定該值會導致太陽處在某一固定位置。","dimension_type.has_ceiling":"具有天花板","dimension_type.has_ceiling.help":"影響天氣,地圖物品和重生規則。","dimension_type.has_raids":"生成突襲","dimension_type.has_raids.help":"若為 true,擁有不祥之兆效果的玩家會導致突襲。","dimension_type.has_skylight":"具有天空光照","dimension_type.has_skylight.help":"影響天氣,光照引擎和重生規則。","dimension_type.height":"高度","dimension_type.height.help":"方塊能夠放置的總高度。Max Y = Min Y + Height.","dimension_type.infiniburn":"無盡燃燒方塊","dimension_type.infiniburn.help":"定義能夠使火在其上永久燃燒的方塊標籤。","dimension_type.logical_height":"合規高度","dimension_type.logical_height.help":"在此高度以上,傳送門不會生成,歌萊果也不再能傳送玩家。","dimension_type.min_y":"最小高度","dimension_type.min_y.help":"方塊能夠放置的最小高度。","dimension_type.name":"名稱","dimension_type.natural":"自然","dimension_type.natural.help":"若設定為 true,傳送門中會生成殭屍化豬布林。若設定為 false,指南針與時鐘會不斷隨機旋轉。","dimension_type.piglin_safe":"豬布林不轉換","dimension_type.piglin_safe.help":"若為 false,豬布林會開始顫抖並轉化為殭屍化豬布林。","dimension_type.respawn_anchor_works":"重生錨可正常運作","dimension_type.respawn_anchor_works.help":"若為 true,玩家可以充能並使用重生錨來設定重生點。若為 false,使用重生錨會爆炸。","dimension_type.ultrawarm":"極熱生態域","dimension_type.ultrawarm.help":"若設定為 true,水會蒸發且海綿會變乾。","distance.absolute":"絕對距離","distance.horizontal":"水平距離","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"親水性","enchantment.bane_of_arthropods":"節肢剋星","enchantment.binding_curse":"綁定詛咒","enchantment.blast_protection":"爆炸保護","enchantment.channeling":"喚雷","enchantment.depth_strider":"深海漫遊","enchantment.efficiency":"效率","enchantment.enchantment":"附魔","enchantment.feather_falling":"輕盈","enchantment.fire_aspect":"燃燒","enchantment.fire_protection":"火焰保護","enchantment.flame":"火焰","enchantment.fortune":"幸運","enchantment.frost_walker":"冰霜行者","enchantment.impaling":"魚叉","enchantment.infinity":"無限","enchantment.knockback":"擊退","enchantment.levels":"等級","enchantment.looting":"掠奪","enchantment.loyalty":"忠誠","enchantment.luck_of_the_sea":"海洋的祝福","enchantment.lure":"魚餌","enchantment.mending":"修補","enchantment.multishot":"分裂箭矢","enchantment.piercing":"貫穿","enchantment.power":"強力","enchantment.projectile_protection":"投射物保護","enchantment.protection":"保護","enchantment.punch":"衝擊","enchantment.quick_charge":"快速上弦","enchantment.respiration":"水中呼吸","enchantment.riptide":"波濤","enchantment.sharpness":"鋒利","enchantment.silk_touch":"絲綢之觸","enchantment.smite":"不死剋星","enchantment.sweeping":"橫掃之刃","enchantment.thorns":"尖刺","enchantment.unbreaking":"耐久","enchantment.vanishing_curse":"消失詛咒","entity.distance":"到執行位置的距離","entity.effects":"狀態效果","entity.equipment":"裝備","entity.fishing_hook":"浮標","entity.fishing_hook.in_open_water":"是否位於開闊水域","entity.flags":"實體特徵","entity.isBaby":"是否為幼年狀態","entity.isOnFire":"是否正在著火","entity.isSneaking":"是否正在潛行","entity.isSprinting":"是否正在疾走","entity.isSwimming":"是否正在游泳","entity.location":"位置","entity.nbt":"NBT","entity.player":"玩家","entity.targeted_entity":"目標實體","entity.team":"隊伍","entity.type":"實體","entity.vehicle":"載具","entity_source.direct_killer":"直接擊殺實體","entity_source.killer":"擊殺者","entity_source.killer_player":"擊殺者玩家","entity_source.this":"自身","entry":"項目","error":"錯誤","error.expected_boolean":"應為一個布林值","error.expected_integer":"應為一個整數","error.expected_json":"應為JSON文本格式","error.expected_list":"應為一個陣列","error.expected_number":"應為一個數字","error.expected_object":"應為一個物件","error.expected_range":"應為一個範圍","error.expected_string":"應為一個字串","error.expected_uniform_int":"應為一個均勻分布整數","error.height_multiple":"高度必須是 %0% 的倍數","error.invalid_binomial":"不能使用二項分布型的範圍","error.invalid_empty_list":"不能使用空陣列","error.invalid_empty_string":"不能使用空字串","error.invalid_enum_option":"選項「%0%」無效","error.invalid_exact":"不能使用常數型的範圍","error.invalid_list_range.exact":"應為一個長度為 %1% 的串列","error.invalid_list_range.larger":"串列長度 %0% 比最大值 %1% 大","error.invalid_list_range.smaller":"串列長度 %0% 比最小值 %1% 小","error.invalid_number_range.between":"應為一個位於 %0% 與 %1% 之間的數字","error.invalid_number_range.larger":"值 %0% 比最大值 %1% 大","error.invalid_number_range.smaller":"值 %0% 比最小值 %1% 小","error.invalid_pattern":"字串無效:%0%","error.logical_height":"合規高度不能高於高度","error.min_y_multiple":"最小高度必須是 %0% 的倍數","error.min_y_plus_height":"最小高度 + 高度(Min Y + Height)不能高於 %0%","error.recipe.invalid_key":"只能使用單個字元作為鍵","error.separation_smaller_spacing":"間隔(separation)的值必須小於空位(spacing)","false":"否","feature.bamboo":"竹子","feature.bamboo.probability":"向上生長概率","feature.basalt_columns.height":"高度","feature.basalt_columns.reach":"範圍","feature.basult_columns":"玄武岩石柱林","feature.basult_pillar":"玄武岩柱","feature.block_pile":"設定方塊堆","feature.block_pile.state_provider":"狀態聲明","feature.blue_ice":"藍冰","feature.bonus_chest":"新手獎勵箱","feature.chorus_plant":"歌萊枝","feature.config":"組態","feature.coral_claw":"爪狀珊瑚","feature.coral_mushroom":"蘑菇狀珊瑚","feature.coral_tree":"珊瑚樹","feature.decorated":"自定義地景裝飾","feature.decorated.decorator":"裝飾器","feature.decorated.feature":"地景","feature.delta_feature":"三角洲地形","feature.delta_feature.contents":"三角洲內部方塊","feature.delta_feature.rim":"三角洲邊緣方塊","feature.delta_feature.rim_size":"邊緣尺寸","feature.delta_feature.size":"尺寸","feature.desert_well":"沙漠水井","feature.disk":"圓盤狀地形","feature.disk.half_height":"半高","feature.disk.radius":"半徑","feature.disk.state":"狀態","feature.disk.targets":"目標","feature.disk.targets.entry":"狀態","feature.dripstone_cluster":"滴水石簇","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"鐘乳石生長機率","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"一個鐘乳石由源頭往下成功生長一格的機率。","feature.dripstone_cluster.density":"密度","feature.dripstone_cluster.dripstone_block_layer_thickness":"方塊層厚度","feature.dripstone_cluster.floor_to_ceiling_search_range":"搜尋範圍","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"地板至天花板的搜尋範圍。","feature.dripstone_cluster.height":"高度","feature.dripstone_cluster.height_deviation":"高度偏差","feature.dripstone_cluster.max_distance_from_center_affecting_chance_of_dripstone_column":"石柱機率距離","feature.dripstone_cluster.max_distance_from_center_affecting_chance_of_dripstone_column.help":"足以影響石柱生成機率的鐘乳石的長度。","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"高度偏差距離","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"影響高度偏差的離中心的最大距離。","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"最大高度差","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"石筍和鐘乳石的最大高度差。","feature.dripstone_cluster.radius":"半徑","feature.dripstone_cluster.wetness":"溼度","feature.dripstone_cluster.wetness_deviation":"溼度偏差","feature.dripstone_cluster.wetness_mean":"溼度平均值","feature.emerald_ore":"綠寶石原礦","feature.emerald_ore.state":"狀態","feature.emerald_ore.target":"目標","feature.end_gateway":"終界折躍門","feature.end_gateway.exact":"精確傳送","feature.end_gateway.exit":"出口位置","feature.end_spike":"終界石柱","feature.end_spike.crystal_beam_target":"終界水晶光柱目標","feature.end_spike.crystal_invulnerable":"終界水晶無敵狀態","feature.end_spike.spikes":"終界黑曜石柱","feature.end_spike.spikes.entry":"終界黑曜石柱","feature.end_spike.spikes.entry.centerX":"中心 X 座標","feature.end_spike.spikes.entry.centerZ":"中心 Z 座標","feature.end_spike.spikes.entry.guarded":"鐵柵欄保護","feature.end_spike.spikes.entry.height":"高度","feature.end_spike.spikes.entry.radius":"半徑","feature.fill_layer":"填滿特定高度","feature.fill_layer.height":"高度","feature.fill_layer.state":"狀態","feature.flower":"花花","feature.flower.blacklist":"黑名單","feature.flower.block_placer":"方塊放置器","feature.flower.can_replace":"可取代","feature.flower.need_water":"需要水","feature.flower.project":"投影","feature.flower.state_provider":"狀態聲明","feature.flower.tries":"嘗試次數","feature.flower.whitelist":"白名單","feature.flower.xspread":"X 軸擴散","feature.flower.yspread":"Y 軸擴散","feature.flower.zspread":"Z 軸擴散","feature.forest_rock":"森林岩石","feature.forest_rock.state":"狀態","feature.fossil":"化石","feature.fossil.fossil_processors":"化石方塊處理器","feature.fossil.fossil_structures":"化石結構","feature.fossil.max_empty_corners_allowed":"允許最多幾個空角落","feature.fossil.overlay_processors":"向外延伸結構方塊處理器","feature.fossil.overlay_structures":"向外延伸結構","feature.freeze_top_layer":"冰封最上層","feature.geode":"紫晶洞","feature.geode.blocks":"方塊","feature.geode.blocks.alternate_inner_layer_provider":"替代內襯層方塊狀態聲明","feature.geode.blocks.cannot_replace":"不替換的方塊","feature.geode.blocks.filling_provider":"填滿方塊狀態聲明","feature.geode.blocks.inner_layer_provider":"內襯層方塊狀態聲明","feature.geode.blocks.inner_placements":"內部方塊替代","feature.geode.blocks.invalid_blocks":"辨識為無效的方塊","feature.geode.blocks.middle_layer_provider":"中層方塊狀態聲明","feature.geode.blocks.outer_layer_provider":"外層方塊狀態聲明","feature.geode.crack":"入口","feature.geode.crack.base_crack_size":"入口標準大小","feature.geode.crack.crack_point_offset":"開口點偏移量","feature.geode.crack.generate_crack_chance":"生成入口機率","feature.geode.distribution_points":"分布起始點","feature.geode.invalid_blocks_threshold":"無效方塊閾值","feature.geode.layers":"層次","feature.geode.layers.filling":"填滿層","feature.geode.layers.inner_layer":"內襯層","feature.geode.layers.middle_layer":"中層","feature.geode.layers.outer_layer":"外層","feature.geode.max_gen_offset":"最大生成偏移","feature.geode.min_gen_offset":"最小生成偏移","feature.geode.noise_multiplier":"噪聲倍化器","feature.geode.outer_wall_distance":"外牆厚度","feature.geode.placements_require_layer0_alternate":"內襯層方塊放置是否只允許使用替代內襯層方塊","feature.geode.point_offset":"點偏移量","feature.geode.use_alternate_layer0_chance":"內襯層使用替代內層方塊取代的機率","feature.geode.use_potential_placements_chance":"使用「勢能方塊放置法」的機率","feature.glow_lichen":"發光地衣","feature.glow_lichen.can_be_placed_on":"可放置在","feature.glow_lichen.can_be_placed_on.entry":"方塊狀態","feature.glow_lichen.can_place_on_ceiling":"可放置在底面","feature.glow_lichen.can_place_on_floor":"可放置在頂面","feature.glow_lichen.can_place_on_wall":"可放置在側面","feature.glow_lichen.chance_of_spreading":"向外蔓延機率","feature.glow_lichen.search_range":"搜尋範圍","feature.glowing_plant":"生長中的植物","feature.glowstone_blob":"螢光石叢","feature.growing_plant.allow_water":"允許含水","feature.growing_plant.body_provider":"樹體方塊狀態聲明","feature.growing_plant.direction":"生長方向","feature.growing_plant.head_provider":"樹冠方塊狀態聲明","feature.growing_plant.height_distribution":"高度分布","feature.growing_plant.height_distribution.entry.data":"數值資料","feature.growing_plant.height_distribution.entry.weight":"權重","feature.huge_brown_mushroom":"大型棕色蘑菇","feature.huge_brown_mushroom.cap_provider":"菌蓋方塊狀態聲明","feature.huge_brown_mushroom.foliage_radius":"菌蓋大小","feature.huge_brown_mushroom.stem_provider":"菌柄方塊狀態聲明","feature.huge_fungus":"大型蕈菇","feature.huge_fungus.decor_state":"裝飾","feature.huge_fungus.hat_state":"頂部","feature.huge_fungus.planted":"已種植","feature.huge_fungus.stem_state":"蕈柄","feature.huge_fungus.valid_base_block":"有效底部方塊","feature.huge_red_mushroom":"大型紅色蘑菇","feature.huge_red_mushroom.cap_provider":"菌蓋方塊狀態聲明","feature.huge_red_mushroom.foliage_radius":"菌蓋方塊狀態大小","feature.huge_red_mushroom.stem_provider":"菌柄方塊狀態聲明","feature.ice_patch":"冰方塊覆蓋","feature.ice_patch.half_height":"半高","feature.ice_patch.radius":"半徑","feature.ice_patch.state":"狀態","feature.ice_patch.targets":"目標","feature.ice_patch.targets.entry":"狀態","feature.ice_spike":"冰刺地形","feature.iceberg":"冰山","feature.iceberg.state":"狀態","feature.kelp":"海帶柱","feature.lake":"湖地形","feature.lake.state":"狀態","feature.large_dripstone":"大型鐘乳石","feature.large_dripstone.column_radius":"石柱半徑","feature.large_dripstone.floor_to_ceiling_search_range":"搜尋範圍","feature.large_dripstone.floor_to_ceiling_search_range.help":"地板至天花板的搜尋範圍。","feature.large_dripstone.height_scale":"高度比例","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"半徑與洞穴高度比","feature.large_dripstone.min_bluntness_for_wind":"最小風化強度","feature.large_dripstone.min_radius_for_wind":"風化最小半徑","feature.large_dripstone.stalactite_bluntness":"鐘乳石鈍度","feature.large_dripstone.stalagmite_bluntness":"石筍鈍度","feature.large_dripstone.wind_speed":"風速","feature.monster_room":"怪物之家","feature.nether_forest_vegetation":"地獄森林植被","feature.nether_forest_vegetation.state_provider":"狀態聲明","feature.netherrack_replace_blobs":"地獄石叢取代","feature.netherrack_replace_blobs.radius":"半徑","feature.netherrack_replace_blobs.state":"狀態","feature.netherrack_replace_blobs.target":"目標","feature.no_bonemeal_flower":"無骨粉花朵","feature.no_bonemeal_flower.blacklist":"黑名單","feature.no_bonemeal_flower.block_placer":"方塊放置器","feature.no_bonemeal_flower.can_replace":"是否可以被取代","feature.no_bonemeal_flower.need_water":"是否需要水源","feature.no_bonemeal_flower.project":"是否使用投影","feature.no_bonemeal_flower.state_provider":"狀態聲明","feature.no_bonemeal_flower.tries":"每刻嘗試散播次數","feature.no_bonemeal_flower.whitelist":"白名單","feature.no_bonemeal_flower.xspread":"X方向散播","feature.no_bonemeal_flower.yspread":"Y方向散播","feature.no_bonemeal_flower.zspread":"Z方向散播","feature.no_op":"不使用地景","feature.no_surface_ore":"無表層礦物","feature.no_surface_ore.size":"尺寸","feature.no_surface_ore.state":"狀態","feature.no_surface_ore.target":"目標","feature.object":"自訂","feature.ore":"生成礦物","feature.ore.discard_chance_on_air_exposure":"如果暴露到空氣,選擇放棄該次生成的機率","feature.ore.size":"尺寸","feature.ore.targets":"目標","feature.ore.targets.entry.state":"狀態","feature.ore.targets.entry.target":"目標","feature.random_boolean_selector":"隨機取布林值","feature.random_boolean_selector.feature_false":"若取值為非","feature.random_boolean_selector.feature_true":"若取值為是","feature.random_patch":"隨機方塊覆蓋","feature.random_patch.blacklist":"黑名單","feature.random_patch.block_placer":"方塊放置器","feature.random_patch.can_replace":"是否可以被取代","feature.random_patch.need_water":"是否需要水源","feature.random_patch.project":"是否使用投影","feature.random_patch.state_provider":"狀態聲明","feature.random_patch.tries":"每刻嘗試散播次數","feature.random_patch.whitelist":"白名單","feature.random_patch.xspread":"X方向擴散","feature.random_patch.yspread":"Y方向擴散","feature.random_patch.zspread":"Z方向擴散","feature.random_selector":"隨機選取一項地景","feature.random_selector.default":"預設","feature.random_selector.features":"地景","feature.random_selector.features.entry":"地景","feature.random_selector.features.entry.chance":"機率","feature.random_selector.features.entry.feature":"地景","feature.replace_single_block":"取代單一方塊","feature.replace_single_block.targets":"目標","feature.replace_single_block.targets.entry.state":"方塊狀態","feature.replace_single_block.targets.entry.target":"取代目的","feature.root_system":"根系","feature.root_system.allowed_vertical_water_for_tree":"允許垂直水源灌溉樹木","feature.root_system.feature":"地景","feature.root_system.hanging_root_placement_attempts":"放置懸根嘗試次數","feature.root_system.hanging_root_radius":"懸根半徑","feature.root_system.hanging_root_state_provider":"懸根方塊狀態聲明","feature.root_system.hanging_roots_vertical_span":"懸根垂直廣度","feature.root_system.required_vertical_space_for_tree":"需要預留給樹木的垂直生長空間","feature.root_system.root_column_max_height":"根系最高堆疊高度","feature.root_system.root_placement_attempts":"放置根系嘗試次數","feature.root_system.root_radius":"根系半徑","feature.root_system.root_replaceable":"可替換的根系","feature.root_system.root_state_provider":"根系方塊狀態聲明","feature.scattered_ore":"被截斷的原礦","feature.scattered_ore.discard_chance_on_air_exposure":"如果暴露到空氣,選擇放棄該次生成的機率","feature.scattered_ore.size":"大小","feature.scattered_ore.targets":"目標","feature.scattered_ore.targets.entry.state":"狀態","feature.scattered_ore.targets.entry.target":"目標","feature.sea_pickle":"生成海鞘","feature.sea_pickle.count":"數量","feature.seagrass":"生成海草","feature.seegrass.probability":"概率","feature.simple_block":"簡單方塊生成","feature.simple_block.place_in":"將要放置的位置的方塊","feature.simple_block.place_in.entry":"狀態","feature.simple_block.place_on":"下方的方塊","feature.simple_block.place_on.entry":"狀態","feature.simple_block.place_under":"上方的方塊","feature.simple_block.place_under.entry":"狀態","feature.simple_block.to_place":"將要放置的方塊","feature.simple_random_selector":"簡單機率選擇器","feature.simple_random_selector.features":"地景","feature.simple_random_selector.features.entry":"地景","feature.small_dripstone":"小鐘乳石","feature.small_dripstone.chance_of_taller_dripstone":"生成較大鐘乳石的機率","feature.small_dripstone.empty_space_search_radius":"可用空間搜尋半徑","feature.small_dripstone.max_offset_from_origin":"距來源的最大偏移","feature.small_dripstone.max_placements":"最大放置","feature.spring_feature":"溫泉地景","feature.spring_feature.hole_count":"坑洞數量","feature.spring_feature.required_block_below":"下方需要方塊","feature.spring_feature.rock_count":"岩石數量","feature.spring_feature.state":"狀態","feature.spring_feature.valid_blocks":"有效方塊","feature.string":"參照","feature.tree":"生成樹木","feature.tree.decorators":"裝飾器","feature.tree.decorators.entry":"樹木裝飾器","feature.tree.dirt_provider":"泥土方塊聲明","feature.tree.foliage_placer":"樹葉放置器","feature.tree.foliage_provider":"樹葉方塊聲明","feature.tree.force_dirt":"強制使用泥土","feature.tree.heightmap":"高度圖","feature.tree.ignore_vines":"忽略藤蔓","feature.tree.leaves_provider":"樹葉方塊聲明","feature.tree.max_water_depth":"樹生成的最大水深","feature.tree.minimum_size":"最小尺寸","feature.tree.minimum_size.limit":"限制","feature.tree.minimum_size.lower_size":"下部尺寸","feature.tree.minimum_size.middle_size":"中部尺寸","feature.tree.minimum_size.min_clipped_height":"最小剪裁高度","feature.tree.minimum_size.type":"最小尺寸","feature.tree.minimum_size.upper_limit":"上部限制","feature.tree.minimum_size.upper_size":"上部尺寸","feature.tree.sapling_provider":"樹苗狀態聲明","feature.tree.trunk_placer":"樹幹放置器","feature.tree.trunk_provider":"樹幹方塊聲明","feature.twisting_vines":"交錯纏繞的藤蔓","feature.type":"類型","feature.underwater_magma":"海底熔岩塊","feature.underwater_magma.floor_search_range":"地面搜尋半徑","feature.underwater_magma.placement_probability_per_valid_position":"每個有效的取代點,成功取代為熔岩塊的機率","feature.underwater_magma.placement_radius_around_floor":"地面取代半徑","feature.vegetation_patch":"植被覆蓋","feature.vegetation_patch.depth":"覆蓋深度","feature.vegetation_patch.extra_bottom_block_chance":"額外生成底方塊機率","feature.vegetation_patch.extra_edge_column_chance":"額外生成邊柱機率","feature.vegetation_patch.ground_state":"地面方塊狀態","feature.vegetation_patch.replaceable":"可被取代的方塊","feature.vegetation_patch.surface":"覆蓋表面","feature.vegetation_patch.surface.ceiling":"天花板","feature.vegetation_patch.surface.floor":"地板","feature.vegetation_patch.vegetation_chance":"植被機率","feature.vegetation_patch.vegetation_feature":"植被地景","feature.vegetation_patch.vertical_range":"垂直半徑","feature.vegetation_patch.xz_radius":"XZ半徑","feature.vines":"生成藤蔓","feature.void_start_platform":"虛空起始石頭平台","feature.waterlogged_vegetation_patch":"含水植被覆蓋","feature.waterlogged_vegetation_patch.depth":"覆蓋深度","feature.waterlogged_vegetation_patch.extra_bottom_block_chance":"額外生成底方塊機率","feature.waterlogged_vegetation_patch.extra_edge_column_chance":"額外生成邊柱機率","feature.waterlogged_vegetation_patch.ground_state":"地面方塊狀態","feature.waterlogged_vegetation_patch.replaceable":"可被取代的方塊","feature.waterlogged_vegetation_patch.surface":"覆蓋表面","feature.waterlogged_vegetation_patch.surface.ceiling":"天花板","feature.waterlogged_vegetation_patch.surface.floor":"地板","feature.waterlogged_vegetation_patch.vegetation_chance":"植被機率","feature.waterlogged_vegetation_patch.vegetation_feature":"植被地景","feature.waterlogged_vegetation_patch.vertical_range":"垂直半徑","feature.waterlogged_vegetation_patch.xz_radius":"XZ半徑","feature.weeping_vines":"生成垂泣藤","float_provider.base":"基礎值","float_provider.deviation":"離差","float_provider.max":"最大值","float_provider.mean":"算術平均數","float_provider.min":"最小值","float_provider.plateau":"上底","float_provider.spread":"離散程度","float_provider.type.clamped_normal":"常態分布","float_provider.type.constant":"常數(標準JSON寫法)","float_provider.type.number":"常數(數值寫法)","float_provider.type.trapezoid":"梯形分布","float_provider.type.uniform":"均勻分布","float_provider.value":"值","fluid.fluid":"流體 ID","fluid.state":"流體狀態","fluid.tag":"流體標籤","fluid_state.Name":"名稱","fluid_state.Properties":"屬性","foliage_placer.crown_height":"樹冠高度","foliage_placer.height":"高度","foliage_placer.offset":"偏移","foliage_placer.radius":"半徑","foliage_placer.trunk_height":"樹幹高度","foliage_placer.type":"類型","function.apply_bonus.enchantment":"附魔","function.apply_bonus.formula":"公式","function.apply_bonus.formula.binomial_with_bonus_count":"二項分布(有額外獎勵數量)","function.apply_bonus.formula.ore_drops":"礦物掉落","function.apply_bonus.formula.uniform_bonus_count":"均勻分布(有額外獎勵數量)","function.apply_bonus.parameters":"引數","function.apply_bonus.parameters.bonusMultiplier":"乘數","function.apply_bonus.parameters.extra":"額外值","function.apply_bonus.parameters.probability":"概率","function.copy_name.source":"源","function.copy_nbt.ops":"NBT 操作","function.copy_nbt.ops.entry":"操作","function.copy_nbt.source":"源","function.copy_state.block":"方塊","function.copy_state.properties":"方塊狀態","function.copy_state.properties.entry":"屬性","function.enchant_randomly.enchantments":"可選附魔","function.enchant_randomly.enchantments.entry":"附魔","function.enchant_with_levels.levels":"等級","function.enchant_with_levels.treasure":"寶藏型附魔","function.exploration_map.decoration":"圖示","function.exploration_map.destination":"目標","function.exploration_map.search_radius":"搜尋半徑","function.exploration_map.skip_existing_chunks":"跳過已生成區塊","function.exploration_map.zoom":"縮放等級","function.fill_player_head.entity":"實體","function.function":"函數","function.limit_count.limit":"限額","function.list":"多個","function.looting_enchant.count":"數量","function.looting_enchant.limit":"限制","function.object":"單個","function.set_attributes.modifiers":"屬性修飾符","function.set_attributes.modifiers.entry":"屬性修飾符","function.set_banner_pattern.append":"追加","function.set_banner_pattern.patterns":"圖案","function.set_contents.entries":"內容物","function.set_contents.entries.entry":"項目","function.set_count.add":"加上","function.set_count.add.help":"若為 true,將會相對於目前的物品數量更改","function.set_count.count":"數量","function.set_damage.add":"加上","function.set_damage.add.help":"若為 true,將會相對於目前的損傷值更改","function.set_damage.damage":"損傷值","function.set_data.data":"資料值","function.set_enchantments.add":"加上","function.set_enchantments.add.help":"若為 true,將會相對於目前的等級更改","function.set_enchantments.enchantments":"附魔","function.set_loot_table.name":"戰利品表名","function.set_loot_table.seed":"種子碼","function.set_lore.entity":"實體","function.set_lore.lore":"物品描述","function.set_lore.lore.entry":"一行","function.set_lore.replace":"覆蓋","function.set_name.entity":"實體","function.set_name.name":"名稱","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"狀態效果","function.set_stew_effect.effects.entry":"效果種類","function.set_stew_effect.effects.entry.duration":"維持時間","function.set_stew_effect.effects.entry.type":"效果種類","functions":"函數","functions.entry":"函數","gamemode.adventure":"冒險模式","gamemode.creative":"創造模式","gamemode.spectator":"旁觀者模式","gamemode.survival":"生存模式","generation_step.air":"空氣","generation_step.liquid":"液體","generator.biome_source.altitude_noise":"高度噪聲","generator.biome_source.biome":"生態域","generator.biome_source.biomes":"生態域","generator.biome_source.humidity_noise":"溼度噪聲","generator.biome_source.large_biomes":"大型生態域","generator.biome_source.legacy_biome_init_layer":"舊版生態域初始層","generator.biome_source.preset":"生態域預設","generator.biome_source.preset.nether":"地獄","generator.biome_source.scale":"縮放","generator.biome_source.seed":"生態域種子碼","generator.biome_source.temperature_noise":"溫度噪聲","generator.biome_source.type":"生態域源","generator.biome_source.weirdness_noise":"扭曲度噪聲","generator.seed":"維度種子碼","generator.settings":"生成器設定","generator.settings.biome":"生態域","generator.settings.lakes":"湖","generator.settings.layers":"層","generator.settings.layers.entry":"層","generator.settings.layers.entry.block":"方塊 ID","generator.settings.layers.entry.height":"高度","generator.settings.object":"自訂","generator.settings.presets.amplified":"巨大化","generator.settings.presets.caves":"洞穴","generator.settings.presets.end":"終界","generator.settings.presets.floating_islands":"浮空島嶼","generator.settings.presets.nether":"地獄","generator.settings.presets.overworld":"主世界","generator.settings.string":"預設","generator.settings.structures":"結構","generator.settings.structures.stronghold":"要塞","generator.settings.structures.stronghold.count":"數量","generator.settings.structures.stronghold.distance":"距離","generator.settings.structures.stronghold.spread":"擴散度","generator.settings.structures.structures":"結構","generator.type":"生成器類型","generator_biome.biome":"生態域","generator_biome.parameters":"引數","generator_biome.parameters.altitude":"海拔","generator_biome.parameters.help":"這些引數決定了該生態域的生成位置。每個生態域都必須擁有不同的設定組合。設定相近的生態域會生成在一起。","generator_biome.parameters.humidity":"溼度","generator_biome.parameters.offset":"偏移","generator_biome.parameters.temperature":"溫度","generator_biome.parameters.weirdness":"扭曲度","generator_biome_noise.amplitudes":"振幅","generator_biome_noise.amplitudes.entry":"倍頻 %0%","generator_biome_noise.firstOctave":"主倍頻","generator_structure.salt":"鹽值","generator_structure.separation":"間隔","generator_structure.separation.help":"以區塊為單位的此種類的兩個結構之間的最小距離。","generator_structure.spacing":"空位","generator_structure.spacing.help":"以區塊為單位的此種類的兩種結構之間的平均距離。","heightmap_type.MOTION_BLOCKING":"阻擋實體移動層","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"阻擋實體移動層(不含樹葉)","heightmap_type.OCEAN_FLOOR":"海床層","heightmap_type.OCEAN_FLOOR_WG":"海床層(世界生成)","heightmap_type.WORLD_SURFACE":"地表層","heightmap_type.WORLD_SURFACE_WG":"地表層(世界生成)","hide_source":"隱藏原始碼","int_provider.biased_to_bottom":"偏好下界值","int_provider.clamped":"常態分布","int_provider.constant":"常數(標準JSON寫法)","int_provider.number":"常數(數值寫法)","int_provider.uniform":"均勻分布","int_provider.value":"值","int_provider.value.max_inclusive":"最大值(含)","int_provider.value.min_inclusive":"最小值(含)","int_provider.value.source":"來源值","item.count":"數量","item.durability":"耐久度","item.enchantments":"附魔","item.enchantments.entry":"附魔","item.item":"名稱","item.nbt":"NBT","item.potion":"藥水","item.tag":"標籤","key.advancements":"進度","key.attack":"攻擊/破壞","key.back":"後退","key.chat":"開啟聊天欄","key.command":"開啟指令視窗","key.drop":"丟棄已選擇的物品","key.forward":"前進","key.fullscreen":"切換全螢幕","key.hotbar.1":"快捷欄 1","key.hotbar.2":"快捷欄 2","key.hotbar.3":"快捷欄 3","key.hotbar.4":"快捷欄 4","key.hotbar.5":"快捷欄 5","key.hotbar.6":"快捷欄 6","key.hotbar.7":"快捷欄 7","key.hotbar.8":"快捷欄 8","key.hotbar.9":"快捷欄 9","key.inventory":"開啟/關閉物品欄","key.jump":"跳躍","key.left":"往左","key.loadToolbarActivator":"載入工具列","key.pickItem":"選取方塊","key.playerlist":"列出玩家","key.right":"往右","key.saveToolbarActivator":"儲存工具列","key.screenshot":"擷取螢幕畫面","key.smoothCamera":"切換視角平滑移動","key.sneak":"潛行","key.spectatorOutlines":"標示玩家(旁觀者)","key.sprint":"跑步","key.swapOffhand":"交換兩手物品","key.togglePerspective":"切換視角","key.use":"使用物品/放置方塊","location.biome":"生態域","location.block":"方塊","location.dimension":"維度","location.feature":"地景","location.fluid":"流體","location.light":"光照","location.light.light":"可見光等級","location.position":"位置","location.position.x":"X 座標","location.position.y":"Y 座標","location.position.z":"Z 座標","location.smokey":"煙燻","loot_condition_type.alternative":"邏輯判斷(或)","loot_condition_type.block_state_property":"方塊屬性","loot_condition_type.damage_source_properties":"傷害來源","loot_condition_type.entity_properties":"實體屬性","loot_condition_type.entity_scores":"實體分數","loot_condition_type.inverted":"取反(非)","loot_condition_type.killed_by_player":"被玩家殺死","loot_condition_type.location_check":"檢查位置","loot_condition_type.match_tool":"工具是否符合","loot_condition_type.random_chance":"隨機概率","loot_condition_type.random_chance_with_looting":"受掠奪附魔影響的隨機概率","loot_condition_type.reference":"參照述詞檔案","loot_condition_type.survives_explosion":"未被爆炸破壞","loot_condition_type.table_bonus":"附魔獎勵","loot_condition_type.time_check":"檢查時間","loot_condition_type.value_check":"檢查值","loot_condition_type.weather_check":"檢查天氣","loot_entry.dynamic.name":"名稱","loot_entry.item.name":"名稱","loot_entry.loot_table.name":"戰利品表名","loot_entry.quality":"每等級幸運對權重的影響","loot_entry.tag.expand":"展開","loot_entry.tag.expand.help":"若為 false,該項目將會返回指定物品標籤的全部內容;否則將會從中隨機抽取一個返回。","loot_entry.tag.name":"物品標籤名","loot_entry.type":"類型","loot_entry.weight":"權重","loot_function_type.apply_bonus":"應用獎勵公式","loot_function_type.copy_name":"複製方塊實體顯示名","loot_function_type.copy_nbt":"複製 NBT","loot_function_type.copy_state":"複製方塊狀態","loot_function_type.enchant_randomly":"隨機附魔","loot_function_type.enchant_with_levels":"給予等價于經驗等級的隨機附魔","loot_function_type.exploration_map":"設定探險家地圖","loot_function_type.explosion_decay":"爆炸損耗","loot_function_type.fill_player_head":"填充玩家頭顱","loot_function_type.furnace_smelt":"熔爐熔煉","loot_function_type.limit_count":"限制堆疊數量","loot_function_type.looting_enchant":"根據掠奪附魔調整物品數量","loot_function_type.set_attributes":"設定屬性","loot_function_type.set_banner_pattern":"設定旗幟圖案","loot_function_type.set_contents":"設定內容物","loot_function_type.set_count":"設定物品數量","loot_function_type.set_damage":"設定損傷值","loot_function_type.set_data":"設定資料值","loot_function_type.set_enchantments":"設定附魔","loot_function_type.set_loot_table":"設定戰利品表","loot_function_type.set_lore":"設定物品描述","loot_function_type.set_name":"設定物品名","loot_function_type.set_nbt":"設定 NBT","loot_function_type.set_stew_effect":"設定可疑的燉湯狀態效果","loot_pool.bonus_rolls":"每等級幸運增加的抽取次數","loot_pool.entries":"項目","loot_pool.entries.entry":"項目","loot_pool.rolls":"抽取次數","loot_pool.rolls.help":"隨機抽取的項目數。","loot_pool_entry_type.alternatives":"取其中之一","loot_pool_entry_type.alternatives.help":"選取第一個滿足條件的子項目。","loot_pool_entry_type.dynamic":"動態","loot_pool_entry_type.dynamic.help":"獲取特定方塊的特定掉落物。","loot_pool_entry_type.empty":"不生成","loot_pool_entry_type.empty.help":"不向隨機池中加入任何物品。","loot_pool_entry_type.group":"組","loot_pool_entry_type.group.help":"從所有滿足條件的子項目中隨機抽取一個。","loot_pool_entry_type.item":"物品","loot_pool_entry_type.item.help":"加入一種物品。","loot_pool_entry_type.loot_table":"戰利品表","loot_pool_entry_type.loot_table.help":"加入另一個戰利品表的內容。","loot_pool_entry_type.sequence":"序列","loot_pool_entry_type.sequence.help":"從第一個不滿足條件的子項目之前的所有子項目中隨機抽取一個。","loot_pool_entry_type.tag":"物品標籤","loot_pool_entry_type.tag.help":"添加一個物品標籤的內容。","loot_table.pools":"隨機池","loot_table.pools.entry":"隨機池","loot_table.type":"類型","luck_based":"受幸運等級影響","nbt_operation.op":"操作類型","nbt_operation.op.append":"追加","nbt_operation.op.merge":"合併","nbt_operation.op.replace":"替換","nbt_operation.source":"複製源","nbt_operation.target":"複製目標","nbt_provider.source":"來源","nbt_provider.target":"目標","nbt_provider.type":"類型","nbt_provider.type.context":"參照上下文(標準JSON寫法)","nbt_provider.type.storage":"儲存標籤","nbt_provider.type.string":"參照上下文(字串寫法)","noise_settings.aquifers_enabled":"是否生成含水層","noise_settings.bedrock_floor_position":"基岩地板位置","noise_settings.bedrock_floor_position.help":"基岩地板的位置。數字越大地板越靠上。","noise_settings.bedrock_roof_position":"基岩天花板位置","noise_settings.bedrock_roof_position.help":"基岩天花板從世界高度開始計算的相對位置。數字越大天花板越靠下。","noise_settings.biome":"生態域","noise_settings.deepslate_enabled":"生成深板岩","noise_settings.default_block":"預設方塊","noise_settings.default_fluid":"預設流體","noise_settings.disable_mob_generation":"禁用生物生成","noise_settings.disable_mob_generation.help":"若設為 true,生成世界時不會生成生物。","noise_settings.min_surface_level":"最低地表高度","noise_settings.name":"名稱","noise_settings.noise":"噪聲選項","noise_settings.noise.amplified":"巨大化","noise_settings.noise.bottom_slide":"底部曲線","noise_settings.noise.bottom_slide.help":"改變世界底部曲線。當底部曲線大小(Size)為 0 時不起作用。","noise_settings.noise.bottom_slide.offset":"偏移","noise_settings.noise.bottom_slide.offset.help":"用於生成世界底部的方塊,在方塊密度已經設定為「目標」的值後,為「偏差 * 水平大小 * 4」定義一個允許的偏差範圍。","noise_settings.noise.bottom_slide.size":"大小","noise_settings.noise.bottom_slide.size.help":"用於生成世界底部的方塊,在「目標」的值取代已有的方塊密度後,為「大小 * 水平大小 * 4」定義一個允許範圍。","noise_settings.noise.bottom_slide.target":"目標","noise_settings.noise.bottom_slide.target.help":"所希望生成的目標方塊密度。正值可以增加地形起伏,負值反之。","noise_settings.noise.density_factor":"密度因子","noise_settings.noise.density_factor.help":"決定高度影響地形的程度。正值會在底部產生陸地。接近於 0 的值產生均勻的地形。","noise_settings.noise.density_offset":"密度偏移","noise_settings.noise.density_offset.help":"影響平均陸地高度。設定為 0 將使平均陸地高度變為高度(height)的一半。設定為正值將抬升高度。","noise_settings.noise.height":"高度","noise_settings.noise.height.help":"方塊可以生成的總高度。Max Y = Min Y + Height.","noise_settings.noise.island_noise_override":"島嶼噪聲覆蓋","noise_settings.noise.island_noise_override.help":"若設為 true,生成的地形會像終界一樣在中心有一個大島嶼,外部有許多小島嶼。","noise_settings.noise.min_y":"最小高度","noise_settings.noise.min_y.help":"方塊開始生成的最小高度","noise_settings.noise.random_density_offset":"隨機密度偏移","noise_settings.noise.sampling":"取樣","noise_settings.noise.sampling.xz_factor":"XZ 因子","noise_settings.noise.sampling.xz_scale":"XZ 縮放","noise_settings.noise.sampling.y_factor":"Y 因子","noise_settings.noise.sampling.y_scale":"Y 縮放","noise_settings.noise.simplex_surface_noise":"單體表面噪聲","noise_settings.noise.size_horizontal":"水平大小","noise_settings.noise.size_vertical":"垂直大小","noise_settings.noise.top_slide":"頂部曲線","noise_settings.noise.top_slide.help":"改變世界頂部曲線。當頂部曲線大小(Size)為 0 時不起作用。","noise_settings.noise.top_slide.offset":"偏移","noise_settings.noise.top_slide.offset.help":"用於生成世界頂部的方塊,在方塊密度已經設定為「目標」的值後,為「偏差 * 水平大小 * 4」定義一個允許的偏差範圍。","noise_settings.noise.top_slide.size":"大小","noise_settings.noise.top_slide.size.help":"用於生成世界頂部的方塊,在「目標」的值取代已有的方塊密度後,為「大小 * 水平大小 * 4」定義一個允許範圍。","noise_settings.noise.top_slide.target":"目標","noise_settings.noise.top_slide.target.help":"所希望生成的目標方塊密度。正值可以增加地形起伏,負值反之。","noise_settings.noise_caves_enabled":"生成噪聲洞穴","noise_settings.ore_veins_enabled":"生成大型礦脈","noise_settings.sea_level":"海平面","noise_settings.structures":"結構","noise_settings.structures.stronghold":"要塞","noise_settings.structures.stronghold.count":"數量","noise_settings.structures.stronghold.distance":"距離","noise_settings.structures.stronghold.spread":"分散","noise_settings.structures.structures":"結構","number_provider.max":"最大值","number_provider.min":"最小值","number_provider.n":"嘗試次數n","number_provider.p":"每次嘗試成功機率p","number_provider.scale":"縮放","number_provider.score":"計分板目標","number_provider.target":"目標","number_provider.type":"類型","number_provider.type.binomial":"二項分布","number_provider.type.constant":"常數(標準JSON寫法)","number_provider.type.number":"常數(數值寫法)","number_provider.type.object":"均勻分布(數值寫法)","number_provider.type.score":"分數","number_provider.type.uniform":"均勻分布(標準JSON寫法)","number_provider.value":"數字","player.advancements":"進度","player.advancements.entry":"進度","player.gamemode":"遊戲模式","player.level":"經驗等級","player.recipes":"配方","player.stats":"統計","player.stats.entry":"統計","pos_rule_test.always_true":"總是為真","pos_rule_test.axis":"座標軸","pos_rule_test.axis.x":"X 軸","pos_rule_test.axis.y":"Y 軸","pos_rule_test.axis.z":"Z 軸","pos_rule_test.axis_aligned_linear_pos":"以軸為中心的線性插值座標","pos_rule_test.linear_pos":"線性插值座標","pos_rule_test.max_chance":"最大機率","pos_rule_test.max_dist":"最大距離","pos_rule_test.min_chance":"最小機率","pos_rule_test.min_dist":"最小距離","pos_rule_test.predicate_type":"類型","processor.block_age.mossiness":"青苔度","processor.block_ignore.blocks":"方塊","processor.block_ignore.blocks.entry":"狀態","processor.block_rot.integrity":"完整性","processor.gravity.heightmap":"高度圖","processor.gravity.offset":"偏移","processor.processor_type":"類型","processor.protected_blocks.value":"方塊命名空間ID","processor.rule.rules":"規則","processor.rule.rules.entry":"規則","processor_list.processors":"處理器","processor_list.processors.entry":"處理器","processor_rule.input_predicate":"輸入方塊處理述詞","processor_rule.location_predicate":"結構生成前位置方塊處理述詞","processor_rule.output_nbt":"輸出 NBT","processor_rule.output_state":"輸出方塊狀態","processor_rule.position_predicate":"位置方塊處理述詞","processors.object":"自訂","processors.string":"參照","range.binomial":"二項分布","range.max":"最大值","range.min":"最小值","range.n":"嘗試次數n","range.number":"精確值","range.object":"範圍","range.p":"每次嘗試成功機率p","range.type":"類型","range.uniform":"均勻分布","requirements":"達成成就所需條件","rule_test.always_true":"總是為真","rule_test.block":"方塊","rule_test.block_match":"是否為指定方塊","rule_test.block_state":"狀態","rule_test.blockstate_match":"是否為指定方塊狀態","rule_test.predicate_type":"類型","rule_test.probability":"概率","rule_test.random_block_match":"方塊隨機匹配","rule_test.random_blockstate_match":"方塊狀態隨機匹配","rule_test.tag":"標籤","rule_test.tag_match":"標籤匹配","score_provider.name":"名稱","score_provider.target":"目標","score_provider.type":"類型","score_provider.type.context":"參照上下文(標準JSON寫法)","score_provider.type.fixed":"固定","score_provider.type.string":"參照上下文(字串寫法)","slot.chest":"胸部","slot.feet":"腳部","slot.head":"頭部","slot.legs":"腿部","slot.mainhand":"慣用手","slot.offhand":"非慣用手","statistic.stat":"統計","statistic.type":"類型","statistic.type.broken":"損壞","statistic.type.crafted":"合成","statistic.type.custom":"Custom(其他)","statistic.type.dropped":"掉落","statistic.type.killed":"擊殺","statistic.type.killedByTeam":"被隊伍擊殺","statistic.type.killed_by":"被擊殺","statistic.type.mined":"挖掘","statistic.type.picked_up":"撿起","statistic.type.teamkill":"擊殺隊伍","statistic.type.used":"使用","statistic.value":"值","status_effect.ambient":"是否為烽火台施加","status_effect.amplifier":"等級","status_effect.duration":"維持時間","status_effect.visible":"是否可見","structure_feature.biome_temp":"生態域溫度","structure_feature.biome_temp.cold":"寒冷","structure_feature.biome_temp.warm":"溫暖","structure_feature.cluster_probability":"成簇概率","structure_feature.config":"組態","structure_feature.is_beached":"是否擱淺","structure_feature.large_probability":"大型概率","structure_feature.portal_type":"傳送門類型","structure_feature.portal_type.desert":"沙漠","structure_feature.portal_type.jungle":"叢林","structure_feature.portal_type.mountain":"山","structure_feature.portal_type.nether":"地獄","structure_feature.portal_type.ocean":"海洋","structure_feature.portal_type.standard":"基本","structure_feature.portal_type.swamp":"沼澤","structure_feature.probability":"概率","structure_feature.size":"尺寸","structure_feature.start_pool":"起始池","structure_feature.type":"類型","structure_feature.type.mesa":"惡地","structure_feature.type.normal":"普通","surface_builder.config":"組態","surface_builder.top_material":"頂層材料","surface_builder.type":"類型","surface_builder.under_material":"下層材料","surface_builder.underwater_material":"水下材料","table.type":"戰利品表類型","table.type.block":"方塊","table.type.chest":"儲物箱","table.type.empty":"不生成","table.type.entity":"實體","table.type.fishing":"釣魚","table.type.generic":"通用","tag.replace":"覆蓋","tag.values":"值","template_element.element_type":"類型","template_element.elements":"元素","template_element.feature":"地景","template_element.location":"結構的命名空間 ID","template_element.processors":"處理器","template_element.projection":"投影","template_element.projection.rigid":"直接生成","template_element.projection.terrain_matching":"匹配地形","template_pool.elements":"元素","template_pool.elements.entry":"元素","template_pool.elements.entry.element":"元素","template_pool.elements.entry.weight":"權重","template_pool.fallback":"回落池","template_pool.name":"名稱","text_component":"聊天組合","text_component.boolean":"布林值","text_component.list":"陣列","text_component.number":"數字","text_component.object":"物件","text_component.object.keybind":"鍵位綁定","text_component.object.nbt":"NBT 值","text_component.object.score":"分數值","text_component.object.selector":"實體名稱","text_component.object.text":"純文字","text_component.object.translation":"翻譯文字","text_component.string":"字串","text_component_object.block":"方塊","text_component_object.bold":"粗體","text_component_object.clickEvent":"點擊事件","text_component_object.clickEvent.action":"行為","text_component_object.clickEvent.action.change_page":"翻頁","text_component_object.clickEvent.action.copy_to_clipboard":"複製到剪貼簿","text_component_object.clickEvent.action.open_file":"打開檔案","text_component_object.clickEvent.action.open_url":"打開 URL","text_component_object.clickEvent.action.run_command":"執行指令","text_component_object.clickEvent.action.suggest_command":"建議指令","text_component_object.clickEvent.value":"值","text_component_object.color":"顏色","text_component_object.entity":"實體","text_component_object.extra":"附加","text_component_object.font":"字型","text_component_object.hoverEvent":"懸浮事件","text_component_object.hoverEvent.action":"行為","text_component_object.hoverEvent.action.show_entity":"顯示實體","text_component_object.hoverEvent.action.show_item":"顯示物品","text_component_object.hoverEvent.action.show_text":"顯示文字","text_component_object.hoverEvent.contents":"內容","text_component_object.hoverEvent.value":"值","text_component_object.insertion":"插入","text_component_object.interpret":"解析","text_component_object.italic":"斜體","text_component_object.keybind":"鍵位","text_component_object.nbt":"NBT","text_component_object.obfuscated":"混淆","text_component_object.score":"分數","text_component_object.score.name":"名稱","text_component_object.score.objective":"計分板目標","text_component_object.score.value":"值","text_component_object.selector":"選擇器","text_component_object.storage":"容器","text_component_object.strikethrough":"刪除線","text_component_object.text":"文字","text_component_object.translate":"可翻譯文字","text_component_object.underlined":"下劃線","text_component_object.with":"以之翻譯","tree_decorator.alter_ground.provider":"狀態聲明","tree_decorator.beehive.probability":"概率","tree_decorator.cocoa.probability":"概率","tree_decorator.type":"類型","true":"是","trunk_placer.base_height":"基礎高度","trunk_placer.height_rand_a":"水平隨機高度","trunk_placer.height_rand_b":"豎直隨機高度","trunk_placer.type":"類型","uniform_int.base":"基礎值","uniform_int.number":"常數","uniform_int.object":"均勻分布","uniform_int.spread":"擴散","unset":"未指定","update.pack_format":"將 pack_format 升級至 %0%","vertical_anchor.above_bottom":"比底部高","vertical_anchor.absolute":"指定特定層","vertical_anchor.below_top":"比頂部低","world.bonus_chest":"生成獎勵箱","world.generate_features":"生成結構","world.seed":"種子碼","world_settings.bonus_chest":"生成獎勵箱","world_settings.dimensions":"維度","world_settings.generate_features":"生成地景","world_settings.seed":"世界種子碼","worldgen.warning":"本特性為高度實驗性的特性,很不穩定,在未來的版本中隨時會有變動。請做好遊戲在創建世界時崩潰的準備。","worldgen/biome_source.checkerboard":"棋盤","worldgen/biome_source.checkerboard.help":"以棋盤狀區塊圖案生成的生態域。","worldgen/biome_source.fixed":"固定","worldgen/biome_source.fixed.help":"整個世界只有單一生態域。","worldgen/biome_source.multi_noise":"多重噪聲","worldgen/biome_source.multi_noise.help":"可設定參數的自訂生態域分布。","worldgen/biome_source.the_end":"終界","worldgen/biome_source.the_end.help":"終界的生態域分布。","worldgen/biome_source.vanilla_layered":"原版分層","worldgen/biome_source.vanilla_layered.help":"主世界的生態域分布。","worldgen/block_placer_type.column_placer":"柱狀","worldgen/block_placer_type.double_plant_placer":"雙層植物","worldgen/block_placer_type.simple_block_placer":"簡單","worldgen/block_state_provider_type.forest_flower_provider":"繁花森林方塊狀態聲明","worldgen/block_state_provider_type.plain_flower_provider":"平原花方塊狀態聲明","worldgen/block_state_provider_type.randomized_int_state_provider":"隨機整數型方塊狀態聲明","worldgen/block_state_provider_type.randomized_int_state_provider.property":"屬性","worldgen/block_state_provider_type.randomized_int_state_provider.source":"參照","worldgen/block_state_provider_type.randomized_int_state_provider.values":"取值","worldgen/block_state_provider_type.rotated_block_provider":"旋轉方塊狀態聲明","worldgen/block_state_provider_type.simple_state_provider":"簡單方塊狀態聲明","worldgen/block_state_provider_type.weighted_state_provider":"加權方塊狀態聲明","worldgen/carver.canyon":"峽谷","worldgen/carver.cave":"洞穴","worldgen/carver.nether_cave":"地獄洞穴","worldgen/carver.underwater_canyon":"水下峽谷","worldgen/carver.underwater_cave":"水下洞穴","worldgen/chunk_generator.debug":"除錯世界","worldgen/chunk_generator.flat":"超平坦","worldgen/chunk_generator.noise":"預設噪聲地形","worldgen/feature_size_type.three_layers_feature_size":"三層","worldgen/feature_size_type.two_layers_feature_size":"兩層","worldgen/foliage_placer_type.acacia_foliage_placer":"相思樹","worldgen/foliage_placer_type.blob_foliage_placer":"橡樹/白樺木","worldgen/foliage_placer_type.bush_foliage_placer":"金字塔形","worldgen/foliage_placer_type.dark_oak_foliage_placer":"黑橡樹","worldgen/foliage_placer_type.fancy_foliage_placer":"球形","worldgen/foliage_placer_type.jungle_foliage_placer":"叢林","worldgen/foliage_placer_type.mega_pine_foliage_placer":"雙層稀疏雲杉","worldgen/foliage_placer_type.pine_foliage_placer":"稀疏雲杉","worldgen/foliage_placer_type.spruce_foliage_placer":"杉木","worldgen/structure_pool_element.empty_pool_element":"空集合","worldgen/structure_pool_element.feature_pool_element":"地景","worldgen/structure_pool_element.legacy_single_pool_element":"單個(舊版)","worldgen/structure_pool_element.list_pool_element":"清單","worldgen/structure_pool_element.single_pool_element":"單個","worldgen/structure_processor.blackstone_replace":"取代黑石","worldgen/structure_processor.block_age":"石製方塊由青苔變種取代","worldgen/structure_processor.block_ignore":"忽略方塊","worldgen/structure_processor.block_rot":"隨機移除方塊","worldgen/structure_processor.gravity":"重力","worldgen/structure_processor.jigsaw_replacement":"從拼圖方塊取代","worldgen/structure_processor.lava_submerged_block":"熔岩湮沒方塊","worldgen/structure_processor.nop":"不使用結構處理器","worldgen/structure_processor.protected_blocks":"保護特定方塊","worldgen/structure_processor.rule":"規則","worldgen/tree_decorator_type.alter_ground":"地面方塊替換","worldgen/tree_decorator_type.beehive":"蜂箱","worldgen/tree_decorator_type.cocoa":"可可果","worldgen/tree_decorator_type.leave_vine":"樹葉藤蔓","worldgen/tree_decorator_type.trunk_vine":"樹幹藤蔓","worldgen/trunk_placer_type.dark_oak_trunk_placer":"黑橡木生長方式","worldgen/trunk_placer_type.fancy_trunk_placer":"多分叉型","worldgen/trunk_placer_type.forking_trunk_placer":"單分叉型","worldgen/trunk_placer_type.giant_trunk_placer":"2×2 豎直型","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"大叢林木型","worldgen/trunk_placer_type.straight_trunk_placer":"豎直型"}');export default e;
-//# sourceMappingURL=zh-tw.9dc297b5.js.map
diff --git a/assets/zh-tw.9dc297b5.js.map b/assets/zh-tw.9dc297b5.js.map
deleted file mode 100644
index 51830e48..00000000
--- a/assets/zh-tw.9dc297b5.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zh-tw.9dc297b5.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/assets/zh-tw.bae62b5e.js b/assets/zh-tw.bae62b5e.js
new file mode 100644
index 00000000..af47eca1
--- /dev/null
+++ b/assets/zh-tw.bae62b5e.js
@@ -0,0 +1,2 @@
+var e=JSON.parse('{"advancement.criteria":"準則","advancement.display":"顯示","advancement.display.announce_to_chat":"在聊天欄提示","advancement.display.background":"背景","advancement.display.description":"描述","advancement.display.frame":"框架類型","advancement.display.frame.challenge":"挑戰","advancement.display.frame.goal":"目標","advancement.display.frame.task":"進度","advancement.display.help":"若存在,該進度會在進度介面中展示。","advancement.display.hidden":"隱藏","advancement.display.icon":"圖示","advancement.display.icon.item":"圖示物品","advancement.display.icon.nbt":"圖示物品 NBT","advancement.display.show_toast":"顯示右上角提示訊息","advancement.display.title":"標題","advancement.parent":"上游進度","advancement.rewards":"獎勵","advancement.rewards.experience":"經驗","advancement.rewards.function":"函數","advancement.rewards.loot":"戰利品表","advancement.rewards.recipes":"配方","advancement_trigger.bee_nest_destroyed":"摧毀蜂窩","advancement_trigger.bred_animals":"繁殖動物","advancement_trigger.brewed_potion":"釀製藥水","advancement_trigger.changed_dimension":"進入不同維度","advancement_trigger.channeled_lightning":"使用喚雷附魔擊殺實體","advancement_trigger.construct_beacon":"構建烽火台結構","advancement_trigger.consume_item":"消耗物品","advancement_trigger.cured_zombie_villager":"治療殭屍村民","advancement_trigger.effects_changed":"狀態效果改變","advancement_trigger.enchanted_item":"附魔物品","advancement_trigger.enter_block":"進入方塊","advancement_trigger.entity_hurt_player":"實體傷害玩家","advancement_trigger.entity_killed_player":"實體殺死玩家","advancement_trigger.filled_bucket":"填滿鐵桶","advancement_trigger.fishing_rod_hooked":"釣竿勾住東西","advancement_trigger.hero_of_the_village":"村莊英雄","advancement_trigger.impossible":"不可達成","advancement_trigger.inventory_changed":"物品欄改變","advancement_trigger.item_durability_changed":"物品耐久度改變","advancement_trigger.item_used_on_block":"對方塊使用物品","advancement_trigger.killed_by_crossbow":"使用弩擊殺","advancement_trigger.levitation":"懸浮","advancement_trigger.location":"位置","advancement_trigger.nether_travel":"地獄旅行","advancement_trigger.placed_block":"放置方塊","advancement_trigger.player_generates_container_loot":"玩家生成容器戰利品","advancement_trigger.player_hurt_entity":"玩家傷害實體","advancement_trigger.player_killed_entity":"玩家殺死實體","advancement_trigger.recipe_unlocked":"配方解鎖","advancement_trigger.safely_harvest_honey":"安全地採集蜂蜜","advancement_trigger.shot_crossbow":"使用弩","advancement_trigger.slept_in_bed":"睡覺","advancement_trigger.slide_down_block":"從蜂蜜塊上滑下","advancement_trigger.summoned_entity":"召喚實體","advancement_trigger.tame_animal":"馴服動物","advancement_trigger.target_hit":"擊中標靶","advancement_trigger.thrown_item_picked_up_by_entity":"丟出的物品被實體撿起","advancement_trigger.tick":"每刻觸發","advancement_trigger.used_ender_eye":"使用終界之眼","advancement_trigger.used_totem":"使用不死圖騰","advancement_trigger.villager_trade":"村民交易","advancement_trigger.voluntary_exile":"引發突襲","attribute.generic_armor":"盔甲防禦點數","attribute.generic_armor_toughness":"盔甲強度","attribute.generic_attack_damage":"普通攻擊傷害","attribute.generic_attack_knockback":"擊退距離","attribute.generic_attack_speed":"攻擊速度","attribute.generic_flying_speed":"飛行速度","attribute.generic_follow_range":"追蹤範圍","attribute.generic_knockback_resistance":"抗擊退","attribute.generic_luck":"幸運","attribute.generic_max_health":"最高生命值","attribute.generic_movement_speed":"移動速度","attribute.horse.jump_strength":"跳躍力","attribute.zombie.spawn_reinforcements":"殭屍呼叫增援能力","attribute_modifier.amount":"數量","attribute_modifier.attribute":"屬性","attribute_modifier.name":"名稱","attribute_modifier.operation":"運算模式","attribute_modifier.operation.addition":"加減數量","attribute_modifier.operation.multiply_base":"乘上數量","attribute_modifier.operation.multiply_total":"乘上(數量 + 1)","attribute_modifier.slot":"欄位","attribute_modifier.slot.list":"多個","attribute_modifier.slot.string":"單個","badge.experimental":"實驗性","badge.unstable":"不穩定","biome.carvers":"地形雕刻器","biome.carvers.air":"空氣","biome.carvers.liquid":"液體","biome.category":"分類","biome.creature_spawn_probability":"生物生成機率","biome.depth":"深度","biome.depth.help":"使地形抬升或下沉。正值將解析為陸地,負值解析為海洋。","biome.downfall":"降水(此引數控制草/樹葉的顏色與火的蔓延速度)","biome.effects":"環境效果","biome.effects.additions_sound":"附加音效","biome.effects.additions_sound.sound":"音效","biome.effects.additions_sound.tick_chance":"每刻播放的機率","biome.effects.ambient_sound":"環境音效","biome.effects.fog_color":"迷霧顏色","biome.effects.foliage_color":"樹葉顏色","biome.effects.grass_color":"草的顏色","biome.effects.grass_color_modifier":"草顏色修飾選項","biome.effects.grass_color_modifier.dark_forest":"黑森林","biome.effects.grass_color_modifier.none":"無","biome.effects.grass_color_modifier.swamp":"沼澤","biome.effects.mood_sound":"氛圍音效","biome.effects.mood_sound.block_search_extent":"播放位置搜尋半徑","biome.effects.mood_sound.offset":"偏移","biome.effects.mood_sound.sound":"音效","biome.effects.mood_sound.tick_delay":"刻延時","biome.effects.music":"音樂","biome.effects.music.max_delay":"最大迴響時間","biome.effects.music.min_delay":"最小迴響時間","biome.effects.music.replace_current_music":"替換當前音樂","biome.effects.music.sound":"音效","biome.effects.particle":"粒子","biome.effects.particle.options":"選項","biome.effects.particle.options.type":"粒子類型","biome.effects.particle.probability":"概率","biome.effects.sky_color":"天空顏色","biome.effects.water_color":"水的顏色","biome.effects.water_fog_color":"水中迷霧顏色","biome.features":"地景","biome.features.entry":"步驟 %0%","biome.features.entry.entry":"地景","biome.player_spawn_friendly":"玩家生成偏好","biome.player_spawn_friendly.help":"若為 true,世界出生點會優先選定在此生態域內。","biome.precipitation":"降雨量","biome.precipitation.none":"無","biome.precipitation.rain":"雨","biome.precipitation.snow":"雪","biome.scale":"規模","biome.scale.help":"垂直拉伸地形。值越小,地形越平整。","biome.spawn_costs":"生成代價","biome.spawn_costs.charge":"此次生成的電荷量","biome.spawn_costs.energy_budget":"此次生成擁有的電位能","biome.spawners":"生成器","biome.spawners.ambient":"環境生物","biome.spawners.creature":"生物(非怪物)","biome.spawners.entry":"生成","biome.spawners.entry.maxCount":"最大數量","biome.spawners.entry.minCount":"最小數量","biome.spawners.entry.type":"類型","biome.spawners.entry.weight":"權重","biome.spawners.misc":"雜項","biome.spawners.monster":"怪物","biome.spawners.water_ambient":"水下環境生物","biome.spawners.water_creature":"水生生物","biome.starts":"結構起始點","biome.starts.entry":"結構","biome.starts.help":"配置過的結構地景的列表。","biome.surface_builder":"地表生成器","biome.temperature":"溫度","biome.temperature_modifier":"溫度修飾選項","biome.temperature_modifier.frozen":"寒凍","biome.temperature_modifier.none":"無","block.block":"方塊 ID","block.nbt":"NBT","block.state":"方塊狀態","block.tag":"方塊標籤","block_placer.column_placer.extra_size":"額外尺寸","block_placer.column_placer.min_size":"最小尺寸","block_placer.type":"類型","block_state.Name":"方塊命名空間ID","block_state.Properties":"屬性","block_state.Properties.snowy":"含雪","block_state_provider.randomized_int_state_provider.property":"屬性","block_state_provider.randomized_int_state_provider.source":"參照","block_state_provider.randomized_int_state_provider.values":"取值","block_state_provider.rotated_block_provider.state":"狀態","block_state_provider.simple_state_provider.state":"狀態","block_state_provider.type":"類型","block_state_provider.weighted_state_provider.entries":"項目","block_state_provider.weighted_state_provider.entries.entry.data":"狀態","block_state_provider.weighted_state_provider.entries.entry.weight":"權重","carver.config":"組態","carver.config.aquifers_enabled":"是否使用含水層","carver.config.canyon.bottom_inclusive":"最小值(含)","carver.config.canyon.shape.distance_factor":"距離因數","carver.config.canyon.shape.horizontal_radius_factor":"水平半徑因數","carver.config.canyon.shape.thickness":"厚度","carver.config.canyon.top_inclusive":"最大值(含)","carver.config.canyon.shape.vertical_radius_center_factor":"垂直半徑中心因數","carver.config.canyon.shape.vertical_radius_default_factor":"垂直半徑預設因數","carver.config.canyon.vertical_rotation":"垂直旋轉","carver.config.canyon.shape.width_smoothness":"柔邊","carver.config.y_scale":"Y軸縮放尺度","carver.config.cave.floor_level":"地板層","carver.config.cave.horizontal_radius_multiplier":"水平半徑倍化器","carver.config.cave.vertical_radius_multiplier":"垂直半徑倍化器","carver.config.debug_settings":"除錯設定","carver.config.debug_settings.air_state":"空氣狀態","carver.config.debug_settings.barrier_state":"屏障狀態","carver.config.debug_settings.debug_mode":"除錯模式","carver.config.debug_settings.lava_state":"岩漿狀態","carver.config.debug_settings.water_state":"水源狀態","carver.config.lava_level":"岩漿層","carver.config.nether_cave.floor_level":"地板層","carver.config.nether_cave.horizontal_radius_multiplier":"水平半徑倍化器","carver.config.nether_cave.vertical_radius_multiplier":"垂直半徑倍化器","carver.config.probability":"概率","carver.config.y":"y軸設定","carver.config.yScale":"y軸比例尺設定","carver.type":"類型","children":"子標籤","children.entry":"項目","condition.alternative.terms":"候選項目","condition.block_state_property.block":"方塊","condition.block_state_property.properties":"方塊狀態","condition.condition":"條件","condition.damage_source":"傷害來源","condition.entity_properties.entity":"實體","condition.entity_scores.entity":"實體","condition.entity_scores.scores":"分數","condition.entry":"述詞","condition.inverted.term":"條件","condition.item":"物品","condition.killed_by_player.inverse":"取反","condition.list":"多個","condition.location":"位置","condition.location_check.offsetX":"X 座標偏移","condition.location_check.offsetY":"Y 座標偏移","condition.location_check.offsetZ":"Z 座標偏移","condition.object":"單個","condition.random_chance.chance":"機率","condition.random_chance_with_looting.chance":"機率","condition.random_chance_with_looting.looting_multiplier":"每等級掠奪附魔增加的數","condition.reference.name":"述詞 ID","condition.table_bonus.chances":"機率","condition.table_bonus.chances.entry":"機率","condition.table_bonus.enchantment":"附魔","condition.time_check.period":"週期","condition.time_check.period.help":"可選。若指定,在比較前會先將當前遊戲的時間刻除以該數,並取餘數(例如,若設定為 24000,那麼每一Minecraft天的開始都將滿足一次這個條件)。","condition.time_check.value":"值","condition.value_check.range":"範圍","condition.value_check.value":"值","condition.weather_check.raining":"下雨","condition.weather_check.thundering":"雷雨","conditions":"條件","conditions.entry":"條件","conditions.list":"條件","conditions.object":"舊版","copy_source.block_entity":"方塊實體","copy_source.direct_killer":"直接擊殺實體","copy_source.killer":"擊殺實體","copy_source.killer_player":"擊殺玩家","copy_source.this":"自身","criterion.bee_nest_destroyed.block":"方塊","criterion.bee_nest_destroyed.num_bees_inside":"內部蜜蜂的數量","criterion.bred_animals.child":"幼體","criterion.bred_animals.parent":"父或母","criterion.bred_animals.partner":"配偶","criterion.brewed_potion.potion":"藥水 ID","criterion.changed_dimension.from":"出發維度","criterion.changed_dimension.to":"到達維度","criterion.channeled_lightning.victims":"受害實體","criterion.channeled_lightning.victims.entry":"實體","criterion.conditions":"條件","criterion.construct_beacon.beacon_level":"金字塔等級","criterion.consume_item.item":"物品","criterion.cured_zombie_villager.villager":"村民","criterion.cured_zombie_villager.zombie":"殭屍","criterion.effects_changed.effects":"狀態效果","criterion.enchanted_item.item":"物品","criterion.enchanted_item.levels":"經驗等級","criterion.enter_block.block":"方塊","criterion.enter_block.state":"方塊狀態","criterion.entity_hurt_player.damage":"傷害","criterion.entity_killed_player.entity":"源實體","criterion.entity_killed_player.killing_blow":"傷害類型","criterion.filled_bucket.item":"物品","criterion.fishing_rod_hooked.entity":"被拉的實體","criterion.fishing_rod_hooked.item":"物品","criterion.hero_of_the_village.location":"位置","criterion.inventory_changed.items":"物品","criterion.inventory_changed.items.entry":"物品","criterion.inventory_changed.slots":"欄位","criterion.inventory_changed.slots.empty":"空欄位的數量","criterion.inventory_changed.slots.full":"滿欄位的數量","criterion.inventory_changed.slots.occupied":"已用欄位的數量","criterion.item_durability_changed.delta":"差值","criterion.item_durability_changed.durability":"耐久度","criterion.item_durability_changed.item":"物品","criterion.item_used_on_block.item":"物品","criterion.item_used_on_block.location":"位置","criterion.killed_by_crossbow.unique_entity_types":"實體種類的數量","criterion.killed_by_crossbow.victims":"受害實體","criterion.killed_by_crossbow.victims.entry":"實體","criterion.levitation.distance":"距離","criterion.levitation.duration":"維持時間","criterion.location.location":"位置","criterion.nether_travel.distance":"距離","criterion.nether_travel.entered":"進入位置","criterion.nether_travel.exited":"退出位置","criterion.placed_block.block":"方塊","criterion.placed_block.item":"物品","criterion.placed_block.location":"位置","criterion.placed_block.state":"方塊狀態","criterion.player":"玩家","criterion.player_generates_container_loot.loot_table":"戰利品表","criterion.player_hurt_entity.damage":"傷害","criterion.player_hurt_entity.entity":"受害實體","criterion.player_killed_entity.entity":"受害實體","criterion.player_killed_entity.killing_blow":"傷害類型","criterion.recipe_unlocked.recipe":"配方","criterion.rod":"釣竿","criterion.safely_harvest_honey.block":"方塊","criterion.safely_harvest_honey.item":"物品","criterion.shot_crossbow.item":"物品","criterion.slept_in_bed.location":"位置","criterion.slide_down_block.block":"方塊","criterion.summoned_entity.entity":"實體","criterion.tame_animal.entity":"動物","criterion.target_hit.projectile":"投射物","criterion.target_hit.shooter":"射擊者","criterion.target_hit.signal_strength":"訊號強度","criterion.thrown_item_picked_up_by_entity.entity":"實體","criterion.thrown_item_picked_up_by_entity.item":"物品","criterion.trigger":"觸發器","criterion.used_ender_eye.distance":"距離","criterion.used_totem.item":"圖騰物品","criterion.villager_trade.item":"購得物品","criterion.villager_trade.villager":"村民","criterion.voluntary_exile.location":"位置","damage.blocked":"是否被阻擋","damage.dealt":"應當受到傷害","damage.source_entity":"源實體","damage.taken":"實際受到傷害","damage.type":"傷害類型","damage_source.bypasses_armor":"是否無視盔甲防禦","damage_source.bypasses_invulnerability":"是否無視任何無敵效果","damage_source.bypasses_magic":"是否為飢餓傷害","damage_source.direct_entity":"直接來源實體","damage_source.is_explosion":"是否為爆炸","damage_source.is_fire":"是否為燃燒","damage_source.is_lightning":"是否為雷擊","damage_source.is_magic":"是否為魔法,如藥水雲或飛濺藥水等","damage_source.is_projectile":"是否為投射物","damage_source.source_entity":"根本來源實體","decorator.carving_mask.step":"生成步驟","decorator.config":"組態","decorator.count.count":"數量","decorator.count_extra.count":"數量","decorator.count_extra.extra_chance":"額外機率","decorator.count_extra.extra_count":"額外數量","decorator.count_multilayer.count":"數量","decorator.count_noise.above_noise":"閾值上噪聲","decorator.count_noise.below_noise":"閾值下噪聲","decorator.count_noise.noise_level":"噪聲等級","decorator.count_noise_biased.noise_factor":"噪聲因子","decorator.count_noise_biased.noise_offset":"噪聲偏移量","decorator.count_noise_biased.noise_to_count_ratio":"噪數比","decorator.decorated.inner":"內部","decorator.decorated.outer":"外部","decorator.depth_average.baseline":"基準線","decorator.depth_average.spread":"擴散","decorator.glowstone.count":"數量","decorator.range.bottom_inclusive":"最小值(含)","decorator.range.top_inclusive":"最大值(含)","decorator.range_biased_to_bottom.bottom_inclusive":"最小值(含)","decorator.range_biased_to_bottom.cutoff":"橫斷","decorator.range_biased_to_bottom.top_inclusive":"最大值(含)","decorator.range_very_biased_to_bottom.bottom_inclusive":"最小值(含)","decorator.range_very_biased_to_bottom.cutoff":"橫斷","decorator.range_very_biased_to_bottom.top_inclusive":"最大值(含)","decorator.type":"類型","dimension":"維度","dimension.generator":"生成器","dimension.generator.biome_source":"生態域源","dimension.overworld":"主世界","dimension.the_end":"終末之界","dimension.the_nether":"地獄","dimension.type":"維度類型","dimension.type.object":"自訂","dimension.type.string":"預設","dimension_type.ambient_light":"環境光","dimension_type.ambient_light.help":"在無外部光源(如火把)的情況下的光亮等級。位於 0 與 1 之間的值。","dimension_type.bed_works":"床有效","dimension_type.bed_works.help":"若為 true,玩家可以使用床來設定重生點並跳過夜晚。若為 false,則使用床會爆炸。","dimension_type.coordinate_scale":"座標縮放","dimension_type.coordinate_scale.help":"在維度間傳送時(使用地獄傳送門或 /execute in)對座標使用的縮放倍數。","dimension_type.effects":"環境效果","dimension_type.effects.help":"天空效果","dimension_type.effects.overworld":"主世界","dimension_type.effects.the_end":"終末之界","dimension_type.effects.the_nether":"地獄","dimension_type.fixed_time":"固定時間","dimension_type.fixed_time.help":"設定該值會導致太陽處在某一固定位置。","dimension_type.has_ceiling":"具有天花板","dimension_type.has_ceiling.help":"影響天氣,地圖物品和重生規則。","dimension_type.has_raids":"生成突襲","dimension_type.has_raids.help":"若為 true,擁有不祥之兆效果的玩家會導致突襲。","dimension_type.has_skylight":"具有天空光照","dimension_type.has_skylight.help":"影響天氣,光照引擎和重生規則。","dimension_type.height":"高度","dimension_type.height.help":"方塊能夠放置的總高度。Max Y = Min Y + Height.","dimension_type.infiniburn":"無盡燃燒方塊","dimension_type.infiniburn.help":"定義能夠使火在其上永久燃燒的方塊標籤。","dimension_type.logical_height":"合規高度","dimension_type.logical_height.help":"在此高度以上,傳送門不會生成,歌萊果也不再能傳送玩家。","dimension_type.min_y":"最小高度","dimension_type.min_y.help":"方塊能夠放置的最小高度。","dimension_type.name":"名稱","dimension_type.natural":"自然","dimension_type.natural.help":"若設定為 true,傳送門中會生成殭屍化豬布林。若設定為 false,指南針與時鐘會不斷隨機旋轉。","dimension_type.piglin_safe":"豬布林不轉換","dimension_type.piglin_safe.help":"若為 false,豬布林會開始顫抖並轉化為殭屍化豬布林。","dimension_type.respawn_anchor_works":"重生錨可正常運作","dimension_type.respawn_anchor_works.help":"若為 true,玩家可以充能並使用重生錨來設定重生點。若為 false,使用重生錨會爆炸。","dimension_type.ultrawarm":"極熱生態域","dimension_type.ultrawarm.help":"若設定為 true,水會蒸發且海綿會變乾。","distance.absolute":"絕對距離","distance.horizontal":"水平距離","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"親水性","enchantment.bane_of_arthropods":"節肢剋星","enchantment.binding_curse":"綁定詛咒","enchantment.blast_protection":"爆炸保護","enchantment.channeling":"喚雷","enchantment.depth_strider":"深海漫遊","enchantment.efficiency":"效率","enchantment.enchantment":"附魔","enchantment.feather_falling":"輕盈","enchantment.fire_aspect":"燃燒","enchantment.fire_protection":"火焰保護","enchantment.flame":"火焰","enchantment.fortune":"幸運","enchantment.frost_walker":"冰霜行者","enchantment.impaling":"魚叉","enchantment.infinity":"無限","enchantment.knockback":"擊退","enchantment.levels":"等級","enchantment.looting":"掠奪","enchantment.loyalty":"忠誠","enchantment.luck_of_the_sea":"海洋的祝福","enchantment.lure":"魚餌","enchantment.mending":"修補","enchantment.multishot":"分裂箭矢","enchantment.piercing":"貫穿","enchantment.power":"強力","enchantment.projectile_protection":"投射物保護","enchantment.protection":"保護","enchantment.punch":"衝擊","enchantment.quick_charge":"快速上弦","enchantment.respiration":"水中呼吸","enchantment.riptide":"波濤","enchantment.sharpness":"鋒利","enchantment.silk_touch":"絲綢之觸","enchantment.smite":"不死剋星","enchantment.sweeping":"橫掃之刃","enchantment.thorns":"尖刺","enchantment.unbreaking":"耐久","enchantment.vanishing_curse":"消失詛咒","entity.distance":"到執行位置的距離","entity.effects":"狀態效果","entity.equipment":"裝備","entity.fishing_hook":"浮標","entity.fishing_hook.in_open_water":"是否位於開闊水域","entity.flags":"實體特徵","entity.isBaby":"是否為幼年狀態","entity.isOnFire":"是否正在著火","entity.isSneaking":"是否正在潛行","entity.isSprinting":"是否正在疾走","entity.isSwimming":"是否正在游泳","entity.location":"位置","entity.nbt":"NBT","entity.player":"玩家","entity.targeted_entity":"目標實體","entity.team":"隊伍","entity.type":"實體","entity.vehicle":"載具","entity_source.direct_killer":"直接擊殺實體","entity_source.killer":"擊殺者","entity_source.killer_player":"擊殺者玩家","entity_source.this":"自身","entry":"項目","error":"錯誤","error.expected_boolean":"應為一個布林值","error.expected_integer":"應為一個整數","error.expected_json":"應為JSON文本格式","error.expected_list":"應為一個陣列","error.expected_number":"應為一個數字","error.expected_object":"應為一個物件","error.expected_range":"應為一個範圍","error.expected_string":"應為一個字串","error.expected_uniform_int":"應為一個均勻分布整數","error.height_multiple":"高度必須是 %0% 的倍數","error.invalid_binomial":"不能使用二項分布型的範圍","error.invalid_empty_list":"不能使用空陣列","error.invalid_empty_string":"不能使用空字串","error.invalid_enum_option":"選項「%0%」無效","error.invalid_exact":"不能使用常數型的範圍","error.invalid_list_range.exact":"應為一個長度為 %1% 的串列","error.invalid_list_range.larger":"串列長度 %0% 比最大值 %1% 大","error.invalid_list_range.smaller":"串列長度 %0% 比最小值 %1% 小","error.invalid_number_range.between":"應為一個位於 %0% 與 %1% 之間的數字","error.invalid_number_range.larger":"值 %0% 比最大值 %1% 大","error.invalid_number_range.smaller":"值 %0% 比最小值 %1% 小","error.invalid_pattern":"字串無效:%0%","error.logical_height":"合規高度不能高於高度","error.min_y_multiple":"最小高度必須是 %0% 的倍數","error.min_y_plus_height":"最小高度 + 高度(Min Y + Height)不能高於 %0%","error.recipe.invalid_key":"只能使用單個字元作為鍵","error.separation_smaller_spacing":"間隔(separation)的值必須小於空位(spacing)","false":"否","feature.bamboo":"竹子","feature.bamboo.probability":"向上生長概率","feature.basalt_columns.height":"高度","feature.basalt_columns.reach":"範圍","feature.basult_columns":"玄武岩石柱林","feature.basult_pillar":"玄武岩柱","feature.block_pile":"設定方塊堆","feature.block_pile.state_provider":"狀態聲明","feature.blue_ice":"藍冰","feature.bonus_chest":"新手獎勵箱","feature.chorus_plant":"歌萊枝","feature.config":"組態","feature.coral_claw":"爪狀珊瑚","feature.coral_mushroom":"蘑菇狀珊瑚","feature.coral_tree":"珊瑚樹","feature.decorated":"自定義地景裝飾","feature.decorated.decorator":"裝飾器","feature.decorated.feature":"地景","feature.delta_feature":"三角洲地形","feature.delta_feature.contents":"三角洲內部方塊","feature.delta_feature.rim":"三角洲邊緣方塊","feature.delta_feature.rim_size":"邊緣尺寸","feature.delta_feature.size":"尺寸","feature.desert_well":"沙漠水井","feature.disk":"圓盤狀地形","feature.disk.half_height":"半高","feature.disk.radius":"半徑","feature.disk.state":"狀態","feature.disk.targets":"目標","feature.disk.targets.entry":"狀態","feature.dripstone_cluster":"滴水石簇","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"鐘乳石生長機率","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"一個鐘乳石由源頭往下成功生長一格的機率。","feature.dripstone_cluster.density":"密度","feature.dripstone_cluster.dripstone_block_layer_thickness":"方塊層厚度","feature.dripstone_cluster.floor_to_ceiling_search_range":"搜尋範圍","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"地板至天花板的搜尋範圍。","feature.dripstone_cluster.height":"高度","feature.dripstone_cluster.height_deviation":"高度偏差","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column":"石柱機率距離","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"高度偏差距離","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"影響高度偏差的離中心的最大距離。","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"最大高度差","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"石筍和鐘乳石的最大高度差。","feature.dripstone_cluster.radius":"半徑","feature.dripstone_cluster.wetness":"溼度","feature.dripstone_cluster.wetness_deviation":"溼度偏差","feature.dripstone_cluster.wetness_mean":"溼度平均值","feature.emerald_ore":"綠寶石原礦","feature.emerald_ore.state":"狀態","feature.emerald_ore.target":"目標","feature.end_gateway":"終界折躍門","feature.end_gateway.exact":"精確傳送","feature.end_gateway.exit":"出口位置","feature.end_spike":"終界石柱","feature.end_spike.crystal_beam_target":"終界水晶光柱目標","feature.end_spike.crystal_invulnerable":"終界水晶無敵狀態","feature.end_spike.spikes":"終界黑曜石柱","feature.end_spike.spikes.entry":"終界黑曜石柱","feature.end_spike.spikes.entry.centerX":"中心 X 座標","feature.end_spike.spikes.entry.centerZ":"中心 Z 座標","feature.end_spike.spikes.entry.guarded":"鐵柵欄保護","feature.end_spike.spikes.entry.height":"高度","feature.end_spike.spikes.entry.radius":"半徑","feature.fill_layer":"填滿特定高度","feature.fill_layer.height":"高度","feature.fill_layer.state":"狀態","feature.flower":"花花","feature.flower.blacklist":"黑名單","feature.flower.block_placer":"方塊放置器","feature.flower.can_replace":"可取代","feature.flower.need_water":"需要水","feature.flower.project":"投影","feature.flower.state_provider":"狀態聲明","feature.flower.tries":"嘗試次數","feature.flower.whitelist":"白名單","feature.flower.xspread":"X 軸擴散","feature.flower.yspread":"Y 軸擴散","feature.flower.zspread":"Z 軸擴散","feature.forest_rock":"森林岩石","feature.forest_rock.state":"狀態","feature.fossil":"化石","feature.fossil.fossil_processors":"化石方塊處理器","feature.fossil.fossil_structures":"化石結構","feature.fossil.max_empty_corners_allowed":"允許最多幾個空角落","feature.fossil.overlay_processors":"向外延伸結構方塊處理器","feature.fossil.overlay_structures":"向外延伸結構","feature.freeze_top_layer":"冰封最上層","feature.geode":"紫晶洞","feature.geode.blocks":"方塊","feature.geode.blocks.alternate_inner_layer_provider":"替代內襯層方塊狀態聲明","feature.geode.blocks.cannot_replace":"不替換的方塊","feature.geode.blocks.filling_provider":"填滿方塊狀態聲明","feature.geode.blocks.inner_layer_provider":"內襯層方塊狀態聲明","feature.geode.blocks.inner_placements":"內部方塊替代","feature.geode.blocks.invalid_blocks":"辨識為無效的方塊","feature.geode.blocks.middle_layer_provider":"中層方塊狀態聲明","feature.geode.blocks.outer_layer_provider":"外層方塊狀態聲明","feature.geode.crack":"入口","feature.geode.crack.base_crack_size":"入口標準大小","feature.geode.crack.crack_point_offset":"開口點偏移量","feature.geode.crack.generate_crack_chance":"生成入口機率","feature.geode.distribution_points":"分布起始點","feature.geode.invalid_blocks_threshold":"無效方塊閾值","feature.geode.layers":"層次","feature.geode.layers.filling":"填滿層","feature.geode.layers.inner_layer":"內襯層","feature.geode.layers.middle_layer":"中層","feature.geode.layers.outer_layer":"外層","feature.geode.max_gen_offset":"最大生成偏移","feature.geode.min_gen_offset":"最小生成偏移","feature.geode.noise_multiplier":"噪聲倍化器","feature.geode.outer_wall_distance":"外牆厚度","feature.geode.placements_require_layer0_alternate":"內襯層方塊放置是否只允許使用替代內襯層方塊","feature.geode.point_offset":"點偏移量","feature.geode.use_alternate_layer0_chance":"內襯層使用替代內層方塊取代的機率","feature.geode.use_potential_placements_chance":"使用「勢能方塊放置法」的機率","feature.glow_lichen":"發光地衣","feature.glow_lichen.can_be_placed_on":"可放置在","feature.glow_lichen.can_be_placed_on.entry":"方塊狀態","feature.glow_lichen.can_place_on_ceiling":"可放置在底面","feature.glow_lichen.can_place_on_floor":"可放置在頂面","feature.glow_lichen.can_place_on_wall":"可放置在側面","feature.glow_lichen.chance_of_spreading":"向外蔓延機率","feature.glow_lichen.search_range":"搜尋範圍","feature.glowing_plant":"生長中的植物","feature.glowstone_blob":"螢光石叢","feature.growing_plant.allow_water":"允許含水","feature.growing_plant.body_provider":"樹體方塊狀態聲明","feature.growing_plant.direction":"生長方向","feature.growing_plant.head_provider":"樹冠方塊狀態聲明","feature.growing_plant.height_distribution":"高度分布","feature.growing_plant.height_distribution.entry.data":"數值資料","feature.growing_plant.height_distribution.entry.weight":"權重","feature.huge_brown_mushroom":"大型棕色蘑菇","feature.huge_brown_mushroom.cap_provider":"菌蓋方塊狀態聲明","feature.huge_brown_mushroom.foliage_radius":"菌蓋大小","feature.huge_brown_mushroom.stem_provider":"菌柄方塊狀態聲明","feature.huge_fungus":"大型蕈菇","feature.huge_fungus.decor_state":"裝飾","feature.huge_fungus.hat_state":"頂部","feature.huge_fungus.planted":"已種植","feature.huge_fungus.stem_state":"蕈柄","feature.huge_fungus.valid_base_block":"有效底部方塊","feature.huge_red_mushroom":"大型紅色蘑菇","feature.huge_red_mushroom.cap_provider":"菌蓋方塊狀態聲明","feature.huge_red_mushroom.foliage_radius":"菌蓋方塊狀態大小","feature.huge_red_mushroom.stem_provider":"菌柄方塊狀態聲明","feature.ice_patch":"冰方塊覆蓋","feature.ice_patch.half_height":"半高","feature.ice_patch.radius":"半徑","feature.ice_patch.state":"狀態","feature.ice_patch.targets":"目標","feature.ice_patch.targets.entry":"狀態","feature.ice_spike":"冰刺地形","feature.iceberg":"冰山","feature.iceberg.state":"狀態","feature.kelp":"海帶柱","feature.lake":"湖地形","feature.lake.state":"狀態","feature.large_dripstone":"大型鐘乳石","feature.large_dripstone.column_radius":"石柱半徑","feature.large_dripstone.floor_to_ceiling_search_range":"搜尋範圍","feature.large_dripstone.floor_to_ceiling_search_range.help":"地板至天花板的搜尋範圍。","feature.large_dripstone.height_scale":"高度比例","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"半徑與洞穴高度比","feature.large_dripstone.min_bluntness_for_wind":"最小風化強度","feature.large_dripstone.min_radius_for_wind":"風化最小半徑","feature.large_dripstone.stalactite_bluntness":"鐘乳石鈍度","feature.large_dripstone.stalagmite_bluntness":"石筍鈍度","feature.large_dripstone.wind_speed":"風速","feature.monster_room":"怪物之家","feature.nether_forest_vegetation":"地獄森林植被","feature.nether_forest_vegetation.state_provider":"狀態聲明","feature.netherrack_replace_blobs":"地獄石叢取代","feature.netherrack_replace_blobs.radius":"半徑","feature.netherrack_replace_blobs.state":"狀態","feature.netherrack_replace_blobs.target":"目標","feature.no_bonemeal_flower":"無骨粉花朵","feature.no_bonemeal_flower.blacklist":"黑名單","feature.no_bonemeal_flower.block_placer":"方塊放置器","feature.no_bonemeal_flower.can_replace":"是否可以被取代","feature.no_bonemeal_flower.need_water":"是否需要水源","feature.no_bonemeal_flower.project":"是否使用投影","feature.no_bonemeal_flower.state_provider":"狀態聲明","feature.no_bonemeal_flower.tries":"每刻嘗試散播次數","feature.no_bonemeal_flower.whitelist":"白名單","feature.no_bonemeal_flower.xspread":"X方向散播","feature.no_bonemeal_flower.yspread":"Y方向散播","feature.no_bonemeal_flower.zspread":"Z方向散播","feature.no_op":"不使用地景","feature.no_surface_ore":"無表層礦物","feature.no_surface_ore.size":"尺寸","feature.no_surface_ore.state":"狀態","feature.no_surface_ore.target":"目標","feature.object":"自訂","feature.ore":"生成礦物","feature.ore.discard_chance_on_air_exposure":"如果暴露到空氣,選擇放棄該次生成的機率","feature.ore.size":"尺寸","feature.ore.targets":"目標","feature.ore.targets.entry.state":"狀態","feature.ore.targets.entry.target":"目標","feature.random_boolean_selector":"隨機取布林值","feature.random_boolean_selector.feature_false":"若取值為非","feature.random_boolean_selector.feature_true":"若取值為是","feature.random_patch":"隨機方塊覆蓋","feature.random_patch.blacklist":"黑名單","feature.random_patch.block_placer":"方塊放置器","feature.random_patch.can_replace":"是否可以被取代","feature.random_patch.need_water":"是否需要水源","feature.random_patch.project":"是否使用投影","feature.random_patch.state_provider":"狀態聲明","feature.random_patch.tries":"每刻嘗試散播次數","feature.random_patch.whitelist":"白名單","feature.random_patch.xspread":"X方向擴散","feature.random_patch.yspread":"Y方向擴散","feature.random_patch.zspread":"Z方向擴散","feature.random_selector":"隨機選取一項地景","feature.random_selector.default":"預設","feature.random_selector.features":"地景","feature.random_selector.features.entry":"地景","feature.random_selector.features.entry.chance":"機率","feature.random_selector.features.entry.feature":"地景","feature.replace_single_block":"取代單一方塊","feature.replace_single_block.targets":"目標","feature.replace_single_block.targets.entry.state":"方塊狀態","feature.replace_single_block.targets.entry.target":"取代目的","feature.root_system":"根系","feature.root_system.allowed_vertical_water_for_tree":"允許垂直水源灌溉樹木","feature.root_system.feature":"地景","feature.root_system.hanging_root_placement_attempts":"放置懸根嘗試次數","feature.root_system.hanging_root_radius":"懸根半徑","feature.root_system.hanging_root_state_provider":"懸根方塊狀態聲明","feature.root_system.hanging_roots_vertical_span":"懸根垂直廣度","feature.root_system.required_vertical_space_for_tree":"需要預留給樹木的垂直生長空間","feature.root_system.root_column_max_height":"根系最高堆疊高度","feature.root_system.root_placement_attempts":"放置根系嘗試次數","feature.root_system.root_radius":"根系半徑","feature.root_system.root_replaceable":"可替換的根系","feature.root_system.root_state_provider":"根系方塊狀態聲明","feature.scattered_ore":"被截斷的原礦","feature.scattered_ore.discard_chance_on_air_exposure":"如果暴露到空氣,選擇放棄該次生成的機率","feature.scattered_ore.size":"大小","feature.scattered_ore.targets":"目標","feature.scattered_ore.targets.entry.state":"狀態","feature.scattered_ore.targets.entry.target":"目標","feature.sea_pickle":"生成海鞘","feature.sea_pickle.count":"數量","feature.seagrass":"生成海草","feature.seagrass.probability":"概率","feature.simple_block":"簡單方塊生成","feature.simple_block.place_in":"將要放置的位置的方塊","feature.simple_block.place_in.entry":"狀態","feature.simple_block.place_on":"下方的方塊","feature.simple_block.place_on.entry":"狀態","feature.simple_block.place_under":"上方的方塊","feature.simple_block.place_under.entry":"狀態","feature.simple_block.to_place":"將要放置的方塊","feature.simple_random_selector":"簡單機率選擇器","feature.simple_random_selector.features":"地景","feature.simple_random_selector.features.entry":"地景","feature.small_dripstone":"小鐘乳石","feature.small_dripstone.chance_of_taller_dripstone":"生成較大鐘乳石的機率","feature.small_dripstone.empty_space_search_radius":"可用空間搜尋半徑","feature.small_dripstone.max_offset_from_origin":"距來源的最大偏移","feature.small_dripstone.max_placements":"最大放置","feature.spring_feature":"溫泉地景","feature.spring_feature.hole_count":"坑洞數量","feature.spring_feature.required_block_below":"下方需要方塊","feature.spring_feature.rock_count":"岩石數量","feature.spring_feature.state":"狀態","feature.spring_feature.valid_blocks":"有效方塊","feature.string":"參照","feature.tree":"生成樹木","feature.tree.decorators":"裝飾器","feature.tree.decorators.entry":"樹木裝飾器","feature.tree.dirt_provider":"泥土方塊聲明","feature.tree.foliage_placer":"樹葉放置器","feature.tree.foliage_provider":"樹葉方塊聲明","feature.tree.force_dirt":"強制使用泥土","feature.tree.heightmap":"高度圖","feature.tree.ignore_vines":"忽略藤蔓","feature.tree.leaves_provider":"樹葉方塊聲明","feature.tree.max_water_depth":"樹生成的最大水深","feature.tree.minimum_size":"最小尺寸","feature.tree.minimum_size.limit":"限制","feature.tree.minimum_size.lower_size":"下部尺寸","feature.tree.minimum_size.middle_size":"中部尺寸","feature.tree.minimum_size.min_clipped_height":"最小剪裁高度","feature.tree.minimum_size.type":"最小尺寸","feature.tree.minimum_size.upper_limit":"上部限制","feature.tree.minimum_size.upper_size":"上部尺寸","feature.tree.sapling_provider":"樹苗狀態聲明","feature.tree.trunk_placer":"樹幹放置器","feature.tree.trunk_provider":"樹幹方塊聲明","feature.twisting_vines":"交錯纏繞的藤蔓","feature.type":"類型","feature.underwater_magma":"海底熔岩塊","feature.underwater_magma.floor_search_range":"地面搜尋半徑","feature.underwater_magma.placement_probability_per_valid_position":"每個有效的取代點,成功取代為熔岩塊的機率","feature.underwater_magma.placement_radius_around_floor":"地面取代半徑","feature.vegetation_patch":"植被覆蓋","feature.vegetation_patch.depth":"覆蓋深度","feature.vegetation_patch.extra_bottom_block_chance":"額外生成底方塊機率","feature.vegetation_patch.extra_edge_column_chance":"額外生成邊柱機率","feature.vegetation_patch.ground_state":"地面方塊狀態","feature.vegetation_patch.replaceable":"可被取代的方塊","feature.vegetation_patch.surface":"覆蓋表面","feature.vegetation_patch.surface.ceiling":"天花板","feature.vegetation_patch.surface.floor":"地板","feature.vegetation_patch.vegetation_chance":"植被機率","feature.vegetation_patch.vegetation_feature":"植被地景","feature.vegetation_patch.vertical_range":"垂直半徑","feature.vegetation_patch.xz_radius":"XZ半徑","feature.vines":"生成藤蔓","feature.void_start_platform":"虛空起始石頭平台","feature.waterlogged_vegetation_patch":"含水植被覆蓋","feature.waterlogged_vegetation_patch.depth":"覆蓋深度","feature.waterlogged_vegetation_patch.extra_bottom_block_chance":"額外生成底方塊機率","feature.waterlogged_vegetation_patch.extra_edge_column_chance":"額外生成邊柱機率","feature.waterlogged_vegetation_patch.ground_state":"地面方塊狀態","feature.waterlogged_vegetation_patch.replaceable":"可被取代的方塊","feature.waterlogged_vegetation_patch.surface":"覆蓋表面","feature.waterlogged_vegetation_patch.surface.ceiling":"天花板","feature.waterlogged_vegetation_patch.surface.floor":"地板","feature.waterlogged_vegetation_patch.vegetation_chance":"植被機率","feature.waterlogged_vegetation_patch.vegetation_feature":"植被地景","feature.waterlogged_vegetation_patch.vertical_range":"垂直半徑","feature.waterlogged_vegetation_patch.xz_radius":"XZ半徑","feature.weeping_vines":"生成垂泣藤","float_provider.value.deviation":"離差","float_provider.value.max":"最大值","float_provider.value.mean":"算術平均數","float_provider.value.min":"最小值","float_provider.value.plateau":"上底","float_provider.type.clamped_normal":"常態分布","float_provider.type.constant":"常數(標準JSON寫法)","float_provider.type.number":"常數(數值寫法)","float_provider.type.trapezoid":"梯形分布","float_provider.type.uniform":"均勻分布","float_provider.value":"值","fluid.fluid":"流體 ID","fluid.state":"流體狀態","fluid.tag":"流體標籤","fluid_state.Name":"名稱","fluid_state.Properties":"屬性","foliage_placer.crown_height":"樹冠高度","foliage_placer.height":"高度","foliage_placer.offset":"偏移","foliage_placer.radius":"半徑","foliage_placer.trunk_height":"樹幹高度","foliage_placer.type":"類型","function.apply_bonus.enchantment":"附魔","function.apply_bonus.formula":"公式","function.apply_bonus.formula.binomial_with_bonus_count":"二項分布(有額外獎勵數量)","function.apply_bonus.formula.ore_drops":"礦物掉落","function.apply_bonus.formula.uniform_bonus_count":"均勻分布(有額外獎勵數量)","function.apply_bonus.parameters":"引數","function.apply_bonus.parameters.bonusMultiplier":"乘數","function.apply_bonus.parameters.extra":"額外值","function.apply_bonus.parameters.probability":"概率","function.copy_name.source":"源","function.copy_nbt.ops":"NBT 操作","function.copy_nbt.ops.entry":"操作","function.copy_nbt.source":"源","function.copy_state.block":"方塊","function.copy_state.properties":"方塊狀態","function.copy_state.properties.entry":"屬性","function.enchant_randomly.enchantments":"可選附魔","function.enchant_randomly.enchantments.entry":"附魔","function.enchant_with_levels.levels":"等級","function.enchant_with_levels.treasure":"寶藏型附魔","function.exploration_map.decoration":"圖示","function.exploration_map.destination":"目標","function.exploration_map.search_radius":"搜尋半徑","function.exploration_map.skip_existing_chunks":"跳過已生成區塊","function.exploration_map.zoom":"縮放等級","function.fill_player_head.entity":"實體","function.function":"函數","function.limit_count.limit":"限額","function.list":"多個","function.looting_enchant.count":"數量","function.looting_enchant.limit":"限制","function.object":"單個","function.set_attributes.modifiers":"屬性修飾符","function.set_attributes.modifiers.entry":"屬性修飾符","function.set_banner_pattern.append":"追加","function.set_banner_pattern.patterns":"圖案","function.set_contents.entries":"內容物","function.set_contents.entries.entry":"項目","function.set_count.add":"加上","function.set_count.add.help":"若為 true,將會相對於目前的物品數量更改","function.set_count.count":"數量","function.set_damage.add":"加上","function.set_damage.add.help":"若為 true,將會相對於目前的損傷值更改","function.set_damage.damage":"損傷值","function.set_data.data":"資料值","function.set_enchantments.add":"加上","function.set_enchantments.add.help":"若為 true,將會相對於目前的等級更改","function.set_enchantments.enchantments":"附魔","function.set_loot_table.name":"戰利品表名","function.set_loot_table.seed":"種子碼","function.set_lore.entity":"實體","function.set_lore.lore":"物品描述","function.set_lore.lore.entry":"一行","function.set_lore.replace":"覆蓋","function.set_name.entity":"實體","function.set_name.name":"名稱","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"狀態效果","function.set_stew_effect.effects.entry":"效果種類","function.set_stew_effect.effects.entry.duration":"維持時間","function.set_stew_effect.effects.entry.type":"效果種類","functions":"函數","functions.entry":"函數","gamemode.adventure":"冒險模式","gamemode.creative":"創造模式","gamemode.spectator":"旁觀者模式","gamemode.survival":"生存模式","generation_step.air":"空氣","generation_step.liquid":"液體","generator.biome_source.altitude_noise":"高度噪聲","generator.biome_source.biome":"生態域","generator.biome_source.biomes":"生態域","generator.biome_source.humidity_noise":"溼度噪聲","generator.biome_source.large_biomes":"大型生態域","generator.biome_source.legacy_biome_init_layer":"舊版生態域初始層","generator.biome_source.preset":"生態域預設","generator.biome_source.preset.nether":"地獄","generator.biome_source.scale":"縮放","generator.biome_source.seed":"生態域種子碼","generator.biome_source.temperature_noise":"溫度噪聲","generator.biome_source.type":"生態域源","generator.biome_source.weirdness_noise":"扭曲度噪聲","generator.seed":"維度種子碼","generator.settings":"生成器設定","generator.settings.biome":"生態域","generator.settings.lakes":"湖","generator.settings.layers":"層","generator.settings.layers.entry":"層","generator.settings.layers.entry.block":"方塊 ID","generator.settings.layers.entry.height":"高度","generator.settings.object":"自訂","generator.settings.presets.amplified":"巨大化","generator.settings.presets.caves":"洞穴","generator.settings.presets.end":"終界","generator.settings.presets.floating_islands":"浮空島嶼","generator.settings.presets.nether":"地獄","generator.settings.presets.overworld":"主世界","generator.settings.string":"預設","generator.settings.structures":"結構","generator.settings.structures.stronghold":"要塞","generator.settings.structures.stronghold.count":"數量","generator.settings.structures.stronghold.distance":"距離","generator.settings.structures.stronghold.spread":"擴散度","generator.settings.structures.structures":"結構","generator.type":"生成器類型","generator_biome.biome":"生態域","generator_biome.parameters":"引數","generator_biome.parameters.altitude":"海拔","generator_biome.parameters.help":"這些引數決定了該生態域的生成位置。每個生態域都必須擁有不同的設定組合。設定相近的生態域會生成在一起。","generator_biome.parameters.humidity":"溼度","generator_biome.parameters.offset":"偏移","generator_biome.parameters.temperature":"溫度","generator_biome.parameters.weirdness":"扭曲度","generator_biome_noise.amplitudes":"振幅","generator_biome_noise.amplitudes.entry":"倍頻 %0%","generator_biome_noise.firstOctave":"主倍頻","generator_structure.salt":"鹽值","generator_structure.separation":"間隔","generator_structure.separation.help":"以區塊為單位的此種類的兩個結構之間的最小距離。","generator_structure.spacing":"空位","generator_structure.spacing.help":"以區塊為單位的此種類的兩種結構之間的平均距離。","heightmap_type.MOTION_BLOCKING":"阻擋實體移動層","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"阻擋實體移動層(不含樹葉)","heightmap_type.OCEAN_FLOOR":"海床層","heightmap_type.OCEAN_FLOOR_WG":"海床層(世界生成)","heightmap_type.WORLD_SURFACE":"地表層","heightmap_type.WORLD_SURFACE_WG":"地表層(世界生成)","hide_source":"隱藏原始碼","int_provider.biased_to_bottom":"偏好下界值","int_provider.clamped":"常態分布","int_provider.constant":"常數(標準JSON寫法)","int_provider.number":"常數(數值寫法)","int_provider.uniform":"均勻分布","int_provider.value":"值","int_provider.value.max_inclusive":"最大值(含)","int_provider.value.min_inclusive":"最小值(含)","int_provider.value.source":"來源值","item.count":"數量","item.durability":"耐久度","item.enchantments":"附魔","item.enchantments.entry":"附魔","item.item":"名稱","item.nbt":"NBT","item.potion":"藥水","item.tag":"標籤","key.advancements":"進度","key.attack":"攻擊/破壞","key.back":"後退","key.chat":"開啟聊天欄","key.command":"開啟指令視窗","key.drop":"丟棄已選擇的物品","key.forward":"前進","key.fullscreen":"切換全螢幕","key.hotbar.1":"快捷欄 1","key.hotbar.2":"快捷欄 2","key.hotbar.3":"快捷欄 3","key.hotbar.4":"快捷欄 4","key.hotbar.5":"快捷欄 5","key.hotbar.6":"快捷欄 6","key.hotbar.7":"快捷欄 7","key.hotbar.8":"快捷欄 8","key.hotbar.9":"快捷欄 9","key.inventory":"開啟/關閉物品欄","key.jump":"跳躍","key.left":"往左","key.loadToolbarActivator":"載入工具列","key.pickItem":"選取方塊","key.playerlist":"列出玩家","key.right":"往右","key.saveToolbarActivator":"儲存工具列","key.screenshot":"擷取螢幕畫面","key.smoothCamera":"切換視角平滑移動","key.sneak":"潛行","key.spectatorOutlines":"標示玩家(旁觀者)","key.sprint":"跑步","key.swapOffhand":"交換兩手物品","key.togglePerspective":"切換視角","key.use":"使用物品/放置方塊","location.biome":"生態域","location.block":"方塊","location.dimension":"維度","location.feature":"地景","location.fluid":"流體","location.light":"光照","location.light.light":"可見光等級","location.position":"位置","location.position.x":"X 座標","location.position.y":"Y 座標","location.position.z":"Z 座標","location.smokey":"煙燻","loot_condition_type.alternative":"邏輯判斷(或)","loot_condition_type.block_state_property":"方塊屬性","loot_condition_type.damage_source_properties":"傷害來源","loot_condition_type.entity_properties":"實體屬性","loot_condition_type.entity_scores":"實體分數","loot_condition_type.inverted":"取反(非)","loot_condition_type.killed_by_player":"被玩家殺死","loot_condition_type.location_check":"檢查位置","loot_condition_type.match_tool":"工具是否符合","loot_condition_type.random_chance":"隨機概率","loot_condition_type.random_chance_with_looting":"受掠奪附魔影響的隨機概率","loot_condition_type.reference":"參照述詞檔案","loot_condition_type.survives_explosion":"未被爆炸破壞","loot_condition_type.table_bonus":"附魔獎勵","loot_condition_type.time_check":"檢查時間","loot_condition_type.value_check":"檢查值","loot_condition_type.weather_check":"檢查天氣","loot_entry.dynamic.name":"名稱","loot_entry.item.name":"名稱","loot_entry.loot_table.name":"戰利品表名","loot_entry.quality":"每等級幸運對權重的影響","loot_entry.tag.expand":"展開","loot_entry.tag.expand.help":"若為 false,該項目將會返回指定物品標籤的全部內容;否則將會從中隨機抽取一個返回。","loot_entry.tag.name":"物品標籤名","loot_entry.type":"類型","loot_entry.weight":"權重","loot_function_type.apply_bonus":"應用獎勵公式","loot_function_type.copy_name":"複製方塊實體顯示名","loot_function_type.copy_nbt":"複製 NBT","loot_function_type.copy_state":"複製方塊狀態","loot_function_type.enchant_randomly":"隨機附魔","loot_function_type.enchant_with_levels":"給予等價于經驗等級的隨機附魔","loot_function_type.exploration_map":"設定探險家地圖","loot_function_type.explosion_decay":"爆炸損耗","loot_function_type.fill_player_head":"填充玩家頭顱","loot_function_type.furnace_smelt":"熔爐熔煉","loot_function_type.limit_count":"限制堆疊數量","loot_function_type.looting_enchant":"根據掠奪附魔調整物品數量","loot_function_type.set_attributes":"設定屬性","loot_function_type.set_banner_pattern":"設定旗幟圖案","loot_function_type.set_contents":"設定內容物","loot_function_type.set_count":"設定物品數量","loot_function_type.set_damage":"設定損傷值","loot_function_type.set_data":"設定資料值","loot_function_type.set_enchantments":"設定附魔","loot_function_type.set_loot_table":"設定戰利品表","loot_function_type.set_lore":"設定物品描述","loot_function_type.set_name":"設定物品名","loot_function_type.set_nbt":"設定 NBT","loot_function_type.set_stew_effect":"設定可疑的燉湯狀態效果","loot_pool.bonus_rolls":"每等級幸運增加的抽取次數","loot_pool.entries":"項目","loot_pool.entries.entry":"項目","loot_pool.rolls":"抽取次數","loot_pool.rolls.help":"隨機抽取的項目數。","loot_pool_entry_type.alternatives":"取其中之一","loot_pool_entry_type.alternatives.help":"選取第一個滿足條件的子項目。","loot_pool_entry_type.dynamic":"動態","loot_pool_entry_type.dynamic.help":"獲取特定方塊的特定掉落物。","loot_pool_entry_type.empty":"不生成","loot_pool_entry_type.empty.help":"不向隨機池中加入任何物品。","loot_pool_entry_type.group":"組","loot_pool_entry_type.group.help":"從所有滿足條件的子項目中隨機抽取一個。","loot_pool_entry_type.item":"物品","loot_pool_entry_type.item.help":"加入一種物品。","loot_pool_entry_type.loot_table":"戰利品表","loot_pool_entry_type.loot_table.help":"加入另一個戰利品表的內容。","loot_pool_entry_type.sequence":"序列","loot_pool_entry_type.sequence.help":"從第一個不滿足條件的子項目之前的所有子項目中隨機抽取一個。","loot_pool_entry_type.tag":"物品標籤","loot_pool_entry_type.tag.help":"添加一個物品標籤的內容。","loot_table.pools":"隨機池","loot_table.pools.entry":"隨機池","loot_table.type":"類型","luck_based":"受幸運等級影響","nbt_operation.op":"操作類型","nbt_operation.op.append":"追加","nbt_operation.op.merge":"合併","nbt_operation.op.replace":"替換","nbt_operation.source":"複製源","nbt_operation.target":"複製目標","nbt_provider.source":"來源","nbt_provider.target":"目標","nbt_provider.type":"類型","nbt_provider.type.context":"參照上下文(標準JSON寫法)","nbt_provider.type.storage":"儲存標籤","nbt_provider.type.string":"參照上下文(字串寫法)","noise_settings.aquifers_enabled":"是否生成含水層","noise_settings.bedrock_floor_position":"基岩地板位置","noise_settings.bedrock_floor_position.help":"基岩地板的位置。數字越大地板越靠上。","noise_settings.bedrock_roof_position":"基岩天花板位置","noise_settings.bedrock_roof_position.help":"基岩天花板從世界高度開始計算的相對位置。數字越大天花板越靠下。","noise_settings.biome":"生態域","noise_settings.deepslate_enabled":"生成深板岩","noise_settings.default_block":"預設方塊","noise_settings.default_fluid":"預設流體","noise_settings.disable_mob_generation":"禁用生物生成","noise_settings.disable_mob_generation.help":"若設為 true,生成世界時不會生成生物。","noise_settings.min_surface_level":"最低地表高度","noise_settings.name":"名稱","noise_settings.noise":"噪聲選項","noise_settings.noise.amplified":"巨大化","noise_settings.noise.bottom_slide":"底部曲線","noise_settings.noise.bottom_slide.help":"改變世界底部曲線。當底部曲線大小(Size)為 0 時不起作用。","noise_settings.noise.bottom_slide.offset":"偏移","noise_settings.noise.bottom_slide.offset.help":"用於生成世界底部的方塊,在方塊密度已經設定為「目標」的值後,為「偏差 * 水平大小 * 4」定義一個允許的偏差範圍。","noise_settings.noise.bottom_slide.size":"大小","noise_settings.noise.bottom_slide.size.help":"用於生成世界底部的方塊,在「目標」的值取代已有的方塊密度後,為「大小 * 水平大小 * 4」定義一個允許範圍。","noise_settings.noise.bottom_slide.target":"目標","noise_settings.noise.bottom_slide.target.help":"所希望生成的目標方塊密度。正值可以增加地形起伏,負值反之。","noise_settings.noise.density_factor":"密度因子","noise_settings.noise.density_factor.help":"決定高度影響地形的程度。正值會在底部產生陸地。接近於 0 的值產生均勻的地形。","noise_settings.noise.density_offset":"密度偏移","noise_settings.noise.density_offset.help":"影響平均陸地高度。設定為 0 將使平均陸地高度變為高度(height)的一半。設定為正值將抬升高度。","noise_settings.noise.height":"高度","noise_settings.noise.height.help":"方塊可以生成的總高度。Max Y = Min Y + Height.","noise_settings.noise.island_noise_override":"島嶼噪聲覆蓋","noise_settings.noise.island_noise_override.help":"若設為 true,生成的地形會像終界一樣在中心有一個大島嶼,外部有許多小島嶼。","noise_settings.noise.min_y":"最小高度","noise_settings.noise.min_y.help":"方塊開始生成的最小高度","noise_settings.noise.random_density_offset":"隨機密度偏移","noise_settings.noise.sampling":"取樣","noise_settings.noise.sampling.xz_factor":"XZ 因子","noise_settings.noise.sampling.xz_scale":"XZ 縮放","noise_settings.noise.sampling.y_factor":"Y 因子","noise_settings.noise.sampling.y_scale":"Y 縮放","noise_settings.noise.simplex_surface_noise":"單體表面噪聲","noise_settings.noise.size_horizontal":"水平大小","noise_settings.noise.size_vertical":"垂直大小","noise_settings.noise.top_slide":"頂部曲線","noise_settings.noise.top_slide.help":"改變世界頂部曲線。當頂部曲線大小(Size)為 0 時不起作用。","noise_settings.noise.top_slide.offset":"偏移","noise_settings.noise.top_slide.offset.help":"用於生成世界頂部的方塊,在方塊密度已經設定為「目標」的值後,為「偏差 * 水平大小 * 4」定義一個允許的偏差範圍。","noise_settings.noise.top_slide.size":"大小","noise_settings.noise.top_slide.size.help":"用於生成世界頂部的方塊,在「目標」的值取代已有的方塊密度後,為「大小 * 水平大小 * 4」定義一個允許範圍。","noise_settings.noise.top_slide.target":"目標","noise_settings.noise.top_slide.target.help":"所希望生成的目標方塊密度。正值可以增加地形起伏,負值反之。","noise_settings.noise_caves_enabled":"生成噪聲洞穴","noise_settings.ore_veins_enabled":"生成大型礦脈","noise_settings.sea_level":"海平面","noise_settings.structures":"結構","noise_settings.structures.stronghold":"要塞","noise_settings.structures.stronghold.count":"數量","noise_settings.structures.stronghold.distance":"距離","noise_settings.structures.stronghold.spread":"分散","noise_settings.structures.structures":"結構","number_provider.max":"最大值","number_provider.min":"最小值","number_provider.n":"嘗試次數n","number_provider.p":"每次嘗試成功機率p","number_provider.scale":"縮放","number_provider.score":"計分板目標","number_provider.target":"目標","number_provider.type":"類型","number_provider.type.binomial":"二項分布","number_provider.type.constant":"常數(標準JSON寫法)","number_provider.type.number":"常數(數值寫法)","number_provider.type.object":"均勻分布(數值寫法)","number_provider.type.score":"分數","number_provider.type.uniform":"均勻分布(標準JSON寫法)","number_provider.value":"數字","player.advancements":"進度","player.advancements.entry":"進度","player.gamemode":"遊戲模式","player.level":"經驗等級","player.recipes":"配方","player.stats":"統計","player.stats.entry":"統計","pos_rule_test.always_true":"總是為真","pos_rule_test.axis":"座標軸","pos_rule_test.axis.x":"X 軸","pos_rule_test.axis.y":"Y 軸","pos_rule_test.axis.z":"Z 軸","pos_rule_test.axis_aligned_linear_pos":"以軸為中心的線性插值座標","pos_rule_test.linear_pos":"線性插值座標","pos_rule_test.max_chance":"最大機率","pos_rule_test.max_dist":"最大距離","pos_rule_test.min_chance":"最小機率","pos_rule_test.min_dist":"最小距離","pos_rule_test.predicate_type":"類型","processor.block_age.mossiness":"青苔度","processor.block_ignore.blocks":"方塊","processor.block_ignore.blocks.entry":"狀態","processor.block_rot.integrity":"完整性","processor.gravity.heightmap":"高度圖","processor.gravity.offset":"偏移","processor.processor_type":"類型","processor.protected_blocks.value":"方塊命名空間ID","processor.rule.rules":"規則","processor.rule.rules.entry":"規則","processor_list.processors":"處理器","processor_list.processors.entry":"處理器","processor_rule.input_predicate":"輸入方塊處理述詞","processor_rule.location_predicate":"結構生成前位置方塊處理述詞","processor_rule.output_nbt":"輸出 NBT","processor_rule.output_state":"輸出方塊狀態","processor_rule.position_predicate":"位置方塊處理述詞","processors.object":"自訂","processors.string":"參照","range.binomial":"二項分布","range.max":"最大值","range.min":"最小值","range.n":"嘗試次數n","range.number":"精確值","range.object":"範圍","range.p":"每次嘗試成功機率p","range.type":"類型","range.uniform":"均勻分布","requirements":"達成成就所需條件","rule_test.always_true":"總是為真","rule_test.block":"方塊","rule_test.block_match":"是否為指定方塊","rule_test.block_state":"狀態","rule_test.blockstate_match":"是否為指定方塊狀態","rule_test.predicate_type":"類型","rule_test.probability":"概率","rule_test.random_block_match":"方塊隨機匹配","rule_test.random_blockstate_match":"方塊狀態隨機匹配","rule_test.tag":"標籤","rule_test.tag_match":"標籤匹配","score_provider.name":"名稱","score_provider.target":"目標","score_provider.type":"類型","score_provider.type.context":"參照上下文(標準JSON寫法)","score_provider.type.fixed":"固定","score_provider.type.string":"參照上下文(字串寫法)","slot.chest":"胸部","slot.feet":"腳部","slot.head":"頭部","slot.legs":"腿部","slot.mainhand":"慣用手","slot.offhand":"非慣用手","statistic.stat":"統計","statistic.type":"類型","statistic.type.broken":"損壞","statistic.type.crafted":"合成","statistic.type.custom":"Custom(其他)","statistic.type.dropped":"掉落","statistic.type.killed":"擊殺","statistic.type.killedByTeam":"被隊伍擊殺","statistic.type.killed_by":"被擊殺","statistic.type.mined":"挖掘","statistic.type.picked_up":"撿起","statistic.type.teamkill":"擊殺隊伍","statistic.type.used":"使用","statistic.value":"值","status_effect.ambient":"是否為烽火台施加","status_effect.amplifier":"等級","status_effect.duration":"維持時間","status_effect.visible":"是否可見","structure_feature.biome_temp":"生態域溫度","structure_feature.biome_temp.cold":"寒冷","structure_feature.biome_temp.warm":"溫暖","structure_feature.cluster_probability":"成簇概率","structure_feature.config":"組態","structure_feature.is_beached":"是否擱淺","structure_feature.large_probability":"大型概率","structure_feature.portal_type":"傳送門類型","structure_feature.portal_type.desert":"沙漠","structure_feature.portal_type.jungle":"叢林","structure_feature.portal_type.mountain":"山","structure_feature.portal_type.nether":"地獄","structure_feature.portal_type.ocean":"海洋","structure_feature.portal_type.standard":"基本","structure_feature.portal_type.swamp":"沼澤","structure_feature.probability":"概率","structure_feature.size":"尺寸","structure_feature.start_pool":"起始池","structure_feature.type":"類型","structure_feature.type.mesa":"惡地","structure_feature.type.normal":"普通","surface_builder.config":"組態","surface_builder.top_material":"頂層材料","surface_builder.type":"類型","surface_builder.under_material":"下層材料","surface_builder.underwater_material":"水下材料","table.type":"戰利品表類型","table.type.block":"方塊","table.type.chest":"儲物箱","table.type.empty":"不生成","table.type.entity":"實體","table.type.fishing":"釣魚","table.type.generic":"通用","tag.replace":"覆蓋","tag.values":"值","template_element.element_type":"類型","template_element.elements":"元素","template_element.feature":"地景","template_element.location":"結構的命名空間 ID","template_element.processors":"處理器","template_element.projection":"投影","template_element.projection.rigid":"直接生成","template_element.projection.terrain_matching":"匹配地形","template_pool.elements":"元素","template_pool.elements.entry":"元素","template_pool.elements.entry.element":"元素","template_pool.elements.entry.weight":"權重","template_pool.fallback":"回落池","template_pool.name":"名稱","text_component":"聊天組合","text_component.boolean":"布林值","text_component.list":"陣列","text_component.number":"數字","text_component.object":"物件","text_component.object.keybind":"鍵位綁定","text_component.object.nbt":"NBT 值","text_component.object.score":"分數值","text_component.object.selector":"實體名稱","text_component.object.text":"純文字","text_component.object.translation":"翻譯文字","text_component.string":"字串","text_component_object.block":"方塊","text_component_object.bold":"粗體","text_component_object.clickEvent":"點擊事件","text_component_object.clickEvent.action":"行為","text_component_object.clickEvent.action.change_page":"翻頁","text_component_object.clickEvent.action.copy_to_clipboard":"複製到剪貼簿","text_component_object.clickEvent.action.open_file":"打開檔案","text_component_object.clickEvent.action.open_url":"打開 URL","text_component_object.clickEvent.action.run_command":"執行指令","text_component_object.clickEvent.action.suggest_command":"建議指令","text_component_object.clickEvent.value":"值","text_component_object.color":"顏色","text_component_object.entity":"實體","text_component_object.extra":"附加","text_component_object.font":"字型","text_component_object.hoverEvent":"懸浮事件","text_component_object.hoverEvent.action":"行為","text_component_object.hoverEvent.action.show_entity":"顯示實體","text_component_object.hoverEvent.action.show_item":"顯示物品","text_component_object.hoverEvent.action.show_text":"顯示文字","text_component_object.hoverEvent.contents":"內容","text_component_object.hoverEvent.value":"值","text_component_object.insertion":"插入","text_component_object.interpret":"解析","text_component_object.italic":"斜體","text_component_object.keybind":"鍵位","text_component_object.nbt":"NBT","text_component_object.obfuscated":"混淆","text_component_object.score":"分數","text_component_object.score.name":"名稱","text_component_object.score.objective":"計分板目標","text_component_object.score.value":"值","text_component_object.selector":"選擇器","text_component_object.storage":"容器","text_component_object.strikethrough":"刪除線","text_component_object.text":"文字","text_component_object.translate":"可翻譯文字","text_component_object.underlined":"下劃線","text_component_object.with":"以之翻譯","tree_decorator.alter_ground.provider":"狀態聲明","tree_decorator.beehive.probability":"概率","tree_decorator.cocoa.probability":"概率","tree_decorator.type":"類型","true":"是","trunk_placer.base_height":"基礎高度","trunk_placer.height_rand_a":"水平隨機高度","trunk_placer.height_rand_b":"豎直隨機高度","trunk_placer.type":"類型","uniform_int.base":"基礎值","uniform_int.number":"常數","uniform_int.object":"均勻分布","uniform_int.spread":"擴散","unset":"未指定","update.pack_format":"將 pack_format 升級至 %0%","vertical_anchor.above_bottom":"比底部高","vertical_anchor.absolute":"指定特定層","vertical_anchor.below_top":"比頂部低","world.bonus_chest":"生成獎勵箱","world.generate_features":"生成結構","world.seed":"種子碼","world_settings.bonus_chest":"生成獎勵箱","world_settings.dimensions":"維度","world_settings.generate_features":"生成地景","world_settings.seed":"世界種子碼","worldgen.warning":"本特性為高度實驗性的特性,很不穩定,在未來的版本中隨時會有變動。請做好遊戲在創建世界時崩潰的準備。","worldgen/biome_source.checkerboard":"棋盤","worldgen/biome_source.checkerboard.help":"以棋盤狀區塊圖案生成的生態域。","worldgen/biome_source.fixed":"固定","worldgen/biome_source.fixed.help":"整個世界只有單一生態域。","worldgen/biome_source.multi_noise":"多重噪聲","worldgen/biome_source.multi_noise.help":"可設定參數的自訂生態域分布。","worldgen/biome_source.the_end":"終界","worldgen/biome_source.the_end.help":"終界的生態域分布。","worldgen/biome_source.vanilla_layered":"原版分層","worldgen/biome_source.vanilla_layered.help":"主世界的生態域分布。","worldgen/block_placer_type.column_placer":"柱狀","worldgen/block_placer_type.double_plant_placer":"雙層植物","worldgen/block_placer_type.simple_block_placer":"簡單","worldgen/block_state_provider_type.forest_flower_provider":"繁花森林方塊狀態聲明","worldgen/block_state_provider_type.plain_flower_provider":"平原花方塊狀態聲明","worldgen/block_state_provider_type.randomized_int_state_provider":"隨機整數型方塊狀態聲明","worldgen/block_state_provider_type.randomized_int_state_provider.property":"屬性","worldgen/block_state_provider_type.randomized_int_state_provider.source":"參照","worldgen/block_state_provider_type.randomized_int_state_provider.values":"取值","worldgen/block_state_provider_type.rotated_block_provider":"旋轉方塊狀態聲明","worldgen/block_state_provider_type.simple_state_provider":"簡單方塊狀態聲明","worldgen/block_state_provider_type.weighted_state_provider":"加權方塊狀態聲明","worldgen/carver.canyon":"峽谷","worldgen/carver.cave":"洞穴","worldgen/carver.nether_cave":"地獄洞穴","worldgen/carver.underwater_canyon":"水下峽谷","worldgen/carver.underwater_cave":"水下洞穴","worldgen/chunk_generator.debug":"除錯世界","worldgen/chunk_generator.flat":"超平坦","worldgen/chunk_generator.noise":"預設噪聲地形","worldgen/feature_size_type.three_layers_feature_size":"三層","worldgen/feature_size_type.two_layers_feature_size":"兩層","worldgen/foliage_placer_type.acacia_foliage_placer":"相思樹","worldgen/foliage_placer_type.blob_foliage_placer":"橡樹/白樺木","worldgen/foliage_placer_type.bush_foliage_placer":"金字塔形","worldgen/foliage_placer_type.dark_oak_foliage_placer":"黑橡樹","worldgen/foliage_placer_type.fancy_foliage_placer":"球形","worldgen/foliage_placer_type.jungle_foliage_placer":"叢林","worldgen/foliage_placer_type.mega_pine_foliage_placer":"雙層稀疏雲杉","worldgen/foliage_placer_type.pine_foliage_placer":"稀疏雲杉","worldgen/foliage_placer_type.spruce_foliage_placer":"杉木","worldgen/structure_pool_element.empty_pool_element":"空集合","worldgen/structure_pool_element.feature_pool_element":"地景","worldgen/structure_pool_element.legacy_single_pool_element":"單個(舊版)","worldgen/structure_pool_element.list_pool_element":"清單","worldgen/structure_pool_element.single_pool_element":"單個","worldgen/structure_processor.blackstone_replace":"取代黑石","worldgen/structure_processor.block_age":"石製方塊由青苔變種取代","worldgen/structure_processor.block_ignore":"忽略方塊","worldgen/structure_processor.block_rot":"隨機移除方塊","worldgen/structure_processor.gravity":"重力","worldgen/structure_processor.jigsaw_replacement":"從拼圖方塊取代","worldgen/structure_processor.lava_submerged_block":"熔岩湮沒方塊","worldgen/structure_processor.nop":"不使用結構處理器","worldgen/structure_processor.protected_blocks":"保護特定方塊","worldgen/structure_processor.rule":"規則","worldgen/tree_decorator_type.alter_ground":"地面方塊替換","worldgen/tree_decorator_type.beehive":"蜂箱","worldgen/tree_decorator_type.cocoa":"可可果","worldgen/tree_decorator_type.leave_vine":"樹葉藤蔓","worldgen/tree_decorator_type.trunk_vine":"樹幹藤蔓","worldgen/trunk_placer_type.dark_oak_trunk_placer":"黑橡木生長方式","worldgen/trunk_placer_type.fancy_trunk_placer":"多分叉型","worldgen/trunk_placer_type.forking_trunk_placer":"單分叉型","worldgen/trunk_placer_type.giant_trunk_placer":"2×2 豎直型","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"大叢林木型","worldgen/trunk_placer_type.straight_trunk_placer":"豎直型"}');export default e;
+//# sourceMappingURL=zh-tw.bae62b5e.js.map
diff --git a/assets/zh-tw.bae62b5e.js.map b/assets/zh-tw.bae62b5e.js.map
new file mode 100644
index 00000000..d8b5426a
--- /dev/null
+++ b/assets/zh-tw.bae62b5e.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"zh-tw.bae62b5e.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/dimension/index.html b/dimension/index.html
index 1997e3b7..8e27c7ea 100644
--- a/dimension/index.html
+++ b/dimension/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.16, 1.17
+ undefined Generator Minecraft 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/dimension_type/index.html b/dimension_type/index.html
index 1997e3b7..8e27c7ea 100644
--- a/dimension_type/index.html
+++ b/dimension_type/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.16, 1.17
+ undefined Generator Minecraft 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/index.html b/index.html
index b972e025..f695845d 100644
--- a/index.html
+++ b/index.html
@@ -20,9 +20,9 @@
Data Pack Generators Minecraft 1.15, 1.16, 1.17
-
-
-
+
+
+
diff --git a/item_modifier/index.html b/item_modifier/index.html
index d8ded6bb..15f7685d 100644
--- a/item_modifier/index.html
+++ b/item_modifier/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.17
+ undefined Generator Minecraft 1.17, 1.18
-
-
-
+
+
+
diff --git a/loot_table/index.html b/loot_table/index.html
index bda5b1fe..54d02d5e 100644
--- a/loot_table/index.html
+++ b/loot_table/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.15, 1.16, 1.17
+ undefined Generator Minecraft 1.15, 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/predicate/index.html b/predicate/index.html
index bda5b1fe..54d02d5e 100644
--- a/predicate/index.html
+++ b/predicate/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.15, 1.16, 1.17
+ undefined Generator Minecraft 1.15, 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/world/index.html b/world/index.html
index 1997e3b7..8e27c7ea 100644
--- a/world/index.html
+++ b/world/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.16, 1.17
+ undefined Generator Minecraft 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/worldgen/biome/index.html b/worldgen/biome/index.html
index 1997e3b7..8e27c7ea 100644
--- a/worldgen/biome/index.html
+++ b/worldgen/biome/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.16, 1.17
+ undefined Generator Minecraft 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/worldgen/configured_carver/index.html b/worldgen/configured_carver/index.html
index 1997e3b7..8e27c7ea 100644
--- a/worldgen/configured_carver/index.html
+++ b/worldgen/configured_carver/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.16, 1.17
+ undefined Generator Minecraft 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/worldgen/configured_feature/index.html b/worldgen/configured_feature/index.html
index 1997e3b7..8e27c7ea 100644
--- a/worldgen/configured_feature/index.html
+++ b/worldgen/configured_feature/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.16, 1.17
+ undefined Generator Minecraft 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/worldgen/configured_structure_feature/index.html b/worldgen/configured_structure_feature/index.html
index 1997e3b7..8e27c7ea 100644
--- a/worldgen/configured_structure_feature/index.html
+++ b/worldgen/configured_structure_feature/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.16, 1.17
+ undefined Generator Minecraft 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/worldgen/configured_surface_builder/index.html b/worldgen/configured_surface_builder/index.html
index 1997e3b7..8e27c7ea 100644
--- a/worldgen/configured_surface_builder/index.html
+++ b/worldgen/configured_surface_builder/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.16, 1.17
+ undefined Generator Minecraft 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/worldgen/noise_settings/index.html b/worldgen/noise_settings/index.html
index 1997e3b7..8e27c7ea 100644
--- a/worldgen/noise_settings/index.html
+++ b/worldgen/noise_settings/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.16, 1.17
+ undefined Generator Minecraft 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/worldgen/processor_list/index.html b/worldgen/processor_list/index.html
index 1997e3b7..8e27c7ea 100644
--- a/worldgen/processor_list/index.html
+++ b/worldgen/processor_list/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.16, 1.17
+ undefined Generator Minecraft 1.16, 1.17, 1.18
-
-
-
+
+
+
diff --git a/worldgen/template_pool/index.html b/worldgen/template_pool/index.html
index 1997e3b7..8e27c7ea 100644
--- a/worldgen/template_pool/index.html
+++ b/worldgen/template_pool/index.html
@@ -17,12 +17,12 @@
- undefined Generator Minecraft 1.16, 1.17
+ undefined Generator Minecraft 1.16, 1.17, 1.18
-
-
-
+
+
+